credo-near-module
Version:
NEAR Module for Credo SSI Agent
55 lines (54 loc) • 2.96 kB
JavaScript
;
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;
}