@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
JavaScript
;
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