@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
@@ -0,0 +1,120 @@
1
+ import { BAD_PARAMS, JWS_NOT_VALID, Jwt, JWTHeader, JWTPayload, ProofOfPossession, ProofOfPossessionCallbacks, Typ } from '@sphereon/oid4vci-common';
2
+ import Debug from 'debug';
3
+
4
+ const debug = Debug('sphereon:openid4vci:token');
5
+
6
+ /**
7
+ *
8
+ * - proofOfPossessionCallback: JWTSignerCallback
9
+ * Mandatory if you want to create (sign) ProofOfPossession
10
+ * - proofOfPossessionVerifierCallback?: JWTVerifyCallback
11
+ * If exists, verifies the ProofOfPossession
12
+ * - proofOfPossessionCallbackArgs: ProofOfPossessionCallbackArgs
13
+ * arguments needed for signing ProofOfPossession
14
+ * @param callbacks:
15
+ * - proofOfPossessionCallback: JWTSignerCallback
16
+ * Mandatory to create (sign) ProofOfPossession
17
+ * - proofOfPossessionVerifierCallback?: JWTVerifyCallback
18
+ * If exists, verifies the ProofOfPossession
19
+ * @param jwtProps
20
+ * @param existingJwt
21
+ * - Optional, clientId of the party requesting the credential
22
+ */
23
+ export const createProofOfPossession = async (
24
+ callbacks: ProofOfPossessionCallbacks,
25
+ jwtProps?: JwtProps,
26
+ existingJwt?: Jwt
27
+ ): Promise<ProofOfPossession> => {
28
+ if (!callbacks.signCallback) {
29
+ debug(`no jwt signer callback or arguments supplied!`);
30
+ throw new Error(BAD_PARAMS);
31
+ }
32
+
33
+ const signerArgs = createJWT(jwtProps, existingJwt);
34
+ const jwt = await callbacks.signCallback(signerArgs, signerArgs.header.kid);
35
+ const proof = {
36
+ proof_type: 'jwt',
37
+ jwt,
38
+ } as ProofOfPossession;
39
+
40
+ try {
41
+ partiallyValidateJWS(jwt);
42
+ if (callbacks.verifyCallback) {
43
+ debug(`Calling supplied verify callback....`);
44
+ await callbacks.verifyCallback({ jwt, kid: signerArgs.header.kid });
45
+ debug(`Supplied verify callback return success result`);
46
+ }
47
+ } catch {
48
+ debug(`JWS was not valid`);
49
+ throw new Error(JWS_NOT_VALID);
50
+ }
51
+ debug(`Proof of Possession JWT:\r\n${jwt}`);
52
+ return proof;
53
+ };
54
+
55
+ const partiallyValidateJWS = (jws: string): void => {
56
+ if (jws.split('.').length !== 3 || !jws.startsWith('ey')) {
57
+ throw new Error(JWS_NOT_VALID);
58
+ }
59
+ };
60
+
61
+ export interface JwtProps {
62
+ typ?: Typ;
63
+ kid?: string;
64
+ issuer?: string;
65
+ clientId?: string;
66
+ alg?: string;
67
+ jti?: string;
68
+ nonce?: string;
69
+ }
70
+
71
+ const createJWT = (jwtProps?: JwtProps, existingJwt?: Jwt): Jwt => {
72
+ const aud = getJwtProperty('aud', true, jwtProps?.issuer, existingJwt?.payload?.aud);
73
+ const iss = getJwtProperty('iss', false, jwtProps?.clientId, existingJwt?.payload?.iss);
74
+ const jti = getJwtProperty('jti', false, jwtProps?.jti, existingJwt?.payload?.jti);
75
+ const typ = getJwtProperty('typ', true, jwtProps?.typ, existingJwt?.header?.typ, 'jwt');
76
+ const nonce = getJwtProperty('nonce', false, jwtProps?.nonce, existingJwt?.payload?.nonce); // Officially this is required, but some implementations don't have it
77
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
78
+ const alg = getJwtProperty('alg', false, jwtProps?.alg, existingJwt?.header?.alg, 'ES256')!;
79
+ const kid = getJwtProperty('kid', true, jwtProps?.kid, existingJwt?.header?.kid);
80
+ const jwt: Partial<Jwt> = existingJwt ? existingJwt : {};
81
+ const now = +new Date();
82
+ const jwtPayload: Partial<JWTPayload> = {
83
+ aud,
84
+ iat: jwt.payload?.iat ? jwt.payload.iat : now / 1000 - 60, // Let's ensure we subtract 60 seconds for potential time offsets
85
+ exp: jwt.payload?.exp ? jwt.payload.exp : now / 1000 + 10 * 60,
86
+ nonce,
87
+ ...(iss ? { iss } : {}),
88
+ ...(jti ? { jti } : {}),
89
+ };
90
+
91
+ const jwtHeader: JWTHeader = {
92
+ typ,
93
+ alg,
94
+ kid,
95
+ };
96
+ return {
97
+ payload: { ...jwt.payload, ...jwtPayload },
98
+ header: { ...jwt.header, ...jwtHeader },
99
+ };
100
+ };
101
+
102
+ const getJwtProperty = (
103
+ propertyName: string,
104
+ required: boolean,
105
+ option?: string,
106
+ jwtProperty?: string,
107
+ defaultValue?: string
108
+ ): string | undefined => {
109
+ if (option && jwtProperty && option !== jwtProperty) {
110
+ throw Error(`Cannot have a property '${propertyName}' with value '${option}' and different JWT value '${jwtProperty}' at the same time`);
111
+ }
112
+ let result = jwtProperty ? jwtProperty : option;
113
+ if (!result) {
114
+ if (required) {
115
+ throw Error(`No ${propertyName} property provided either in a JWT or as option`);
116
+ }
117
+ result = defaultValue;
118
+ }
119
+ return result;
120
+ };
@@ -0,0 +1,3 @@
1
+ export * from '@sphereon/oid4vci-common/dist/functions/Encoding';
2
+ export * from '@sphereon/oid4vci-common/dist/functions/HttpUtils';
3
+ export * from './ProofUtil';
@@ -1,7 +1,8 @@
1
- export * from './functions';
2
- export * from './types';
3
- export * from './MetadataClient';
4
- export * from './IssuanceInitiation';
5
- export * from './AccessTokenClient';
6
- export * from './CredentialRequestClient';
7
- export * from './CredentialRequestClientBuilder';
1
+ export * from './AccessTokenClient';
2
+ export * from './CredentialOfferClient';
3
+ export * from './CredentialRequestClient';
4
+ export * from './CredentialRequestClientBuilder';
5
+ export * from './functions';
6
+ export * from './MetadataClient';
7
+ export * from './OpenID4VCIClient';
8
+ export * from './ProofOfPossessionBuilder';
package/package.json CHANGED
@@ -1,71 +1,68 @@
1
- {
2
- "name": "@sphereon/oid4vci-client",
3
- "version": "0.2.0",
4
- "description": "OpenID for Verifiable Credential Issuance (OID4VCI) client",
5
- "main": "dist/main/index.js",
6
- "types": "dist/main/index.d.ts",
7
- "author": "Sphereon",
8
- "license": "Apache-2.0",
9
- "private": false,
10
- "scripts": {
11
- "build": "run-p build:*",
12
- "build:main": "tsc -p tsconfig.build.json",
13
- "clean": "rimraf dist coverage",
14
- "watch": "tsc -w",
15
- "fix": "run-s fix:*",
16
- "fix:prettier": "prettier \"{lib,tests}/**/*.ts\" --write",
17
- "fix:lint": "eslint . --ext .ts --fix",
18
- "test": "run-s build test:*",
19
- "test:lint": "eslint . --ext .ts",
20
- "test:prettier": "prettier \"{lib,tests}/**/*.ts\" --list-different",
21
- "test:cov": "jest --ci --coverage && codecov",
22
- "uninstall": "rimraf dist coverage yarn.lock package-lock.json node_modules"
23
- },
24
- "engines": {
25
- "node": ">=14"
26
- },
27
- "dependencies": {
28
- "@sphereon/ssi-types": "0.8.1-unstable.74",
29
- "debug": "^4.3.4",
30
- "bs58": "^5.0.0",
31
- "cross-fetch": "^3.1.5",
32
- "uint8arrays": "^3.1.1"
33
- },
34
- "devDependencies": {
35
- "@types/jest": "^28.1.8",
36
- "@typescript-eslint/eslint-plugin": "^5.36.1",
37
- "@typescript-eslint/parser": "^5.36.1",
38
- "codecov": "^3.8.3",
39
- "dotenv": "^16.0.2",
40
- "eslint": "^8.23.0",
41
- "eslint-config-prettier": "^8.5.0",
42
- "eslint-plugin-eslint-comments": "^3.2.0",
43
- "eslint-plugin-import": "^2.26.0",
44
- "jest": "^29.1.2",
45
- "jest-junit": "^14.0.1",
46
- "jose": "^4.10.0",
47
- "nock": "^13.2.9",
48
- "npm-run-all": "^4.1.5",
49
- "open-cli": "^7.0.1",
50
- "rimraf": "^3.0.2",
51
- "prettier": "^2.7.1",
52
- "ts-jest": "^29.0.3",
53
- "ts-node": "^10.9.1",
54
- "typescript": "4.6.4"
55
- },
56
- "files": [
57
- "dist/main"
58
- ],
59
- "prettier": {
60
- "singleQuote": true,
61
- "printWidth": 150
62
- },
63
- "keywords": [
64
- "Sphereon",
65
- "Verifiable Credentials",
66
- "OpenID",
67
- "OpenID for Verifiable Credential Issuance",
68
- "OIDC4VCI",
69
- "OID4VCI"
70
- ]
71
- }
1
+ {
2
+ "name": "@sphereon/oid4vci-client",
3
+ "version": "0.4.1-next.285+47fec82",
4
+ "description": "OpenID for Verifiable Credential Issuance (OpenID4VCI) client",
5
+ "source": "lib/index.ts",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "author": "Sphereon",
9
+ "license": "Apache-2.0",
10
+ "private": false,
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "scripts": {
15
+ "build": "tsc"
16
+ },
17
+ "dependencies": {
18
+ "@sphereon/oid4vci-common": "0.4.1-next.285+47fec82",
19
+ "@sphereon/ssi-types": "^0.9.0",
20
+ "cross-fetch": "^3.1.5",
21
+ "debug": "^4.3.4",
22
+ "uint8arrays": "^3.1.1"
23
+ },
24
+ "devDependencies": {
25
+ "@types/jest": "^29.5.0",
26
+ "@types/node": "^18.15.3",
27
+ "@typescript-eslint/eslint-plugin": "^5.36.1",
28
+ "@typescript-eslint/parser": "^5.36.1",
29
+ "codecov": "^3.8.3",
30
+ "dotenv": "^16.0.2",
31
+ "eslint": "^8.23.0",
32
+ "eslint-config-prettier": "^8.5.0",
33
+ "eslint-plugin-eslint-comments": "^3.2.0",
34
+ "eslint-plugin-import": "^2.26.0",
35
+ "jest": "^29.1.2",
36
+ "jest-junit": "^14.0.1",
37
+ "jose": "^4.10.0",
38
+ "nock": "^13.2.9",
39
+ "npm-run-all": "^4.1.5",
40
+ "open-cli": "^7.0.1",
41
+ "ts-jest": "^29.0.5",
42
+ "ts-node": "^10.9.1",
43
+ "typescript": "4.9.5"
44
+ },
45
+ "engines": {
46
+ "node": ">=16"
47
+ },
48
+ "files": [
49
+ "lib/**/*",
50
+ "dist/**/*"
51
+ ],
52
+ "prettier": {
53
+ "singleQuote": true,
54
+ "printWidth": 150
55
+ },
56
+ "keywords": [
57
+ "Sphereon",
58
+ "Verifiable Credentials",
59
+ "OpenID",
60
+ "OpenID for Verifiable Credential Issuance",
61
+ "OAuth2",
62
+ "SSI",
63
+ "OpenID4VCI",
64
+ "OIDC4VCI",
65
+ "OID4VCI"
66
+ ],
67
+ "gitHead": "47fec82924b0d4a32f25737d7ba7379903fdb4f0"
68
+ }
package/CHANGELOG.md DELETED
@@ -1,21 +0,0 @@
1
- # Release Notes
2
-
3
- ## v0.2.0 - 2022-11-04
4
-
5
- Release with support for the pre-authorized code flow only.
6
-
7
- Expect breaking changes in the future, as this package still is undergoing heavy development.
8
-
9
- - Added:
10
- - Support for well-known OID4VCI, oAuth2 and OpenID metadata
11
-
12
- - Fixes:
13
- - Several fixes related to pincode handling
14
- - Overall fixes
15
-
16
-
17
- ## v0.1.0 - 2022-10-18
18
-
19
- Initial release with support for the pre-authorized code flow only.
20
-
21
- Expect breaking changes in the future, as this package still is undergoing heavy development.
@@ -1 +0,0 @@
1
- export * from './lib';
@@ -1,20 +0,0 @@
1
- import { AccessTokenRequest, AccessTokenRequestOpts, AccessTokenResponse, AuthorizationServerOpts, EndpointMetadata, ErrorResponse, IssuanceInitiationRequestPayload, IssuanceInitiationWithBaseUrl, IssuerOpts } from './types';
2
- export declare class AccessTokenClient {
3
- acquireAccessTokenUsingIssuanceInitiation(issuanceInitiation: IssuanceInitiationWithBaseUrl, opts?: AccessTokenRequestOpts): Promise<AccessTokenResponse | ErrorResponse>;
4
- acquireAccessTokenUsingRequest(accessTokenRequest: AccessTokenRequest, opts?: {
5
- isPinRequired?: boolean;
6
- metadata?: EndpointMetadata;
7
- asOpts?: AuthorizationServerOpts;
8
- issuerOpts?: IssuerOpts;
9
- }): Promise<AccessTokenResponse | ErrorResponse>;
10
- createAccessTokenRequest(issuanceInitiationRequest: IssuanceInitiationRequestPayload, opts?: AccessTokenRequestOpts): Promise<AccessTokenRequest>;
11
- private assertPreAuthorizedGrantType;
12
- private isPinRequiredValue;
13
- private assertNumericPin;
14
- private assertNonEmptyPreAuthorizedCode;
15
- private validate;
16
- private sendAuthCode;
17
- private determineTokenURL;
18
- private creatTokenURLFromURL;
19
- private throwNotSupportedFlow;
20
- }
@@ -1,141 +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.AccessTokenClient = void 0;
13
- const ssi_types_1 = require("@sphereon/ssi-types");
14
- const MetadataClient_1 = require("./MetadataClient");
15
- const functions_1 = require("./functions");
16
- const types_1 = require("./types");
17
- class AccessTokenClient {
18
- acquireAccessTokenUsingIssuanceInitiation(issuanceInitiation, opts) {
19
- return __awaiter(this, void 0, void 0, function* () {
20
- const { issuanceInitiationRequest } = issuanceInitiation;
21
- const isPinRequired = this.isPinRequiredValue(issuanceInitiationRequest);
22
- const reqOpts = {
23
- isPinRequired,
24
- issuerOpts: { issuer: issuanceInitiationRequest.issuer },
25
- asOpts: (opts === null || opts === void 0 ? void 0 : opts.asOpts) ? Object.assign({}, opts.asOpts) : undefined,
26
- metadata: opts === null || opts === void 0 ? void 0 : opts.metadata,
27
- };
28
- return yield this.acquireAccessTokenUsingRequest(yield this.createAccessTokenRequest(issuanceInitiationRequest, opts), reqOpts);
29
- });
30
- }
31
- acquireAccessTokenUsingRequest(accessTokenRequest, opts) {
32
- var _a;
33
- return __awaiter(this, void 0, void 0, function* () {
34
- this.validate(accessTokenRequest, opts === null || opts === void 0 ? void 0 : opts.isPinRequired);
35
- const requestTokenURL = this.determineTokenURL(opts === null || opts === void 0 ? void 0 : opts.asOpts, opts === null || opts === void 0 ? void 0 : opts.issuerOpts, (opts === null || opts === void 0 ? void 0 : opts.metadata)
36
- ? opts === null || opts === void 0 ? void 0 : opts.metadata
37
- : ((_a = opts === null || opts === void 0 ? void 0 : opts.issuerOpts) === null || _a === void 0 ? void 0 : _a.fetchMetadata)
38
- ? yield MetadataClient_1.MetadataClient.retrieveAllMetadata(opts === null || opts === void 0 ? void 0 : opts.issuerOpts.issuer, { errorOnNotFound: false })
39
- : undefined);
40
- return this.sendAuthCode(requestTokenURL, accessTokenRequest);
41
- });
42
- }
43
- createAccessTokenRequest(issuanceInitiationRequest, opts) {
44
- var _a;
45
- return __awaiter(this, void 0, void 0, function* () {
46
- const request = {};
47
- if ((_a = opts === null || opts === void 0 ? void 0 : opts.asOpts) === null || _a === void 0 ? void 0 : _a.clientId) {
48
- request.client_id = opts.asOpts.clientId;
49
- }
50
- if (this.isPinRequiredValue(issuanceInitiationRequest)) {
51
- this.assertNumericPin(true, opts.pin);
52
- request.user_pin = opts.pin;
53
- }
54
- if (issuanceInitiationRequest[types_1.PRE_AUTH_CODE_LITERAL]) {
55
- request.grant_type = types_1.GrantTypes.PRE_AUTHORIZED_CODE;
56
- request[types_1.PRE_AUTH_CODE_LITERAL] = issuanceInitiationRequest[types_1.PRE_AUTH_CODE_LITERAL];
57
- }
58
- if (issuanceInitiationRequest.op_state) {
59
- if (issuanceInitiationRequest[types_1.PRE_AUTH_CODE_LITERAL]) {
60
- throw new Error('Cannot have both a pre_authorized_code and a op_state in the same initiation request');
61
- }
62
- request.grant_type = types_1.GrantTypes.AUTHORIZATION_CODE;
63
- this.throwNotSupportedFlow();
64
- }
65
- return request;
66
- });
67
- }
68
- assertPreAuthorizedGrantType(grantType) {
69
- if (types_1.GrantTypes.PRE_AUTHORIZED_CODE !== grantType) {
70
- throw new Error("grant type must be 'urn:ietf:params:oauth:grant-type:pre-authorized_code'");
71
- }
72
- }
73
- isPinRequiredValue(issuanceInitiationRequest) {
74
- let isPinRequired = false;
75
- if (issuanceInitiationRequest !== undefined) {
76
- if (typeof issuanceInitiationRequest.user_pin_required === 'string') {
77
- isPinRequired = issuanceInitiationRequest.user_pin_required.toLowerCase() === 'true';
78
- }
79
- else if (typeof issuanceInitiationRequest.user_pin_required === 'boolean') {
80
- isPinRequired = issuanceInitiationRequest.user_pin_required;
81
- }
82
- }
83
- return isPinRequired;
84
- }
85
- assertNumericPin(isPinRequired, pin) {
86
- if (isPinRequired) {
87
- if (!pin || !/^\d{1,8}$/.test(pin)) {
88
- throw new Error('A valid pin consisting of maximal 8 numeric characters must be present.');
89
- }
90
- }
91
- else if (pin) {
92
- throw new Error('Cannot set a pin, when the pin is not required.');
93
- }
94
- }
95
- assertNonEmptyPreAuthorizedCode(accessTokenRequest) {
96
- if (!accessTokenRequest[types_1.PRE_AUTH_CODE_LITERAL]) {
97
- throw new Error('Pre-authorization must be proven by presenting the pre-authorized code. Code must be present.');
98
- }
99
- }
100
- validate(accessTokenRequest, isPinRequired) {
101
- if (accessTokenRequest.grant_type === types_1.GrantTypes.PRE_AUTHORIZED_CODE) {
102
- this.assertPreAuthorizedGrantType(accessTokenRequest.grant_type);
103
- this.assertNonEmptyPreAuthorizedCode(accessTokenRequest);
104
- this.assertNumericPin(isPinRequired, accessTokenRequest.user_pin);
105
- }
106
- else {
107
- this.throwNotSupportedFlow();
108
- }
109
- }
110
- sendAuthCode(requestTokenURL, accessTokenRequest) {
111
- return __awaiter(this, void 0, void 0, function* () {
112
- const response = yield (0, functions_1.formPost)(requestTokenURL, (0, functions_1.convertJsonToURI)(accessTokenRequest));
113
- return yield response.json();
114
- });
115
- }
116
- determineTokenURL(asOpts, issuerOpts, metadata) {
117
- if (!asOpts && !issuerOpts) {
118
- throw new Error('Cannot determine token URL if no issuer and no Authorization Server values are present');
119
- }
120
- const url = asOpts && asOpts.as
121
- ? this.creatTokenURLFromURL(asOpts.as, asOpts.tokenEndpoint)
122
- : (metadata === null || metadata === void 0 ? void 0 : metadata.token_endpoint)
123
- ? metadata.token_endpoint
124
- : this.creatTokenURLFromURL(issuerOpts.issuer, issuerOpts.tokenEndpoint);
125
- if (!url || !ssi_types_1.ObjectUtils.isString(url)) {
126
- throw new Error('No authorization server token URL present. Cannot acquire access token');
127
- }
128
- return url;
129
- }
130
- creatTokenURLFromURL(url, tokenEndpoint) {
131
- const hostname = url.replace(/https?:\/\//, '').replace(/\/$/, '');
132
- const endpoint = tokenEndpoint ? (tokenEndpoint.startsWith('/') ? tokenEndpoint : tokenEndpoint.substring(1)) : '/token';
133
- // We always require https
134
- return `https://${hostname}${endpoint}`;
135
- }
136
- throwNotSupportedFlow() {
137
- throw new Error('Only pre-authorized-code flow is supported');
138
- }
139
- }
140
- exports.AccessTokenClient = AccessTokenClient;
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNjZXNzVG9rZW5DbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvQWNjZXNzVG9rZW5DbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWtEO0FBRWxELHFEQUFrRDtBQUNsRCwyQ0FBeUQ7QUFDekQsbUNBWWlCO0FBRWpCLE1BQWEsaUJBQWlCO0lBQ2YseUNBQXlDLENBQ3BELGtCQUFpRCxFQUNqRCxJQUE2Qjs7WUFFN0IsTUFBTSxFQUFFLHlCQUF5QixFQUFFLEdBQUcsa0JBQWtCLENBQUM7WUFFekQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDekUsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsYUFBYTtnQkFDYixVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUseUJBQXlCLENBQUMsTUFBTSxFQUFFO2dCQUN4RCxNQUFNLEVBQUUsQ0FBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsTUFBTSxFQUFDLENBQUMsbUJBQU0sSUFBSSxDQUFDLE1BQU0sRUFBRyxDQUFDLENBQUMsU0FBUztnQkFDckQsUUFBUSxFQUFFLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxRQUFRO2FBQ3pCLENBQUM7WUFDRixPQUFPLE1BQU0sSUFBSSxDQUFDLDhCQUE4QixDQUFDLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xJLENBQUM7S0FBQTtJQUVZLDhCQUE4QixDQUN6QyxrQkFBc0MsRUFDdEMsSUFBMEg7OztZQUUxSCxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxhQUFhLENBQUMsQ0FBQztZQUN2RCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQzVD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
@@ -1,31 +0,0 @@
1
- import { CredentialFormat } from '@sphereon/ssi-types';
2
- import { CredentialRequestClientBuilder } from './CredentialRequestClientBuilder';
3
- import { CredentialRequest, CredentialResponse, ErrorResponse, ProofOfPossession, ProofOfPossessionOpts } from './types';
4
- export declare class CredentialRequestClient {
5
- _issuanceRequestOpts: Partial<{
6
- credentialEndpoint: string;
7
- clientId: string;
8
- credentialType: string | string[];
9
- format: CredentialFormat | CredentialFormat[];
10
- proof: ProofOfPossession;
11
- token: string;
12
- }>;
13
- getCredentialEndpoint(): string;
14
- getClientId(): string;
15
- constructor(builder: CredentialRequestClientBuilder);
16
- static builder(): CredentialRequestClientBuilder;
17
- acquireCredentialsUsingProof(proof: ProofOfPossession | ProofOfPossessionOpts, opts?: {
18
- credentialType?: string | string[];
19
- format?: CredentialFormat | CredentialFormat[];
20
- overrideIssuerURL?: string;
21
- overrideAccessToken?: string;
22
- }): Promise<CredentialResponse | ErrorResponse>;
23
- acquireCredentialsUsingRequest(request: CredentialRequest, opts?: {
24
- overrideCredentialEndpoint?: string;
25
- overrideAccessToken?: string;
26
- }): Promise<CredentialResponse | ErrorResponse>;
27
- createCredentialRequest(proof: ProofOfPossession | ProofOfPossessionOpts, opts?: {
28
- credentialType?: string | string[];
29
- format?: CredentialFormat | CredentialFormat[];
30
- }): Promise<CredentialRequest>;
31
- }
@@ -1,66 +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.CredentialRequestClient = void 0;
13
- const CredentialRequestClientBuilder_1 = require("./CredentialRequestClientBuilder");
14
- const functions_1 = require("./functions");
15
- const types_1 = require("./types");
16
- class CredentialRequestClient {
17
- constructor(builder) {
18
- this._issuanceRequestOpts = Object.assign({}, builder);
19
- }
20
- getCredentialEndpoint() {
21
- return this._issuanceRequestOpts.credentialEndpoint;
22
- }
23
- getClientId() {
24
- return this._issuanceRequestOpts.clientId;
25
- }
26
- static builder() {
27
- return new CredentialRequestClientBuilder_1.CredentialRequestClientBuilder();
28
- }
29
- acquireCredentialsUsingProof(proof, opts) {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- const request = yield this.createCredentialRequest(proof, Object.assign({}, opts));
32
- return yield this.acquireCredentialsUsingRequest(request, Object.assign({}, opts));
33
- });
34
- }
35
- acquireCredentialsUsingRequest(request, opts) {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- const credentialEndpoint = (opts === null || opts === void 0 ? void 0 : opts.overrideCredentialEndpoint)
38
- ? opts.overrideCredentialEndpoint
39
- : this._issuanceRequestOpts.credentialEndpoint;
40
- if (!(0, functions_1.isValidURL)(credentialEndpoint)) {
41
- throw new Error(types_1.URL_NOT_VALID);
42
- }
43
- const requestToken = (opts === null || opts === void 0 ? void 0 : opts.overrideAccessToken) ? opts.overrideAccessToken : this._issuanceRequestOpts.token;
44
- const response = yield (0, functions_1.post)(credentialEndpoint, JSON.stringify(request), { bearerToken: requestToken });
45
- const responseJson = yield response.json();
46
- if (responseJson.error) {
47
- return Object.assign({}, responseJson);
48
- }
49
- return Object.assign({}, responseJson);
50
- });
51
- }
52
- createCredentialRequest(proof, opts) {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- const proofOfPossession = 'jwt' in proof
55
- ? proof
56
- : yield (0, functions_1.createProofOfPossession)(Object.assign({ issuerURL: proof.issuerURL ? proof.issuerURL : this._issuanceRequestOpts.credentialEndpoint, clientId: proof.clientId ? proof.clientId : this._issuanceRequestOpts.clientId }, proof));
57
- return {
58
- type: (opts === null || opts === void 0 ? void 0 : opts.credentialType) ? opts.credentialType : this._issuanceRequestOpts.credentialType,
59
- format: (opts === null || opts === void 0 ? void 0 : opts.format) ? opts.format : this._issuanceRequestOpts.format,
60
- proof: proofOfPossession,
61
- };
62
- });
63
- }
64
- }
65
- exports.CredentialRequestClient = CredentialRequestClient;
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlZGVudGlhbFJlcXVlc3RDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvQ3JlZGVudGlhbFJlcXVlc3RDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRUEscUZBQWtGO0FBQ2xGLDJDQUF3RTtBQUN4RSxtQ0FBd0k7QUFFeEksTUFBYSx1QkFBdUI7SUFrQmxDLFlBQW1CLE9BQXVDO1FBQ3hELElBQUksQ0FBQyxvQkFBb0IscUJBQVEsT0FBTyxDQUFFLENBQUM7SUFDN0MsQ0FBQztJQVZNLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQztJQUN0RCxDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7SUFDNUMsQ0FBQztJQU1NLE1BQU0sQ0FBQyxPQUFPO1FBQ25CLE9BQU8sSUFBSSwrREFBOEIsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFWSw0QkFBNEIsQ0FDdkMsS0FBZ0QsRUFDaEQsSUFLQzs7WUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLG9CQUFPLElBQUksRUFBRyxDQUFDO1lBQ3ZFLE9BQU8sTUFBTSxJQUFJLENBQUMsOEJBQThCLENBQUMsT0FBTyxvQkFBTyxJQUFJLEVBQUcsQ0FBQztRQUN6RSxDQUFDO0tBQUE7SUFFWSw4QkFBOEIsQ0FDekMsT0FBMEIsRUFDMUIsSUFBNEU7O1lBRTVFLE1BQU0sa0JBQWtCLEdBQVcsQ0FBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsMEJBQTBCO2dCQUNqRSxDQUFDLENBQUMsSUFBSSxDQUFDLDBCQUEwQjtnQkFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQztZQUNqRCxJQUFJLENBQUMsSUFBQSxzQkFBVSxFQUFDLGtCQUFrQixDQUFDLEVBQUU7Z0JBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQWEsQ0FBQyxDQUFDO2FBQ2hDO1lBQ0QsTUFBTSxZQUFZLEdBQVcsQ0FBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsbUJBQW1CLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQztZQUNwSCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsZ0JBQUksRUFBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7WUFDeEcsTUFBTSxZQUFZLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0MsSUFBSSxZQUFZLENBQUMsS0FBSyxFQUFFO2dCQUN0QixPQUFPLGtCQUFLLFlBQVksQ0FBbUIsQ0FBQzthQUM3QztZQUNELE9BQU8sa0JBQUssWUFBWSxDQUF3QixDQUFDO1FBQ25ELENBQUM7S0FBQTtJQUVZLHVCQUF1QixDQUNsQyxLQUFnRCxFQUNoRCxJQUdDOztZQUVELE1BQU0saUJBQWlCLEdBQ3JCLEtBQUssSUFBSSxLQUFLO2dCQUNaLENBQUMsQ0FBQyxLQUFLO2dCQUNQLENBQUMsQ0FBQyxNQUFNLElBQUEsbUNBQXVCLGtCQUMzQixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixFQUMzRixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsSUFDM0UsS0FBSyxFQUNSLENBQUM7WUFDVCxPQUFPO2dCQUNMLElBQUksRUFBRSxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxjQUFjLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjO2dCQUMzRixNQUFNLEVBQUUsQ0FBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTTtnQkFDckUsS0FBSyxFQUFFLGlCQUFpQjthQUN6QixDQUFDO1FBQ0osQ0FBQztLQUFBO0NBQ0Y7QUEvRUQsMERBK0VDIn0=
@@ -1,21 +0,0 @@
1
- import { CredentialFormat } from '@sphereon/ssi-types';
2
- import { CredentialRequestClient } from './CredentialRequestClient';
3
- import { AccessTokenResponse, EndpointMetadata, IssuanceInitiationRequestPayload, IssuanceInitiationWithBaseUrl, OID4VCIServerMetadata } from './types';
4
- export declare class CredentialRequestClientBuilder {
5
- credentialEndpoint: string;
6
- clientId: string;
7
- credentialType: string | string[];
8
- format: CredentialFormat | CredentialFormat[];
9
- token: string;
10
- static fromIssuanceInitiationURI(issuanceInitiationURI: string, metadata?: EndpointMetadata): CredentialRequestClientBuilder;
11
- static fromIssuanceInitiationRequest(issuanceInitiationRequest: IssuanceInitiationRequestPayload, metadata?: EndpointMetadata): CredentialRequestClientBuilder;
12
- static fromIssuanceInitiation(issuanceInitiation: IssuanceInitiationWithBaseUrl, metadata?: EndpointMetadata): CredentialRequestClientBuilder;
13
- withCredentialEndpointFromMetadata(metadata: OID4VCIServerMetadata): CredentialRequestClientBuilder;
14
- withCredentialEndpoint(credentialEndpoint: string): CredentialRequestClientBuilder;
15
- withCredentialType(credentialType: string | string[]): CredentialRequestClientBuilder;
16
- withFormat(format: CredentialFormat | CredentialFormat[]): CredentialRequestClientBuilder;
17
- withClientId(clientId: string): CredentialRequestClientBuilder;
18
- withToken(accessToken: string): CredentialRequestClientBuilder;
19
- withTokenFromResponse(response: AccessTokenResponse): CredentialRequestClientBuilder;
20
- build(): CredentialRequestClient;
21
- }