react-native-nitro-storage 0.7.0 → 0.8.0
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/CHANGELOG.md +32 -0
- package/README.md +20 -9
- package/SECURITY.md +2 -2
- package/docs/api-reference.md +11 -1
- package/docs/batch-transactions-migrations.md +8 -2
- package/docs/benchmarks.md +19 -15
- package/docs/web-backends.md +18 -1
- package/ios/IOSStorageAdapterCpp.mm +162 -17
- package/lib/commonjs/capabilities.js +26 -0
- package/lib/commonjs/capabilities.js.map +1 -0
- package/lib/commonjs/core/durability.js +137 -0
- package/lib/commonjs/core/durability.js.map +1 -0
- package/lib/commonjs/core/metrics.js +91 -0
- package/lib/commonjs/core/metrics.js.map +1 -0
- package/lib/commonjs/index.js +47 -22
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +118 -66
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/indexeddb-backend.js +73 -23
- package/lib/commonjs/indexeddb-backend.js.map +1 -1
- package/lib/commonjs/internal.js +27 -4
- package/lib/commonjs/internal.js.map +1 -1
- package/lib/commonjs/shared.js +2 -2
- package/lib/commonjs/shared.js.map +1 -1
- package/lib/commonjs/storage-core.js +217 -233
- package/lib/commonjs/storage-core.js.map +1 -1
- package/lib/commonjs/storage-events.js.map +1 -1
- package/lib/commonjs/storage-platform.js +6 -0
- package/lib/commonjs/storage-platform.js.map +1 -0
- package/lib/commonjs/storage-runtime.js +3 -21
- package/lib/commonjs/storage-runtime.js.map +1 -1
- package/lib/commonjs/testing.js +19 -4
- package/lib/commonjs/testing.js.map +1 -1
- package/lib/commonjs/web-backend-contract.js +27 -0
- package/lib/commonjs/web-backend-contract.js.map +1 -0
- package/lib/module/capabilities.js +21 -0
- package/lib/module/capabilities.js.map +1 -0
- package/lib/module/core/durability.js +133 -0
- package/lib/module/core/durability.js.map +1 -0
- package/lib/module/core/metrics.js +87 -0
- package/lib/module/core/metrics.js.map +1 -0
- package/lib/module/index.js +48 -23
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +103 -64
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/indexeddb-backend.js +73 -23
- package/lib/module/indexeddb-backend.js.map +1 -1
- package/lib/module/internal.js +24 -3
- package/lib/module/internal.js.map +1 -1
- package/lib/module/shared.js +2 -2
- package/lib/module/shared.js.map +1 -1
- package/lib/module/storage-core.js +218 -234
- package/lib/module/storage-core.js.map +1 -1
- package/lib/module/storage-events.js.map +1 -1
- package/lib/module/storage-platform.js +4 -0
- package/lib/module/storage-platform.js.map +1 -0
- package/lib/module/storage-runtime.js +3 -21
- package/lib/module/storage-runtime.js.map +1 -1
- package/lib/module/testing.js +5 -3
- package/lib/module/testing.js.map +1 -1
- package/lib/module/web-backend-contract.js +22 -0
- package/lib/module/web-backend-contract.js.map +1 -0
- package/lib/typescript/capabilities.d.ts +11 -0
- package/lib/typescript/capabilities.d.ts.map +1 -0
- package/lib/typescript/core/durability.d.ts +27 -0
- package/lib/typescript/core/durability.d.ts.map +1 -0
- package/lib/typescript/core/metrics.d.ts +12 -0
- package/lib/typescript/core/metrics.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +5 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/index.web.d.ts +8 -4
- package/lib/typescript/index.web.d.ts.map +1 -1
- package/lib/typescript/indexeddb-backend.d.ts.map +1 -1
- package/lib/typescript/internal.d.ts +3 -0
- package/lib/typescript/internal.d.ts.map +1 -1
- package/lib/typescript/shared.d.ts +2 -1
- package/lib/typescript/shared.d.ts.map +1 -1
- package/lib/typescript/storage-core.d.ts +3 -3
- package/lib/typescript/storage-core.d.ts.map +1 -1
- package/lib/typescript/storage-events.d.ts +2 -2
- package/lib/typescript/storage-events.d.ts.map +1 -1
- package/lib/typescript/storage-platform.d.ts +12 -0
- package/lib/typescript/storage-platform.d.ts.map +1 -0
- package/lib/typescript/storage-runtime.d.ts.map +1 -1
- package/lib/typescript/testing.d.ts +5 -1
- package/lib/typescript/testing.d.ts.map +1 -1
- package/lib/typescript/web-backend-contract.d.ts +10 -0
- package/lib/typescript/web-backend-contract.d.ts.map +1 -0
- package/lib/typescript/web-storage-backend.d.ts +1 -1
- package/lib/typescript/web-storage-backend.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/capabilities.ts +36 -0
- package/src/core/durability.ts +170 -0
- package/src/core/metrics.ts +133 -0
- package/src/index.ts +66 -40
- package/src/index.web.ts +158 -86
- package/src/indexeddb-backend.ts +91 -20
- package/src/internal.ts +50 -4
- package/src/shared.ts +7 -6
- package/src/storage-core.ts +317 -285
- package/src/storage-events.ts +2 -1
- package/src/storage-platform.ts +16 -0
- package/src/storage-runtime.ts +13 -47
- package/src/testing.ts +14 -7
- package/src/web-backend-contract.ts +34 -0
- package/src/web-storage-backend.ts +1 -1
package/lib/module/index.web.js
CHANGED
|
@@ -1,20 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { resolveWebWriteBuffering } from "./capabilities";
|
|
4
|
+
import { unescapeCollidingRawValue } from "./internal";
|
|
3
5
|
import { assertAccessControlLevel, assertBiometricLevel, notifyAllListeners, notifyKeyListeners } from "./shared";
|
|
6
|
+
import { createStorageCore } from "./storage-core";
|
|
4
7
|
import { StorageScope, BiometricLevel } from "./Storage.types";
|
|
5
8
|
import { createLocalStorageWebBackend } from "./web-storage-backend";
|
|
6
|
-
import { createStorageCore } from "./storage-core";
|
|
7
9
|
export { isKeychainLockedError } from "./shared";
|
|
8
10
|
export { StorageScope, AccessControl, BiometricLevel } from "./Storage.types";
|
|
9
11
|
export { migrateFromMMKV } from "./migration";
|
|
10
12
|
export { getStorageErrorCode } from "./storage-runtime";
|
|
11
|
-
|
|
13
|
+
export { describeWebBackendCapabilities, isIndexedDBWebBackend } from "./web-backend-contract";
|
|
14
|
+
const webScopeKeyIndex = {
|
|
15
|
+
[StorageScope.Disk]: new Set(),
|
|
16
|
+
[StorageScope.Secure]: new Set()
|
|
17
|
+
};
|
|
12
18
|
const hydratedWebScopeKeyIndex = new Set();
|
|
13
19
|
const SECURE_WEB_PREFIX = "__secure_";
|
|
14
20
|
const BIOMETRIC_WEB_PREFIX = "__bio_";
|
|
15
21
|
let hasWarnedAboutWebBiometricFallback = false;
|
|
16
22
|
let hasWindowStorageEventSubscription = false;
|
|
17
23
|
let internals;
|
|
24
|
+
function getInternals() {
|
|
25
|
+
if (internals === undefined) {
|
|
26
|
+
throw new Error("NitroStorage(web): storage core is not initialized.");
|
|
27
|
+
}
|
|
28
|
+
return internals;
|
|
29
|
+
}
|
|
18
30
|
function createDefaultDiskBackend() {
|
|
19
31
|
return createLocalStorageWebBackend({
|
|
20
32
|
name: "localStorage:disk",
|
|
@@ -30,6 +42,7 @@ function createDefaultSecureBackend() {
|
|
|
30
42
|
let webDiskStorageBackend = createDefaultDiskBackend();
|
|
31
43
|
let webSecureStorageBackend = createDefaultSecureBackend();
|
|
32
44
|
const externalSyncUnsubscribers = new Map();
|
|
45
|
+
const retiredWebBackends = new Map();
|
|
33
46
|
function getBackendName(scope, backend) {
|
|
34
47
|
const scopeName = scope === StorageScope.Disk ? "disk" : "secure";
|
|
35
48
|
return backend?.name ?? `web:${scopeName}`;
|
|
@@ -70,7 +83,7 @@ function fromBiometricStorageKey(key) {
|
|
|
70
83
|
return key.slice(BIOMETRIC_WEB_PREFIX.length);
|
|
71
84
|
}
|
|
72
85
|
function getWebScopeKeyIndex(scope) {
|
|
73
|
-
return webScopeKeyIndex
|
|
86
|
+
return webScopeKeyIndex[scope];
|
|
74
87
|
}
|
|
75
88
|
function hydrateWebScopeKeyIndex(scope) {
|
|
76
89
|
if (hydratedWebScopeKeyIndex.has(scope)) {
|
|
@@ -101,51 +114,51 @@ function ensureWebScopeKeyIndex(scope) {
|
|
|
101
114
|
}
|
|
102
115
|
function applyExternalChangeEvent(scope, key, newValue) {
|
|
103
116
|
if (key === null) {
|
|
104
|
-
|
|
117
|
+
getInternals().clearScopeRawCache(scope);
|
|
105
118
|
ensureWebScopeKeyIndex(scope).clear();
|
|
106
|
-
notifyAllListeners(
|
|
119
|
+
notifyAllListeners(getInternals().getScopedListeners(scope));
|
|
107
120
|
return;
|
|
108
121
|
}
|
|
109
122
|
if (scope === StorageScope.Secure && key.startsWith(SECURE_WEB_PREFIX)) {
|
|
110
123
|
const plainKey = fromSecureStorageKey(key);
|
|
111
|
-
const oldValue =
|
|
124
|
+
const oldValue = getInternals().readCachedRawValue(StorageScope.Secure, plainKey);
|
|
112
125
|
if (newValue === null) {
|
|
113
126
|
ensureWebScopeKeyIndex(StorageScope.Secure).delete(plainKey);
|
|
114
|
-
|
|
127
|
+
getInternals().cacheRawValue(StorageScope.Secure, plainKey, undefined);
|
|
115
128
|
} else {
|
|
116
129
|
ensureWebScopeKeyIndex(StorageScope.Secure).add(plainKey);
|
|
117
|
-
|
|
130
|
+
getInternals().cacheRawValue(StorageScope.Secure, plainKey, newValue);
|
|
118
131
|
}
|
|
119
|
-
notifyKeyListeners(
|
|
120
|
-
|
|
132
|
+
notifyKeyListeners(getInternals().getScopedListeners(StorageScope.Secure), plainKey);
|
|
133
|
+
getInternals().emitKeyChange(StorageScope.Secure, plainKey, oldValue === undefined ? undefined : unescapeCollidingRawValue(oldValue), newValue === null ? undefined : unescapeCollidingRawValue(newValue), "external", "external");
|
|
121
134
|
return;
|
|
122
135
|
}
|
|
123
136
|
if (scope === StorageScope.Secure && key.startsWith(BIOMETRIC_WEB_PREFIX)) {
|
|
124
137
|
const plainKey = fromBiometricStorageKey(key);
|
|
125
|
-
const oldValue =
|
|
138
|
+
const oldValue = getInternals().readCachedRawValue(StorageScope.Secure, plainKey);
|
|
126
139
|
if (newValue === null) {
|
|
127
140
|
if (withWebBackendOperation(StorageScope.Secure, "external-sync:getItem", backend => backend.getItem(toSecureStorageKey(plainKey))) === null) {
|
|
128
141
|
ensureWebScopeKeyIndex(StorageScope.Secure).delete(plainKey);
|
|
129
142
|
}
|
|
130
|
-
|
|
143
|
+
getInternals().cacheRawValue(StorageScope.Secure, plainKey, undefined);
|
|
131
144
|
} else {
|
|
132
145
|
ensureWebScopeKeyIndex(StorageScope.Secure).add(plainKey);
|
|
133
|
-
|
|
146
|
+
getInternals().cacheRawValue(StorageScope.Secure, plainKey, newValue);
|
|
134
147
|
}
|
|
135
|
-
notifyKeyListeners(
|
|
136
|
-
|
|
148
|
+
notifyKeyListeners(getInternals().getScopedListeners(StorageScope.Secure), plainKey);
|
|
149
|
+
getInternals().emitKeyChange(StorageScope.Secure, plainKey, oldValue === undefined ? undefined : unescapeCollidingRawValue(oldValue), newValue === null ? undefined : unescapeCollidingRawValue(newValue), "external", "external");
|
|
137
150
|
return;
|
|
138
151
|
}
|
|
139
|
-
const oldValue =
|
|
152
|
+
const oldValue = getInternals().readCachedRawValue(scope, key);
|
|
140
153
|
if (newValue === null) {
|
|
141
154
|
ensureWebScopeKeyIndex(scope).delete(key);
|
|
142
|
-
|
|
155
|
+
getInternals().cacheRawValue(scope, key, undefined);
|
|
143
156
|
} else {
|
|
144
157
|
ensureWebScopeKeyIndex(scope).add(key);
|
|
145
|
-
|
|
158
|
+
getInternals().cacheRawValue(scope, key, newValue);
|
|
146
159
|
}
|
|
147
|
-
notifyKeyListeners(
|
|
148
|
-
|
|
160
|
+
notifyKeyListeners(getInternals().getScopedListeners(scope), key);
|
|
161
|
+
getInternals().emitKeyChange(scope, key, oldValue === undefined ? undefined : unescapeCollidingRawValue(oldValue), newValue === null ? undefined : unescapeCollidingRawValue(newValue), "external", "external");
|
|
149
162
|
}
|
|
150
163
|
function handleWebStorageEvent(event) {
|
|
151
164
|
const key = event.key;
|
|
@@ -187,6 +200,16 @@ function closeWebBackend(scope, backend) {
|
|
|
187
200
|
throw createWebStorageError(scope, "close", error, backend);
|
|
188
201
|
}
|
|
189
202
|
}
|
|
203
|
+
function retireWebBackend(scope, previousBackend, nextBackend) {
|
|
204
|
+
if (!previousBackend || previousBackend === nextBackend) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
if (previousBackend.flush) {
|
|
208
|
+
retiredWebBackends.set(previousBackend, scope);
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
closeWebBackend(scope, previousBackend);
|
|
212
|
+
}
|
|
190
213
|
function ensureExternalSyncSubscriptions() {
|
|
191
214
|
if (!hasWindowStorageEventSubscription && typeof window !== "undefined" && typeof window.addEventListener === "function") {
|
|
192
215
|
window.addEventListener("storage", handleWebStorageEvent);
|
|
@@ -208,7 +231,7 @@ const WebStorage = {
|
|
|
208
231
|
backend.setItem(storageKey, value);
|
|
209
232
|
});
|
|
210
233
|
ensureWebScopeKeyIndex(scope).add(key);
|
|
211
|
-
notifyKeyListeners(
|
|
234
|
+
notifyKeyListeners(getInternals().getScopedListeners(scope), key);
|
|
212
235
|
},
|
|
213
236
|
get: (key, scope) => {
|
|
214
237
|
if (scope !== StorageScope.Disk && scope !== StorageScope.Secure) {
|
|
@@ -237,7 +260,7 @@ const WebStorage = {
|
|
|
237
260
|
});
|
|
238
261
|
}
|
|
239
262
|
ensureWebScopeKeyIndex(scope).delete(key);
|
|
240
|
-
notifyKeyListeners(
|
|
263
|
+
notifyKeyListeners(getInternals().getScopedListeners(scope), key);
|
|
241
264
|
},
|
|
242
265
|
clear: scope => {
|
|
243
266
|
if (scope !== StorageScope.Disk && scope !== StorageScope.Secure) {
|
|
@@ -247,7 +270,7 @@ const WebStorage = {
|
|
|
247
270
|
backend.clear();
|
|
248
271
|
});
|
|
249
272
|
ensureWebScopeKeyIndex(scope).clear();
|
|
250
|
-
notifyAllListeners(
|
|
273
|
+
notifyAllListeners(getInternals().getScopedListeners(scope));
|
|
251
274
|
},
|
|
252
275
|
setBatch: (keys, values, scope) => {
|
|
253
276
|
if (scope !== StorageScope.Disk && scope !== StorageScope.Secure) {
|
|
@@ -275,8 +298,10 @@ const WebStorage = {
|
|
|
275
298
|
});
|
|
276
299
|
const keyIndex = ensureWebScopeKeyIndex(scope);
|
|
277
300
|
entries.forEach(([storageKey]) => keyIndex.add(scope === StorageScope.Secure ? storageKey.slice(SECURE_WEB_PREFIX.length) : storageKey));
|
|
278
|
-
const listeners =
|
|
279
|
-
keys.forEach(key =>
|
|
301
|
+
const listeners = getInternals().getScopedListeners(scope);
|
|
302
|
+
keys.forEach(key => {
|
|
303
|
+
notifyKeyListeners(listeners, key);
|
|
304
|
+
});
|
|
280
305
|
},
|
|
281
306
|
getBatch: (keys, scope) => {
|
|
282
307
|
if (scope !== StorageScope.Disk && scope !== StorageScope.Secure) {
|
|
@@ -319,8 +344,10 @@ const WebStorage = {
|
|
|
319
344
|
}
|
|
320
345
|
const keyIndex = ensureWebScopeKeyIndex(scope);
|
|
321
346
|
keys.forEach(key => keyIndex.delete(key));
|
|
322
|
-
const listeners =
|
|
323
|
-
keys.forEach(key =>
|
|
347
|
+
const listeners = getInternals().getScopedListeners(scope);
|
|
348
|
+
keys.forEach(key => {
|
|
349
|
+
notifyKeyListeners(listeners, key);
|
|
350
|
+
});
|
|
324
351
|
},
|
|
325
352
|
removeByPrefix: (prefix, scope) => {
|
|
326
353
|
if (scope !== StorageScope.Disk && scope !== StorageScope.Secure) {
|
|
@@ -376,27 +403,32 @@ const WebStorage = {
|
|
|
376
403
|
backend.setItem(toSecureStorageKey(key), value);
|
|
377
404
|
});
|
|
378
405
|
ensureWebScopeKeyIndex(StorageScope.Secure).add(key);
|
|
379
|
-
notifyKeyListeners(
|
|
406
|
+
notifyKeyListeners(getInternals().getScopedListeners(StorageScope.Secure), key);
|
|
380
407
|
return;
|
|
381
408
|
}
|
|
382
409
|
if (typeof __DEV__ !== "undefined" && __DEV__ && !hasWarnedAboutWebBiometricFallback) {
|
|
383
410
|
hasWarnedAboutWebBiometricFallback = true;
|
|
384
411
|
console.warn("[NitroStorage] Biometric storage is not supported on web. Using localStorage.");
|
|
385
412
|
}
|
|
386
|
-
withWebBackendOperation(StorageScope.Secure, "setSecureBiometric", backend =>
|
|
413
|
+
withWebBackendOperation(StorageScope.Secure, "setSecureBiometric", backend => {
|
|
414
|
+
backend.setItem(toBiometricStorageKey(key), value);
|
|
415
|
+
backend.removeItem(toSecureStorageKey(key));
|
|
416
|
+
});
|
|
387
417
|
ensureWebScopeKeyIndex(StorageScope.Secure).add(key);
|
|
388
|
-
notifyKeyListeners(
|
|
418
|
+
notifyKeyListeners(getInternals().getScopedListeners(StorageScope.Secure), key);
|
|
389
419
|
},
|
|
390
420
|
getSecureBiometric: key => {
|
|
391
421
|
const value = withWebBackendOperation(StorageScope.Secure, "getSecureBiometric", backend => backend.getItem(toBiometricStorageKey(key)));
|
|
392
422
|
return value ?? undefined;
|
|
393
423
|
},
|
|
394
424
|
deleteSecureBiometric: key => {
|
|
395
|
-
withWebBackendOperation(StorageScope.Secure, "deleteSecureBiometric", backend =>
|
|
425
|
+
withWebBackendOperation(StorageScope.Secure, "deleteSecureBiometric", backend => {
|
|
426
|
+
backend.removeItem(toBiometricStorageKey(key));
|
|
427
|
+
});
|
|
396
428
|
if (withWebBackendOperation(StorageScope.Secure, "deleteSecureBiometric:getItem", backend => backend.getItem(toSecureStorageKey(key))) === null) {
|
|
397
429
|
ensureWebScopeKeyIndex(StorageScope.Secure).delete(key);
|
|
398
430
|
}
|
|
399
|
-
notifyKeyListeners(
|
|
431
|
+
notifyKeyListeners(getInternals().getScopedListeners(StorageScope.Secure), key);
|
|
400
432
|
},
|
|
401
433
|
hasSecureBiometric: key => {
|
|
402
434
|
return withWebBackendOperation(StorageScope.Secure, "hasSecureBiometric", backend => backend.getItem(toBiometricStorageKey(key))) !== null;
|
|
@@ -423,8 +455,10 @@ const WebStorage = {
|
|
|
423
455
|
keyIndex.delete(key);
|
|
424
456
|
}
|
|
425
457
|
});
|
|
426
|
-
const listeners =
|
|
427
|
-
keysToNotify.forEach(key =>
|
|
458
|
+
const listeners = getInternals().getScopedListeners(StorageScope.Secure);
|
|
459
|
+
keysToNotify.forEach(key => {
|
|
460
|
+
notifyKeyListeners(listeners, key);
|
|
461
|
+
});
|
|
428
462
|
}
|
|
429
463
|
};
|
|
430
464
|
function buildWebAdapter(coreInternals) {
|
|
@@ -433,7 +467,6 @@ function buildWebAdapter(coreInternals) {
|
|
|
433
467
|
backend: WebStorage,
|
|
434
468
|
changeSource: "web",
|
|
435
469
|
applyAccessControlOnSecureRawWrite: false,
|
|
436
|
-
flushDiskWritesOnImport: true,
|
|
437
470
|
ensureScopeSubscription: () => {
|
|
438
471
|
ensureExternalSyncSubscriptions();
|
|
439
472
|
},
|
|
@@ -451,14 +484,14 @@ export const storage = {
|
|
|
451
484
|
...core.storage,
|
|
452
485
|
setAccessControl: level => {
|
|
453
486
|
assertAccessControlLevel(level);
|
|
454
|
-
|
|
455
|
-
|
|
487
|
+
getInternals().setSecureDefaultAccessControl(level);
|
|
488
|
+
getInternals().recordMetric("storage:setAccessControl", StorageScope.Secure, 0);
|
|
456
489
|
},
|
|
457
490
|
setSecureWritesAsync: _enabled => {
|
|
458
|
-
|
|
491
|
+
getInternals().recordMetric("storage:setSecureWritesAsync", StorageScope.Secure, 0);
|
|
459
492
|
},
|
|
460
493
|
setKeychainAccessGroup: _group => {
|
|
461
|
-
|
|
494
|
+
getInternals().recordMetric("storage:setKeychainAccessGroup", StorageScope.Secure, 0);
|
|
462
495
|
},
|
|
463
496
|
getCapabilities: () => ({
|
|
464
497
|
platform: "web",
|
|
@@ -466,10 +499,7 @@ export const storage = {
|
|
|
466
499
|
disk: getBackendName(StorageScope.Disk, webDiskStorageBackend),
|
|
467
500
|
secure: getBackendName(StorageScope.Secure, webSecureStorageBackend)
|
|
468
501
|
},
|
|
469
|
-
writeBuffering:
|
|
470
|
-
disk: true,
|
|
471
|
-
secure: true
|
|
472
|
-
},
|
|
502
|
+
writeBuffering: resolveWebWriteBuffering(webDiskStorageBackend?.name, webSecureStorageBackend?.name),
|
|
473
503
|
errorClassification: true
|
|
474
504
|
}),
|
|
475
505
|
getSecurityCapabilities: () => {
|
|
@@ -512,15 +542,13 @@ export const createSecureAuthStorage = core.createSecureAuthStorage;
|
|
|
512
542
|
export function setWebSecureStorageBackend(backend) {
|
|
513
543
|
const previousBackend = webSecureStorageBackend;
|
|
514
544
|
const nextBackend = backend ?? createDefaultSecureBackend();
|
|
515
|
-
|
|
545
|
+
getInternals().flushSecureWrites();
|
|
516
546
|
resetBackendChangeSubscription(StorageScope.Secure);
|
|
517
547
|
webSecureStorageBackend = nextBackend;
|
|
518
548
|
hydratedWebScopeKeyIndex.delete(StorageScope.Secure);
|
|
519
|
-
|
|
549
|
+
getInternals().clearScopeRawCache(StorageScope.Secure);
|
|
520
550
|
ensureExternalSyncSubscriptions();
|
|
521
|
-
|
|
522
|
-
closeWebBackend(StorageScope.Secure, previousBackend);
|
|
523
|
-
}
|
|
551
|
+
retireWebBackend(StorageScope.Secure, previousBackend, nextBackend);
|
|
524
552
|
}
|
|
525
553
|
export function getWebSecureStorageBackend() {
|
|
526
554
|
return webSecureStorageBackend;
|
|
@@ -528,32 +556,43 @@ export function getWebSecureStorageBackend() {
|
|
|
528
556
|
export function setWebDiskStorageBackend(backend) {
|
|
529
557
|
const previousBackend = webDiskStorageBackend;
|
|
530
558
|
const nextBackend = backend ?? createDefaultDiskBackend();
|
|
531
|
-
|
|
559
|
+
getInternals().flushDiskWrites();
|
|
532
560
|
resetBackendChangeSubscription(StorageScope.Disk);
|
|
533
561
|
webDiskStorageBackend = nextBackend;
|
|
534
562
|
hydratedWebScopeKeyIndex.delete(StorageScope.Disk);
|
|
535
|
-
|
|
563
|
+
getInternals().clearScopeRawCache(StorageScope.Disk);
|
|
536
564
|
ensureExternalSyncSubscriptions();
|
|
537
|
-
|
|
538
|
-
closeWebBackend(StorageScope.Disk, previousBackend);
|
|
539
|
-
}
|
|
565
|
+
retireWebBackend(StorageScope.Disk, previousBackend, nextBackend);
|
|
540
566
|
}
|
|
541
567
|
export function getWebDiskStorageBackend() {
|
|
542
568
|
return webDiskStorageBackend;
|
|
543
569
|
}
|
|
544
570
|
export async function flushWebStorageBackends() {
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
const
|
|
548
|
-
const
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
571
|
+
getInternals().flushDiskWrites();
|
|
572
|
+
getInternals().flushSecureWrites();
|
|
573
|
+
const backends = Array.from(new Set([webDiskStorageBackend, webSecureStorageBackend, ...retiredWebBackends.keys()])).filter(backend => backend !== undefined);
|
|
574
|
+
const results = await Promise.allSettled(backends.map(async backend => {
|
|
575
|
+
if (backend.flush) {
|
|
576
|
+
await backend.flush();
|
|
577
|
+
}
|
|
578
|
+
if (!retiredWebBackends.has(backend)) {
|
|
579
|
+
return;
|
|
580
|
+
}
|
|
581
|
+
if (backend === webDiskStorageBackend || backend === webSecureStorageBackend) {
|
|
582
|
+
retiredWebBackends.delete(backend);
|
|
583
|
+
return;
|
|
584
|
+
}
|
|
585
|
+
const scope = retiredWebBackends.get(backend);
|
|
586
|
+
if (scope === undefined) {
|
|
587
|
+
return;
|
|
588
|
+
}
|
|
589
|
+
closeWebBackend(scope, backend);
|
|
590
|
+
retiredWebBackends.delete(backend);
|
|
591
|
+
}));
|
|
592
|
+
const failure = results.find(result => result.status === "rejected");
|
|
593
|
+
if (failure) {
|
|
594
|
+
throw failure.reason;
|
|
555
595
|
}
|
|
556
|
-
await Promise.all(flushes);
|
|
557
596
|
}
|
|
558
597
|
export { useSetStorage, useStorage, useStorageActions, useStorageSelector, useStorageValue } from "./storage-hooks";
|
|
559
598
|
export { createIndexedDBBackend } from "./indexeddb-backend";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["assertAccessControlLevel","assertBiometricLevel","notifyAllListeners","notifyKeyListeners","StorageScope","BiometricLevel","createLocalStorageWebBackend","createStorageCore","isKeychainLockedError","AccessControl","migrateFromMMKV","getStorageErrorCode","webScopeKeyIndex","Map","Disk","Set","Secure","hydratedWebScopeKeyIndex","SECURE_WEB_PREFIX","BIOMETRIC_WEB_PREFIX","hasWarnedAboutWebBiometricFallback","hasWindowStorageEventSubscription","internals","createDefaultDiskBackend","name","includeKey","key","startsWith","createDefaultSecureBackend","webDiskStorageBackend","webSecureStorageBackend","externalSyncUnsubscribers","getBackendName","scope","backend","scopeName","getWebSecureEncryptionStatus","createWebStorageError","operation","error","backendName","message","Error","String","withWebBackendOperation","fn","ensureExternalSyncSubscriptions","getWebBackend","toSecureStorageKey","fromSecureStorageKey","slice","length","toBiometricStorageKey","fromBiometricStorageKey","getWebScopeKeyIndex","get","hydrateWebScopeKeyIndex","has","keyIndex","clear","keys","getAllKeys","add","ensureWebScopeKeyIndex","applyExternalChangeEvent","newValue","clearScopeRawCache","getScopedListeners","plainKey","oldValue","readCachedRawValue","delete","cacheRawValue","undefined","emitKeyChange","getItem","handleWebStorageEvent","event","subscribeToBackendChanges","subscribe","unsubscribe","set","resetBackendChangeSubscription","closeWebBackend","close","window","addEventListener","WebStorage","equals","other","dispose","value","storageKey","setItem","remove","removeMany","removeItem","setBatch","values","entries","forEach","index","push","setMany","listeners","getBatch","map","storageKeys","getMany","removeBatch","flatMap","removeByPrefix","prefix","Array","from","filter","addOnChange","_scope","_callback","getKeysByPrefix","size","setSecureAccessControl","level","setSecureWritesAsync","_enabled","setKeychainAccessGroup","setSecureBiometric","setSecureBiometricWithLevel","BiometryOnly","None","__DEV__","console","warn","getSecureBiometric","deleteSecureBiometric","hasSecureBiometric","clearSecureBiometric","keysToNotify","biometricKeys","buildWebAdapter","coreInternals","changeSource","applyAccessControlOnSecureRawWrite","flushDiskWritesOnImport","ensureScopeSubscription","maybeCleanupScopeSubscription","onWillEmitChanges","getSecureMetadataProfile","encrypted","hardwareBacked","core","storage","setAccessControl","setSecureDefaultAccessControl","recordMetric","_group","getCapabilities","platform","disk","secure","writeBuffering","errorClassification","getSecurityCapabilities","secureBackend","secureStorage","accessControl","keychainAccessGroup","biometric","prompt","biometryOnly","biometryOrPasscode","metadata","perKey","listsWithoutValues","persistsTimestamps","createStorageItem","memoryItem","diskItem","secureItem","createSetItem","registerMigration","migrateToLatest","runTransaction","createSecureAuthStorage","setWebSecureStorageBackend","previousBackend","nextBackend","clearAllPendingSecureWrites","getWebSecureStorageBackend","setWebDiskStorageBackend","clearAllPendingDiskWrites","getWebDiskStorageBackend","flushWebStorageBackends","flushDiskWrites","flushSecureWrites","flushes","diskFlush","flush","secureFlush","Promise","all","useSetStorage","useStorage","useStorageActions","useStorageSelector","useStorageValue","createIndexedDBBackend"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["resolveWebWriteBuffering","unescapeCollidingRawValue","assertAccessControlLevel","assertBiometricLevel","notifyAllListeners","notifyKeyListeners","createStorageCore","StorageScope","BiometricLevel","createLocalStorageWebBackend","isKeychainLockedError","AccessControl","migrateFromMMKV","getStorageErrorCode","describeWebBackendCapabilities","isIndexedDBWebBackend","webScopeKeyIndex","Disk","Set","Secure","hydratedWebScopeKeyIndex","SECURE_WEB_PREFIX","BIOMETRIC_WEB_PREFIX","hasWarnedAboutWebBiometricFallback","hasWindowStorageEventSubscription","internals","getInternals","undefined","Error","createDefaultDiskBackend","name","includeKey","key","startsWith","createDefaultSecureBackend","webDiskStorageBackend","webSecureStorageBackend","externalSyncUnsubscribers","Map","retiredWebBackends","getBackendName","scope","backend","scopeName","getWebSecureEncryptionStatus","createWebStorageError","operation","error","backendName","message","String","withWebBackendOperation","fn","ensureExternalSyncSubscriptions","getWebBackend","toSecureStorageKey","fromSecureStorageKey","slice","length","toBiometricStorageKey","fromBiometricStorageKey","getWebScopeKeyIndex","hydrateWebScopeKeyIndex","has","keyIndex","clear","keys","getAllKeys","add","ensureWebScopeKeyIndex","applyExternalChangeEvent","newValue","clearScopeRawCache","getScopedListeners","plainKey","oldValue","readCachedRawValue","delete","cacheRawValue","emitKeyChange","getItem","handleWebStorageEvent","event","subscribeToBackendChanges","subscribe","unsubscribe","set","resetBackendChangeSubscription","get","closeWebBackend","close","retireWebBackend","previousBackend","nextBackend","flush","window","addEventListener","WebStorage","equals","other","dispose","value","storageKey","setItem","remove","removeMany","removeItem","setBatch","values","entries","forEach","index","push","setMany","listeners","getBatch","map","storageKeys","getMany","removeBatch","flatMap","removeByPrefix","prefix","Array","from","filter","addOnChange","_scope","_callback","getKeysByPrefix","size","setSecureAccessControl","level","setSecureWritesAsync","_enabled","setKeychainAccessGroup","setSecureBiometric","setSecureBiometricWithLevel","BiometryOnly","None","__DEV__","console","warn","getSecureBiometric","deleteSecureBiometric","hasSecureBiometric","clearSecureBiometric","keysToNotify","biometricKeys","buildWebAdapter","coreInternals","changeSource","applyAccessControlOnSecureRawWrite","ensureScopeSubscription","maybeCleanupScopeSubscription","onWillEmitChanges","getSecureMetadataProfile","encrypted","hardwareBacked","core","storage","setAccessControl","setSecureDefaultAccessControl","recordMetric","_group","getCapabilities","platform","disk","secure","writeBuffering","errorClassification","getSecurityCapabilities","secureBackend","secureStorage","accessControl","keychainAccessGroup","biometric","prompt","biometryOnly","biometryOrPasscode","metadata","perKey","listsWithoutValues","persistsTimestamps","createStorageItem","memoryItem","diskItem","secureItem","createSetItem","registerMigration","migrateToLatest","runTransaction","createSecureAuthStorage","setWebSecureStorageBackend","flushSecureWrites","getWebSecureStorageBackend","setWebDiskStorageBackend","flushDiskWrites","getWebDiskStorageBackend","flushWebStorageBackends","backends","results","Promise","allSettled","failure","find","result","status","reason","useSetStorage","useStorage","useStorageActions","useStorageSelector","useStorageValue","createIndexedDBBackend"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":";;AAAA,SAASA,wBAAwB,QAAQ,gBAAgB;AACzD,SAASC,yBAAyB,QAAQ,YAAY;AACtD,SACEC,wBAAwB,EACxBC,oBAAoB,EACpBC,kBAAkB,EAClBC,kBAAkB,QAEb,UAAU;AACjB,SACEC,iBAAiB,QAGZ,gBAAgB;AAMvB,SAASC,YAAY,EAAEC,cAAc,QAAQ,iBAAiB;AAC9D,SACEC,4BAA4B,QAKvB,uBAAuB;AAiB9B,SAASC,qBAAqB,QAAQ,UAAU;AAEhD,SAASH,YAAY,EAAEI,aAAa,EAAEH,cAAc,QAAQ,iBAAiB;AAC7E,SAASI,eAAe,QAAQ,aAAa;AAC7C,SACEC,mBAAmB,QAKd,mBAAmB;AAiB1B,SACEC,8BAA8B,EAC9BC,qBAAqB,QAEhB,wBAAwB;AA4C/B,MAAMC,gBAAqD,GAAG;EAC5D,CAACT,YAAY,CAACU,IAAI,GAAG,IAAIC,GAAG,CAAC,CAAC;EAC9B,CAACX,YAAY,CAACY,MAAM,GAAG,IAAID,GAAG,CAAC;AACjC,CAAC;AACD,MAAME,wBAAwB,GAAG,IAAIF,GAAG,CAAiB,CAAC;AAC1D,MAAMG,iBAAiB,GAAG,WAAW;AACrC,MAAMC,oBAAoB,GAAG,QAAQ;AACrC,IAAIC,kCAAkC,GAAG,KAAK;AAC9C,IAAIC,iCAAiC,GAAG,KAAK;AAE7C,IAAIC,SAA+B;AAEnC,SAASC,YAAYA,CAAA,EAAyB;EAC5C,IAAID,SAAS,KAAKE,SAAS,EAAE;IAC3B,MAAM,IAAIC,KAAK,CAAC,qDAAqD,CAAC;EACxE;EACA,OAAOH,SAAS;AAClB;AAEA,SAASI,wBAAwBA,CAAA,EAA0B;EACzD,OAAOpB,4BAA4B,CAAC;IAClCqB,IAAI,EAAE,mBAAmB;IACzBC,UAAU,EAAGC,GAAG,IACd,CAACA,GAAG,CAACC,UAAU,CAACZ,iBAAiB,CAAC,IAClC,CAACW,GAAG,CAACC,UAAU,CAACX,oBAAoB;EACxC,CAAC,CAAC;AACJ;AAEA,SAASY,0BAA0BA,CAAA,EAA4B;EAC7D,OAAOzB,4BAA4B,CAAC;IAClCqB,IAAI,EAAE,qBAAqB;IAC3BC,UAAU,EAAGC,GAAG,IACdA,GAAG,CAACC,UAAU,CAACZ,iBAAiB,CAAC,IAAIW,GAAG,CAACC,UAAU,CAACX,oBAAoB;EAC5E,CAAC,CAAC;AACJ;AAEA,IAAIa,qBAAwD,GAC1DN,wBAAwB,CAAC,CAAC;AAC5B,IAAIO,uBAA4D,GAC9DF,0BAA0B,CAAC,CAAC;AAC9B,MAAMG,yBAAyB,GAAG,IAAIC,GAAG,CAA6B,CAAC;AACvE,MAAMC,kBAAkB,GAAG,IAAID,GAAG,CAAoC,CAAC;AAEvE,SAASE,cAAcA,CACrBC,KAAqB,EACrBC,OAAsC,EAC9B;EACR,MAAMC,SAAS,GAAGF,KAAK,KAAKlC,YAAY,CAACU,IAAI,GAAG,MAAM,GAAG,QAAQ;EACjE,OAAOyB,OAAO,EAAEZ,IAAI,IAAI,OAAOa,SAAS,EAAE;AAC5C;AAEA,SAASC,4BAA4BA,CACnCF,OAA4C,EACjB;EAC3B,OAAOA,OAAO,EAAEZ,IAAI,KAAK,qBAAqB,GAAG,aAAa,GAAG,SAAS;AAC5E;AAEA,SAASe,qBAAqBA,CAC5BJ,KAAqB,EACrBK,SAAiB,EACjBC,KAAc,EACdL,OAAsC,EAC/B;EACP,MAAMM,WAAW,GAAGR,cAAc,CAACC,KAAK,EAAEC,OAAO,CAAC;EAClD,MAAMO,OAAO,GACXF,KAAK,YAAYnB,KAAK,GAAGmB,KAAK,CAACE,OAAO,GAAGC,MAAM,CAACH,KAAK,IAAI,eAAe,CAAC;EAC3E,OAAO,IAAInB,KAAK,CACd,sBAAsBkB,SAAS,eAAeE,WAAW,KAAKC,OAAO,EACvE,CAAC;AACH;AAEA,SAASE,uBAAuBA,CAC9BV,KAAqB,EACrBK,SAAiB,EACjBM,EAAqC,EAClC;EACH,MAAMV,OAAO,GACXD,KAAK,KAAKlC,YAAY,CAACU,IAAI,GACvBkB,qBAAqB,GACrBC,uBAAuB;EAC7B,IAAI,CAACM,OAAO,EAAE;IACZ,MAAM,IAAId,KAAK,CACb,sBAAsBkB,SAAS,sBAAsBL,KAAK,KAAKlC,YAAY,CAACU,IAAI,GAAG,MAAM,GAAG,QAAQ,yBACtG,CAAC;EACH;EAEA,IAAI;IACFoC,+BAA+B,CAAC,CAAC;IACjC,OAAOD,EAAE,CAACV,OAAO,CAAC;EACpB,CAAC,CAAC,OAAOK,KAAK,EAAE;IACd,MAAMF,qBAAqB,CAACJ,KAAK,EAAEK,SAAS,EAAEC,KAAK,EAAEL,OAAO,CAAC;EAC/D;AACF;AAEA,SAASY,aAAaA,CAACb,KAAqB,EAAiC;EAC3E,OAAOA,KAAK,KAAKlC,YAAY,CAACU,IAAI,GAC9BkB,qBAAqB,GACrBC,uBAAuB;AAC7B;AAEA,SAASmB,kBAAkBA,CAACvB,GAAW,EAAU;EAC/C,OAAO,GAAGX,iBAAiB,GAAGW,GAAG,EAAE;AACrC;AAEA,SAASwB,oBAAoBA,CAACxB,GAAW,EAAU;EACjD,OAAOA,GAAG,CAACyB,KAAK,CAACpC,iBAAiB,CAACqC,MAAM,CAAC;AAC5C;AAEA,SAASC,qBAAqBA,CAAC3B,GAAW,EAAU;EAClD,OAAO,GAAGV,oBAAoB,GAAGU,GAAG,EAAE;AACxC;AAEA,SAAS4B,uBAAuBA,CAAC5B,GAAW,EAAU;EACpD,OAAOA,GAAG,CAACyB,KAAK,CAACnC,oBAAoB,CAACoC,MAAM,CAAC;AAC/C;AAEA,SAASG,mBAAmBA,CAACpB,KAAqB,EAAe;EAC/D,OAAOzB,gBAAgB,CAACyB,KAAK,CAAC;AAChC;AAEA,SAASqB,uBAAuBA,CAACrB,KAAqB,EAAQ;EAC5D,IAAIrB,wBAAwB,CAAC2C,GAAG,CAACtB,KAAK,CAAC,EAAE;IACvC;EACF;EAEA,MAAMC,OAAO,GAAGY,aAAa,CAACb,KAAK,CAAC;EACpC,MAAMuB,QAAQ,GAAGH,mBAAmB,CAACpB,KAAK,CAAC;EAC3CuB,QAAQ,CAACC,KAAK,CAAC,CAAC;EAChB,MAAMC,IAAI,GAAGxB,OAAO,EAAEyB,UAAU,CAAC,CAAC,IAAI,EAAE;EACxC,KAAK,MAAMnC,GAAG,IAAIkC,IAAI,EAAE;IACtB,IAAIzB,KAAK,KAAKlC,YAAY,CAACU,IAAI,EAAE;MAC/B+C,QAAQ,CAACI,GAAG,CAACpC,GAAG,CAAC;MACjB;IACF;IAEA,IAAIA,GAAG,CAACC,UAAU,CAACZ,iBAAiB,CAAC,EAAE;MACrC2C,QAAQ,CAACI,GAAG,CAACZ,oBAAoB,CAACxB,GAAG,CAAC,CAAC;MACvC;IACF;IACA,IAAIA,GAAG,CAACC,UAAU,CAACX,oBAAoB,CAAC,EAAE;MACxC0C,QAAQ,CAACI,GAAG,CAACR,uBAAuB,CAAC5B,GAAG,CAAC,CAAC;IAC5C;EACF;EACAZ,wBAAwB,CAACgD,GAAG,CAAC3B,KAAK,CAAC;AACrC;AAEA,SAAS4B,sBAAsBA,CAAC5B,KAAqB,EAAe;EAClEqB,uBAAuB,CAACrB,KAAK,CAAC;EAC9B,OAAOoB,mBAAmB,CAACpB,KAAK,CAAC;AACnC;AAEA,SAAS6B,wBAAwBA,CAC/B7B,KAAqB,EACrBT,GAAkB,EAClBuC,QAAuB,EACjB;EACN,IAAIvC,GAAG,KAAK,IAAI,EAAE;IAChBN,YAAY,CAAC,CAAC,CAAC8C,kBAAkB,CAAC/B,KAAK,CAAC;IACxC4B,sBAAsB,CAAC5B,KAAK,CAAC,CAACwB,KAAK,CAAC,CAAC;IACrC7D,kBAAkB,CAACsB,YAAY,CAAC,CAAC,CAAC+C,kBAAkB,CAAChC,KAAK,CAAC,CAAC;IAC5D;EACF;EAEA,IAAIA,KAAK,KAAKlC,YAAY,CAACY,MAAM,IAAIa,GAAG,CAACC,UAAU,CAACZ,iBAAiB,CAAC,EAAE;IACtE,MAAMqD,QAAQ,GAAGlB,oBAAoB,CAACxB,GAAG,CAAC;IAC1C,MAAM2C,QAAQ,GAAGjD,YAAY,CAAC,CAAC,CAACkD,kBAAkB,CAChDrE,YAAY,CAACY,MAAM,EACnBuD,QACF,CAAC;IACD,IAAIH,QAAQ,KAAK,IAAI,EAAE;MACrBF,sBAAsB,CAAC9D,YAAY,CAACY,MAAM,CAAC,CAAC0D,MAAM,CAACH,QAAQ,CAAC;MAC5DhD,YAAY,CAAC,CAAC,CAACoD,aAAa,CAACvE,YAAY,CAACY,MAAM,EAAEuD,QAAQ,EAAE/C,SAAS,CAAC;IACxE,CAAC,MAAM;MACL0C,sBAAsB,CAAC9D,YAAY,CAACY,MAAM,CAAC,CAACiD,GAAG,CAACM,QAAQ,CAAC;MACzDhD,YAAY,CAAC,CAAC,CAACoD,aAAa,CAACvE,YAAY,CAACY,MAAM,EAAEuD,QAAQ,EAAEH,QAAQ,CAAC;IACvE;IACAlE,kBAAkB,CAChBqB,YAAY,CAAC,CAAC,CAAC+C,kBAAkB,CAAClE,YAAY,CAACY,MAAM,CAAC,EACtDuD,QACF,CAAC;IACDhD,YAAY,CAAC,CAAC,CAACqD,aAAa,CAC1BxE,YAAY,CAACY,MAAM,EACnBuD,QAAQ,EACRC,QAAQ,KAAKhD,SAAS,GAAGA,SAAS,GAAG1B,yBAAyB,CAAC0E,QAAQ,CAAC,EACxEJ,QAAQ,KAAK,IAAI,GAAG5C,SAAS,GAAG1B,yBAAyB,CAACsE,QAAQ,CAAC,EACnE,UAAU,EACV,UACF,CAAC;IACD;EACF;EAEA,IAAI9B,KAAK,KAAKlC,YAAY,CAACY,MAAM,IAAIa,GAAG,CAACC,UAAU,CAACX,oBAAoB,CAAC,EAAE;IACzE,MAAMoD,QAAQ,GAAGd,uBAAuB,CAAC5B,GAAG,CAAC;IAC7C,MAAM2C,QAAQ,GAAGjD,YAAY,CAAC,CAAC,CAACkD,kBAAkB,CAChDrE,YAAY,CAACY,MAAM,EACnBuD,QACF,CAAC;IACD,IAAIH,QAAQ,KAAK,IAAI,EAAE;MACrB,IACEpB,uBAAuB,CACrB5C,YAAY,CAACY,MAAM,EACnB,uBAAuB,EACtBuB,OAAO,IAAKA,OAAO,CAACsC,OAAO,CAACzB,kBAAkB,CAACmB,QAAQ,CAAC,CAC3D,CAAC,KAAK,IAAI,EACV;QACAL,sBAAsB,CAAC9D,YAAY,CAACY,MAAM,CAAC,CAAC0D,MAAM,CAACH,QAAQ,CAAC;MAC9D;MACAhD,YAAY,CAAC,CAAC,CAACoD,aAAa,CAACvE,YAAY,CAACY,MAAM,EAAEuD,QAAQ,EAAE/C,SAAS,CAAC;IACxE,CAAC,MAAM;MACL0C,sBAAsB,CAAC9D,YAAY,CAACY,MAAM,CAAC,CAACiD,GAAG,CAACM,QAAQ,CAAC;MACzDhD,YAAY,CAAC,CAAC,CAACoD,aAAa,CAACvE,YAAY,CAACY,MAAM,EAAEuD,QAAQ,EAAEH,QAAQ,CAAC;IACvE;IACAlE,kBAAkB,CAChBqB,YAAY,CAAC,CAAC,CAAC+C,kBAAkB,CAAClE,YAAY,CAACY,MAAM,CAAC,EACtDuD,QACF,CAAC;IACDhD,YAAY,CAAC,CAAC,CAACqD,aAAa,CAC1BxE,YAAY,CAACY,MAAM,EACnBuD,QAAQ,EACRC,QAAQ,KAAKhD,SAAS,GAAGA,SAAS,GAAG1B,yBAAyB,CAAC0E,QAAQ,CAAC,EACxEJ,QAAQ,KAAK,IAAI,GAAG5C,SAAS,GAAG1B,yBAAyB,CAACsE,QAAQ,CAAC,EACnE,UAAU,EACV,UACF,CAAC;IACD;EACF;EAEA,MAAMI,QAAQ,GAAGjD,YAAY,CAAC,CAAC,CAACkD,kBAAkB,CAACnC,KAAK,EAAET,GAAG,CAAC;EAC9D,IAAIuC,QAAQ,KAAK,IAAI,EAAE;IACrBF,sBAAsB,CAAC5B,KAAK,CAAC,CAACoC,MAAM,CAAC7C,GAAG,CAAC;IACzCN,YAAY,CAAC,CAAC,CAACoD,aAAa,CAACrC,KAAK,EAAET,GAAG,EAAEL,SAAS,CAAC;EACrD,CAAC,MAAM;IACL0C,sBAAsB,CAAC5B,KAAK,CAAC,CAAC2B,GAAG,CAACpC,GAAG,CAAC;IACtCN,YAAY,CAAC,CAAC,CAACoD,aAAa,CAACrC,KAAK,EAAET,GAAG,EAAEuC,QAAQ,CAAC;EACpD;EACAlE,kBAAkB,CAACqB,YAAY,CAAC,CAAC,CAAC+C,kBAAkB,CAAChC,KAAK,CAAC,EAAET,GAAG,CAAC;EACjEN,YAAY,CAAC,CAAC,CAACqD,aAAa,CAC1BtC,KAAK,EACLT,GAAG,EACH2C,QAAQ,KAAKhD,SAAS,GAAGA,SAAS,GAAG1B,yBAAyB,CAAC0E,QAAQ,CAAC,EACxEJ,QAAQ,KAAK,IAAI,GAAG5C,SAAS,GAAG1B,yBAAyB,CAACsE,QAAQ,CAAC,EACnE,UAAU,EACV,UACF,CAAC;AACH;AAEA,SAASU,qBAAqBA,CAACC,KAAmB,EAAQ;EACxD,MAAMlD,GAAG,GAAGkD,KAAK,CAAClD,GAAG;EACrB,IAAIA,GAAG,KAAK,IAAI,EAAE;IAChBsC,wBAAwB,CAAC/D,YAAY,CAACU,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACvDqD,wBAAwB,CAAC/D,YAAY,CAACY,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;IACzD;EACF;EAEA,IACEa,GAAG,CAACC,UAAU,CAACZ,iBAAiB,CAAC,IACjCW,GAAG,CAACC,UAAU,CAACX,oBAAoB,CAAC,EACpC;IACAgD,wBAAwB,CAAC/D,YAAY,CAACY,MAAM,EAAEa,GAAG,EAAEkD,KAAK,CAACX,QAAQ,CAAC;IAClE;EACF;EAEAD,wBAAwB,CAAC/D,YAAY,CAACU,IAAI,EAAEe,GAAG,EAAEkD,KAAK,CAACX,QAAQ,CAAC;AAClE;AAEA,SAASY,yBAAyBA,CAAC1C,KAAqB,EAAQ;EAC9D,IAAIJ,yBAAyB,CAAC0B,GAAG,CAACtB,KAAK,CAAC,EAAE;IACxC;EACF;EAEA,MAAMC,OAAO,GAAGY,aAAa,CAACb,KAAK,CAAC;EACpC,IAAI,CAACC,OAAO,EAAE0C,SAAS,EAAE;IACvB;EACF;EAEA,MAAMC,WAAW,GAAG3C,OAAO,CAAC0C,SAAS,CAAEF,KAA4B,IAAK;IACtEZ,wBAAwB,CAAC7B,KAAK,EAAEyC,KAAK,CAAClD,GAAG,EAAEkD,KAAK,CAACX,QAAQ,CAAC;EAC5D,CAAC,CAAC;EACFlC,yBAAyB,CAACiD,GAAG,CAAC7C,KAAK,EAAE4C,WAAW,CAAC;AACnD;AAEA,SAASE,8BAA8BA,CAAC9C,KAAqB,EAAQ;EACnEJ,yBAAyB,CAACmD,GAAG,CAAC/C,KAAK,CAAC,GAAG,CAAC;EACxCJ,yBAAyB,CAACwC,MAAM,CAACpC,KAAK,CAAC;AACzC;AAEA,SAASgD,eAAeA,CACtBhD,KAAqB,EACrBC,OAAsC,EAChC;EACN,IAAI,CAACA,OAAO,EAAEgD,KAAK,EAAE;IACnB;EACF;EAEA,IAAI;IACFhD,OAAO,CAACgD,KAAK,CAAC,CAAC;EACjB,CAAC,CAAC,OAAO3C,KAAK,EAAE;IACd,MAAMF,qBAAqB,CAACJ,KAAK,EAAE,OAAO,EAAEM,KAAK,EAAEL,OAAO,CAAC;EAC7D;AACF;AAEA,SAASiD,gBAAgBA,CACvBlD,KAAqB,EACrBmD,eAA8C,EAC9CC,WAA0C,EACpC;EACN,IAAI,CAACD,eAAe,IAAIA,eAAe,KAAKC,WAAW,EAAE;IACvD;EACF;EACA,IAAID,eAAe,CAACE,KAAK,EAAE;IACzBvD,kBAAkB,CAAC+C,GAAG,CAACM,eAAe,EAAEnD,KAAK,CAAC;IAC9C;EACF;EACAgD,eAAe,CAAChD,KAAK,EAAEmD,eAAe,CAAC;AACzC;AAEA,SAASvC,+BAA+BA,CAAA,EAAS;EAC/C,IACE,CAAC7B,iCAAiC,IAClC,OAAOuE,MAAM,KAAK,WAAW,IAC7B,OAAOA,MAAM,CAACC,gBAAgB,KAAK,UAAU,EAC7C;IACAD,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAEf,qBAAqB,CAAC;IACzDzD,iCAAiC,GAAG,IAAI;EAC1C;EAEA2D,yBAAyB,CAAC5E,YAAY,CAACU,IAAI,CAAC;EAC5CkE,yBAAyB,CAAC5E,YAAY,CAACY,MAAM,CAAC;AAChD;AAEA,MAAM8E,UAAmB,GAAG;EAC1BnE,IAAI,EAAE,SAAS;EACfoE,MAAM,EAAGC,KAAK,IAAKA,KAAK,KAAKF,UAAU;EACvCG,OAAO,EAAEA,CAAA,KAAM,CAAC,CAAC;EACjBd,GAAG,EAAEA,CAACtD,GAAW,EAAEqE,KAAa,EAAE5D,KAAa,KAAK;IAClD,IAAIA,KAAK,KAAKlC,YAAY,CAACU,IAAI,IAAIwB,KAAK,KAAKlC,YAAY,CAACY,MAAM,EAAE;MAChE;IACF;IACA,MAAMmF,UAAU,GACd7D,KAAK,KAAKlC,YAAY,CAACY,MAAM,GAAGoC,kBAAkB,CAACvB,GAAG,CAAC,GAAGA,GAAG;IAC/DmB,uBAAuB,CAACV,KAAK,EAAE,KAAK,EAAGC,OAAO,IAAK;MACjDA,OAAO,CAAC6D,OAAO,CAACD,UAAU,EAAED,KAAK,CAAC;IACpC,CAAC,CAAC;IACFhC,sBAAsB,CAAC5B,KAAK,CAAC,CAAC2B,GAAG,CAACpC,GAAG,CAAC;IACtC3B,kBAAkB,CAACqB,YAAY,CAAC,CAAC,CAAC+C,kBAAkB,CAAChC,KAAK,CAAC,EAAET,GAAG,CAAC;EACnE,CAAC;EACDwD,GAAG,EAAEA,CAACxD,GAAW,EAAES,KAAa,KAAK;IACnC,IAAIA,KAAK,KAAKlC,YAAY,CAACU,IAAI,IAAIwB,KAAK,KAAKlC,YAAY,CAACY,MAAM,EAAE;MAChE,OAAOQ,SAAS;IAClB;IACA,MAAM2E,UAAU,GACd7D,KAAK,KAAKlC,YAAY,CAACY,MAAM,GAAGoC,kBAAkB,CAACvB,GAAG,CAAC,GAAGA,GAAG;IAC/D,MAAMqE,KAAK,GAAGlD,uBAAuB,CAACV,KAAK,EAAE,KAAK,EAAGC,OAAO,IAC1DA,OAAO,CAACsC,OAAO,CAACsB,UAAU,CAC5B,CAAC;IACD,OAAOD,KAAK,IAAI1E,SAAS;EAC3B,CAAC;EACD6E,MAAM,EAAEA,CAACxE,GAAW,EAAES,KAAa,KAAK;IACtC,IAAIA,KAAK,KAAKlC,YAAY,CAACU,IAAI,IAAIwB,KAAK,KAAKlC,YAAY,CAACY,MAAM,EAAE;MAChE;IACF;IACA,IAAIsB,KAAK,KAAKlC,YAAY,CAACY,MAAM,EAAE;MACjCgC,uBAAuB,CAACV,KAAK,EAAE,QAAQ,EAAGC,OAAO,IAAK;QACpD,IAAIA,OAAO,CAAC+D,UAAU,EAAE;UACtB/D,OAAO,CAAC+D,UAAU,CAAC,CACjBlD,kBAAkB,CAACvB,GAAG,CAAC,EACvB2B,qBAAqB,CAAC3B,GAAG,CAAC,CAC3B,CAAC;UACF;QACF;QACAU,OAAO,CAACgE,UAAU,CAACnD,kBAAkB,CAACvB,GAAG,CAAC,CAAC;QAC3CU,OAAO,CAACgE,UAAU,CAAC/C,qBAAqB,CAAC3B,GAAG,CAAC,CAAC;MAChD,CAAC,CAAC;IACJ,CAAC,MAAM;MACLmB,uBAAuB,CAACV,KAAK,EAAE,QAAQ,EAAGC,OAAO,IAAK;QACpDA,OAAO,CAACgE,UAAU,CAAC1E,GAAG,CAAC;MACzB,CAAC,CAAC;IACJ;IACAqC,sBAAsB,CAAC5B,KAAK,CAAC,CAACoC,MAAM,CAAC7C,GAAG,CAAC;IACzC3B,kBAAkB,CAACqB,YAAY,CAAC,CAAC,CAAC+C,kBAAkB,CAAChC,KAAK,CAAC,EAAET,GAAG,CAAC;EACnE,CAAC;EACDiC,KAAK,EAAGxB,KAAa,IAAK;IACxB,IAAIA,KAAK,KAAKlC,YAAY,CAACU,IAAI,IAAIwB,KAAK,KAAKlC,YAAY,CAACY,MAAM,EAAE;MAChE;IACF;IACAgC,uBAAuB,CAACV,KAAK,EAAE,OAAO,EAAGC,OAAO,IAAK;MACnDA,OAAO,CAACuB,KAAK,CAAC,CAAC;IACjB,CAAC,CAAC;IACFI,sBAAsB,CAAC5B,KAAK,CAAC,CAACwB,KAAK,CAAC,CAAC;IACrC7D,kBAAkB,CAACsB,YAAY,CAAC,CAAC,CAAC+C,kBAAkB,CAAChC,KAAK,CAAC,CAAC;EAC9D,CAAC;EACDkE,QAAQ,EAAEA,CAACzC,IAAc,EAAE0C,MAAgB,EAAEnE,KAAa,KAAK;IAC7D,IAAIA,KAAK,KAAKlC,YAAY,CAACU,IAAI,IAAIwB,KAAK,KAAKlC,YAAY,CAACY,MAAM,EAAE;MAChE;IACF;IACA,IAAI+C,IAAI,CAACR,MAAM,KAAKkD,MAAM,CAAClD,MAAM,EAAE;MACjC,MAAM,IAAI9B,KAAK,CACb,yDACF,CAAC;IACH;IAEA,MAAMiF,OAAsC,GAAG,EAAE;IACjD3C,IAAI,CAAC4C,OAAO,CAAC,CAAC9E,GAAG,EAAE+E,KAAK,KAAK;MAC3B,MAAMV,KAAK,GAAGO,MAAM,CAACG,KAAK,CAAC;MAC3B,IAAIV,KAAK,KAAK1E,SAAS,EAAE;QACvB;MACF;MACAkF,OAAO,CAACG,IAAI,CAAC,CACXvE,KAAK,KAAKlC,YAAY,CAACY,MAAM,GAAGoC,kBAAkB,CAACvB,GAAG,CAAC,GAAGA,GAAG,EAC7DqE,KAAK,CACN,CAAC;IACJ,CAAC,CAAC;IACFlD,uBAAuB,CAACV,KAAK,EAAE,UAAU,EAAGC,OAAO,IAAK;MACtD,IAAIA,OAAO,CAACuE,OAAO,EAAE;QACnBvE,OAAO,CAACuE,OAAO,CAACJ,OAAO,CAAC;QACxB;MACF;MACAA,OAAO,CAACC,OAAO,CAAC,CAAC,CAACR,UAAU,EAAED,KAAK,CAAC,KAAK;QACvC3D,OAAO,CAAC6D,OAAO,CAACD,UAAU,EAAED,KAAK,CAAC;MACpC,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,MAAMrC,QAAQ,GAAGK,sBAAsB,CAAC5B,KAAK,CAAC;IAC9CoE,OAAO,CAACC,OAAO,CAAC,CAAC,CAACR,UAAU,CAAC,KAC3BtC,QAAQ,CAACI,GAAG,CACV3B,KAAK,KAAKlC,YAAY,CAACY,MAAM,GACzBmF,UAAU,CAAC7C,KAAK,CAACpC,iBAAiB,CAACqC,MAAM,CAAC,GAC1C4C,UACN,CACF,CAAC;IACD,MAAMY,SAAS,GAAGxF,YAAY,CAAC,CAAC,CAAC+C,kBAAkB,CAAChC,KAAK,CAAC;IAC1DyB,IAAI,CAAC4C,OAAO,CAAE9E,GAAG,IAAK;MACpB3B,kBAAkB,CAAC6G,SAAS,EAAElF,GAAG,CAAC;IACpC,CAAC,CAAC;EACJ,CAAC;EACDmF,QAAQ,EAAEA,CAACjD,IAAc,EAAEzB,KAAa,KAAK;IAC3C,IAAIA,KAAK,KAAKlC,YAAY,CAACU,IAAI,IAAIwB,KAAK,KAAKlC,YAAY,CAACY,MAAM,EAAE;MAChE,OAAO+C,IAAI,CAACkD,GAAG,CAAC,MAAMzF,SAAS,CAAC;IAClC;IACA,MAAM0F,WAAW,GAAGnD,IAAI,CAACkD,GAAG,CAAEpF,GAAG,IAC/BS,KAAK,KAAKlC,YAAY,CAACY,MAAM,GAAGoC,kBAAkB,CAACvB,GAAG,CAAC,GAAGA,GAC5D,CAAC;IACD,MAAM4E,MAAM,GAAGzD,uBAAuB,CAACV,KAAK,EAAE,UAAU,EAAGC,OAAO,IAAK;MACrE,IAAIA,OAAO,CAAC4E,OAAO,EAAE;QACnB,OAAO5E,OAAO,CAAC4E,OAAO,CAACD,WAAW,CAAC;MACrC;MACA,OAAOA,WAAW,CAACD,GAAG,CAAEd,UAAU,IAAK5D,OAAO,CAACsC,OAAO,CAACsB,UAAU,CAAC,CAAC;IACrE,CAAC,CAAC;IACF,OAAOM,MAAM,CAACQ,GAAG,CAAEf,KAAK,IAAKA,KAAK,IAAI1E,SAAS,CAAC;EAClD,CAAC;EACD4F,WAAW,EAAEA,CAACrD,IAAc,EAAEzB,KAAa,KAAK;IAC9C,IAAIA,KAAK,KAAKlC,YAAY,CAACU,IAAI,IAAIwB,KAAK,KAAKlC,YAAY,CAACY,MAAM,EAAE;MAChE;IACF;IAEA,IAAIsB,KAAK,KAAKlC,YAAY,CAACY,MAAM,EAAE;MACjC,MAAMkG,WAAW,GAAGnD,IAAI,CAACsD,OAAO,CAAExF,GAAG,IAAK,CACxCuB,kBAAkB,CAACvB,GAAG,CAAC,EACvB2B,qBAAqB,CAAC3B,GAAG,CAAC,CAC3B,CAAC;MACFmB,uBAAuB,CAACV,KAAK,EAAE,aAAa,EAAGC,OAAO,IAAK;QACzD,IAAIA,OAAO,CAAC+D,UAAU,EAAE;UACtB/D,OAAO,CAAC+D,UAAU,CAACY,WAAW,CAAC;UAC/B;QACF;QACAA,WAAW,CAACP,OAAO,CAAER,UAAU,IAAK;UAClC5D,OAAO,CAACgE,UAAU,CAACJ,UAAU,CAAC;QAChC,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,MAAM;MACLnD,uBAAuB,CAACV,KAAK,EAAE,aAAa,EAAGC,OAAO,IAAK;QACzD,IAAIA,OAAO,CAAC+D,UAAU,EAAE;UACtB/D,OAAO,CAAC+D,UAAU,CAACvC,IAAI,CAAC;UACxB;QACF;QACAA,IAAI,CAAC4C,OAAO,CAAE9E,GAAG,IAAK;UACpBU,OAAO,CAACgE,UAAU,CAAC1E,GAAG,CAAC;QACzB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;IAEA,MAAMgC,QAAQ,GAAGK,sBAAsB,CAAC5B,KAAK,CAAC;IAC9CyB,IAAI,CAAC4C,OAAO,CAAE9E,GAAG,IAAKgC,QAAQ,CAACa,MAAM,CAAC7C,GAAG,CAAC,CAAC;IAC3C,MAAMkF,SAAS,GAAGxF,YAAY,CAAC,CAAC,CAAC+C,kBAAkB,CAAChC,KAAK,CAAC;IAC1DyB,IAAI,CAAC4C,OAAO,CAAE9E,GAAG,IAAK;MACpB3B,kBAAkB,CAAC6G,SAAS,EAAElF,GAAG,CAAC;IACpC,CAAC,CAAC;EACJ,CAAC;EACDyF,cAAc,EAAEA,CAACC,MAAc,EAAEjF,KAAa,KAAK;IACjD,IAAIA,KAAK,KAAKlC,YAAY,CAACU,IAAI,IAAIwB,KAAK,KAAKlC,YAAY,CAACY,MAAM,EAAE;MAChE;IACF;IAEA,MAAM6C,QAAQ,GAAGK,sBAAsB,CAAC5B,KAAK,CAAC;IAC9C,MAAMyB,IAAI,GAAGyD,KAAK,CAACC,IAAI,CAAC5D,QAAQ,CAAC,CAAC6D,MAAM,CAAE7F,GAAG,IAAKA,GAAG,CAACC,UAAU,CAACyF,MAAM,CAAC,CAAC;IACzE,IAAIxD,IAAI,CAACR,MAAM,KAAK,CAAC,EAAE;MACrB;IACF;IAEAuC,UAAU,CAACsB,WAAW,CAACrD,IAAI,EAAEzB,KAAK,CAAC;EACrC,CAAC;EACDqF,WAAW,EAAEA,CACXC,MAAc,EACdC,SAA2D,KACxD;IACH,OAAO,MAAM,CAAC,CAAC;EACjB,CAAC;EACDjE,GAAG,EAAEA,CAAC/B,GAAW,EAAES,KAAa,KAAK;IACnC,IAAIA,KAAK,KAAKlC,YAAY,CAACU,IAAI,IAAIwB,KAAK,KAAKlC,YAAY,CAACY,MAAM,EAAE;MAChE,OAAOkD,sBAAsB,CAAC5B,KAAK,CAAC,CAACsB,GAAG,CAAC/B,GAAG,CAAC;IAC/C;IACA,OAAO,KAAK;EACd,CAAC;EACDmC,UAAU,EAAG1B,KAAa,IAAK;IAC7B,IAAIA,KAAK,KAAKlC,YAAY,CAACU,IAAI,IAAIwB,KAAK,KAAKlC,YAAY,CAACY,MAAM,EAAE;MAChE,OAAO,EAAE;IACX;IACA,OAAOwG,KAAK,CAACC,IAAI,CAACvD,sBAAsB,CAAC5B,KAAK,CAAC,CAAC;EAClD,CAAC;EACDwF,eAAe,EAAEA,CAACP,MAAc,EAAEjF,KAAa,KAAK;IAClD,IAAIA,KAAK,KAAKlC,YAAY,CAACU,IAAI,IAAIwB,KAAK,KAAKlC,YAAY,CAACY,MAAM,EAAE;MAChE,OAAO,EAAE;IACX;IACA,OAAOwG,KAAK,CAACC,IAAI,CAACvD,sBAAsB,CAAC5B,KAAK,CAAC,CAAC,CAACoF,MAAM,CAAE7F,GAAG,IAC1DA,GAAG,CAACC,UAAU,CAACyF,MAAM,CACvB,CAAC;EACH,CAAC;EACDQ,IAAI,EAAGzF,KAAa,IAAK;IACvB,IAAIA,KAAK,KAAKlC,YAAY,CAACU,IAAI,IAAIwB,KAAK,KAAKlC,YAAY,CAACY,MAAM,EAAE;MAChE,OAAOkD,sBAAsB,CAAC5B,KAAK,CAAC,CAACyF,IAAI;IAC3C;IACA,OAAO,CAAC;EACV,CAAC;EACDC,sBAAsB,EAAGC,KAAa,IAAK;IACzClI,wBAAwB,CAACkI,KAAK,CAAC;EACjC,CAAC;EACDC,oBAAoB,EAAGC,QAAiB,IAAK,CAAC,CAAC;EAC/CC,sBAAsB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAChCC,kBAAkB,EAAEA,CAACxG,GAAW,EAAEqE,KAAa,KAAK;IAClDJ,UAAU,CAACwC,2BAA2B,CACpCzG,GAAG,EACHqE,KAAK,EACL7F,cAAc,CAACkI,YACjB,CAAC;EACH,CAAC;EACDD,2BAA2B,EAAEA,CAACzG,GAAW,EAAEqE,KAAa,EAAE+B,KAAa,KAAK;IAC1EjI,oBAAoB,CAACiI,KAAK,CAAC;IAC3B,IAAIA,KAAK,KAAK5H,cAAc,CAACmI,IAAI,EAAE;MACjCxF,uBAAuB,CAAC5C,YAAY,CAACY,MAAM,EAAE,WAAW,EAAGuB,OAAO,IAAK;QACrEA,OAAO,CAACgE,UAAU,CAAC/C,qBAAqB,CAAC3B,GAAG,CAAC,CAAC;QAC9CU,OAAO,CAAC6D,OAAO,CAAChD,kBAAkB,CAACvB,GAAG,CAAC,EAAEqE,KAAK,CAAC;MACjD,CAAC,CAAC;MACFhC,sBAAsB,CAAC9D,YAAY,CAACY,MAAM,CAAC,CAACiD,GAAG,CAACpC,GAAG,CAAC;MACpD3B,kBAAkB,CAChBqB,YAAY,CAAC,CAAC,CAAC+C,kBAAkB,CAAClE,YAAY,CAACY,MAAM,CAAC,EACtDa,GACF,CAAC;MACD;IACF;IACA,IACE,OAAO4G,OAAO,KAAK,WAAW,IAC9BA,OAAO,IACP,CAACrH,kCAAkC,EACnC;MACAA,kCAAkC,GAAG,IAAI;MACzCsH,OAAO,CAACC,IAAI,CACV,+EACF,CAAC;IACH;IACA3F,uBAAuB,CACrB5C,YAAY,CAACY,MAAM,EACnB,oBAAoB,EACnBuB,OAAO,IAAK;MACXA,OAAO,CAAC6D,OAAO,CAAC5C,qBAAqB,CAAC3B,GAAG,CAAC,EAAEqE,KAAK,CAAC;MAClD3D,OAAO,CAACgE,UAAU,CAACnD,kBAAkB,CAACvB,GAAG,CAAC,CAAC;IAC7C,CACF,CAAC;IACDqC,sBAAsB,CAAC9D,YAAY,CAACY,MAAM,CAAC,CAACiD,GAAG,CAACpC,GAAG,CAAC;IACpD3B,kBAAkB,CAChBqB,YAAY,CAAC,CAAC,CAAC+C,kBAAkB,CAAClE,YAAY,CAACY,MAAM,CAAC,EACtDa,GACF,CAAC;EACH,CAAC;EACD+G,kBAAkB,EAAG/G,GAAW,IAAK;IACnC,MAAMqE,KAAK,GAAGlD,uBAAuB,CACnC5C,YAAY,CAACY,MAAM,EACnB,oBAAoB,EACnBuB,OAAO,IAAKA,OAAO,CAACsC,OAAO,CAACrB,qBAAqB,CAAC3B,GAAG,CAAC,CACzD,CAAC;IACD,OAAOqE,KAAK,IAAI1E,SAAS;EAC3B,CAAC;EACDqH,qBAAqB,EAAGhH,GAAW,IAAK;IACtCmB,uBAAuB,CACrB5C,YAAY,CAACY,MAAM,EACnB,uBAAuB,EACtBuB,OAAO,IAAK;MACXA,OAAO,CAACgE,UAAU,CAAC/C,qBAAqB,CAAC3B,GAAG,CAAC,CAAC;IAChD,CACF,CAAC;IACD,IACEmB,uBAAuB,CACrB5C,YAAY,CAACY,MAAM,EACnB,+BAA+B,EAC9BuB,OAAO,IAAKA,OAAO,CAACsC,OAAO,CAACzB,kBAAkB,CAACvB,GAAG,CAAC,CACtD,CAAC,KAAK,IAAI,EACV;MACAqC,sBAAsB,CAAC9D,YAAY,CAACY,MAAM,CAAC,CAAC0D,MAAM,CAAC7C,GAAG,CAAC;IACzD;IACA3B,kBAAkB,CAChBqB,YAAY,CAAC,CAAC,CAAC+C,kBAAkB,CAAClE,YAAY,CAACY,MAAM,CAAC,EACtDa,GACF,CAAC;EACH,CAAC;EACDiH,kBAAkB,EAAGjH,GAAW,IAAK;IACnC,OACEmB,uBAAuB,CACrB5C,YAAY,CAACY,MAAM,EACnB,oBAAoB,EACnBuB,OAAO,IAAKA,OAAO,CAACsC,OAAO,CAACrB,qBAAqB,CAAC3B,GAAG,CAAC,CACzD,CAAC,KAAK,IAAI;EAEd,CAAC;EACDkH,oBAAoB,EAAEA,CAAA,KAAM;IAC1B,MAAM7B,WAAW,GAAGlE,uBAAuB,CACzC5C,YAAY,CAACY,MAAM,EACnB,iCAAiC,EAChCuB,OAAO,IAAKA,OAAO,CAACyB,UAAU,CAAC,CAClC,CAAC;IACD,MAAMgF,YAAY,GAAG9B,WAAW,CAC7BQ,MAAM,CAAE7F,GAAG,IAAKA,GAAG,CAACC,UAAU,CAACX,oBAAoB,CAAC,CAAC,CACrD8F,GAAG,CAAEpF,GAAG,IAAK4B,uBAAuB,CAAC5B,GAAG,CAAC,CAAC;IAC7C,IAAImH,YAAY,CAACzF,MAAM,KAAK,CAAC,EAAE;MAC7B;IACF;IACAP,uBAAuB,CACrB5C,YAAY,CAACY,MAAM,EACnB,sBAAsB,EACrBuB,OAAO,IAAK;MACX,MAAM0G,aAAa,GAAGD,YAAY,CAAC/B,GAAG,CAAEpF,GAAG,IACzC2B,qBAAqB,CAAC3B,GAAG,CAC3B,CAAC;MACD,IAAIU,OAAO,CAAC+D,UAAU,EAAE;QACtB/D,OAAO,CAAC+D,UAAU,CAAC2C,aAAa,CAAC;QACjC;MACF;MACAA,aAAa,CAACtC,OAAO,CAAER,UAAU,IAAK;QACpC5D,OAAO,CAACgE,UAAU,CAACJ,UAAU,CAAC;MAChC,CAAC,CAAC;IACJ,CACF,CAAC;IACD,MAAMtC,QAAQ,GAAGK,sBAAsB,CAAC9D,YAAY,CAACY,MAAM,CAAC;IAC5DgI,YAAY,CAACrC,OAAO,CAAE9E,GAAG,IAAK;MAC5B,IACEmB,uBAAuB,CACrB5C,YAAY,CAACY,MAAM,EACnB,8BAA8B,EAC7BuB,OAAO,IAAKA,OAAO,CAACsC,OAAO,CAACzB,kBAAkB,CAACvB,GAAG,CAAC,CACtD,CAAC,KAAK,IAAI,EACV;QACAgC,QAAQ,CAACa,MAAM,CAAC7C,GAAG,CAAC;MACtB;IACF,CAAC,CAAC;IACF,MAAMkF,SAAS,GAAGxF,YAAY,CAAC,CAAC,CAAC+C,kBAAkB,CAAClE,YAAY,CAACY,MAAM,CAAC;IACxEgI,YAAY,CAACrC,OAAO,CAAE9E,GAAG,IAAK;MAC5B3B,kBAAkB,CAAC6G,SAAS,EAAElF,GAAG,CAAC;IACpC,CAAC,CAAC;EACJ;AACF,CAAC;AAED,SAASqH,eAAeA,CACtBC,aAAmC,EACf;EACpB7H,SAAS,GAAG6H,aAAa;EACzB,OAAO;IACL5G,OAAO,EAAEuD,UAAU;IACnBsD,YAAY,EAAE,KAAK;IACnBC,kCAAkC,EAAE,KAAK;IACzCC,uBAAuB,EAAEA,CAAA,KAAM;MAC7BpG,+BAA+B,CAAC,CAAC;IACnC,CAAC;IACDqG,6BAA6B,EAAEA,CAAA,KAAM,CAAC,CAAC;IACvCC,iBAAiB,EAAEA,CAAA,KAAM,CAAC,CAAC;IAC3BC,wBAAwB,EAAEA,CAAA,MAAO;MAC/BlH,OAAO,EAAEF,cAAc,CAACjC,YAAY,CAACY,MAAM,EAAEiB,uBAAuB,CAAC;MACrEyH,SAAS,EAAEjH,4BAA4B,CAACR,uBAAuB,CAAC;MAChE0H,cAAc,EAAE;IAClB,CAAC;EACH,CAAC;AACH;AAEA,MAAMC,IAAI,GAAGzJ,iBAAiB,CAAC+I,eAAe,CAAC;AAE/C,OAAO,MAAMW,OAAO,GAAG;EACrB,GAAGD,IAAI,CAACC,OAAO;EACfC,gBAAgB,EAAG7B,KAAoB,IAAK;IAC1ClI,wBAAwB,CAACkI,KAAK,CAAC;IAC/B1G,YAAY,CAAC,CAAC,CAACwI,6BAA6B,CAAC9B,KAAK,CAAC;IACnD1G,YAAY,CAAC,CAAC,CAACyI,YAAY,CACzB,0BAA0B,EAC1B5J,YAAY,CAACY,MAAM,EACnB,CACF,CAAC;EACH,CAAC;EACDkH,oBAAoB,EAAGC,QAAiB,IAAK;IAC3C5G,YAAY,CAAC,CAAC,CAACyI,YAAY,CACzB,8BAA8B,EAC9B5J,YAAY,CAACY,MAAM,EACnB,CACF,CAAC;EACH,CAAC;EACDoH,sBAAsB,EAAG6B,MAAc,IAAK;IAC1C1I,YAAY,CAAC,CAAC,CAACyI,YAAY,CACzB,gCAAgC,EAChC5J,YAAY,CAACY,MAAM,EACnB,CACF,CAAC;EACH,CAAC;EACDkJ,eAAe,EAAEA,CAAA,MAA4B;IAC3CC,QAAQ,EAAE,KAAK;IACf5H,OAAO,EAAE;MACP6H,IAAI,EAAE/H,cAAc,CAACjC,YAAY,CAACU,IAAI,EAAEkB,qBAAqB,CAAC;MAC9DqI,MAAM,EAAEhI,cAAc,CAACjC,YAAY,CAACY,MAAM,EAAEiB,uBAAuB;IACrE,CAAC;IACDqI,cAAc,EAAEzK,wBAAwB,CACtCmC,qBAAqB,EAAEL,IAAI,EAC3BM,uBAAuB,EAAEN,IAC3B,CAAC;IACD4I,mBAAmB,EAAE;EACvB,CAAC,CAAC;EACFC,uBAAuB,EAAEA,CAAA,KAA4B;IACnD,MAAMC,aAAa,GAAGpI,cAAc,CAClCjC,YAAY,CAACY,MAAM,EACnBiB,uBACF,CAAC;IACD,OAAO;MACLkI,QAAQ,EAAE,KAAK;MACfO,aAAa,EAAE;QACbnI,OAAO,EAAEkI,aAAa;QACtBf,SAAS,EAAEjH,4BAA4B,CAACR,uBAAuB,CAAC;QAChE0I,aAAa,EAAE,aAAa;QAC5BC,mBAAmB,EAAE,aAAa;QAClCjB,cAAc,EAAE;MAClB,CAAC;MACDkB,SAAS,EAAE;QACThB,OAAO,EAAE,aAAa;QACtBiB,MAAM,EAAE,aAAa;QACrBC,YAAY,EAAE,aAAa;QAC3BC,kBAAkB,EAAE;MACtB,CAAC;MACDC,QAAQ,EAAE;QACRC,MAAM,EAAE,IAAI;QACZC,kBAAkB,EAAE,IAAI;QACxBC,kBAAkB,EAAE;MACtB;IACF,CAAC;EACH;AACF,CAAC;AAED,OAAO,MAAMC,iBAAiB,GAAGzB,IAAI,CAACyB,iBAAiB;AACvD,OAAO,MAAMC,UAAU,GAAG1B,IAAI,CAAC0B,UAAU;AACzC,OAAO,MAAMC,QAAQ,GAAG3B,IAAI,CAAC2B,QAAQ;AACrC,OAAO,MAAMC,UAAU,GAAG5B,IAAI,CAAC4B,UAAU;AACzC,OAAO,MAAMC,aAAa,GAAG7B,IAAI,CAAC6B,aAAa;AAC/C,OAAO,MAAMzE,QAAQ,GAAG4C,IAAI,CAAC5C,QAAQ;AACrC,OAAO,MAAMR,QAAQ,GAAGoD,IAAI,CAACpD,QAAQ;AACrC,OAAO,MAAMY,WAAW,GAAGwC,IAAI,CAACxC,WAAW;AAC3C,OAAO,MAAMsE,iBAAiB,GAAG9B,IAAI,CAAC8B,iBAAiB;AACvD,OAAO,MAAMC,eAAe,GAAG/B,IAAI,CAAC+B,eAAe;AACnD,OAAO,MAAMC,cAAc,GAAGhC,IAAI,CAACgC,cAAc;AACjD,OAAO,MAAMC,uBAAuB,GAAGjC,IAAI,CAACiC,uBAAuB;AAEnE,OAAO,SAASC,0BAA0BA,CACxCvJ,OAAiC,EAC3B;EACN,MAAMkD,eAAe,GAAGxD,uBAAuB;EAC/C,MAAMyD,WAAW,GAAGnD,OAAO,IAAIR,0BAA0B,CAAC,CAAC;EAC3DR,YAAY,CAAC,CAAC,CAACwK,iBAAiB,CAAC,CAAC;EAClC3G,8BAA8B,CAAChF,YAAY,CAACY,MAAM,CAAC;EACnDiB,uBAAuB,GAAGyD,WAAW;EACrCzE,wBAAwB,CAACyD,MAAM,CAACtE,YAAY,CAACY,MAAM,CAAC;EACpDO,YAAY,CAAC,CAAC,CAAC8C,kBAAkB,CAACjE,YAAY,CAACY,MAAM,CAAC;EACtDkC,+BAA+B,CAAC,CAAC;EACjCsC,gBAAgB,CAACpF,YAAY,CAACY,MAAM,EAAEyE,eAAe,EAAEC,WAAW,CAAC;AACrE;AAEA,OAAO,SAASsG,0BAA0BA,CAAA,EACJ;EACpC,OAAO/J,uBAAuB;AAChC;AAEA,OAAO,SAASgK,wBAAwBA,CACtC1J,OAA+B,EACzB;EACN,MAAMkD,eAAe,GAAGzD,qBAAqB;EAC7C,MAAM0D,WAAW,GAAGnD,OAAO,IAAIb,wBAAwB,CAAC,CAAC;EACzDH,YAAY,CAAC,CAAC,CAAC2K,eAAe,CAAC,CAAC;EAChC9G,8BAA8B,CAAChF,YAAY,CAACU,IAAI,CAAC;EACjDkB,qBAAqB,GAAG0D,WAAW;EACnCzE,wBAAwB,CAACyD,MAAM,CAACtE,YAAY,CAACU,IAAI,CAAC;EAClDS,YAAY,CAAC,CAAC,CAAC8C,kBAAkB,CAACjE,YAAY,CAACU,IAAI,CAAC;EACpDoC,+BAA+B,CAAC,CAAC;EACjCsC,gBAAgB,CAACpF,YAAY,CAACU,IAAI,EAAE2E,eAAe,EAAEC,WAAW,CAAC;AACnE;AAEA,OAAO,SAASyG,wBAAwBA,CAAA,EAAsC;EAC5E,OAAOnK,qBAAqB;AAC9B;AAEA,OAAO,eAAeoK,uBAAuBA,CAAA,EAAkB;EAC7D7K,YAAY,CAAC,CAAC,CAAC2K,eAAe,CAAC,CAAC;EAChC3K,YAAY,CAAC,CAAC,CAACwK,iBAAiB,CAAC,CAAC;EAElC,MAAMM,QAAQ,GAAG7E,KAAK,CAACC,IAAI,CACzB,IAAI1G,GAAG,CAAC,CACNiB,qBAAqB,EACrBC,uBAAuB,EACvB,GAAGG,kBAAkB,CAAC2B,IAAI,CAAC,CAAC,CAC7B,CACH,CAAC,CAAC2D,MAAM,CAAEnF,OAAO,IAAmCA,OAAO,KAAKf,SAAS,CAAC;EAE1E,MAAM8K,OAAO,GAAG,MAAMC,OAAO,CAACC,UAAU,CACtCH,QAAQ,CAACpF,GAAG,CAAC,MAAO1E,OAAO,IAAK;IAC9B,IAAIA,OAAO,CAACoD,KAAK,EAAE;MACjB,MAAMpD,OAAO,CAACoD,KAAK,CAAC,CAAC;IACvB;IACA,IAAI,CAACvD,kBAAkB,CAACwB,GAAG,CAACrB,OAAO,CAAC,EAAE;MACpC;IACF;IACA,IACEA,OAAO,KAAKP,qBAAqB,IACjCO,OAAO,KAAKN,uBAAuB,EACnC;MACAG,kBAAkB,CAACsC,MAAM,CAACnC,OAAO,CAAC;MAClC;IACF;IACA,MAAMD,KAAK,GAAGF,kBAAkB,CAACiD,GAAG,CAAC9C,OAAO,CAAC;IAC7C,IAAID,KAAK,KAAKd,SAAS,EAAE;MACvB;IACF;IACA8D,eAAe,CAAChD,KAAK,EAAEC,OAAO,CAAC;IAC/BH,kBAAkB,CAACsC,MAAM,CAACnC,OAAO,CAAC;EACpC,CAAC,CACH,CAAC;EAED,MAAMkK,OAAO,GAAGH,OAAO,CAACI,IAAI,CAAEC,MAAM,IAAKA,MAAM,CAACC,MAAM,KAAK,UAAU,CAAC;EACtE,IAAIH,OAAO,EAAE;IACX,MAAMA,OAAO,CAACI,MAAM;EACtB;AACF;AAEA,SACEC,aAAa,EACbC,UAAU,EACVC,iBAAiB,EACjBC,kBAAkB,EAClBC,eAAe,QACV,iBAAiB;AACxB,SAASC,sBAAsB,QAAQ,qBAAqB","ignoreList":[]}
|