@sphereon/oid4vci-client 0.2.0 → 0.4.1-next.285

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 (107) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +494 -371
  3. package/dist/AccessTokenClient.d.ts +30 -0
  4. package/dist/AccessTokenClient.d.ts.map +1 -0
  5. package/dist/AccessTokenClient.js +222 -0
  6. package/dist/AccessTokenClient.js.map +1 -0
  7. package/dist/AuthorizationDetailsBuilder.d.ts +11 -0
  8. package/dist/AuthorizationDetailsBuilder.d.ts.map +1 -0
  9. package/dist/AuthorizationDetailsBuilder.js +44 -0
  10. package/dist/AuthorizationDetailsBuilder.js.map +1 -0
  11. package/dist/CredentialOfferClient.d.ts +10 -0
  12. package/dist/CredentialOfferClient.d.ts.map +1 -0
  13. package/dist/CredentialOfferClient.js +101 -0
  14. package/dist/CredentialOfferClient.js.map +1 -0
  15. package/dist/CredentialRequestClient.d.ts +33 -0
  16. package/dist/CredentialRequestClient.d.ts.map +1 -0
  17. package/dist/CredentialRequestClient.js +118 -0
  18. package/dist/CredentialRequestClient.js.map +1 -0
  19. package/dist/CredentialRequestClientBuilder.d.ts +34 -0
  20. package/dist/CredentialRequestClientBuilder.d.ts.map +1 -0
  21. package/dist/CredentialRequestClientBuilder.js +87 -0
  22. package/dist/CredentialRequestClientBuilder.js.map +1 -0
  23. package/dist/{main/lib/MetadataClient.d.ts → MetadataClient.d.ts} +39 -38
  24. package/dist/MetadataClient.d.ts.map +1 -0
  25. package/dist/MetadataClient.js +148 -0
  26. package/dist/MetadataClient.js.map +1 -0
  27. package/dist/OpenID4VCIClient.d.ts +75 -0
  28. package/dist/OpenID4VCIClient.d.ts.map +1 -0
  29. package/dist/OpenID4VCIClient.js +403 -0
  30. package/dist/OpenID4VCIClient.js.map +1 -0
  31. package/dist/ProofOfPossessionBuilder.d.ts +38 -0
  32. package/dist/ProofOfPossessionBuilder.d.ts.map +1 -0
  33. package/dist/ProofOfPossessionBuilder.js +129 -0
  34. package/dist/ProofOfPossessionBuilder.js.map +1 -0
  35. package/dist/functions/ProofUtil.d.ts +29 -0
  36. package/dist/functions/ProofUtil.d.ts.map +1 -0
  37. package/dist/functions/ProofUtil.js +104 -0
  38. package/dist/functions/ProofUtil.js.map +1 -0
  39. package/dist/functions/index.d.ts +4 -0
  40. package/dist/functions/index.d.ts.map +1 -0
  41. package/dist/{main → functions}/index.js +20 -18
  42. package/dist/functions/index.js.map +1 -0
  43. package/dist/index.d.ts +9 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/{main/lib/index.js → index.js} +25 -24
  46. package/dist/index.js.map +1 -0
  47. package/lib/AccessTokenClient.ts +249 -0
  48. package/lib/AuthorizationDetailsBuilder.ts +46 -0
  49. package/lib/CredentialOfferClient.ts +108 -0
  50. package/lib/CredentialRequestClient.ts +137 -0
  51. package/lib/CredentialRequestClientBuilder.ts +110 -0
  52. package/lib/MetadataClient.ts +147 -0
  53. package/lib/OpenID4VCIClient.ts +523 -0
  54. package/lib/ProofOfPossessionBuilder.ts +181 -0
  55. package/lib/__tests__/AccessTokenClient.spec.ts +225 -0
  56. package/lib/__tests__/AuthorizationDetailsBuilder.spec.ts +65 -0
  57. package/lib/__tests__/AuthzFlowType.spec.ts +39 -0
  58. package/lib/__tests__/CredentialRequestClient.spec.ts +291 -0
  59. package/lib/__tests__/CredentialRequestClientBuilder.spec.ts +121 -0
  60. package/lib/__tests__/HttpUtils.spec.ts +37 -0
  61. package/lib/__tests__/IT.spec.ts +173 -0
  62. package/lib/__tests__/IssuanceInitiation.spec.ts +48 -0
  63. package/lib/__tests__/JsonURIConversions.spec.ts +146 -0
  64. package/lib/__tests__/MetadataClient.spec.ts +203 -0
  65. package/lib/__tests__/MetadataMocks.ts +444 -0
  66. package/lib/__tests__/OpenID4VCIClient.spec.ts +166 -0
  67. package/lib/__tests__/OpenID4VCIClientPAR.spec.ts +112 -0
  68. package/lib/__tests__/ProofOfPossessionBuilder.spec.ts +110 -0
  69. package/lib/__tests__/data/VciDataFixtures.ts +744 -0
  70. package/lib/functions/ProofUtil.ts +120 -0
  71. package/lib/functions/index.ts +3 -0
  72. package/{dist/main/lib/index.d.ts → lib/index.ts} +8 -7
  73. package/package.json +68 -71
  74. package/CHANGELOG.md +0 -21
  75. package/dist/main/index.d.ts +0 -1
  76. package/dist/main/lib/AccessTokenClient.d.ts +0 -20
  77. package/dist/main/lib/AccessTokenClient.js +0 -141
  78. package/dist/main/lib/CredentialRequestClient.d.ts +0 -31
  79. package/dist/main/lib/CredentialRequestClient.js +0 -66
  80. package/dist/main/lib/CredentialRequestClientBuilder.d.ts +0 -21
  81. package/dist/main/lib/CredentialRequestClientBuilder.js +0 -56
  82. package/dist/main/lib/IssuanceInitiation.d.ts +0 -5
  83. package/dist/main/lib/IssuanceInitiation.js +0 -29
  84. package/dist/main/lib/MetadataClient.js +0 -127
  85. package/dist/main/lib/functions/Encoding.d.ts +0 -17
  86. package/dist/main/lib/functions/Encoding.js +0 -138
  87. package/dist/main/lib/functions/HttpUtils.d.ts +0 -17
  88. package/dist/main/lib/functions/HttpUtils.js +0 -133
  89. package/dist/main/lib/functions/ProofUtil.d.ts +0 -9
  90. package/dist/main/lib/functions/ProofUtil.js +0 -76
  91. package/dist/main/lib/functions/index.d.ts +0 -3
  92. package/dist/main/lib/functions/index.js +0 -20
  93. package/dist/main/lib/types/Authorization.types.d.ts +0 -66
  94. package/dist/main/lib/types/Authorization.types.js +0 -35
  95. package/dist/main/lib/types/CredentialIssuance.types.d.ts +0 -88
  96. package/dist/main/lib/types/CredentialIssuance.types.js +0 -8
  97. package/dist/main/lib/types/Generic.types.d.ts +0 -19
  98. package/dist/main/lib/types/Generic.types.js +0 -11
  99. package/dist/main/lib/types/OAuth2ASMetadata.d.ts +0 -37
  100. package/dist/main/lib/types/OAuth2ASMetadata.js +0 -3
  101. package/dist/main/lib/types/OID4VCIServerMetadata.d.ts +0 -65
  102. package/dist/main/lib/types/OID4VCIServerMetadata.js +0 -3
  103. package/dist/main/lib/types/Oidc4vciErrors.d.ts +0 -3
  104. package/dist/main/lib/types/Oidc4vciErrors.js +0 -7
  105. package/dist/main/lib/types/index.d.ts +0 -6
  106. package/dist/main/lib/types/index.js +0 -23
  107. package/dist/main/tsconfig.build.tsbuildinfo +0 -1
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CredentialRequestClientBuilder = void 0;
4
- const CredentialRequestClient_1 = require("./CredentialRequestClient");
5
- const functions_1 = require("./functions");
6
- class CredentialRequestClientBuilder {
7
- static fromIssuanceInitiationURI(issuanceInitiationURI, metadata) {
8
- return CredentialRequestClientBuilder.fromIssuanceInitiationRequest((0, functions_1.convertURIToJsonObject)(issuanceInitiationURI, {
9
- arrayTypeProperties: ['credential_type'],
10
- requiredProperties: ['issuer', 'credential_type'],
11
- }), metadata);
12
- }
13
- static fromIssuanceInitiationRequest(issuanceInitiationRequest, metadata) {
14
- const builder = new CredentialRequestClientBuilder();
15
- builder.withCredentialEndpoint((metadata === null || metadata === void 0 ? void 0 : metadata.credential_endpoint) ? metadata.credential_endpoint : `${issuanceInitiationRequest.issuer}/credential`);
16
- //todo: This basically sets all types available during initiation. Probably the user only wants a subset. So do we want to do this?
17
- builder.withCredentialType(issuanceInitiationRequest.credential_type);
18
- return builder;
19
- }
20
- static fromIssuanceInitiation(issuanceInitiation, metadata) {
21
- return CredentialRequestClientBuilder.fromIssuanceInitiationRequest(issuanceInitiation.issuanceInitiationRequest, metadata);
22
- }
23
- withCredentialEndpointFromMetadata(metadata) {
24
- this.credentialEndpoint = metadata.credential_endpoint;
25
- return this;
26
- }
27
- withCredentialEndpoint(credentialEndpoint) {
28
- this.credentialEndpoint = credentialEndpoint;
29
- return this;
30
- }
31
- withCredentialType(credentialType) {
32
- this.credentialType = credentialType;
33
- return this;
34
- }
35
- withFormat(format) {
36
- this.format = format;
37
- return this;
38
- }
39
- withClientId(clientId) {
40
- this.clientId = clientId;
41
- return this;
42
- }
43
- withToken(accessToken) {
44
- this.token = accessToken;
45
- return this;
46
- }
47
- withTokenFromResponse(response) {
48
- this.token = response.access_token;
49
- return this;
50
- }
51
- build() {
52
- return new CredentialRequestClient_1.CredentialRequestClient(this);
53
- }
54
- }
55
- exports.CredentialRequestClientBuilder = CredentialRequestClientBuilder;
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlZGVudGlhbFJlcXVlc3RDbGllbnRCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL0NyZWRlbnRpYWxSZXF1ZXN0Q2xpZW50QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx1RUFBb0U7QUFDcEUsMkNBQXFEO0FBU3JELE1BQWEsOEJBQThCO0lBT2xDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBNkIsRUFBRSxRQUEyQjtRQUNoRyxPQUFPLDhCQUE4QixDQUFDLDZCQUE2QixDQUNqRSxJQUFBLGtDQUFzQixFQUFDLHFCQUFxQixFQUFFO1lBQzVDLG1CQUFtQixFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDeEMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUM7U0FDbEQsQ0FBcUMsRUFDdEMsUUFBUSxDQUNULENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUFDLDZCQUE2QixDQUN6Qyx5QkFBMkQsRUFDM0QsUUFBMkI7UUFFM0IsTUFBTSxPQUFPLEdBQUcsSUFBSSw4QkFBOEIsRUFBRSxDQUFDO1FBQ3JELE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxtQkFBbUIsRUFBQyxDQUFDLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxHQUFHLHlCQUF5QixDQUFDLE1BQU0sYUFBYSxDQUFDLENBQUM7UUFFaEosbUlBQW1JO1FBQ25JLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyx5QkFBeUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV0RSxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU0sTUFBTSxDQUFDLHNCQUFzQixDQUNsQyxrQkFBaUQsRUFDakQsUUFBMkI7UUFFM0IsT0FBTyw4QkFBOEIsQ0FBQyw2QkFBNkIsQ0FBQyxrQkFBa0IsQ0FBQyx5QkFBeUIsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5SCxDQUFDO0lBRU0sa0NBQWtDLENBQUMsUUFBK0I7UUFDdkUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxrQkFBMEI7UUFDdEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLGtCQUFrQixDQUFDLGNBQWlDO1FBQ3pELElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFVBQVUsQ0FBQyxNQUE2QztRQUM3RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxZQUFZLENBQUMsUUFBZ0I7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sU0FBUyxDQUFDLFdBQW1CO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLHFCQUFxQixDQUFDLFFBQTZCO1FBQ3hELElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxLQUFLO1FBQ1YsT0FBTyxJQUFJLGlEQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQTNFRCx3RUEyRUMifQ==
@@ -1,5 +0,0 @@
1
- import { IssuanceInitiationWithBaseUrl } from './types';
2
- export declare class IssuanceInitiation {
3
- static fromURI(issuanceInitiationURI: string): IssuanceInitiationWithBaseUrl;
4
- static toURI(issuanceInitiation: IssuanceInitiationWithBaseUrl): string;
5
- }
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IssuanceInitiation = void 0;
4
- const functions_1 = require("./functions");
5
- class IssuanceInitiation {
6
- static fromURI(issuanceInitiationURI) {
7
- if (!issuanceInitiationURI.includes('?')) {
8
- throw new Error('Invalid Issuance Initiation Request Payload');
9
- }
10
- const baseUrl = issuanceInitiationURI.split('?')[0];
11
- const issuanceInitiationRequest = (0, functions_1.convertURIToJsonObject)(issuanceInitiationURI, {
12
- arrayTypeProperties: ['credential_type'],
13
- requiredProperties: ['issuer', 'credential_type'],
14
- });
15
- return {
16
- baseUrl,
17
- issuanceInitiationRequest,
18
- };
19
- }
20
- static toURI(issuanceInitiation) {
21
- return (0, functions_1.convertJsonToURI)(issuanceInitiation.issuanceInitiationRequest, {
22
- baseUrl: issuanceInitiation.baseUrl,
23
- arrayTypeProperties: ['credential_type'],
24
- uriTypeProperties: ['issuer', 'credential_type'],
25
- });
26
- }
27
- }
28
- exports.IssuanceInitiation = IssuanceInitiation;
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXNzdWFuY2VJbml0aWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL0lzc3VhbmNlSW5pdGlhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUU7QUFHdkUsTUFBYSxrQkFBa0I7SUFDdEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxxQkFBNkI7UUFDakQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7U0FDaEU7UUFDRCxNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsTUFBTSx5QkFBeUIsR0FBRyxJQUFBLGtDQUFzQixFQUFDLHFCQUFxQixFQUFFO1lBQzlFLG1CQUFtQixFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDeEMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUM7U0FDbEQsQ0FBcUMsQ0FBQztRQUV2QyxPQUFPO1lBQ0wsT0FBTztZQUNQLHlCQUF5QjtTQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWlEO1FBQ25FLE9BQU8sSUFBQSw0QkFBZ0IsRUFBQyxrQkFBa0IsQ0FBQyx5QkFBeUIsRUFBRTtZQUNwRSxPQUFPLEVBQUUsa0JBQWtCLENBQUMsT0FBTztZQUNuQyxtQkFBbUIsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQ3hDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDO1NBQ2pELENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXhCRCxnREF3QkMifQ==
@@ -1,127 +0,0 @@
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.MetadataClient = void 0;
13
- const functions_1 = require("./functions");
14
- const types_1 = require("./types");
15
- class MetadataClient {
16
- /**
17
- * Retrieve metadata using the Initiation obtained from a previous step
18
- *
19
- * @param initiation
20
- */
21
- static retrieveAllMetadataFromInitiation(initiation) {
22
- return __awaiter(this, void 0, void 0, function* () {
23
- return MetadataClient.retrieveAllMetadataFromInitiationRequest(initiation.issuanceInitiationRequest);
24
- });
25
- }
26
- /**
27
- * Retrieve the metada using the initiation request obtained from a previous step
28
- * @param initiationRequest
29
- */
30
- static retrieveAllMetadataFromInitiationRequest(initiationRequest) {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- return MetadataClient.retrieveAllMetadata(initiationRequest.issuer);
33
- });
34
- }
35
- /**
36
- * Retrieve all metadata from an issuer
37
- * @param issuer The issuer URL
38
- */
39
- static retrieveAllMetadata(issuer, opts) {
40
- return __awaiter(this, void 0, void 0, function* () {
41
- let token_endpoint;
42
- let credential_endpoint;
43
- let oid4vciMetadata = yield MetadataClient.retrieveOID4VCIServerMetadata(issuer);
44
- if (oid4vciMetadata) {
45
- credential_endpoint = oid4vciMetadata.credential_endpoint;
46
- token_endpoint = oid4vciMetadata.token_endpoint;
47
- if (!token_endpoint && oid4vciMetadata.authorization_server) {
48
- // Crossword uses this to separate the AS metadata. We fail when not found, since we now have no way of getting the token endpoint
49
- const asMetadata = yield this.retrieveWellknown(oid4vciMetadata.authorization_server, types_1.WellKnownEndpoints.OAUTH_AS, {
50
- errorOnNotFound: true,
51
- });
52
- token_endpoint = asMetadata === null || asMetadata === void 0 ? void 0 : asMetadata.token_endpoint;
53
- }
54
- }
55
- else {
56
- // No specific OID4VCI endpoint. Either can be an OAuth2 AS or an OpenID IDP. Let's start with OIDC first
57
- let asConfig = yield MetadataClient.retrieveWellknown(issuer, types_1.WellKnownEndpoints.OIDC_CONFIGURATION, {
58
- errorOnNotFound: false,
59
- });
60
- if (!asConfig) {
61
- // Now oAuth2
62
- asConfig = yield MetadataClient.retrieveWellknown(issuer, types_1.WellKnownEndpoints.OAUTH_AS, { errorOnNotFound: false });
63
- }
64
- if (asConfig) {
65
- oid4vciMetadata = asConfig; // TODO: Strip other info?
66
- credential_endpoint = oid4vciMetadata.credential_endpoint;
67
- token_endpoint = oid4vciMetadata.token_endpoint;
68
- }
69
- }
70
- if (!token_endpoint) {
71
- if (opts === null || opts === void 0 ? void 0 : opts.errorOnNotFound) {
72
- throw new Error(`Could not deduce the token endpoint for ${issuer}`);
73
- }
74
- else {
75
- token_endpoint = `${issuer}${issuer.endsWith('/') ? '' : '/'}token`;
76
- }
77
- }
78
- if (!credential_endpoint) {
79
- if (opts === null || opts === void 0 ? void 0 : opts.errorOnNotFound) {
80
- throw new Error(`Could not deduce the credential endpoint for ${issuer}`);
81
- }
82
- else {
83
- credential_endpoint = `${issuer}${issuer.endsWith('/') ? '' : '/'}credential`;
84
- }
85
- }
86
- return {
87
- issuer,
88
- token_endpoint,
89
- credential_endpoint,
90
- oid4vci_metadata: oid4vciMetadata,
91
- };
92
- });
93
- }
94
- /**
95
- * Retrieve only the OID4VCI metadata for the issuer. So no OIDC/OAuth2 metadata
96
- *
97
- * @param issuerHost The issuer hostname
98
- */
99
- static retrieveOID4VCIServerMetadata(issuerHost) {
100
- return __awaiter(this, void 0, void 0, function* () {
101
- // Since the server metadata endpoint is optional we are not going to throw an error.
102
- return MetadataClient.retrieveWellknown(issuerHost, types_1.WellKnownEndpoints.OIDC4VCI, { errorOnNotFound: false });
103
- });
104
- }
105
- /**
106
- * Allows to retrieve information from a well-known location
107
- *
108
- * @param host The host
109
- * @param endpointType The endpoint type, currently supports OID4VCI, OIDC and OAuth2 endpoint types
110
- * @param opts Options, like for instance whether an error should be thrown in case the endpoint doesn't exist
111
- */
112
- static retrieveWellknown(host, endpointType, opts) {
113
- return __awaiter(this, void 0, void 0, function* () {
114
- try {
115
- return yield (0, functions_1.getJson)(`${host.endsWith('/') ? host.slice(0, -1) : host}${endpointType}`);
116
- }
117
- catch (error) {
118
- if (!(opts === null || opts === void 0 ? void 0 : opts.errorOnNotFound) && error instanceof functions_1.NotFoundError) {
119
- return undefined;
120
- }
121
- throw error;
122
- }
123
- });
124
- }
125
- }
126
- exports.MetadataClient = MetadataClient;
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0YWRhdGFDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvTWV0YWRhdGFDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXFEO0FBQ3JELG1DQVFpQjtBQUVqQixNQUFhLGNBQWM7SUFHekI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBTyxpQ0FBaUMsQ0FBQyxVQUF5Qzs7WUFDN0YsT0FBTyxjQUFjLENBQUMsd0NBQXdDLENBQUMsVUFBVSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDdkcsQ0FBQztLQUFBO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFPLHdDQUF3QyxDQUFDLGlCQUFtRDs7WUFDOUcsT0FBTyxjQUFjLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEUsQ0FBQztLQUFBO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFPLG1CQUFtQixDQUFDLE1BQWMsRUFBRSxJQUFtQzs7WUFDekYsSUFBSSxjQUFjLENBQUM7WUFDbkIsSUFBSSxtQkFBbUIsQ0FBQztZQUN4QixJQUFJLGVBQWUsR0FBRyxNQUFNLGNBQWMsQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVqRixJQUFJLGVBQWUsRUFBRTtnQkFDbkIsbUJBQW1CLEdBQUcsZUFBZSxDQUFDLG1CQUFtQixDQUFDO2dCQUMxRCxjQUFjLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLGNBQWMsSUFBSSxlQUFlLENBQUMsb0JBQW9CLEVBQUU7b0JBQzNELGtJQUFrSTtvQkFDbEksTUFBTSxVQUFVLEdBQXFCLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRSwwQkFBa0IsQ0FBQyxRQUFRLEVBQUU7d0JBQ25JLGVBQWUsRUFBRSxJQUFJO3FCQUN0QixDQUFDLENBQUM7b0JBQ0gsY0FBYyxHQUFHLFVB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
@@ -1,17 +0,0 @@
1
- import { DecodeURIAsJsonOpts, EncodeJsonAsURIOpts } from '../types';
2
- /**
3
- * @function encodeJsonAsURI encodes a Json object into a URI
4
- * @param json object
5
- * @param opts:
6
- * - urlTypeProperties: a list of properties of which the value is a URL
7
- * - arrayTypeProperties: a list of properties which are an array
8
- */
9
- export declare function convertJsonToURI(json: unknown, opts?: EncodeJsonAsURIOpts): string;
10
- /**
11
- * @function decodeUriAsJson decodes an URI into a Json object
12
- * @param uri string
13
- * @param opts:
14
- * - requiredProperties: the required properties
15
- * - arrayTypeProperties: properties that can show up more that once
16
- */
17
- export declare function convertURIToJsonObject(uri: string, opts?: DecodeURIAsJsonOpts): unknown;
@@ -1,138 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertURIToJsonObject = exports.convertJsonToURI = void 0;
4
- const types_1 = require("../types");
5
- /**
6
- * @function encodeJsonAsURI encodes a Json object into a URI
7
- * @param json object
8
- * @param opts:
9
- * - urlTypeProperties: a list of properties of which the value is a URL
10
- * - arrayTypeProperties: a list of properties which are an array
11
- */
12
- function convertJsonToURI(json, opts) {
13
- var _a, _b;
14
- if (typeof json === 'string') {
15
- return convertJsonToURI(JSON.parse(json), opts);
16
- }
17
- const results = [];
18
- function encodeAndStripWhitespace(key) {
19
- return encodeURIComponent(key.replace(' ', ''));
20
- }
21
- for (const [key, value] of Object.entries(json)) {
22
- if (!value) {
23
- continue;
24
- }
25
- //Skip properties that are not of URL type
26
- if (!((_a = opts === null || opts === void 0 ? void 0 : opts.uriTypeProperties) === null || _a === void 0 ? void 0 : _a.includes(key))) {
27
- results.push(`${key}=${value}`);
28
- continue;
29
- }
30
- if (((_b = opts === null || opts === void 0 ? void 0 : opts.arrayTypeProperties) === null || _b === void 0 ? void 0 : _b.includes(key)) && Array.isArray(value)) {
31
- results.push(value.map((v) => `${encodeAndStripWhitespace(key)}=${customEncodeURIComponent(v, /\./g)}`).join('&'));
32
- continue;
33
- }
34
- const isBool = typeof value == 'boolean';
35
- const isNumber = typeof value == 'number';
36
- const isString = typeof value == 'string';
37
- let encoded;
38
- if (isBool || isNumber) {
39
- encoded = `${encodeAndStripWhitespace(key)}=${value}`;
40
- }
41
- else if (isString) {
42
- encoded = `${encodeAndStripWhitespace(key)}=${customEncodeURIComponent(value, /\./g)}`;
43
- }
44
- else {
45
- encoded = `${encodeAndStripWhitespace(key)}=${customEncodeURIComponent(JSON.stringify(value), /\./g)}`;
46
- }
47
- results.push(encoded);
48
- }
49
- const components = results.join('&');
50
- if (opts === null || opts === void 0 ? void 0 : opts.baseUrl) {
51
- return `${opts.baseUrl}?${components}`;
52
- }
53
- return components;
54
- }
55
- exports.convertJsonToURI = convertJsonToURI;
56
- /**
57
- * @function decodeUriAsJson decodes an URI into a Json object
58
- * @param uri string
59
- * @param opts:
60
- * - requiredProperties: the required properties
61
- * - arrayTypeProperties: properties that can show up more that once
62
- */
63
- function convertURIToJsonObject(uri, opts) {
64
- if (!uri || !(opts === null || opts === void 0 ? void 0 : opts.requiredProperties.every((p) => uri.includes(p)))) {
65
- throw new Error(types_1.BAD_PARAMS);
66
- }
67
- const uriComponents = getURIComponentsAsArray(uri, opts === null || opts === void 0 ? void 0 : opts.arrayTypeProperties);
68
- return decodeJsonProperties(uriComponents);
69
- }
70
- exports.convertURIToJsonObject = convertURIToJsonObject;
71
- function decodeJsonProperties(parts) {
72
- const json = {};
73
- for (const key in parts) {
74
- const value = parts[key];
75
- if (!value) {
76
- continue;
77
- }
78
- if (Array.isArray(value)) {
79
- if (value.length > 1) {
80
- json[decodeURIComponent(key)] = value.map((v) => decodeURIComponent(v));
81
- }
82
- else {
83
- json[decodeURIComponent(key)] = decodeURIComponent(value[0]);
84
- }
85
- }
86
- const isBool = typeof value == 'boolean';
87
- const isNumber = typeof value == 'number';
88
- const isString = typeof value == 'string';
89
- if (isBool || isNumber) {
90
- json[decodeURIComponent(key)] = value;
91
- }
92
- else if (isString) {
93
- const decoded = decodeURIComponent(value);
94
- if (decoded.startsWith('{') && decoded.endsWith('}')) {
95
- json[decodeURIComponent(key)] = JSON.parse(decoded);
96
- }
97
- else {
98
- json[decodeURIComponent(key)] = decoded;
99
- }
100
- }
101
- }
102
- return json;
103
- }
104
- /**
105
- * @function get URI Components as Array
106
- * @param uri string
107
- * @param arrayType array of string containing array like keys
108
- */
109
- function getURIComponentsAsArray(uri, arrayType) {
110
- const parts = uri.includes('?') ? uri.split('?')[1] : uri.includes('://') ? uri.split('://')[1] : uri;
111
- const json = [];
112
- const dict = parts.split('&');
113
- for (const entry of dict) {
114
- const pair = entry.split('=');
115
- if (arrayType === null || arrayType === void 0 ? void 0 : arrayType.includes(pair[0])) {
116
- if (json[pair[0]] !== undefined) {
117
- json[pair[0]].push(pair[1]);
118
- }
119
- else {
120
- json[pair[0]] = [pair[1]];
121
- }
122
- continue;
123
- }
124
- json[pair[0]] = pair[1];
125
- }
126
- return json;
127
- }
128
- /**
129
- * @function customEncodeURIComponent is used to encode chars that are not encoded by default
130
- * @param searchValue The pattern/regexp to find the char(s) to be encoded
131
- * @param uriComponent query string
132
- */
133
- function customEncodeURIComponent(uriComponent, searchValue) {
134
- // -_.!~*'() are not escaped because they are considered safe.
135
- // Add them to the regex as you need
136
- return encodeURIComponent(uriComponent).replace(searchValue, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);
137
- }
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5jb2RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZnVuY3Rpb25zL0VuY29kaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9DQUE2RjtBQUU3Rjs7Ozs7O0dBTUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFhLEVBQUUsSUFBMEI7O0lBQ3hFLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUNqRDtJQUNELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUVuQixTQUFTLHdCQUF3QixDQUFDLEdBQVc7UUFDM0MsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUMvQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsU0FBUztTQUNWO1FBQ0QsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxDQUFBLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLGlCQUFpQiwwQ0FBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUEsRUFBRTtZQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDaEMsU0FBUztTQUNWO1FBQ0QsSUFBSSxDQUFBLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLG1CQUFtQiwwQ0FBRSxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwRSxPQUFPLENB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
@@ -1,17 +0,0 @@
1
- export declare class NotFoundError extends Error {
2
- constructor(message: string);
3
- }
4
- export declare function getJson<T>(URL: string): Promise<T>;
5
- export declare function formPost(url: string, body: BodyInit, opts?: {
6
- bearerToken?: string;
7
- contentType?: string;
8
- accept?: string;
9
- customHeaders?: HeadersInit;
10
- }): Promise<Response>;
11
- export declare function post(url: string, body: BodyInit, opts?: {
12
- bearerToken?: string;
13
- contentType?: string;
14
- accept?: string;
15
- customHeaders?: HeadersInit;
16
- }): Promise<Response>;
17
- export declare function isValidURL(url: string): boolean;
@@ -1,133 +0,0 @@
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.isValidURL = exports.post = exports.formPost = exports.getJson = exports.NotFoundError = void 0;
16
- const cross_fetch_1 = require("cross-fetch");
17
- const debug_1 = __importDefault(require("debug"));
18
- const types_1 = require("../types");
19
- const debug = (0, debug_1.default)('sphereon:oid4vci:http');
20
- class NotFoundError extends Error {
21
- constructor(message) {
22
- super(message);
23
- }
24
- }
25
- exports.NotFoundError = NotFoundError;
26
- function getJson(URL) {
27
- return __awaiter(this, void 0, void 0, function* () {
28
- let message = '';
29
- debug(`Fetching well-known URL: ${URL}`);
30
- const response = yield (0, cross_fetch_1.fetch)(URL);
31
- if (!response) {
32
- message = 'no response returned';
33
- }
34
- else {
35
- if (response.status && response.status < 400) {
36
- const json = yield response.json();
37
- debug(`Well-knonw response: ${JSON.stringify(json, null, 2)}`);
38
- return json;
39
- }
40
- else if (response.status === 404) {
41
- throw new NotFoundError(`URL ${URL} was not found`);
42
- }
43
- else {
44
- message = `${response.status}:${response.statusText}, ${yield response.text()}`;
45
- }
46
- }
47
- debug(`Well-known url ${URL} gave an error: ${message}`);
48
- throw new Error('error: ' + message);
49
- });
50
- }
51
- exports.getJson = getJson;
52
- function formPost(url, body, opts) {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- return yield post(url, body, (opts === null || opts === void 0 ? void 0 : opts.contentType) ? Object.assign({}, opts) : Object.assign({ contentType: types_1.Encoding.FORM_URL_ENCODED }, opts));
55
- });
56
- }
57
- exports.formPost = formPost;
58
- function post(url, body, opts) {
59
- return __awaiter(this, void 0, void 0, function* () {
60
- let message = '';
61
- const headers = (opts === null || opts === void 0 ? void 0 : opts.customHeaders) ? opts.customHeaders : [];
62
- if (opts === null || opts === void 0 ? void 0 : opts.bearerToken) {
63
- headers['Authorization'] = `Bearer ${opts.bearerToken}`;
64
- }
65
- headers['Content-Type'] = (opts === null || opts === void 0 ? void 0 : opts.contentType) ? opts.contentType : 'application/json';
66
- headers['Accept'] = (opts === null || opts === void 0 ? void 0 : opts.accept) ? opts.accept : 'application/json';
67
- const payload = {
68
- method: 'POST',
69
- headers,
70
- body,
71
- };
72
- try {
73
- // TODO: Remove the console.logs!
74
- console.log(`START fetching url: ${url}`);
75
- console.log('token (if any) and body:');
76
- console.log('==========================');
77
- console.log(opts.bearerToken);
78
- console.log(JSON.stringify(body));
79
- console.log('==========================');
80
- console.log(`Headers: ${JSON.stringify(payload.headers)}`);
81
- const response = yield (0, cross_fetch_1.fetch)(url, payload);
82
- if (response && response.status >= 200 && response.status < 400) {
83
- const logResponse = response.clone();
84
- try {
85
- debug(`Success response with status ${logResponse.status}. Headers: ${JSON.stringify(logResponse.headers)}`);
86
- console.log(`Success response: ${yield logResponse.text()}`);
87
- }
88
- catch (error) {
89
- console.log('success response did throw error: ' + error.message);
90
- }
91
- console.log(`END fetching url: ${url}`);
92
- return response;
93
- }
94
- else {
95
- if (response) {
96
- const logResponse = response.clone();
97
- console.log(`Response with status ${logResponse.status} and status text ${logResponse.statusText} with headers ${JSON.stringify(logResponse.headers)})}`);
98
- try {
99
- message = `${logResponse.status}:${logResponse.statusText}, response: ${yield logResponse.text()}`;
100
- }
101
- catch (jsonerror) {
102
- console.log(`accessing error body as json failed. ${jsonerror.message}`);
103
- message = `${logResponse.status}:${logResponse.statusText}, ${yield logResponse.text()}`;
104
- }
105
- }
106
- else {
107
- console.log(`No response received for ${url}`);
108
- }
109
- }
110
- }
111
- catch (error) {
112
- const err = error;
113
- console.log(`Error: ${JSON.stringify(err.stack)} ${error.message}`);
114
- console.log(`END fetching url: ${url}`);
115
- throw new Error(`${error.message}`);
116
- }
117
- console.log(`unexpected Error: ${JSON.stringify(message)}`);
118
- console.log(`END fetching url: ${url}`);
119
- throw new Error('unexpected error: ' + message);
120
- });
121
- }
122
- exports.post = post;
123
- function isValidURL(url) {
124
- const urlPattern = new RegExp('^(https?:\\/\\/)?' + // validate protocol
125
- '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // validate domain name
126
- '((\\d{1,3}\\.){3}\\d{1,3}))' + // validate OR ip (v4) address
127
- '(\\:\\d+)?(\\/[-a-z\\d%_.~+:]*)*' + // validate port and path
128
- '(\\?[;&a-z\\d%_.~+=-]*)?' + // validate query string
129
- '(\\#[-a-z\\d_]*)?$', 'i'); // validate fragment locator
130
- return !!urlPattern.test(url);
131
- }
132
- exports.isValidURL = isValidURL;
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2Z1bmN0aW9ucy9IdHRwVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQW9DO0FBQ3BDLGtEQUEwQjtBQUUxQixvQ0FBb0M7QUFFcEMsTUFBTSxLQUFLLEdBQUcsSUFBQSxlQUFLLEVBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUU3QyxNQUFhLGFBQWMsU0FBUSxLQUFLO0lBQ3RDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBSkQsc0NBSUM7QUFFRCxTQUFzQixPQUFPLENBQUksR0FBVzs7UUFDMUMsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBRWpCLEtBQUssQ0FBQyw0QkFBNEIsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN6QyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsbUJBQUssRUFBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxHQUFHLHNCQUFzQixDQUFDO1NBQ2xDO2FBQU07WUFDTCxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQzVDLE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNuQyxLQUFLLENBQUMsd0JBQXdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQy9ELE9BQU8sSUFBUyxDQUFDO2FBQ2xCO2lCQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7Z0JBQ2xDLE1BQU0sSUFBSSxhQUFhLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLENBQUM7YUFDckQ7aUJBQU07Z0JBQ0wsT0FB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
@@ -1,9 +0,0 @@
1
- import { ProofOfPossession, ProofOfPossessionOpts } from '../types';
2
- /**
3
- * createProofOfPossession creates and returns the ProofOfPossession object
4
- * @param opts
5
- * - jwtSignerArgs: The arguments to create the signature
6
- * - jwtSignerCallback: function to sign the proof
7
- * - jwtVerifyCallback: function to verify if JWT is valid
8
- */
9
- export declare function createProofOfPossession(opts: ProofOfPossessionOpts): Promise<ProofOfPossession>;
@@ -1,76 +0,0 @@
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.createProofOfPossession = void 0;
13
- const types_1 = require("../types");
14
- /**
15
- * createProofOfPossession creates and returns the ProofOfPossession object
16
- * @param opts
17
- * - jwtSignerArgs: The arguments to create the signature
18
- * - jwtSignerCallback: function to sign the proof
19
- * - jwtVerifyCallback: function to verify if JWT is valid
20
- */
21
- function createProofOfPossession(opts) {
22
- return __awaiter(this, void 0, void 0, function* () {
23
- if (!opts.jwtSignerCallback || !opts.jwtSignerArgs) {
24
- throw new Error(types_1.BAD_PARAMS);
25
- }
26
- const signerArgs = setJWSDefaults(opts.jwtSignerArgs, opts.issuerURL, opts.clientId);
27
- const jwt = yield opts.jwtSignerCallback(signerArgs);
28
- try {
29
- if (opts.jwtVerifyCallback) {
30
- const algorithm = opts.jwtSignerArgs.header.alg;
31
- yield opts.jwtVerifyCallback({ jws: jwt, key: opts.jwtSignerArgs.publicKey, algorithms: [algorithm] });
32
- }
33
- else {
34
- partiallyValidateJWS(jwt);
35
- }
36
- }
37
- catch (_a) {
38
- throw new Error(types_1.JWS_NOT_VALID);
39
- }
40
- return {
41
- proof_type: types_1.ProofType.JWT,
42
- jwt,
43
- };
44
- });
45
- }
46
- exports.createProofOfPossession = createProofOfPossession;
47
- function partiallyValidateJWS(jws) {
48
- if (jws.split('.').length !== 3 || !jws.startsWith('ey')) {
49
- throw new Error(types_1.JWS_NOT_VALID);
50
- }
51
- }
52
- function setJWSDefaults(args, issuerUrl, clientId) {
53
- const now = +new Date();
54
- const aud = args.payload.aud ? args.payload.aud : issuerUrl;
55
- if (!aud) {
56
- throw new Error('No issuer url provided');
57
- }
58
- const iss = args.payload.iss ? args.payload.iss : clientId;
59
- if (!iss) {
60
- throw new Error('No clientId provided');
61
- }
62
- const defaultPayload = {
63
- aud,
64
- iss,
65
- iat: args.payload.iat ? args.payload.iat : now / 1000 - 60,
66
- exp: args.payload.exp ? args.payload.exp : now / 1000 + 10 * 60,
67
- };
68
- const defaultHeader = {
69
- alg: 'ES256',
70
- typ: 'JWT',
71
- };
72
- args.payload = Object.assign(Object.assign({}, defaultPayload), args.payload);
73
- args.header = Object.assign(Object.assign({}, defaultHeader), args.header);
74
- return args;
75
- }
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvb2ZVdGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2Z1bmN0aW9ucy9Qcm9vZlV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsb0NBQWdKO0FBRWhKOzs7Ozs7R0FNRztBQUNILFNBQXNCLHVCQUF1QixDQUFDLElBQTJCOztRQUN2RSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsRCxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFVLENBQUMsQ0FBQztTQUM3QjtRQUNELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JELElBQUk7WUFDRixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDMUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2dCQUNoRCxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN4RztpQkFBTTtnQkFDTCxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMzQjtTQUNGO1FBQUMsV0FBTTtZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQWEsQ0FBQyxDQUFDO1NBQ2hDO1FBQ0QsT0FBTztZQUNMLFVBQVUsRUFBRSxpQkFBUyxDQUFDLEdBQUc7WUFDekIsR0FBRztTQUNKLENBQUM7SUFDSixDQUFDO0NBQUE7QUFwQkQsMERBb0JDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxHQUFXO0lBQ3ZDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN4RCxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFhLENBQUMsQ0FBQztLQUNoQztBQUNILENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxJQUFtQixFQUFFLFNBQWlCLEVBQUUsUUFBaUI7SUFDL0UsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3hCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzVELElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7S0FDM0M7SUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUMzRCxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0tBQ3pDO0lBQ0QsTUFBTSxjQUFjLEdBQXdCO1FBQzFDLEdBQUc7UUFDSCxHQUFHO1FBQ0gsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFO1FBQzFELEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUU7S0FDaEUsQ0FBQztJQUNGLE1BQU0sYUFBYSxHQUFjO1FBQy9CLEdBQUcsRUFBRSxPQUFPO1FBQ1osR0FBRyxFQUFFLEtBQUs7S0FDWCxDQUFDO0lBQ0YsSUFBSSxDQUFDLE9BQU8sbUNBQVEsY0FBYyxHQUFLLElBQUksQ0FBQyxPQUFPLENBQUUsQ0FBQztJQUN0RCxJQUFJLENBQUMsTUFBTSxtQ0FBUSxhQUFhLEdBQUssSUFBSSxDQUFDLE1BQU0sQ0FBRSxDQUFDO0lBQ25ELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyJ9
@@ -1,3 +0,0 @@
1
- export * from './Encoding';
2
- export * from './HttpUtils';
3
- export * from './ProofUtil';