react-native-nitro-storage 0.3.0 → 0.3.1

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 (45) hide show
  1. package/README.md +414 -256
  2. package/android/src/main/cpp/AndroidStorageAdapterCpp.cpp +98 -11
  3. package/android/src/main/cpp/AndroidStorageAdapterCpp.hpp +15 -0
  4. package/android/src/main/java/com/nitrostorage/AndroidStorageAdapter.kt +130 -33
  5. package/android/src/main/java/com/nitrostorage/NitroStoragePackage.kt +2 -2
  6. package/cpp/bindings/HybridStorage.cpp +121 -12
  7. package/cpp/bindings/HybridStorage.hpp +10 -0
  8. package/cpp/core/NativeStorageAdapter.hpp +15 -0
  9. package/ios/IOSStorageAdapterCpp.hpp +19 -0
  10. package/ios/IOSStorageAdapterCpp.mm +233 -32
  11. package/lib/commonjs/Storage.types.js +23 -1
  12. package/lib/commonjs/Storage.types.js.map +1 -1
  13. package/lib/commonjs/index.js +173 -32
  14. package/lib/commonjs/index.js.map +1 -1
  15. package/lib/commonjs/index.web.js +289 -49
  16. package/lib/commonjs/index.web.js.map +1 -1
  17. package/lib/commonjs/internal.js +10 -0
  18. package/lib/commonjs/internal.js.map +1 -1
  19. package/lib/module/Storage.types.js +22 -0
  20. package/lib/module/Storage.types.js.map +1 -1
  21. package/lib/module/index.js +163 -35
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/module/index.web.js +278 -51
  24. package/lib/module/index.web.js.map +1 -1
  25. package/lib/module/internal.js +8 -0
  26. package/lib/module/internal.js.map +1 -1
  27. package/lib/typescript/Storage.nitro.d.ts +10 -0
  28. package/lib/typescript/Storage.nitro.d.ts.map +1 -1
  29. package/lib/typescript/Storage.types.d.ts +20 -0
  30. package/lib/typescript/Storage.types.d.ts.map +1 -1
  31. package/lib/typescript/index.d.ts +30 -7
  32. package/lib/typescript/index.d.ts.map +1 -1
  33. package/lib/typescript/index.web.d.ts +40 -7
  34. package/lib/typescript/index.web.d.ts.map +1 -1
  35. package/lib/typescript/internal.d.ts +2 -0
  36. package/lib/typescript/internal.d.ts.map +1 -1
  37. package/nitrogen/generated/shared/c++/HybridStorageSpec.cpp +10 -0
  38. package/nitrogen/generated/shared/c++/HybridStorageSpec.hpp +10 -0
  39. package/package.json +4 -1
  40. package/src/Storage.nitro.ts +11 -2
  41. package/src/Storage.types.ts +22 -0
  42. package/src/index.ts +270 -71
  43. package/src/index.web.ts +431 -90
  44. package/src/internal.ts +14 -4
  45. package/src/migration.ts +1 -1
@@ -3,12 +3,25 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "AccessControl", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Storage.AccessControl;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "BiometricLevel", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _Storage.BiometricLevel;
16
+ }
17
+ });
6
18
  Object.defineProperty(exports, "StorageScope", {
7
19
  enumerable: true,
8
20
  get: function () {
9
21
  return _Storage.StorageScope;
10
22
  }
11
23
  });
24
+ exports.createSecureAuthStorage = createSecureAuthStorage;
12
25
  exports.createStorageItem = createStorageItem;
13
26
  exports.getBatch = getBatch;
14
27
  Object.defineProperty(exports, "migrateFromMMKV", {
@@ -31,6 +44,9 @@ var _reactNativeNitroModules = require("react-native-nitro-modules");
31
44
  var _Storage = require("./Storage.types");
32
45
  var _internal = require("./internal");
33
46
  var _migration = require("./migration");
47
+ function asInternal(item) {
48
+ return item;
49
+ }
34
50
  const registeredMigrations = new Map();
35
51
  const runMicrotask = typeof queueMicrotask === "function" ? queueMicrotask : task => {
36
52
  Promise.resolve().then(task);
@@ -49,6 +65,7 @@ const scopedUnsubscribers = new Map();
49
65
  const scopedRawCache = new Map([[_Storage.StorageScope.Disk, new Map()], [_Storage.StorageScope.Secure, new Map()]]);
50
66
  const pendingSecureWrites = new Map();
51
67
  let secureFlushScheduled = false;
68
+ let secureDefaultAccessControl = _Storage.AccessControl.WhenUnlocked;
52
69
  function getScopedListeners(scope) {
53
70
  return scopedListeners.get(scope);
54
71
  }
@@ -124,6 +141,7 @@ function flushSecureWrites() {
124
141
  }
125
142
  });
126
143
  const storageModule = getStorageModule();
144
+ storageModule.setSecureAccessControl(secureDefaultAccessControl);
127
145
  if (keysToSet.length > 0) {
128
146
  storageModule.setBatch(keysToSet, valuesToSet, _Storage.StorageScope.Secure);
129
147
  }
@@ -197,6 +215,7 @@ function setRawValue(key, value, scope) {
197
215
  if (scope === _Storage.StorageScope.Secure) {
198
216
  flushSecureWrites();
199
217
  clearPendingSecureWrite(key);
218
+ getStorageModule().setSecureAccessControl(secureDefaultAccessControl);
200
219
  }
201
220
  getStorageModule().set(key, value, scope);
202
221
  cacheRawValue(scope, key, value);
@@ -239,15 +258,91 @@ const storage = exports.storage = {
239
258
  }
240
259
  clearScopeRawCache(scope);
241
260
  getStorageModule().clear(scope);
261
+ if (scope === _Storage.StorageScope.Secure) {
262
+ getStorageModule().clearSecureBiometric();
263
+ }
242
264
  },
243
265
  clearAll: () => {
244
266
  storage.clear(_Storage.StorageScope.Memory);
245
267
  storage.clear(_Storage.StorageScope.Disk);
246
268
  storage.clear(_Storage.StorageScope.Secure);
269
+ },
270
+ clearNamespace: (namespace, scope) => {
271
+ (0, _internal.assertValidScope)(scope);
272
+ if (scope === _Storage.StorageScope.Memory) {
273
+ for (const key of memoryStore.keys()) {
274
+ if ((0, _internal.isNamespaced)(key, namespace)) {
275
+ memoryStore.delete(key);
276
+ }
277
+ }
278
+ notifyAllListeners(memoryListeners);
279
+ return;
280
+ }
281
+ if (scope === _Storage.StorageScope.Secure) {
282
+ flushSecureWrites();
283
+ }
284
+ const keys = getStorageModule().getAllKeys(scope);
285
+ const namespacedKeys = keys.filter(k => (0, _internal.isNamespaced)(k, namespace));
286
+ if (namespacedKeys.length > 0) {
287
+ getStorageModule().removeBatch(namespacedKeys, scope);
288
+ namespacedKeys.forEach(k => cacheRawValue(scope, k, undefined));
289
+ if (scope === _Storage.StorageScope.Secure) {
290
+ namespacedKeys.forEach(k => clearPendingSecureWrite(k));
291
+ }
292
+ }
293
+ },
294
+ clearBiometric: () => {
295
+ getStorageModule().clearSecureBiometric();
296
+ },
297
+ has: (key, scope) => {
298
+ (0, _internal.assertValidScope)(scope);
299
+ if (scope === _Storage.StorageScope.Memory) {
300
+ return memoryStore.has(key);
301
+ }
302
+ return getStorageModule().has(key, scope);
303
+ },
304
+ getAllKeys: scope => {
305
+ (0, _internal.assertValidScope)(scope);
306
+ if (scope === _Storage.StorageScope.Memory) {
307
+ return Array.from(memoryStore.keys());
308
+ }
309
+ return getStorageModule().getAllKeys(scope);
310
+ },
311
+ getAll: scope => {
312
+ (0, _internal.assertValidScope)(scope);
313
+ const result = {};
314
+ if (scope === _Storage.StorageScope.Memory) {
315
+ memoryStore.forEach((value, key) => {
316
+ if (typeof value === "string") result[key] = value;
317
+ });
318
+ return result;
319
+ }
320
+ const keys = getStorageModule().getAllKeys(scope);
321
+ if (keys.length === 0) return result;
322
+ const values = getStorageModule().getBatch(keys, scope);
323
+ keys.forEach((key, idx) => {
324
+ const val = (0, _internal.decodeNativeBatchValue)(values[idx]);
325
+ if (val !== undefined) result[key] = val;
326
+ });
327
+ return result;
328
+ },
329
+ size: scope => {
330
+ (0, _internal.assertValidScope)(scope);
331
+ if (scope === _Storage.StorageScope.Memory) {
332
+ return memoryStore.size;
333
+ }
334
+ return getStorageModule().size(scope);
335
+ },
336
+ setAccessControl: level => {
337
+ secureDefaultAccessControl = level;
338
+ getStorageModule().setSecureAccessControl(level);
339
+ },
340
+ setKeychainAccessGroup: group => {
341
+ getStorageModule().setKeychainAccessGroup(group);
247
342
  }
248
343
  };
249
344
  function canUseRawBatchPath(item) {
250
- return item._hasExpiration === false && item._hasValidation === false;
345
+ return item._hasExpiration === false && item._hasValidation === false && item._isBiometric !== true && item._secureAccessControl === undefined;
251
346
  }
252
347
  function defaultSerialize(value) {
253
348
  return (0, _internal.serializeWithPrimitiveFastPath)(value);
@@ -256,16 +351,20 @@ function defaultDeserialize(value) {
256
351
  return (0, _internal.deserializeWithPrimitiveFastPath)(value);
257
352
  }
258
353
  function createStorageItem(config) {
354
+ const storageKey = (0, _internal.prefixKey)(config.namespace, config.key);
259
355
  const serialize = config.serialize ?? defaultSerialize;
260
356
  const deserialize = config.deserialize ?? defaultDeserialize;
261
357
  const isMemory = config.scope === _Storage.StorageScope.Memory;
358
+ const isBiometric = config.biometric === true && config.scope === _Storage.StorageScope.Secure;
359
+ const secureAccessControl = config.accessControl;
262
360
  const validate = config.validate;
263
361
  const onValidationError = config.onValidationError;
264
362
  const expiration = config.expiration;
363
+ const onExpired = config.onExpired;
265
364
  const expirationTtlMs = expiration?.ttlMs;
266
365
  const memoryExpiration = expiration && isMemory ? new Map() : null;
267
366
  const readCache = !isMemory && config.readCache === true;
268
- const coalesceSecureWrites = config.scope === _Storage.StorageScope.Secure && config.coalesceSecureWrites === true;
367
+ const coalesceSecureWrites = config.scope === _Storage.StorageScope.Secure && config.coalesceSecureWrites === true && !isBiometric && secureAccessControl === undefined;
269
368
  const nonMemoryScope = config.scope === _Storage.StorageScope.Disk ? _Storage.StorageScope.Disk : config.scope === _Storage.StorageScope.Secure ? _Storage.StorageScope.Secure : null;
270
369
  if (expiration && expiration.ttlMs <= 0) {
271
370
  throw new Error("expiration.ttlMs must be greater than 0.");
@@ -289,66 +388,79 @@ function createStorageItem(config) {
289
388
  listeners.forEach(callback => callback());
290
389
  };
291
390
  if (isMemory) {
292
- unsubscribe = addKeyListener(memoryListeners, config.key, listener);
391
+ unsubscribe = addKeyListener(memoryListeners, storageKey, listener);
293
392
  return;
294
393
  }
295
394
  ensureNativeScopeSubscription(nonMemoryScope);
296
- unsubscribe = addKeyListener(getScopedListeners(nonMemoryScope), config.key, listener);
395
+ unsubscribe = addKeyListener(getScopedListeners(nonMemoryScope), storageKey, listener);
297
396
  };
298
397
  const readStoredRaw = () => {
299
398
  if (isMemory) {
300
399
  if (memoryExpiration) {
301
- const expiresAt = memoryExpiration.get(config.key);
400
+ const expiresAt = memoryExpiration.get(storageKey);
302
401
  if (expiresAt !== undefined && expiresAt <= Date.now()) {
303
- memoryExpiration.delete(config.key);
304
- memoryStore.delete(config.key);
305
- notifyKeyListeners(memoryListeners, config.key);
402
+ memoryExpiration.delete(storageKey);
403
+ memoryStore.delete(storageKey);
404
+ notifyKeyListeners(memoryListeners, storageKey);
405
+ onExpired?.(storageKey);
306
406
  return undefined;
307
407
  }
308
408
  }
309
- return memoryStore.get(config.key);
409
+ return memoryStore.get(storageKey);
310
410
  }
311
- if (nonMemoryScope === _Storage.StorageScope.Secure && hasPendingSecureWrite(config.key)) {
312
- return readPendingSecureWrite(config.key);
411
+ if (nonMemoryScope === _Storage.StorageScope.Secure && !isBiometric && hasPendingSecureWrite(storageKey)) {
412
+ return readPendingSecureWrite(storageKey);
313
413
  }
314
414
  if (readCache) {
315
- if (hasCachedRawValue(nonMemoryScope, config.key)) {
316
- return readCachedRawValue(nonMemoryScope, config.key);
415
+ if (hasCachedRawValue(nonMemoryScope, storageKey)) {
416
+ return readCachedRawValue(nonMemoryScope, storageKey);
317
417
  }
318
418
  }
319
- const raw = getStorageModule().get(config.key, config.scope);
320
- cacheRawValue(nonMemoryScope, config.key, raw);
419
+ if (isBiometric) {
420
+ return getStorageModule().getSecureBiometric(storageKey);
421
+ }
422
+ const raw = getStorageModule().get(storageKey, config.scope);
423
+ cacheRawValue(nonMemoryScope, storageKey, raw);
321
424
  return raw;
322
425
  };
323
426
  const writeStoredRaw = rawValue => {
324
- cacheRawValue(nonMemoryScope, config.key, rawValue);
427
+ if (isBiometric) {
428
+ getStorageModule().setSecureBiometric(storageKey, rawValue);
429
+ return;
430
+ }
431
+ cacheRawValue(nonMemoryScope, storageKey, rawValue);
325
432
  if (coalesceSecureWrites) {
326
- scheduleSecureWrite(config.key, rawValue);
433
+ scheduleSecureWrite(storageKey, rawValue);
327
434
  return;
328
435
  }
329
436
  if (nonMemoryScope === _Storage.StorageScope.Secure) {
330
- clearPendingSecureWrite(config.key);
437
+ clearPendingSecureWrite(storageKey);
438
+ getStorageModule().setSecureAccessControl(secureAccessControl ?? secureDefaultAccessControl);
331
439
  }
332
- getStorageModule().set(config.key, rawValue, config.scope);
440
+ getStorageModule().set(storageKey, rawValue, config.scope);
333
441
  };
334
442
  const removeStoredRaw = () => {
335
- cacheRawValue(nonMemoryScope, config.key, undefined);
443
+ if (isBiometric) {
444
+ getStorageModule().deleteSecureBiometric(storageKey);
445
+ return;
446
+ }
447
+ cacheRawValue(nonMemoryScope, storageKey, undefined);
336
448
  if (coalesceSecureWrites) {
337
- scheduleSecureWrite(config.key, undefined);
449
+ scheduleSecureWrite(storageKey, undefined);
338
450
  return;
339
451
  }
340
452
  if (nonMemoryScope === _Storage.StorageScope.Secure) {
341
- clearPendingSecureWrite(config.key);
453
+ clearPendingSecureWrite(storageKey);
342
454
  }
343
- getStorageModule().remove(config.key, config.scope);
455
+ getStorageModule().remove(storageKey, config.scope);
344
456
  };
345
457
  const writeValueWithoutValidation = value => {
346
458
  if (isMemory) {
347
459
  if (memoryExpiration) {
348
- memoryExpiration.set(config.key, Date.now() + (expirationTtlMs ?? 0));
460
+ memoryExpiration.set(storageKey, Date.now() + (expirationTtlMs ?? 0));
349
461
  }
350
- memoryStore.set(config.key, value);
351
- notifyKeyListeners(memoryListeners, config.key);
462
+ memoryStore.set(storageKey, value);
463
+ notifyKeyListeners(memoryListeners, storageKey);
352
464
  return;
353
465
  }
354
466
  const serialized = serialize(value);
@@ -407,6 +519,7 @@ function createStorageItem(config) {
407
519
  if (parsed.expiresAt <= Date.now()) {
408
520
  removeStoredRaw();
409
521
  invalidateParsedCache();
522
+ onExpired?.(storageKey);
410
523
  lastValue = ensureValidatedValue(config.defaultValue, false);
411
524
  hasLastValue = true;
412
525
  return lastValue;
@@ -426,7 +539,7 @@ function createStorageItem(config) {
426
539
  const newValue = typeof valueOrFn === "function" ? valueOrFn(currentValue) : valueOrFn;
427
540
  invalidateParsedCache();
428
541
  if (validate && !validate(newValue)) {
429
- throw new Error(`Validation failed for key "${config.key}" in scope "${_Storage.StorageScope[config.scope]}".`);
542
+ throw new Error(`Validation failed for key "${storageKey}" in scope "${_Storage.StorageScope[config.scope]}".`);
430
543
  }
431
544
  writeValueWithoutValidation(newValue);
432
545
  };
@@ -434,14 +547,19 @@ function createStorageItem(config) {
434
547
  invalidateParsedCache();
435
548
  if (isMemory) {
436
549
  if (memoryExpiration) {
437
- memoryExpiration.delete(config.key);
550
+ memoryExpiration.delete(storageKey);
438
551
  }
439
- memoryStore.delete(config.key);
440
- notifyKeyListeners(memoryListeners, config.key);
552
+ memoryStore.delete(storageKey);
553
+ notifyKeyListeners(memoryListeners, storageKey);
441
554
  return;
442
555
  }
443
556
  removeStoredRaw();
444
557
  };
558
+ const hasItem = () => {
559
+ if (isMemory) return memoryStore.has(storageKey);
560
+ if (isBiometric) return getStorageModule().hasSecureBiometric(storageKey);
561
+ return getStorageModule().has(storageKey, config.scope);
562
+ };
445
563
  const subscribe = callback => {
446
564
  ensureSubscription();
447
565
  listeners.add(callback);
@@ -460,6 +578,7 @@ function createStorageItem(config) {
460
578
  get,
461
579
  set,
462
580
  delete: deleteItem,
581
+ has: hasItem,
463
582
  subscribe,
464
583
  serialize,
465
584
  deserialize,
@@ -470,8 +589,10 @@ function createStorageItem(config) {
470
589
  _hasValidation: validate !== undefined,
471
590
  _hasExpiration: expiration !== undefined,
472
591
  _readCacheEnabled: readCache,
592
+ _isBiometric: isBiometric,
593
+ _secureAccessControl: secureAccessControl,
473
594
  scope: config.scope,
474
- key: config.key
595
+ key: storageKey
475
596
  };
476
597
  return storageItem;
477
598
  }
@@ -558,7 +679,7 @@ function setBatch(items, scope) {
558
679
  }
559
680
  const useRawBatchPath = items.every(({
560
681
  item
561
- }) => canUseRawBatchPath(item));
682
+ }) => canUseRawBatchPath(asInternal(item)));
562
683
  if (!useRawBatchPath) {
563
684
  items.forEach(({
564
685
  item,
@@ -570,6 +691,7 @@ function setBatch(items, scope) {
570
691
  const values = items.map(entry => entry.item.serialize(entry.value));
571
692
  if (scope === _Storage.StorageScope.Secure) {
572
693
  flushSecureWrites();
694
+ getStorageModule().setSecureAccessControl(secureDefaultAccessControl);
573
695
  }
574
696
  getStorageModule().setBatch(keys, values, scope);
575
697
  keys.forEach((key, index) => cacheRawValue(scope, key, values[index]));
@@ -669,4 +791,23 @@ function runTransaction(scope, transaction) {
669
791
  throw error;
670
792
  }
671
793
  }
794
+ function createSecureAuthStorage(config, options) {
795
+ const ns = options?.namespace ?? "auth";
796
+ const result = {};
797
+ for (const key of Object.keys(config)) {
798
+ const itemConfig = config[key];
799
+ result[key] = createStorageItem({
800
+ key,
801
+ scope: _Storage.StorageScope.Secure,
802
+ defaultValue: "",
803
+ namespace: ns,
804
+ biometric: itemConfig.biometric,
805
+ accessControl: itemConfig.accessControl,
806
+ expiration: itemConfig.ttlMs ? {
807
+ ttlMs: itemConfig.ttlMs
808
+ } : undefined
809
+ });
810
+ }
811
+ return result;
812
+ }
672
813
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNativeNitroModules","_Storage","_internal","_migration","registeredMigrations","Map","runMicrotask","queueMicrotask","task","Promise","resolve","then","_storageModule","getStorageModule","NitroModules","createHybridObject","memoryStore","memoryListeners","scopedListeners","StorageScope","Disk","Secure","scopedUnsubscribers","scopedRawCache","pendingSecureWrites","secureFlushScheduled","getScopedListeners","scope","get","getScopeRawCache","cacheRawValue","key","value","set","readCachedRawValue","hasCachedRawValue","has","clearScopeRawCache","clear","notifyKeyListeners","registry","forEach","listener","notifyAllListeners","listeners","addKeyListener","Set","add","delete","size","readPendingSecureWrite","hasPendingSecureWrite","clearPendingSecureWrite","flushSecureWrites","writes","Array","from","values","keysToSet","valuesToSet","keysToRemove","undefined","push","storageModule","length","setBatch","removeBatch","scheduleSecureWrite","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","canUseRawBatchPath","item","_hasExpiration","_hasValidation","defaultSerialize","serializeWithPrimitiveFastPath","defaultDeserialize","deserializeWithPrimitiveFastPath","createStorageItem","config","serialize","deserialize","isMemory","validate","onValidationError","expiration","expirationTtlMs","ttlMs","memoryExpiration","readCache","coalesceSecureWrites","nonMemoryScope","Error","lastRaw","lastValue","hasLastValue","invalidateParsedCache","ensureSubscription","callback","readStoredRaw","expiresAt","Date","now","writeStoredRaw","rawValue","removeStoredRaw","writeValueWithoutValidation","serialized","envelope","__nitroStorageEnvelope","payload","JSON","stringify","resolveInvalidValue","invalidValue","defaultValue","ensureValidatedValue","candidate","hadStoredValue","resolved","canUseCachedValue","deserializableRaw","parse","isStoredEnvelope","valueOrFn","currentValue","newValue","deleteItem","subscribe","storageItem","_triggerListeners","_readCacheEnabled","useStorage","useSyncExternalStore","useStorageSelector","selector","isEqual","Object","is","selectedRef","useRef","hasValue","getSelectedSnapshot","nextSelected","current","selectedValue","useSetStorage","getBatch","items","assertBatchScope","map","useRawBatchPath","every","useBatchCache","rawValues","keysToFetch","keyIndexes","index","fetchedValues","decodeNativeBatchValue","targetIndex","batchEntry","keys","entry","registerMigration","migration","isInteger","migrateToLatest","currentVersion","versions","filter","sort","a","b","appliedVersion","context","getRaw","setRaw","removeRaw","runTransaction","transaction","rollback","rememberRollback","tx","getItem","setItem","removeItem","error","entries","reverse","previousValue"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNativeNitroModules","_Storage","_internal","_migration","asInternal","item","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","getScopedListeners","scope","get","getScopeRawCache","cacheRawValue","key","value","set","readCachedRawValue","hasCachedRawValue","has","clearScopeRawCache","clear","notifyKeyListeners","registry","forEach","listener","notifyAllListeners","listeners","addKeyListener","Set","add","delete","size","readPendingSecureWrite","hasPendingSecureWrite","clearPendingSecureWrite","flushSecureWrites","writes","Array","from","values","keysToSet","valuesToSet","keysToRemove","undefined","push","storageModule","setSecureAccessControl","length","setBatch","removeBatch","scheduleSecureWrite","ensureNativeScopeSubscription","unsubscribe","addOnChange","maybeCleanupNativeScopeSubscription","getRawValue","assertValidScope","Memory","setRawValue","removeRawValue","remove","readMigrationVersion","raw","MIGRATION_VERSION_KEY","parsed","Number","parseInt","isFinite","writeMigrationVersion","version","String","storage","exports","clearSecureBiometric","clearAll","clearNamespace","namespace","keys","isNamespaced","getAllKeys","namespacedKeys","filter","k","clearBiometric","getAll","result","getBatch","idx","val","decodeNativeBatchValue","setAccessControl","level","setKeychainAccessGroup","group","canUseRawBatchPath","_hasExpiration","_hasValidation","_isBiometric","_secureAccessControl","defaultSerialize","serializeWithPrimitiveFastPath","defaultDeserialize","deserializeWithPrimitiveFastPath","createStorageItem","config","storageKey","prefixKey","serialize","deserialize","isMemory","isBiometric","biometric","secureAccessControl","accessControl","validate","onValidationError","expiration","onExpired","expirationTtlMs","ttlMs","memoryExpiration","readCache","coalesceSecureWrites","nonMemoryScope","Error","lastRaw","lastValue","hasLastValue","invalidateParsedCache","ensureSubscription","callback","readStoredRaw","expiresAt","Date","now","getSecureBiometric","writeStoredRaw","rawValue","setSecureBiometric","removeStoredRaw","deleteSecureBiometric","writeValueWithoutValidation","serialized","envelope","__nitroStorageEnvelope","payload","JSON","stringify","resolveInvalidValue","invalidValue","defaultValue","ensureValidatedValue","candidate","hadStoredValue","resolved","canUseCachedValue","deserializableRaw","parse","isStoredEnvelope","valueOrFn","currentValue","newValue","deleteItem","hasItem","hasSecureBiometric","subscribe","storageItem","_triggerListeners","_readCacheEnabled","useStorage","useSyncExternalStore","useStorageSelector","selector","isEqual","Object","is","selectedRef","useRef","hasValue","getSelectedSnapshot","nextSelected","current","selectedValue","useSetStorage","items","assertBatchScope","map","useRawBatchPath","every","useBatchCache","rawValues","keysToFetch","keyIndexes","index","fetchedValues","targetIndex","batchEntry","entry","registerMigration","migration","isInteger","migrateToLatest","currentVersion","versions","sort","a","b","appliedVersion","context","getRaw","setRaw","removeRaw","runTransaction","transaction","rollback","rememberRollback","tx","getItem","setItem","removeItem","error","entries","reverse","previousValue","createSecureAuthStorage","options","ns","itemConfig"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}