@sphereon/openid4vci-client
Version:
OpenID for Verifiable Credential Issuance (OpenID4VCI) client
104 lines • 7.24 kB
JavaScript
"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());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProofOfPossessionBuilder = void 0;
const functions_1 = require("./functions");
const types_1 = require("./types");
class ProofOfPossessionBuilder {
constructor({ proof, callbacks, jwt, accessTokenResponse, }) {
this.proof = proof;
this.callbacks = callbacks;
if (jwt) {
this.withJwt(jwt);
}
if (accessTokenResponse) {
this.withAccessTokenResponse(accessTokenResponse);
}
}
static fromJwt({ jwt, callbacks }) {
return new ProofOfPossessionBuilder({ callbacks, jwt });
}
static fromAccessTokenResponse({ accessTokenResponse, callbacks, }) {
return new ProofOfPossessionBuilder({ callbacks, accessTokenResponse });
}
static fromProof(proof) {
return new ProofOfPossessionBuilder({ proof });
}
withClientId(clientId) {
this.clientId = clientId;
return this;
}
withKid(kid) {
this.kid = kid;
return this;
}
withIssuer(issuer) {
this.issuer = issuer;
return this;
}
withAlg(alg) {
this.alg = alg;
return this;
}
withJti(jti) {
this.jti = jti;
return this;
}
withAccessTokenNonce(cNonce) {
this.cNonce = cNonce;
return this;
}
withAccessTokenResponse(accessToken) {
this.withAccessTokenNonce(accessToken.c_nonce);
return this;
}
withEndpointMetadata(endpointMetadata) {
this.withIssuer(endpointMetadata.issuer);
return this;
}
withJwt(jwt) {
if (!jwt) {
throw new Error(types_1.NO_JWT_PROVIDED);
}
this.jwt = jwt;
if (jwt.header) {
this.withKid(jwt.header.kid);
this.withAlg(jwt.header.alg);
}
if (jwt.payload) {
this.withClientId(jwt.payload.iss);
this.withIssuer(jwt.payload.aud);
this.withJti(jwt.payload.jti);
this.withAccessTokenNonce(jwt.payload.nonce);
}
return this;
}
build() {
return __awaiter(this, void 0, void 0, function* () {
if (this.proof) {
return Promise.resolve(this.proof);
}
else if (this.callbacks) {
return yield (0, functions_1.createProofOfPossession)(this.callbacks, {
kid: this.kid,
jti: this.jti,
alg: this.alg,
issuer: this.issuer,
clientId: this.clientId,
nonce: this.cNonce,
}, this.jwt);
}
throw new Error(types_1.PROOF_CANT_BE_CONSTRUCTED);
});
}
}
exports.ProofOfPossessionBuilder = ProofOfPossessionBuilder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvb2ZPZlBvc3Nlc3Npb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL1Byb29mT2ZQb3NzZXNzaW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBc0Q7QUFDdEQsbUNBU2lCO0FBRWpCLE1BQWEsd0JBQXdCO0lBWW5DLFlBQW9CLEVBQ2xCLEtBQUssRUFDTCxTQUFTLEVBQ1QsR0FBRyxFQUNILG1CQUFtQixHQU1wQjtRQUNDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNuQjtRQUNELElBQUksbUJBQW1CLEVBQUU7WUFDdkIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQXVEO1FBQ3BGLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxNQUFNLENBQUMsdUJBQXVCLENBQUMsRUFDN0IsbUJBQW1CLEVBQ25CLFNBQVMsR0FJVjtRQUNDLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBd0I7UUFDdkMsT0FBTyxJQUFJLHdCQUF3QixDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWdCO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLE9BQU8s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