@sphereon/oid4vci-client 0.10.3-next.8 → 0.10.4-next.119

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.
Files changed (142) hide show
  1. package/README.md +24 -5
  2. package/dist/AccessTokenClient.d.ts +5 -5
  3. package/dist/AccessTokenClient.d.ts.map +1 -1
  4. package/dist/AccessTokenClient.js +51 -37
  5. package/dist/AccessTokenClient.js.map +1 -1
  6. package/dist/AccessTokenClientV1_0_11.d.ts +29 -0
  7. package/dist/AccessTokenClientV1_0_11.d.ts.map +1 -0
  8. package/dist/AccessTokenClientV1_0_11.js +209 -0
  9. package/dist/AccessTokenClientV1_0_11.js.map +1 -0
  10. package/dist/AuthorizationCodeClient.d.ts +9 -4
  11. package/dist/AuthorizationCodeClient.d.ts.map +1 -1
  12. package/dist/AuthorizationCodeClient.js +102 -18
  13. package/dist/AuthorizationCodeClient.js.map +1 -1
  14. package/dist/AuthorizationCodeClientV1_0_11.d.ts +9 -0
  15. package/dist/AuthorizationCodeClientV1_0_11.d.ts.map +1 -0
  16. package/dist/AuthorizationCodeClientV1_0_11.js +134 -0
  17. package/dist/AuthorizationCodeClientV1_0_11.js.map +1 -0
  18. package/dist/CredentialOfferClient.d.ts.map +1 -1
  19. package/dist/CredentialOfferClient.js +18 -13
  20. package/dist/CredentialOfferClient.js.map +1 -1
  21. package/dist/CredentialOfferClientV1_0_11.d.ts +10 -0
  22. package/dist/CredentialOfferClientV1_0_11.d.ts.map +1 -0
  23. package/dist/CredentialOfferClientV1_0_11.js +101 -0
  24. package/dist/CredentialOfferClientV1_0_11.js.map +1 -0
  25. package/dist/CredentialOfferClientV1_0_13.d.ts +10 -0
  26. package/dist/CredentialOfferClientV1_0_13.d.ts.map +1 -0
  27. package/dist/CredentialOfferClientV1_0_13.js +94 -0
  28. package/dist/CredentialOfferClientV1_0_13.js.map +1 -0
  29. package/dist/CredentialRequestClient.d.ts +20 -7
  30. package/dist/CredentialRequestClient.d.ts.map +1 -1
  31. package/dist/CredentialRequestClient.js +46 -30
  32. package/dist/CredentialRequestClient.js.map +1 -1
  33. package/dist/CredentialRequestClientBuilder.d.ts +11 -6
  34. package/dist/CredentialRequestClientBuilder.d.ts.map +1 -1
  35. package/dist/CredentialRequestClientBuilder.js +22 -9
  36. package/dist/CredentialRequestClientBuilder.js.map +1 -1
  37. package/dist/CredentialRequestClientBuilderV1_0_11.d.ts +48 -0
  38. package/dist/CredentialRequestClientBuilderV1_0_11.d.ts.map +1 -0
  39. package/dist/CredentialRequestClientBuilderV1_0_11.js +121 -0
  40. package/dist/CredentialRequestClientBuilderV1_0_11.js.map +1 -0
  41. package/dist/CredentialRequestClientV1_0_11.d.ts +50 -0
  42. package/dist/CredentialRequestClientV1_0_11.d.ts.map +1 -0
  43. package/dist/CredentialRequestClientV1_0_11.js +151 -0
  44. package/dist/CredentialRequestClientV1_0_11.js.map +1 -0
  45. package/dist/MetadataClient.d.ts +5 -15
  46. package/dist/MetadataClient.d.ts.map +1 -1
  47. package/dist/MetadataClient.js +41 -44
  48. package/dist/MetadataClient.js.map +1 -1
  49. package/dist/MetadataClientV1_0_11.d.ts +31 -0
  50. package/dist/MetadataClientV1_0_11.d.ts.map +1 -0
  51. package/dist/MetadataClientV1_0_11.js +182 -0
  52. package/dist/MetadataClientV1_0_11.js.map +1 -0
  53. package/dist/MetadataClientV1_0_13.d.ts +31 -0
  54. package/dist/MetadataClientV1_0_13.d.ts.map +1 -0
  55. package/dist/MetadataClientV1_0_13.js +181 -0
  56. package/dist/MetadataClientV1_0_13.js.map +1 -0
  57. package/dist/OpenID4VCIClient.d.ts +14 -19
  58. package/dist/OpenID4VCIClient.d.ts.map +1 -1
  59. package/dist/OpenID4VCIClient.js +111 -61
  60. package/dist/OpenID4VCIClient.js.map +1 -1
  61. package/dist/OpenID4VCIClientV1_0_11.d.ts +108 -0
  62. package/dist/OpenID4VCIClientV1_0_11.d.ts.map +1 -0
  63. package/dist/OpenID4VCIClientV1_0_11.js +449 -0
  64. package/dist/OpenID4VCIClientV1_0_11.js.map +1 -0
  65. package/dist/OpenID4VCIClientV1_0_13.d.ts +112 -0
  66. package/dist/OpenID4VCIClientV1_0_13.d.ts.map +1 -0
  67. package/dist/OpenID4VCIClientV1_0_13.js +478 -0
  68. package/dist/OpenID4VCIClientV1_0_13.js.map +1 -0
  69. package/dist/ProofOfPossessionBuilder.d.ts +14 -3
  70. package/dist/ProofOfPossessionBuilder.d.ts.map +1 -1
  71. package/dist/ProofOfPossessionBuilder.js +20 -21
  72. package/dist/ProofOfPossessionBuilder.js.map +1 -1
  73. package/dist/functions/OpenIDUtils.d.ts +12 -0
  74. package/dist/functions/OpenIDUtils.d.ts.map +1 -0
  75. package/dist/functions/OpenIDUtils.js +37 -0
  76. package/dist/functions/OpenIDUtils.js.map +1 -0
  77. package/dist/functions/index.d.ts +2 -3
  78. package/dist/functions/index.d.ts.map +1 -1
  79. package/dist/functions/index.js +2 -3
  80. package/dist/functions/index.js.map +1 -1
  81. package/dist/functions/notifications.d.ts +4 -0
  82. package/dist/functions/notifications.d.ts.map +1 -0
  83. package/dist/functions/notifications.js +39 -0
  84. package/dist/functions/notifications.js.map +1 -0
  85. package/dist/index.d.ts +13 -1
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +14 -1
  88. package/dist/index.js.map +1 -1
  89. package/dist/types/index.d.ts +2 -0
  90. package/dist/types/index.d.ts.map +1 -1
  91. package/dist/types/index.js +5 -0
  92. package/dist/types/index.js.map +1 -1
  93. package/lib/AccessTokenClient.ts +59 -34
  94. package/lib/AccessTokenClientV1_0_11.ts +250 -0
  95. package/lib/AuthorizationCodeClient.ts +131 -28
  96. package/lib/AuthorizationCodeClientV1_0_11.ts +170 -0
  97. package/lib/CredentialOfferClient.ts +21 -8
  98. package/lib/CredentialOfferClientV1_0_11.ts +112 -0
  99. package/lib/CredentialOfferClientV1_0_13.ts +103 -0
  100. package/lib/CredentialRequestClient.ts +65 -26
  101. package/lib/CredentialRequestClientBuilder.ts +34 -16
  102. package/lib/CredentialRequestClientBuilderV1_0_11.ts +163 -0
  103. package/lib/CredentialRequestClientV1_0_11.ts +197 -0
  104. package/lib/MetadataClient.ts +64 -49
  105. package/lib/MetadataClientV1_0_11.ts +189 -0
  106. package/lib/MetadataClientV1_0_13.ts +188 -0
  107. package/lib/OpenID4VCIClient.ts +132 -68
  108. package/lib/OpenID4VCIClientV1_0_11.ts +635 -0
  109. package/lib/OpenID4VCIClientV1_0_13.ts +677 -0
  110. package/lib/ProofOfPossessionBuilder.ts +41 -11
  111. package/lib/__tests__/AccessTokenClient.spec.ts +40 -12
  112. package/lib/__tests__/AuthorizationDetailsBuilder.spec.ts +0 -12
  113. package/lib/__tests__/CredentialRequestClient.spec.ts +87 -50
  114. package/lib/__tests__/CredentialRequestClientBuilder.spec.ts +18 -12
  115. package/lib/__tests__/CredentialRequestClientV1_0_11.spec.ts +317 -0
  116. package/lib/__tests__/EBSIE2E.spec.test.ts +2 -2
  117. package/lib/__tests__/HttpUtils.spec.ts +1 -1
  118. package/lib/__tests__/IT.spec.ts +264 -14
  119. package/lib/__tests__/IssuanceInitiation.spec.ts +59 -4
  120. package/lib/__tests__/IssuanceInitiationV1_0_11.spec.ts +62 -0
  121. package/lib/__tests__/MattrE2E.spec.test.ts +2 -2
  122. package/lib/__tests__/MetadataClient.spec.ts +53 -3
  123. package/lib/__tests__/MetadataMocks.ts +42 -2
  124. package/lib/__tests__/OpenID4VCIClient.spec.ts +58 -2
  125. package/lib/__tests__/{OpenID4VCIClientPAR.spec.ts → OpenID4VCIClientPARV1_0_11.spec.ts} +5 -5
  126. package/lib/__tests__/OpenID4VCIClientV1_0_11.spec.ts +226 -0
  127. package/lib/__tests__/OpenID4VCIClientV1_0_13.spec.ts +204 -0
  128. package/lib/__tests__/ProofOfPossessionBuilder.spec.ts +1 -1
  129. package/lib/__tests__/SdJwt.spec.ts +36 -30
  130. package/lib/__tests__/SphereonE2E.spec.test.ts +10 -7
  131. package/lib/__tests__/data/VciDataFixtures.ts +712 -27
  132. package/lib/functions/OpenIDUtils.ts +25 -0
  133. package/lib/functions/index.ts +2 -3
  134. package/lib/functions/notifications.ts +32 -0
  135. package/lib/index.ts +16 -1
  136. package/lib/types/index.ts +6 -0
  137. package/package.json +4 -4
  138. package/dist/functions/ProofUtil.d.ts +0 -30
  139. package/dist/functions/ProofUtil.d.ts.map +0 -1
  140. package/dist/functions/ProofUtil.js +0 -106
  141. package/dist/functions/ProofUtil.js.map +0 -1
  142. package/lib/functions/ProofUtil.ts +0 -128
@@ -0,0 +1,121 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CredentialRequestClientBuilderV1_0_11 = void 0;
13
+ const oid4vci_common_1 = require("@sphereon/oid4vci-common");
14
+ const CredentialOfferClientV1_0_11_1 = require("./CredentialOfferClientV1_0_11");
15
+ const CredentialRequestClientV1_0_11_1 = require("./CredentialRequestClientV1_0_11");
16
+ class CredentialRequestClientBuilderV1_0_11 {
17
+ constructor() {
18
+ this.deferredCredentialAwait = false;
19
+ this.deferredCredentialIntervalInMS = 5000;
20
+ this.credentialTypes = [];
21
+ }
22
+ static fromCredentialIssuer({ credentialIssuer, metadata, version, credentialTypes, }) {
23
+ var _a;
24
+ const issuer = credentialIssuer;
25
+ const builder = new CredentialRequestClientBuilderV1_0_11();
26
+ builder.withVersion(version !== null && version !== void 0 ? version : oid4vci_common_1.OpenId4VCIVersion.VER_1_0_11);
27
+ builder.withCredentialEndpoint((_a = metadata === null || metadata === void 0 ? void 0 : metadata.credential_endpoint) !== null && _a !== void 0 ? _a : (issuer.endsWith('/') ? `${issuer}credential` : `${issuer}/credential`));
28
+ if (metadata === null || metadata === void 0 ? void 0 : metadata.deferred_credential_endpoint) {
29
+ builder.withDeferredCredentialEndpoint(metadata.deferred_credential_endpoint);
30
+ }
31
+ builder.withCredentialType(credentialTypes);
32
+ return builder;
33
+ }
34
+ static fromURI({ uri, metadata }) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ const offer = yield CredentialOfferClientV1_0_11_1.CredentialOfferClientV1_0_11.fromURI(uri);
37
+ return CredentialRequestClientBuilderV1_0_11.fromCredentialOfferRequest(Object.assign(Object.assign({ request: offer }, offer), { metadata, version: offer.version }));
38
+ });
39
+ }
40
+ static fromCredentialOfferRequest(opts) {
41
+ var _a, _b, _c, _d;
42
+ const { request, metadata } = opts;
43
+ const version = (_b = (_a = opts.version) !== null && _a !== void 0 ? _a : request.version) !== null && _b !== void 0 ? _b : (0, oid4vci_common_1.determineSpecVersionFromOffer)(request.original_credential_offer);
44
+ const builder = new CredentialRequestClientBuilderV1_0_11();
45
+ const issuer = (_c = (0, oid4vci_common_1.getIssuerFromCredentialOfferPayload)(request.credential_offer)) !== null && _c !== void 0 ? _c : metadata === null || metadata === void 0 ? void 0 : metadata.issuer;
46
+ builder.withVersion(version);
47
+ builder.withCredentialEndpoint((_d = metadata === null || metadata === void 0 ? void 0 : metadata.credential_endpoint) !== null && _d !== void 0 ? _d : (issuer.endsWith('/') ? `${issuer}credential` : `${issuer}/credential`));
48
+ if (metadata === null || metadata === void 0 ? void 0 : metadata.deferred_credential_endpoint) {
49
+ builder.withDeferredCredentialEndpoint(metadata.deferred_credential_endpoint);
50
+ }
51
+ if (version <= oid4vci_common_1.OpenId4VCIVersion.VER_1_0_08) {
52
+ //todo: This basically sets all types available during initiation. Probably the user only wants a subset. So do we want to do this?
53
+ builder.withCredentialType(request.original_credential_offer.credential_type);
54
+ }
55
+ else if (version <= oid4vci_common_1.OpenId4VCIVersion.VER_1_0_11) {
56
+ // todo: look whether this is correct
57
+ builder.withCredentialType((0, oid4vci_common_1.getTypesFromOfferV1_0_11)(request.credential_offer));
58
+ }
59
+ return builder;
60
+ }
61
+ static fromCredentialOffer({ credentialOffer, metadata, }) {
62
+ return CredentialRequestClientBuilderV1_0_11.fromCredentialOfferRequest({
63
+ request: credentialOffer,
64
+ metadata,
65
+ version: credentialOffer.version,
66
+ });
67
+ }
68
+ withCredentialEndpointFromMetadata(metadata) {
69
+ this.credentialEndpoint = metadata.credential_endpoint;
70
+ return this;
71
+ }
72
+ withCredentialEndpoint(credentialEndpoint) {
73
+ this.credentialEndpoint = credentialEndpoint;
74
+ return this;
75
+ }
76
+ withDeferredCredentialEndpointFromMetadata(metadata) {
77
+ this.deferredCredentialEndpoint = metadata.deferred_credential_endpoint;
78
+ return this;
79
+ }
80
+ withDeferredCredentialEndpoint(deferredCredentialEndpoint) {
81
+ this.deferredCredentialEndpoint = deferredCredentialEndpoint;
82
+ return this;
83
+ }
84
+ withDeferredCredentialAwait(deferredCredentialAwait, deferredCredentialIntervalInMS) {
85
+ this.deferredCredentialAwait = deferredCredentialAwait;
86
+ this.deferredCredentialIntervalInMS = deferredCredentialIntervalInMS !== null && deferredCredentialIntervalInMS !== void 0 ? deferredCredentialIntervalInMS : 5000;
87
+ return this;
88
+ }
89
+ withCredentialType(credentialTypes) {
90
+ this.credentialTypes = Array.isArray(credentialTypes) ? credentialTypes : [credentialTypes];
91
+ return this;
92
+ }
93
+ withFormat(format) {
94
+ this.format = format;
95
+ return this;
96
+ }
97
+ withSubjectIssuance(subjectIssuance) {
98
+ this.subjectIssuance = subjectIssuance;
99
+ return this;
100
+ }
101
+ withToken(accessToken) {
102
+ this.token = accessToken;
103
+ return this;
104
+ }
105
+ withTokenFromResponse(response) {
106
+ this.token = response.access_token;
107
+ return this;
108
+ }
109
+ withVersion(version) {
110
+ this.version = version;
111
+ return this;
112
+ }
113
+ build() {
114
+ if (!this.version) {
115
+ this.withVersion(oid4vci_common_1.OpenId4VCIVersion.VER_1_0_11);
116
+ }
117
+ return new CredentialRequestClientV1_0_11_1.CredentialRequestClientV1_0_11(this);
118
+ }
119
+ }
120
+ exports.CredentialRequestClientBuilderV1_0_11 = CredentialRequestClientBuilderV1_0_11;
121
+ //# sourceMappingURL=CredentialRequestClientBuilderV1_0_11.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CredentialRequestClientBuilderV1_0_11.js","sourceRoot":"","sources":["../lib/CredentialRequestClientBuilderV1_0_11.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { CredentialResponse, OID4VCICredentialFormat, OpenId4VCIVersion, OpenIDResponse, ProofOfPossession, UniformCredentialRequest } from '@sphereon/oid4vci-common';
2
+ import { CredentialFormat } from '@sphereon/ssi-types';
3
+ import { CredentialRequestClientBuilderV1_0_11 } from './CredentialRequestClientBuilderV1_0_11';
4
+ import { ProofOfPossessionBuilder } from './ProofOfPossessionBuilder';
5
+ export interface CredentialRequestOptsV1_0_11 {
6
+ deferredCredentialAwait?: boolean;
7
+ deferredCredentialIntervalInMS?: number;
8
+ credentialEndpoint: string;
9
+ deferredCredentialEndpoint?: string;
10
+ credentialTypes: string[];
11
+ format?: CredentialFormat | OID4VCICredentialFormat;
12
+ proof: ProofOfPossession;
13
+ token: string;
14
+ version: OpenId4VCIVersion;
15
+ }
16
+ export declare class CredentialRequestClientV1_0_11 {
17
+ private readonly _credentialRequestOpts;
18
+ private _isDeferred;
19
+ get credentialRequestOpts(): CredentialRequestOptsV1_0_11;
20
+ isDeferred(): boolean;
21
+ getCredentialEndpoint(): string;
22
+ getDeferredCredentialEndpoint(): string | undefined;
23
+ constructor(builder: CredentialRequestClientBuilderV1_0_11);
24
+ acquireCredentialsUsingProof<DIDDoc>(opts: {
25
+ proofInput: ProofOfPossessionBuilder<DIDDoc> | ProofOfPossession;
26
+ credentialTypes?: string | string[];
27
+ context?: string[];
28
+ format?: CredentialFormat | OID4VCICredentialFormat;
29
+ }): Promise<OpenIDResponse<CredentialResponse> & {
30
+ access_token: string;
31
+ }>;
32
+ acquireCredentialsUsingRequest(uniformRequest: UniformCredentialRequest): Promise<OpenIDResponse<CredentialResponse> & {
33
+ access_token: string;
34
+ }>;
35
+ acquireDeferredCredential(response: Pick<CredentialResponse, 'transaction_id' | 'acceptance_token' | 'c_nonce'>, opts?: {
36
+ bearerToken?: string;
37
+ }): Promise<OpenIDResponse<CredentialResponse> & {
38
+ access_token: string;
39
+ }>;
40
+ createCredentialRequest<DIDDoc>(opts: {
41
+ proofInput: ProofOfPossessionBuilder<DIDDoc> | ProofOfPossession;
42
+ credentialTypes?: string | string[];
43
+ context?: string[];
44
+ format?: CredentialFormat | OID4VCICredentialFormat;
45
+ version: OpenId4VCIVersion;
46
+ }): Promise<UniformCredentialRequest>;
47
+ private version;
48
+ private isV11OrHigher;
49
+ }
50
+ //# sourceMappingURL=CredentialRequestClientV1_0_11.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,151 @@
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.CredentialRequestClientV1_0_11 = void 0;
16
+ const oid4vci_common_1 = require("@sphereon/oid4vci-common");
17
+ const debug_1 = __importDefault(require("debug"));
18
+ const CredentialRequestClient_1 = require("./CredentialRequestClient");
19
+ const debug = (0, debug_1.default)('sphereon:oid4vci:credential');
20
+ class CredentialRequestClientV1_0_11 {
21
+ get credentialRequestOpts() {
22
+ return this._credentialRequestOpts;
23
+ }
24
+ isDeferred() {
25
+ return this._isDeferred;
26
+ }
27
+ getCredentialEndpoint() {
28
+ return this.credentialRequestOpts.credentialEndpoint;
29
+ }
30
+ getDeferredCredentialEndpoint() {
31
+ return this.credentialRequestOpts.deferredCredentialEndpoint;
32
+ }
33
+ constructor(builder) {
34
+ this._isDeferred = false;
35
+ this._credentialRequestOpts = Object.assign({}, builder);
36
+ }
37
+ acquireCredentialsUsingProof(opts) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ const { credentialTypes, proofInput, format, context } = opts;
40
+ const request = yield this.createCredentialRequest({ proofInput, credentialTypes, context, format, version: this.version() });
41
+ return yield this.acquireCredentialsUsingRequest(request);
42
+ });
43
+ }
44
+ acquireCredentialsUsingRequest(uniformRequest) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ const request = (0, oid4vci_common_1.getCredentialRequestForVersion)(uniformRequest, this.version());
47
+ const credentialEndpoint = this.credentialRequestOpts.credentialEndpoint;
48
+ if (!(0, oid4vci_common_1.isValidURL)(credentialEndpoint)) {
49
+ debug(`Invalid credential endpoint: ${credentialEndpoint}`);
50
+ throw new Error(oid4vci_common_1.URL_NOT_VALID);
51
+ }
52
+ debug(`Acquiring credential(s) from: ${credentialEndpoint}`);
53
+ debug(`request\n: ${JSON.stringify(request, null, 2)}`);
54
+ const requestToken = this.credentialRequestOpts.token;
55
+ let response = (yield (0, oid4vci_common_1.post)(credentialEndpoint, JSON.stringify(request), { bearerToken: requestToken }));
56
+ this._isDeferred = (0, oid4vci_common_1.isDeferredCredentialResponse)(response);
57
+ if (this.isDeferred() && this.credentialRequestOpts.deferredCredentialAwait && response.successBody) {
58
+ response = yield this.acquireDeferredCredential(response.successBody, { bearerToken: this.credentialRequestOpts.token });
59
+ }
60
+ response.access_token = requestToken;
61
+ debug(`Credential endpoint ${credentialEndpoint} response:\r\n${JSON.stringify(response, null, 2)}`);
62
+ return response;
63
+ });
64
+ }
65
+ acquireDeferredCredential(response, opts) {
66
+ var _a;
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ const transactionId = response.transaction_id;
69
+ const bearerToken = (_a = response.acceptance_token) !== null && _a !== void 0 ? _a : opts === null || opts === void 0 ? void 0 : opts.bearerToken;
70
+ const deferredCredentialEndpoint = this.getDeferredCredentialEndpoint();
71
+ if (!deferredCredentialEndpoint) {
72
+ throw Error(`No deferred credential endpoint supplied.`);
73
+ }
74
+ else if (!bearerToken) {
75
+ throw Error(`No bearer token present and refresh for defered endpoint not supported yet`);
76
+ // todo updated bearer token with new c_nonce
77
+ }
78
+ return yield (0, oid4vci_common_1.acquireDeferredCredential)({
79
+ bearerToken,
80
+ transactionId,
81
+ deferredCredentialEndpoint,
82
+ deferredCredentialAwait: this.credentialRequestOpts.deferredCredentialAwait,
83
+ deferredCredentialIntervalInMS: this.credentialRequestOpts.deferredCredentialIntervalInMS,
84
+ });
85
+ });
86
+ }
87
+ createCredentialRequest(opts) {
88
+ var _a;
89
+ return __awaiter(this, void 0, void 0, function* () {
90
+ const { proofInput } = opts;
91
+ const formatSelection = (_a = opts.format) !== null && _a !== void 0 ? _a : this.credentialRequestOpts.format;
92
+ if (!formatSelection) {
93
+ throw Error(`Format of credential to be issued is missing`);
94
+ }
95
+ const format = (0, oid4vci_common_1.getUniformFormat)(formatSelection);
96
+ const typesSelection = (opts === null || opts === void 0 ? void 0 : opts.credentialTypes) && (typeof opts.credentialTypes === 'string' || opts.credentialTypes.length > 0)
97
+ ? opts.credentialTypes
98
+ : this.credentialRequestOpts.credentialTypes;
99
+ const types = Array.isArray(typesSelection) ? typesSelection : [typesSelection];
100
+ if (types.length === 0) {
101
+ throw Error(`Credential type(s) need to be provided`);
102
+ }
103
+ // FIXME: this is mixing up the type (as id) from v8/v9 and the types (from the vc.type) from v11
104
+ else if (!this.isV11OrHigher() && types.length !== 1) {
105
+ throw Error('Only a single credential type is supported for V8/V9');
106
+ }
107
+ const proof = yield (0, CredentialRequestClient_1.buildProof)(proofInput, opts);
108
+ // TODO: we should move format specific logic
109
+ if (format === 'jwt_vc_json' || format === 'jwt_vc') {
110
+ return {
111
+ types,
112
+ format,
113
+ proof,
114
+ };
115
+ }
116
+ else if (format === 'jwt_vc_json-ld' || format === 'ldp_vc') {
117
+ if (this.version() >= oid4vci_common_1.OpenId4VCIVersion.VER_1_0_12 && !opts.context) {
118
+ throw Error('No @context value present, but it is required');
119
+ }
120
+ return {
121
+ format,
122
+ proof,
123
+ // Ignored because v11 does not have the context value, but it is required in v12
124
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
125
+ // @ts-ignore
126
+ credential_definition: Object.assign({ types }, (opts.context && { '@context': opts.context })),
127
+ };
128
+ }
129
+ else if (format === 'vc+sd-jwt') {
130
+ if (types.length > 1) {
131
+ throw Error(`Only a single credential type is supported for ${format}`);
132
+ }
133
+ return {
134
+ format,
135
+ proof,
136
+ vct: types[0],
137
+ };
138
+ }
139
+ throw new Error(`Unsupported format: ${format}`);
140
+ });
141
+ }
142
+ version() {
143
+ var _a, _b;
144
+ return (_b = (_a = this.credentialRequestOpts) === null || _a === void 0 ? void 0 : _a.version) !== null && _b !== void 0 ? _b : oid4vci_common_1.OpenId4VCIVersion.VER_1_0_11;
145
+ }
146
+ isV11OrHigher() {
147
+ return this.version() >= oid4vci_common_1.OpenId4VCIVersion.VER_1_0_11;
148
+ }
149
+ }
150
+ exports.CredentialRequestClientV1_0_11 = CredentialRequestClientV1_0_11;
151
+ //# sourceMappingURL=CredentialRequestClientV1_0_11.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CredentialRequestClientV1_0_11.js","sourceRoot":"","sources":["../lib/CredentialRequestClientV1_0_11.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
- import { CredentialIssuerMetadata, CredentialOfferPayload, CredentialOfferRequestWithBaseUrl, EndpointMetadataResult, OpenIDResponse, WellKnownEndpoints } from '@sphereon/oid4vci-common';
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<EndpointMetadataResult>;
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: CredentialOfferPayload): Promise<EndpointMetadataResult>;
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<EndpointMetadataResult>;
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,16 +26,6 @@ export declare class MetadataClient {
26
26
  */
27
27
  static retrieveOpenID4VCIServerMetadata(issuerHost: string, opts?: {
28
28
  errorOnNotFound?: boolean;
29
- }): Promise<OpenIDResponse<CredentialIssuerMetadata> | undefined>;
30
- /**
31
- * Allows to retrieve information from a well-known location
32
- *
33
- * @param host The host
34
- * @param endpointType The endpoint type, currently supports OID4VCI, OIDC and OAuth2 endpoint types
35
- * @param opts Options, like for instance whether an error should be thrown in case the endpoint doesn't exist
36
- */
37
- static retrieveWellknown<T>(host: string, endpointType: WellKnownEndpoints, opts?: {
38
- errorOnNotFound?: boolean;
39
- }): Promise<OpenIDResponse<T>>;
29
+ }): Promise<OpenIDResponse<CredentialIssuerMetadataV1_0_11 | CredentialIssuerMetadataV1_0_13 | (IssuerMetadataV1_0_08 & Partial<AuthorizationServerMetadata>)> | undefined>;
40
30
  }
41
31
  //# sourceMappingURL=MetadataClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataClient.d.ts","sourceRoot":"","sources":["../lib/MetadataClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,wBAAwB,EACxB,sBAAsB,EACtB,iCAAiC,EACjC,sBAAsB,EAEtB,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAOlC,qBAAa,cAAc;IACzB;;;;OAIG;WACiB,sCAAsC,CAAC,eAAe,EAAE,iCAAiC,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI/I;;;OAGG;WACiB,6CAA6C,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAQnI;;;;OAIG;WACiB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,eAAe,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA8H7H;;;;OAIG;WACiB,gCAAgC,CAClD,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE;QACL,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,GACA,OAAO,CAAC,cAAc,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAC;IAMhE;;;;;;OAMG;WACiB,iBAAiB,CAAC,CAAC,EACrC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,kBAAkB,EAChC,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACnC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;CAU9B"}
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"}
@@ -15,7 +15,9 @@ 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 functions_1 = require("./functions");
18
+ const MetadataClientV1_0_11_1 = require("./MetadataClientV1_0_11");
19
+ const MetadataClientV1_0_13_1 = require("./MetadataClientV1_0_13");
20
+ const OpenIDUtils_1 = require("./functions/OpenIDUtils");
19
21
  const debug = (0, debug_1.default)('sphereon:oid4vci:metadata');
20
22
  class MetadataClient {
21
23
  /**
@@ -25,7 +27,12 @@ class MetadataClient {
25
27
  */
26
28
  static retrieveAllMetadataFromCredentialOffer(credentialOffer) {
27
29
  return __awaiter(this, void 0, void 0, function* () {
28
- return MetadataClient.retrieveAllMetadataFromCredentialOfferRequest(credentialOffer.credential_offer);
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
- return MetadataClient.retrieveAllMetadata(issuer);
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
  });
@@ -53,25 +65,30 @@ class MetadataClient {
53
65
  let deferred_credential_endpoint;
54
66
  let authorization_endpoint;
55
67
  let authorizationServerType = 'OID4VCI';
56
- let authorization_server = issuer;
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
- if (credentialIssuerMetadata.authorization_server) {
67
- authorization_server = credentialIssuerMetadata.authorization_server;
81
+ if (credentialIssuerMetadata.authorization_servers) {
82
+ authorization_servers = credentialIssuerMetadata.authorization_servers;
68
83
  }
69
- if (credentialIssuerMetadata.authorization_endpoint) {
70
- authorization_endpoint = credentialIssuerMetadata.authorization_endpoint;
84
+ else if (credentialIssuerMetadata.authorization_server) {
85
+ authorization_server = credentialIssuerMetadata.authorization_server;
86
+ authorization_servers = [authorization_server];
71
87
  }
72
88
  }
73
89
  // No specific OID4VCI endpoint. Either can be an OAuth2 AS or an OIDC IDP. Let's start with OIDC first
74
- let response = yield MetadataClient.retrieveWellknown(authorization_server, oid4vci_common_1.WellKnownEndpoints.OPENID_CONFIGURATION, {
90
+ // TODO: for now we're taking just the first one
91
+ let response = yield (0, OpenIDUtils_1.retrieveWellknown)(authorization_servers[0], oid4vci_common_1.WellKnownEndpoints.OPENID_CONFIGURATION, {
75
92
  errorOnNotFound: false,
76
93
  });
77
94
  let authMetadata = response.successBody;
@@ -81,13 +98,14 @@ class MetadataClient {
81
98
  }
82
99
  else {
83
100
  // Now let's do OAuth2
84
- response = yield MetadataClient.retrieveWellknown(authorization_server, oid4vci_common_1.WellKnownEndpoints.OAUTH_AS, { errorOnNotFound: false });
101
+ // TODO: for now we're taking just the first one
102
+ response = yield (0, OpenIDUtils_1.retrieveWellknown)(authorization_servers[0], oid4vci_common_1.WellKnownEndpoints.OAUTH_AS, { errorOnNotFound: false });
85
103
  authMetadata = response.successBody;
86
104
  }
87
105
  if (!authMetadata) {
88
106
  // We will always throw an error, no matter whether the user provided the option not to, because this is bad.
89
- if (issuer !== authorization_server) {
90
- throw Error(`Issuer ${issuer} provided a separate authorization server ${authorization_server}, but that server did not provide metadata`);
107
+ if (!authorization_servers.includes(issuer)) {
108
+ throw Error(`Issuer ${issuer} provided a separate authorization server ${authorization_servers}, but that server did not provide metadata`);
91
109
  }
92
110
  }
93
111
  else {
@@ -103,7 +121,7 @@ class MetadataClient {
103
121
  }
104
122
  authorization_endpoint = authMetadata.authorization_endpoint;
105
123
  if (!authMetadata.token_endpoint) {
106
- throw Error(`Authorization Sever ${authorization_server} did not provide a token_endpoint`);
124
+ throw Error(`Authorization Sever ${authorization_servers} did not provide a token_endpoint`);
107
125
  }
108
126
  else if (token_endpoint && authMetadata.token_endpoint !== token_endpoint) {
109
127
  throw Error(`Credential issuer has a different token_endpoint (${token_endpoint}) from the Authorization Server (${authMetadata.token_endpoint})`);
@@ -149,20 +167,18 @@ class MetadataClient {
149
167
  }
150
168
  if (!credentialIssuerMetadata && authMetadata) {
151
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
152
- credentialIssuerMetadata = authMetadata;
170
+ credentialIssuerMetadata = authorization_server
171
+ ? authMetadata
172
+ : authMetadata;
153
173
  }
154
174
  debug(`Issuer ${issuer} token endpoint ${token_endpoint}, credential endpoint ${credential_endpoint}`);
155
- return {
156
- issuer,
175
+ return Object.assign(Object.assign({ issuer,
157
176
  token_endpoint,
158
177
  credential_endpoint,
159
- deferred_credential_endpoint,
160
- authorization_server,
161
- authorization_endpoint,
162
- authorizationServerType,
163
- credentialIssuerMetadata: credentialIssuerMetadata,
164
- authorizationServerMetadata: authMetadata,
165
- };
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 });
166
182
  });
167
183
  }
168
184
  /**
@@ -172,30 +188,11 @@ class MetadataClient {
172
188
  */
173
189
  static retrieveOpenID4VCIServerMetadata(issuerHost, opts) {
174
190
  return __awaiter(this, void 0, void 0, function* () {
175
- return MetadataClient.retrieveWellknown(issuerHost, oid4vci_common_1.WellKnownEndpoints.OPENID4VCI_ISSUER, {
191
+ return (0, OpenIDUtils_1.retrieveWellknown)(issuerHost, oid4vci_common_1.WellKnownEndpoints.OPENID4VCI_ISSUER, {
176
192
  errorOnNotFound: (opts === null || opts === void 0 ? void 0 : opts.errorOnNotFound) === undefined ? true : opts.errorOnNotFound,
177
193
  });
178
194
  });
179
195
  }
180
- /**
181
- * Allows to retrieve information from a well-known location
182
- *
183
- * @param host The host
184
- * @param endpointType The endpoint type, currently supports OID4VCI, OIDC and OAuth2 endpoint types
185
- * @param opts Options, like for instance whether an error should be thrown in case the endpoint doesn't exist
186
- */
187
- static retrieveWellknown(host, endpointType, opts) {
188
- return __awaiter(this, void 0, void 0, function* () {
189
- const result = yield (0, functions_1.getJson)(`${host.endsWith('/') ? host.slice(0, -1) : host}${endpointType}`, {
190
- exceptionOnHttpErrorStatus: opts === null || opts === void 0 ? void 0 : opts.errorOnNotFound,
191
- });
192
- if (result.origResponse.status >= 400) {
193
- // We only get here when error on not found is false
194
- debug(`host ${host} with endpoint type ${endpointType} status: ${result.origResponse.status}, ${result.origResponse.statusText}`);
195
- }
196
- return result;
197
- });
198
- }
199
196
  }
200
197
  exports.MetadataClient = MetadataClient;
201
198
  //# sourceMappingURL=MetadataClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataClient.js","sourceRoot":"","sources":["../lib/MetadataClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAUkC;AAClC,kDAA0B;AAE1B,2CAAsC;AAEtC,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,2BAA2B,CAAC,CAAC;AAEjD,MAAa,cAAc;IACzB;;;;OAIG;IACI,MAAM,CAAO,sCAAsC,CAAC,eAAkD;;YAC3G,OAAO,cAAc,CAAC,6CAA6C,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QACxG,CAAC;KAAA;IAED;;;OAGG;IACI,MAAM,CAAO,6CAA6C,CAAC,OAA+B;;YAC/F,MAAM,MAAM,GAAG,IAAA,oDAAmC,EAAC,OAAO,CAAC,CAAC;YAC5D,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,cAAc,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACpD,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,oBAAoB,GAAW,MAAM,CAAC;YAC1C,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC,gCAAgC,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,+EAA+E;YAClM,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,oBAAoB,EAAE,CAAC;oBAClD,oBAAoB,GAAG,wBAAwB,CAAC,oBAAoB,CAAC;gBACvE,CAAC;gBACD,IAAI,wBAAwB,CAAC,sBAAsB,EAAE,CAAC;oBACpD,sBAAsB,GAAG,wBAAwB,CAAC,sBAAsB,CAAC;gBAC3E,CAAC;YACH,CAAC;YACD,uGAAuG;YACvG,IAAI,QAAQ,GAAgD,MAAM,cAAc,CAAC,iBAAiB,CAChG,oBAAoB,EACpB,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,QAAQ,GAAG,MAAM,cAAc,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,mCAAkB,CAAC,QAAQ,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;gBACjI,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC;YACtC,CAAC;YACD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,6GAA6G;gBAC7G,IAAI,MAAM,KAAK,oBAAoB,EAAE,CAAC;oBACpC,MAAM,KAAK,CAAC,UAAU,MAAM,6CAA6C,oBAAoB,4CAA4C,CAAC,CAAC;gBAC7I,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,oBAAoB,mCAAmC,CAAC,CAAC;gBAC9F,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,YAAwC,CAAC;YACtE,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;gBACpB,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,cAAc,CAAC,iBAAiB,CAAC,UAAU,EAAE,mCAAkB,CAAC,iBAAiB,EAAE;gBACxF,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;IAED;;;;;;OAMG;IACI,MAAM,CAAO,iBAAiB,CACnC,IAAY,EACZ,YAAgC,EAChC,IAAoC;;YAEpC,MAAM,MAAM,GAAsB,MAAM,IAAA,mBAAO,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,YAAY,EAAE,EAAE;gBACjH,0BAA0B,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe;aAClD,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;gBACtC,oDAAoD;gBACpD,KAAK,CAAC,QAAQ,IAAI,uBAAuB,YAAY,YAAY,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;YACpI,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;CACF;AA9LD,wCA8LC"}
1
+ {"version":3,"file":"MetadataClient.js","sourceRoot":"","sources":["../lib/MetadataClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { CredentialIssuerMetadataV1_0_11, CredentialOfferPayload, CredentialOfferRequestWithBaseUrl, EndpointMetadataResultV1_0_11, OpenIDResponse } from '@sphereon/oid4vci-common';
2
+ export declare class MetadataClientV1_0_11 {
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_11>;
9
+ /**
10
+ * Retrieve the metada using the initiation request obtained from a previous step
11
+ * @param request
12
+ */
13
+ static retrieveAllMetadataFromCredentialOfferRequest(request: CredentialOfferPayload): Promise<EndpointMetadataResultV1_0_11>;
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_11>;
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<CredentialIssuerMetadataV1_0_11> | undefined>;
30
+ }
31
+ //# sourceMappingURL=MetadataClientV1_0_11.d.ts.map