UNPKG

credo-near-module

Version:

NEAR Module for Credo SSI Agent

55 lines (54 loc) 2.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.nearResourceMetadataRegex = exports.nearResourceRegex = exports.nearDidMetadataRegex = exports.nearDidVersionsRegex = exports.nearDidVersionRegex = exports.nearDidRegex = exports.nearSdkAnonCredsRegistryIdentifierRegex = void 0; exports.parsenearDid = parsenearDid; var core_1 = require("@credo-ts/core"); var class_validator_1 = require("class-validator"); var ID_CHAR = "([a-z,A-Z,0-9,-])"; var NETWORK = "(testnet|mainnet)"; var IDENTIFIER = "((?:".concat(ID_CHAR, "*:)*(").concat(ID_CHAR, "+))"); var PATH = "(/[^#?]*)?"; var QUERY = "([?][^#]*)?"; var VERSION_ID = "(.*?)"; var FRAGMENT = "([#].*)?"; exports.nearSdkAnonCredsRegistryIdentifierRegex = new RegExp("^did:near:".concat(NETWORK, ":").concat(IDENTIFIER).concat(PATH).concat(QUERY).concat(FRAGMENT, "$")); exports.nearDidRegex = new RegExp("^did:near:".concat(NETWORK, ":").concat(IDENTIFIER).concat(QUERY).concat(FRAGMENT, "$")); exports.nearDidVersionRegex = new RegExp("^did:near:".concat(NETWORK, ":").concat(IDENTIFIER, "/version/").concat(VERSION_ID).concat(QUERY).concat(FRAGMENT, "$")); exports.nearDidVersionsRegex = new RegExp("^did:near:".concat(NETWORK, ":").concat(IDENTIFIER, "/versions").concat(QUERY).concat(FRAGMENT, "$")); exports.nearDidMetadataRegex = new RegExp("^did:near:".concat(NETWORK, ":").concat(IDENTIFIER, "/metadata").concat(QUERY).concat(FRAGMENT, "$")); exports.nearResourceRegex = new RegExp("^did:near:".concat(NETWORK, ":").concat(IDENTIFIER, "/resources/").concat(IDENTIFIER).concat(QUERY).concat(FRAGMENT, "$")); exports.nearResourceMetadataRegex = new RegExp("^did:near:".concat(NETWORK, ":").concat(IDENTIFIER, "/resources/").concat(IDENTIFIER, "/metadata").concat(QUERY).concat(FRAGMENT)); function parsenearDid(didUrl) { if (didUrl === "" || !didUrl) return null; var sections = didUrl.match(exports.nearSdkAnonCredsRegistryIdentifierRegex); if (sections) { if (!(core_1.utils.isValidUuid(sections[2]) || ((0, class_validator_1.isBase58)(sections[2]) && core_1.TypedArrayEncoder.fromBase58(sections[2]).length == 16))) { return null; } var parts = { did: "did:near:".concat(sections[1], ":").concat(sections[2]), method: "near", network: sections[1], id: sections[2], didUrl: didUrl, }; if (sections[7]) { var params = sections[7].slice(1).split("&"); parts.params = {}; for (var _i = 0, params_1 = params; _i < params_1.length; _i++) { var p = params_1[_i]; var kv = p.split("="); parts.params[kv[0]] = kv[1]; } } if (sections[6]) parts.path = sections[6]; if (sections[8]) parts.fragment = sections[8].slice(1); return parts; } return null; }