@sphereon/oid4vci-client 0.8.2-unstable.72 → 0.8.2-unstable.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AccessTokenClient.d.ts.map +1 -1
- package/dist/AccessTokenClient.js +0 -1
- package/dist/AccessTokenClient.js.map +1 -1
- package/dist/AuthorizationCodeClient.d.ts.map +1 -1
- package/dist/AuthorizationCodeClient.js +9 -4
- package/dist/AuthorizationCodeClient.js.map +1 -1
- package/dist/OpenID4VCIClient.d.ts +22 -11
- package/dist/OpenID4VCIClient.d.ts.map +1 -1
- package/dist/OpenID4VCIClient.js +98 -70
- package/dist/OpenID4VCIClient.js.map +1 -1
- package/lib/AccessTokenClient.ts +0 -1
- package/lib/AuthorizationCodeClient.ts +7 -4
- package/lib/OpenID4VCIClient.ts +127 -82
- package/lib/__tests__/OpenID4VCIClient.spec.ts +7 -7
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessTokenClient.d.ts","sourceRoot":"","sources":["../lib/AccessTokenClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EAEnB,uBAAuB,EAEvB,gBAAgB,EAGhB,UAAU,EAEV,cAAc,EAKf,MAAM,0BAA0B,CAAC;AASlC,qBAAa,iBAAiB;IACf,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IA+B9F,8BAA8B,CAAC,EAC1C,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,MAAM,EACN,UAAU,GACX,EAAE;QACD,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,MAAM,CAAC,EAAE,uBAAuB,CAAC;QACjC,UAAU,CAAC,EAAE,UAAU,CAAC;KACzB,GAAG,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAgBnC,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoChG,OAAO,CAAC,4BAA4B;IAMpC,OAAO,CAAC,4BAA4B;IAMpC,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,+BAA+B;IAOvC,OAAO,CAAC,0BAA0B;IAOlC,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,QAAQ;YAcF,YAAY;WAIZ,iBAAiB,CAAC,EAC9B,MAAM,EACN,UAAU,EACV,QAAQ,GACT,EAAE;QACD,MAAM,CAAC,EAAE,uBAAuB,CAAC;QACjC,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;KAC7B,GAAG,MAAM;IAuBV,OAAO,CAAC,MAAM,CAAC,oBAAoB;
|
|
1
|
+
{"version":3,"file":"AccessTokenClient.d.ts","sourceRoot":"","sources":["../lib/AccessTokenClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EAEnB,uBAAuB,EAEvB,gBAAgB,EAGhB,UAAU,EAEV,cAAc,EAKf,MAAM,0BAA0B,CAAC;AASlC,qBAAa,iBAAiB;IACf,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IA+B9F,8BAA8B,CAAC,EAC1C,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,MAAM,EACN,UAAU,GACX,EAAE;QACD,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,MAAM,CAAC,EAAE,uBAAuB,CAAC;QACjC,UAAU,CAAC,EAAE,UAAU,CAAC;KACzB,GAAG,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAgBnC,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoChG,OAAO,CAAC,4BAA4B;IAMpC,OAAO,CAAC,4BAA4B;IAMpC,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,+BAA+B;IAOvC,OAAO,CAAC,0BAA0B;IAOlC,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,QAAQ;YAcF,YAAY;WAIZ,iBAAiB,CAAC,EAC9B,MAAM,EACN,UAAU,EACV,QAAQ,GACT,EAAE;QACD,MAAM,CAAC,EAAE,uBAAuB,CAAC;QACjC,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;KAC7B,GAAG,MAAM;IAuBV,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAYnC,OAAO,CAAC,qBAAqB;CAI9B"}
|
|
@@ -197,7 +197,6 @@ class AccessTokenClient {
|
|
|
197
197
|
const hostname = url.replace(/https?:\/\//, '').replace(/\/$/, '');
|
|
198
198
|
const endpoint = tokenEndpoint ? (tokenEndpoint.startsWith('/') ? tokenEndpoint : tokenEndpoint.substring(1)) : '/token';
|
|
199
199
|
const scheme = url.split('://')[0];
|
|
200
|
-
console.log(`scheme: ${scheme}, hostname: ${hostname}, endpoint: ${endpoint}`);
|
|
201
200
|
return `${scheme ? scheme + '://' : 'https://'}${hostname}${endpoint}`;
|
|
202
201
|
}
|
|
203
202
|
throwNotSupportedFlow() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessTokenClient.js","sourceRoot":"","sources":["../lib/AccessTokenClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AccessTokenClient.js","sourceRoot":"","sources":["../lib/AccessTokenClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorizationCodeClient.d.ts","sourceRoot":"","sources":["../lib/AuthorizationCodeClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EAGxB,iCAAiC,EACjC,mBAAmB,EACnB,sBAAsB,EAGtB,QAAQ,EAGT,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"AuthorizationCodeClient.d.ts","sourceRoot":"","sources":["../lib/AuthorizationCodeClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EAGxB,iCAAiC,EACjC,mBAAmB,EACnB,sBAAsB,EAGtB,QAAQ,EAGT,MAAM,0BAA0B,CAAC;AAMlC,eAAO,MAAM,6BAA6B;UAOlC,QAAQ;sBACI,sBAAsB;0BAClB,wBAAwB;;;MAG5C,QAAQ,MAAM,CAgFjB,CAAC"}
|
|
@@ -8,10 +8,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.createAuthorizationRequestUrl = void 0;
|
|
13
16
|
const oid4vci_common_1 = require("@sphereon/oid4vci-common");
|
|
14
17
|
const oid4vci_common_2 = require("@sphereon/oid4vci-common");
|
|
18
|
+
const debug_1 = __importDefault(require("debug"));
|
|
19
|
+
const debug = (0, debug_1.default)('sphereon:oid4vci');
|
|
15
20
|
const createAuthorizationRequestUrl = ({ pkce, endpointMetadata, authorizationRequest, credentialOffer, credentialsSupported, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
21
|
var _a, _b, _c, _d;
|
|
17
22
|
const { redirectUri, clientId } = authorizationRequest;
|
|
@@ -58,15 +63,15 @@ const createAuthorizationRequestUrl = ({ pkce, endpointMetadata, authorizationRe
|
|
|
58
63
|
throw Error(`PAR mode is set to required by Authorization Server does not support PAR!`);
|
|
59
64
|
}
|
|
60
65
|
else if (parEndpoint && parMode !== oid4vci_common_1.PARMode.NEVER) {
|
|
61
|
-
|
|
66
|
+
debug(`USING PAR with endpoint ${parEndpoint}`);
|
|
62
67
|
const parResponse = yield (0, oid4vci_common_2.formPost)(parEndpoint, new URLSearchParams(queryObj));
|
|
63
68
|
if (parResponse.errorBody || !parResponse.successBody) {
|
|
64
69
|
throw Error(`PAR error`);
|
|
65
70
|
}
|
|
66
|
-
|
|
71
|
+
debug(`PAR response: ${(parResponse.successBody, null, 2)}`);
|
|
67
72
|
queryObj = { request_uri: parResponse.successBody.request_uri };
|
|
68
73
|
}
|
|
69
|
-
|
|
74
|
+
debug(`Object that will become query params: ` + JSON.stringify(queryObj, null, 2));
|
|
70
75
|
const url = (0, oid4vci_common_1.convertJsonToURI)(queryObj, {
|
|
71
76
|
baseUrl: endpointMetadata.authorization_endpoint,
|
|
72
77
|
uriTypeProperties: ['client_id', 'request_uri', 'redirect_uri', 'scope', 'authorization_details', 'issuer_state'],
|
|
@@ -74,7 +79,7 @@ const createAuthorizationRequestUrl = ({ pkce, endpointMetadata, authorizationRe
|
|
|
74
79
|
mode: oid4vci_common_1.JsonURIMode.X_FORM_WWW_URLENCODED,
|
|
75
80
|
// We do not add the version here, as this always needs to be form encoded
|
|
76
81
|
});
|
|
77
|
-
|
|
82
|
+
debug(`Authorization Request URL: ${url}`);
|
|
78
83
|
return url;
|
|
79
84
|
});
|
|
80
85
|
exports.createAuthorizationRequestUrl = createAuthorizationRequestUrl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorizationCodeClient.js","sourceRoot":"","sources":["../lib/AuthorizationCodeClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AuthorizationCodeClient.js","sourceRoot":"","sources":["../lib/AuthorizationCodeClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import { AccessTokenResponse, Alg, AuthorizationRequestOpts, AuthorizationResponse, AuthzFlowType, CredentialOfferRequestWithBaseUrl, CredentialResponse, CredentialSupported, EndpointMetadataResult, JWK, OID4VCICredentialFormat, OpenId4VCIVersion, PKCEOpts, ProofOfPossessionCallbacks } from '@sphereon/oid4vci-common';
|
|
2
2
|
import { CredentialFormat } from '@sphereon/ssi-types';
|
|
3
|
+
export interface OpenID4VCIClientState {
|
|
4
|
+
credentialIssuer: string;
|
|
5
|
+
credentialOffer?: CredentialOfferRequestWithBaseUrl;
|
|
6
|
+
clientId?: string;
|
|
7
|
+
kid?: string;
|
|
8
|
+
jwk?: JWK;
|
|
9
|
+
alg?: Alg | string;
|
|
10
|
+
endpointMetadata?: EndpointMetadataResult;
|
|
11
|
+
accessTokenResponse?: AccessTokenResponse;
|
|
12
|
+
authorizationRequestOpts?: AuthorizationRequestOpts;
|
|
13
|
+
pkce: PKCEOpts;
|
|
14
|
+
authorizationURL?: string;
|
|
15
|
+
}
|
|
3
16
|
export declare class OpenID4VCIClient {
|
|
4
|
-
private readonly
|
|
5
|
-
private readonly _credentialIssuer;
|
|
6
|
-
private _clientId?;
|
|
7
|
-
private _kid;
|
|
8
|
-
private _jwk;
|
|
9
|
-
private _alg;
|
|
10
|
-
private _endpointMetadata;
|
|
11
|
-
private _accessTokenResponse;
|
|
12
|
-
private _pkce;
|
|
13
|
-
private _authorizationRequestOpts?;
|
|
14
|
-
private _authorizationURL?;
|
|
17
|
+
private readonly _state;
|
|
15
18
|
private constructor();
|
|
16
19
|
static fromCredentialIssuer({ kid, alg, retrieveServerMetadata, clientId, credentialIssuer, pkce, authorizationRequest, createAuthorizationRequestURL, }: {
|
|
17
20
|
credentialIssuer: string;
|
|
@@ -23,6 +26,9 @@ export declare class OpenID4VCIClient {
|
|
|
23
26
|
authorizationRequest?: AuthorizationRequestOpts;
|
|
24
27
|
pkce?: PKCEOpts;
|
|
25
28
|
}): Promise<OpenID4VCIClient>;
|
|
29
|
+
static fromState({ state }: {
|
|
30
|
+
state: OpenID4VCIClientState | string;
|
|
31
|
+
}): Promise<OpenID4VCIClient>;
|
|
26
32
|
static fromURI({ uri, kid, alg, retrieveServerMetadata, clientId, pkce, createAuthorizationRequestURL, authorizationRequest, resolveOfferUri, }: {
|
|
27
33
|
uri: string;
|
|
28
34
|
kid?: string;
|
|
@@ -66,6 +72,7 @@ export declare class OpenID4VCIClient {
|
|
|
66
72
|
deferredCredentialAwait?: boolean;
|
|
67
73
|
deferredCredentialIntervalInMS?: number;
|
|
68
74
|
}): Promise<CredentialResponse>;
|
|
75
|
+
exportState(): Promise<OpenID4VCIClientState>;
|
|
69
76
|
getCredentialsSupported(restrictToInitiationTypes: boolean, format?: (OID4VCICredentialFormat | string) | (OID4VCICredentialFormat | string)[]): CredentialSupported[];
|
|
70
77
|
getCredentialOfferTypes(): string[][];
|
|
71
78
|
issuerSupportedFlowTypes(): AuthzFlowType[];
|
|
@@ -86,6 +93,10 @@ export declare class OpenID4VCIClient {
|
|
|
86
93
|
getCredentialEndpoint(): string;
|
|
87
94
|
hasDeferredCredentialEndpoint(): boolean;
|
|
88
95
|
getDeferredCredentialEndpoint(): string;
|
|
96
|
+
/**
|
|
97
|
+
* Too bad we need a method like this, but EBSI is not exposing metadata
|
|
98
|
+
*/
|
|
99
|
+
isEBSI(): boolean | undefined;
|
|
89
100
|
private assertIssuerData;
|
|
90
101
|
private assertServerMetadata;
|
|
91
102
|
private assertAccessToken;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenID4VCIClient.d.ts","sourceRoot":"","sources":["../lib/OpenID4VCIClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,GAAG,EACH,wBAAwB,EACxB,qBAAqB,EACrB,aAAa,EAGb,iCAAiC,EACjC,kBAAkB,EAClB,mBAAmB,EAEnB,sBAAsB,EAKtB,GAAG,EAEH,uBAAuB,EACvB,iBAAiB,EACjB,QAAQ,EACR,0BAA0B,EAE3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAavD,
|
|
1
|
+
{"version":3,"file":"OpenID4VCIClient.d.ts","sourceRoot":"","sources":["../lib/OpenID4VCIClient.ts"],"names":[],"mappings":"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"}
|
package/dist/OpenID4VCIClient.js
CHANGED
|
@@ -24,23 +24,27 @@ const ProofOfPossessionBuilder_1 = require("./ProofOfPossessionBuilder");
|
|
|
24
24
|
const AuthorizationUtil_1 = require("./functions/AuthorizationUtil");
|
|
25
25
|
const debug = (0, debug_1.default)('sphereon:oid4vci');
|
|
26
26
|
class OpenID4VCIClient {
|
|
27
|
-
constructor({ credentialOffer, clientId, kid, alg, credentialIssuer, pkce, authorizationRequest, }) {
|
|
28
|
-
var _a
|
|
29
|
-
this._pkce = { disabled: false, codeChallengeMethod: oid4vci_common_1.CodeChallengeMethod.S256 };
|
|
30
|
-
this._credentialOffer = credentialOffer;
|
|
27
|
+
constructor({ credentialOffer, clientId, kid, alg, credentialIssuer, pkce, authorizationRequest, jwk, endpointMetadata, accessTokenResponse, authorizationRequestOpts, authorizationURL }) {
|
|
28
|
+
var _a;
|
|
31
29
|
const issuer = credentialIssuer !== null && credentialIssuer !== void 0 ? credentialIssuer : (credentialOffer ? (0, oid4vci_common_1.getIssuerFromCredentialOfferPayload)(credentialOffer.credential_offer) : undefined);
|
|
32
30
|
if (!issuer) {
|
|
33
31
|
throw Error('No credential issuer supplied or deduced from offer');
|
|
34
32
|
}
|
|
35
|
-
this.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
33
|
+
this._state = {
|
|
34
|
+
credentialOffer,
|
|
35
|
+
credentialIssuer: issuer,
|
|
36
|
+
kid,
|
|
37
|
+
alg,
|
|
38
|
+
// TODO: We need to refactor this and always explicitly call createAuthorizationRequestUrl, so we can have a credential selection first and use the kid as a default for the client id
|
|
39
|
+
clientId: (_a = clientId !== null && clientId !== void 0 ? clientId : (credentialOffer && (0, oid4vci_common_1.getClientIdFromCredentialOfferPayload)(credentialOffer.credential_offer))) !== null && _a !== void 0 ? _a : kid === null || kid === void 0 ? void 0 : kid.split('#')[0],
|
|
40
|
+
pkce: Object.assign({ disabled: false, codeChallengeMethod: oid4vci_common_1.CodeChallengeMethod.S256 }, pkce),
|
|
41
|
+
jwk,
|
|
42
|
+
endpointMetadata,
|
|
43
|
+
accessTokenResponse,
|
|
44
|
+
authorizationURL
|
|
45
|
+
};
|
|
46
|
+
this._state = Object.assign(Object.assign({}, this._state), { authorizationRequestOpts: authorizationRequestOpts !== null && authorizationRequestOpts !== void 0 ? authorizationRequestOpts : this.syncAuthorizationRequestOpts(authorizationRequest) });
|
|
47
|
+
debug(`Authorization req options: ${JSON.stringify(this._state.authorizationRequestOpts, null, 2)}`);
|
|
44
48
|
}
|
|
45
49
|
static fromCredentialIssuer({ kid, alg, retrieveServerMetadata, clientId, credentialIssuer, pkce, authorizationRequest, createAuthorizationRequestURL, }) {
|
|
46
50
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -61,6 +65,12 @@ class OpenID4VCIClient {
|
|
|
61
65
|
return client;
|
|
62
66
|
});
|
|
63
67
|
}
|
|
68
|
+
static fromState({ state }) {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
const clientState = typeof state === 'string' ? JSON.parse(state) : state;
|
|
71
|
+
return new OpenID4VCIClient(clientState);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
64
74
|
static fromURI({ uri, kid, alg, retrieveServerMetadata, clientId, pkce, createAuthorizationRequestURL, authorizationRequest, resolveOfferUri, }) {
|
|
65
75
|
var _a;
|
|
66
76
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -78,9 +88,8 @@ class OpenID4VCIClient {
|
|
|
78
88
|
}
|
|
79
89
|
if (credentialOfferClient.supportedFlows.includes(oid4vci_common_1.AuthzFlowType.AUTHORIZATION_CODE_FLOW) &&
|
|
80
90
|
(createAuthorizationRequestURL === undefined || createAuthorizationRequestURL)) {
|
|
81
|
-
console.log(`AUTH REQ`);
|
|
82
91
|
yield client.createAuthorizationRequestUrl({ authorizationRequest, pkce });
|
|
83
|
-
|
|
92
|
+
debug(`Authorization Request URL: ${client._state.authorizationURL}`);
|
|
84
93
|
}
|
|
85
94
|
return client;
|
|
86
95
|
});
|
|
@@ -94,37 +103,37 @@ class OpenID4VCIClient {
|
|
|
94
103
|
createAuthorizationRequestUrl(opts) {
|
|
95
104
|
var _a;
|
|
96
105
|
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
-
if (!this.
|
|
106
|
+
if (!this._state.authorizationURL) {
|
|
98
107
|
this.calculatePKCEOpts(opts === null || opts === void 0 ? void 0 : opts.pkce);
|
|
99
|
-
this.
|
|
100
|
-
if (!this.
|
|
108
|
+
this._state.authorizationRequestOpts = this.syncAuthorizationRequestOpts(opts === null || opts === void 0 ? void 0 : opts.authorizationRequest);
|
|
109
|
+
if (!this._state.authorizationRequestOpts) {
|
|
101
110
|
throw Error(`No Authorization Request options present or provided in this call`);
|
|
102
111
|
}
|
|
103
112
|
// todo: Probably can go with current logic in MetadataClient who will always set the authorization_endpoint when found
|
|
104
113
|
// handling this because of the support for v1_0-08
|
|
105
|
-
if (((_a = this.
|
|
106
|
-
this.
|
|
114
|
+
if (((_a = this._state.endpointMetadata) === null || _a === void 0 ? void 0 : _a.credentialIssuerMetadata) && 'authorization_endpoint' in this._state.endpointMetadata.credentialIssuerMetadata) {
|
|
115
|
+
this._state.endpointMetadata.authorization_endpoint = this._state.endpointMetadata.credentialIssuerMetadata.authorization_endpoint;
|
|
107
116
|
}
|
|
108
|
-
this.
|
|
109
|
-
pkce: this.
|
|
117
|
+
this._state.authorizationURL = yield (0, AuthorizationCodeClient_1.createAuthorizationRequestUrl)({
|
|
118
|
+
pkce: this._state.pkce,
|
|
110
119
|
endpointMetadata: this.endpointMetadata,
|
|
111
|
-
authorizationRequest: this.
|
|
120
|
+
authorizationRequest: this._state.authorizationRequestOpts,
|
|
112
121
|
credentialOffer: this.credentialOffer,
|
|
113
122
|
credentialsSupported: this.getCredentialsSupported(true),
|
|
114
123
|
});
|
|
115
124
|
}
|
|
116
|
-
return this.
|
|
125
|
+
return this._state.authorizationURL;
|
|
117
126
|
});
|
|
118
127
|
}
|
|
119
128
|
retrieveServerMetadata() {
|
|
120
129
|
return __awaiter(this, void 0, void 0, function* () {
|
|
121
130
|
this.assertIssuerData();
|
|
122
|
-
if (!this.
|
|
131
|
+
if (!this._state.endpointMetadata) {
|
|
123
132
|
if (this.credentialOffer) {
|
|
124
|
-
this.
|
|
133
|
+
this._state.endpointMetadata = yield MetadataClient_1.MetadataClient.retrieveAllMetadataFromCredentialOffer(this.credentialOffer);
|
|
125
134
|
}
|
|
126
|
-
else if (this.
|
|
127
|
-
this.
|
|
135
|
+
else if (this._state.credentialIssuer) {
|
|
136
|
+
this._state.endpointMetadata = yield MetadataClient_1.MetadataClient.retrieveAllMetadata(this._state.credentialIssuer);
|
|
128
137
|
}
|
|
129
138
|
else {
|
|
130
139
|
throw Error(`Cannot retrieve issuer metadata without either a credential offer, or issuer value`);
|
|
@@ -134,7 +143,7 @@ class OpenID4VCIClient {
|
|
|
134
143
|
});
|
|
135
144
|
}
|
|
136
145
|
calculatePKCEOpts(pkce) {
|
|
137
|
-
this.
|
|
146
|
+
this._state.pkce = (0, AuthorizationUtil_1.generateMissingPKCEOpts)(Object.assign(Object.assign({}, this._state.pkce), pkce));
|
|
138
147
|
}
|
|
139
148
|
acquireAccessToken(opts) {
|
|
140
149
|
var _a, _b, _c, _d, _e, _f;
|
|
@@ -143,31 +152,31 @@ class OpenID4VCIClient {
|
|
|
143
152
|
let { redirectUri } = opts !== null && opts !== void 0 ? opts : {};
|
|
144
153
|
const code = (_a = opts === null || opts === void 0 ? void 0 : opts.code) !== null && _a !== void 0 ? _a : ((opts === null || opts === void 0 ? void 0 : opts.authorizationResponse) ? (0, oid4vci_common_1.toAuthorizationResponsePayload)(opts.authorizationResponse).code : undefined);
|
|
145
154
|
if (opts === null || opts === void 0 ? void 0 : opts.codeVerifier) {
|
|
146
|
-
this.
|
|
155
|
+
this._state.pkce.codeVerifier = opts.codeVerifier;
|
|
147
156
|
}
|
|
148
157
|
this.assertIssuerData();
|
|
149
158
|
if (clientId) {
|
|
150
|
-
this.
|
|
159
|
+
this._state.clientId = clientId;
|
|
151
160
|
}
|
|
152
|
-
if (!this.
|
|
161
|
+
if (!this._state.accessTokenResponse) {
|
|
153
162
|
const accessTokenClient = new AccessTokenClient_1.AccessTokenClient();
|
|
154
|
-
if (redirectUri && redirectUri !== ((_b = this.
|
|
155
|
-
console.log(`Redirect URI mismatch between access-token (${redirectUri}) and authorization request (${(_c = this.
|
|
163
|
+
if (redirectUri && redirectUri !== ((_b = this._state.authorizationRequestOpts) === null || _b === void 0 ? void 0 : _b.redirectUri)) {
|
|
164
|
+
console.log(`Redirect URI mismatch between access-token (${redirectUri}) and authorization request (${(_c = this._state.authorizationRequestOpts) === null || _c === void 0 ? void 0 : _c.redirectUri}). According to the specification that is not allowed.`);
|
|
156
165
|
}
|
|
157
|
-
if (((_d = this.
|
|
158
|
-
redirectUri = this.
|
|
166
|
+
if (((_d = this._state.authorizationRequestOpts) === null || _d === void 0 ? void 0 : _d.redirectUri) && !redirectUri) {
|
|
167
|
+
redirectUri = this._state.authorizationRequestOpts.redirectUri;
|
|
159
168
|
}
|
|
160
|
-
const response = yield accessTokenClient.acquireAccessToken(Object.assign(Object.assign({ credentialOffer: this.credentialOffer, metadata: this.endpointMetadata, credentialIssuer: this.getIssuer(), pin }, (!this.
|
|
169
|
+
const response = yield accessTokenClient.acquireAccessToken(Object.assign(Object.assign({ credentialOffer: this.credentialOffer, metadata: this.endpointMetadata, credentialIssuer: this.getIssuer(), pin }, (!this._state.pkce.disabled && { codeVerifier: this._state.pkce.codeVerifier })), { code,
|
|
161
170
|
redirectUri, asOpts: { clientId: this.clientId } }));
|
|
162
171
|
if (response.errorBody) {
|
|
163
172
|
debug(`Access token error:\r\n${response.errorBody}`);
|
|
164
|
-
throw Error(`Retrieving an access token from ${(_e = this.
|
|
173
|
+
throw Error(`Retrieving an access token from ${(_e = this._state.endpointMetadata) === null || _e === void 0 ? void 0 : _e.token_endpoint} for issuer ${this.getIssuer()} failed with status: ${response.origResponse.status}`);
|
|
165
174
|
}
|
|
166
175
|
else if (!response.successBody) {
|
|
167
176
|
debug(`Access token error. No success body`);
|
|
168
|
-
throw Error(`Retrieving an access token from ${(_f = this.
|
|
177
|
+
throw Error(`Retrieving an access token from ${(_f = this._state.endpointMetadata) === null || _f === void 0 ? void 0 : _f.token_endpoint} for issuer ${this.getIssuer()} failed as there was no success response body`);
|
|
169
178
|
}
|
|
170
|
-
this.
|
|
179
|
+
this._state.accessTokenResponse = response.successBody;
|
|
171
180
|
}
|
|
172
181
|
return this.accessTokenResponse;
|
|
173
182
|
});
|
|
@@ -179,11 +188,11 @@ class OpenID4VCIClient {
|
|
|
179
188
|
throw new Error(oid4vci_common_1.KID_JWK_X5C_ERROR + `. jwk: ${jwk !== undefined}, kid: ${kid !== undefined}`);
|
|
180
189
|
}
|
|
181
190
|
if (alg)
|
|
182
|
-
this.
|
|
191
|
+
this._state.alg = alg;
|
|
183
192
|
if (jwk)
|
|
184
|
-
this.
|
|
193
|
+
this._state.jwk = jwk;
|
|
185
194
|
if (kid)
|
|
186
|
-
this.
|
|
195
|
+
this._state.kid = kid;
|
|
187
196
|
const requestBuilder = this.credentialOffer
|
|
188
197
|
? CredentialRequestClientBuilder_1.CredentialRequestClientBuilder.fromCredentialOffer({
|
|
189
198
|
credentialOffer: this.credentialOffer,
|
|
@@ -230,11 +239,11 @@ class OpenID4VCIClient {
|
|
|
230
239
|
})
|
|
231
240
|
.withIssuer(this.getIssuer())
|
|
232
241
|
.withAlg(this.alg);
|
|
233
|
-
if (this.
|
|
234
|
-
proofBuilder.withJWK(this.
|
|
242
|
+
if (this._state.jwk) {
|
|
243
|
+
proofBuilder.withJWK(this._state.jwk);
|
|
235
244
|
}
|
|
236
|
-
if (this.
|
|
237
|
-
proofBuilder.withKid(this.
|
|
245
|
+
if (this._state.kid) {
|
|
246
|
+
proofBuilder.withKid(this._state.kid);
|
|
238
247
|
}
|
|
239
248
|
if (this.clientId) {
|
|
240
249
|
proofBuilder.withClientId(this.clientId);
|
|
@@ -250,15 +259,20 @@ class OpenID4VCIClient {
|
|
|
250
259
|
});
|
|
251
260
|
if (response.errorBody) {
|
|
252
261
|
debug(`Credential request error:\r\n${JSON.stringify(response.errorBody)}`);
|
|
253
|
-
throw Error(`Retrieving a credential from ${(_b = this.
|
|
262
|
+
throw Error(`Retrieving a credential from ${(_b = this._state.endpointMetadata) === null || _b === void 0 ? void 0 : _b.credential_endpoint} for issuer ${this.getIssuer()} failed with status: ${response.origResponse.status}`);
|
|
254
263
|
}
|
|
255
264
|
else if (!response.successBody) {
|
|
256
265
|
debug(`Credential request error. No success body`);
|
|
257
|
-
throw Error(`Retrieving a credential from ${(_c = this.
|
|
266
|
+
throw Error(`Retrieving a credential from ${(_c = this._state.endpointMetadata) === null || _c === void 0 ? void 0 : _c.credential_endpoint} for issuer ${this.getIssuer()} failed as there was no success response body`);
|
|
258
267
|
}
|
|
259
268
|
return response.successBody;
|
|
260
269
|
});
|
|
261
270
|
}
|
|
271
|
+
exportState() {
|
|
272
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
273
|
+
return this._state;
|
|
274
|
+
});
|
|
275
|
+
}
|
|
262
276
|
// FIXME: We really should convert <v11 to v12 objects first. Right now the logic doesn't map nicely and is brittle.
|
|
263
277
|
// We should resolve IDs to objects first in case of strings.
|
|
264
278
|
// When < v11 convert into a v12 object. When v12 object retain it.
|
|
@@ -301,19 +315,19 @@ class OpenID4VCIClient {
|
|
|
301
315
|
}
|
|
302
316
|
issuerSupportedFlowTypes() {
|
|
303
317
|
var _a, _b, _c, _d;
|
|
304
|
-
return ((_b = (_a = this.credentialOffer) === null || _a === void 0 ? void 0 : _a.supportedFlows) !== null && _b !== void 0 ? _b : (((_d = (_c = this.
|
|
318
|
+
return ((_b = (_a = this.credentialOffer) === null || _a === void 0 ? void 0 : _a.supportedFlows) !== null && _b !== void 0 ? _b : (((_d = (_c = this._state.endpointMetadata) === null || _c === void 0 ? void 0 : _c.credentialIssuerMetadata) === null || _d === void 0 ? void 0 : _d.authorization_endpoint) ? [oid4vci_common_1.AuthzFlowType.AUTHORIZATION_CODE_FLOW] : []));
|
|
305
319
|
}
|
|
306
320
|
isFlowTypeSupported(flowType) {
|
|
307
321
|
return this.issuerSupportedFlowTypes().includes(flowType);
|
|
308
322
|
}
|
|
309
323
|
get authorizationURL() {
|
|
310
|
-
return this.
|
|
324
|
+
return this._state.authorizationURL;
|
|
311
325
|
}
|
|
312
326
|
hasAuthorizationURL() {
|
|
313
327
|
return !!this.authorizationURL;
|
|
314
328
|
}
|
|
315
329
|
get credentialOffer() {
|
|
316
|
-
return this.
|
|
330
|
+
return this._state.credentialOffer;
|
|
317
331
|
}
|
|
318
332
|
version() {
|
|
319
333
|
var _a, _b;
|
|
@@ -322,39 +336,39 @@ class OpenID4VCIClient {
|
|
|
322
336
|
get endpointMetadata() {
|
|
323
337
|
this.assertServerMetadata();
|
|
324
338
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
325
|
-
return this.
|
|
339
|
+
return this._state.endpointMetadata;
|
|
326
340
|
}
|
|
327
341
|
get kid() {
|
|
328
342
|
this.assertIssuerData();
|
|
329
|
-
if (!this.
|
|
343
|
+
if (!this._state.kid) {
|
|
330
344
|
throw new Error('No value for kid is supplied');
|
|
331
345
|
}
|
|
332
|
-
return this.
|
|
346
|
+
return this._state.kid;
|
|
333
347
|
}
|
|
334
348
|
get alg() {
|
|
335
349
|
this.assertIssuerData();
|
|
336
|
-
if (!this.
|
|
350
|
+
if (!this._state.alg) {
|
|
337
351
|
throw new Error('No value for alg is supplied');
|
|
338
352
|
}
|
|
339
|
-
return this.
|
|
353
|
+
return this._state.alg;
|
|
340
354
|
}
|
|
341
355
|
set clientId(value) {
|
|
342
|
-
this.
|
|
356
|
+
this._state.clientId = value;
|
|
343
357
|
}
|
|
344
358
|
get clientId() {
|
|
345
|
-
return this.
|
|
359
|
+
return this._state.clientId;
|
|
346
360
|
}
|
|
347
361
|
hasAccessTokenResponse() {
|
|
348
|
-
return !!this.
|
|
362
|
+
return !!this._state.accessTokenResponse;
|
|
349
363
|
}
|
|
350
364
|
get accessTokenResponse() {
|
|
351
365
|
this.assertAccessToken();
|
|
352
366
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
353
|
-
return this.
|
|
367
|
+
return this._state.accessTokenResponse;
|
|
354
368
|
}
|
|
355
369
|
getIssuer() {
|
|
356
370
|
this.assertIssuerData();
|
|
357
|
-
return this.
|
|
371
|
+
return this._state.credentialIssuer;
|
|
358
372
|
}
|
|
359
373
|
getAccessTokenEndpoint() {
|
|
360
374
|
this.assertIssuerData();
|
|
@@ -373,36 +387,50 @@ class OpenID4VCIClient {
|
|
|
373
387
|
this.assertIssuerData();
|
|
374
388
|
return this.endpointMetadata ? this.endpointMetadata.credential_endpoint : `${this.getIssuer()}/credential`;
|
|
375
389
|
}
|
|
390
|
+
/**
|
|
391
|
+
* Too bad we need a method like this, but EBSI is not exposing metadata
|
|
392
|
+
*/
|
|
393
|
+
isEBSI() {
|
|
394
|
+
var _a, _b, _c;
|
|
395
|
+
if ((_a = this.credentialOffer) === null || _a === void 0 ? void 0 : _a.credential_offer.credentials.find((cred) =>
|
|
396
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
397
|
+
// @ts-ignore
|
|
398
|
+
typeof cred !== 'string' && 'trust_framework' in cred && 'name' in cred.trust_framework && cred.trust_framework.name.includes('ebsi'))) {
|
|
399
|
+
return true;
|
|
400
|
+
}
|
|
401
|
+
this.assertIssuerData();
|
|
402
|
+
return (_c = (_b = this.endpointMetadata.credentialIssuerMetadata) === null || _b === void 0 ? void 0 : _b.authorization_endpoint) === null || _c === void 0 ? void 0 : _c.includes('ebsi.eu');
|
|
403
|
+
}
|
|
376
404
|
assertIssuerData() {
|
|
377
|
-
if (!this.
|
|
405
|
+
if (!this._state.credentialIssuer) {
|
|
378
406
|
throw Error(`No credential issuer value present`);
|
|
379
407
|
}
|
|
380
|
-
else if (!this.
|
|
408
|
+
else if (!this._state.credentialOffer && this._state.endpointMetadata && this.issuerSupportedFlowTypes().length === 0) {
|
|
381
409
|
throw Error(`No issuance initiation or credential offer present`);
|
|
382
410
|
}
|
|
383
411
|
}
|
|
384
412
|
assertServerMetadata() {
|
|
385
|
-
if (!this.
|
|
413
|
+
if (!this._state.endpointMetadata) {
|
|
386
414
|
throw Error('No server metadata');
|
|
387
415
|
}
|
|
388
416
|
}
|
|
389
417
|
assertAccessToken() {
|
|
390
|
-
if (!this.
|
|
418
|
+
if (!this._state.accessTokenResponse) {
|
|
391
419
|
throw Error(`No access token present`);
|
|
392
420
|
}
|
|
393
421
|
}
|
|
394
422
|
syncAuthorizationRequestOpts(opts) {
|
|
395
|
-
var _a;
|
|
396
|
-
let authorizationRequestOpts = Object.assign(Object.assign({}, this.
|
|
423
|
+
var _a, _b;
|
|
424
|
+
let authorizationRequestOpts = Object.assign(Object.assign({}, (_a = this._state) === null || _a === void 0 ? void 0 : _a.authorizationRequestOpts), opts);
|
|
397
425
|
if (!authorizationRequestOpts) {
|
|
398
426
|
// We only set a redirectUri if no options are provided.
|
|
399
427
|
// Note that this only works for mobile apps, that can handle a code query param on the default openid-credential-offer deeplink.
|
|
400
428
|
// Provide your own options if that is not desired!
|
|
401
429
|
authorizationRequestOpts = { redirectUri: `${oid4vci_common_1.DefaultURISchemes.CREDENTIAL_OFFER}://` };
|
|
402
430
|
}
|
|
403
|
-
const clientId = (
|
|
431
|
+
const clientId = (_b = authorizationRequestOpts.clientId) !== null && _b !== void 0 ? _b : this._state.clientId;
|
|
404
432
|
// sync clientId
|
|
405
|
-
this.
|
|
433
|
+
this._state.clientId = clientId;
|
|
406
434
|
authorizationRequestOpts.clientId = clientId;
|
|
407
435
|
return authorizationRequestOpts;
|
|
408
436
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenID4VCIClient.js","sourceRoot":"","sources":["../lib/OpenID4VCIClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OpenID4VCIClient.js","sourceRoot":"","sources":["../lib/OpenID4VCIClient.ts"],"names":[],"mappings":"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"}
|
package/lib/AccessTokenClient.ts
CHANGED
|
@@ -235,7 +235,6 @@ export class AccessTokenClient {
|
|
|
235
235
|
const hostname = url.replace(/https?:\/\//, '').replace(/\/$/, '');
|
|
236
236
|
const endpoint = tokenEndpoint ? (tokenEndpoint.startsWith('/') ? tokenEndpoint : tokenEndpoint.substring(1)) : '/token';
|
|
237
237
|
const scheme = url.split('://')[0];
|
|
238
|
-
console.log(`scheme: ${scheme}, hostname: ${hostname}, endpoint: ${endpoint}`);
|
|
239
238
|
return `${scheme ? scheme + '://' : 'https://'}${hostname}${endpoint}`;
|
|
240
239
|
}
|
|
241
240
|
|
|
@@ -13,6 +13,9 @@ import {
|
|
|
13
13
|
ResponseType,
|
|
14
14
|
} from '@sphereon/oid4vci-common';
|
|
15
15
|
import { formPost } from '@sphereon/oid4vci-common';
|
|
16
|
+
import Debug from 'debug';
|
|
17
|
+
|
|
18
|
+
const debug = Debug('sphereon:oid4vci');
|
|
16
19
|
|
|
17
20
|
export const createAuthorizationRequestUrl = async ({
|
|
18
21
|
pkce,
|
|
@@ -87,16 +90,16 @@ export const createAuthorizationRequestUrl = async ({
|
|
|
87
90
|
if (!parEndpoint && parMode === PARMode.REQUIRE) {
|
|
88
91
|
throw Error(`PAR mode is set to required by Authorization Server does not support PAR!`);
|
|
89
92
|
} else if (parEndpoint && parMode !== PARMode.NEVER) {
|
|
90
|
-
|
|
93
|
+
debug(`USING PAR with endpoint ${parEndpoint}`);
|
|
91
94
|
const parResponse = await formPost<PushedAuthorizationResponse>(parEndpoint, new URLSearchParams(queryObj));
|
|
92
95
|
if (parResponse.errorBody || !parResponse.successBody) {
|
|
93
96
|
throw Error(`PAR error`);
|
|
94
97
|
}
|
|
95
|
-
|
|
98
|
+
debug(`PAR response: ${(parResponse.successBody, null, 2)}`);
|
|
96
99
|
queryObj = { request_uri: parResponse.successBody.request_uri };
|
|
97
100
|
}
|
|
98
101
|
|
|
99
|
-
|
|
102
|
+
debug(`Object that will become query params: ` + JSON.stringify(queryObj, null, 2));
|
|
100
103
|
const url = convertJsonToURI(queryObj, {
|
|
101
104
|
baseUrl: endpointMetadata.authorization_endpoint,
|
|
102
105
|
uriTypeProperties: ['client_id', 'request_uri', 'redirect_uri', 'scope', 'authorization_details', 'issuer_state'],
|
|
@@ -104,7 +107,7 @@ export const createAuthorizationRequestUrl = async ({
|
|
|
104
107
|
mode: JsonURIMode.X_FORM_WWW_URLENCODED,
|
|
105
108
|
// We do not add the version here, as this always needs to be form encoded
|
|
106
109
|
});
|
|
107
|
-
|
|
110
|
+
debug(`Authorization Request URL: ${url}`);
|
|
108
111
|
return url;
|
|
109
112
|
};
|
|
110
113
|
|
package/lib/OpenID4VCIClient.ts
CHANGED
|
@@ -36,19 +36,22 @@ import { generateMissingPKCEOpts } from './functions/AuthorizationUtil';
|
|
|
36
36
|
|
|
37
37
|
const debug = Debug('sphereon:oid4vci');
|
|
38
38
|
|
|
39
|
+
export interface OpenID4VCIClientState {
|
|
40
|
+
credentialIssuer: string;
|
|
41
|
+
credentialOffer?: CredentialOfferRequestWithBaseUrl
|
|
42
|
+
clientId?: string;
|
|
43
|
+
kid?: string;
|
|
44
|
+
jwk?: JWK;
|
|
45
|
+
alg?: Alg | string;
|
|
46
|
+
endpointMetadata?: EndpointMetadataResult;
|
|
47
|
+
accessTokenResponse?: AccessTokenResponse;
|
|
48
|
+
authorizationRequestOpts?: AuthorizationRequestOpts;
|
|
49
|
+
pkce: PKCEOpts;
|
|
50
|
+
authorizationURL?: string;
|
|
51
|
+
}
|
|
52
|
+
|
|
39
53
|
export class OpenID4VCIClient {
|
|
40
|
-
private readonly
|
|
41
|
-
private readonly _credentialIssuer: string;
|
|
42
|
-
private _clientId?: string;
|
|
43
|
-
private _kid: string | undefined;
|
|
44
|
-
private _jwk: JWK | undefined;
|
|
45
|
-
private _alg: Alg | string | undefined;
|
|
46
|
-
private _endpointMetadata: EndpointMetadataResult | undefined;
|
|
47
|
-
private _accessTokenResponse: AccessTokenResponse | undefined;
|
|
48
|
-
private _pkce: PKCEOpts = { disabled: false, codeChallengeMethod: CodeChallengeMethod.S256 };
|
|
49
|
-
private _authorizationRequestOpts?: AuthorizationRequestOpts;
|
|
50
|
-
|
|
51
|
-
private _authorizationURL?: string;
|
|
54
|
+
private readonly _state: OpenID4VCIClientState;
|
|
52
55
|
|
|
53
56
|
private constructor({
|
|
54
57
|
credentialOffer,
|
|
@@ -58,6 +61,11 @@ export class OpenID4VCIClient {
|
|
|
58
61
|
credentialIssuer,
|
|
59
62
|
pkce,
|
|
60
63
|
authorizationRequest,
|
|
64
|
+
jwk,
|
|
65
|
+
endpointMetadata,
|
|
66
|
+
accessTokenResponse,
|
|
67
|
+
authorizationRequestOpts,
|
|
68
|
+
authorizationURL
|
|
61
69
|
}: {
|
|
62
70
|
credentialOffer?: CredentialOfferRequestWithBaseUrl;
|
|
63
71
|
kid?: string;
|
|
@@ -66,24 +74,34 @@ export class OpenID4VCIClient {
|
|
|
66
74
|
credentialIssuer?: string;
|
|
67
75
|
pkce?: PKCEOpts;
|
|
68
76
|
authorizationRequest?: AuthorizationRequestOpts; // Can be provided here, or when manually calling createAuthorizationUrl
|
|
77
|
+
jwk?: JWK;
|
|
78
|
+
endpointMetadata?: EndpointMetadataResult;
|
|
79
|
+
accessTokenResponse?: AccessTokenResponse;
|
|
80
|
+
authorizationRequestOpts?: AuthorizationRequestOpts;
|
|
81
|
+
authorizationURL?: string;
|
|
69
82
|
}) {
|
|
70
|
-
this._credentialOffer = credentialOffer;
|
|
71
83
|
const issuer = credentialIssuer ?? (credentialOffer ? getIssuerFromCredentialOfferPayload(credentialOffer.credential_offer) : undefined);
|
|
72
84
|
if (!issuer) {
|
|
73
85
|
throw Error('No credential issuer supplied or deduced from offer');
|
|
74
86
|
}
|
|
75
|
-
this.
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
(credentialOffer && getClientIdFromCredentialOfferPayload(credentialOffer.credential_offer)) ??
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
this._state = {
|
|
88
|
+
credentialOffer,
|
|
89
|
+
credentialIssuer: issuer,
|
|
90
|
+
kid,
|
|
91
|
+
alg,
|
|
92
|
+
// TODO: We need to refactor this and always explicitly call createAuthorizationRequestUrl, so we can have a credential selection first and use the kid as a default for the client id
|
|
93
|
+
clientId: clientId ?? (credentialOffer && getClientIdFromCredentialOfferPayload(credentialOffer.credential_offer)) ?? kid?.split('#')[0],
|
|
94
|
+
pkce: { disabled: false, codeChallengeMethod: CodeChallengeMethod.S256, ...pkce },
|
|
95
|
+
jwk,
|
|
96
|
+
endpointMetadata,
|
|
97
|
+
accessTokenResponse,
|
|
98
|
+
authorizationURL
|
|
99
|
+
}
|
|
100
|
+
this._state = {
|
|
101
|
+
...this._state,
|
|
102
|
+
authorizationRequestOpts: authorizationRequestOpts ?? this.syncAuthorizationRequestOpts(authorizationRequest),
|
|
103
|
+
}
|
|
104
|
+
debug(`Authorization req options: ${JSON.stringify(this._state.authorizationRequestOpts, null, 2)}`);
|
|
87
105
|
}
|
|
88
106
|
|
|
89
107
|
public static async fromCredentialIssuer({
|
|
@@ -122,6 +140,12 @@ export class OpenID4VCIClient {
|
|
|
122
140
|
return client;
|
|
123
141
|
}
|
|
124
142
|
|
|
143
|
+
public static async fromState({ state }: {state: OpenID4VCIClientState | string }): Promise<OpenID4VCIClient> {
|
|
144
|
+
const clientState = typeof state === 'string' ? JSON.parse(state) : state
|
|
145
|
+
|
|
146
|
+
return new OpenID4VCIClient(clientState);
|
|
147
|
+
}
|
|
148
|
+
|
|
125
149
|
public static async fromURI({
|
|
126
150
|
uri,
|
|
127
151
|
kid,
|
|
@@ -160,9 +184,8 @@ export class OpenID4VCIClient {
|
|
|
160
184
|
credentialOfferClient.supportedFlows.includes(AuthzFlowType.AUTHORIZATION_CODE_FLOW) &&
|
|
161
185
|
(createAuthorizationRequestURL === undefined || createAuthorizationRequestURL)
|
|
162
186
|
) {
|
|
163
|
-
console.log(`AUTH REQ`);
|
|
164
187
|
await client.createAuthorizationRequestUrl({ authorizationRequest, pkce });
|
|
165
|
-
|
|
188
|
+
debug(`Authorization Request URL: ${client._state.authorizationURL}`);
|
|
166
189
|
}
|
|
167
190
|
|
|
168
191
|
return client;
|
|
@@ -175,45 +198,46 @@ export class OpenID4VCIClient {
|
|
|
175
198
|
* @param opts
|
|
176
199
|
*/
|
|
177
200
|
public async createAuthorizationRequestUrl(opts?: { authorizationRequest?: AuthorizationRequestOpts; pkce?: PKCEOpts }): Promise<string> {
|
|
178
|
-
if (!this.
|
|
201
|
+
if (!this._state.authorizationURL) {
|
|
179
202
|
this.calculatePKCEOpts(opts?.pkce);
|
|
180
|
-
this.
|
|
181
|
-
if (!this.
|
|
203
|
+
this._state.authorizationRequestOpts = this.syncAuthorizationRequestOpts(opts?.authorizationRequest);
|
|
204
|
+
if (!this._state.authorizationRequestOpts) {
|
|
182
205
|
throw Error(`No Authorization Request options present or provided in this call`);
|
|
183
206
|
}
|
|
184
207
|
|
|
185
208
|
// todo: Probably can go with current logic in MetadataClient who will always set the authorization_endpoint when found
|
|
186
209
|
// handling this because of the support for v1_0-08
|
|
187
|
-
if (this.
|
|
188
|
-
this.
|
|
210
|
+
if (this._state.endpointMetadata?.credentialIssuerMetadata && 'authorization_endpoint' in this._state.endpointMetadata.credentialIssuerMetadata) {
|
|
211
|
+
this._state.endpointMetadata.authorization_endpoint = this._state.endpointMetadata.credentialIssuerMetadata.authorization_endpoint as string;
|
|
189
212
|
}
|
|
190
|
-
this.
|
|
191
|
-
pkce: this.
|
|
213
|
+
this._state.authorizationURL = await createAuthorizationRequestUrl({
|
|
214
|
+
pkce: this._state.pkce,
|
|
192
215
|
endpointMetadata: this.endpointMetadata,
|
|
193
|
-
authorizationRequest: this.
|
|
216
|
+
authorizationRequest: this._state.authorizationRequestOpts,
|
|
194
217
|
credentialOffer: this.credentialOffer,
|
|
195
218
|
credentialsSupported: this.getCredentialsSupported(true),
|
|
196
219
|
});
|
|
197
220
|
}
|
|
198
|
-
return this.
|
|
221
|
+
return this._state.authorizationURL;
|
|
199
222
|
}
|
|
200
223
|
|
|
201
224
|
public async retrieveServerMetadata(): Promise<EndpointMetadataResult> {
|
|
202
225
|
this.assertIssuerData();
|
|
203
|
-
if (!this.
|
|
226
|
+
if (!this._state.endpointMetadata) {
|
|
204
227
|
if (this.credentialOffer) {
|
|
205
|
-
this.
|
|
206
|
-
} else if (this.
|
|
207
|
-
this.
|
|
228
|
+
this._state.endpointMetadata = await MetadataClient.retrieveAllMetadataFromCredentialOffer(this.credentialOffer);
|
|
229
|
+
} else if (this._state.credentialIssuer) {
|
|
230
|
+
this._state.endpointMetadata = await MetadataClient.retrieveAllMetadata(this._state.credentialIssuer);
|
|
208
231
|
} else {
|
|
209
232
|
throw Error(`Cannot retrieve issuer metadata without either a credential offer, or issuer value`);
|
|
210
233
|
}
|
|
211
234
|
}
|
|
235
|
+
|
|
212
236
|
return this.endpointMetadata;
|
|
213
237
|
}
|
|
214
238
|
|
|
215
239
|
private calculatePKCEOpts(pkce?: PKCEOpts) {
|
|
216
|
-
this.
|
|
240
|
+
this._state.pkce = generateMissingPKCEOpts({ ...this._state.pkce, ...pkce });
|
|
217
241
|
}
|
|
218
242
|
|
|
219
243
|
public async acquireAccessToken(opts?: {
|
|
@@ -229,23 +253,23 @@ export class OpenID4VCIClient {
|
|
|
229
253
|
const code = opts?.code ?? (opts?.authorizationResponse ? toAuthorizationResponsePayload(opts.authorizationResponse).code : undefined);
|
|
230
254
|
|
|
231
255
|
if (opts?.codeVerifier) {
|
|
232
|
-
this.
|
|
256
|
+
this._state.pkce.codeVerifier = opts.codeVerifier;
|
|
233
257
|
}
|
|
234
258
|
this.assertIssuerData();
|
|
235
259
|
|
|
236
260
|
if (clientId) {
|
|
237
|
-
this.
|
|
261
|
+
this._state.clientId = clientId;
|
|
238
262
|
}
|
|
239
|
-
if (!this.
|
|
263
|
+
if (!this._state.accessTokenResponse) {
|
|
240
264
|
const accessTokenClient = new AccessTokenClient();
|
|
241
265
|
|
|
242
|
-
if (redirectUri && redirectUri !== this.
|
|
266
|
+
if (redirectUri && redirectUri !== this._state.authorizationRequestOpts?.redirectUri) {
|
|
243
267
|
console.log(
|
|
244
|
-
`Redirect URI mismatch between access-token (${redirectUri}) and authorization request (${this.
|
|
268
|
+
`Redirect URI mismatch between access-token (${redirectUri}) and authorization request (${this._state.authorizationRequestOpts?.redirectUri}). According to the specification that is not allowed.`,
|
|
245
269
|
);
|
|
246
270
|
}
|
|
247
|
-
if (this.
|
|
248
|
-
redirectUri = this.
|
|
271
|
+
if (this._state.authorizationRequestOpts?.redirectUri && !redirectUri) {
|
|
272
|
+
redirectUri = this._state.authorizationRequestOpts.redirectUri;
|
|
249
273
|
}
|
|
250
274
|
|
|
251
275
|
const response = await accessTokenClient.acquireAccessToken({
|
|
@@ -253,7 +277,7 @@ export class OpenID4VCIClient {
|
|
|
253
277
|
metadata: this.endpointMetadata,
|
|
254
278
|
credentialIssuer: this.getIssuer(),
|
|
255
279
|
pin,
|
|
256
|
-
...(!this.
|
|
280
|
+
...(!this._state.pkce.disabled && { codeVerifier: this._state.pkce.codeVerifier }),
|
|
257
281
|
code,
|
|
258
282
|
redirectUri,
|
|
259
283
|
asOpts: { clientId: this.clientId },
|
|
@@ -262,18 +286,18 @@ export class OpenID4VCIClient {
|
|
|
262
286
|
if (response.errorBody) {
|
|
263
287
|
debug(`Access token error:\r\n${response.errorBody}`);
|
|
264
288
|
throw Error(
|
|
265
|
-
`Retrieving an access token from ${this.
|
|
289
|
+
`Retrieving an access token from ${this._state.endpointMetadata?.token_endpoint} for issuer ${this.getIssuer()} failed with status: ${
|
|
266
290
|
response.origResponse.status
|
|
267
291
|
}`,
|
|
268
292
|
);
|
|
269
293
|
} else if (!response.successBody) {
|
|
270
294
|
debug(`Access token error. No success body`);
|
|
271
295
|
throw Error(
|
|
272
|
-
`Retrieving an access token from ${this.
|
|
296
|
+
`Retrieving an access token from ${this._state.endpointMetadata
|
|
273
297
|
?.token_endpoint} for issuer ${this.getIssuer()} failed as there was no success response body`,
|
|
274
298
|
);
|
|
275
299
|
}
|
|
276
|
-
this.
|
|
300
|
+
this._state.accessTokenResponse = response.successBody;
|
|
277
301
|
}
|
|
278
302
|
|
|
279
303
|
return this.accessTokenResponse;
|
|
@@ -306,9 +330,9 @@ export class OpenID4VCIClient {
|
|
|
306
330
|
throw new Error(KID_JWK_X5C_ERROR + `. jwk: ${jwk !== undefined}, kid: ${kid !== undefined}`);
|
|
307
331
|
}
|
|
308
332
|
|
|
309
|
-
if (alg) this.
|
|
310
|
-
if (jwk) this.
|
|
311
|
-
if (kid) this.
|
|
333
|
+
if (alg) this._state.alg = alg;
|
|
334
|
+
if (jwk) this._state.jwk = jwk;
|
|
335
|
+
if (kid) this._state.kid = kid;
|
|
312
336
|
|
|
313
337
|
const requestBuilder = this.credentialOffer
|
|
314
338
|
? CredentialRequestClientBuilder.fromCredentialOffer({
|
|
@@ -362,11 +386,11 @@ export class OpenID4VCIClient {
|
|
|
362
386
|
.withIssuer(this.getIssuer())
|
|
363
387
|
.withAlg(this.alg);
|
|
364
388
|
|
|
365
|
-
if (this.
|
|
366
|
-
proofBuilder.withJWK(this.
|
|
389
|
+
if (this._state.jwk) {
|
|
390
|
+
proofBuilder.withJWK(this._state.jwk);
|
|
367
391
|
}
|
|
368
|
-
if (this.
|
|
369
|
-
proofBuilder.withKid(this.
|
|
392
|
+
if (this._state.kid) {
|
|
393
|
+
proofBuilder.withKid(this._state.kid);
|
|
370
394
|
}
|
|
371
395
|
|
|
372
396
|
if (this.clientId) {
|
|
@@ -384,20 +408,24 @@ export class OpenID4VCIClient {
|
|
|
384
408
|
if (response.errorBody) {
|
|
385
409
|
debug(`Credential request error:\r\n${JSON.stringify(response.errorBody)}`);
|
|
386
410
|
throw Error(
|
|
387
|
-
`Retrieving a credential from ${this.
|
|
411
|
+
`Retrieving a credential from ${this._state.endpointMetadata?.credential_endpoint} for issuer ${this.getIssuer()} failed with status: ${
|
|
388
412
|
response.origResponse.status
|
|
389
413
|
}`,
|
|
390
414
|
);
|
|
391
415
|
} else if (!response.successBody) {
|
|
392
416
|
debug(`Credential request error. No success body`);
|
|
393
417
|
throw Error(
|
|
394
|
-
`Retrieving a credential from ${this.
|
|
418
|
+
`Retrieving a credential from ${this._state.endpointMetadata
|
|
395
419
|
?.credential_endpoint} for issuer ${this.getIssuer()} failed as there was no success response body`,
|
|
396
420
|
);
|
|
397
421
|
}
|
|
398
422
|
return response.successBody;
|
|
399
423
|
}
|
|
400
424
|
|
|
425
|
+
public async exportState(): Promise<OpenID4VCIClientState> {
|
|
426
|
+
return this._state
|
|
427
|
+
}
|
|
428
|
+
|
|
401
429
|
// FIXME: We really should convert <v11 to v12 objects first. Right now the logic doesn't map nicely and is brittle.
|
|
402
430
|
// We should resolve IDs to objects first in case of strings.
|
|
403
431
|
// When < v11 convert into a v12 object. When v12 object retain it.
|
|
@@ -441,7 +469,7 @@ export class OpenID4VCIClient {
|
|
|
441
469
|
issuerSupportedFlowTypes(): AuthzFlowType[] {
|
|
442
470
|
return (
|
|
443
471
|
this.credentialOffer?.supportedFlows ??
|
|
444
|
-
(this.
|
|
472
|
+
(this._state.endpointMetadata?.credentialIssuerMetadata?.authorization_endpoint ? [AuthzFlowType.AUTHORIZATION_CODE_FLOW] : [])
|
|
445
473
|
);
|
|
446
474
|
}
|
|
447
475
|
|
|
@@ -450,7 +478,7 @@ export class OpenID4VCIClient {
|
|
|
450
478
|
}
|
|
451
479
|
|
|
452
480
|
get authorizationURL(): string | undefined {
|
|
453
|
-
return this.
|
|
481
|
+
return this._state.authorizationURL;
|
|
454
482
|
}
|
|
455
483
|
|
|
456
484
|
public hasAuthorizationURL(): boolean {
|
|
@@ -458,7 +486,7 @@ export class OpenID4VCIClient {
|
|
|
458
486
|
}
|
|
459
487
|
|
|
460
488
|
get credentialOffer(): CredentialOfferRequestWithBaseUrl | undefined {
|
|
461
|
-
return this.
|
|
489
|
+
return this._state.credentialOffer;
|
|
462
490
|
}
|
|
463
491
|
|
|
464
492
|
public version(): OpenId4VCIVersion {
|
|
@@ -468,47 +496,46 @@ export class OpenID4VCIClient {
|
|
|
468
496
|
public get endpointMetadata(): EndpointMetadataResult {
|
|
469
497
|
this.assertServerMetadata();
|
|
470
498
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
471
|
-
return this.
|
|
499
|
+
return this._state.endpointMetadata!;
|
|
472
500
|
}
|
|
473
501
|
|
|
474
502
|
get kid(): string {
|
|
475
503
|
this.assertIssuerData();
|
|
476
|
-
if (!this.
|
|
504
|
+
if (!this._state.kid) {
|
|
477
505
|
throw new Error('No value for kid is supplied');
|
|
478
506
|
}
|
|
479
|
-
return this.
|
|
507
|
+
return this._state.kid;
|
|
480
508
|
}
|
|
481
509
|
|
|
482
510
|
get alg(): string {
|
|
483
511
|
this.assertIssuerData();
|
|
484
|
-
if (!this.
|
|
512
|
+
if (!this._state.alg) {
|
|
485
513
|
throw new Error('No value for alg is supplied');
|
|
486
514
|
}
|
|
487
|
-
return this.
|
|
515
|
+
return this._state.alg;
|
|
488
516
|
}
|
|
489
517
|
|
|
490
|
-
|
|
491
518
|
set clientId(value: string | undefined) {
|
|
492
|
-
this.
|
|
519
|
+
this._state.clientId = value;
|
|
493
520
|
}
|
|
494
521
|
|
|
495
522
|
get clientId(): string | undefined {
|
|
496
|
-
return this.
|
|
523
|
+
return this._state.clientId;
|
|
497
524
|
}
|
|
498
525
|
|
|
499
526
|
public hasAccessTokenResponse(): boolean {
|
|
500
|
-
return !!this.
|
|
527
|
+
return !!this._state.accessTokenResponse;
|
|
501
528
|
}
|
|
502
529
|
|
|
503
530
|
get accessTokenResponse(): AccessTokenResponse {
|
|
504
531
|
this.assertAccessToken();
|
|
505
532
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
506
|
-
return this.
|
|
533
|
+
return this._state.accessTokenResponse!;
|
|
507
534
|
}
|
|
508
535
|
|
|
509
536
|
public getIssuer(): string {
|
|
510
537
|
this.assertIssuerData();
|
|
511
|
-
return this.
|
|
538
|
+
return this._state.credentialIssuer;
|
|
512
539
|
}
|
|
513
540
|
|
|
514
541
|
public getAccessTokenEndpoint(): string {
|
|
@@ -532,37 +559,55 @@ export class OpenID4VCIClient {
|
|
|
532
559
|
return this.endpointMetadata ? this.endpointMetadata.credential_endpoint : `${this.getIssuer()}/credential`;
|
|
533
560
|
}
|
|
534
561
|
|
|
562
|
+
/**
|
|
563
|
+
* Too bad we need a method like this, but EBSI is not exposing metadata
|
|
564
|
+
*/
|
|
565
|
+
public isEBSI() {
|
|
566
|
+
if (
|
|
567
|
+
this.credentialOffer?.credential_offer.credentials.find(
|
|
568
|
+
(cred) =>
|
|
569
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
570
|
+
// @ts-ignore
|
|
571
|
+
typeof cred !== 'string' && 'trust_framework' in cred && 'name' in cred.trust_framework && cred.trust_framework.name.includes('ebsi'),
|
|
572
|
+
)
|
|
573
|
+
) {
|
|
574
|
+
return true;
|
|
575
|
+
}
|
|
576
|
+
this.assertIssuerData();
|
|
577
|
+
return this.endpointMetadata.credentialIssuerMetadata?.authorization_endpoint?.includes('ebsi.eu');
|
|
578
|
+
}
|
|
579
|
+
|
|
535
580
|
private assertIssuerData(): void {
|
|
536
|
-
if (!this.
|
|
581
|
+
if (!this._state.credentialIssuer) {
|
|
537
582
|
throw Error(`No credential issuer value present`);
|
|
538
|
-
} else if (!this.
|
|
583
|
+
} else if (!this._state.credentialOffer && this._state.endpointMetadata && this.issuerSupportedFlowTypes().length === 0) {
|
|
539
584
|
throw Error(`No issuance initiation or credential offer present`);
|
|
540
585
|
}
|
|
541
586
|
}
|
|
542
587
|
|
|
543
588
|
private assertServerMetadata(): void {
|
|
544
|
-
if (!this.
|
|
589
|
+
if (!this._state.endpointMetadata) {
|
|
545
590
|
throw Error('No server metadata');
|
|
546
591
|
}
|
|
547
592
|
}
|
|
548
593
|
|
|
549
594
|
private assertAccessToken(): void {
|
|
550
|
-
if (!this.
|
|
595
|
+
if (!this._state.accessTokenResponse) {
|
|
551
596
|
throw Error(`No access token present`);
|
|
552
597
|
}
|
|
553
598
|
}
|
|
554
599
|
|
|
555
600
|
private syncAuthorizationRequestOpts(opts?: AuthorizationRequestOpts): AuthorizationRequestOpts {
|
|
556
|
-
let authorizationRequestOpts = { ...this.
|
|
601
|
+
let authorizationRequestOpts = { ...this._state?.authorizationRequestOpts, ...opts } as AuthorizationRequestOpts;
|
|
557
602
|
if (!authorizationRequestOpts) {
|
|
558
603
|
// We only set a redirectUri if no options are provided.
|
|
559
604
|
// Note that this only works for mobile apps, that can handle a code query param on the default openid-credential-offer deeplink.
|
|
560
605
|
// Provide your own options if that is not desired!
|
|
561
606
|
authorizationRequestOpts = { redirectUri: `${DefaultURISchemes.CREDENTIAL_OFFER}://` };
|
|
562
607
|
}
|
|
563
|
-
const clientId = authorizationRequestOpts.clientId ?? this.
|
|
608
|
+
const clientId = authorizationRequestOpts.clientId ?? this._state.clientId;
|
|
564
609
|
// sync clientId
|
|
565
|
-
this.
|
|
610
|
+
this._state.clientId = clientId;
|
|
566
611
|
authorizationRequestOpts.clientId = clientId;
|
|
567
612
|
return authorizationRequestOpts;
|
|
568
613
|
}
|
|
@@ -28,7 +28,7 @@ describe('OpenID4VCIClient should', () => {
|
|
|
28
28
|
it('should successfully construct an authorization request url', async () => {
|
|
29
29
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
30
30
|
// @ts-ignore
|
|
31
|
-
client.
|
|
31
|
+
client._state.endpointMetadata?.credentialIssuerMetadata.authorization_endpoint = `${MOCK_URL}v1/auth/authorize`;
|
|
32
32
|
const url = await client.createAuthorizationRequestUrl({
|
|
33
33
|
authorizationRequest: {
|
|
34
34
|
scope: 'openid TestCredential',
|
|
@@ -54,7 +54,7 @@ describe('OpenID4VCIClient should', () => {
|
|
|
54
54
|
it("injects 'openid' as the first scope if not provided", async () => {
|
|
55
55
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
56
56
|
// @ts-ignore
|
|
57
|
-
client.
|
|
57
|
+
client._state.endpointMetadata?.credentialIssuerMetadata.authorization_endpoint = `${MOCK_URL}v1/auth/authorize`;
|
|
58
58
|
|
|
59
59
|
const url = await client.createAuthorizationRequestUrl({
|
|
60
60
|
pkce: {
|
|
@@ -85,7 +85,7 @@ describe('OpenID4VCIClient should', () => {
|
|
|
85
85
|
|
|
86
86
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
87
87
|
// @ts-ignore
|
|
88
|
-
client.
|
|
88
|
+
client._state.endpointMetadata = {
|
|
89
89
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
90
90
|
// @ts-ignore
|
|
91
91
|
credentialIssuerMetadata: {
|
|
@@ -93,7 +93,7 @@ describe('OpenID4VCIClient should', () => {
|
|
|
93
93
|
token_endpoint: `${MOCK_URL}/token`,
|
|
94
94
|
},
|
|
95
95
|
};
|
|
96
|
-
// client.
|
|
96
|
+
// client._state.endpointMetadata.credentialIssuerMetadata.authorization_endpoint = `${MOCK_URL}v1/auth/authorize`;
|
|
97
97
|
|
|
98
98
|
await expect(
|
|
99
99
|
client.createAuthorizationRequestUrl({
|
|
@@ -110,7 +110,7 @@ describe('OpenID4VCIClient should', () => {
|
|
|
110
110
|
it('create an authorization request url with authorization_details array property', async () => {
|
|
111
111
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
112
112
|
// @ts-ignore
|
|
113
|
-
client.
|
|
113
|
+
client._state.endpointMetadata?.credentialIssuerMetadata.authorization_endpoint = `${MOCK_URL}v1/auth/authorize`;
|
|
114
114
|
|
|
115
115
|
await expect(
|
|
116
116
|
client.createAuthorizationRequestUrl({
|
|
@@ -146,7 +146,7 @@ describe('OpenID4VCIClient should', () => {
|
|
|
146
146
|
it('create an authorization request url with authorization_details object property', async () => {
|
|
147
147
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
148
148
|
// @ts-ignore
|
|
149
|
-
client.
|
|
149
|
+
client._state.endpointMetadata?.credentialIssuerMetadata.authorization_endpoint = `${MOCK_URL}v1/auth/authorize`;
|
|
150
150
|
|
|
151
151
|
await expect(
|
|
152
152
|
client.createAuthorizationRequestUrl({
|
|
@@ -173,7 +173,7 @@ describe('OpenID4VCIClient should', () => {
|
|
|
173
173
|
it('create an authorization request url with authorization_details and scope', async () => {
|
|
174
174
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
175
175
|
// @ts-ignore
|
|
176
|
-
client.
|
|
176
|
+
client._state.endpointMetadata.credentialIssuerMetadata.authorization_endpoint = `${MOCK_URL}v1/auth/authorize`;
|
|
177
177
|
|
|
178
178
|
await expect(
|
|
179
179
|
client.createAuthorizationRequestUrl({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/oid4vci-client",
|
|
3
|
-
"version": "0.8.2-unstable.
|
|
3
|
+
"version": "0.8.2-unstable.79+4e33770",
|
|
4
4
|
"description": "OpenID for Verifiable Credential Issuance (OpenID4VCI) client",
|
|
5
5
|
"source": "lib/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"build": "tsc"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@sphereon/oid4vci-common": "0.8.2-unstable.
|
|
18
|
+
"@sphereon/oid4vci-common": "0.8.2-unstable.79+4e33770",
|
|
19
19
|
"@sphereon/ssi-types": "^0.18.1",
|
|
20
20
|
"cross-fetch": "^3.1.8",
|
|
21
21
|
"debug": "^4.3.4"
|
|
@@ -69,5 +69,5 @@
|
|
|
69
69
|
"OIDC4VCI",
|
|
70
70
|
"OID4VCI"
|
|
71
71
|
],
|
|
72
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "4e33770d569479728ffe0c6a9fad188d2d08c5ec"
|
|
73
73
|
}
|