react-native-nitro-storage 0.4.0 → 0.4.3

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 (41) hide show
  1. package/README.md +90 -0
  2. package/android/build.gradle +0 -12
  3. package/android/consumer-rules.pro +26 -4
  4. package/android/src/main/cpp/AndroidStorageAdapterCpp.cpp +7 -10
  5. package/android/src/main/cpp/AndroidStorageAdapterCpp.hpp +0 -4
  6. package/android/src/main/cpp/cpp-adapter.cpp +3 -1
  7. package/android/src/main/java/com/nitrostorage/AndroidStorageAdapter.kt +172 -77
  8. package/cpp/bindings/HybridStorage.cpp +120 -69
  9. package/cpp/bindings/HybridStorage.hpp +4 -0
  10. package/ios/IOSStorageAdapterCpp.hpp +2 -1
  11. package/ios/IOSStorageAdapterCpp.mm +264 -49
  12. package/lib/commonjs/index.js +128 -20
  13. package/lib/commonjs/index.js.map +1 -1
  14. package/lib/commonjs/index.web.js +169 -41
  15. package/lib/commonjs/index.web.js.map +1 -1
  16. package/lib/commonjs/indexeddb-backend.js +130 -0
  17. package/lib/commonjs/indexeddb-backend.js.map +1 -0
  18. package/lib/commonjs/internal.js +51 -23
  19. package/lib/commonjs/internal.js.map +1 -1
  20. package/lib/module/index.js +121 -20
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/index.web.js +162 -41
  23. package/lib/module/index.web.js.map +1 -1
  24. package/lib/module/indexeddb-backend.js +126 -0
  25. package/lib/module/indexeddb-backend.js.map +1 -0
  26. package/lib/module/internal.js +51 -23
  27. package/lib/module/internal.js.map +1 -1
  28. package/lib/typescript/index.d.ts +6 -0
  29. package/lib/typescript/index.d.ts.map +1 -1
  30. package/lib/typescript/index.web.d.ts +7 -1
  31. package/lib/typescript/index.web.d.ts.map +1 -1
  32. package/lib/typescript/indexeddb-backend.d.ts +29 -0
  33. package/lib/typescript/indexeddb-backend.d.ts.map +1 -0
  34. package/lib/typescript/internal.d.ts.map +1 -1
  35. package/nitrogen/generated/android/NitroStorageOnLoad.cpp +22 -17
  36. package/nitrogen/generated/android/NitroStorageOnLoad.hpp +13 -4
  37. package/package.json +7 -3
  38. package/src/index.ts +137 -27
  39. package/src/index.web.ts +182 -49
  40. package/src/indexeddb-backend.ts +143 -0
  41. package/src/internal.ts +51 -23
@@ -21,10 +21,17 @@ Object.defineProperty(exports, "StorageScope", {
21
21
  return _Storage.StorageScope;
22
22
  }
23
23
  });
24
+ Object.defineProperty(exports, "createIndexedDBBackend", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _indexeddbBackend.createIndexedDBBackend;
28
+ }
29
+ });
24
30
  exports.createSecureAuthStorage = createSecureAuthStorage;
25
31
  exports.createStorageItem = createStorageItem;
26
32
  exports.getBatch = getBatch;
27
33
  exports.getWebSecureStorageBackend = getWebSecureStorageBackend;
34
+ exports.isKeychainLockedError = isKeychainLockedError;
28
35
  Object.defineProperty(exports, "migrateFromMMKV", {
29
36
  enumerable: true,
30
37
  get: function () {
@@ -61,6 +68,7 @@ var _Storage = require("./Storage.types");
61
68
  var _internal = require("./internal");
62
69
  var _migration = require("./migration");
63
70
  var _storageHooks = require("./storage-hooks");
71
+ var _indexeddbBackend = require("./indexeddb-backend");
64
72
  function asInternal(item) {
65
73
  return item;
66
74
  }
@@ -112,6 +120,9 @@ function recordMetric(operation, scope, durationMs, keysCount = 1) {
112
120
  });
113
121
  }
114
122
  function measureOperation(operation, scope, fn, keysCount = 1) {
123
+ if (!metricsObserver) {
124
+ return fn();
125
+ }
115
126
  const start = Date.now();
116
127
  try {
117
128
  return fn();
@@ -138,12 +149,19 @@ function clearScopeRawCache(scope) {
138
149
  getScopeRawCache(scope).clear();
139
150
  }
140
151
  function notifyKeyListeners(registry, key) {
141
- registry.get(key)?.forEach(listener => listener());
152
+ const listeners = registry.get(key);
153
+ if (listeners) {
154
+ for (const listener of listeners) {
155
+ listener();
156
+ }
157
+ }
142
158
  }
143
159
  function notifyAllListeners(registry) {
144
- registry.forEach(listeners => {
145
- listeners.forEach(listener => listener());
146
- });
160
+ for (const listeners of registry.values()) {
161
+ for (const listener of listeners) {
162
+ listener();
163
+ }
164
+ }
147
165
  }
148
166
  function addKeyListener(registry, key, listener) {
149
167
  let listeners = registry.get(key);
@@ -350,7 +368,12 @@ const storage = exports.storage = {
350
368
  if (scope === _Storage.StorageScope.Secure) {
351
369
  flushSecureWrites();
352
370
  }
353
- clearScopeRawCache(scope);
371
+ const scopeCache = getScopeRawCache(scope);
372
+ for (const key of scopeCache.keys()) {
373
+ if ((0, _internal.isNamespaced)(key, namespace)) {
374
+ scopeCache.delete(key);
375
+ }
376
+ }
354
377
  getStorageModule().removeByPrefix(keyPrefix, scope);
355
378
  });
356
379
  },
@@ -479,6 +502,42 @@ const storage = exports.storage = {
479
502
  },
480
503
  resetMetrics: () => {
481
504
  metricsCounters.clear();
505
+ },
506
+ getString: (key, scope) => {
507
+ return measureOperation("storage:getString", scope, () => {
508
+ return getRawValue(key, scope);
509
+ });
510
+ },
511
+ setString: (key, value, scope) => {
512
+ measureOperation("storage:setString", scope, () => {
513
+ setRawValue(key, value, scope);
514
+ });
515
+ },
516
+ deleteString: (key, scope) => {
517
+ measureOperation("storage:deleteString", scope, () => {
518
+ removeRawValue(key, scope);
519
+ });
520
+ },
521
+ import: (data, scope) => {
522
+ const keys = Object.keys(data);
523
+ measureOperation("storage:import", scope, () => {
524
+ (0, _internal.assertValidScope)(scope);
525
+ if (keys.length === 0) return;
526
+ const values = keys.map(k => data[k]);
527
+ if (scope === _Storage.StorageScope.Memory) {
528
+ keys.forEach((key, index) => {
529
+ memoryStore.set(key, values[index]);
530
+ });
531
+ keys.forEach(key => notifyKeyListeners(memoryListeners, key));
532
+ return;
533
+ }
534
+ if (scope === _Storage.StorageScope.Secure) {
535
+ flushSecureWrites();
536
+ getStorageModule().setSecureAccessControl(secureDefaultAccessControl);
537
+ }
538
+ getStorageModule().setBatch(keys, values, scope);
539
+ keys.forEach((key, index) => cacheRawValue(scope, key, values[index]));
540
+ }, keys.length);
482
541
  }
483
542
  };
484
543
  function setWebSecureStorageBackend(_backend) {
@@ -561,12 +620,17 @@ function createStorageItem(config) {
561
620
  }
562
621
  return memoryStore.get(storageKey);
563
622
  }
564
- if (nonMemoryScope === _Storage.StorageScope.Secure && !isBiometric && hasPendingSecureWrite(storageKey)) {
565
- return readPendingSecureWrite(storageKey);
623
+ if (nonMemoryScope === _Storage.StorageScope.Secure && !isBiometric) {
624
+ const pending = pendingSecureWrites.get(storageKey);
625
+ if (pending !== undefined) {
626
+ return pending.value;
627
+ }
566
628
  }
567
629
  if (readCache) {
568
- if (hasCachedRawValue(nonMemoryScope, storageKey)) {
569
- return readCachedRawValue(nonMemoryScope, storageKey);
630
+ const cache = getScopeRawCache(nonMemoryScope);
631
+ const cached = cache.get(storageKey);
632
+ if (cached !== undefined || cache.has(storageKey)) {
633
+ return cached;
570
634
  }
571
635
  }
572
636
  if (isBiometric) {
@@ -662,6 +726,7 @@ function createStorageItem(config) {
662
726
  onExpired?.(storageKey);
663
727
  lastValue = ensureValidatedValue(defaultValue, false);
664
728
  hasLastValue = true;
729
+ listeners.forEach(cb => cb());
665
730
  return lastValue;
666
731
  }
667
732
  }
@@ -697,6 +762,7 @@ function createStorageItem(config) {
697
762
  onExpired?.(storageKey);
698
763
  lastValue = ensureValidatedValue(defaultValue, false);
699
764
  hasLastValue = true;
765
+ listeners.forEach(cb => cb());
700
766
  return lastValue;
701
767
  }
702
768
  deserializableRaw = parsed.payload;
@@ -724,10 +790,10 @@ function createStorageItem(config) {
724
790
  const set = valueOrFn => {
725
791
  measureOperation("item:set", config.scope, () => {
726
792
  const newValue = isUpdater(valueOrFn) ? valueOrFn(getInternal()) : valueOrFn;
727
- invalidateParsedCache();
728
793
  if (validate && !validate(newValue)) {
729
794
  throw new Error(`Validation failed for key "${storageKey}" in scope "${_Storage.StorageScope[config.scope]}".`);
730
795
  }
796
+ invalidateParsedCache();
731
797
  writeValueWithoutValidation(newValue);
732
798
  });
733
799
  };
@@ -786,6 +852,9 @@ function createStorageItem(config) {
786
852
  invalidateParsedCache();
787
853
  listeners.forEach(listener => listener());
788
854
  },
855
+ _invalidateParsedCacheOnly: () => {
856
+ invalidateParsedCache();
857
+ },
789
858
  _hasValidation: validate !== undefined,
790
859
  _hasExpiration: expiration !== undefined,
791
860
  _readCacheEnabled: readCache,
@@ -814,14 +883,17 @@ function getBatch(items, scope) {
814
883
  const keyIndexes = [];
815
884
  items.forEach((item, index) => {
816
885
  if (scope === _Storage.StorageScope.Secure) {
817
- if (hasPendingSecureWrite(item.key)) {
818
- rawValues[index] = readPendingSecureWrite(item.key);
886
+ const pending = pendingSecureWrites.get(item.key);
887
+ if (pending !== undefined) {
888
+ rawValues[index] = pending.value;
819
889
  return;
820
890
  }
821
891
  }
822
892
  if (item._readCacheEnabled === true) {
823
- if (hasCachedRawValue(scope, item.key)) {
824
- rawValues[index] = readCachedRawValue(scope, item.key);
893
+ const cache = getScopeRawCache(scope);
894
+ const cached = cache.get(item.key);
895
+ if (cached !== undefined || cache.has(item.key)) {
896
+ rawValues[index] = cached;
825
897
  return;
826
898
  }
827
899
  }
@@ -853,10 +925,33 @@ function setBatch(items, scope) {
853
925
  measureOperation("batch:set", scope, () => {
854
926
  (0, _internal.assertBatchScope)(items.map(batchEntry => batchEntry.item), scope);
855
927
  if (scope === _Storage.StorageScope.Memory) {
928
+ // Determine if any item needs per-item handling (validation or TTL)
929
+ const needsIndividualSets = items.some(({
930
+ item
931
+ }) => {
932
+ const internal = asInternal(item);
933
+ return internal._hasValidation || internal._hasExpiration;
934
+ });
935
+ if (needsIndividualSets) {
936
+ // Fall back to individual sets to preserve validation and TTL semantics
937
+ items.forEach(({
938
+ item,
939
+ value
940
+ }) => item.set(value));
941
+ return;
942
+ }
943
+
944
+ // Atomic write: update all values in memoryStore, invalidate caches, then batch-notify
856
945
  items.forEach(({
857
946
  item,
858
947
  value
859
- }) => item.set(value));
948
+ }) => {
949
+ memoryStore.set(item.key, value);
950
+ asInternal(item)._invalidateParsedCacheOnly();
951
+ });
952
+ items.forEach(({
953
+ item
954
+ }) => notifyKeyListeners(memoryListeners, item.key));
860
955
  return;
861
956
  }
862
957
  if (scope === _Storage.StorageScope.Secure) {
@@ -963,9 +1058,11 @@ function migrateToLatest(scope = _Storage.StorageScope.Disk) {
963
1058
  return;
964
1059
  }
965
1060
  migration(context);
966
- writeMigrationVersion(scope, version);
967
1061
  appliedVersion = version;
968
1062
  });
1063
+ if (appliedVersion !== currentVersion) {
1064
+ writeMigrationVersion(scope, appliedVersion);
1065
+ }
969
1066
  return appliedVersion;
970
1067
  });
971
1068
  }
@@ -975,12 +1072,17 @@ function runTransaction(scope, transaction) {
975
1072
  if (scope === _Storage.StorageScope.Secure) {
976
1073
  flushSecureWrites();
977
1074
  }
1075
+ const NOT_SET = Symbol();
978
1076
  const rollback = new Map();
979
1077
  const rememberRollback = key => {
980
1078
  if (rollback.has(key)) {
981
1079
  return;
982
1080
  }
983
- rollback.set(key, getRawValue(key, scope));
1081
+ if (scope === _Storage.StorageScope.Memory) {
1082
+ rollback.set(key, memoryStore.has(key) ? memoryStore.get(key) : NOT_SET);
1083
+ } else {
1084
+ rollback.set(key, getRawValue(key, scope));
1085
+ }
984
1086
  };
985
1087
  const tx = {
986
1088
  scope,
@@ -1014,11 +1116,12 @@ function runTransaction(scope, transaction) {
1014
1116
  const rollbackEntries = Array.from(rollback.entries()).reverse();
1015
1117
  if (scope === _Storage.StorageScope.Memory) {
1016
1118
  rollbackEntries.forEach(([key, previousValue]) => {
1017
- if (previousValue === undefined) {
1018
- removeRawValue(key, scope);
1119
+ if (previousValue === NOT_SET) {
1120
+ memoryStore.delete(key);
1019
1121
  } else {
1020
- setRawValue(key, previousValue, scope);
1122
+ memoryStore.set(key, previousValue);
1021
1123
  }
1124
+ notifyKeyListeners(memoryListeners, key);
1022
1125
  });
1023
1126
  } else {
1024
1127
  const keysToSet = [];
@@ -1048,6 +1151,11 @@ function runTransaction(scope, transaction) {
1048
1151
  }
1049
1152
  });
1050
1153
  }
1154
+ function isKeychainLockedError(err) {
1155
+ if (!(err instanceof Error)) return false;
1156
+ const msg = err.message;
1157
+ return msg.includes("errSecInteractionNotAllowed") || msg.includes("UserNotAuthenticatedException") || msg.includes("KeyStoreException") || msg.includes("KeyPermanentlyInvalidatedException") || msg.includes("InvalidKeyException") || msg.includes("android.security.keystore");
1158
+ }
1051
1159
  function createSecureAuthStorage(config, options) {
1052
1160
  const ns = options?.namespace ?? "auth";
1053
1161
  const result = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","_Storage","_internal","_migration","_storageHooks","asInternal","item","isUpdater","valueOrFn","typedKeys","record","Object","keys","registeredMigrations","Map","runMicrotask","queueMicrotask","task","Promise","resolve","then","_storageModule","getStorageModule","NitroModules","createHybridObject","memoryStore","memoryListeners","scopedListeners","StorageScope","Disk","Secure","scopedUnsubscribers","scopedRawCache","pendingSecureWrites","secureFlushScheduled","secureDefaultAccessControl","AccessControl","WhenUnlocked","metricsObserver","metricsCounters","recordMetric","operation","scope","durationMs","keysCount","existing","get","set","count","totalDurationMs","maxDurationMs","Math","max","measureOperation","fn","start","Date","now","getScopedListeners","getScopeRawCache","cacheRawValue","key","value","readCachedRawValue","hasCachedRawValue","has","clearScopeRawCache","clear","notifyKeyListeners","registry","forEach","listener","notifyAllListeners","listeners","addKeyListener","Set","add","delete","size","readPendingSecureWrite","hasPendingSecureWrite","clearPendingSecureWrite","flushSecureWrites","writes","Array","from","values","groupedSetWrites","keysToRemove","accessControl","undefined","push","resolvedAccessControl","existingGroup","group","storageModule","setSecureAccessControl","setBatch","length","removeBatch","scheduleSecureWrite","pendingWrite","ensureNativeScopeSubscription","unsubscribe","addOnChange","maybeCleanupNativeScopeSubscription","getRawValue","assertValidScope","Memory","setRawValue","removeRawValue","remove","readMigrationVersion","raw","MIGRATION_VERSION_KEY","parsed","Number","parseInt","isFinite","writeMigrationVersion","version","String","storage","exports","clearAll","clearNamespace","namespace","isNamespaced","keyPrefix","prefixKey","removeByPrefix","clearBiometric","clearSecureBiometric","getAllKeys","getKeysByPrefix","prefix","filter","startsWith","getByPrefix","result","getBatch","idx","decodeNativeBatchValue","getAll","val","setAccessControl","level","setSecureWritesAsync","enabled","setKeychainAccessGroup","setMetricsObserver","observer","getMetricsSnapshot","snapshot","avgDurationMs","resetMetrics","setWebSecureStorageBackend","_backend","getWebSecureStorageBackend","canUseRawBatchPath","_hasExpiration","_hasValidation","_isBiometric","_secureAccessControl","canUseSecureRawBatchPath","defaultSerialize","serializeWithPrimitiveFastPath","defaultDeserialize","deserializeWithPrimitiveFastPath","createStorageItem","config","storageKey","serialize","deserialize","isMemory","resolvedBiometricLevel","biometricLevel","biometric","BiometricLevel","BiometryOnly","None","isBiometric","secureAccessControl","validate","onValidationError","expiration","onExpired","expirationTtlMs","ttlMs","memoryExpiration","readCache","coalesceSecureWrites","defaultValue","nonMemoryScope","Error","lastRaw","lastValue","hasLastValue","lastExpiresAt","invalidateParsedCache","ensureSubscription","callback","readStoredRaw","expiresAt","getSecureBiometric","writeStoredRaw","rawValue","setSecureBiometricWithLevel","removeStoredRaw","deleteSecureBiometric","writeValueWithoutValidation","serialized","envelope","__nitroStorageEnvelope","payload","JSON","stringify","resolveInvalidValue","invalidValue","ensureValidatedValue","candidate","hadStoredValue","resolved","getInternal","deserializableRaw","envelopeExpiresAt","parse","isStoredEnvelope","getCurrentVersion","toVersionToken","getWithVersion","newValue","setIfVersion","currentVersion","deleteItem","hasItem","hasSecureBiometric","subscribe","storageItem","_triggerListeners","_readCacheEnabled","_defaultValue","items","assertBatchScope","map","useRawBatchPath","every","rawValues","keysToFetch","keyIndexes","index","fetchedValues","targetIndex","batchEntry","secureEntries","internal","canUseSecureBatchPath","groupedByAccessControl","entry","registerMigration","migration","isInteger","migrateToLatest","versions","sort","a","b","appliedVersion","context","getRaw","setRaw","removeRaw","runTransaction","transaction","rollback","rememberRollback","tx","getItem","setItem","removeItem","error","rollbackEntries","entries","reverse","previousValue","keysToSet","valuesToSet","createSecureAuthStorage","options","ns","itemConfig","expirationConfig"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_Storage","_internal","_migration","_storageHooks","_indexeddbBackend","asInternal","item","isUpdater","valueOrFn","typedKeys","record","Object","keys","registeredMigrations","Map","runMicrotask","queueMicrotask","task","Promise","resolve","then","_storageModule","getStorageModule","NitroModules","createHybridObject","memoryStore","memoryListeners","scopedListeners","StorageScope","Disk","Secure","scopedUnsubscribers","scopedRawCache","pendingSecureWrites","secureFlushScheduled","secureDefaultAccessControl","AccessControl","WhenUnlocked","metricsObserver","metricsCounters","recordMetric","operation","scope","durationMs","keysCount","existing","get","set","count","totalDurationMs","maxDurationMs","Math","max","measureOperation","fn","start","Date","now","getScopedListeners","getScopeRawCache","cacheRawValue","key","value","readCachedRawValue","hasCachedRawValue","has","clearScopeRawCache","clear","notifyKeyListeners","registry","listeners","listener","notifyAllListeners","values","addKeyListener","Set","add","delete","size","readPendingSecureWrite","hasPendingSecureWrite","clearPendingSecureWrite","flushSecureWrites","writes","Array","from","groupedSetWrites","keysToRemove","forEach","accessControl","undefined","push","resolvedAccessControl","existingGroup","group","storageModule","setSecureAccessControl","setBatch","length","removeBatch","scheduleSecureWrite","pendingWrite","ensureNativeScopeSubscription","unsubscribe","addOnChange","maybeCleanupNativeScopeSubscription","getRawValue","assertValidScope","Memory","setRawValue","removeRawValue","remove","readMigrationVersion","raw","MIGRATION_VERSION_KEY","parsed","Number","parseInt","isFinite","writeMigrationVersion","version","String","storage","exports","clearAll","clearNamespace","namespace","isNamespaced","keyPrefix","prefixKey","scopeCache","removeByPrefix","clearBiometric","clearSecureBiometric","getAllKeys","getKeysByPrefix","prefix","filter","startsWith","getByPrefix","result","getBatch","idx","decodeNativeBatchValue","getAll","val","setAccessControl","level","setSecureWritesAsync","enabled","setKeychainAccessGroup","setMetricsObserver","observer","getMetricsSnapshot","snapshot","avgDurationMs","resetMetrics","getString","setString","deleteString","import","data","map","k","index","setWebSecureStorageBackend","_backend","getWebSecureStorageBackend","canUseRawBatchPath","_hasExpiration","_hasValidation","_isBiometric","_secureAccessControl","canUseSecureRawBatchPath","defaultSerialize","serializeWithPrimitiveFastPath","defaultDeserialize","deserializeWithPrimitiveFastPath","createStorageItem","config","storageKey","serialize","deserialize","isMemory","resolvedBiometricLevel","biometricLevel","biometric","BiometricLevel","BiometryOnly","None","isBiometric","secureAccessControl","validate","onValidationError","expiration","onExpired","expirationTtlMs","ttlMs","memoryExpiration","readCache","coalesceSecureWrites","defaultValue","nonMemoryScope","Error","lastRaw","lastValue","hasLastValue","lastExpiresAt","invalidateParsedCache","ensureSubscription","callback","readStoredRaw","expiresAt","pending","cache","cached","getSecureBiometric","writeStoredRaw","rawValue","setSecureBiometricWithLevel","removeStoredRaw","deleteSecureBiometric","writeValueWithoutValidation","serialized","envelope","__nitroStorageEnvelope","payload","JSON","stringify","resolveInvalidValue","invalidValue","ensureValidatedValue","candidate","hadStoredValue","resolved","getInternal","cb","deserializableRaw","envelopeExpiresAt","parse","isStoredEnvelope","getCurrentVersion","toVersionToken","getWithVersion","newValue","setIfVersion","currentVersion","deleteItem","hasItem","hasSecureBiometric","subscribe","storageItem","_triggerListeners","_invalidateParsedCacheOnly","_readCacheEnabled","_defaultValue","items","assertBatchScope","useRawBatchPath","every","rawValues","keysToFetch","keyIndexes","fetchedValues","targetIndex","batchEntry","needsIndividualSets","some","internal","secureEntries","canUseSecureBatchPath","groupedByAccessControl","entry","registerMigration","migration","isInteger","migrateToLatest","versions","sort","a","b","appliedVersion","context","getRaw","setRaw","removeRaw","runTransaction","transaction","NOT_SET","Symbol","rollback","rememberRollback","tx","getItem","setItem","removeItem","error","rollbackEntries","entries","reverse","previousValue","keysToSet","valuesToSet","isKeychainLockedError","err","msg","message","includes","createSecureAuthStorage","options","ns","itemConfig","expirationConfig"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}