@sphereon/oid4vci-client 0.10.4-unstable.81 → 0.12.0
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/README.md +7 -9
- package/dist/AccessTokenClient.d.ts.map +1 -1
- package/dist/AccessTokenClient.js +16 -22
- package/dist/AccessTokenClient.js.map +1 -1
- package/dist/AccessTokenClientV1_0_11.d.ts.map +1 -1
- package/dist/AccessTokenClientV1_0_11.js +4 -7
- package/dist/AccessTokenClientV1_0_11.js.map +1 -1
- package/dist/AuthorizationCodeClient.d.ts +4 -1
- package/dist/AuthorizationCodeClient.d.ts.map +1 -1
- package/dist/AuthorizationCodeClient.js +47 -8
- package/dist/AuthorizationCodeClient.js.map +1 -1
- package/dist/AuthorizationCodeClientV1_0_11.d.ts.map +1 -1
- package/dist/AuthorizationCodeClientV1_0_11.js +5 -3
- package/dist/AuthorizationCodeClientV1_0_11.js.map +1 -1
- package/dist/CredentialOfferClient.d.ts.map +1 -1
- package/dist/CredentialOfferClient.js +27 -11
- package/dist/CredentialOfferClient.js.map +1 -1
- package/dist/CredentialOfferClientV1_0_11.d.ts.map +1 -1
- package/dist/CredentialOfferClientV1_0_11.js +9 -11
- package/dist/CredentialOfferClientV1_0_11.js.map +1 -1
- package/dist/CredentialOfferClientV1_0_13.d.ts +10 -0
- package/dist/CredentialOfferClientV1_0_13.d.ts.map +1 -0
- package/dist/CredentialOfferClientV1_0_13.js +94 -0
- package/dist/CredentialOfferClientV1_0_13.js.map +1 -0
- package/dist/CredentialRequestClient.d.ts +22 -6
- package/dist/CredentialRequestClient.d.ts.map +1 -1
- package/dist/CredentialRequestClient.js +54 -26
- package/dist/CredentialRequestClient.js.map +1 -1
- package/dist/CredentialRequestClientBuilder.d.ts +10 -5
- package/dist/CredentialRequestClientBuilder.d.ts.map +1 -1
- package/dist/CredentialRequestClientBuilder.js +21 -7
- package/dist/CredentialRequestClientBuilder.js.map +1 -1
- package/dist/CredentialRequestClientBuilderV1_0_11.d.ts +3 -1
- package/dist/CredentialRequestClientBuilderV1_0_11.d.ts.map +1 -1
- package/dist/CredentialRequestClientBuilderV1_0_11.js +4 -0
- package/dist/CredentialRequestClientBuilderV1_0_11.js.map +1 -1
- package/dist/CredentialRequestClientV1_0_11.d.ts +9 -3
- package/dist/CredentialRequestClientV1_0_11.d.ts.map +1 -1
- package/dist/CredentialRequestClientV1_0_11.js +3 -3
- package/dist/CredentialRequestClientV1_0_11.js.map +1 -1
- package/dist/MetadataClient.d.ts +5 -5
- package/dist/MetadataClient.d.ts.map +1 -1
- package/dist/MetadataClient.js +30 -13
- package/dist/MetadataClient.js.map +1 -1
- package/dist/MetadataClientV1_0_13.d.ts +31 -0
- package/dist/MetadataClientV1_0_13.d.ts.map +1 -0
- package/dist/MetadataClientV1_0_13.js +181 -0
- package/dist/MetadataClientV1_0_13.js.map +1 -0
- package/dist/OpenID4VCIClient.d.ts +25 -23
- package/dist/OpenID4VCIClient.d.ts.map +1 -1
- package/dist/OpenID4VCIClient.js +157 -63
- package/dist/OpenID4VCIClient.js.map +1 -1
- package/dist/OpenID4VCIClientV1_0_11.d.ts +3 -2
- package/dist/OpenID4VCIClientV1_0_11.d.ts.map +1 -1
- package/dist/OpenID4VCIClientV1_0_11.js +5 -18
- package/dist/OpenID4VCIClientV1_0_11.js.map +1 -1
- package/dist/OpenID4VCIClientV1_0_13.d.ts +112 -0
- package/dist/OpenID4VCIClientV1_0_13.d.ts.map +1 -0
- package/dist/OpenID4VCIClientV1_0_13.js +478 -0
- package/dist/OpenID4VCIClientV1_0_13.js.map +1 -0
- package/dist/ProofOfPossessionBuilder.d.ts +14 -3
- package/dist/ProofOfPossessionBuilder.d.ts.map +1 -1
- package/dist/ProofOfPossessionBuilder.js +20 -21
- package/dist/ProofOfPossessionBuilder.js.map +1 -1
- package/dist/functions/index.d.ts +2 -3
- package/dist/functions/index.d.ts.map +1 -1
- package/dist/functions/index.js +2 -3
- package/dist/functions/index.js.map +1 -1
- package/dist/functions/notifications.d.ts +4 -0
- package/dist/functions/notifications.d.ts.map +1 -0
- package/dist/functions/notifications.js +39 -0
- package/dist/functions/notifications.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -1
- package/lib/AccessTokenClient.ts +17 -24
- package/lib/AccessTokenClientV1_0_11.ts +5 -10
- package/lib/AuthorizationCodeClient.ts +47 -8
- package/lib/AuthorizationCodeClientV1_0_11.ts +8 -6
- package/lib/CredentialOfferClient.ts +32 -7
- package/lib/CredentialOfferClientV1_0_11.ts +8 -8
- package/lib/CredentialOfferClientV1_0_13.ts +103 -0
- package/lib/CredentialRequestClient.ts +80 -20
- package/lib/CredentialRequestClientBuilder.ts +29 -9
- package/lib/CredentialRequestClientBuilderV1_0_11.ts +7 -0
- package/lib/CredentialRequestClientV1_0_11.ts +11 -5
- package/lib/MetadataClient.ts +49 -14
- package/lib/MetadataClientV1_0_13.ts +188 -0
- package/lib/OpenID4VCIClient.ts +194 -81
- package/lib/OpenID4VCIClientV1_0_11.ts +9 -19
- package/lib/OpenID4VCIClientV1_0_13.ts +677 -0
- package/lib/ProofOfPossessionBuilder.ts +41 -11
- package/lib/__tests__/CredentialRequestClient.spec.ts +13 -81
- package/lib/__tests__/CredentialRequestClientBuilder.spec.ts +4 -41
- package/lib/__tests__/CredentialRequestClientV1_0_11.spec.ts +2 -98
- package/lib/__tests__/HttpUtils.spec.ts +1 -1
- package/lib/__tests__/IT.spec.ts +5 -135
- package/lib/__tests__/MetadataClient.spec.ts +3 -4
- package/lib/__tests__/MetadataMocks.ts +1 -0
- package/lib/__tests__/OpenID4VCIClient.spec.ts +42 -9
- package/lib/__tests__/OpenID4VCIClientV1_0_11.spec.ts +24 -0
- package/lib/__tests__/OpenID4VCIClientV1_0_13.spec.ts +204 -0
- package/lib/__tests__/ProofOfPossessionBuilder.spec.ts +1 -84
- package/lib/__tests__/SdJwt.spec.ts +10 -109
- package/lib/__tests__/SphereonE2E.spec.test.ts +5 -3
- package/lib/functions/index.ts +2 -3
- package/lib/functions/notifications.ts +32 -0
- package/lib/index.ts +8 -0
- package/lib/types/index.ts +6 -0
- package/package.json +4 -4
- package/dist/functions/ProofUtil.d.ts +0 -31
- package/dist/functions/ProofUtil.d.ts.map +0 -1
- package/dist/functions/ProofUtil.js +0 -103
- package/dist/functions/ProofUtil.js.map +0 -1
- package/lib/functions/ProofUtil.ts +0 -137
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AccessTokenResponse, CredentialIssuerMetadata, CredentialOfferRequestWithBaseUrl, EndpointMetadata, OID4VCICredentialFormat, OpenId4VCIVersion, UniformCredentialOfferRequest } from '@sphereon/oid4vci-common';
|
|
1
|
+
import { AccessTokenResponse, CredentialIssuerMetadata, CredentialOfferRequestWithBaseUrl, EndpointMetadata, ExperimentalSubjectIssuance, OID4VCICredentialFormat, OpenId4VCIVersion, UniformCredentialOfferRequest } from '@sphereon/oid4vci-common';
|
|
2
2
|
import { CredentialFormat } from '@sphereon/ssi-types';
|
|
3
3
|
import { CredentialRequestClientV1_0_11 } from './CredentialRequestClientV1_0_11';
|
|
4
4
|
export declare class CredentialRequestClientBuilderV1_0_11 {
|
|
@@ -10,6 +10,7 @@ export declare class CredentialRequestClientBuilderV1_0_11 {
|
|
|
10
10
|
format?: CredentialFormat | OID4VCICredentialFormat;
|
|
11
11
|
token?: string;
|
|
12
12
|
version?: OpenId4VCIVersion;
|
|
13
|
+
subjectIssuance?: ExperimentalSubjectIssuance;
|
|
13
14
|
static fromCredentialIssuer({ credentialIssuer, metadata, version, credentialTypes, }: {
|
|
14
15
|
credentialIssuer: string;
|
|
15
16
|
metadata?: EndpointMetadata;
|
|
@@ -38,6 +39,7 @@ export declare class CredentialRequestClientBuilderV1_0_11 {
|
|
|
38
39
|
withDeferredCredentialAwait(deferredCredentialAwait: boolean, deferredCredentialIntervalInMS?: number): this;
|
|
39
40
|
withCredentialType(credentialTypes: string | string[]): this;
|
|
40
41
|
withFormat(format: CredentialFormat | OID4VCICredentialFormat): this;
|
|
42
|
+
withSubjectIssuance(subjectIssuance: ExperimentalSubjectIssuance): this;
|
|
41
43
|
withToken(accessToken: string): this;
|
|
42
44
|
withTokenFromResponse(response: AccessTokenResponse): this;
|
|
43
45
|
withVersion(version: OpenId4VCIVersion): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CredentialRequestClientBuilderV1_0_11.d.ts","sourceRoot":"","sources":["../lib/CredentialRequestClientBuilderV1_0_11.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EAGxB,iCAAiC,EAEjC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"CredentialRequestClientBuilderV1_0_11.d.ts","sourceRoot":"","sources":["../lib/CredentialRequestClientBuilderV1_0_11.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EAGxB,iCAAiC,EAEjC,gBAAgB,EAChB,2BAA2B,EAG3B,uBAAuB,EACvB,iBAAiB,EACjB,6BAA6B,EAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,qBAAa,qCAAqC;IAChD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uBAAuB,UAAS;IAChC,8BAA8B,SAAQ;IACtC,eAAe,EAAE,MAAM,EAAE,CAAM;IAC/B,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,eAAe,CAAC,EAAE,2BAA2B,CAAC;WAEhC,oBAAoB,CAAC,EACjC,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,eAAe,GAChB,EAAE;QACD,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAC5B,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KACpC,GAAG,qCAAqC;WAYrB,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAA;KAAE,GAAG,OAAO,CAAC,qCAAqC,CAAC;WAK9H,0BAA0B,CAAC,IAAI,EAAE;QAC7C,OAAO,EAAE,6BAA6B,CAAC;QACvC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAC5B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;KAC7B,GAAG,qCAAqC;WAsB3B,mBAAmB,CAAC,EAChC,eAAe,EACf,QAAQ,GACT,EAAE;QACD,eAAe,EAAE,iCAAiC,CAAC;QACnD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;KAC7B,GAAG,qCAAqC;IAQlC,kCAAkC,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI;IAK5E,sBAAsB,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI;IAKxD,0CAA0C,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI;IAKpF,8BAA8B,CAAC,0BAA0B,EAAE,MAAM,GAAG,IAAI;IAKxE,2BAA2B,CAAC,uBAAuB,EAAE,OAAO,EAAE,8BAA8B,CAAC,EAAE,MAAM,GAAG,IAAI;IAM5G,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAK5D,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,uBAAuB,GAAG,IAAI;IAKpE,mBAAmB,CAAC,eAAe,EAAE,2BAA2B,GAAG,IAAI;IAKvE,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKpC,qBAAqB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAK1D,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAK7C,KAAK,IAAI,8BAA8B;CAM/C"}
|
|
@@ -94,6 +94,10 @@ class CredentialRequestClientBuilderV1_0_11 {
|
|
|
94
94
|
this.format = format;
|
|
95
95
|
return this;
|
|
96
96
|
}
|
|
97
|
+
withSubjectIssuance(subjectIssuance) {
|
|
98
|
+
this.subjectIssuance = subjectIssuance;
|
|
99
|
+
return this;
|
|
100
|
+
}
|
|
97
101
|
withToken(accessToken) {
|
|
98
102
|
this.token = accessToken;
|
|
99
103
|
return this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CredentialRequestClientBuilderV1_0_11.js","sourceRoot":"","sources":["../lib/CredentialRequestClientBuilderV1_0_11.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"CredentialRequestClientBuilderV1_0_11.js","sourceRoot":"","sources":["../lib/CredentialRequestClientBuilderV1_0_11.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,11 +26,17 @@ export declare class CredentialRequestClientV1_0_11 {
|
|
|
26
26
|
credentialTypes?: string | string[];
|
|
27
27
|
context?: string[];
|
|
28
28
|
format?: CredentialFormat | OID4VCICredentialFormat;
|
|
29
|
-
}): Promise<OpenIDResponse<CredentialResponse
|
|
30
|
-
|
|
29
|
+
}): Promise<OpenIDResponse<CredentialResponse> & {
|
|
30
|
+
access_token: string;
|
|
31
|
+
}>;
|
|
32
|
+
acquireCredentialsUsingRequest(uniformRequest: UniformCredentialRequest): Promise<OpenIDResponse<CredentialResponse> & {
|
|
33
|
+
access_token: string;
|
|
34
|
+
}>;
|
|
31
35
|
acquireDeferredCredential(response: Pick<CredentialResponse, 'transaction_id' | 'acceptance_token' | 'c_nonce'>, opts?: {
|
|
32
36
|
bearerToken?: string;
|
|
33
|
-
}): Promise<OpenIDResponse<CredentialResponse
|
|
37
|
+
}): Promise<OpenIDResponse<CredentialResponse> & {
|
|
38
|
+
access_token: string;
|
|
39
|
+
}>;
|
|
34
40
|
createCredentialRequest<DIDDoc>(opts: {
|
|
35
41
|
proofInput: ProofOfPossessionBuilder<DIDDoc> | ProofOfPossession;
|
|
36
42
|
credentialTypes?: string | string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CredentialRequestClientV1_0_11.d.ts","sourceRoot":"","sources":["../lib/CredentialRequestClientV1_0_11.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,
|
|
1
|
+
{"version":3,"file":"CredentialRequestClientV1_0_11.d.ts","sourceRoot":"","sources":["../lib/CredentialRequestClientV1_0_11.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAMlB,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EAEd,iBAAiB,EACjB,wBAAwB,EAEzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD,OAAO,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAItE,MAAM,WAAW,4BAA4B;IAC3C,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;IACpD,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,qBAAa,8BAA8B;IACzC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAwC;IAC/E,OAAO,CAAC,WAAW,CAAS;IAE5B,IAAI,qBAAqB,IAAI,4BAA4B,CAExD;IAEM,UAAU,IAAI,OAAO;IAIrB,qBAAqB,IAAI,MAAM;IAI/B,6BAA6B,IAAI,MAAM,GAAG,SAAS;gBAIvC,OAAO,EAAE,qCAAqC;IAIpD,4BAA4B,CAAC,MAAM,EAAE,IAAI,EAAE;QACtD,UAAU,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC;QACjE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;KACrD,GAAG,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAO7D,8BAA8B,CACzC,cAAc,EAAE,wBAAwB,GACvC,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAuB5D,yBAAyB,CACpC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,SAAS,CAAC,EACrF,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GACA,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAmB5D,uBAAuB,CAAC,MAAM,EAAE,IAAI,EAAE;QACjD,UAAU,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC;QACjE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAAC;QACpD,OAAO,EAAE,iBAAiB,CAAC;KAC5B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA6DrC,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,aAAa;CAGtB"}
|
|
@@ -16,7 +16,6 @@ exports.CredentialRequestClientV1_0_11 = void 0;
|
|
|
16
16
|
const oid4vci_common_1 = require("@sphereon/oid4vci-common");
|
|
17
17
|
const debug_1 = __importDefault(require("debug"));
|
|
18
18
|
const CredentialRequestClient_1 = require("./CredentialRequestClient");
|
|
19
|
-
const functions_1 = require("./functions");
|
|
20
19
|
const debug = (0, debug_1.default)('sphereon:oid4vci:credential');
|
|
21
20
|
class CredentialRequestClientV1_0_11 {
|
|
22
21
|
get credentialRequestOpts() {
|
|
@@ -46,18 +45,19 @@ class CredentialRequestClientV1_0_11 {
|
|
|
46
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
47
46
|
const request = (0, oid4vci_common_1.getCredentialRequestForVersion)(uniformRequest, this.version());
|
|
48
47
|
const credentialEndpoint = this.credentialRequestOpts.credentialEndpoint;
|
|
49
|
-
if (!(0,
|
|
48
|
+
if (!(0, oid4vci_common_1.isValidURL)(credentialEndpoint)) {
|
|
50
49
|
debug(`Invalid credential endpoint: ${credentialEndpoint}`);
|
|
51
50
|
throw new Error(oid4vci_common_1.URL_NOT_VALID);
|
|
52
51
|
}
|
|
53
52
|
debug(`Acquiring credential(s) from: ${credentialEndpoint}`);
|
|
54
53
|
debug(`request\n: ${JSON.stringify(request, null, 2)}`);
|
|
55
54
|
const requestToken = this.credentialRequestOpts.token;
|
|
56
|
-
let response = yield (0,
|
|
55
|
+
let response = (yield (0, oid4vci_common_1.post)(credentialEndpoint, JSON.stringify(request), { bearerToken: requestToken }));
|
|
57
56
|
this._isDeferred = (0, oid4vci_common_1.isDeferredCredentialResponse)(response);
|
|
58
57
|
if (this.isDeferred() && this.credentialRequestOpts.deferredCredentialAwait && response.successBody) {
|
|
59
58
|
response = yield this.acquireDeferredCredential(response.successBody, { bearerToken: this.credentialRequestOpts.token });
|
|
60
59
|
}
|
|
60
|
+
response.access_token = requestToken;
|
|
61
61
|
debug(`Credential endpoint ${credentialEndpoint} response:\r\n${JSON.stringify(response, null, 2)}`);
|
|
62
62
|
return response;
|
|
63
63
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CredentialRequestClientV1_0_11.js","sourceRoot":"","sources":["../lib/CredentialRequestClientV1_0_11.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"CredentialRequestClientV1_0_11.js","sourceRoot":"","sources":["../lib/CredentialRequestClientV1_0_11.ts"],"names":[],"mappings":"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"}
|
package/dist/MetadataClient.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AuthorizationServerMetadata, CredentialIssuerMetadataV1_0_11, CredentialIssuerMetadataV1_0_13, CredentialOfferPayload, CredentialOfferRequestWithBaseUrl, EndpointMetadataResultV1_0_11, EndpointMetadataResultV1_0_13, IssuerMetadataV1_0_08, OpenIDResponse } from '@sphereon/oid4vci-common';
|
|
2
2
|
export declare class MetadataClient {
|
|
3
3
|
/**
|
|
4
4
|
* Retrieve metadata using the Initiation obtained from a previous step
|
|
5
5
|
*
|
|
6
6
|
* @param credentialOffer
|
|
7
7
|
*/
|
|
8
|
-
static retrieveAllMetadataFromCredentialOffer(credentialOffer: CredentialOfferRequestWithBaseUrl): Promise<EndpointMetadataResultV1_0_13>;
|
|
8
|
+
static retrieveAllMetadataFromCredentialOffer(credentialOffer: CredentialOfferRequestWithBaseUrl): Promise<EndpointMetadataResultV1_0_13 | EndpointMetadataResultV1_0_11>;
|
|
9
9
|
/**
|
|
10
10
|
* Retrieve the metada using the initiation request obtained from a previous step
|
|
11
11
|
* @param request
|
|
12
12
|
*/
|
|
13
|
-
static retrieveAllMetadataFromCredentialOfferRequest(request:
|
|
13
|
+
static retrieveAllMetadataFromCredentialOfferRequest(request: CredentialOfferPayload): Promise<EndpointMetadataResultV1_0_13 | EndpointMetadataResultV1_0_11>;
|
|
14
14
|
/**
|
|
15
15
|
* Retrieve all metadata from an issuer
|
|
16
16
|
* @param issuer The issuer URL
|
|
@@ -18,7 +18,7 @@ export declare class MetadataClient {
|
|
|
18
18
|
*/
|
|
19
19
|
static retrieveAllMetadata(issuer: string, opts?: {
|
|
20
20
|
errorOnNotFound: boolean;
|
|
21
|
-
}): Promise<EndpointMetadataResultV1_0_13>;
|
|
21
|
+
}): Promise<EndpointMetadataResultV1_0_13 | EndpointMetadataResultV1_0_11>;
|
|
22
22
|
/**
|
|
23
23
|
* Retrieve only the OID4VCI metadata for the issuer. So no OIDC/OAuth2 metadata
|
|
24
24
|
*
|
|
@@ -26,6 +26,6 @@ export declare class MetadataClient {
|
|
|
26
26
|
*/
|
|
27
27
|
static retrieveOpenID4VCIServerMetadata(issuerHost: string, opts?: {
|
|
28
28
|
errorOnNotFound?: boolean;
|
|
29
|
-
}): Promise<OpenIDResponse<
|
|
29
|
+
}): Promise<OpenIDResponse<CredentialIssuerMetadataV1_0_11 | CredentialIssuerMetadataV1_0_13 | (IssuerMetadataV1_0_08 & Partial<AuthorizationServerMetadata>)> | undefined>;
|
|
30
30
|
}
|
|
31
31
|
//# sourceMappingURL=MetadataClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataClient.d.ts","sourceRoot":"","sources":["../lib/MetadataClient.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"MetadataClient.d.ts","sourceRoot":"","sources":["../lib/MetadataClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAE3B,+BAA+B,EAC/B,+BAA+B,EAC/B,sBAAsB,EAEtB,iCAAiC,EAEjC,6BAA6B,EAC7B,6BAA6B,EAE7B,qBAAqB,EAErB,cAAc,EAEf,MAAM,0BAA0B,CAAC;AASlC,qBAAa,cAAc;IACzB;;;;OAIG;WACiB,sCAAsC,CACxD,eAAe,EAAE,iCAAiC,GACjD,OAAO,CAAC,6BAA6B,GAAG,6BAA6B,CAAC;IAQzE;;;OAGG;WACiB,6CAA6C,CAC/D,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,6BAA6B,GAAG,6BAA6B,CAAC;IAYzE;;;;OAIG;WACiB,mBAAmB,CACrC,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;QAAE,eAAe,EAAE,OAAO,CAAA;KAAE,GAClC,OAAO,CAAC,6BAA6B,GAAG,6BAA6B,CAAC;IAuIzE;;;;OAIG;WACiB,gCAAgC,CAClD,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE;QACL,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,GACA,OAAO,CACN,cAAc,CACZ,+BAA+B,GAAG,+BAA+B,GAAG,CAAC,qBAAqB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC,CACnI,GACD,SAAS,CACZ;CAKF"}
|
package/dist/MetadataClient.js
CHANGED
|
@@ -15,6 +15,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.MetadataClient = void 0;
|
|
16
16
|
const oid4vci_common_1 = require("@sphereon/oid4vci-common");
|
|
17
17
|
const debug_1 = __importDefault(require("debug"));
|
|
18
|
+
const MetadataClientV1_0_11_1 = require("./MetadataClientV1_0_11");
|
|
19
|
+
const MetadataClientV1_0_13_1 = require("./MetadataClientV1_0_13");
|
|
18
20
|
const OpenIDUtils_1 = require("./functions/OpenIDUtils");
|
|
19
21
|
const debug = (0, debug_1.default)('sphereon:oid4vci:metadata');
|
|
20
22
|
class MetadataClient {
|
|
@@ -25,7 +27,12 @@ class MetadataClient {
|
|
|
25
27
|
*/
|
|
26
28
|
static retrieveAllMetadataFromCredentialOffer(credentialOffer) {
|
|
27
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
-
|
|
30
|
+
if ((0, oid4vci_common_1.determineSpecVersionFromOffer)(credentialOffer.credential_offer) >= oid4vci_common_1.OpenId4VCIVersion.VER_1_0_13) {
|
|
31
|
+
return yield MetadataClientV1_0_13_1.MetadataClientV1_0_13.retrieveAllMetadataFromCredentialOffer(credentialOffer);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return yield MetadataClientV1_0_11_1.MetadataClientV1_0_11.retrieveAllMetadataFromCredentialOffer(credentialOffer);
|
|
35
|
+
}
|
|
29
36
|
});
|
|
30
37
|
}
|
|
31
38
|
/**
|
|
@@ -36,7 +43,12 @@ class MetadataClient {
|
|
|
36
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
37
44
|
const issuer = (0, oid4vci_common_1.getIssuerFromCredentialOfferPayload)(request);
|
|
38
45
|
if (issuer) {
|
|
39
|
-
|
|
46
|
+
if ((0, oid4vci_common_1.determineSpecVersionFromOffer)(request) >= oid4vci_common_1.OpenId4VCIVersion.VER_1_0_13) {
|
|
47
|
+
return MetadataClientV1_0_13_1.MetadataClientV1_0_13.retrieveAllMetadataFromCredentialOfferRequest(request);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
return MetadataClientV1_0_11_1.MetadataClientV1_0_11.retrieveAllMetadataFromCredentialOfferRequest(request);
|
|
51
|
+
}
|
|
40
52
|
}
|
|
41
53
|
throw new Error("can't retrieve metadata from CredentialOfferRequest. No issuer field is present");
|
|
42
54
|
});
|
|
@@ -54,18 +66,25 @@ class MetadataClient {
|
|
|
54
66
|
let authorization_endpoint;
|
|
55
67
|
let authorizationServerType = 'OID4VCI';
|
|
56
68
|
let authorization_servers = [issuer];
|
|
69
|
+
let authorization_server = undefined;
|
|
57
70
|
const oid4vciResponse = yield MetadataClient.retrieveOpenID4VCIServerMetadata(issuer, { errorOnNotFound: false }); // We will handle errors later, given we will also try other metadata locations
|
|
58
71
|
let credentialIssuerMetadata = oid4vciResponse === null || oid4vciResponse === void 0 ? void 0 : oid4vciResponse.successBody;
|
|
59
72
|
if (credentialIssuerMetadata) {
|
|
60
73
|
debug(`Issuer ${issuer} OID4VCI well-known server metadata\r\n${JSON.stringify(credentialIssuerMetadata)}`);
|
|
61
74
|
credential_endpoint = credentialIssuerMetadata.credential_endpoint;
|
|
62
|
-
deferred_credential_endpoint = credentialIssuerMetadata.deferred_credential_endpoint
|
|
75
|
+
deferred_credential_endpoint = credentialIssuerMetadata.deferred_credential_endpoint
|
|
76
|
+
? credentialIssuerMetadata.deferred_credential_endpoint
|
|
77
|
+
: undefined;
|
|
63
78
|
if (credentialIssuerMetadata.token_endpoint) {
|
|
64
79
|
token_endpoint = credentialIssuerMetadata.token_endpoint;
|
|
65
80
|
}
|
|
66
81
|
if (credentialIssuerMetadata.authorization_servers) {
|
|
67
82
|
authorization_servers = credentialIssuerMetadata.authorization_servers;
|
|
68
83
|
}
|
|
84
|
+
else if (credentialIssuerMetadata.authorization_server) {
|
|
85
|
+
authorization_server = credentialIssuerMetadata.authorization_server;
|
|
86
|
+
authorization_servers = [authorization_server];
|
|
87
|
+
}
|
|
69
88
|
}
|
|
70
89
|
// No specific OID4VCI endpoint. Either can be an OAuth2 AS or an OIDC IDP. Let's start with OIDC first
|
|
71
90
|
// TODO: for now we're taking just the first one
|
|
@@ -148,20 +167,18 @@ class MetadataClient {
|
|
|
148
167
|
}
|
|
149
168
|
if (!credentialIssuerMetadata && authMetadata) {
|
|
150
169
|
// Apparently everything worked out and the issuer is exposing everything in oAuth2/OIDC well-knowns. Spec is vague about this situation, but we can support it
|
|
151
|
-
credentialIssuerMetadata =
|
|
170
|
+
credentialIssuerMetadata = authorization_server
|
|
171
|
+
? authMetadata
|
|
172
|
+
: authMetadata;
|
|
152
173
|
}
|
|
153
174
|
debug(`Issuer ${issuer} token endpoint ${token_endpoint}, credential endpoint ${credential_endpoint}`);
|
|
154
|
-
return {
|
|
155
|
-
issuer,
|
|
175
|
+
return Object.assign(Object.assign({ issuer,
|
|
156
176
|
token_endpoint,
|
|
157
177
|
credential_endpoint,
|
|
158
|
-
deferred_credential_endpoint,
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
credentialIssuerMetadata: credentialIssuerMetadata,
|
|
163
|
-
authorizationServerMetadata: authMetadata,
|
|
164
|
-
};
|
|
178
|
+
deferred_credential_endpoint }, (authorization_server ? { authorization_server } : { authorization_servers: authorization_servers })), { authorization_endpoint,
|
|
179
|
+
authorizationServerType, credentialIssuerMetadata: authorization_server
|
|
180
|
+
? credentialIssuerMetadata
|
|
181
|
+
: credentialIssuerMetadata, authorizationServerMetadata: authMetadata });
|
|
165
182
|
});
|
|
166
183
|
}
|
|
167
184
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataClient.js","sourceRoot":"","sources":["../lib/MetadataClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"MetadataClient.js","sourceRoot":"","sources":["../lib/MetadataClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { CredentialOfferPayloadV1_0_13, CredentialOfferRequestWithBaseUrl, EndpointMetadataResultV1_0_13, IssuerMetadataV1_0_13, OpenIDResponse } from '@sphereon/oid4vci-common';
|
|
2
|
+
export declare class MetadataClientV1_0_13 {
|
|
3
|
+
/**
|
|
4
|
+
* Retrieve metadata using the Initiation obtained from a previous step
|
|
5
|
+
*
|
|
6
|
+
* @param credentialOffer
|
|
7
|
+
*/
|
|
8
|
+
static retrieveAllMetadataFromCredentialOffer(credentialOffer: CredentialOfferRequestWithBaseUrl): Promise<EndpointMetadataResultV1_0_13>;
|
|
9
|
+
/**
|
|
10
|
+
* Retrieve the metada using the initiation request obtained from a previous step
|
|
11
|
+
* @param request
|
|
12
|
+
*/
|
|
13
|
+
static retrieveAllMetadataFromCredentialOfferRequest(request: CredentialOfferPayloadV1_0_13): Promise<EndpointMetadataResultV1_0_13>;
|
|
14
|
+
/**
|
|
15
|
+
* Retrieve all metadata from an issuer
|
|
16
|
+
* @param issuer The issuer URL
|
|
17
|
+
* @param opts
|
|
18
|
+
*/
|
|
19
|
+
static retrieveAllMetadata(issuer: string, opts?: {
|
|
20
|
+
errorOnNotFound: boolean;
|
|
21
|
+
}): Promise<EndpointMetadataResultV1_0_13>;
|
|
22
|
+
/**
|
|
23
|
+
* Retrieve only the OID4VCI metadata for the issuer. So no OIDC/OAuth2 metadata
|
|
24
|
+
*
|
|
25
|
+
* @param issuerHost The issuer hostname
|
|
26
|
+
*/
|
|
27
|
+
static retrieveOpenID4VCIServerMetadata(issuerHost: string, opts?: {
|
|
28
|
+
errorOnNotFound?: boolean;
|
|
29
|
+
}): Promise<OpenIDResponse<IssuerMetadataV1_0_13> | undefined>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=MetadataClientV1_0_13.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetadataClientV1_0_13.d.ts","sourceRoot":"","sources":["../lib/MetadataClientV1_0_13.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,6BAA6B,EAC7B,iCAAiC,EACjC,6BAA6B,EAE7B,qBAAqB,EACrB,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAOlC,qBAAa,qBAAqB;IAChC;;;;OAIG;WACiB,sCAAsC,CACxD,eAAe,EAAE,iCAAiC,GACjD,OAAO,CAAC,6BAA6B,CAAC;IAIzC;;;OAGG;WACiB,6CAA6C,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAQjJ;;;;OAIG;WACiB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,eAAe,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,6BAA6B,CAAC;IA6HpI;;;;OAIG;WACiB,gCAAgC,CAClD,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE;QACL,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,GACA,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAC;CAK9D"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.MetadataClientV1_0_13 = void 0;
|
|
16
|
+
const oid4vci_common_1 = require("@sphereon/oid4vci-common");
|
|
17
|
+
const debug_1 = __importDefault(require("debug"));
|
|
18
|
+
const OpenIDUtils_1 = require("./functions/OpenIDUtils");
|
|
19
|
+
const debug = (0, debug_1.default)('sphereon:oid4vci:metadata');
|
|
20
|
+
class MetadataClientV1_0_13 {
|
|
21
|
+
/**
|
|
22
|
+
* Retrieve metadata using the Initiation obtained from a previous step
|
|
23
|
+
*
|
|
24
|
+
* @param credentialOffer
|
|
25
|
+
*/
|
|
26
|
+
static retrieveAllMetadataFromCredentialOffer(credentialOffer) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
return MetadataClientV1_0_13.retrieveAllMetadataFromCredentialOfferRequest(credentialOffer.credential_offer);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Retrieve the metada using the initiation request obtained from a previous step
|
|
33
|
+
* @param request
|
|
34
|
+
*/
|
|
35
|
+
static retrieveAllMetadataFromCredentialOfferRequest(request) {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
const issuer = (0, oid4vci_common_1.getIssuerFromCredentialOfferPayload)(request);
|
|
38
|
+
if (issuer) {
|
|
39
|
+
return MetadataClientV1_0_13.retrieveAllMetadata(issuer);
|
|
40
|
+
}
|
|
41
|
+
throw new Error("can't retrieve metadata from CredentialOfferRequest. No issuer field is present");
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Retrieve all metadata from an issuer
|
|
46
|
+
* @param issuer The issuer URL
|
|
47
|
+
* @param opts
|
|
48
|
+
*/
|
|
49
|
+
static retrieveAllMetadata(issuer, opts) {
|
|
50
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
let token_endpoint;
|
|
52
|
+
let credential_endpoint;
|
|
53
|
+
let deferred_credential_endpoint;
|
|
54
|
+
let authorization_endpoint;
|
|
55
|
+
let authorizationServerType = 'OID4VCI';
|
|
56
|
+
let authorization_servers = [issuer];
|
|
57
|
+
const oid4vciResponse = yield MetadataClientV1_0_13.retrieveOpenID4VCIServerMetadata(issuer, { errorOnNotFound: false }); // We will handle errors later, given we will also try other metadata locations
|
|
58
|
+
let credentialIssuerMetadata = oid4vciResponse === null || oid4vciResponse === void 0 ? void 0 : oid4vciResponse.successBody;
|
|
59
|
+
if (credentialIssuerMetadata) {
|
|
60
|
+
debug(`Issuer ${issuer} OID4VCI well-known server metadata\r\n${JSON.stringify(credentialIssuerMetadata)}`);
|
|
61
|
+
credential_endpoint = credentialIssuerMetadata.credential_endpoint;
|
|
62
|
+
deferred_credential_endpoint = credentialIssuerMetadata.deferred_credential_endpoint;
|
|
63
|
+
if (credentialIssuerMetadata.token_endpoint) {
|
|
64
|
+
token_endpoint = credentialIssuerMetadata.token_endpoint;
|
|
65
|
+
}
|
|
66
|
+
if (credentialIssuerMetadata.authorization_servers) {
|
|
67
|
+
authorization_servers = credentialIssuerMetadata.authorization_servers;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// No specific OID4VCI endpoint. Either can be an OAuth2 AS or an OIDC IDP. Let's start with OIDC first
|
|
71
|
+
// TODO: for now we're taking just the first one
|
|
72
|
+
let response = yield (0, OpenIDUtils_1.retrieveWellknown)(authorization_servers[0], oid4vci_common_1.WellKnownEndpoints.OPENID_CONFIGURATION, {
|
|
73
|
+
errorOnNotFound: false,
|
|
74
|
+
});
|
|
75
|
+
let authMetadata = response.successBody;
|
|
76
|
+
if (authMetadata) {
|
|
77
|
+
debug(`Issuer ${issuer} has OpenID Connect Server metadata in well-known location`);
|
|
78
|
+
authorizationServerType = 'OIDC';
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
// Now let's do OAuth2
|
|
82
|
+
// TODO: for now we're taking just the first one
|
|
83
|
+
response = yield (0, OpenIDUtils_1.retrieveWellknown)(authorization_servers[0], oid4vci_common_1.WellKnownEndpoints.OAUTH_AS, { errorOnNotFound: false });
|
|
84
|
+
authMetadata = response.successBody;
|
|
85
|
+
}
|
|
86
|
+
if (!authMetadata) {
|
|
87
|
+
// We will always throw an error, no matter whether the user provided the option not to, because this is bad.
|
|
88
|
+
if (!authorization_servers.includes(issuer)) {
|
|
89
|
+
throw Error(`Issuer ${issuer} provided a separate authorization server ${authorization_servers}, but that server did not provide metadata`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
if (!authorizationServerType) {
|
|
94
|
+
authorizationServerType = 'OAuth 2.0';
|
|
95
|
+
}
|
|
96
|
+
debug(`Issuer ${issuer} has ${authorizationServerType} Server metadata in well-known location`);
|
|
97
|
+
if (!authMetadata.authorization_endpoint) {
|
|
98
|
+
console.warn(`Issuer ${issuer} of type ${authorizationServerType} has no authorization_endpoint! Will use ${authorization_endpoint}. This only works for pre-authorized flows`);
|
|
99
|
+
}
|
|
100
|
+
else if (authorization_endpoint && authMetadata.authorization_endpoint !== authorization_endpoint) {
|
|
101
|
+
throw Error(`Credential issuer has a different authorization_endpoint (${authorization_endpoint}) from the Authorization Server (${authMetadata.authorization_endpoint})`);
|
|
102
|
+
}
|
|
103
|
+
authorization_endpoint = authMetadata.authorization_endpoint;
|
|
104
|
+
if (!authMetadata.token_endpoint) {
|
|
105
|
+
throw Error(`Authorization Sever ${authorization_servers} did not provide a token_endpoint`);
|
|
106
|
+
}
|
|
107
|
+
else if (token_endpoint && authMetadata.token_endpoint !== token_endpoint) {
|
|
108
|
+
throw Error(`Credential issuer has a different token_endpoint (${token_endpoint}) from the Authorization Server (${authMetadata.token_endpoint})`);
|
|
109
|
+
}
|
|
110
|
+
token_endpoint = authMetadata.token_endpoint;
|
|
111
|
+
if (authMetadata.credential_endpoint) {
|
|
112
|
+
if (credential_endpoint && authMetadata.credential_endpoint !== credential_endpoint) {
|
|
113
|
+
debug(`Credential issuer has a different credential_endpoint (${credential_endpoint}) from the Authorization Server (${authMetadata.credential_endpoint}). Will use the issuer value`);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
credential_endpoint = authMetadata.credential_endpoint;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (authMetadata.deferred_credential_endpoint) {
|
|
120
|
+
if (deferred_credential_endpoint && authMetadata.deferred_credential_endpoint !== deferred_credential_endpoint) {
|
|
121
|
+
debug(`Credential issuer has a different deferred_credential_endpoint (${deferred_credential_endpoint}) from the Authorization Server (${authMetadata.deferred_credential_endpoint}). Will use the issuer value`);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
deferred_credential_endpoint = authMetadata.deferred_credential_endpoint;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (!authorization_endpoint) {
|
|
129
|
+
debug(`Issuer ${issuer} does not expose authorization_endpoint, so only pre-auth will be supported`);
|
|
130
|
+
}
|
|
131
|
+
if (!token_endpoint) {
|
|
132
|
+
debug(`Issuer ${issuer} does not have a token_endpoint listed in well-known locations!`);
|
|
133
|
+
if (opts === null || opts === void 0 ? void 0 : opts.errorOnNotFound) {
|
|
134
|
+
throw Error(`Could not deduce the token_endpoint for ${issuer}`);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
token_endpoint = `${issuer}${issuer.endsWith('/') ? 'token' : '/token'}`;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (!credential_endpoint) {
|
|
141
|
+
debug(`Issuer ${issuer} does not have a credential_endpoint listed in well-known locations!`);
|
|
142
|
+
if (opts === null || opts === void 0 ? void 0 : opts.errorOnNotFound) {
|
|
143
|
+
throw Error(`Could not deduce the credential endpoint for ${issuer}`);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
credential_endpoint = `${issuer}${issuer.endsWith('/') ? 'credential' : '/credential'}`;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
if (!credentialIssuerMetadata && authMetadata) {
|
|
150
|
+
// Apparently everything worked out and the issuer is exposing everything in oAuth2/OIDC well-knowns. Spec is vague about this situation, but we can support it
|
|
151
|
+
credentialIssuerMetadata = authMetadata;
|
|
152
|
+
}
|
|
153
|
+
debug(`Issuer ${issuer} token endpoint ${token_endpoint}, credential endpoint ${credential_endpoint}`);
|
|
154
|
+
return {
|
|
155
|
+
issuer,
|
|
156
|
+
token_endpoint,
|
|
157
|
+
credential_endpoint,
|
|
158
|
+
deferred_credential_endpoint,
|
|
159
|
+
authorization_server: authorization_servers[0],
|
|
160
|
+
authorization_endpoint,
|
|
161
|
+
authorizationServerType,
|
|
162
|
+
credentialIssuerMetadata: credentialIssuerMetadata,
|
|
163
|
+
authorizationServerMetadata: authMetadata,
|
|
164
|
+
};
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Retrieve only the OID4VCI metadata for the issuer. So no OIDC/OAuth2 metadata
|
|
169
|
+
*
|
|
170
|
+
* @param issuerHost The issuer hostname
|
|
171
|
+
*/
|
|
172
|
+
static retrieveOpenID4VCIServerMetadata(issuerHost, opts) {
|
|
173
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
174
|
+
return (0, OpenIDUtils_1.retrieveWellknown)(issuerHost, oid4vci_common_1.WellKnownEndpoints.OPENID4VCI_ISSUER, {
|
|
175
|
+
errorOnNotFound: (opts === null || opts === void 0 ? void 0 : opts.errorOnNotFound) === undefined ? true : opts.errorOnNotFound,
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
exports.MetadataClientV1_0_13 = MetadataClientV1_0_13;
|
|
181
|
+
//# sourceMappingURL=MetadataClientV1_0_13.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetadataClientV1_0_13.js","sourceRoot":"","sources":["../lib/MetadataClientV1_0_13.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAWkC;AAClC,kDAA0B;AAE1B,yDAA4D;AAE5D,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,2BAA2B,CAAC,CAAC;AAEjD,MAAa,qBAAqB;IAChC;;;;OAIG;IACI,MAAM,CAAO,sCAAsC,CACxD,eAAkD;;YAElD,OAAO,qBAAqB,CAAC,6CAA6C,CAAC,eAAe,CAAC,gBAAiD,CAAC,CAAC;QAChJ,CAAC;KAAA;IAED;;;OAGG;IACI,MAAM,CAAO,6CAA6C,CAAC,OAAsC;;YACtG,MAAM,MAAM,GAAG,IAAA,oDAAmC,EAAC,OAAO,CAAC,CAAC;YAC5D,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,qBAAqB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;QACrG,CAAC;KAAA;IAED;;;;OAIG;IACI,MAAM,CAAO,mBAAmB,CAAC,MAAc,EAAE,IAAmC;;YACzF,IAAI,cAAkC,CAAC;YACvC,IAAI,mBAAuC,CAAC;YAC5C,IAAI,4BAAgD,CAAC;YACrD,IAAI,sBAA0C,CAAC;YAC/C,IAAI,uBAAuB,GAA4B,SAAS,CAAC;YACjE,IAAI,qBAAqB,GAAa,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,eAAe,GAAG,MAAM,qBAAqB,CAAC,gCAAgC,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,+EAA+E;YACzM,IAAI,wBAAwB,GAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,CAAC;YAC5D,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,KAAK,CAAC,UAAU,MAAM,0CAA0C,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;gBAC5G,mBAAmB,GAAG,wBAAwB,CAAC,mBAAmB,CAAC;gBACnE,4BAA4B,GAAG,wBAAwB,CAAC,4BAA4B,CAAC;gBACrF,IAAI,wBAAwB,CAAC,cAAc,EAAE,CAAC;oBAC5C,cAAc,GAAG,wBAAwB,CAAC,cAAc,CAAC;gBAC3D,CAAC;gBACD,IAAI,wBAAwB,CAAC,qBAAqB,EAAE,CAAC;oBACnD,qBAAqB,GAAG,wBAAwB,CAAC,qBAAqB,CAAC;gBACzE,CAAC;YACH,CAAC;YACD,uGAAuG;YACvG,gDAAgD;YAChD,IAAI,QAAQ,GAAgD,MAAM,IAAA,+BAAiB,EACjF,qBAAqB,CAAC,CAAC,CAAC,EACxB,mCAAkB,CAAC,oBAAoB,EACvC;gBACE,eAAe,EAAE,KAAK;aACvB,CACF,CAAC;YACF,IAAI,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC;YACxC,IAAI,YAAY,EAAE,CAAC;gBACjB,KAAK,CAAC,UAAU,MAAM,4DAA4D,CAAC,CAAC;gBACpF,uBAAuB,GAAG,MAAM,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,sBAAsB;gBACtB,gDAAgD;gBAChD,QAAQ,GAAG,MAAM,IAAA,+BAAiB,EAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,mCAAkB,CAAC,QAAQ,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;gBACtH,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC;YACtC,CAAC;YACD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,6GAA6G;gBAC7G,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC5C,MAAM,KAAK,CAAC,UAAU,MAAM,6CAA6C,qBAAqB,4CAA4C,CAAC,CAAC;gBAC9I,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC7B,uBAAuB,GAAG,WAAW,CAAC;gBACxC,CAAC;gBACD,KAAK,CAAC,UAAU,MAAM,QAAQ,uBAAuB,yCAAyC,CAAC,CAAC;gBAChG,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;oBACzC,OAAO,CAAC,IAAI,CACV,UAAU,MAAM,YAAY,uBAAuB,4CAA4C,sBAAsB,4CAA4C,CAClK,CAAC;gBACJ,CAAC;qBAAM,IAAI,sBAAsB,IAAI,YAAY,CAAC,sBAAsB,KAAK,sBAAsB,EAAE,CAAC;oBACpG,MAAM,KAAK,CACT,6DAA6D,sBAAsB,oCAAoC,YAAY,CAAC,sBAAsB,GAAG,CAC9J,CAAC;gBACJ,CAAC;gBACD,sBAAsB,GAAG,YAAY,CAAC,sBAAsB,CAAC;gBAC7D,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;oBACjC,MAAM,KAAK,CAAC,uBAAuB,qBAAqB,mCAAmC,CAAC,CAAC;gBAC/F,CAAC;qBAAM,IAAI,cAAc,IAAI,YAAY,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;oBAC5E,MAAM,KAAK,CACT,qDAAqD,cAAc,oCAAoC,YAAY,CAAC,cAAc,GAAG,CACtI,CAAC;gBACJ,CAAC;gBACD,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC;gBAC7C,IAAI,YAAY,CAAC,mBAAmB,EAAE,CAAC;oBACrC,IAAI,mBAAmB,IAAI,YAAY,CAAC,mBAAmB,KAAK,mBAAmB,EAAE,CAAC;wBACpF,KAAK,CACH,0DAA0D,mBAAmB,oCAAoC,YAAY,CAAC,mBAAmB,8BAA8B,CAChL,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,mBAAmB,GAAG,YAAY,CAAC,mBAAmB,CAAC;oBACzD,CAAC;gBACH,CAAC;gBACD,IAAI,YAAY,CAAC,4BAA4B,EAAE,CAAC;oBAC9C,IAAI,4BAA4B,IAAI,YAAY,CAAC,4BAA4B,KAAK,4BAA4B,EAAE,CAAC;wBAC/G,KAAK,CACH,mEAAmE,4BAA4B,oCAAoC,YAAY,CAAC,4BAA4B,8BAA8B,CAC3M,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,4BAA4B,GAAG,YAAY,CAAC,4BAA4B,CAAC;oBAC3E,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC5B,KAAK,CAAC,UAAU,MAAM,6EAA6E,CAAC,CAAC;YACvG,CAAC;YACD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,KAAK,CAAC,UAAU,MAAM,iEAAiE,CAAC,CAAC;gBACzF,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,EAAE,CAAC;oBAC1B,MAAM,KAAK,CAAC,2CAA2C,MAAM,EAAE,CAAC,CAAC;gBACnE,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC3E,CAAC;YACH,CAAC;YACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,KAAK,CAAC,UAAU,MAAM,sEAAsE,CAAC,CAAC;gBAC9F,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,EAAE,CAAC;oBAC1B,MAAM,KAAK,CAAC,gDAAgD,MAAM,EAAE,CAAC,CAAC;gBACxE,CAAC;qBAAM,CAAC;oBACN,mBAAmB,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;gBAC1F,CAAC;YACH,CAAC;YAED,IAAI,CAAC,wBAAwB,IAAI,YAAY,EAAE,CAAC;gBAC9C,+JAA+J;gBAC/J,wBAAwB,GAAG,YAA+C,CAAC;YAC7E,CAAC;YACD,KAAK,CAAC,UAAU,MAAM,mBAAmB,cAAc,yBAAyB,mBAAmB,EAAE,CAAC,CAAC;YACvG,OAAO;gBACL,MAAM;gBACN,cAAc;gBACd,mBAAmB;gBACnB,4BAA4B;gBAC5B,oBAAoB,EAAE,qBAAqB,CAAC,CAAC,CAAC;gBAC9C,sBAAsB;gBACtB,uBAAuB;gBACvB,wBAAwB,EAAE,wBAAwB;gBAClD,2BAA2B,EAAE,YAAY;aAC1C,CAAC;QACJ,CAAC;KAAA;IAED;;;;OAIG;IACI,MAAM,CAAO,gCAAgC,CAClD,UAAkB,EAClB,IAEC;;YAED,OAAO,IAAA,+BAAiB,EAAC,UAAU,EAAE,mCAAkB,CAAC,iBAAiB,EAAE;gBACzE,eAAe,EAAE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,MAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe;aACnF,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AAzKD,sDAyKC"}
|