@sphereon/openid4vci-client
Version:
OpenID for Verifiable Credential Issuance (OpenID4VCI) client
62 lines • 4.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CredentialRequestClientBuilder = void 0;
const CredentialRequestClient_1 = require("./CredentialRequestClient");
const functions_1 = require("./functions");
class CredentialRequestClientBuilder {
static fromIssuanceInitiationURI({ uri, metadata }) {
return CredentialRequestClientBuilder.fromIssuanceInitiationRequest({
request: (0, functions_1.convertURIToJsonObject)(uri, {
arrayTypeProperties: ['credential_type'],
requiredProperties: ['issuer', 'credential_type'],
}),
metadata,
});
}
static fromIssuanceInitiationRequest({ request, metadata, }) {
const builder = new CredentialRequestClientBuilder();
builder.withCredentialEndpoint((metadata === null || metadata === void 0 ? void 0 : metadata.credential_endpoint)
? metadata.credential_endpoint
: request.issuer.endsWith('/')
? `${request.issuer}credential`
: `${request.issuer}/credential`);
//todo: This basically sets all types available during initiation. Probably the user only wants a subset. So do we want to do this?
builder.withCredentialType(request.credential_type);
return builder;
}
static fromIssuanceInitiation({ initiation, metadata, }) {
return CredentialRequestClientBuilder.fromIssuanceInitiationRequest({
request: initiation.issuanceInitiationRequest,
metadata,
});
}
withCredentialEndpointFromMetadata(metadata) {
this.credentialEndpoint = metadata.credential_endpoint;
return this;
}
withCredentialEndpoint(credentialEndpoint) {
this.credentialEndpoint = credentialEndpoint;
return this;
}
withCredentialType(credentialType) {
this.credentialType = credentialType;
return this;
}
withFormat(format) {
this.format = format;
return this;
}
withToken(accessToken) {
this.token = accessToken;
return this;
}
withTokenFromResponse(response) {
this.token = response.access_token;
return this;
}
build() {
return new CredentialRequestClient_1.CredentialRequestClient(this);
}
}
exports.CredentialRequestClientBuilder = CredentialRequestClientBuilder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlZGVudGlhbFJlcXVlc3RDbGllbnRCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL0NyZWRlbnRpYWxSZXF1ZXN0Q2xpZW50QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx1RUFBb0U7QUFDcEUsMkNBQXFEO0FBU3JELE1BQWEsOEJBQThCO0lBTWxDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQWdEO1FBQ3JHLE9BQU8sOEJBQThCLENBQUMsNkJBQTZCLENBQUM7WUFDbEUsT0FBTyxFQUFFLElBQUEsa0NBQXNCLEVBQUMsR0FBRyxFQUFFO2dCQUNuQyxtQkFBbUIsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2dCQUN4QyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQzthQUNsRCxDQUFxQztZQUN0QyxRQUFRO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxFQUMxQyxPQUFPLEVBQ1AsUUFBUSxHQUlUO1FBQ0MsTUFBTSxPQUFPLEdBQUcsSUFBSSw4QkFBOEIsRUFBRSxDQUFDO1FBQ3JELE9BQU8sQ0FBQyxzQkFBc0IsQ0FDNUIsQ0FBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsbUJBQW1CO1lBQzNCLENBQUMsQ0FBQyxRQUFRLENBQUMsbUJBQW1CO1lBQzlCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLFlBQVk7Z0JBQy9CLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLGFBQWEsQ0FDbkMsQ0FBQztRQUVGLG1JQUFtSTtRQUNuSSxPQUFPLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXBELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxNQUFNLENBQUMsc0JBQXNCLENBQUMsRUFDbkMsVUFBVSxFQUNWLFFBQVEsR0FJVDtRQUNDLE9BQU8sOEJBQThCLENBQUMsNkJBQTZCLENBQUM7WUFDbEUsT0FBTyxFQUFFLFVBQVUsQ0FBQyx5QkFBeUI7WUFDN0MsUUFBUTtTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxrQ0FBa0MsQ0FBQyxRQUFrQztRQUMxRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLHNCQUFzQixDQUFDLGtCQUEwQjtRQUN0RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsY0FBaUM7UUFDekQsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sVUFBVSxDQUFDLE1BQTZDO1FBQzdELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFNBQVMsQ0FBQyxXQUFtQjtRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxRQUE2QjtRQUN4RCxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sS0FBSztRQUNWLE9BQU8sSUFBSSxpREFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUFwRkQsd0VBb0ZDIn0=