react-native-nitro-storage 0.5.3 → 0.5.5

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 (36) hide show
  1. package/.watchmanconfig +6 -0
  2. package/README.md +45 -5
  3. package/android/build.gradle +5 -5
  4. package/android/src/main/java/com/nitrostorage/AndroidStorageAdapter.kt +12 -25
  5. package/app.plugin.js +114 -9
  6. package/docs/api-reference.md +39 -36
  7. package/docs/batch-transactions-migrations.md +1 -1
  8. package/docs/recipes.md +1 -1
  9. package/docs/secure-storage.md +15 -4
  10. package/docs/web-backends.md +5 -0
  11. package/lib/commonjs/index.js +129 -27
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/index.web.js +169 -32
  14. package/lib/commonjs/index.web.js.map +1 -1
  15. package/lib/commonjs/indexeddb-backend.js +28 -0
  16. package/lib/commonjs/indexeddb-backend.js.map +1 -1
  17. package/lib/commonjs/web-storage-backend.js.map +1 -1
  18. package/lib/module/index.js +129 -27
  19. package/lib/module/index.js.map +1 -1
  20. package/lib/module/index.web.js +169 -32
  21. package/lib/module/index.web.js.map +1 -1
  22. package/lib/module/indexeddb-backend.js +28 -0
  23. package/lib/module/indexeddb-backend.js.map +1 -1
  24. package/lib/module/web-storage-backend.js.map +1 -1
  25. package/lib/typescript/index.d.ts +10 -3
  26. package/lib/typescript/index.d.ts.map +1 -1
  27. package/lib/typescript/index.web.d.ts +10 -3
  28. package/lib/typescript/index.web.d.ts.map +1 -1
  29. package/lib/typescript/indexeddb-backend.d.ts.map +1 -1
  30. package/lib/typescript/web-storage-backend.d.ts +1 -0
  31. package/lib/typescript/web-storage-backend.d.ts.map +1 -1
  32. package/package.json +5 -3
  33. package/src/index.ts +197 -32
  34. package/src/index.web.ts +250 -37
  35. package/src/indexeddb-backend.ts +30 -0
  36. package/src/web-storage-backend.ts +1 -0
@@ -17,6 +17,20 @@ function isUpdater(valueOrFn) {
17
17
  function typedKeys(record) {
18
18
  return Object.keys(record);
19
19
  }
20
+ function assertEnumInteger(value, min, max, label) {
21
+ if (!Number.isFinite(value) || value < min || value > max) {
22
+ throw new Error(`NitroStorage: Invalid ${label}`);
23
+ }
24
+ if (value !== Math.trunc(value)) {
25
+ throw new Error(`NitroStorage: Invalid ${label}`);
26
+ }
27
+ }
28
+ function assertAccessControlLevel(level) {
29
+ assertEnumInteger(level, 0, 4, "access control level");
30
+ }
31
+ function assertBiometricLevel(level) {
32
+ assertEnumInteger(level, 0, 2, "biometric level");
33
+ }
20
34
  const registeredMigrations = new Map();
21
35
  const runMicrotask = typeof queueMicrotask === "function" ? queueMicrotask : task => {
22
36
  Promise.resolve().then(task);
@@ -43,6 +57,7 @@ let secureDefaultAccessControl = AccessControl.WhenUnlocked;
43
57
  const suppressedNativeEvents = new Map([[StorageScope.Disk, new Map()], [StorageScope.Secure, new Map()]]);
44
58
  let metricsObserver;
45
59
  let eventObserver;
60
+ let eventObserverRedactSecureValues = true;
46
61
  const metricsCounters = new Map();
47
62
  const storageEvents = new StorageEventRegistry();
48
63
  const nativeSecureBackend = "platform-secure-storage";
@@ -166,13 +181,45 @@ function createKeyChange(scope, key, oldValue, newValue, operation, source) {
166
181
  function hasStorageChangeObservers(scope) {
167
182
  return storageEvents.hasListeners(scope) || eventObserver !== undefined;
168
183
  }
184
+ function shouldReadPreviousEventValues(scope) {
185
+ if (storageEvents.hasListeners(scope)) {
186
+ return true;
187
+ }
188
+ if (!eventObserver) {
189
+ return false;
190
+ }
191
+ return scope !== StorageScope.Secure || !eventObserverRedactSecureValues;
192
+ }
193
+ const SECURE_EVENT_REDACTED_VALUE = "[secure]";
194
+ function redactSecureKeyChange(event) {
195
+ if (event.scope !== StorageScope.Secure) {
196
+ return event;
197
+ }
198
+ return {
199
+ ...event,
200
+ oldValue: event.oldValue === undefined ? undefined : SECURE_EVENT_REDACTED_VALUE,
201
+ newValue: event.newValue === undefined ? undefined : SECURE_EVENT_REDACTED_VALUE
202
+ };
203
+ }
204
+ function eventForGlobalObserver(event) {
205
+ if (!eventObserverRedactSecureValues || event.scope !== StorageScope.Secure) {
206
+ return event;
207
+ }
208
+ if (event.type === "key") {
209
+ return redactSecureKeyChange(event);
210
+ }
211
+ return {
212
+ ...event,
213
+ changes: event.changes.map(redactSecureKeyChange)
214
+ };
215
+ }
169
216
  function emitKeyChange(scope, key, oldValue, newValue, operation, source) {
170
217
  if (source === "native" && operation !== "external" && scope !== StorageScope.Memory && scopedUnsubscribers.has(scope)) {
171
218
  suppressNativeEvent(scope, key);
172
219
  }
173
220
  const event = createKeyChange(scope, key, oldValue, newValue, operation, source);
174
221
  storageEvents.emitKey(event);
175
- eventObserver?.(event);
222
+ eventObserver?.(eventForGlobalObserver(event));
176
223
  }
177
224
  function emitBatchChange(scope, operation, source, changes) {
178
225
  if (changes.length === 0) {
@@ -189,7 +236,7 @@ function emitBatchChange(scope, operation, source, changes) {
189
236
  changes
190
237
  };
191
238
  storageEvents.emitBatch(event);
192
- eventObserver?.(event);
239
+ eventObserver?.(eventForGlobalObserver(event));
193
240
  }
194
241
  function readPendingSecureWrite(key) {
195
242
  return pendingSecureWrites.get(key)?.value;
@@ -469,8 +516,9 @@ export const storage = {
469
516
  subscribeNamespace: (namespace, scope, listener) => {
470
517
  return storage.subscribePrefix(scope, prefixKey(namespace, ""), listener);
471
518
  },
472
- setEventObserver: observer => {
519
+ setEventObserver: (observer, options = {}) => {
473
520
  eventObserver = observer;
521
+ eventObserverRedactSecureValues = options.redactSecureValues !== false;
474
522
  if (observer) {
475
523
  ensureNativeScopeSubscription(StorageScope.Disk);
476
524
  ensureNativeScopeSubscription(StorageScope.Secure);
@@ -481,7 +529,7 @@ export const storage = {
481
529
  },
482
530
  clear: scope => {
483
531
  measureOperation("storage:clear", scope, () => {
484
- const previousValues = hasStorageChangeObservers(scope) ? storage.getAll(scope) : {};
532
+ const previousValues = shouldReadPreviousEventValues(scope) ? storage.getAll(scope) : {};
485
533
  if (scope === StorageScope.Memory) {
486
534
  memoryStore.clear();
487
535
  notifyAllListeners(memoryListeners);
@@ -531,7 +579,7 @@ export const storage = {
531
579
  return;
532
580
  }
533
581
  const keyPrefix = prefixKey(namespace, "");
534
- const previousValues = hasStorageChangeObservers(scope) ? storage.getByPrefix(keyPrefix, scope) : {};
582
+ const previousValues = shouldReadPreviousEventValues(scope) ? storage.getByPrefix(keyPrefix, scope) : {};
535
583
  if (scope === StorageScope.Disk) {
536
584
  flushDiskWrites();
537
585
  }
@@ -657,9 +705,15 @@ export const storage = {
657
705
  return result;
658
706
  });
659
707
  },
660
- export: scope => {
708
+ export: (scope, options = {}) => {
709
+ if (scope === StorageScope.Secure && options.includeSecureValues !== true) {
710
+ throw new Error("NitroStorage: exporting Secure scope exposes raw secret values. Pass { includeSecureValues: true } or use exportSecureUnsafe().");
711
+ }
661
712
  return measureOperation("storage:export", scope, () => storage.getAll(scope));
662
713
  },
714
+ exportSecureUnsafe: () => {
715
+ return measureOperation("storage:exportSecureUnsafe", StorageScope.Secure, () => storage.getAll(StorageScope.Secure));
716
+ },
663
717
  size: scope => {
664
718
  return measureOperation("storage:size", scope, () => {
665
719
  assertValidScope(scope);
@@ -677,6 +731,7 @@ export const storage = {
677
731
  },
678
732
  setAccessControl: level => {
679
733
  measureOperation("storage:setAccessControl", StorageScope.Secure, () => {
734
+ assertAccessControlLevel(level);
680
735
  secureDefaultAccessControl = level;
681
736
  getStorageModule().setSecureAccessControl(level);
682
737
  });
@@ -877,6 +932,12 @@ export function createStorageItem(config) {
877
932
  if (expiration && expiration.ttlMs <= 0) {
878
933
  throw new Error("expiration.ttlMs must be greater than 0.");
879
934
  }
935
+ if (config.scope === StorageScope.Secure) {
936
+ assertBiometricLevel(resolvedBiometricLevel);
937
+ if (secureAccessControl !== undefined) {
938
+ assertAccessControlLevel(secureAccessControl);
939
+ }
940
+ }
880
941
  const listeners = new Set();
881
942
  let unsubscribe = null;
882
943
  let lastRaw = undefined;
@@ -1220,6 +1281,7 @@ export function createStorageItem(config) {
1220
1281
  _hasExpiration: expiration !== undefined,
1221
1282
  _readCacheEnabled: readCache,
1222
1283
  _isBiometric: isBiometric,
1284
+ _biometricLevel: resolvedBiometricLevel,
1223
1285
  _defaultValue: defaultValue,
1224
1286
  ...(secureAccessControl !== undefined ? {
1225
1287
  _secureAccessControl: secureAccessControl
@@ -1353,7 +1415,7 @@ export function setBatch(items, scope) {
1353
1415
  const keys = secureEntries.map(({
1354
1416
  item
1355
1417
  }) => item.key);
1356
- const oldValues = hasStorageChangeObservers(scope) ? storageModule.getBatch(keys, scope) ?? [] : [];
1418
+ const oldValues = shouldReadPreviousEventValues(scope) ? storageModule.getBatch(keys, scope) ?? [] : [];
1357
1419
  const groupedByAccessControl = new Map();
1358
1420
  secureEntries.forEach(({
1359
1421
  item,
@@ -1396,7 +1458,7 @@ export function setBatch(items, scope) {
1396
1458
  }
1397
1459
  const keys = items.map(entry => entry.item.key);
1398
1460
  const values = items.map(entry => entry.item.serialize(entry.value));
1399
- const oldValues = hasStorageChangeObservers(scope) ? getStorageModule().getBatch(keys, scope) ?? [] : [];
1461
+ const oldValues = shouldReadPreviousEventValues(scope) ? getStorageModule().getBatch(keys, scope) ?? [] : [];
1400
1462
  getStorageModule().setBatch(keys, values, scope);
1401
1463
  keys.forEach((key, index) => cacheRawValue(scope, key, values[index]));
1402
1464
  emitBatchChange(scope, "setBatch", "native", keys.map((key, index) => createKeyChange(scope, key, oldValues[index], values[index], "setBatch", "native")));
@@ -1418,7 +1480,7 @@ export function removeBatch(items, scope) {
1418
1480
  if (scope === StorageScope.Secure) {
1419
1481
  flushSecureWrites();
1420
1482
  }
1421
- const oldValues = hasStorageChangeObservers(scope) ? getStorageModule().getBatch(keys, scope) ?? [] : [];
1483
+ const oldValues = shouldReadPreviousEventValues(scope) ? getStorageModule().getBatch(keys, scope) ?? [] : [];
1422
1484
  getStorageModule().removeBatch(keys, scope);
1423
1485
  keys.forEach(key => cacheRawValue(scope, key, undefined));
1424
1486
  emitBatchChange(scope, "removeBatch", "native", keys.map((key, index) => createKeyChange(scope, key, oldValues[index], undefined, "removeBatch", "native")));
@@ -1470,14 +1532,32 @@ export function runTransaction(scope, transaction) {
1470
1532
  }
1471
1533
  const NOT_SET = Symbol();
1472
1534
  const rollback = new Map();
1473
- const rememberRollback = key => {
1535
+ const rememberRollback = (key, item) => {
1474
1536
  if (rollback.has(key)) {
1475
1537
  return;
1476
1538
  }
1477
1539
  if (scope === StorageScope.Memory) {
1478
- rollback.set(key, memoryStore.has(key) ? memoryStore.get(key) : NOT_SET);
1540
+ rollback.set(key, {
1541
+ kind: "memory",
1542
+ value: memoryStore.has(key) ? memoryStore.get(key) : NOT_SET
1543
+ });
1479
1544
  } else {
1480
- rollback.set(key, getRawValue(key, scope));
1545
+ const internal = item ? item : undefined;
1546
+ if (scope === StorageScope.Secure && internal?._isBiometric === true) {
1547
+ rollback.set(key, {
1548
+ kind: "biometric",
1549
+ value: getStorageModule().getSecureBiometric(key),
1550
+ level: internal._biometricLevel
1551
+ });
1552
+ return;
1553
+ }
1554
+ rollback.set(key, {
1555
+ kind: "raw",
1556
+ value: getRawValue(key, scope),
1557
+ ...(scope === StorageScope.Secure && internal?._secureAccessControl !== undefined ? {
1558
+ accessControl: internal._secureAccessControl
1559
+ } : {})
1560
+ });
1481
1561
  }
1482
1562
  };
1483
1563
  const tx = {
@@ -1497,12 +1577,12 @@ export function runTransaction(scope, transaction) {
1497
1577
  },
1498
1578
  setItem: (item, value) => {
1499
1579
  assertBatchScope([item], scope);
1500
- rememberRollback(item.key);
1580
+ rememberRollback(item.key, item);
1501
1581
  item.set(value);
1502
1582
  },
1503
1583
  removeItem: item => {
1504
1584
  assertBatchScope([item], scope);
1505
- rememberRollback(item.key);
1585
+ rememberRollback(item.key, item);
1506
1586
  item.delete();
1507
1587
  }
1508
1588
  };
@@ -1511,24 +1591,43 @@ export function runTransaction(scope, transaction) {
1511
1591
  } catch (error) {
1512
1592
  const rollbackEntries = Array.from(rollback.entries()).reverse();
1513
1593
  if (scope === StorageScope.Memory) {
1514
- rollbackEntries.forEach(([key, previousValue]) => {
1515
- if (previousValue === NOT_SET) {
1594
+ rollbackEntries.forEach(([key, record]) => {
1595
+ if (record.value === NOT_SET) {
1516
1596
  memoryStore.delete(key);
1517
1597
  } else {
1518
- memoryStore.set(key, previousValue);
1598
+ memoryStore.set(key, record.value);
1519
1599
  }
1520
1600
  notifyKeyListeners(memoryListeners, key);
1521
1601
  });
1522
1602
  } else {
1523
- const keysToSet = [];
1524
- const valuesToSet = [];
1603
+ const groupedKeysToSet = new Map();
1525
1604
  const keysToRemove = [];
1526
- rollbackEntries.forEach(([key, previousValue]) => {
1527
- if (previousValue === undefined) {
1605
+ rollbackEntries.forEach(([key, record]) => {
1606
+ if (record.kind === "biometric") {
1607
+ if (record.value === undefined) {
1608
+ getStorageModule().deleteSecureBiometric(key);
1609
+ } else {
1610
+ getStorageModule().setSecureBiometricWithLevel(key, record.value, record.level);
1611
+ }
1612
+ return;
1613
+ }
1614
+ if (record.kind !== "raw") {
1615
+ return;
1616
+ }
1617
+ if (record.value === undefined) {
1528
1618
  keysToRemove.push(key);
1529
1619
  } else {
1530
- keysToSet.push(key);
1531
- valuesToSet.push(previousValue);
1620
+ const accessControl = record.accessControl ?? secureDefaultAccessControl;
1621
+ const existingGroup = groupedKeysToSet.get(accessControl);
1622
+ const group = existingGroup ?? {
1623
+ keys: [],
1624
+ values: []
1625
+ };
1626
+ group.keys.push(key);
1627
+ group.values.push(record.value);
1628
+ if (!existingGroup) {
1629
+ groupedKeysToSet.set(accessControl, group);
1630
+ }
1532
1631
  }
1533
1632
  });
1534
1633
  if (scope === StorageScope.Disk) {
@@ -1537,10 +1636,13 @@ export function runTransaction(scope, transaction) {
1537
1636
  if (scope === StorageScope.Secure) {
1538
1637
  flushSecureWrites();
1539
1638
  }
1540
- if (keysToSet.length > 0) {
1541
- getStorageModule().setBatch(keysToSet, valuesToSet, scope);
1542
- keysToSet.forEach((key, index) => cacheRawValue(scope, key, valuesToSet[index]));
1543
- }
1639
+ groupedKeysToSet.forEach((group, accessControl) => {
1640
+ if (scope === StorageScope.Secure) {
1641
+ getStorageModule().setSecureAccessControl(accessControl);
1642
+ }
1643
+ getStorageModule().setBatch(group.keys, group.values, scope);
1644
+ group.keys.forEach((key, index) => cacheRawValue(scope, key, group.values[index]));
1645
+ });
1544
1646
  if (keysToRemove.length > 0) {
1545
1647
  getStorageModule().removeBatch(keysToRemove, scope);
1546
1648
  keysToRemove.forEach(key => cacheRawValue(scope, key, undefined));
@@ -1 +1 @@
1
- {"version":3,"names":["NitroModules","StorageScope","AccessControl","BiometricLevel","MIGRATION_VERSION_KEY","isStoredEnvelope","assertBatchScope","assertValidScope","decodeNativeBatchValue","serializeWithPrimitiveFastPath","deserializeWithPrimitiveFastPath","toVersionToken","prefixKey","isNamespaced","getStorageErrorCode","isLockedStorageErrorCode","StorageEventRegistry","migrateFromMMKV","asInternal","item","isUpdater","valueOrFn","typedKeys","record","Object","keys","registeredMigrations","Map","runMicrotask","queueMicrotask","task","Promise","resolve","then","now","performance","Date","_storageModule","getStorageModule","createHybridObject","memoryStore","memoryListeners","scopedListeners","Disk","Secure","scopedUnsubscribers","scopedRawCache","pendingDiskWrites","diskFlushScheduled","diskWritesAsync","pendingSecureWrites","secureFlushScheduled","secureDefaultAccessControl","WhenUnlocked","suppressedNativeEvents","metricsObserver","eventObserver","metricsCounters","storageEvents","nativeSecureBackend","recordMetric","operation","scope","durationMs","keysCount","existing","get","set","count","totalDurationMs","maxDurationMs","Math","max","measureOperation","fn","start","getScopedListeners","getScopeRawCache","cacheRawValue","key","value","readCachedRawValue","hasCachedRawValue","has","clearScopeRawCache","clear","suppressNativeEvent","suppressedEvents","consumeSuppressedNativeEvent","undefined","delete","notifyKeyListeners","registry","listeners","listener","notifyAllListeners","values","addKeyListener","Set","add","size","getEventRawValue","Memory","getRawValue","createKeyChange","oldValue","newValue","source","type","hasStorageChangeObservers","hasListeners","emitKeyChange","event","emitKey","emitBatchChange","changes","length","forEach","change","emitBatch","readPendingSecureWrite","readPendingDiskWrite","hasPendingDiskWrite","hasPendingSecureWrite","clearPendingDiskWrite","clearPendingSecureWrite","flushDiskWrites","writes","Array","from","keysToSet","valuesToSet","keysToRemove","push","storageModule","setBatch","removeBatch","flushSecureWrites","groupedSetWrites","accessControl","resolvedAccessControl","existingGroup","group","setSecureAccessControl","scheduleDiskWrite","scheduleSecureWrite","pendingWrite","ensureNativeScopeSubscription","unsubscribe","addOnChange","maybeCleanupNativeScopeSubscription","setRawValue","removeRawValue","remove","readMigrationVersion","raw","parsed","Number","parseInt","isFinite","writeMigrationVersion","version","String","storage","subscribe","subscribeKey","subscribePrefix","prefix","subscribeNamespace","namespace","setEventObserver","observer","previousValues","getAll","map","clearAll","clearNamespace","affectedKeys","filter","keyPrefix","getByPrefix","scopeCache","removeByPrefix","clearBiometric","clearSecureBiometric","getAllKeys","getKeysByPrefix","startsWith","result","getBatch","idx","val","export","setAccessControl","level","setSecureWritesAsync","enabled","setDiskWritesAsync","setKeychainAccessGroup","setMetricsObserver","getMetricsSnapshot","snapshot","avgDurationMs","resetMetrics","getCapabilities","platform","backend","disk","secure","writeBuffering","errorClassification","getSecurityCapabilities","secureStorage","encrypted","keychainAccessGroup","hardwareBacked","biometric","prompt","biometryOnly","biometryOrPasscode","metadata","perKey","listsWithoutValues","persistsTimestamps","getSecureMetadata","biometricProtected","hasSecureBiometric","exists","kind","valueExposed","getAllSecureMetadata","getString","setString","deleteString","import","data","k","index","setWebSecureStorageBackend","_backend","getWebSecureStorageBackend","setWebDiskStorageBackend","getWebDiskStorageBackend","flushWebStorageBackends","canUseRawBatchPath","_hasExpiration","_hasValidation","_isBiometric","_secureAccessControl","canUseSecureRawBatchPath","defaultSerialize","defaultDeserialize","createStorageItem","config","storageKey","serialize","deserialize","isMemory","resolvedBiometricLevel","biometricLevel","BiometryOnly","None","isBiometric","secureAccessControl","validate","onValidationError","expiration","onExpired","expirationTtlMs","ttlMs","memoryExpiration","readCache","coalesceDiskWrites","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","getCurrentVersion","getWithVersion","setIfVersion","currentVersion","deleteItem","hasItem","subscribeSelector","selector","options","isEqual","is","currentValue","fireImmediately","nextValue","previousValue","storageItem","_triggerListeners","_invalidateParsedCacheOnly","_readCacheEnabled","_defaultValue","useStorage","useStorageSelector","useSetStorage","createIndexedDBBackend","items","useRawBatchPath","every","rawValues","keysToFetch","keyIndexes","fetchedValues","targetIndex","batchEntry","needsIndividualSets","some","internal","secureEntries","canUseSecureBatchPath","oldValues","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","isKeychainLockedError","err","createSecureAuthStorage","ns","itemConfig","expirationConfig"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NitroModules","StorageScope","AccessControl","BiometricLevel","MIGRATION_VERSION_KEY","isStoredEnvelope","assertBatchScope","assertValidScope","decodeNativeBatchValue","serializeWithPrimitiveFastPath","deserializeWithPrimitiveFastPath","toVersionToken","prefixKey","isNamespaced","getStorageErrorCode","isLockedStorageErrorCode","StorageEventRegistry","migrateFromMMKV","asInternal","item","isUpdater","valueOrFn","typedKeys","record","Object","keys","assertEnumInteger","value","min","max","label","Number","isFinite","Error","Math","trunc","assertAccessControlLevel","level","assertBiometricLevel","registeredMigrations","Map","runMicrotask","queueMicrotask","task","Promise","resolve","then","now","performance","Date","_storageModule","getStorageModule","createHybridObject","memoryStore","memoryListeners","scopedListeners","Disk","Secure","scopedUnsubscribers","scopedRawCache","pendingDiskWrites","diskFlushScheduled","diskWritesAsync","pendingSecureWrites","secureFlushScheduled","secureDefaultAccessControl","WhenUnlocked","suppressedNativeEvents","metricsObserver","eventObserver","eventObserverRedactSecureValues","metricsCounters","storageEvents","nativeSecureBackend","recordMetric","operation","scope","durationMs","keysCount","existing","get","set","count","totalDurationMs","maxDurationMs","measureOperation","fn","start","getScopedListeners","getScopeRawCache","cacheRawValue","key","readCachedRawValue","hasCachedRawValue","has","clearScopeRawCache","clear","suppressNativeEvent","suppressedEvents","consumeSuppressedNativeEvent","undefined","delete","notifyKeyListeners","registry","listeners","listener","notifyAllListeners","values","addKeyListener","Set","add","size","getEventRawValue","Memory","getRawValue","createKeyChange","oldValue","newValue","source","type","hasStorageChangeObservers","hasListeners","shouldReadPreviousEventValues","SECURE_EVENT_REDACTED_VALUE","redactSecureKeyChange","event","eventForGlobalObserver","changes","map","emitKeyChange","emitKey","emitBatchChange","length","forEach","change","emitBatch","readPendingSecureWrite","readPendingDiskWrite","hasPendingDiskWrite","hasPendingSecureWrite","clearPendingDiskWrite","clearPendingSecureWrite","flushDiskWrites","writes","Array","from","keysToSet","valuesToSet","keysToRemove","push","storageModule","setBatch","removeBatch","flushSecureWrites","groupedSetWrites","accessControl","resolvedAccessControl","existingGroup","group","setSecureAccessControl","scheduleDiskWrite","scheduleSecureWrite","pendingWrite","ensureNativeScopeSubscription","unsubscribe","addOnChange","maybeCleanupNativeScopeSubscription","setRawValue","removeRawValue","remove","readMigrationVersion","raw","parsed","parseInt","writeMigrationVersion","version","String","storage","subscribe","subscribeKey","subscribePrefix","prefix","subscribeNamespace","namespace","setEventObserver","observer","options","redactSecureValues","previousValues","getAll","clearAll","clearNamespace","affectedKeys","filter","keyPrefix","getByPrefix","scopeCache","removeByPrefix","clearBiometric","clearSecureBiometric","getAllKeys","getKeysByPrefix","startsWith","result","getBatch","idx","val","export","includeSecureValues","exportSecureUnsafe","setAccessControl","setSecureWritesAsync","enabled","setDiskWritesAsync","setKeychainAccessGroup","setMetricsObserver","getMetricsSnapshot","snapshot","avgDurationMs","resetMetrics","getCapabilities","platform","backend","disk","secure","writeBuffering","errorClassification","getSecurityCapabilities","secureStorage","encrypted","keychainAccessGroup","hardwareBacked","biometric","prompt","biometryOnly","biometryOrPasscode","metadata","perKey","listsWithoutValues","persistsTimestamps","getSecureMetadata","biometricProtected","hasSecureBiometric","exists","kind","valueExposed","getAllSecureMetadata","getString","setString","deleteString","import","data","k","index","setWebSecureStorageBackend","_backend","getWebSecureStorageBackend","setWebDiskStorageBackend","getWebDiskStorageBackend","flushWebStorageBackends","canUseRawBatchPath","_hasExpiration","_hasValidation","_isBiometric","_secureAccessControl","canUseSecureRawBatchPath","defaultSerialize","defaultDeserialize","createStorageItem","config","storageKey","serialize","deserialize","isMemory","resolvedBiometricLevel","biometricLevel","BiometryOnly","None","isBiometric","secureAccessControl","validate","onValidationError","expiration","onExpired","expirationTtlMs","ttlMs","memoryExpiration","readCache","coalesceDiskWrites","coalesceSecureWrites","defaultValue","nonMemoryScope","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","getCurrentVersion","getWithVersion","setIfVersion","currentVersion","deleteItem","hasItem","subscribeSelector","selector","isEqual","is","currentValue","fireImmediately","nextValue","previousValue","storageItem","_triggerListeners","_invalidateParsedCacheOnly","_readCacheEnabled","_biometricLevel","_defaultValue","useStorage","useStorageSelector","useSetStorage","createIndexedDBBackend","items","useRawBatchPath","every","rawValues","keysToFetch","keyIndexes","fetchedValues","targetIndex","batchEntry","needsIndividualSets","some","internal","secureEntries","canUseSecureBatchPath","oldValues","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","groupedKeysToSet","isKeychainLockedError","err","createSecureAuthStorage","ns","itemConfig","expirationConfig"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}