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.
Files changed (106) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +20 -9
  3. package/SECURITY.md +2 -2
  4. package/docs/api-reference.md +11 -1
  5. package/docs/batch-transactions-migrations.md +8 -2
  6. package/docs/benchmarks.md +19 -15
  7. package/docs/web-backends.md +18 -1
  8. package/ios/IOSStorageAdapterCpp.mm +162 -17
  9. package/lib/commonjs/capabilities.js +26 -0
  10. package/lib/commonjs/capabilities.js.map +1 -0
  11. package/lib/commonjs/core/durability.js +137 -0
  12. package/lib/commonjs/core/durability.js.map +1 -0
  13. package/lib/commonjs/core/metrics.js +91 -0
  14. package/lib/commonjs/core/metrics.js.map +1 -0
  15. package/lib/commonjs/index.js +47 -22
  16. package/lib/commonjs/index.js.map +1 -1
  17. package/lib/commonjs/index.web.js +118 -66
  18. package/lib/commonjs/index.web.js.map +1 -1
  19. package/lib/commonjs/indexeddb-backend.js +73 -23
  20. package/lib/commonjs/indexeddb-backend.js.map +1 -1
  21. package/lib/commonjs/internal.js +27 -4
  22. package/lib/commonjs/internal.js.map +1 -1
  23. package/lib/commonjs/shared.js +2 -2
  24. package/lib/commonjs/shared.js.map +1 -1
  25. package/lib/commonjs/storage-core.js +217 -233
  26. package/lib/commonjs/storage-core.js.map +1 -1
  27. package/lib/commonjs/storage-events.js.map +1 -1
  28. package/lib/commonjs/storage-platform.js +6 -0
  29. package/lib/commonjs/storage-platform.js.map +1 -0
  30. package/lib/commonjs/storage-runtime.js +3 -21
  31. package/lib/commonjs/storage-runtime.js.map +1 -1
  32. package/lib/commonjs/testing.js +19 -4
  33. package/lib/commonjs/testing.js.map +1 -1
  34. package/lib/commonjs/web-backend-contract.js +27 -0
  35. package/lib/commonjs/web-backend-contract.js.map +1 -0
  36. package/lib/module/capabilities.js +21 -0
  37. package/lib/module/capabilities.js.map +1 -0
  38. package/lib/module/core/durability.js +133 -0
  39. package/lib/module/core/durability.js.map +1 -0
  40. package/lib/module/core/metrics.js +87 -0
  41. package/lib/module/core/metrics.js.map +1 -0
  42. package/lib/module/index.js +48 -23
  43. package/lib/module/index.js.map +1 -1
  44. package/lib/module/index.web.js +103 -64
  45. package/lib/module/index.web.js.map +1 -1
  46. package/lib/module/indexeddb-backend.js +73 -23
  47. package/lib/module/indexeddb-backend.js.map +1 -1
  48. package/lib/module/internal.js +24 -3
  49. package/lib/module/internal.js.map +1 -1
  50. package/lib/module/shared.js +2 -2
  51. package/lib/module/shared.js.map +1 -1
  52. package/lib/module/storage-core.js +218 -234
  53. package/lib/module/storage-core.js.map +1 -1
  54. package/lib/module/storage-events.js.map +1 -1
  55. package/lib/module/storage-platform.js +4 -0
  56. package/lib/module/storage-platform.js.map +1 -0
  57. package/lib/module/storage-runtime.js +3 -21
  58. package/lib/module/storage-runtime.js.map +1 -1
  59. package/lib/module/testing.js +5 -3
  60. package/lib/module/testing.js.map +1 -1
  61. package/lib/module/web-backend-contract.js +22 -0
  62. package/lib/module/web-backend-contract.js.map +1 -0
  63. package/lib/typescript/capabilities.d.ts +11 -0
  64. package/lib/typescript/capabilities.d.ts.map +1 -0
  65. package/lib/typescript/core/durability.d.ts +27 -0
  66. package/lib/typescript/core/durability.d.ts.map +1 -0
  67. package/lib/typescript/core/metrics.d.ts +12 -0
  68. package/lib/typescript/core/metrics.d.ts.map +1 -0
  69. package/lib/typescript/index.d.ts +5 -2
  70. package/lib/typescript/index.d.ts.map +1 -1
  71. package/lib/typescript/index.web.d.ts +8 -4
  72. package/lib/typescript/index.web.d.ts.map +1 -1
  73. package/lib/typescript/indexeddb-backend.d.ts.map +1 -1
  74. package/lib/typescript/internal.d.ts +3 -0
  75. package/lib/typescript/internal.d.ts.map +1 -1
  76. package/lib/typescript/shared.d.ts +2 -1
  77. package/lib/typescript/shared.d.ts.map +1 -1
  78. package/lib/typescript/storage-core.d.ts +3 -3
  79. package/lib/typescript/storage-core.d.ts.map +1 -1
  80. package/lib/typescript/storage-events.d.ts +2 -2
  81. package/lib/typescript/storage-events.d.ts.map +1 -1
  82. package/lib/typescript/storage-platform.d.ts +12 -0
  83. package/lib/typescript/storage-platform.d.ts.map +1 -0
  84. package/lib/typescript/storage-runtime.d.ts.map +1 -1
  85. package/lib/typescript/testing.d.ts +5 -1
  86. package/lib/typescript/testing.d.ts.map +1 -1
  87. package/lib/typescript/web-backend-contract.d.ts +10 -0
  88. package/lib/typescript/web-backend-contract.d.ts.map +1 -0
  89. package/lib/typescript/web-storage-backend.d.ts +1 -1
  90. package/lib/typescript/web-storage-backend.d.ts.map +1 -1
  91. package/package.json +3 -2
  92. package/src/capabilities.ts +36 -0
  93. package/src/core/durability.ts +170 -0
  94. package/src/core/metrics.ts +133 -0
  95. package/src/index.ts +66 -40
  96. package/src/index.web.ts +158 -86
  97. package/src/indexeddb-backend.ts +91 -20
  98. package/src/internal.ts +50 -4
  99. package/src/shared.ts +7 -6
  100. package/src/storage-core.ts +317 -285
  101. package/src/storage-events.ts +2 -1
  102. package/src/storage-platform.ts +16 -0
  103. package/src/storage-runtime.ts +13 -47
  104. package/src/testing.ts +14 -7
  105. package/src/web-backend-contract.ts +34 -0
  106. package/src/web-storage-backend.ts +1 -1
@@ -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
- const webScopeKeyIndex = new Map([[StorageScope.Disk, new Set()], [StorageScope.Secure, new Set()]]);
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.get(scope);
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
- internals.clearScopeRawCache(scope);
117
+ getInternals().clearScopeRawCache(scope);
105
118
  ensureWebScopeKeyIndex(scope).clear();
106
- notifyAllListeners(internals.getScopedListeners(scope));
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 = internals.readCachedRawValue(StorageScope.Secure, plainKey);
124
+ const oldValue = getInternals().readCachedRawValue(StorageScope.Secure, plainKey);
112
125
  if (newValue === null) {
113
126
  ensureWebScopeKeyIndex(StorageScope.Secure).delete(plainKey);
114
- internals.cacheRawValue(StorageScope.Secure, plainKey, undefined);
127
+ getInternals().cacheRawValue(StorageScope.Secure, plainKey, undefined);
115
128
  } else {
116
129
  ensureWebScopeKeyIndex(StorageScope.Secure).add(plainKey);
117
- internals.cacheRawValue(StorageScope.Secure, plainKey, newValue);
130
+ getInternals().cacheRawValue(StorageScope.Secure, plainKey, newValue);
118
131
  }
119
- notifyKeyListeners(internals.getScopedListeners(StorageScope.Secure), plainKey);
120
- internals.emitKeyChange(StorageScope.Secure, plainKey, oldValue, newValue ?? undefined, "external", "external");
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 = internals.readCachedRawValue(StorageScope.Secure, plainKey);
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
- internals.cacheRawValue(StorageScope.Secure, plainKey, undefined);
143
+ getInternals().cacheRawValue(StorageScope.Secure, plainKey, undefined);
131
144
  } else {
132
145
  ensureWebScopeKeyIndex(StorageScope.Secure).add(plainKey);
133
- internals.cacheRawValue(StorageScope.Secure, plainKey, newValue);
146
+ getInternals().cacheRawValue(StorageScope.Secure, plainKey, newValue);
134
147
  }
135
- notifyKeyListeners(internals.getScopedListeners(StorageScope.Secure), plainKey);
136
- internals.emitKeyChange(StorageScope.Secure, plainKey, oldValue, newValue ?? undefined, "external", "external");
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 = internals.readCachedRawValue(scope, key);
152
+ const oldValue = getInternals().readCachedRawValue(scope, key);
140
153
  if (newValue === null) {
141
154
  ensureWebScopeKeyIndex(scope).delete(key);
142
- internals.cacheRawValue(scope, key, undefined);
155
+ getInternals().cacheRawValue(scope, key, undefined);
143
156
  } else {
144
157
  ensureWebScopeKeyIndex(scope).add(key);
145
- internals.cacheRawValue(scope, key, newValue);
158
+ getInternals().cacheRawValue(scope, key, newValue);
146
159
  }
147
- notifyKeyListeners(internals.getScopedListeners(scope), key);
148
- internals.emitKeyChange(scope, key, oldValue, newValue ?? undefined, "external", "external");
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(internals.getScopedListeners(scope), key);
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(internals.getScopedListeners(scope), key);
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(internals.getScopedListeners(scope));
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 = internals.getScopedListeners(scope);
279
- keys.forEach(key => notifyKeyListeners(listeners, 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 = internals.getScopedListeners(scope);
323
- keys.forEach(key => notifyKeyListeners(listeners, 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(internals.getScopedListeners(StorageScope.Secure), key);
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 => backend.setItem(toBiometricStorageKey(key), value));
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(internals.getScopedListeners(StorageScope.Secure), key);
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 => backend.removeItem(toBiometricStorageKey(key)));
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(internals.getScopedListeners(StorageScope.Secure), key);
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 = internals.getScopedListeners(StorageScope.Secure);
427
- keysToNotify.forEach(key => notifyKeyListeners(listeners, 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
- internals.setSecureDefaultAccessControl(level);
455
- internals.recordMetric("storage:setAccessControl", StorageScope.Secure, 0);
487
+ getInternals().setSecureDefaultAccessControl(level);
488
+ getInternals().recordMetric("storage:setAccessControl", StorageScope.Secure, 0);
456
489
  },
457
490
  setSecureWritesAsync: _enabled => {
458
- internals.recordMetric("storage:setSecureWritesAsync", StorageScope.Secure, 0);
491
+ getInternals().recordMetric("storage:setSecureWritesAsync", StorageScope.Secure, 0);
459
492
  },
460
493
  setKeychainAccessGroup: _group => {
461
- internals.recordMetric("storage:setKeychainAccessGroup", StorageScope.Secure, 0);
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
- internals.clearAllPendingSecureWrites();
545
+ getInternals().flushSecureWrites();
516
546
  resetBackendChangeSubscription(StorageScope.Secure);
517
547
  webSecureStorageBackend = nextBackend;
518
548
  hydratedWebScopeKeyIndex.delete(StorageScope.Secure);
519
- internals.clearScopeRawCache(StorageScope.Secure);
549
+ getInternals().clearScopeRawCache(StorageScope.Secure);
520
550
  ensureExternalSyncSubscriptions();
521
- if (previousBackend !== nextBackend) {
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
- internals.clearAllPendingDiskWrites();
559
+ getInternals().flushDiskWrites();
532
560
  resetBackendChangeSubscription(StorageScope.Disk);
533
561
  webDiskStorageBackend = nextBackend;
534
562
  hydratedWebScopeKeyIndex.delete(StorageScope.Disk);
535
- internals.clearScopeRawCache(StorageScope.Disk);
563
+ getInternals().clearScopeRawCache(StorageScope.Disk);
536
564
  ensureExternalSyncSubscriptions();
537
- if (previousBackend !== nextBackend) {
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
- internals.flushDiskWrites();
546
- internals.flushSecureWrites();
547
- const flushes = [];
548
- const diskFlush = webDiskStorageBackend?.flush;
549
- const secureFlush = webSecureStorageBackend?.flush;
550
- if (diskFlush) {
551
- flushes.push(diskFlush());
552
- }
553
- if (secureFlush) {
554
- flushes.push(secureFlush());
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":[]}