@agnostack/verifyd 2.5.0-alpha.2 → 2.5.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/lib/utils/rawbody.js +4 -1
- package/dist/esm/shared/WebCrypto.js +54 -4
- package/dist/lib/utils/rawbody.d.ts.map +1 -1
- package/dist/lib/utils/rawbody.js +4 -1
- package/dist/lib/utils/rawbody.js.map +1 -1
- package/dist/shared/WebCrypto.d.ts +13 -0
- package/dist/shared/WebCrypto.d.ts.map +1 -1
- package/dist/shared/WebCrypto.js +54 -4
- package/dist/shared/WebCrypto.js.map +1 -1
- package/dist/umd/index.js +69 -5
- package/dist/umd/index.js.map +1 -1
- package/dist/umd/lib/utils/rawbody.d.ts.map +1 -1
- package/dist/umd/shared/WebCrypto.d.ts +13 -0
- package/dist/umd/shared/WebCrypto.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -13,8 +13,11 @@ const getChunkedRawBody = (req) => __awaiter(void 0, void 0, void 0, function* (
|
|
|
13
13
|
return req.rawBody;
|
|
14
14
|
}
|
|
15
15
|
// TODO: move to req.text() after next 13.5: https://github.com/vercel/next.js/discussions/13405
|
|
16
|
+
// NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
|
|
17
|
+
// from statically resolving this optional dynamic import at bundle time.
|
|
18
|
+
const rawBodyModule = 'raw-body';
|
|
16
19
|
try {
|
|
17
|
-
const _getRawBody = (yield import(
|
|
20
|
+
const _getRawBody = (yield import(rawBodyModule)).default;
|
|
18
21
|
if (!req.method || (lowercase(req.method) === 'get')) {
|
|
19
22
|
return undefined;
|
|
20
23
|
}
|
|
@@ -28,14 +28,18 @@ export class WebCrypto {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
// 2. If still no subtle, fall back to polyfills (Node.js < 18, unusual environments)
|
|
31
|
+
// NOTE: Module names are assigned to variables to prevent bundlers (esbuild, webpack, etc.)
|
|
32
|
+
// from statically resolving these optional dynamic imports at bundle time.
|
|
31
33
|
if (!((_c = this._crypto) === null || _c === void 0 ? void 0 : _c.subtle)) {
|
|
34
|
+
const cryptoPolyfill = 'isomorphic-webcrypto';
|
|
35
|
+
const nodeCrypto = 'crypto';
|
|
32
36
|
try {
|
|
33
|
-
this._crypto = (yield import(
|
|
37
|
+
this._crypto = (yield import(cryptoPolyfill)).default;
|
|
34
38
|
}
|
|
35
39
|
catch (_ignore) {
|
|
36
40
|
console.info('Failed to import isomorphic-webcrypto, retrying w/ node crypto');
|
|
37
41
|
try {
|
|
38
|
-
this._crypto = (yield import(
|
|
42
|
+
this._crypto = (yield import(nodeCrypto)).default;
|
|
39
43
|
}
|
|
40
44
|
catch (error) {
|
|
41
45
|
// eslint-disable-next-line max-len
|
|
@@ -62,8 +66,11 @@ export class WebCrypto {
|
|
|
62
66
|
if ((typeof window !== 'undefined') && (typeof window.TextDecoder === 'function')) {
|
|
63
67
|
return window.TextDecoder;
|
|
64
68
|
}
|
|
69
|
+
// NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
|
|
70
|
+
// from statically resolving this optional dynamic import at bundle time.
|
|
71
|
+
const nodeUtil = 'util';
|
|
65
72
|
try {
|
|
66
|
-
const TextDecoder = (yield import(
|
|
73
|
+
const TextDecoder = (yield import(nodeUtil)).TextDecoder;
|
|
67
74
|
this._util.TextDecoder = TextDecoder;
|
|
68
75
|
return TextDecoder;
|
|
69
76
|
}
|
|
@@ -85,8 +92,11 @@ export class WebCrypto {
|
|
|
85
92
|
if ((typeof window !== 'undefined') && (typeof window.TextEncoder === 'function')) {
|
|
86
93
|
return window.TextEncoder;
|
|
87
94
|
}
|
|
95
|
+
// NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
|
|
96
|
+
// from statically resolving this optional dynamic import at bundle time.
|
|
97
|
+
const nodeUtil = 'util';
|
|
88
98
|
try {
|
|
89
|
-
const TextEncoder = (yield import(
|
|
99
|
+
const TextEncoder = (yield import(nodeUtil)).TextEncoder;
|
|
90
100
|
this._util.TextEncoder = TextEncoder;
|
|
91
101
|
return TextEncoder;
|
|
92
102
|
}
|
|
@@ -153,6 +163,9 @@ export class WebCrypto {
|
|
|
153
163
|
case 'sharedSecret': {
|
|
154
164
|
return ['encrypt', 'decrypt'];
|
|
155
165
|
}
|
|
166
|
+
case 'hmac': {
|
|
167
|
+
return ['sign', 'verify'];
|
|
168
|
+
}
|
|
156
169
|
default: {
|
|
157
170
|
return [];
|
|
158
171
|
}
|
|
@@ -169,6 +182,12 @@ export class WebCrypto {
|
|
|
169
182
|
name: 'AES-GCM',
|
|
170
183
|
};
|
|
171
184
|
}
|
|
185
|
+
case 'hmac': {
|
|
186
|
+
return {
|
|
187
|
+
name: 'HMAC',
|
|
188
|
+
hash: { name: 'SHA-256' },
|
|
189
|
+
};
|
|
190
|
+
}
|
|
172
191
|
default: {
|
|
173
192
|
return {
|
|
174
193
|
name: 'ECDH',
|
|
@@ -191,6 +210,12 @@ export class WebCrypto {
|
|
|
191
210
|
return keyPair;
|
|
192
211
|
});
|
|
193
212
|
}
|
|
213
|
+
importRawKey(keyType_1, rawBytes_1) {
|
|
214
|
+
return __awaiter(this, arguments, void 0, function* (keyType, rawBytes, { extractable = true } = {}) {
|
|
215
|
+
const crypto = yield this.getWebCrypto();
|
|
216
|
+
return crypto.subtle.importKey('raw', rawBytes, this.getKeyAlgorythm(keyType), extractable, this.getKeyOperations(keyType));
|
|
217
|
+
});
|
|
218
|
+
}
|
|
194
219
|
generateHMAC(message, derivedKey) {
|
|
195
220
|
return __awaiter(this, void 0, void 0, function* () {
|
|
196
221
|
if (!message || !derivedKey) {
|
|
@@ -208,6 +233,31 @@ export class WebCrypto {
|
|
|
208
233
|
return this.timingSafeEqual(calculatedHMAC, verifiableHMAC);
|
|
209
234
|
});
|
|
210
235
|
}
|
|
236
|
+
createSignedToken(message, hmacKey, ttlSeconds) {
|
|
237
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
238
|
+
const expiry = Math.floor(Date.now() / 1000) + ttlSeconds;
|
|
239
|
+
const hmacHex = yield this.generateHMAC(`${message}:${expiry}`, hmacKey);
|
|
240
|
+
return `${expiry}.${hmacHex}`;
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
verifySignedToken(token, message, hmacKey) {
|
|
244
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
245
|
+
if (!token || typeof token !== 'string') {
|
|
246
|
+
return false;
|
|
247
|
+
}
|
|
248
|
+
const dotIndex = token.indexOf('.');
|
|
249
|
+
if (dotIndex === -1) {
|
|
250
|
+
return false;
|
|
251
|
+
}
|
|
252
|
+
const expiryStr = token.substring(0, dotIndex);
|
|
253
|
+
const signature = token.substring(dotIndex + 1);
|
|
254
|
+
const expiry = parseInt(expiryStr, 10);
|
|
255
|
+
if (isNaN(expiry) || expiry <= Math.floor(Date.now() / 1000)) {
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
return this.verifyHMAC(`${message}:${expiryStr}`, hmacKey, signature);
|
|
259
|
+
});
|
|
260
|
+
}
|
|
211
261
|
// NOTE: intentionally separated out as async to be able to .catch
|
|
212
262
|
getStorableKey(key) {
|
|
213
263
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rawbody.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/rawbody.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rawbody.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/rawbody.js"],"names":[],"mappings":"AA0BO,sDAMN"}
|
|
@@ -39,8 +39,11 @@ const getChunkedRawBody = (req) => __awaiter(void 0, void 0, void 0, function* (
|
|
|
39
39
|
return req.rawBody;
|
|
40
40
|
}
|
|
41
41
|
// TODO: move to req.text() after next 13.5: https://github.com/vercel/next.js/discussions/13405
|
|
42
|
+
// NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
|
|
43
|
+
// from statically resolving this optional dynamic import at bundle time.
|
|
44
|
+
const rawBodyModule = 'raw-body';
|
|
42
45
|
try {
|
|
43
|
-
const _getRawBody = (yield Promise.resolve().then(
|
|
46
|
+
const _getRawBody = (yield Promise.resolve(`${rawBodyModule}`).then(s => __importStar(require(s)))).default;
|
|
44
47
|
if (!req.method || ((0, display_1.lowercase)(req.method) === 'get')) {
|
|
45
48
|
return undefined;
|
|
46
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rawbody.js","sourceRoot":"","sources":["../../../src/lib/utils/rawbody.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAgD;AAEhD,MAAM,iBAAiB,GAAG,CAAO,GAAG,EAAE,EAAE;IACtC,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,OAAO,CAAA;IACpB,CAAC;IAED,gGAAgG;IAChG,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"rawbody.js","sourceRoot":"","sources":["../../../src/lib/utils/rawbody.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAgD;AAEhD,MAAM,iBAAiB,GAAG,CAAO,GAAG,EAAE,EAAE;IACtC,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,OAAO,CAAA;IACpB,CAAC;IAED,gGAAgG;IAChG,sFAAsF;IACtF,yEAAyE;IACzE,MAAM,aAAa,GAAG,UAAU,CAAA;IAChC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,CAAC,yBAAa,aAAa,uCAAC,CAAC,CAAC,OAAO,CAAA;QAEzD,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAA,mBAAS,EAAC,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,EAAE,CAAC,CAAA;IAClE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAA;QACvF,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA,CAAA;AAED,yEAAyE;AAClE,MAAM,aAAa,GAAG,CAAO,GAAG,EAAE,EAAE;IAAC,OAAA,CAC1C,iBAAiB,CAAC,GAAG,CAAC;SACnB,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,GAAG,GAAG,EAAE,KAAK,CAAC,CAAA;QAChE,MAAM,KAAK,CAAA;IACf,CAAC,CAAC,CACH,CAAA;EAAA,CAAA;AANY,QAAA,aAAa,iBAMzB"}
|
|
@@ -18,15 +18,28 @@ export class WebCrypto {
|
|
|
18
18
|
getKeyOperations(keyType: any): string[];
|
|
19
19
|
getKeyAlgorythm(keyType: any): {
|
|
20
20
|
name: string;
|
|
21
|
+
hash?: undefined;
|
|
22
|
+
namedCurve?: undefined;
|
|
23
|
+
} | {
|
|
24
|
+
name: string;
|
|
25
|
+
hash: {
|
|
26
|
+
name: string;
|
|
27
|
+
};
|
|
21
28
|
namedCurve?: undefined;
|
|
22
29
|
} | {
|
|
23
30
|
name: string;
|
|
24
31
|
namedCurve: string;
|
|
32
|
+
hash?: undefined;
|
|
25
33
|
};
|
|
26
34
|
generateKeyPair(): Promise<any>;
|
|
27
35
|
generateSharedSecret(): Promise<any>;
|
|
36
|
+
importRawKey(keyType: any, rawBytes: any, { extractable }?: {
|
|
37
|
+
extractable?: boolean | undefined;
|
|
38
|
+
}): Promise<any>;
|
|
28
39
|
generateHMAC(message: any, derivedKey: any): Promise<string | undefined>;
|
|
29
40
|
verifyHMAC(message: any, derivedKey: any, verifiableHMAC: any): Promise<boolean>;
|
|
41
|
+
createSignedToken(message: any, hmacKey: any, ttlSeconds: any): Promise<string>;
|
|
42
|
+
verifySignedToken(token: any, message: any, hmacKey: any): Promise<boolean>;
|
|
30
43
|
getStorableKey(key: any): Promise<string>;
|
|
31
44
|
parseStorableHex(storableHex: any): Promise<any>;
|
|
32
45
|
restoreStorableKey(keyType: any, storableHex: any): Promise<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebCrypto.d.ts","sourceRoot":"","sources":["../../src/shared/WebCrypto.js"],"names":[],"mappings":"AAQA;IACE;;;OAGC;IAFC,aAA4B;IAC5B,WAAwB;IAG1B,kBAEC;IAED,
|
|
1
|
+
{"version":3,"file":"WebCrypto.d.ts","sourceRoot":"","sources":["../../src/shared/WebCrypto.js"],"names":[],"mappings":"AAQA;IACE;;;OAGC;IAFC,aAA4B;IAC5B,WAAwB;IAG1B,kBAEC;IAED,6BAiCC;IAED,+BAyBC;IAED,+BAyBC;IAED,mDAiBC;IAED,sCAMC;IAED,mCAYC;IAED,oDAIC;IAED,oCAMC;IAED,gDAMC;IAED,yCAsBC;IAED;;;;;;;;;;;;;;MA0BC;IAED,gCASC;IAED,qCASC;IAED;;qBAUC;IAED,yEAiBC;IAED,iFAIC;IAED,gFAKC;IAED,4EAmBC;IAGD,0CAKC;IAGD,iDAEC;IAED,iEAsBC;IAED,8CAUC;IAED,kDAUC;IAED;;;qBAoBC;IAED;;;qBAqBC;IAED;;;;;;;;;OAaC;IAED,sFAuBC;IAED,qEAuBC;CACF"}
|
package/dist/shared/WebCrypto.js
CHANGED
|
@@ -54,14 +54,18 @@ class WebCrypto {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
// 2. If still no subtle, fall back to polyfills (Node.js < 18, unusual environments)
|
|
57
|
+
// NOTE: Module names are assigned to variables to prevent bundlers (esbuild, webpack, etc.)
|
|
58
|
+
// from statically resolving these optional dynamic imports at bundle time.
|
|
57
59
|
if (!((_c = this._crypto) === null || _c === void 0 ? void 0 : _c.subtle)) {
|
|
60
|
+
const cryptoPolyfill = 'isomorphic-webcrypto';
|
|
61
|
+
const nodeCrypto = 'crypto';
|
|
58
62
|
try {
|
|
59
|
-
this._crypto = (yield Promise.resolve().then(
|
|
63
|
+
this._crypto = (yield Promise.resolve(`${cryptoPolyfill}`).then(s => __importStar(require(s)))).default;
|
|
60
64
|
}
|
|
61
65
|
catch (_ignore) {
|
|
62
66
|
console.info('Failed to import isomorphic-webcrypto, retrying w/ node crypto');
|
|
63
67
|
try {
|
|
64
|
-
this._crypto = (yield Promise.resolve().then(
|
|
68
|
+
this._crypto = (yield Promise.resolve(`${nodeCrypto}`).then(s => __importStar(require(s)))).default;
|
|
65
69
|
}
|
|
66
70
|
catch (error) {
|
|
67
71
|
// eslint-disable-next-line max-len
|
|
@@ -88,8 +92,11 @@ class WebCrypto {
|
|
|
88
92
|
if ((typeof window !== 'undefined') && (typeof window.TextDecoder === 'function')) {
|
|
89
93
|
return window.TextDecoder;
|
|
90
94
|
}
|
|
95
|
+
// NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
|
|
96
|
+
// from statically resolving this optional dynamic import at bundle time.
|
|
97
|
+
const nodeUtil = 'util';
|
|
91
98
|
try {
|
|
92
|
-
const TextDecoder = (yield Promise.resolve().then(
|
|
99
|
+
const TextDecoder = (yield Promise.resolve(`${nodeUtil}`).then(s => __importStar(require(s)))).TextDecoder;
|
|
93
100
|
this._util.TextDecoder = TextDecoder;
|
|
94
101
|
return TextDecoder;
|
|
95
102
|
}
|
|
@@ -111,8 +118,11 @@ class WebCrypto {
|
|
|
111
118
|
if ((typeof window !== 'undefined') && (typeof window.TextEncoder === 'function')) {
|
|
112
119
|
return window.TextEncoder;
|
|
113
120
|
}
|
|
121
|
+
// NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
|
|
122
|
+
// from statically resolving this optional dynamic import at bundle time.
|
|
123
|
+
const nodeUtil = 'util';
|
|
114
124
|
try {
|
|
115
|
-
const TextEncoder = (yield Promise.resolve().then(
|
|
125
|
+
const TextEncoder = (yield Promise.resolve(`${nodeUtil}`).then(s => __importStar(require(s)))).TextEncoder;
|
|
116
126
|
this._util.TextEncoder = TextEncoder;
|
|
117
127
|
return TextEncoder;
|
|
118
128
|
}
|
|
@@ -179,6 +189,9 @@ class WebCrypto {
|
|
|
179
189
|
case 'sharedSecret': {
|
|
180
190
|
return ['encrypt', 'decrypt'];
|
|
181
191
|
}
|
|
192
|
+
case 'hmac': {
|
|
193
|
+
return ['sign', 'verify'];
|
|
194
|
+
}
|
|
182
195
|
default: {
|
|
183
196
|
return [];
|
|
184
197
|
}
|
|
@@ -195,6 +208,12 @@ class WebCrypto {
|
|
|
195
208
|
name: 'AES-GCM',
|
|
196
209
|
};
|
|
197
210
|
}
|
|
211
|
+
case 'hmac': {
|
|
212
|
+
return {
|
|
213
|
+
name: 'HMAC',
|
|
214
|
+
hash: { name: 'SHA-256' },
|
|
215
|
+
};
|
|
216
|
+
}
|
|
198
217
|
default: {
|
|
199
218
|
return {
|
|
200
219
|
name: 'ECDH',
|
|
@@ -217,6 +236,12 @@ class WebCrypto {
|
|
|
217
236
|
return keyPair;
|
|
218
237
|
});
|
|
219
238
|
}
|
|
239
|
+
importRawKey(keyType_1, rawBytes_1) {
|
|
240
|
+
return __awaiter(this, arguments, void 0, function* (keyType, rawBytes, { extractable = true } = {}) {
|
|
241
|
+
const crypto = yield this.getWebCrypto();
|
|
242
|
+
return crypto.subtle.importKey('raw', rawBytes, this.getKeyAlgorythm(keyType), extractable, this.getKeyOperations(keyType));
|
|
243
|
+
});
|
|
244
|
+
}
|
|
220
245
|
generateHMAC(message, derivedKey) {
|
|
221
246
|
return __awaiter(this, void 0, void 0, function* () {
|
|
222
247
|
if (!message || !derivedKey) {
|
|
@@ -234,6 +259,31 @@ class WebCrypto {
|
|
|
234
259
|
return this.timingSafeEqual(calculatedHMAC, verifiableHMAC);
|
|
235
260
|
});
|
|
236
261
|
}
|
|
262
|
+
createSignedToken(message, hmacKey, ttlSeconds) {
|
|
263
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
264
|
+
const expiry = Math.floor(Date.now() / 1000) + ttlSeconds;
|
|
265
|
+
const hmacHex = yield this.generateHMAC(`${message}:${expiry}`, hmacKey);
|
|
266
|
+
return `${expiry}.${hmacHex}`;
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
verifySignedToken(token, message, hmacKey) {
|
|
270
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
271
|
+
if (!token || typeof token !== 'string') {
|
|
272
|
+
return false;
|
|
273
|
+
}
|
|
274
|
+
const dotIndex = token.indexOf('.');
|
|
275
|
+
if (dotIndex === -1) {
|
|
276
|
+
return false;
|
|
277
|
+
}
|
|
278
|
+
const expiryStr = token.substring(0, dotIndex);
|
|
279
|
+
const signature = token.substring(dotIndex + 1);
|
|
280
|
+
const expiry = parseInt(expiryStr, 10);
|
|
281
|
+
if (isNaN(expiry) || expiry <= Math.floor(Date.now() / 1000)) {
|
|
282
|
+
return false;
|
|
283
|
+
}
|
|
284
|
+
return this.verifyHMAC(`${message}:${expiryStr}`, hmacKey, signature);
|
|
285
|
+
});
|
|
286
|
+
}
|
|
237
287
|
// NOTE: intentionally separated out as async to be able to .catch
|
|
238
288
|
getStorableKey(key) {
|
|
239
289
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebCrypto.js","sourceRoot":"","sources":["../../src/shared/WebCrypto.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebCrypto.js","sourceRoot":"","sources":["../../src/shared/WebCrypto.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAKkB;AAClB,qCAAsC;AAEtC,MAAa,SAAS;IACpB,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAA;IAC1B,CAAC;IAED,IAAI,MAAM;;QACR,OAAO,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAA;IAC7B,CAAC;IAEK,YAAY;;;YAChB,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAA,EAAE,CAAC;gBAC1B,oEAAoE;gBACpE,IAAI,CAAC,OAAO,UAAU,KAAK,WAAW,CAAC,KAAI,MAAA,UAAU,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE,CAAC;oBACrE,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAA;gBAClC,CAAC;YACH,CAAC;YAED,qFAAqF;YACrF,4FAA4F;YAC5F,2EAA2E;YAC3E,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAA,EAAE,CAAC;gBAC1B,MAAM,cAAc,GAAG,sBAAsB,CAAA;gBAC7C,MAAM,UAAU,GAAG,QAAQ,CAAA;gBAC3B,IAAI,CAAC;oBACH,IAAI,CAAC,OAAO,GAAG,CAAC,yBAAa,cAAc,uCAAC,CAAC,CAAC,OAAO,CAAA;gBACvD,CAAC;gBAAC,OAAO,OAAO,EAAE,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;oBAC9E,IAAI,CAAC;wBACH,IAAI,CAAC,OAAO,GAAG,CAAC,yBAAa,UAAU,uCAAC,CAAC,CAAC,OAAO,CAAA;oBACnD,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,mCAAmC;wBACnC,OAAO,CAAC,KAAK,CAAC,2JAA2J,CAAC,CAAA;wBAC1K,MAAM,KAAK,CAAA;oBACb,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAA,EAAE,CAAC;gBAC1B,MAAM,IAAI,oBAAW,CAAC,gCAAgC,CAAC,CAAA;YACzD,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAA;QACrB,CAAC;KAAA;IAEK,cAAc;;;YAClB,IAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAA;YAC/B,CAAC;YAED,IAAI,CAAC,OAAO,UAAU,KAAK,WAAW,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,WAAW,KAAK,UAAU,CAAC,EAAE,CAAC;gBAC1F,OAAO,UAAU,CAAC,WAAW,CAAA;YAC/B,CAAC;YAED,IAAI,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU,CAAC,EAAE,CAAC;gBAClF,OAAO,MAAM,CAAC,WAAW,CAAA;YAC3B,CAAC;YAED,sFAAsF;YACtF,yEAAyE;YACzE,MAAM,QAAQ,GAAG,MAAM,CAAA;YACvB,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,CAAC,yBAAa,QAAQ,uCAAC,CAAC,CAAC,WAAW,CAAA;gBACxD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,WAAW,CAAA;gBAEpC,OAAO,WAAW,CAAA;YACpB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,8HAA8H,CAAC,CAAA;gBAC7I,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;KAAA;IAEK,cAAc;;;YAClB,IAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAA;YAC/B,CAAC;YAED,IAAI,CAAC,OAAO,UAAU,KAAK,WAAW,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,WAAW,KAAK,UAAU,CAAC,EAAE,CAAC;gBAC1F,OAAO,UAAU,CAAC,WAAW,CAAA;YAC/B,CAAC;YAED,IAAI,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU,CAAC,EAAE,CAAC;gBAClF,OAAO,MAAM,CAAC,WAAW,CAAA;YAC3B,CAAC;YAED,sFAAsF;YACtF,yEAAyE;YACzE,MAAM,QAAQ,GAAG,MAAM,CAAA;YACvB,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,CAAC,yBAAa,QAAQ,uCAAC,CAAC,CAAC,WAAW,CAAA;gBACxD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,WAAW,CAAA;gBAEpC,OAAO,WAAW,CAAA;YACpB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,8HAA8H,CAAC,CAAA;gBAC7I,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;KAAA;IAED,eAAe,CAAC,MAAM,EAAE,MAAM;QAC5B,IACE,CAAC,MAAM,IAAI,SAAS,CAAC;YACrB,CAAC,MAAM,IAAI,SAAS,CAAC;YACrB,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,EACjC,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,uCAAuC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,sCAAsC;YACtC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACjC,CAAC;QAED,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAA;IACvB,CAAC;IAED,WAAW,CAAC,WAAW;QACrB,OAAO,CACL,KAAK,CAAC,IAAI,CAAC,IAAA,sBAAY,EAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAC9C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CACjD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CACZ,CAAA;IACH,CAAC;IAED,WAAW,CAAC,QAAQ;QAClB,IAAI,CAAC,IAAA,kBAAQ,EAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,oBAAW,CAAC,2BAA2B,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,oBAAW,CAAC,qCAAqC,CAAC,CAAA;QAC9D,CAAC;QAED,OAAO,IAAA,qBAAW,EAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aAC5C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;aACtD,IAAI,CAAC,EAAE,CAAC,CAAA;IACX,CAAC;IAEK,mBAAmB,CAAC,WAAW;;YACnC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;YAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;YAC3C,OAAO,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACzC,CAAC;KAAA;IAED,kBAAkB,CAAC,KAAK;QACtB,OAAO,CACL,CAAC,WAAW,CAAC,IAAI,IAAI,SAAS,CAAC;YAC7B,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YACzB,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CACjC,CAAA;IACH,CAAC;IAED,iBAAiB,CAAC,kBAAkB;QAClC,OAAO,CACL,CAAC,kBAAkB,YAAY,WAAW,CAAC;YACzC,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAChD,CAAA;IACH,CAAC;IAED,gBAAgB,CAAC,OAAO;QACtB,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,QAAQ,CAAC;YACd,KAAK,SAAS,CAAC;YACf,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,OAAO,CAAC,WAAW,CAAC,CAAA;YACtB,CAAC;YAED,KAAK,QAAQ,CAAC;YACd,KAAK,WAAW,CAAC;YACjB,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAC/B,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAC3B,CAAC;YAED,OAAO,CAAC,CAAC,CAAC;gBACR,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe,CAAC,OAAO;QACrB,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,YAAY,CAAC;YAClB,KAAK,SAAS,CAAC;YACf,KAAK,QAAQ,CAAC;YACd,KAAK,WAAW,CAAC;YACjB,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,OAAO;oBACL,IAAI,EAAE,SAAS;iBAChB,CAAA;YACH,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;iBAC1B,CAAA;YACH,CAAC;YAED,OAAO,CAAC,CAAC,CAAC;gBACR,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,UAAU,EAAE,OAAO;iBACpB,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEK,eAAe;;YACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;YACxC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAC7C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAC9B,IAAI,EACJ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAChC,CAAA;YAED,OAAO,OAAO,CAAA;QAChB,CAAC;KAAA;IAEK,oBAAoB;;YACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;YACxC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAC7C,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,EACpC,IAAI,EACJ,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CACtC,CAAA;YAED,OAAO,OAAO,CAAA;QAChB,CAAC;KAAA;IAEK,YAAY;6DAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,EAAE;YAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;YAExC,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAC5B,KAAK,EACL,QAAQ,EACR,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAC7B,WAAW,EACX,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAC/B,CAAA;QACH,CAAC;KAAA;IAEK,YAAY,CAAC,OAAO,EAAE,UAAU;;YACpC,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC5B,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;YACxC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;YAE3C,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CACxC,MAAM,EACN,UAAU,EACV,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAC9B,CAAA;YAED,OAAO,IAAI,CAAC,WAAW,CACrB,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CACpC,CAAA;QACH,CAAC;KAAA;IAEK,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc;;YAClD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;YAEnE,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;QAC7D,CAAC;KAAA;IAEK,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU;;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,CAAA;YACzD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,OAAO,IAAI,MAAM,EAAE,EAAE,OAAO,CAAC,CAAA;YAExE,OAAO,GAAG,MAAM,IAAI,OAAO,EAAE,CAAA;QAC/B,CAAC;KAAA;IAEK,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO;;YAC7C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACxC,OAAO,KAAK,CAAA;YACd,CAAC;YAED,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACnC,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;gBACpB,OAAO,KAAK,CAAA;YACd,CAAC;YAED,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;YAE/C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;YACtC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBAC7D,OAAO,KAAK,CAAA;YACd,CAAC;YAED,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO,IAAI,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;QACvE,CAAC;KAAA;IAED,kEAAkE;IAC5D,cAAc,CAAC,GAAG;;YACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;YAExC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAC7D,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;QACtD,CAAC;KAAA;IAED,kEAAkE;IAC5D,gBAAgB,CAAC,WAAW;;YAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAA;QAC1D,CAAC;KAAA;IAEK,kBAAkB,CAAC,OAAO,EAAE,WAAW;;YAC3C,kCAAkC;YAClC,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;YAExC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC5E,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,MAAM,CAAC,CAAA;gBAC3D,OAAO,SAAS,CAAA;YAClB,CAAC,CAAC,CAAA;YACF,IAAI,IAAA,qBAAW,EAAC,WAAW,CAAC,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAC5B,KAAK,EACL,WAAW,EACX,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAC7B,IAAI,EACJ,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAC/B,CAAA;QACH,CAAC;KAAA;IAEK,kBAAkB,CAAC,OAAO;;YAC9B,MAAM,YAAY,GAAG,EAAE,CAAA;YAEvB,gDAAgD;YAChD,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrD,4CAA4C;gBAC5C,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;YACxD,CAAC;YAED,OAAO,YAAY,CAAA;QACrB,CAAC;KAAA;IAEK,sBAAsB,CAAC,OAAO;;YAClC,MAAM,YAAY,GAAG,EAAE,CAAA;YAEvB,gDAAgD;YAChD,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrD,4CAA4C;gBAC5C,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YACrE,CAAC;YAED,OAAO,YAAY,CAAA;QACrB,CAAC;KAAA;IAEK,eAAe;6DAAC,EAAE,SAAS,EAAE,UAAU,EAAE;YAC7C,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC9B,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;YACxC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAC9C;gBACE,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,SAAS;aAClB,EACD,UAAU,EACV;gBACE,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,GAAG;aACZ,EACD,IAAI,EACJ,CAAC,SAAS,EAAE,SAAS,CAAC,CACvB,CAAA;YACD,OAAO,UAAU,CAAA;QACnB,CAAC;KAAA;IAEK,aAAa;6DAAC,EAAE,SAAS,EAAE,UAAU,EAAE;YAC3C,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC9B,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;YACxC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAC9C;gBACE,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,SAAS;aAClB,EACD,UAAU,EACV;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBACzB,MAAM,EAAE,GAAG,EAAG,sCAAsC;aACrD,EACD,IAAI,EACJ,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAA;YACD,OAAO,UAAU,CAAA;QACnB,CAAC;KAAA;IAEK,mBAAmB;6DAAC,EAAE,SAAS,EAAE,UAAU,EAAE;YACjD,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC9B,OAAO,EAAE,CAAA;YACX,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAA;YAClF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;YAC9D,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;YAElE,OAAO;gBACL,gBAAgB;gBAChB,cAAc;aACf,CAAA;QACH,CAAC;KAAA;IAEK,cAAc,CAAC,gBAAgB,EAAE,UAAU;;YAC/C,IAAI,CAAC,gBAAgB,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrC,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;YACxC,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;YACrD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;YAC3C,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;YAC7D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAC5C;gBACE,IAAI,EAAE,SAAS;gBACf,EAAE;aACH,EACD,UAAU,EACV,cAAc,CACf,CAAA;YAED,MAAM,gBAAgB,GAAG,IAAI,UAAU,CAAC;gBACtC,GAAG,EAAE;gBACL,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC;aAC9B,CAAC,CAAA;YACF,OAAO,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACrC,CAAC;KAAA;IAEK,cAAc,CAAC,gBAAgB,EAAE,UAAU;;YAC/C,IAAI,CAAC,gBAAgB,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrC,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;YACxC,oHAAoH;YACpH,MAAM,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;YACrE,MAAM,EAAE,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC5C,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAEjD,MAAM,oBAAoB,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CACtD;gBACE,IAAI,EAAE,SAAS;gBACf,EAAE;aACH,EACD,UAAU,EACV,UAAU,CACX,CAAA;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;YAC3C,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;YACnE,OAAO,gBAAgB,CAAA;QACzB,CAAC;KAAA;CACF;AAvdD,8BAudC"}
|
package/dist/umd/index.js
CHANGED
|
@@ -295,13 +295,17 @@
|
|
|
295
295
|
}
|
|
296
296
|
|
|
297
297
|
// 2. If still no subtle, fall back to polyfills (Node.js < 18, unusual environments)
|
|
298
|
+
// NOTE: Module names are assigned to variables to prevent bundlers (esbuild, webpack, etc.)
|
|
299
|
+
// from statically resolving these optional dynamic imports at bundle time.
|
|
298
300
|
if (!this._crypto?.subtle) {
|
|
301
|
+
const cryptoPolyfill = 'isomorphic-webcrypto';
|
|
302
|
+
const nodeCrypto = 'crypto';
|
|
299
303
|
try {
|
|
300
|
-
this._crypto = (await import(
|
|
304
|
+
this._crypto = (await import(cryptoPolyfill)).default;
|
|
301
305
|
} catch (_ignore) {
|
|
302
306
|
console.info('Failed to import isomorphic-webcrypto, retrying w/ node crypto');
|
|
303
307
|
try {
|
|
304
|
-
this._crypto = (await import(
|
|
308
|
+
this._crypto = (await import(nodeCrypto)).default;
|
|
305
309
|
} catch (error) {
|
|
306
310
|
// eslint-disable-next-line max-len
|
|
307
311
|
console.error(`Failed to import node crypto, ensure 'isomorphic-webcrypto' (or node 'crypto') is installed and/or pass in implementation via 'new WebCrypto({ crypto })'`);
|
|
@@ -330,8 +334,11 @@
|
|
|
330
334
|
return window.TextDecoder
|
|
331
335
|
}
|
|
332
336
|
|
|
337
|
+
// NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
|
|
338
|
+
// from statically resolving this optional dynamic import at bundle time.
|
|
339
|
+
const nodeUtil = 'util';
|
|
333
340
|
try {
|
|
334
|
-
const TextDecoder = (await import(
|
|
341
|
+
const TextDecoder = (await import(nodeUtil)).TextDecoder;
|
|
335
342
|
this._util.TextDecoder = TextDecoder;
|
|
336
343
|
|
|
337
344
|
return TextDecoder
|
|
@@ -354,8 +361,11 @@
|
|
|
354
361
|
return window.TextEncoder
|
|
355
362
|
}
|
|
356
363
|
|
|
364
|
+
// NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
|
|
365
|
+
// from statically resolving this optional dynamic import at bundle time.
|
|
366
|
+
const nodeUtil = 'util';
|
|
357
367
|
try {
|
|
358
|
-
const TextEncoder = (await import(
|
|
368
|
+
const TextEncoder = (await import(nodeUtil)).TextEncoder;
|
|
359
369
|
this._util.TextEncoder = TextEncoder;
|
|
360
370
|
|
|
361
371
|
return TextEncoder
|
|
@@ -442,6 +452,10 @@
|
|
|
442
452
|
return ['encrypt', 'decrypt']
|
|
443
453
|
}
|
|
444
454
|
|
|
455
|
+
case 'hmac': {
|
|
456
|
+
return ['sign', 'verify']
|
|
457
|
+
}
|
|
458
|
+
|
|
445
459
|
default: {
|
|
446
460
|
return []
|
|
447
461
|
}
|
|
@@ -460,6 +474,13 @@
|
|
|
460
474
|
}
|
|
461
475
|
}
|
|
462
476
|
|
|
477
|
+
case 'hmac': {
|
|
478
|
+
return {
|
|
479
|
+
name: 'HMAC',
|
|
480
|
+
hash: { name: 'SHA-256' },
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
|
|
463
484
|
default: {
|
|
464
485
|
return {
|
|
465
486
|
name: 'ECDH',
|
|
@@ -491,6 +512,18 @@
|
|
|
491
512
|
return keyPair
|
|
492
513
|
}
|
|
493
514
|
|
|
515
|
+
async importRawKey(keyType, rawBytes, { extractable = true } = {}) {
|
|
516
|
+
const crypto = await this.getWebCrypto();
|
|
517
|
+
|
|
518
|
+
return crypto.subtle.importKey(
|
|
519
|
+
'raw',
|
|
520
|
+
rawBytes,
|
|
521
|
+
this.getKeyAlgorythm(keyType),
|
|
522
|
+
extractable,
|
|
523
|
+
this.getKeyOperations(keyType)
|
|
524
|
+
)
|
|
525
|
+
}
|
|
526
|
+
|
|
494
527
|
async generateHMAC(message, derivedKey) {
|
|
495
528
|
if (!message || !derivedKey) {
|
|
496
529
|
return undefined
|
|
@@ -516,6 +549,34 @@
|
|
|
516
549
|
return this.timingSafeEqual(calculatedHMAC, verifiableHMAC)
|
|
517
550
|
}
|
|
518
551
|
|
|
552
|
+
async createSignedToken(message, hmacKey, ttlSeconds) {
|
|
553
|
+
const expiry = Math.floor(Date.now() / 1000) + ttlSeconds;
|
|
554
|
+
const hmacHex = await this.generateHMAC(`${message}:${expiry}`, hmacKey);
|
|
555
|
+
|
|
556
|
+
return `${expiry}.${hmacHex}`
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
async verifySignedToken(token, message, hmacKey) {
|
|
560
|
+
if (!token || typeof token !== 'string') {
|
|
561
|
+
return false
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
const dotIndex = token.indexOf('.');
|
|
565
|
+
if (dotIndex === -1) {
|
|
566
|
+
return false
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
const expiryStr = token.substring(0, dotIndex);
|
|
570
|
+
const signature = token.substring(dotIndex + 1);
|
|
571
|
+
|
|
572
|
+
const expiry = parseInt(expiryStr, 10);
|
|
573
|
+
if (isNaN(expiry) || expiry <= Math.floor(Date.now() / 1000)) {
|
|
574
|
+
return false
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
return this.verifyHMAC(`${message}:${expiryStr}`, hmacKey, signature)
|
|
578
|
+
}
|
|
579
|
+
|
|
519
580
|
// NOTE: intentionally separated out as async to be able to .catch
|
|
520
581
|
async getStorableKey(key) {
|
|
521
582
|
const crypto = await this.getWebCrypto();
|
|
@@ -907,8 +968,11 @@
|
|
|
907
968
|
}
|
|
908
969
|
|
|
909
970
|
// TODO: move to req.text() after next 13.5: https://github.com/vercel/next.js/discussions/13405
|
|
971
|
+
// NOTE: Module name assigned to variable to prevent bundlers (esbuild, webpack, etc.)
|
|
972
|
+
// from statically resolving this optional dynamic import at bundle time.
|
|
973
|
+
const rawBodyModule = 'raw-body';
|
|
910
974
|
try {
|
|
911
|
-
const _getRawBody = (await import(
|
|
975
|
+
const _getRawBody = (await import(rawBodyModule)).default;
|
|
912
976
|
|
|
913
977
|
if (!req.method || (lowercase(req.method) === 'get')) {
|
|
914
978
|
return undefined
|