@sphereon/oid4vc-common 0.17.0 → 0.17.1-feature.esm.cjs.24

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 (81) hide show
  1. package/dist/index.cjs +485 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.cts +297 -0
  4. package/dist/index.d.ts +296 -8
  5. package/dist/index.js +425 -26
  6. package/dist/index.js.map +1 -1
  7. package/package.json +22 -13
  8. package/dist/dpop/DPoP.d.ts +0 -60
  9. package/dist/dpop/DPoP.d.ts.map +0 -1
  10. package/dist/dpop/DPoP.js +0 -184
  11. package/dist/dpop/DPoP.js.map +0 -1
  12. package/dist/dpop/index.d.ts +0 -2
  13. package/dist/dpop/index.d.ts.map +0 -1
  14. package/dist/dpop/index.js +0 -18
  15. package/dist/dpop/index.js.map +0 -1
  16. package/dist/hasher.d.ts +0 -3
  17. package/dist/hasher.d.ts.map +0 -1
  18. package/dist/hasher.js +0 -19
  19. package/dist/hasher.js.map +0 -1
  20. package/dist/index.d.ts.map +0 -1
  21. package/dist/jwt/Jwk.types.d.ts +0 -36
  22. package/dist/jwt/Jwk.types.d.ts.map +0 -1
  23. package/dist/jwt/Jwk.types.js +0 -3
  24. package/dist/jwt/Jwk.types.js.map +0 -1
  25. package/dist/jwt/JwkThumbprint.d.ts +0 -6
  26. package/dist/jwt/JwkThumbprint.d.ts.map +0 -1
  27. package/dist/jwt/JwkThumbprint.js +0 -102
  28. package/dist/jwt/JwkThumbprint.js.map +0 -1
  29. package/dist/jwt/Jwt.types.d.ts +0 -23
  30. package/dist/jwt/Jwt.types.d.ts.map +0 -1
  31. package/dist/jwt/Jwt.types.js +0 -12
  32. package/dist/jwt/Jwt.types.js.map +0 -1
  33. package/dist/jwt/JwtIssuer.d.ts +0 -51
  34. package/dist/jwt/JwtIssuer.d.ts.map +0 -1
  35. package/dist/jwt/JwtIssuer.js +0 -3
  36. package/dist/jwt/JwtIssuer.js.map +0 -1
  37. package/dist/jwt/JwtVerifier.d.ts +0 -72
  38. package/dist/jwt/JwtVerifier.d.ts.map +0 -1
  39. package/dist/jwt/JwtVerifier.js +0 -80
  40. package/dist/jwt/JwtVerifier.js.map +0 -1
  41. package/dist/jwt/index.d.ts +0 -7
  42. package/dist/jwt/index.d.ts.map +0 -1
  43. package/dist/jwt/index.js +0 -23
  44. package/dist/jwt/index.js.map +0 -1
  45. package/dist/jwt/jwtUtils.d.ts +0 -26
  46. package/dist/jwt/jwtUtils.d.ts.map +0 -1
  47. package/dist/jwt/jwtUtils.js +0 -62
  48. package/dist/jwt/jwtUtils.js.map +0 -1
  49. package/dist/oauth/DynamicClientRegistration.types.d.ts +0 -19
  50. package/dist/oauth/DynamicClientRegistration.types.d.ts.map +0 -1
  51. package/dist/oauth/DynamicClientRegistration.types.js +0 -3
  52. package/dist/oauth/DynamicClientRegistration.types.js.map +0 -1
  53. package/dist/oauth/index.d.ts +0 -2
  54. package/dist/oauth/index.d.ts.map +0 -1
  55. package/dist/oauth/index.js +0 -18
  56. package/dist/oauth/index.js.map +0 -1
  57. package/dist/types/digest.types.d.ts +0 -2
  58. package/dist/types/digest.types.d.ts.map +0 -1
  59. package/dist/types/digest.types.js +0 -3
  60. package/dist/types/digest.types.js.map +0 -1
  61. package/dist/types/index.d.ts +0 -2
  62. package/dist/types/index.d.ts.map +0 -1
  63. package/dist/types/index.js +0 -18
  64. package/dist/types/index.js.map +0 -1
  65. package/lib/__tests__/dpop.spec.ts +0 -124
  66. package/lib/dpop/DPoP.ts +0 -242
  67. package/lib/dpop/index.ts +0 -1
  68. package/lib/hasher.ts +0 -18
  69. package/lib/index.ts +0 -11
  70. package/lib/jwt/Jwk.types.ts +0 -38
  71. package/lib/jwt/JwkThumbprint.ts +0 -65
  72. package/lib/jwt/Jwt.types.ts +0 -26
  73. package/lib/jwt/JwtIssuer.ts +0 -60
  74. package/lib/jwt/JwtVerifier.ts +0 -130
  75. package/lib/jwt/__tests__/JwkThumbprint.spec.ts +0 -16
  76. package/lib/jwt/index.ts +0 -6
  77. package/lib/jwt/jwtUtils.ts +0 -71
  78. package/lib/oauth/DynamicClientRegistration.types.ts +0 -20
  79. package/lib/oauth/index.ts +0 -1
  80. package/lib/types/digest.types.ts +0 -1
  81. package/lib/types/index.ts +0 -1
package/dist/dpop/DPoP.js DELETED
@@ -1,184 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.verifyResourceDPoP = exports.verifyDPoP = exports.createDPoP = exports.getCreateDPoPOptions = exports.dpopTokenRequestNonceError = void 0;
36
- const jwt_decode_1 = require("jwt-decode");
37
- const u8a = __importStar(require("uint8arrays"));
38
- const uuid_1 = require("uuid");
39
- const hasher_1 = require("../hasher");
40
- const jwt_1 = require("./../jwt");
41
- exports.dpopTokenRequestNonceError = 'use_dpop_nonce';
42
- function getCreateDPoPOptions(createDPoPClientOpts, endPointUrl, resourceRequestOpts) {
43
- const htu = endPointUrl.split('?')[0].split('#')[0];
44
- return Object.assign(Object.assign({}, createDPoPClientOpts), { jwtPayloadProps: Object.assign(Object.assign(Object.assign({}, createDPoPClientOpts.jwtPayloadProps), { htu, htm: 'POST' }), (resourceRequestOpts && { accessToken: resourceRequestOpts.accessToken })) });
45
- }
46
- exports.getCreateDPoPOptions = getCreateDPoPOptions;
47
- function createDPoP(options) {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- var _a, _b;
50
- const { createJwtCallback, jwtIssuer, jwtPayloadProps, dPoPSigningAlgValuesSupported } = options;
51
- if (jwtPayloadProps.accessToken && (((_a = jwtPayloadProps.accessToken) === null || _a === void 0 ? void 0 : _a.startsWith('DPoP ')) || ((_b = jwtPayloadProps.accessToken) === null || _b === void 0 ? void 0 : _b.startsWith('Bearer ')))) {
52
- throw new Error('expected access token without scheme');
53
- }
54
- const ath = jwtPayloadProps.accessToken ? u8a.toString((0, hasher_1.defaultHasher)(jwtPayloadProps.accessToken, 'sha256'), 'base64url') : undefined;
55
- return createJwtCallback({ method: 'jwk', type: 'dpop', alg: jwtIssuer.alg, jwk: jwtIssuer.jwk, dPoPSigningAlgValuesSupported }, {
56
- header: Object.assign(Object.assign({}, jwtIssuer), { typ: 'dpop+jwt', alg: jwtIssuer.alg, jwk: jwtIssuer.jwk }),
57
- payload: Object.assign(Object.assign(Object.assign({}, jwtPayloadProps), { iat: (0, jwt_1.epochTime)(), jti: (0, uuid_1.v4)() }), (ath && { ath })),
58
- });
59
- });
60
- }
61
- exports.createDPoP = createDPoP;
62
- function verifyDPoP(request, options) {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- var _a, _b, _c, _d;
65
- // There is not more than one DPoP HTTP request header field.
66
- const dpop = request.headers['dpop'];
67
- if (!dpop || typeof dpop !== 'string') {
68
- throw new Error('missing or invalid dpop header. Expected compact JWT');
69
- }
70
- // The DPoP HTTP request header field value is a single and well-formed JWT.
71
- const { header: dPoPHeader, payload: dPoPPayload } = (0, jwt_1.parseJWT)(dpop);
72
- // Ensure all required header claims are present
73
- if (dPoPHeader.typ !== 'dpop+jwt' || !dPoPHeader.alg || !dPoPHeader.jwk || typeof dPoPHeader.jwk !== 'object' || dPoPHeader.jwk.d) {
74
- throw new Error('invalid_dpop_proof. Invalid header claims');
75
- }
76
- // Ensure all required payload claims are present
77
- if (!dPoPPayload.htm || !dPoPPayload.htu || !dPoPPayload.iat || !dPoPPayload.jti) {
78
- throw new Error('invalid_dpop_proof. Missing required claims');
79
- }
80
- // Validate alg is supported
81
- if ((options === null || options === void 0 ? void 0 : options.acceptedAlgorithms) && !options.acceptedAlgorithms.includes(dPoPHeader.alg)) {
82
- throw new Error(`invalid_dpop_proof. Invalid 'alg' claim '${dPoPHeader.alg}'. Only ${options.acceptedAlgorithms.join(', ')} are supported.`);
83
- }
84
- // Validate nonce if provided
85
- if (((options === null || options === void 0 ? void 0 : options.expectedNonce) && !dPoPPayload.nonce) || dPoPPayload.nonce !== options.expectedNonce) {
86
- throw new Error('invalid_dpop_proof. Nonce mismatch');
87
- }
88
- // Verify JWT signature
89
- try {
90
- const verificationResult = yield options.jwtVerifyCallback({
91
- method: 'jwk',
92
- type: 'dpop',
93
- jwk: dPoPHeader.jwk,
94
- alg: dPoPHeader.alg,
95
- }, {
96
- header: dPoPHeader,
97
- payload: dPoPPayload,
98
- raw: dpop,
99
- });
100
- if (!verificationResult) {
101
- throw new Error('invalid_dpop_proof. Invalid JWT signature');
102
- }
103
- }
104
- catch (error) {
105
- throw new Error('invalid_dpop_proof. Invalid JWT signature. ' + (error instanceof Error ? error.message : 'Unknown error'));
106
- }
107
- // Validate htm claim
108
- if (dPoPPayload.htm !== request.method) {
109
- throw new Error(`invalid_dpop_proof. Invalid htm claim. Must match request method '${request.method}'`);
110
- }
111
- // The htu claim matches the HTTP URI value for the HTTP request in which the JWT was received, ignoring any query and fragment parts.
112
- const currentUri = request.fullUrl.split('?')[0].split('#')[0];
113
- if (dPoPPayload.htu !== currentUri) {
114
- throw new Error('invalid_dpop_proof. Invalid htu claim');
115
- }
116
- // Validate nonce if provided
117
- if ((options.expectedNonce && dPoPPayload.nonce !== options.expectedNonce) || (!options.expectedNonce && dPoPPayload.nonce)) {
118
- throw new Error('invalid_dpop_proof. Nonce mismatch');
119
- }
120
- // Validate iat claim
121
- const { nowSkewedPast, nowSkewedFuture } = (0, jwt_1.getNowSkewed)(options.now);
122
- if (
123
- // iat claim is too far in the future
124
- nowSkewedPast - ((_a = options.maxIatAgeInSeconds) !== null && _a !== void 0 ? _a : 60) > dPoPPayload.iat ||
125
- // iat claim is too old
126
- nowSkewedFuture + ((_b = options.maxIatAgeInSeconds) !== null && _b !== void 0 ? _b : 60) < dPoPPayload.iat) {
127
- // 5 minute window
128
- throw new Error('invalid_dpop_proof. Invalid iat claim');
129
- }
130
- // If access token is present, validate ath claim
131
- const authorizationHeader = request.headers.authorization;
132
- if (!options.expectAccessToken && authorizationHeader) {
133
- throw new Error('invalid_dpop_proof. Received an unexpected authorization header.');
134
- }
135
- if (options.expectAccessToken) {
136
- if (!dPoPPayload.ath) {
137
- throw new Error('invalid_dpop_proof. Missing expected ath claim.');
138
- }
139
- // validate that the DPOP proof is made for the provided access token
140
- if (!authorizationHeader || typeof authorizationHeader !== 'string' || !authorizationHeader.startsWith('DPoP ')) {
141
- throw new Error('invalid_dpop_proof. Invalid authorization header.');
142
- }
143
- const accessToken = authorizationHeader.replace('DPoP ', '');
144
- const expectedAth = u8a.toString((0, hasher_1.defaultHasher)(accessToken, 'sha256'), 'base64url');
145
- if (dPoPPayload.ath !== expectedAth) {
146
- throw new Error('invalid_dpop_proof. Invalid ath claim');
147
- }
148
- // validate that the access token is signed with the same key as the DPOP proof
149
- const accessTokenPayload = (0, jwt_decode_1.jwtDecode)(accessToken, { header: false });
150
- if (!((_c = accessTokenPayload.cnf) === null || _c === void 0 ? void 0 : _c.jkt)) {
151
- throw new Error('invalid_dpop_proof. Access token is missing the jkt claim');
152
- }
153
- const thumprint = yield (0, jwt_1.calculateJwkThumbprint)(dPoPHeader.jwk, 'sha256');
154
- if (((_d = accessTokenPayload.cnf) === null || _d === void 0 ? void 0 : _d.jkt) !== thumprint) {
155
- throw new Error('invalid_dpop_proof. JwkThumbprint mismatch');
156
- }
157
- }
158
- // If all validations pass, return the dpop jwk
159
- return dPoPHeader.jwk;
160
- });
161
- }
162
- exports.verifyDPoP = verifyDPoP;
163
- /**
164
- * DPoP verifications for resource requests
165
- * For Bearer token compatibility jwt's must have a token_type claim
166
- * The access token itself must be validated before using this method
167
- * If the token_type is not DPoP, then the request is not a DPoP request
168
- * and we don't need to verify the DPoP proof
169
- */
170
- function verifyResourceDPoP(request, options) {
171
- return __awaiter(this, void 0, void 0, function* () {
172
- if (!request.headers.authorization || typeof request.headers.authorization !== 'string') {
173
- throw new Error('Received an invalid resource request. Missing authorization header.');
174
- }
175
- const tokenPayload = (0, jwt_decode_1.jwtDecode)(request.headers.authorization, { header: false });
176
- const tokenType = tokenPayload.token_type;
177
- if (tokenType !== 'DPoP') {
178
- return;
179
- }
180
- return verifyDPoP(request, Object.assign(Object.assign({}, options), { expectAccessToken: true }));
181
- });
182
- }
183
- exports.verifyResourceDPoP = verifyResourceDPoP;
184
- //# sourceMappingURL=DPoP.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DPoP.js","sourceRoot":"","sources":["../../lib/dpop/DPoP.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export * from './DPoP';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/dpop/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./DPoP"), exports);
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/dpop/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB"}
package/dist/hasher.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { Hasher } from '@sphereon/ssi-types';
2
- export declare const defaultHasher: Hasher;
3
- //# sourceMappingURL=hasher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hasher.d.ts","sourceRoot":"","sources":["../lib/hasher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAM7C,eAAO,MAAM,aAAa,EAAE,MAW3B,CAAC"}
package/dist/hasher.js DELETED
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.defaultHasher = void 0;
7
- const sha_js_1 = __importDefault(require("sha.js"));
8
- const supportedAlgorithms = ['sha256', 'sha384', 'sha512'];
9
- const defaultHasher = (data, algorithm) => {
10
- const sanitizedAlgorithm = algorithm.toLowerCase().replace(/[-_]/g, '');
11
- if (!supportedAlgorithms.includes(sanitizedAlgorithm)) {
12
- throw new Error(`Unsupported hashing algorithm ${algorithm}`);
13
- }
14
- return new Uint8Array((0, sha_js_1.default)(sanitizedAlgorithm)
15
- .update(data)
16
- .digest());
17
- };
18
- exports.defaultHasher = defaultHasher;
19
- //# sourceMappingURL=hasher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hasher.js","sourceRoot":"","sources":["../lib/hasher.ts"],"names":[],"mappings":";;;;;;AACA,oDAAyB;AAEzB,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAG7D,MAAM,aAAa,GAAW,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;IACvD,MAAM,kBAAkB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,kBAAyC,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,iCAAiC,SAAS,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,IAAI,UAAU,CACnB,IAAA,gBAAG,EAAC,kBAAyC,CAAC;SAC3C,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,EAAE,CACZ,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,aAAa,iBAWxB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,eAAO,MAAM,WAAW,SAAkB,CAAC;AAC3C,eAAO,MAAM,cAAc,sDAA6C,CAAC;AAEzE,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
@@ -1,36 +0,0 @@
1
- export interface BaseJWK {
2
- kty?: string;
3
- crv?: string;
4
- x?: string;
5
- y?: string;
6
- e?: string;
7
- n?: string;
8
- }
9
- export interface JWK extends BaseJWK {
10
- alg?: string;
11
- d?: string;
12
- dp?: string;
13
- dq?: string;
14
- ext?: boolean;
15
- k?: string;
16
- key_ops?: string[];
17
- kid?: string;
18
- oth?: Array<{
19
- d?: string;
20
- r?: string;
21
- t?: string;
22
- }>;
23
- p?: string;
24
- q?: string;
25
- qi?: string;
26
- use?: string;
27
- x5c?: string[];
28
- x5t?: string;
29
- 'x5t#S256'?: string;
30
- x5u?: string;
31
- [propName: string]: unknown;
32
- }
33
- export type JWKS = {
34
- keys: JWK[];
35
- };
36
- //# sourceMappingURL=Jwk.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Jwk.types.d.ts","sourceRoot":"","sources":["../../lib/jwt/Jwk.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,GAAI,SAAQ,OAAO;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,KAAK,CAAC;QACV,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,MAAM,CAAC;KACZ,CAAC,CAAC;IACH,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,GAAG,EAAE,CAAC;CACb,CAAC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=Jwk.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Jwk.types.js","sourceRoot":"","sources":["../../lib/jwt/Jwk.types.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- import { DigestAlgorithm } from '../types';
2
- import { JWK } from '.';
3
- export declare function calculateJwkThumbprint(jwk: JWK, digestAlgorithm?: DigestAlgorithm): Promise<string>;
4
- export declare function getDigestAlgorithmFromJwkThumbprintUri(uri: string): Promise<DigestAlgorithm>;
5
- export declare function calculateJwkThumbprintUri(jwk: JWK, digestAlgorithm?: DigestAlgorithm): Promise<string>;
6
- //# sourceMappingURL=JwkThumbprint.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JwkThumbprint.d.ts","sourceRoot":"","sources":["../../lib/jwt/JwkThumbprint.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC;AAQxB,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAkCzG;AAED,wBAAsB,sCAAsC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAUlG;AAED,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,GAAE,eAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtH"}
@@ -1,102 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.calculateJwkThumbprintUri = exports.getDigestAlgorithmFromJwkThumbprintUri = exports.calculateJwkThumbprint = void 0;
36
- const u8a = __importStar(require("uint8arrays"));
37
- const hasher_1 = require("../hasher");
38
- const check = (value, description) => {
39
- if (typeof value !== 'string' || !value) {
40
- throw Error(`${description} missing or invalid`);
41
- }
42
- };
43
- function calculateJwkThumbprint(jwk, digestAlgorithm) {
44
- return __awaiter(this, void 0, void 0, function* () {
45
- if (!jwk || typeof jwk !== 'object') {
46
- throw new TypeError('JWK must be an object');
47
- }
48
- const algorithm = digestAlgorithm !== null && digestAlgorithm !== void 0 ? digestAlgorithm : 'sha256';
49
- if (algorithm !== 'sha256' && algorithm !== 'sha384' && algorithm !== 'sha512') {
50
- throw new TypeError('digestAlgorithm must one of "sha256", "sha384", or "sha512"');
51
- }
52
- let components;
53
- switch (jwk.kty) {
54
- case 'EC':
55
- check(jwk.crv, '"crv" (Curve) Parameter');
56
- check(jwk.x, '"x" (X Coordinate) Parameter');
57
- check(jwk.y, '"y" (Y Coordinate) Parameter');
58
- components = { crv: jwk.crv, kty: jwk.kty, x: jwk.x, y: jwk.y };
59
- break;
60
- case 'OKP':
61
- check(jwk.crv, '"crv" (Subtype of Key Pair) Parameter');
62
- check(jwk.x, '"x" (Public Key) Parameter');
63
- components = { crv: jwk.crv, kty: jwk.kty, x: jwk.x };
64
- break;
65
- case 'RSA':
66
- check(jwk.e, '"e" (Exponent) Parameter');
67
- check(jwk.n, '"n" (Modulus) Parameter');
68
- components = { e: jwk.e, kty: jwk.kty, n: jwk.n };
69
- break;
70
- case 'oct':
71
- check(jwk.k, '"k" (Key Value) Parameter');
72
- components = { k: jwk.k, kty: jwk.kty };
73
- break;
74
- default:
75
- throw Error('"kty" (Key Type) Parameter missing or unsupported');
76
- }
77
- return u8a.toString((0, hasher_1.defaultHasher)(JSON.stringify(components), algorithm), 'base64url');
78
- });
79
- }
80
- exports.calculateJwkThumbprint = calculateJwkThumbprint;
81
- function getDigestAlgorithmFromJwkThumbprintUri(uri) {
82
- return __awaiter(this, void 0, void 0, function* () {
83
- const match = uri.match(/^urn:ietf:params:oauth:jwk-thumbprint:sha-(\w+):/);
84
- if (!match) {
85
- throw new Error(`Invalid JWK thumbprint URI structure ${uri}`);
86
- }
87
- const algorithm = `sha${match[1]}`;
88
- if (algorithm !== 'sha256' && algorithm !== 'sha384' && algorithm !== 'sha512') {
89
- throw new Error(`Invalid JWK thumbprint URI digest algorithm ${uri}`);
90
- }
91
- return algorithm;
92
- });
93
- }
94
- exports.getDigestAlgorithmFromJwkThumbprintUri = getDigestAlgorithmFromJwkThumbprintUri;
95
- function calculateJwkThumbprintUri(jwk_1) {
96
- return __awaiter(this, arguments, void 0, function* (jwk, digestAlgorithm = 'sha256') {
97
- const thumbprint = yield calculateJwkThumbprint(jwk, digestAlgorithm);
98
- return `urn:ietf:params:oauth:jwk-thumbprint:sha-${digestAlgorithm.slice(-3)}:${thumbprint}`;
99
- });
100
- }
101
- exports.calculateJwkThumbprintUri = calculateJwkThumbprintUri;
102
- //# sourceMappingURL=JwkThumbprint.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JwkThumbprint.js","sourceRoot":"","sources":["../../lib/jwt/JwkThumbprint.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { JwtHeader as jwtDecodeJwtHeader, JwtPayload as jwtDecodePayload } from 'jwt-decode';
2
- import { JWK } from '.';
3
- export type JwtHeader = jwtDecodeJwtHeader & {
4
- alg?: string;
5
- x5c?: string[];
6
- kid?: string;
7
- jwk?: JWK;
8
- jwt?: string;
9
- } & Record<string, unknown>;
10
- export type JwtPayload = jwtDecodePayload & {
11
- client_id?: string;
12
- nonce?: string;
13
- request_uri?: string;
14
- client_id_scheme?: string;
15
- } & Record<string, unknown>;
16
- export declare enum SigningAlgo {
17
- EDDSA = "EdDSA",
18
- RS256 = "RS256",
19
- PS256 = "PS256",
20
- ES256 = "ES256",
21
- ES256K = "ES256K"
22
- }
23
- //# sourceMappingURL=Jwt.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Jwt.types.d.ts","sourceRoot":"","sources":["../../lib/jwt/Jwt.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE7F,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC;AAExB,MAAM,MAAM,SAAS,GAAG,kBAAkB,GAAG;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;CAClB"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SigningAlgo = void 0;
4
- var SigningAlgo;
5
- (function (SigningAlgo) {
6
- SigningAlgo["EDDSA"] = "EdDSA";
7
- SigningAlgo["RS256"] = "RS256";
8
- SigningAlgo["PS256"] = "PS256";
9
- SigningAlgo["ES256"] = "ES256";
10
- SigningAlgo["ES256K"] = "ES256K";
11
- })(SigningAlgo || (exports.SigningAlgo = SigningAlgo = {}));
12
- //# sourceMappingURL=Jwt.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Jwt.types.js","sourceRoot":"","sources":["../../lib/jwt/Jwt.types.ts"],"names":[],"mappings":";;;AAmBA,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,8BAAe,CAAA;IACf,8BAAe,CAAA;IACf,8BAAe,CAAA;IACf,gCAAiB,CAAA;AACnB,CAAC,EANW,WAAW,2BAAX,WAAW,QAMtB"}
@@ -1,51 +0,0 @@
1
- import { JWK, JwtHeader, JwtPayload, JwtProtectionMethod, SigningAlgo } from '..';
2
- export interface JwtIssuerBase {
3
- method: JwtProtectionMethod;
4
- /**
5
- * Additional options for the issuance context
6
- */
7
- options?: Record<string, unknown>;
8
- }
9
- export interface JwtIssuerDid extends JwtIssuerBase {
10
- method: 'did';
11
- didUrl: string;
12
- alg: SigningAlgo | string;
13
- }
14
- export interface JwtIssuerX5c extends JwtIssuerBase {
15
- method: 'x5c';
16
- alg: SigningAlgo | string;
17
- /**
18
- *
19
- * Array of base64-encoded certificate strings in the DER-format.
20
- *
21
- * The certificate containing the public key corresponding to the key used to digitally sign the JWS MUST be the first certificate.
22
- */
23
- x5c: Array<string>;
24
- /**
25
- * The issuer jwt
26
- *
27
- * This value will be used as the iss value of the issue jwt.
28
- * It is also used as the client_id.
29
- * And will also be set as the redirect_uri
30
- *
31
- * It must match an entry in the x5c certificate leaf entry dnsName / uriName
32
- */
33
- issuer: string;
34
- }
35
- export interface JwtIssuerJwk extends JwtIssuerBase {
36
- method: 'jwk';
37
- alg: SigningAlgo | string;
38
- jwk: JWK;
39
- }
40
- export interface JwtIssuerCustom extends JwtIssuerBase {
41
- method: 'custom';
42
- }
43
- export type JwtIssuer = JwtIssuerDid | JwtIssuerX5c | JwtIssuerJwk | JwtIssuerCustom;
44
- export interface JwtIssuanceContextBase {
45
- type: string;
46
- }
47
- export type CreateJwtCallback<T extends JwtIssuer & JwtIssuanceContextBase> = (jwtIssuer: T, jwt: {
48
- header: JwtHeader;
49
- payload: JwtPayload;
50
- }) => Promise<string>;
51
- //# sourceMappingURL=JwtIssuer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JwtIssuer.d.ts","sourceRoot":"","sources":["../../lib/jwt/JwtIssuer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAElF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,mBAAmB,CAAC;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,WAAW,GAAG,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,MAAM,EAAE,KAAK,CAAC;IACd,GAAG,EAAE,WAAW,GAAG,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEnB;;;;;;;;OAQG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,MAAM,EAAE,KAAK,CAAC;IACd,GAAG,EAAE,WAAW,GAAG,MAAM,CAAC;IAC1B,GAAG,EAAE,GAAG,CAAC;CACV;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,eAAe,CAAC;AAErF,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,SAAS,GAAG,sBAAsB,IAAI,CAC5E,SAAS,EAAE,CAAC,EACZ,GAAG,EAAE;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,KAC5C,OAAO,CAAC,MAAM,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=JwtIssuer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JwtIssuer.js","sourceRoot":"","sources":["../../lib/jwt/JwtIssuer.ts"],"names":[],"mappings":""}
@@ -1,72 +0,0 @@
1
- import { JWK, JwtHeader, JwtPayload, SigningAlgo } from '..';
2
- import { JwtProtectionMethod, JwtType } from './jwtUtils';
3
- export interface JwtVerifierBase {
4
- type: JwtType;
5
- method: JwtProtectionMethod;
6
- }
7
- export interface DidJwtVerifier extends JwtVerifierBase {
8
- method: 'did';
9
- alg: SigningAlgo | string;
10
- didUrl: string;
11
- }
12
- export interface X5cJwtVerifier extends JwtVerifierBase {
13
- method: 'x5c';
14
- alg: SigningAlgo | string;
15
- /**
16
- *
17
- * Array of base64-encoded certificate strings in the DER-format.
18
- *
19
- * The certificate containing the public key corresponding to the key used to digitally sign the JWS MUST be the first certificate.
20
- */
21
- x5c: Array<string>;
22
- /**
23
- * The jwt issuer
24
- */
25
- issuer: string;
26
- }
27
- export interface OpenIdFederationJwtVerifier extends JwtVerifierBase {
28
- method: 'openid-federation';
29
- /**
30
- * The OpenId federation Entity
31
- */
32
- entityId: string;
33
- }
34
- export interface JwkJwtVerifier extends JwtVerifierBase {
35
- method: 'jwk';
36
- alg: SigningAlgo | string;
37
- jwk: JWK;
38
- }
39
- export interface CustomJwtVerifier extends JwtVerifierBase {
40
- method: 'custom';
41
- }
42
- export type JwtVerifier = DidJwtVerifier | X5cJwtVerifier | CustomJwtVerifier | JwkJwtVerifier | OpenIdFederationJwtVerifier;
43
- export declare const getDidJwtVerifier: (jwt: {
44
- header: JwtHeader;
45
- payload: JwtPayload;
46
- }, options: {
47
- type: JwtType;
48
- }) => DidJwtVerifier;
49
- export declare const getX5cVerifier: (jwt: {
50
- header: JwtHeader;
51
- payload: JwtPayload;
52
- }, options: {
53
- type: JwtType;
54
- }) => X5cJwtVerifier;
55
- export declare const getJwkVerifier: (jwt: {
56
- header: JwtHeader;
57
- payload: JwtPayload;
58
- }, options: {
59
- type: JwtType;
60
- }) => Promise<JwkJwtVerifier>;
61
- export declare const getJwtVerifierWithContext: (jwt: {
62
- header: JwtHeader;
63
- payload: JwtPayload;
64
- }, options: {
65
- type: JwtType;
66
- }) => Promise<JwtVerifier>;
67
- export type VerifyJwtCallbackBase<T extends JwtVerifier> = (jwtVerifier: T, jwt: {
68
- header: JwtHeader;
69
- payload: JwtPayload;
70
- raw: string;
71
- }) => Promise<boolean>;
72
- //# sourceMappingURL=JwtVerifier.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JwtVerifier.d.ts","sourceRoot":"","sources":["../../lib/jwt/JwtVerifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,MAAM,EAAE,KAAK,CAAC;IAEd,GAAG,EAAE,WAAW,GAAG,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,MAAM,EAAE,KAAK,CAAC;IAEd,GAAG,EAAE,WAAW,GAAG,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE,MAAM,EAAE,mBAAmB,CAAC;IAE5B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,MAAM,EAAE,KAAK,CAAC;IACd,GAAG,EAAE,WAAW,GAAG,MAAM,CAAC;IAE1B,GAAG,EAAE,GAAG,CAAC;CACV;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,iBAAiB,GAAG,cAAc,GAAG,2BAA2B,CAAC;AAE7H,eAAO,MAAM,iBAAiB,QAAS;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,WAAW;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,KAAG,cAS/G,CAAC;AAiBF,eAAO,MAAM,cAAc,QAAS;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,WAAW;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,KAAG,cAgB5G,CAAC;AAEF,eAAO,MAAM,cAAc,QAAe;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,WAAW;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,KAAG,QAAQ,cAAc,CAUxI,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAC/B;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,WACtC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,KACzB,QAAQ,WAAW,CAQrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,WAAW,IAAI,CACzD,WAAW,EAAE,CAAC,EACd,GAAG,EAAE;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,KACzD,OAAO,CAAC,OAAO,CAAC,CAAC"}