UNPKG

@sphereon/openid4vci-client

Version:

OpenID for Verifiable Credential Issuance (OpenID4VCI) client

60 lines 5.47 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.CredentialRequestClient = void 0; const debug_1 = __importDefault(require("debug")); const ProofOfPossessionBuilder_1 = require("./ProofOfPossessionBuilder"); const functions_1 = require("./functions"); const types_1 = require("./types"); const debug = (0, debug_1.default)('sphereon:openid4vci:credential'); class CredentialRequestClient { constructor(builder) { this._issuanceRequestOpts = Object.assign({}, builder); } getCredentialEndpoint() { return this._issuanceRequestOpts.credentialEndpoint; } acquireCredentialsUsingProof({ proofInput, credentialType, format, }) { return __awaiter(this, void 0, void 0, function* () { const request = yield this.createCredentialRequest({ proofInput, credentialType, format }); return yield this.acquireCredentialsUsingRequest(request); }); } acquireCredentialsUsingRequest(request) { return __awaiter(this, void 0, void 0, function* () { const credentialEndpoint = this._issuanceRequestOpts.credentialEndpoint; if (!(0, functions_1.isValidURL)(credentialEndpoint)) { debug(`Invalid credential endpoint: ${credentialEndpoint}`); throw new Error(types_1.URL_NOT_VALID); } debug(`Acquiring credential(s) from: ${credentialEndpoint}`); const requestToken = this._issuanceRequestOpts.token; const response = yield (0, functions_1.post)(credentialEndpoint, JSON.stringify(request), { bearerToken: requestToken }); debug(`Credential endpoint ${credentialEndpoint} response:\r\n${response}`); return response; }); } createCredentialRequest({ proofInput, credentialType, format, }) { return __awaiter(this, void 0, void 0, function* () { const proof = 'proof_type' in proofInput ? yield ProofOfPossessionBuilder_1.ProofOfPossessionBuilder.fromProof(proofInput).build() : yield proofInput.build(); return { type: credentialType ? credentialType : this._issuanceRequestOpts.credentialType, format: format ? format : this._issuanceRequestOpts.format, proof, }; }); } } exports.CredentialRequestClient = CredentialRequestClient; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlZGVudGlhbFJlcXVlc3RDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvQ3JlZGVudGlhbFJlcXVlc3RDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQ0Esa0RBQTBCO0FBRzFCLHlFQUFzRTtBQUN0RSwyQ0FBK0M7QUFDL0MsbUNBQWtIO0FBRWxILE1BQU0sS0FBSyxHQUFHLElBQUEsZUFBSyxFQUFDLGdDQUFnQyxDQUFDLENBQUM7QUFFdEQsTUFBYSx1QkFBdUI7SUFhbEMsWUFBbUIsT0FBdUM7UUFDeEQsSUFBSSxDQUFDLG9CQUFvQixxQkFBUSxPQUFPLENBQUUsQ0FBQztJQUM3QyxDQUFDO0lBTk0scUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDO0lBQ3RELENBQUM7SUFNWSw0QkFBNEIsQ0FBQyxFQUN4QyxVQUFVLEVBQ1YsY0FBYyxFQUNkLE1BQU0sR0FLUDs7WUFDQyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUMzRixPQUFPLE1BQU0sSUFBSSxDQUFDLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELENBQUM7S0FBQTtJQUVZLDhCQUE4QixDQUFDLE9BQTBCOztZQUNwRSxNQUFNLGtCQUFrQixHQUFXLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQztZQUNoRixJQUFJLENBQUMsSUFBQSxzQkFBVSxFQUFDLGtCQUFrQixDQUFDLEVBQUU7Z0JBQ25DLEtBQUssQ0FBQyxnQ0FBZ0Msa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RCxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFhLENBQUMsQ0FBQzthQUNoQztZQUNELEtBQUssQ0FBQyxpQ0FBaUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1lBQzdELE1BQU0sWUFBWSxHQUFXLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUM7WUFDN0QsTUFBTSxRQUFRLEdBQXVDLE1BQU0sSUFBQSxnQkFBSSxFQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUM1SSxLQUFLLENBQUMsdUJBQXVCLGtCQUFrQixpQkFBaUIsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM1RSxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO0tBQUE7SUFFWSx1QkFBdUIsQ0FBQyxFQUNuQyxVQUFVLEVBQ1YsY0FBYyxFQUNkLE1BQU0sR0FLUDs7WUFDQyxNQUFNLEtBQUssR0FDVCxZQUFZLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLG1EQUF3QixDQUFDLFNBQVMsQ0FBQyxVQUErQixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVJLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsY0FBYztnQkFDaEYsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTTtnQkFDMUQsS0FBSzthQUNOLENBQUM7UUFDSixDQUFDO0tBQUE7Q0FDRjtBQTVERCwwREE0REMifQ==