@sphereon/openid4vci-client
Version:
OpenID for Verifiable Credential Issuance (OpenID4VCI) client
60 lines • 5.47 kB
JavaScript
;
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==