UNPKG

@klayr-did/klayr-verifiable-credentials

Version:

A library for working with W3C verifiable credentials (VC) and verifiable presentations (VP) using Klayr DID

74 lines 3.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.httpResolver = exports.createBaseLoader = void 0; const constants_1 = require("./constants"); const vc_examples_v1_1 = require("./contexts/vc-examples-v1"); const odrl_1 = require("./contexts/odrl"); const open_badges_v2p0_1 = require("./contexts/open-badges-v2p0"); const dccContext = require("@digitalcredentials/dcc-context"); const didContext = require("did-context"); const ed25519 = require("ed25519-signature-2020-context"); const x25519 = require("x25519-key-agreement-2020-context"); const credentialsContext = require("credentials-context"); const vcStatusListContext = require("@digitalbazaar/vc-status-list-context"); const obContext = require("@digitalcredentials/open-badges-context"); const jsonld_document_loader_1 = require("./jsonld-document-loader"); const HtmlEntities = require("html-entities"); const klayr_decentralized_identifier_1 = require("@klayr-did/klayr-decentralized-identifier"); function createBaseLoader(param = {}) { var _a; const loader = new jsonld_document_loader_1.JsonLdDocumentLoader(); const enableFetch = (_a = param.enableFetch) !== null && _a !== void 0 ? _a : true; loader.addStatic(credentialsContext.CREDENTIALS_CONTEXT_V1_URL, credentialsContext.contexts.get(credentialsContext.CREDENTIALS_CONTEXT_V1_URL)); loader.addStatic(constants_1.CREDENTIALS_EXAMPLE_CONTEXT_V1_URL, vc_examples_v1_1.default); loader.addStatic(constants_1.ODRL_URL, odrl_1.default); loader.addStatic(constants_1.OPEN_BADGES_V2_URL, open_badges_v2p0_1.default); loader.addStatic(ed25519.constants.CONTEXT_URL, ed25519.contexts.get(ed25519.constants.CONTEXT_URL)); loader.addStatic(x25519.constants.CONTEXT_URL, x25519.contexts.get(x25519.constants.CONTEXT_URL)); loader.addStatic(didContext.constants.DID_CONTEXT_URL, didContext.contexts.get(didContext.constants.DID_CONTEXT_URL)); loader.addStatic(dccContext.CONTEXT_URL_V1, dccContext.CONTEXT_V1); loader.addStatic(vcStatusListContext.CONTEXT_URL_V1, vcStatusListContext.CONTEXT_V1); for (const [url, contextBody] of obContext.contexts) { loader.addStatic(url, contextBody); } if (param.ipc || param.ws || (param.context && param.method)) { loader.setDidResolver(klayr_decentralized_identifier_1.resolver.createResolver(param)); } if (enableFetch) { loader.setProtocolHandler({ protocol: 'http', handler: exports.httpResolver }); loader.setProtocolHandler({ protocol: 'https', handler: exports.httpResolver }); } if (param.loader) { loader.setCustomLoader(param.loader); } if (param.resolver) { loader.setCustomResolver(param.resolver); } return loader; } exports.createBaseLoader = createBaseLoader; exports.httpResolver = { async get(params) { if (!params.url.startsWith('http')) { throw new Error('NotFoundError'); } let result; try { const headers = { 'Cache-Control': 'no-cache', Pragma: 'no-cache', }; result = await fetch(params.url, { headers }); } catch (e) { throw new Error('NotFoundError'); } return parseResponseBody(result); }, }; async function parseResponseBody(response) { const responseText = await response.text(); const responseTextDecoded = HtmlEntities.decode(responseText); return JSON.parse(responseTextDecoded); } //# sourceMappingURL=base.js.map