react-native-nitro-storage 0.10.4 → 0.11.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 (87) hide show
  1. package/CHANGELOG.md +71 -14
  2. package/README.md +127 -41
  3. package/SECURITY.md +16 -6
  4. package/android/build.gradle +0 -1
  5. package/android/consumer-rules.pro +0 -3
  6. package/android/src/main/cpp/AndroidStorageAdapterCpp.cpp +1 -4
  7. package/android/src/main/cpp/AndroidStorageAdapterCpp.hpp +3 -3
  8. package/android/src/main/java/com/nitrostorage/AndroidStorageAdapter.kt +73 -23
  9. package/android/src/main/java/com/nitrostorage/DiskSqliteStore.kt +15 -0
  10. package/app.plugin.js +51 -51
  11. package/cpp/bindings/HybridStorage.cpp +25 -6
  12. package/cpp/core/NativeStorageAdapter.hpp +14 -1
  13. package/cpp/core/SqliteDiskStore.cpp +84 -11
  14. package/cpp/core/SqliteDiskStore.hpp +10 -0
  15. package/docs/api-reference.md +73 -28
  16. package/docs/benchmarks.md +4 -12
  17. package/docs/mmkv-migration.md +3 -1
  18. package/docs/native-libraries.md +10 -4
  19. package/docs/secure-storage.md +26 -12
  20. package/docs/web-backends.md +6 -2
  21. package/indexeddb-backend/package.json +6 -0
  22. package/ios/IOSStorageAdapterCpp.hpp +4 -0
  23. package/ios/IOSStorageAdapterCpp.mm +96 -18
  24. package/lib/commonjs/capabilities.js +3 -8
  25. package/lib/commonjs/capabilities.js.map +1 -1
  26. package/lib/commonjs/index.js +23 -8
  27. package/lib/commonjs/index.js.map +1 -1
  28. package/lib/commonjs/index.web.js +61 -19
  29. package/lib/commonjs/index.web.js.map +1 -1
  30. package/lib/commonjs/indexeddb-backend.js +21 -37
  31. package/lib/commonjs/indexeddb-backend.js.map +1 -1
  32. package/lib/commonjs/internal.js +6 -0
  33. package/lib/commonjs/internal.js.map +1 -1
  34. package/lib/commonjs/storage-core.js +35 -11
  35. package/lib/commonjs/storage-core.js.map +1 -1
  36. package/lib/commonjs/storage-runtime.js +1 -1
  37. package/lib/commonjs/storage-runtime.js.map +1 -1
  38. package/lib/commonjs/testing.js +68 -23
  39. package/lib/commonjs/testing.js.map +1 -1
  40. package/lib/commonjs/web-backend-contract.js +6 -2
  41. package/lib/commonjs/web-backend-contract.js.map +1 -1
  42. package/lib/module/capabilities.js +3 -8
  43. package/lib/module/capabilities.js.map +1 -1
  44. package/lib/module/index.js +14 -5
  45. package/lib/module/index.js.map +1 -1
  46. package/lib/module/index.web.js +61 -12
  47. package/lib/module/index.web.js.map +1 -1
  48. package/lib/module/indexeddb-backend.js +21 -37
  49. package/lib/module/indexeddb-backend.js.map +1 -1
  50. package/lib/module/internal.js +5 -0
  51. package/lib/module/internal.js.map +1 -1
  52. package/lib/module/storage-core.js +36 -12
  53. package/lib/module/storage-core.js.map +1 -1
  54. package/lib/module/storage-runtime.js +1 -1
  55. package/lib/module/storage-runtime.js.map +1 -1
  56. package/lib/module/testing.js +59 -16
  57. package/lib/module/testing.js.map +1 -1
  58. package/lib/module/web-backend-contract.js +5 -2
  59. package/lib/module/web-backend-contract.js.map +1 -1
  60. package/lib/typescript/capabilities.d.ts.map +1 -1
  61. package/lib/typescript/index.d.ts +8 -1
  62. package/lib/typescript/index.d.ts.map +1 -1
  63. package/lib/typescript/index.web.d.ts +7 -1
  64. package/lib/typescript/index.web.d.ts.map +1 -1
  65. package/lib/typescript/indexeddb-backend.d.ts.map +1 -1
  66. package/lib/typescript/internal.d.ts +1 -0
  67. package/lib/typescript/internal.d.ts.map +1 -1
  68. package/lib/typescript/storage-core.d.ts +1 -1
  69. package/lib/typescript/storage-core.d.ts.map +1 -1
  70. package/lib/typescript/storage-runtime.d.ts +1 -1
  71. package/lib/typescript/storage-runtime.d.ts.map +1 -1
  72. package/lib/typescript/testing.d.ts +15 -2
  73. package/lib/typescript/testing.d.ts.map +1 -1
  74. package/lib/typescript/web-backend-contract.d.ts +1 -0
  75. package/lib/typescript/web-backend-contract.d.ts.map +1 -1
  76. package/package.json +14 -5
  77. package/react-native-nitro-storage.podspec +4 -2
  78. package/src/capabilities.ts +4 -9
  79. package/src/index.ts +19 -5
  80. package/src/index.web.ts +86 -19
  81. package/src/indexeddb-backend.ts +20 -42
  82. package/src/internal.ts +8 -0
  83. package/src/storage-core.ts +52 -19
  84. package/src/storage-runtime.ts +3 -1
  85. package/src/testing.ts +91 -18
  86. package/src/web-backend-contract.ts +6 -2
  87. package/testing/package.json +8 -0
@@ -21,12 +21,7 @@ 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
+ exports.createIndexedDBBackend = void 0;
30
25
  exports.createNitroStorageMock = createNitroStorageMock;
31
26
  exports.createStorageItem = exports.createSetItem = exports.createSecureAuthStorage = void 0;
32
27
  Object.defineProperty(exports, "describeWebBackendCapabilities", {
@@ -35,13 +30,17 @@ Object.defineProperty(exports, "describeWebBackendCapabilities", {
35
30
  return _webBackendContract.describeWebBackendCapabilities;
36
31
  }
37
32
  });
38
- exports.getBatch = exports.diskItem = void 0;
33
+ exports.diskItem = void 0;
34
+ exports.flushWebStorageBackends = flushWebStorageBackends;
35
+ exports.getBatch = void 0;
39
36
  Object.defineProperty(exports, "getStorageErrorCode", {
40
37
  enumerable: true,
41
38
  get: function () {
42
39
  return _storageRuntime.getStorageErrorCode;
43
40
  }
44
41
  });
42
+ exports.getWebDiskStorageBackend = getWebDiskStorageBackend;
43
+ exports.getWebSecureStorageBackend = getWebSecureStorageBackend;
45
44
  Object.defineProperty(exports, "isIndexedDBWebBackend", {
46
45
  enumerable: true,
47
46
  get: function () {
@@ -69,7 +68,10 @@ Object.defineProperty(exports, "migrateFromMMKV", {
69
68
  });
70
69
  exports.removeBatch = exports.registerMigration = exports.migrateToLatest = void 0;
71
70
  exports.resetNitroStorageMock = resetNitroStorageMock;
72
- exports.storage = exports.setBatch = exports.secureItem = exports.runTransaction = void 0;
71
+ exports.setBatch = exports.secureItem = exports.runTransaction = void 0;
72
+ exports.setWebDiskStorageBackend = setWebDiskStorageBackend;
73
+ exports.setWebSecureStorageBackend = setWebSecureStorageBackend;
74
+ exports.storage = void 0;
73
75
  Object.defineProperty(exports, "useSetStorage", {
74
76
  enumerable: true,
75
77
  get: function () {
@@ -100,16 +102,16 @@ Object.defineProperty(exports, "useStorageValue", {
100
102
  return _storageHooks.useStorageValue;
101
103
  }
102
104
  });
105
+ var _indexeddbBackend = require("./indexeddb-backend");
103
106
  var _shared = require("./shared");
104
107
  var _storageCore = require("./storage-core");
105
108
  var _Storage = require("./Storage.types");
106
109
  var _migration = require("./migration");
107
110
  var _storageRuntime = require("./storage-runtime");
108
- var _indexeddbBackend = require("./indexeddb-backend");
109
111
  var _webBackendContract = require("./web-backend-contract");
110
112
  var _storageHooks = require("./storage-hooks");
111
113
  const TEST_SECURE_BACKEND = "in-memory-test";
112
- function createInMemoryBackend() {
114
+ function createInMemoryBackend(notify) {
113
115
  const stores = new Map([[_Storage.StorageScope.Disk, new Map()], [_Storage.StorageScope.Secure, new Map()]]);
114
116
  const biometricStore = new Map();
115
117
  const storeFor = scope => {
@@ -123,15 +125,18 @@ function createInMemoryBackend() {
123
125
  get: (key, scope) => storeFor(scope).get(key),
124
126
  set: (key, value, scope) => {
125
127
  storeFor(scope).set(key, value);
128
+ notify(scope, key);
126
129
  },
127
130
  remove: (key, scope) => {
128
131
  storeFor(scope).delete(key);
129
132
  if (scope === _Storage.StorageScope.Secure) {
130
133
  biometricStore.delete(key);
131
134
  }
135
+ notify(scope, key);
132
136
  },
133
137
  clear: scope => {
134
138
  storeFor(scope).clear();
139
+ notify(scope, null);
135
140
  },
136
141
  has: (key, scope) => storeFor(scope).has(key),
137
142
  getAllKeys: scope => Array.from(storeFor(scope).keys()),
@@ -145,6 +150,9 @@ function createInMemoryBackend() {
145
150
  store.set(key, value);
146
151
  }
147
152
  });
153
+ keys.forEach(key => {
154
+ notify(scope, key);
155
+ });
148
156
  },
149
157
  getBatch: (keys, scope) => {
150
158
  const store = storeFor(scope);
@@ -156,12 +164,16 @@ function createInMemoryBackend() {
156
164
  if (scope === _Storage.StorageScope.Secure) {
157
165
  keys.forEach(key => biometricStore.delete(key));
158
166
  }
167
+ keys.forEach(key => {
168
+ notify(scope, key);
169
+ });
159
170
  },
160
171
  removeByPrefix: (prefix, scope) => {
161
172
  const store = storeFor(scope);
162
173
  for (const key of Array.from(store.keys())) {
163
174
  if (key.startsWith(prefix)) {
164
175
  store.delete(key);
176
+ notify(scope, key);
165
177
  }
166
178
  }
167
179
  },
@@ -170,13 +182,16 @@ function createInMemoryBackend() {
170
182
  setSecureBiometricWithLevel: (key, value) => {
171
183
  biometricStore.set(key, value);
172
184
  storeFor(_Storage.StorageScope.Secure).delete(key);
185
+ notify(_Storage.StorageScope.Secure, key);
173
186
  },
174
187
  deleteSecureBiometric: key => {
175
188
  biometricStore.delete(key);
189
+ notify(_Storage.StorageScope.Secure, key);
176
190
  },
177
191
  hasSecureBiometric: key => biometricStore.has(key),
178
192
  clearSecureBiometric: () => {
179
193
  biometricStore.clear();
194
+ notify(_Storage.StorageScope.Secure, null);
180
195
  },
181
196
  resetState: () => {
182
197
  stores.forEach(store => {
@@ -187,20 +202,34 @@ function createInMemoryBackend() {
187
202
  };
188
203
  }
189
204
  function buildTestingModule() {
190
- const backend = createInMemoryBackend();
191
- const buildAdapter = _internals => ({
192
- backend,
193
- changeSource: "native",
194
- applyAccessControlOnSecureRawWrite: true,
195
- ensureScopeSubscription: _scope => {},
196
- maybeCleanupScopeSubscription: _scope => {},
197
- onWillEmitChanges: () => {},
198
- getSecureMetadataProfile: () => ({
199
- backend: TEST_SECURE_BACKEND,
200
- encrypted: "unavailable",
201
- hardwareBacked: "unavailable"
202
- })
205
+ let coreInternals;
206
+ const backend = createInMemoryBackend((scope, key) => {
207
+ if (!coreInternals) {
208
+ return;
209
+ }
210
+ const listeners = coreInternals.getScopedListeners(scope);
211
+ if (key === null) {
212
+ (0, _shared.notifyAllListeners)(listeners);
213
+ return;
214
+ }
215
+ (0, _shared.notifyKeyListeners)(listeners, key);
203
216
  });
217
+ const buildAdapter = adapterInternals => {
218
+ coreInternals = adapterInternals;
219
+ return {
220
+ backend,
221
+ changeSource: "native",
222
+ applyAccessControlOnSecureRawWrite: true,
223
+ ensureScopeSubscription: _scope => {},
224
+ maybeCleanupScopeSubscription: _scope => {},
225
+ onWillEmitChanges: () => {},
226
+ getSecureMetadataProfile: () => ({
227
+ backend: TEST_SECURE_BACKEND,
228
+ encrypted: "unavailable",
229
+ hardwareBacked: "unavailable"
230
+ })
231
+ };
232
+ };
204
233
  const core = (0, _storageCore.createStorageCore)(buildAdapter);
205
234
  const {
206
235
  internals
@@ -286,10 +315,26 @@ const registerMigration = exports.registerMigration = defaultModule.registerMigr
286
315
  const migrateToLatest = exports.migrateToLatest = defaultModule.migrateToLatest;
287
316
  const runTransaction = exports.runTransaction = defaultModule.runTransaction;
288
317
  const createSecureAuthStorage = exports.createSecureAuthStorage = defaultModule.createSecureAuthStorage;
318
+ function setWebSecureStorageBackend(_backend) {}
319
+ function getWebSecureStorageBackend() {
320
+ return undefined;
321
+ }
322
+ function setWebDiskStorageBackend(_backend) {}
323
+ function getWebDiskStorageBackend() {
324
+ return undefined;
325
+ }
326
+ async function flushWebStorageBackends() {}
289
327
  function resetNitroStorageMock() {
290
328
  defaultModule.reset();
291
329
  }
292
330
  function createNitroStorageMock() {
293
331
  return buildTestingModule();
294
332
  }
333
+
334
+ /**
335
+ * @deprecated Import `createIndexedDBBackend` from
336
+ * `react-native-nitro-storage/indexeddb-backend` instead. The root export
337
+ * will be removed in a future minor release.
338
+ */
339
+ const createIndexedDBBackend = exports.createIndexedDBBackend = _indexeddbBackend.createIndexedDBBackend;
295
340
  //# sourceMappingURL=testing.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_shared","require","_storageCore","_Storage","_migration","_storageRuntime","_indexeddbBackend","_webBackendContract","_storageHooks","TEST_SECURE_BACKEND","createInMemoryBackend","stores","Map","StorageScope","Disk","Secure","biometricStore","storeFor","scope","store","get","Error","key","set","value","remove","delete","clear","has","getAllKeys","Array","from","keys","getKeysByPrefix","prefix","filter","startsWith","size","setBatch","values","forEach","index","undefined","getBatch","map","removeBatch","removeByPrefix","setSecureAccessControl","getSecureBiometric","setSecureBiometricWithLevel","deleteSecureBiometric","hasSecureBiometric","clearSecureBiometric","resetState","buildTestingModule","backend","buildAdapter","_internals","changeSource","applyAccessControlOnSecureRawWrite","ensureScopeSubscription","_scope","maybeCleanupScopeSubscription","onWillEmitChanges","getSecureMetadataProfile","encrypted","hardwareBacked","core","createStorageCore","internals","storage","setAccessControl","level","assertAccessControlLevel","setSecureDefaultAccessControl","setSecureWritesAsync","_enabled","setKeychainAccessGroup","_group","getCapabilities","platform","disk","secure","writeBuffering","errorClassification","getSecurityCapabilities","secureStorage","accessControl","keychainAccessGroup","biometric","prompt","biometryOnly","biometryOrPasscode","metadata","perKey","listsWithoutValues","persistsTimestamps","reset","setEventObserver","setMetricsObserver","resetMetrics","clearAll","AccessControl","WhenUnlocked","createStorageItem","memoryItem","diskItem","secureItem","createSetItem","registerMigration","migrateToLatest","runTransaction","createSecureAuthStorage","defaultModule","exports","resetNitroStorageMock","createNitroStorageMock"],"sourceRoot":"../../src","sources":["testing.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_indexeddbBackend","require","_shared","_storageCore","_Storage","_migration","_storageRuntime","_webBackendContract","_storageHooks","TEST_SECURE_BACKEND","createInMemoryBackend","notify","stores","Map","StorageScope","Disk","Secure","biometricStore","storeFor","scope","store","get","Error","key","set","value","remove","delete","clear","has","getAllKeys","Array","from","keys","getKeysByPrefix","prefix","filter","startsWith","size","setBatch","values","forEach","index","undefined","getBatch","map","removeBatch","removeByPrefix","setSecureAccessControl","getSecureBiometric","setSecureBiometricWithLevel","deleteSecureBiometric","hasSecureBiometric","clearSecureBiometric","resetState","buildTestingModule","coreInternals","backend","listeners","getScopedListeners","notifyAllListeners","notifyKeyListeners","buildAdapter","adapterInternals","changeSource","applyAccessControlOnSecureRawWrite","ensureScopeSubscription","_scope","maybeCleanupScopeSubscription","onWillEmitChanges","getSecureMetadataProfile","encrypted","hardwareBacked","core","createStorageCore","internals","storage","setAccessControl","level","assertAccessControlLevel","setSecureDefaultAccessControl","setSecureWritesAsync","_enabled","setKeychainAccessGroup","_group","getCapabilities","platform","disk","secure","writeBuffering","errorClassification","getSecurityCapabilities","secureStorage","accessControl","keychainAccessGroup","biometric","prompt","biometryOnly","biometryOrPasscode","metadata","perKey","listsWithoutValues","persistsTimestamps","reset","setEventObserver","setMetricsObserver","resetMetrics","clearAll","AccessControl","WhenUnlocked","createStorageItem","memoryItem","diskItem","secureItem","createSetItem","registerMigration","migrateToLatest","runTransaction","createSecureAuthStorage","defaultModule","exports","setWebSecureStorageBackend","_backend","getWebSecureStorageBackend","setWebDiskStorageBackend","getWebDiskStorageBackend","flushWebStorageBackends","resetNitroStorageMock","createNitroStorageMock","createIndexedDBBackend","createIndexedDBBackendFromSubpath"],"sourceRoot":"../../src","sources":["testing.ts"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.describeWebBackendCapabilities = describeWebBackendCapabilities;
7
+ exports.isIndexedDBBackendName = isIndexedDBBackendName;
7
8
  exports.isIndexedDBWebBackend = isIndexedDBWebBackend;
9
+ function isIndexedDBBackendName(name) {
10
+ return name?.startsWith("indexeddb:") ?? false;
11
+ }
8
12
  function describeWebBackendCapabilities(backend) {
9
13
  if (!backend) {
10
14
  return {
@@ -15,13 +19,13 @@ function describeWebBackendCapabilities(backend) {
15
19
  };
16
20
  }
17
21
  return {
18
- buffered: backend.name?.startsWith("indexeddb:") ?? false,
22
+ buffered: isIndexedDBBackendName(backend.name),
19
23
  flushable: typeof backend.flush === "function",
20
24
  closable: typeof backend.close === "function",
21
25
  subscribable: typeof backend.subscribe === "function"
22
26
  };
23
27
  }
24
28
  function isIndexedDBWebBackend(backend) {
25
- return backend?.name?.startsWith("indexeddb:") ?? false;
29
+ return isIndexedDBBackendName(backend?.name);
26
30
  }
27
31
  //# sourceMappingURL=web-backend-contract.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["describeWebBackendCapabilities","backend","buffered","flushable","closable","subscribable","name","startsWith","flush","close","subscribe","isIndexedDBWebBackend"],"sourceRoot":"../../src","sources":["web-backend-contract.ts"],"mappings":";;;;;;;AASO,SAASA,8BAA8BA,CAC5CC,OAAsC,EACd;EACxB,IAAI,CAACA,OAAO,EAAE;IACZ,OAAO;MACLC,QAAQ,EAAE,KAAK;MACfC,SAAS,EAAE,KAAK;MAChBC,QAAQ,EAAE,KAAK;MACfC,YAAY,EAAE;IAChB,CAAC;EACH;EAEA,OAAO;IACLH,QAAQ,EAAED,OAAO,CAACK,IAAI,EAAEC,UAAU,CAAC,YAAY,CAAC,IAAI,KAAK;IACzDJ,SAAS,EAAE,OAAOF,OAAO,CAACO,KAAK,KAAK,UAAU;IAC9CJ,QAAQ,EAAE,OAAOH,OAAO,CAACQ,KAAK,KAAK,UAAU;IAC7CJ,YAAY,EAAE,OAAOJ,OAAO,CAACS,SAAS,KAAK;EAC7C,CAAC;AACH;AAEO,SAASC,qBAAqBA,CACnCV,OAAsC,EAC7B;EACT,OAAOA,OAAO,EAAEK,IAAI,EAAEC,UAAU,CAAC,YAAY,CAAC,IAAI,KAAK;AACzD","ignoreList":[]}
1
+ {"version":3,"names":["isIndexedDBBackendName","name","startsWith","describeWebBackendCapabilities","backend","buffered","flushable","closable","subscribable","flush","close","subscribe","isIndexedDBWebBackend"],"sourceRoot":"../../src","sources":["web-backend-contract.ts"],"mappings":";;;;;;;;AASO,SAASA,sBAAsBA,CAACC,IAAwB,EAAW;EACxE,OAAOA,IAAI,EAAEC,UAAU,CAAC,YAAY,CAAC,IAAI,KAAK;AAChD;AAEO,SAASC,8BAA8BA,CAC5CC,OAAsC,EACd;EACxB,IAAI,CAACA,OAAO,EAAE;IACZ,OAAO;MACLC,QAAQ,EAAE,KAAK;MACfC,SAAS,EAAE,KAAK;MAChBC,QAAQ,EAAE,KAAK;MACfC,YAAY,EAAE;IAChB,CAAC;EACH;EAEA,OAAO;IACLH,QAAQ,EAAEL,sBAAsB,CAACI,OAAO,CAACH,IAAI,CAAC;IAC9CK,SAAS,EAAE,OAAOF,OAAO,CAACK,KAAK,KAAK,UAAU;IAC9CF,QAAQ,EAAE,OAAOH,OAAO,CAACM,KAAK,KAAK,UAAU;IAC7CF,YAAY,EAAE,OAAOJ,OAAO,CAACO,SAAS,KAAK;EAC7C,CAAC;AACH;AAEO,SAASC,qBAAqBA,CACnCR,OAAsC,EAC7B;EACT,OAAOJ,sBAAsB,CAACI,OAAO,EAAEH,IAAI,CAAC;AAC9C","ignoreList":[]}
@@ -1,17 +1,12 @@
1
1
  "use strict";
2
2
 
3
+ import { isIndexedDBBackendName } from "./web-backend-contract";
3
4
  export function resolveWebWriteBuffering(diskBackendName, secureBackendName) {
4
5
  return {
5
- disk: isIndexedDBWebBackendByName(diskBackendName),
6
- secure: isIndexedDBWebBackendByName(secureBackendName)
6
+ disk: isIndexedDBBackendName(diskBackendName),
7
+ secure: isIndexedDBBackendName(secureBackendName)
7
8
  };
8
9
  }
9
- function isIndexedDBWebBackendByName(backendName) {
10
- if (!backendName) {
11
- return false;
12
- }
13
- return backendName.startsWith("indexeddb:");
14
- }
15
10
  export const DEFAULT_SECURE_WRITES_ASYNC = false;
16
11
  export function resolveNativeWriteBuffering(platform, secureWritesAsync = DEFAULT_SECURE_WRITES_ASYNC) {
17
12
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["resolveWebWriteBuffering","diskBackendName","secureBackendName","disk","isIndexedDBWebBackendByName","secure","backendName","startsWith","DEFAULT_SECURE_WRITES_ASYNC","resolveNativeWriteBuffering","platform","secureWritesAsync"],"sourceRoot":"../../src","sources":["capabilities.ts"],"mappings":";;AAUA,OAAO,SAASA,wBAAwBA,CACtCC,eAAmC,EACnCC,iBAAqC,EACrB;EAChB,OAAO;IACLC,IAAI,EAAEC,2BAA2B,CAACH,eAAe,CAAC;IAClDI,MAAM,EAAED,2BAA2B,CAACF,iBAAiB;EACvD,CAAC;AACH;AAEA,SAASE,2BAA2BA,CAACE,WAA+B,EAAW;EAC7E,IAAI,CAACA,WAAW,EAAE;IAChB,OAAO,KAAK;EACd;EACA,OAAOA,WAAW,CAACC,UAAU,CAAC,YAAY,CAAC;AAC7C;AAEA,OAAO,MAAMC,2BAA2B,GAAG,KAAK;AAEhD,OAAO,SAASC,2BAA2BA,CACzCC,QAA2B,EAC3BC,iBAA0B,GAAGH,2BAA2B,EACxC;EAChB,OAAO;IACLL,IAAI,EAAE,IAAI;IACVE,MAAM,EAAEK,QAAQ,KAAK,SAAS,GAAGC,iBAAiB,GAAG;EACvD,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["isIndexedDBBackendName","resolveWebWriteBuffering","diskBackendName","secureBackendName","disk","secure","DEFAULT_SECURE_WRITES_ASYNC","resolveNativeWriteBuffering","platform","secureWritesAsync"],"sourceRoot":"../../src","sources":["capabilities.ts"],"mappings":";;AAAA,SAASA,sBAAsB,QAAQ,wBAAwB;AAY/D,OAAO,SAASC,wBAAwBA,CACtCC,eAAmC,EACnCC,iBAAqC,EACrB;EAChB,OAAO;IACLC,IAAI,EAAEJ,sBAAsB,CAACE,eAAe,CAAC;IAC7CG,MAAM,EAAEL,sBAAsB,CAACG,iBAAiB;EAClD,CAAC;AACH;AAEA,OAAO,MAAMG,2BAA2B,GAAG,KAAK;AAEhD,OAAO,SAASC,2BAA2BA,CACzCC,QAA2B,EAC3BC,iBAA0B,GAAGH,2BAA2B,EACxC;EAChB,OAAO;IACLF,IAAI,EAAE,IAAI;IACVC,MAAM,EAAEG,QAAQ,KAAK,SAAS,GAAGC,iBAAiB,GAAG;EACvD,CAAC;AACH","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  import { Platform } from "react-native";
4
4
  import { NitroModules } from "react-native-nitro-modules";
5
5
  import { DEFAULT_SECURE_WRITES_ASYNC, resolveNativeWriteBuffering } from "./capabilities";
6
+ import { createIndexedDBBackend as createIndexedDBBackendFromSubpath } from "./indexeddb-backend";
6
7
  import { unescapeCollidingRawValue } from "./internal";
7
8
  import { assertAccessControlLevel, notifyAllListeners, notifyKeyListeners } from "./shared";
8
9
  import { createStorageCore } from "./storage-core";
@@ -11,6 +12,7 @@ export { isKeychainLockedError } from "./shared";
11
12
  export { StorageScope, AccessControl, BiometricLevel } from "./Storage.types";
12
13
  export { migrateFromMMKV } from "./migration";
13
14
  export { getStorageErrorCode, isStorageError } from "./storage-runtime";
15
+ export { describeWebBackendCapabilities, isIndexedDBWebBackend } from "./web-backend-contract";
14
16
  let _storageModule = null;
15
17
  function getStorageModule() {
16
18
  if (!_storageModule) {
@@ -106,6 +108,10 @@ function buildNativeAdapter(internals) {
106
108
  notifyAllListeners(internals.getScopedListeners(scope));
107
109
  return;
108
110
  }
111
+ if (consumeSuppressedNativeEvent(scope, key)) {
112
+ notifyKeyListeners(internals.getScopedListeners(scope), key);
113
+ return;
114
+ }
109
115
  const oldValue = scope === StorageScope.Secure ? undefined : internals.readCachedRawValue(scope, key);
110
116
  if (scope === StorageScope.Secure) {
111
117
  internals.invalidateRawCache(scope, key);
@@ -113,9 +119,6 @@ function buildNativeAdapter(internals) {
113
119
  internals.cacheRawValue(scope, key, value);
114
120
  }
115
121
  notifyKeyListeners(internals.getScopedListeners(scope), key);
116
- if (consumeSuppressedNativeEvent(scope, key)) {
117
- return;
118
- }
119
122
  internals.emitKeyChange(scope, key, oldValue === undefined ? undefined : unescapeCollidingRawValue(oldValue), value === undefined ? undefined : unescapeCollidingRawValue(value), "external", "native");
120
123
  });
121
124
  scopedUnsubscribers.set(scope, typeof unsubscribe === "function" ? unsubscribe : () => {});
@@ -180,7 +183,7 @@ export const storage = {
180
183
  getCapabilities: () => ({
181
184
  platform: "native",
182
185
  backend: {
183
- disk: "platform-preferences",
186
+ disk: "sqlite",
184
187
  secure: nativeSecureBackend
185
188
  },
186
189
  writeBuffering: resolveNativeWriteBuffering(Platform.OS === "android" ? "android" : "ios", secureWritesBuffered),
@@ -236,5 +239,11 @@ export async function flushWebStorageBackends() {
236
239
  // Native platforms do not use web storage backends.
237
240
  }
238
241
  export { useSetStorage, useStorage, useStorageActions, useStorageSelector, useStorageValue } from "./storage-hooks";
239
- export { createIndexedDBBackend } from "./indexeddb-backend";
242
+
243
+ /**
244
+ * @deprecated Import `createIndexedDBBackend` from
245
+ * `react-native-nitro-storage/indexeddb-backend` instead. The root export
246
+ * will be removed in a future minor release.
247
+ */
248
+ export const createIndexedDBBackend = createIndexedDBBackendFromSubpath;
240
249
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,YAAY,QAAQ,4BAA4B;AACzD,SACEC,2BAA2B,EAC3BC,2BAA2B,QACtB,gBAAgB;AACvB,SAASC,yBAAyB,QAAQ,YAAY;AACtD,SACEC,wBAAwB,EACxBC,kBAAkB,EAClBC,kBAAkB,QAEb,UAAU;AACjB,SACEC,iBAAiB,QAIZ,gBAAgB;AAOvB,SAASC,YAAY,QAAQ,iBAAiB;AAwB9C,SAASC,qBAAqB,QAAQ,UAAU;AAEhD,SAASD,YAAY,EAAEE,aAAa,EAAEC,cAAc,QAAQ,iBAAiB;AAE7E,SAASC,eAAe,QAAQ,aAAa;AAC7C,SACEC,mBAAmB,EACnBC,cAAc,QAKT,mBAAmB;AA6B1B,IAAIC,cAA8B,GAAG,IAAI;AAEzC,SAASC,gBAAgBA,CAAA,EAAY;EACnC,IAAI,CAACD,cAAc,EAAE;IACnBA,cAAc,GAAGf,YAAY,CAACiB,kBAAkB,CAAU,SAAS,CAAC;EACtE;EACA,OAAOF,cAAc;AACvB;AAEA,MAAMG,mBAAmB,GAAG,yBAAyB;AAErD,MAAMC,aAAiC,GAAG;EACxCC,GAAG,EAAEA,CAACC,GAAG,EAAEC,KAAK,KAAKN,gBAAgB,CAAC,CAAC,CAACI,GAAG,CAACC,GAAG,EAAEC,KAAK,CAAC;EACvDC,GAAG,EAAEA,CAACF,GAAG,EAAEG,KAAK,EAAEF,KAAK,KAAK;IAC1BN,gBAAgB,CAAC,CAAC,CAACO,GAAG,CAACF,GAAG,EAAEG,KAAK,EAAEF,KAAK,CAAC;EAC3C,CAAC;EACDG,MAAM,EAAEA,CAACJ,GAAG,EAAEC,KAAK,KAAK;IACtBN,gBAAgB,CAAC,CAAC,CAACS,MAAM,CAACJ,GAAG,EAAEC,KAAK,CAAC;EACvC,CAAC;EACDI,KAAK,EAAGJ,KAAK,IAAK;IAChBN,gBAAgB,CAAC,CAAC,CAACU,KAAK,CAACJ,KAAK,CAAC;EACjC,CAAC;EACDK,GAAG,EAAEA,CAACN,GAAG,EAAEC,KAAK,KAAKN,gBAAgB,CAAC,CAAC,CAACW,GAAG,CAACN,GAAG,EAAEC,KAAK,CAAC;EACvDM,UAAU,EAAGN,KAAK,IAAKN,gBAAgB,CAAC,CAAC,CAACY,UAAU,CAACN,KAAK,CAAC,IAAI,EAAE;EACjEO,eAAe,EAAEA,CAACC,MAAM,EAAER,KAAK,KAC7BN,gBAAgB,CAAC,CAAC,CAACa,eAAe,CAACC,MAAM,EAAER,KAAK,CAAC,IAAI,EAAE;EACzDS,IAAI,EAAGT,KAAK,IAAKN,gBAAgB,CAAC,CAAC,CAACe,IAAI,CAACT,KAAK,CAAC;EAC/CU,QAAQ,EAAEA,CAACC,IAAI,EAAEC,MAAM,EAAEZ,KAAK,KAAK;IACjCN,gBAAgB,CAAC,CAAC,CAACgB,QAAQ,CAACC,IAAI,EAAEC,MAAM,EAAEZ,KAAK,CAAC;EAClD,CAAC;EACDa,QAAQ,EAAEA,CAACF,IAAI,EAAEX,KAAK,KAAKN,gBAAgB,CAAC,CAAC,CAACmB,QAAQ,CAACF,IAAI,EAAEX,KAAK,CAAC,IAAI,EAAE;EACzEc,WAAW,EAAEA,CAACH,IAAI,EAAEX,KAAK,KAAK;IAC5BN,gBAAgB,CAAC,CAAC,CAACoB,WAAW,CAACH,IAAI,EAAEX,KAAK,CAAC;EAC7C,CAAC;EACDe,cAAc,EAAEA,CAACP,MAAM,EAAER,KAAK,KAAK;IACjCN,gBAAgB,CAAC,CAAC,CAACqB,cAAc,CAACP,MAAM,EAAER,KAAK,CAAC;EAClD,CAAC;EACDgB,sBAAsB,EAAGC,KAAK,IAAK;IACjCvB,gBAAgB,CAAC,CAAC,CAACsB,sBAAsB,CAACC,KAAK,CAAC;EAClD,CAAC;EACDC,kBAAkB,EAAGnB,GAAG,IAAKL,gBAAgB,CAAC,CAAC,CAACwB,kBAAkB,CAACnB,GAAG,CAAC;EACvEoB,2BAA2B,EAAEA,CAACpB,GAAG,EAAEG,KAAK,EAAEe,KAAK,KAAK;IAClDvB,gBAAgB,CAAC,CAAC,CAACyB,2BAA2B,CAACpB,GAAG,EAAEG,KAAK,EAAEe,KAAK,CAAC;EACnE,CAAC;EACDG,qBAAqB,EAAGrB,GAAG,IAAK;IAC9BL,gBAAgB,CAAC,CAAC,CAAC0B,qBAAqB,CAACrB,GAAG,CAAC;EAC/C,CAAC;EACDsB,kBAAkB,EAAGtB,GAAG,IAAKL,gBAAgB,CAAC,CAAC,CAAC2B,kBAAkB,CAACtB,GAAG,CAAC;EACvEuB,oBAAoB,EAAEA,CAAA,KAAM;IAC1B5B,gBAAgB,CAAC,CAAC,CAAC4B,oBAAoB,CAAC,CAAC;EAC3C;AACF,CAAC;AAED,SAASC,kBAAkBA,CACzBC,SAA+B,EACX;EACpB,MAAMC,mBAAmB,GAAG,IAAIC,GAAG,CAA6B,CAAC;EACjE,MAAMC,sBAAmE,GAAG;IAC1E,CAACzC,YAAY,CAAC0C,IAAI,GAAG,IAAIF,GAAG,CAAC,CAAC;IAC9B,CAACxC,YAAY,CAAC2C,MAAM,GAAG,IAAIH,GAAG,CAAC;EACjC,CAAC;EAED,SAASI,mBAAmBA,CAAC9B,KAAqB,EAAED,GAAW,EAAQ;IACrE,MAAMgC,gBAAgB,GAAGJ,sBAAsB,CAAC3B,KAAK,CAAC;IACtD+B,gBAAgB,CAAC9B,GAAG,CAACF,GAAG,EAAE,CAACgC,gBAAgB,CAACjC,GAAG,CAACC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACjE;EAEA,SAASiC,4BAA4BA,CACnChC,KAAqB,EACrBD,GAAW,EACF;IACT,MAAMgC,gBAAgB,GAAGJ,sBAAsB,CAAC3B,KAAK,CAAC;IACtD,MAAMiC,KAAK,GAAGF,gBAAgB,CAACjC,GAAG,CAACC,GAAG,CAAC;IACvC,IAAIkC,KAAK,KAAKC,SAAS,EAAE;MACvB,OAAO,KAAK;IACd;IACA,IAAID,KAAK,IAAI,CAAC,EAAE;MACdF,gBAAgB,CAACI,MAAM,CAACpC,GAAG,CAAC;IAC9B,CAAC,MAAM;MACLgC,gBAAgB,CAAC9B,GAAG,CAACF,GAAG,EAAEkC,KAAK,GAAG,CAAC,CAAC;IACtC;IACA,OAAO,IAAI;EACb;EAEA,SAASG,6BAA6BA,CAACpC,KAAqB,EAAQ;IAClE,IAAIyB,mBAAmB,CAACpB,GAAG,CAACL,KAAK,CAAC,EAAE;MAClC;IACF;IAEA,MAAMqC,WAAW,GAAG3C,gBAAgB,CAAC,CAAC,CAAC4C,WAAW,CAACtC,KAAK,EAAE,CAACD,GAAG,EAAEG,KAAK,KAAK;MACxE,IAAIF,KAAK,KAAKd,YAAY,CAAC0C,IAAI,EAAE;QAC/B,IAAI7B,GAAG,KAAK,EAAE,EAAE;UACdyB,SAAS,CAACe,yBAAyB,CAAC,CAAC;QACvC,CAAC,MAAM;UACLf,SAAS,CAACgB,qBAAqB,CAACzC,GAAG,CAAC;QACtC;MACF;MAEA,IAAIC,KAAK,KAAKd,YAAY,CAAC2C,MAAM,EAAE;QACjC,IAAI9B,GAAG,KAAK,EAAE,EAAE;UACdyB,SAAS,CAACiB,2BAA2B,CAAC,CAAC;QACzC,CAAC,MAAM;UACLjB,SAAS,CAACkB,uBAAuB,CAAC3C,GAAG,CAAC;QACxC;MACF;MAEA,IAAIA,GAAG,KAAK,EAAE,EAAE;QACdyB,SAAS,CAACmB,kBAAkB,CAAC3C,KAAK,CAAC;QACnCjB,kBAAkB,CAACyC,SAAS,CAACoB,kBAAkB,CAAC5C,KAAK,CAAC,CAAC;QACvD;MACF;MAEA,MAAM6C,QAAQ,GACZ7C,KAAK,KAAKd,YAAY,CAAC2C,MAAM,GACzBK,SAAS,GACTV,SAAS,CAACsB,kBAAkB,CAAC9C,KAAK,EAAED,GAAG,CAAC;MAC9C,IAAIC,KAAK,KAAKd,YAAY,CAAC2C,MAAM,EAAE;QACjCL,SAAS,CAACuB,kBAAkB,CAAC/C,KAAK,EAAED,GAAG,CAAC;MAC1C,CAAC,MAAM;QACLyB,SAAS,CAACwB,aAAa,CAAChD,KAAK,EAAED,GAAG,EAAEG,KAAK,CAAC;MAC5C;MACAlB,kBAAkB,CAACwC,SAAS,CAACoB,kBAAkB,CAAC5C,KAAK,CAAC,EAAED,GAAG,CAAC;MAC5D,IAAIiC,4BAA4B,CAAChC,KAAK,EAAED,GAAG,CAAC,EAAE;QAC5C;MACF;MACAyB,SAAS,CAACyB,aAAa,CACrBjD,KAAK,EACLD,GAAG,EACH8C,QAAQ,KAAKX,SAAS,GAClBA,SAAS,GACTrD,yBAAyB,CAACgE,QAAQ,CAAC,EACvC3C,KAAK,KAAKgC,SAAS,GAAGA,SAAS,GAAGrD,yBAAyB,CAACqB,KAAK,CAAC,EAClE,UAAU,EACV,QACF,CAAC;IACH,CAAC,CAAC;IACFuB,mBAAmB,CAACxB,GAAG,CACrBD,KAAK,EACL,OAAOqC,WAAW,KAAK,UAAU,GAAGA,WAAW,GAAG,MAAM,CAAC,CAC3D,CAAC;EACH;EAEA,SAASa,mCAAmCA,CAAClD,KAAqB,EAAQ;IACxE,MAAMmD,SAAS,GAAG3B,SAAS,CAACoB,kBAAkB,CAAC5C,KAAK,CAAC;IACrD,IACEmD,SAAS,CAAC1C,IAAI,GAAG,CAAC,IAClBe,SAAS,CAAC4B,sBAAsB,CAACpD,KAAK,CAAC,IACvCwB,SAAS,CAAC6B,gBAAgB,CAAC,CAAC,EAC5B;MACA;IACF;IAEA,MAAMhB,WAAW,GAAGZ,mBAAmB,CAAC3B,GAAG,CAACE,KAAK,CAAC;IAClD,IAAI,CAACqC,WAAW,EAAE;MAChB;IACF;IAEAA,WAAW,CAAC,CAAC;IACbZ,mBAAmB,CAACU,MAAM,CAACnC,KAAK,CAAC;EACnC;EAEA,OAAO;IACLsD,OAAO,EAAEzD,aAAa;IACtB0D,YAAY,EAAE,QAAQ;IACtBC,kCAAkC,EAAE,IAAI;IACxCC,uBAAuB,EAAErB,6BAA6B;IACtDsB,6BAA6B,EAAER,mCAAmC;IAClES,iBAAiB,EAAEA,CAAC3D,KAAK,EAAEW,IAAI,EAAEiD,SAAS,EAAEC,MAAM,KAAK;MACrD,IACEA,MAAM,KAAK,QAAQ,IACnBD,SAAS,KAAK,UAAU,IACxB5D,KAAK,KAAKd,YAAY,CAAC4E,MAAM,IAC7BrC,mBAAmB,CAACpB,GAAG,CAACL,KAAK,CAAC,EAC9B;QACAW,IAAI,CAACoD,OAAO,CAAEhE,GAAG,IAAK;UACpB+B,mBAAmB,CAAC9B,KAAK,EAAED,GAAG,CAAC;QACjC,CAAC,CAAC;MACJ;IACF,CAAC;IACDiE,wBAAwB,EAAEA,CAAA,MAAO;MAC/BV,OAAO,EAAE1D,mBAAmB;MAC5BqE,SAAS,EAAE,WAAW;MACtBC,cAAc,EAAE;IAClB,CAAC;EACH,CAAC;AACH;AAEA,MAAMC,IAAI,GAAGlF,iBAAiB,CAACsC,kBAAkB,CAAC;AAClD,MAAM;EAAEC;AAAU,CAAC,GAAG2C,IAAI;AAE1B,IAAIC,oBAAoB,GAAGzF,2BAA2B;AAEtD,OAAO,MAAM0F,OAAO,GAAG;EACrB,GAAGF,IAAI,CAACE,OAAO;EACfC,gBAAgB,EAAGrD,KAAoB,IAAK;IAC1CO,SAAS,CAAC+C,gBAAgB,CACxB,0BAA0B,EAC1BrF,YAAY,CAAC2C,MAAM,EACnB,MAAM;MACJ/C,wBAAwB,CAACmC,KAAK,CAAC;MAC/BO,SAAS,CAACgD,6BAA6B,CAACvD,KAAK,CAAC;MAC9CvB,gBAAgB,CAAC,CAAC,CAACsB,sBAAsB,CAACC,KAAK,CAAC;IAClD,CACF,CAAC;EACH,CAAC;EACDwD,oBAAoB,EAAGC,OAAgB,IAAK;IAC1ClD,SAAS,CAAC+C,gBAAgB,CACxB,8BAA8B,EAC9BrF,YAAY,CAAC2C,MAAM,EACnB,MAAM;MACJnC,gBAAgB,CAAC,CAAC,CAAC+E,oBAAoB,CAACC,OAAO,CAAC;MAChDN,oBAAoB,GAAGM,OAAO;IAChC,CACF,CAAC;EACH,CAAC;EACDC,sBAAsB,EAAGC,KAAa,IAAK;IACzCpD,SAAS,CAAC+C,gBAAgB,CACxB,gCAAgC,EAChCrF,YAAY,CAAC2C,MAAM,EACnB,MAAM;MACJnC,gBAAgB,CAAC,CAAC,CAACiF,sBAAsB,CAACC,KAAK,CAAC;IAClD,CACF,CAAC;EACH,CAAC;EACDC,eAAe,EAAEA,CAAA,MAA4B;IAC3CC,QAAQ,EAAE,QAAQ;IAClBxB,OAAO,EAAE;MACPyB,IAAI,EAAE,sBAAsB;MAC5BC,MAAM,EAAEpF;IACV,CAAC;IACDqF,cAAc,EAAErG,2BAA2B,CACzCH,QAAQ,CAACyG,EAAE,KAAK,SAAS,GAAG,SAAS,GAAG,KAAK,EAC7Cd,oBACF,CAAC;IACDe,mBAAmB,EAAE;EACvB,CAAC,CAAC;EACFC,uBAAuB,EAAEA,CAAA,MAA6B;IACpDN,QAAQ,EAAE,QAAQ;IAClBO,aAAa,EAAE;MACb/B,OAAO,EAAE1D,mBAAmB;MAC5BqE,SAAS,EAAE,WAAW;MACtBqB,aAAa,EAAE,SAAS;MACxBC,mBAAmB,EAAE,SAAS;MAC9BrB,cAAc,EAAE;IAClB,CAAC;IACDsB,SAAS,EAAE;MACTnB,OAAO,EAAE,SAAS;MAClBoB,MAAM,EAAE,SAAS;MACjBC,YAAY,EAAE,SAAS;MACvBC,kBAAkB,EAAE;IACtB,CAAC;IACDC,QAAQ,EAAE;MACRC,MAAM,EAAE,IAAI;MACZC,kBAAkB,EAAE,IAAI;MACxBC,kBAAkB,EAAE;IACtB;EACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,iBAAiB,GAAG7B,IAAI,CAAC6B,iBAAiB;AACvD,OAAO,MAAMC,UAAU,GAAG9B,IAAI,CAAC8B,UAAU;AACzC,OAAO,MAAMC,QAAQ,GAAG/B,IAAI,CAAC+B,QAAQ;AACrC,OAAO,MAAMC,UAAU,GAAGhC,IAAI,CAACgC,UAAU;AACzC,OAAO,MAAMC,aAAa,GAAGjC,IAAI,CAACiC,aAAa;AAC/C,OAAO,MAAMvF,QAAQ,GAAGsD,IAAI,CAACtD,QAAQ;AACrC,OAAO,MAAMH,QAAQ,GAAGyD,IAAI,CAACzD,QAAQ;AACrC,OAAO,MAAMI,WAAW,GAAGqD,IAAI,CAACrD,WAAW;AAC3C,OAAO,MAAMuF,iBAAiB,GAAGlC,IAAI,CAACkC,iBAAiB;AACvD,OAAO,MAAMC,eAAe,GAAGnC,IAAI,CAACmC,eAAe;AACnD,OAAO,MAAMC,cAAc,GAAGpC,IAAI,CAACoC,cAAc;AACjD,OAAO,MAAMC,uBAAuB,GAAGrC,IAAI,CAACqC,uBAAuB;AAEnE,OAAO,SAASC,0BAA0BA,CACxCC,QAAkC,EAC5B;EACN;AAAA;AAGF,OAAO,SAASC,0BAA0BA,CAAA,EACJ;EACpC,OAAOzE,SAAS;AAClB;AAEA,OAAO,SAAS0E,wBAAwBA,CACtCF,QAAgC,EAC1B;EACN;AAAA;AAGF,OAAO,SAASG,wBAAwBA,CAAA,EAAsC;EAC5E,OAAO3E,SAAS;AAClB;AAEA,OAAO,eAAe4E,uBAAuBA,CAAA,EAAkB;EAC7D;AAAA;AAGF,SACEC,aAAa,EACbC,UAAU,EACVC,iBAAiB,EACjBC,kBAAkB,EAClBC,eAAe,QACV,iBAAiB;AACxB,SAASC,sBAAsB,QAAQ,qBAAqB","ignoreList":[]}
1
+ {"version":3,"names":["Platform","NitroModules","DEFAULT_SECURE_WRITES_ASYNC","resolveNativeWriteBuffering","createIndexedDBBackend","createIndexedDBBackendFromSubpath","unescapeCollidingRawValue","assertAccessControlLevel","notifyAllListeners","notifyKeyListeners","createStorageCore","StorageScope","isKeychainLockedError","AccessControl","BiometricLevel","migrateFromMMKV","getStorageErrorCode","isStorageError","describeWebBackendCapabilities","isIndexedDBWebBackend","_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"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { resolveWebWriteBuffering } from "./capabilities";
4
+ import { createIndexedDBBackend as createIndexedDBBackendFromSubpath } from "./indexeddb-backend";
4
5
  import { unescapeCollidingRawValue } from "./internal";
5
6
  import { assertAccessControlLevel, createStorageCompositeError, assertBiometricLevel, notifyAllListeners, notifyKeyListeners } from "./shared";
6
7
  import { createStorageCore } from "./storage-core";
@@ -27,16 +28,21 @@ function getInternals() {
27
28
  }
28
29
  return internals;
29
30
  }
31
+ const DEFAULT_DISK_BACKEND_NAME = "localStorage:disk";
32
+ const DEFAULT_SECURE_BACKEND_NAME = "localStorage:secure";
33
+ function isSecureWebStorageKey(key) {
34
+ return key.startsWith(SECURE_WEB_PREFIX) || key.startsWith(BIOMETRIC_WEB_PREFIX);
35
+ }
30
36
  function createDefaultDiskBackend() {
31
37
  return createLocalStorageWebBackend({
32
- name: "localStorage:disk",
33
- includeKey: key => !key.startsWith(SECURE_WEB_PREFIX) && !key.startsWith(BIOMETRIC_WEB_PREFIX)
38
+ name: DEFAULT_DISK_BACKEND_NAME,
39
+ includeKey: key => !isSecureWebStorageKey(key)
34
40
  });
35
41
  }
36
42
  function createDefaultSecureBackend() {
37
43
  return createLocalStorageWebBackend({
38
- name: "localStorage:secure",
39
- includeKey: key => key.startsWith(SECURE_WEB_PREFIX) || key.startsWith(BIOMETRIC_WEB_PREFIX)
44
+ name: DEFAULT_SECURE_BACKEND_NAME,
45
+ includeKey: isSecureWebStorageKey
40
46
  });
41
47
  }
42
48
  let webDiskStorageBackend = createDefaultDiskBackend();
@@ -97,7 +103,9 @@ function replaceWebScopeKeyIndex(scope, keys) {
97
103
  keyIndex.clear();
98
104
  for (const key of keys) {
99
105
  if (scope === StorageScope.Disk) {
100
- keyIndex.add(key);
106
+ if (!isSecureWebStorageKey(key)) {
107
+ keyIndex.add(key);
108
+ }
101
109
  continue;
102
110
  }
103
111
  if (key.startsWith(SECURE_WEB_PREFIX)) {
@@ -208,18 +216,28 @@ function applyExternalChangeEvent(scope, key, newValue) {
208
216
  notifyKeyListeners(getInternals().getScopedListeners(scope), key);
209
217
  getInternals().emitKeyChange(scope, key, oldValue === undefined ? undefined : unescapeCollidingRawValue(oldValue), newValue === null ? undefined : unescapeCollidingRawValue(newValue), "external", "external");
210
218
  }
219
+ function usesDefaultLocalStorageBackend(scope) {
220
+ return getWebBackend(scope)?.name === (scope === StorageScope.Disk ? DEFAULT_DISK_BACKEND_NAME : DEFAULT_SECURE_BACKEND_NAME);
221
+ }
211
222
  function handleWebStorageEvent(event) {
223
+ if (typeof globalThis.localStorage === "undefined" || event.storageArea !== globalThis.localStorage) {
224
+ return;
225
+ }
212
226
  const key = event.key;
213
227
  if (key === null) {
214
- applyExternalChangeEvent(StorageScope.Disk, null, null);
215
- applyExternalChangeEvent(StorageScope.Secure, null, null);
228
+ if (usesDefaultLocalStorageBackend(StorageScope.Disk)) {
229
+ applyExternalChangeEvent(StorageScope.Disk, null, null);
230
+ }
231
+ if (usesDefaultLocalStorageBackend(StorageScope.Secure)) {
232
+ applyExternalChangeEvent(StorageScope.Secure, null, null);
233
+ }
216
234
  return;
217
235
  }
218
- if (key.startsWith(SECURE_WEB_PREFIX) || key.startsWith(BIOMETRIC_WEB_PREFIX)) {
219
- applyExternalChangeEvent(StorageScope.Secure, key, event.newValue);
236
+ const scope = isSecureWebStorageKey(key) ? StorageScope.Secure : StorageScope.Disk;
237
+ if (!usesDefaultLocalStorageBackend(scope)) {
220
238
  return;
221
239
  }
222
- applyExternalChangeEvent(StorageScope.Disk, key, event.newValue);
240
+ applyExternalChangeEvent(scope, key, event.newValue);
223
241
  }
224
242
  function subscribeToBackendChanges(scope) {
225
243
  if (externalSyncUnsubscribers.has(scope)) {
@@ -230,6 +248,20 @@ function subscribeToBackendChanges(scope) {
230
248
  return;
231
249
  }
232
250
  const unsubscribe = backend.subscribe(event => {
251
+ if (webDiskStorageBackend !== webSecureStorageBackend) {
252
+ applyExternalChangeEvent(scope, event.key, event.newValue);
253
+ return;
254
+ }
255
+ if (event.key === null) {
256
+ getInternals().clearScopeRawCache(scope);
257
+ reconcileWebScopeKeyIndex(scope);
258
+ notifyAllListeners(getInternals().getScopedListeners(scope));
259
+ return;
260
+ }
261
+ const eventScope = isSecureWebStorageKey(event.key) ? StorageScope.Secure : StorageScope.Disk;
262
+ if (eventScope !== scope) {
263
+ return;
264
+ }
233
265
  applyExternalChangeEvent(scope, event.key, event.newValue);
234
266
  });
235
267
  externalSyncUnsubscribers.set(scope, unsubscribe);
@@ -324,7 +356,18 @@ const WebStorage = {
324
356
  }
325
357
  try {
326
358
  withWebBackendOperation(scope, "clear", backend => {
327
- backend.clear();
359
+ if (webDiskStorageBackend !== webSecureStorageBackend) {
360
+ backend.clear();
361
+ return;
362
+ }
363
+ const ownedKeys = backend.getAllKeys().filter(key => scope === StorageScope.Secure ? isSecureWebStorageKey(key) : !isSecureWebStorageKey(key));
364
+ if (backend.removeMany) {
365
+ backend.removeMany(ownedKeys);
366
+ return;
367
+ }
368
+ ownedKeys.forEach(key => {
369
+ backend.removeItem(key);
370
+ });
328
371
  });
329
372
  } catch (error) {
330
373
  throwAfterWebMutationFailure(scope, "clear", error);
@@ -711,5 +754,11 @@ export async function flushWebStorageBackends() {
711
754
  }
712
755
  }
713
756
  export { useSetStorage, useStorage, useStorageActions, useStorageSelector, useStorageValue } from "./storage-hooks";
714
- export { createIndexedDBBackend } from "./indexeddb-backend";
757
+
758
+ /**
759
+ * @deprecated Import `createIndexedDBBackend` from
760
+ * `react-native-nitro-storage/indexeddb-backend` instead. The root export
761
+ * will be removed in a future minor release.
762
+ */
763
+ export const createIndexedDBBackend = createIndexedDBBackendFromSubpath;
715
764
  //# sourceMappingURL=index.web.js.map