react-native-nitro-storage 0.8.0 → 0.10.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 (78) hide show
  1. package/CHANGELOG.md +107 -25
  2. package/README.md +140 -27
  3. package/android/src/main/cpp/AndroidStorageAdapterCpp.cpp +5 -2
  4. package/android/src/main/java/com/nitrostorage/AndroidStorageAdapter.kt +240 -34
  5. package/cpp/bindings/HybridStorage.cpp +109 -293
  6. package/cpp/bindings/HybridStorage.hpp +17 -10
  7. package/docs/api-reference.md +75 -19
  8. package/docs/benchmarks.md +6 -1
  9. package/docs/keychain-lifecycle-testing.md +36 -0
  10. package/docs/recipes.md +1 -2
  11. package/docs/secure-storage.md +45 -9
  12. package/ios/IOSStorageAdapterCpp.mm +391 -175
  13. package/lib/commonjs/capabilities.js +3 -1
  14. package/lib/commonjs/capabilities.js.map +1 -1
  15. package/lib/commonjs/core/durability.js +110 -43
  16. package/lib/commonjs/core/durability.js.map +1 -1
  17. package/lib/commonjs/index.js +15 -5
  18. package/lib/commonjs/index.js.map +1 -1
  19. package/lib/commonjs/index.web.js +219 -97
  20. package/lib/commonjs/index.web.js.map +1 -1
  21. package/lib/commonjs/internal.js +3 -11
  22. package/lib/commonjs/internal.js.map +1 -1
  23. package/lib/commonjs/shared.js +62 -2
  24. package/lib/commonjs/shared.js.map +1 -1
  25. package/lib/commonjs/storage-core.js +859 -145
  26. package/lib/commonjs/storage-core.js.map +1 -1
  27. package/lib/commonjs/storage-runtime.js +5 -1
  28. package/lib/commonjs/storage-runtime.js.map +1 -1
  29. package/lib/commonjs/testing.js +13 -0
  30. package/lib/commonjs/testing.js.map +1 -1
  31. package/lib/module/capabilities.js +2 -1
  32. package/lib/module/capabilities.js.map +1 -1
  33. package/lib/module/core/durability.js +110 -43
  34. package/lib/module/core/durability.js.map +1 -1
  35. package/lib/module/index.js +12 -8
  36. package/lib/module/index.js.map +1 -1
  37. package/lib/module/index.web.js +215 -99
  38. package/lib/module/index.web.js.map +1 -1
  39. package/lib/module/internal.js +2 -9
  40. package/lib/module/internal.js.map +1 -1
  41. package/lib/module/shared.js +60 -2
  42. package/lib/module/shared.js.map +1 -1
  43. package/lib/module/storage-core.js +860 -146
  44. package/lib/module/storage-core.js.map +1 -1
  45. package/lib/module/storage-runtime.js +4 -1
  46. package/lib/module/storage-runtime.js.map +1 -1
  47. package/lib/module/testing.js +8 -1
  48. package/lib/module/testing.js.map +1 -1
  49. package/lib/typescript/capabilities.d.ts +2 -1
  50. package/lib/typescript/capabilities.d.ts.map +1 -1
  51. package/lib/typescript/core/durability.d.ts +7 -2
  52. package/lib/typescript/core/durability.d.ts.map +1 -1
  53. package/lib/typescript/index.d.ts +2 -2
  54. package/lib/typescript/index.d.ts.map +1 -1
  55. package/lib/typescript/index.web.d.ts +3 -29
  56. package/lib/typescript/index.web.d.ts.map +1 -1
  57. package/lib/typescript/internal.d.ts +0 -2
  58. package/lib/typescript/internal.d.ts.map +1 -1
  59. package/lib/typescript/shared.d.ts +19 -0
  60. package/lib/typescript/shared.d.ts.map +1 -1
  61. package/lib/typescript/storage-core.d.ts +12 -3
  62. package/lib/typescript/storage-core.d.ts.map +1 -1
  63. package/lib/typescript/storage-runtime.d.ts +2 -1
  64. package/lib/typescript/storage-runtime.d.ts.map +1 -1
  65. package/lib/typescript/testing.d.ts +1 -1
  66. package/lib/typescript/testing.d.ts.map +1 -1
  67. package/nitrogen/generated/shared/c++/HybridStorageSpec.hpp +1 -1
  68. package/package.json +3 -3
  69. package/react-native-nitro-storage.podspec +3 -1
  70. package/src/capabilities.ts +3 -1
  71. package/src/core/durability.ts +139 -39
  72. package/src/index.ts +20 -10
  73. package/src/index.web.ts +328 -166
  74. package/src/internal.ts +0 -14
  75. package/src/shared.ts +85 -0
  76. package/src/storage-core.ts +1165 -199
  77. package/src/storage-runtime.ts +6 -0
  78. package/src/testing.ts +8 -1
@@ -4,36 +4,57 @@ import { runMicrotask } from "../shared";
4
4
  import { StorageScope } from "../Storage.types";
5
5
  export function createDurabilityCoordinator(options) {
6
6
  const pendingDiskWrites = new Map();
7
+ let nextGeneration = 0;
7
8
  let diskFlushScheduled = false;
8
9
  let diskWritesAsync = false;
9
10
  const pendingSecureWrites = new Map();
10
11
  let secureFlushScheduled = false;
12
+ const securePromotionsInProgress = new Set();
13
+ function clearPendingWrites(pendingWrites, writes) {
14
+ writes.forEach(write => {
15
+ if (pendingWrites.get(write.key) === write) {
16
+ pendingWrites.delete(write.key);
17
+ }
18
+ });
19
+ }
20
+ function restorePendingWrites(pendingWrites, writes) {
21
+ writes.forEach(write => {
22
+ if (!pendingWrites.has(write.key)) {
23
+ pendingWrites.set(write.key, write);
24
+ }
25
+ });
26
+ }
11
27
  function flushDiskWrites() {
12
28
  diskFlushScheduled = false;
13
29
  if (pendingDiskWrites.size === 0) {
14
30
  return;
15
31
  }
16
32
  const writes = Array.from(pendingDiskWrites.values());
17
- pendingDiskWrites.clear();
18
- const keysToSet = [];
19
- const valuesToSet = [];
20
- const keysToRemove = [];
21
- writes.forEach(({
22
- key,
23
- value
24
- }) => {
25
- if (value === undefined) {
26
- keysToRemove.push(key);
27
- return;
33
+ const setWrites = writes.filter(write => write.value !== undefined);
34
+ const removeWrites = writes.filter(write => write.value === undefined);
35
+ if (setWrites.length > 0) {
36
+ try {
37
+ options.backend.setBatch(setWrites.map(({
38
+ key
39
+ }) => key), setWrites.map(({
40
+ value
41
+ }) => value), StorageScope.Disk);
42
+ } catch (error) {
43
+ restorePendingWrites(pendingDiskWrites, setWrites);
44
+ throw error;
28
45
  }
29
- keysToSet.push(key);
30
- valuesToSet.push(value);
31
- });
32
- if (keysToSet.length > 0) {
33
- options.backend.setBatch(keysToSet, valuesToSet, StorageScope.Disk);
46
+ clearPendingWrites(pendingDiskWrites, setWrites);
34
47
  }
35
- if (keysToRemove.length > 0) {
36
- options.backend.removeBatch(keysToRemove, StorageScope.Disk);
48
+ if (removeWrites.length > 0) {
49
+ try {
50
+ options.backend.removeBatch(removeWrites.map(({
51
+ key
52
+ }) => key), StorageScope.Disk);
53
+ } catch (error) {
54
+ restorePendingWrites(pendingDiskWrites, removeWrites);
55
+ throw error;
56
+ }
57
+ clearPendingWrites(pendingDiskWrites, removeWrites);
37
58
  }
38
59
  }
39
60
  function flushSecureWrites() {
@@ -42,63 +63,97 @@ export function createDurabilityCoordinator(options) {
42
63
  return;
43
64
  }
44
65
  const writes = Array.from(pendingSecureWrites.values());
45
- pendingSecureWrites.clear();
46
66
  const groupedSetWrites = new Map();
47
- const keysToRemove = [];
48
- writes.forEach(({
49
- key,
50
- value,
51
- accessControl
52
- }) => {
67
+ const removeWrites = [];
68
+ writes.forEach(write => {
69
+ const {
70
+ value,
71
+ accessControl
72
+ } = write;
53
73
  if (value === undefined) {
54
- keysToRemove.push(key);
74
+ removeWrites.push(write);
55
75
  } else {
56
76
  const resolvedAccessControl = accessControl ?? options.resolveSecureDefaultAccessControl();
57
77
  const existingGroup = groupedSetWrites.get(resolvedAccessControl);
58
78
  const group = existingGroup ?? {
59
- keys: [],
60
- values: []
79
+ writes: []
61
80
  };
62
- group.keys.push(key);
63
- group.values.push(value);
81
+ group.writes.push(write);
64
82
  if (!existingGroup) {
65
83
  groupedSetWrites.set(resolvedAccessControl, group);
66
84
  }
67
85
  }
68
86
  });
69
- groupedSetWrites.forEach((group, accessControl) => {
70
- options.backend.setSecureAccessControl(accessControl);
71
- options.backend.setBatch(group.keys, group.values, StorageScope.Secure);
72
- });
73
- if (keysToRemove.length > 0) {
74
- options.backend.removeBatch(keysToRemove, StorageScope.Secure);
87
+ for (const [accessControl, group] of groupedSetWrites) {
88
+ try {
89
+ options.backend.setSecureAccessControl(accessControl);
90
+ options.backend.setBatch(group.writes.map(({
91
+ key
92
+ }) => key), group.writes.map(({
93
+ value
94
+ }) => value), StorageScope.Secure);
95
+ } catch (error) {
96
+ restorePendingWrites(pendingSecureWrites, group.writes);
97
+ throw error;
98
+ }
99
+ clearPendingWrites(pendingSecureWrites, group.writes);
100
+ }
101
+ if (removeWrites.length > 0) {
102
+ try {
103
+ options.backend.removeBatch(removeWrites.map(({
104
+ key
105
+ }) => key), StorageScope.Secure);
106
+ } catch (error) {
107
+ restorePendingWrites(pendingSecureWrites, removeWrites);
108
+ throw error;
109
+ }
110
+ clearPendingWrites(pendingSecureWrites, removeWrites);
75
111
  }
76
112
  }
77
113
  function scheduleDiskWrite(key, value) {
78
- pendingDiskWrites.set(key, {
114
+ const pendingWrite = {
79
115
  key,
80
- value
81
- });
116
+ value,
117
+ generation: ++nextGeneration
118
+ };
119
+ pendingDiskWrites.set(key, pendingWrite);
82
120
  if (diskFlushScheduled) {
83
- return;
121
+ return pendingWrite;
84
122
  }
85
123
  diskFlushScheduled = true;
86
124
  runMicrotask(flushDiskWrites);
125
+ return pendingWrite;
87
126
  }
88
127
  function scheduleSecureWrite(key, value, accessControl) {
89
128
  const pendingWrite = {
90
129
  key,
91
- value
130
+ value,
131
+ generation: ++nextGeneration
92
132
  };
93
133
  if (accessControl !== undefined) {
94
134
  pendingWrite.accessControl = accessControl;
95
135
  }
96
136
  pendingSecureWrites.set(key, pendingWrite);
97
137
  if (secureFlushScheduled) {
98
- return;
138
+ return pendingWrite;
99
139
  }
100
140
  secureFlushScheduled = true;
101
141
  runMicrotask(flushSecureWrites);
142
+ return pendingWrite;
143
+ }
144
+ function runSecurePromotion(key, promotion) {
145
+ if (securePromotionsInProgress.has(key)) {
146
+ throw new Error("NitroStorage: Reentrant secure promotion");
147
+ }
148
+ securePromotionsInProgress.add(key);
149
+ try {
150
+ if (pendingSecureWrites.has(key)) {
151
+ flushSecureWrites();
152
+ }
153
+ return promotion();
154
+ } finally {
155
+ securePromotionsInProgress.delete(key);
156
+ }
102
157
  }
103
158
  return {
104
159
  setDiskWritesAsync(enabled) {
@@ -112,12 +167,23 @@ export function createDurabilityCoordinator(options) {
112
167
  hasPendingSecureWrite: key => pendingSecureWrites.has(key),
113
168
  readPendingDiskWrite: key => pendingDiskWrites.get(key)?.value,
114
169
  readPendingSecureWrite: key => pendingSecureWrites.get(key)?.value,
170
+ readPendingSecureAccessControl: key => pendingSecureWrites.get(key)?.accessControl,
115
171
  clearPendingDiskWrite: key => {
116
172
  pendingDiskWrites.delete(key);
117
173
  },
118
174
  clearPendingSecureWrite: key => {
119
175
  pendingSecureWrites.delete(key);
120
176
  },
177
+ clearPendingDiskWriteIf: write => {
178
+ if (pendingDiskWrites.get(write.key) === write) {
179
+ pendingDiskWrites.delete(write.key);
180
+ }
181
+ },
182
+ clearPendingSecureWriteIf: write => {
183
+ if (pendingSecureWrites.get(write.key) === write) {
184
+ pendingSecureWrites.delete(write.key);
185
+ }
186
+ },
121
187
  clearAllPendingDiskWrites: () => {
122
188
  pendingDiskWrites.clear();
123
189
  },
@@ -127,7 +193,8 @@ export function createDurabilityCoordinator(options) {
127
193
  scheduleDiskWrite,
128
194
  scheduleSecureWrite,
129
195
  flushDiskWrites,
130
- flushSecureWrites
196
+ flushSecureWrites,
197
+ runSecurePromotion
131
198
  };
132
199
  }
133
200
  //# sourceMappingURL=durability.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["runMicrotask","StorageScope","createDurabilityCoordinator","options","pendingDiskWrites","Map","diskFlushScheduled","diskWritesAsync","pendingSecureWrites","secureFlushScheduled","flushDiskWrites","size","writes","Array","from","values","clear","keysToSet","valuesToSet","keysToRemove","forEach","key","value","undefined","push","length","backend","setBatch","Disk","removeBatch","flushSecureWrites","groupedSetWrites","accessControl","resolvedAccessControl","resolveSecureDefaultAccessControl","existingGroup","get","group","keys","set","setSecureAccessControl","Secure","scheduleDiskWrite","scheduleSecureWrite","pendingWrite","setDiskWritesAsync","enabled","isDiskWritesAsync","hasPendingDiskWrite","has","hasPendingSecureWrite","readPendingDiskWrite","readPendingSecureWrite","clearPendingDiskWrite","delete","clearPendingSecureWrite","clearAllPendingDiskWrites","clearAllPendingSecureWrites"],"sourceRoot":"../../../src","sources":["core/durability.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["runMicrotask","StorageScope","createDurabilityCoordinator","options","pendingDiskWrites","Map","nextGeneration","diskFlushScheduled","diskWritesAsync","pendingSecureWrites","secureFlushScheduled","securePromotionsInProgress","Set","clearPendingWrites","pendingWrites","writes","forEach","write","get","key","delete","restorePendingWrites","has","set","flushDiskWrites","size","Array","from","values","setWrites","filter","value","undefined","removeWrites","length","backend","setBatch","map","Disk","error","removeBatch","flushSecureWrites","groupedSetWrites","accessControl","push","resolvedAccessControl","resolveSecureDefaultAccessControl","existingGroup","group","setSecureAccessControl","Secure","scheduleDiskWrite","pendingWrite","generation","scheduleSecureWrite","runSecurePromotion","promotion","Error","add","setDiskWritesAsync","enabled","isDiskWritesAsync","hasPendingDiskWrite","hasPendingSecureWrite","readPendingDiskWrite","readPendingSecureWrite","readPendingSecureAccessControl","clearPendingDiskWrite","clearPendingSecureWrite","clearPendingDiskWriteIf","clearPendingSecureWriteIf","clearAllPendingDiskWrites","clear","clearAllPendingSecureWrites"],"sourceRoot":"../../../src","sources":["core/durability.ts"],"mappings":"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","ignoreList":[]}
@@ -2,15 +2,15 @@
2
2
 
3
3
  import { Platform } from "react-native";
4
4
  import { NitroModules } from "react-native-nitro-modules";
5
- import { resolveNativeWriteBuffering } from "./capabilities";
6
- import { decodeNativeBatchValue, unescapeCollidingRawValue } from "./internal";
5
+ import { DEFAULT_SECURE_WRITES_ASYNC, resolveNativeWriteBuffering } from "./capabilities";
6
+ import { unescapeCollidingRawValue } from "./internal";
7
7
  import { assertAccessControlLevel, notifyAllListeners, notifyKeyListeners } from "./shared";
8
8
  import { createStorageCore } from "./storage-core";
9
9
  import { StorageScope } from "./Storage.types";
10
10
  export { isKeychainLockedError } from "./shared";
11
11
  export { StorageScope, AccessControl, BiometricLevel } from "./Storage.types";
12
12
  export { migrateFromMMKV } from "./migration";
13
- export { getStorageErrorCode } from "./storage-runtime";
13
+ export { getStorageErrorCode, isStorageError } from "./storage-runtime";
14
14
  let _storageModule = null;
15
15
  function getStorageModule() {
16
16
  if (!_storageModule) {
@@ -37,7 +37,7 @@ const nativeBackend = {
37
37
  setBatch: (keys, values, scope) => {
38
38
  getStorageModule().setBatch(keys, values, scope);
39
39
  },
40
- getBatch: (keys, scope) => (getStorageModule().getBatch(keys, scope) ?? []).map(value => decodeNativeBatchValue(value)),
40
+ getBatch: (keys, scope) => getStorageModule().getBatch(keys, scope) ?? [],
41
41
  removeBatch: (keys, scope) => {
42
42
  getStorageModule().removeBatch(keys, scope);
43
43
  },
@@ -106,8 +106,12 @@ function buildNativeAdapter(internals) {
106
106
  notifyAllListeners(internals.getScopedListeners(scope));
107
107
  return;
108
108
  }
109
- const oldValue = internals.readCachedRawValue(scope, key);
110
- internals.cacheRawValue(scope, key, value);
109
+ const oldValue = scope === StorageScope.Secure ? undefined : internals.readCachedRawValue(scope, key);
110
+ if (scope === StorageScope.Secure) {
111
+ internals.invalidateRawCache(scope, key);
112
+ } else {
113
+ internals.cacheRawValue(scope, key, value);
114
+ }
111
115
  notifyKeyListeners(internals.getScopedListeners(scope), key);
112
116
  if (consumeSuppressedNativeEvent(scope, key)) {
113
117
  return;
@@ -152,7 +156,7 @@ const core = createStorageCore(buildNativeAdapter);
152
156
  const {
153
157
  internals
154
158
  } = core;
155
- let secureWritesBuffered = false;
159
+ let secureWritesBuffered = DEFAULT_SECURE_WRITES_ASYNC;
156
160
  export const storage = {
157
161
  ...core.storage,
158
162
  setAccessControl: level => {
@@ -164,8 +168,8 @@ export const storage = {
164
168
  },
165
169
  setSecureWritesAsync: enabled => {
166
170
  internals.measureOperation("storage:setSecureWritesAsync", StorageScope.Secure, () => {
167
- secureWritesBuffered = enabled;
168
171
  getStorageModule().setSecureWritesAsync(enabled);
172
+ secureWritesBuffered = enabled;
169
173
  });
170
174
  },
171
175
  setKeychainAccessGroup: group => {
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","NitroModules","resolveNativeWriteBuffering","decodeNativeBatchValue","unescapeCollidingRawValue","assertAccessControlLevel","notifyAllListeners","notifyKeyListeners","createStorageCore","StorageScope","isKeychainLockedError","AccessControl","BiometricLevel","migrateFromMMKV","getStorageErrorCode","_storageModule","getStorageModule","createHybridObject","nativeSecureBackend","nativeBackend","get","key","scope","set","value","remove","clear","has","getAllKeys","getKeysByPrefix","prefix","size","setBatch","keys","values","getBatch","map","removeBatch","removeByPrefix","setSecureAccessControl","level","getSecureBiometric","setSecureBiometricWithLevel","deleteSecureBiometric","hasSecureBiometric","clearSecureBiometric","buildNativeAdapter","internals","scopedUnsubscribers","Map","suppressedNativeEvents","Disk","Secure","suppressNativeEvent","suppressedEvents","consumeSuppressedNativeEvent","count","undefined","delete","ensureNativeScopeSubscription","unsubscribe","addOnChange","clearAllPendingDiskWrites","clearPendingDiskWrite","clearAllPendingSecureWrites","clearPendingSecureWrite","clearScopeRawCache","getScopedListeners","oldValue","readCachedRawValue","cacheRawValue","emitKeyChange","maybeCleanupNativeScopeSubscription","listeners","hasScopeEventListeners","hasEventObserver","backend","changeSource","applyAccessControlOnSecureRawWrite","ensureScopeSubscription","maybeCleanupScopeSubscription","onWillEmitChanges","operation","source","Memory","forEach","getSecureMetadataProfile","encrypted","hardwareBacked","core","secureWritesBuffered","storage","setAccessControl","measureOperation","setSecureDefaultAccessControl","setSecureWritesAsync","enabled","setKeychainAccessGroup","group","getCapabilities","platform","disk","secure","writeBuffering","OS","errorClassification","getSecurityCapabilities","secureStorage","accessControl","keychainAccessGroup","biometric","prompt","biometryOnly","biometryOrPasscode","metadata","perKey","listsWithoutValues","persistsTimestamps","createStorageItem","memoryItem","diskItem","secureItem","createSetItem","registerMigration","migrateToLatest","runTransaction","createSecureAuthStorage","setWebSecureStorageBackend","_backend","getWebSecureStorageBackend","setWebDiskStorageBackend","getWebDiskStorageBackend","flushWebStorageBackends","useSetStorage","useStorage","useStorageActions","useStorageSelector","useStorageValue","createIndexedDBBackend"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","NitroModules","DEFAULT_SECURE_WRITES_ASYNC","resolveNativeWriteBuffering","unescapeCollidingRawValue","assertAccessControlLevel","notifyAllListeners","notifyKeyListeners","createStorageCore","StorageScope","isKeychainLockedError","AccessControl","BiometricLevel","migrateFromMMKV","getStorageErrorCode","isStorageError","_storageModule","getStorageModule","createHybridObject","nativeSecureBackend","nativeBackend","get","key","scope","set","value","remove","clear","has","getAllKeys","getKeysByPrefix","prefix","size","setBatch","keys","values","getBatch","removeBatch","removeByPrefix","setSecureAccessControl","level","getSecureBiometric","setSecureBiometricWithLevel","deleteSecureBiometric","hasSecureBiometric","clearSecureBiometric","buildNativeAdapter","internals","scopedUnsubscribers","Map","suppressedNativeEvents","Disk","Secure","suppressNativeEvent","suppressedEvents","consumeSuppressedNativeEvent","count","undefined","delete","ensureNativeScopeSubscription","unsubscribe","addOnChange","clearAllPendingDiskWrites","clearPendingDiskWrite","clearAllPendingSecureWrites","clearPendingSecureWrite","clearScopeRawCache","getScopedListeners","oldValue","readCachedRawValue","invalidateRawCache","cacheRawValue","emitKeyChange","maybeCleanupNativeScopeSubscription","listeners","hasScopeEventListeners","hasEventObserver","backend","changeSource","applyAccessControlOnSecureRawWrite","ensureScopeSubscription","maybeCleanupScopeSubscription","onWillEmitChanges","operation","source","Memory","forEach","getSecureMetadataProfile","encrypted","hardwareBacked","core","secureWritesBuffered","storage","setAccessControl","measureOperation","setSecureDefaultAccessControl","setSecureWritesAsync","enabled","setKeychainAccessGroup","group","getCapabilities","platform","disk","secure","writeBuffering","OS","errorClassification","getSecurityCapabilities","secureStorage","accessControl","keychainAccessGroup","biometric","prompt","biometryOnly","biometryOrPasscode","metadata","perKey","listsWithoutValues","persistsTimestamps","createStorageItem","memoryItem","diskItem","secureItem","createSetItem","registerMigration","migrateToLatest","runTransaction","createSecureAuthStorage","setWebSecureStorageBackend","_backend","getWebSecureStorageBackend","setWebDiskStorageBackend","getWebDiskStorageBackend","flushWebStorageBackends","useSetStorage","useStorage","useStorageActions","useStorageSelector","useStorageValue","createIndexedDBBackend"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}