react-native-nitro-storage 0.5.1 → 0.5.2
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.
- package/README.md +2 -2
- package/docs/benchmarks.md +1 -1
- package/docs/secure-storage.md +1 -1
- package/lib/commonjs/indexeddb-backend.js +7 -0
- package/lib/commonjs/indexeddb-backend.js.map +1 -1
- package/lib/module/indexeddb-backend.js +7 -0
- package/lib/module/indexeddb-backend.js.map +1 -1
- package/lib/typescript/indexeddb-backend.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/indexeddb-backend.ts +8 -0
package/README.md
CHANGED
|
@@ -390,7 +390,7 @@ bun run test -- --filter=react-native-nitro-storage
|
|
|
390
390
|
bun run test:coverage -- --filter=react-native-nitro-storage
|
|
391
391
|
bun run test:cpp -- --filter=react-native-nitro-storage
|
|
392
392
|
bun run test:cpp:coverage -- --filter=react-native-nitro-storage
|
|
393
|
-
|
|
393
|
+
(cd packages/react-native-nitro-storage && bun run check:pack)
|
|
394
394
|
bun run publish-package:dry -- --yes --with-coverage
|
|
395
395
|
```
|
|
396
396
|
|
|
@@ -411,7 +411,7 @@ Release checks:
|
|
|
411
411
|
```sh
|
|
412
412
|
bun run build -- --filter=react-native-nitro-storage
|
|
413
413
|
bun run benchmark -- --filter=react-native-nitro-storage
|
|
414
|
-
|
|
414
|
+
(cd packages/react-native-nitro-storage && bun run check:pack)
|
|
415
415
|
bun run publish-package:dry -- --yes
|
|
416
416
|
```
|
|
417
417
|
|
package/docs/benchmarks.md
CHANGED
|
@@ -30,7 +30,7 @@ bun run test -- --filter=react-native-nitro-storage
|
|
|
30
30
|
bun run test:cpp -- --filter=react-native-nitro-storage
|
|
31
31
|
bun run build -- --filter=react-native-nitro-storage
|
|
32
32
|
bun run benchmark -- --filter=react-native-nitro-storage
|
|
33
|
-
|
|
33
|
+
(cd packages/react-native-nitro-storage && bun run check:pack)
|
|
34
34
|
npm publish --dry-run
|
|
35
35
|
```
|
|
36
36
|
|
package/docs/secure-storage.md
CHANGED
|
@@ -184,7 +184,7 @@ Before releasing secure-storage changes, run:
|
|
|
184
184
|
```sh
|
|
185
185
|
bun run test -- --filter=react-native-nitro-storage
|
|
186
186
|
bun run test:cpp -- --filter=react-native-nitro-storage
|
|
187
|
-
|
|
187
|
+
(cd packages/react-native-nitro-storage && bun run check:pack)
|
|
188
188
|
```
|
|
189
189
|
|
|
190
190
|
Also run an end-to-end auth flow on a locked/unlocked real device when changing biometric or Keychain behavior.
|
|
@@ -59,6 +59,7 @@ async function createIndexedDBBackend(dbName = DEFAULT_DB_NAME, storeName = DEFA
|
|
|
59
59
|
const db = await openDB(dbName, storeName);
|
|
60
60
|
const cache = new Map();
|
|
61
61
|
const pendingWrites = new Set();
|
|
62
|
+
const pendingErrors = [];
|
|
62
63
|
const subscribers = new Set();
|
|
63
64
|
const sourceId = `nitro-storage-${Math.random().toString(36).slice(2)}`;
|
|
64
65
|
const channelName = options.channelName ?? `nitro-storage:${dbName}:${storeName}`;
|
|
@@ -70,6 +71,7 @@ async function createIndexedDBBackend(dbName = DEFAULT_DB_NAME, storeName = DEFA
|
|
|
70
71
|
}
|
|
71
72
|
function handleAsyncError(error) {
|
|
72
73
|
const normalized = error instanceof Error ? error : new Error(String(error ?? "Unknown IndexedDB error"));
|
|
74
|
+
pendingErrors.push(normalized);
|
|
73
75
|
options.onError?.(normalized);
|
|
74
76
|
}
|
|
75
77
|
channel?.addEventListener("message", event => {
|
|
@@ -245,6 +247,11 @@ async function createIndexedDBBackend(dbName = DEFAULT_DB_NAME, storeName = DEFA
|
|
|
245
247
|
},
|
|
246
248
|
async flush() {
|
|
247
249
|
await Promise.all(Array.from(pendingWrites));
|
|
250
|
+
if (pendingErrors.length === 0) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
const [error] = pendingErrors.splice(0);
|
|
254
|
+
throw error;
|
|
248
255
|
}
|
|
249
256
|
};
|
|
250
257
|
return backend;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_DB_NAME","DEFAULT_STORE_NAME","DB_VERSION","openDB","dbName","storeName","Promise","resolve","reject","indexedDB","Error","request","open","onupgradeneeded","db","result","objectStoreNames","contains","createObjectStore","onsuccess","onerror","error","createIndexedDBBackend","options","cache","Map","pendingWrites","Set","subscribers","sourceId","Math","random","toString","slice","channelName","channel","BroadcastChannel","emitExternal","event","forEach","subscriber","handleAsyncError","normalized","String","onError","addEventListener","data","key","clear","newValue","delete","set","publish","postMessage","tx","transaction","store","objectStore","openCursor","cursor","value","continue","oncomplete","trackWrite","pending","onabort","add","finally","persistSet","put","persistDelete","persistClear","backend","name","getItem","get","setItem","removeItem","getAllKeys","Array","from","keys","getMany","map","setMany","entries","removeMany","size","subscribe","listener","flush","all"],"sourceRoot":"../../src","sources":["indexeddb-backend.ts"],"mappings":";;;;;;AAKA,MAAMA,eAAe,GAAG,sBAAsB;AAC9C,MAAMC,kBAAkB,GAAG,UAAU;AACrC,MAAMC,UAAU,GAAG,CAAC;AAOpB;AACA;AACA;AACA;AACA,SAASC,MAAMA,CAACC,MAAc,EAAEC,SAAiB,EAAwB;EACvE,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtC,IAAI,OAAOC,SAAS,KAAK,WAAW,EAAE;MACpCD,MAAM,CAAC,IAAIE,KAAK,CAAC,iDAAiD,CAAC,CAAC;MACpE;IACF;IAEA,MAAMC,OAAO,GAAGF,SAAS,CAACG,IAAI,CAACR,MAAM,EAAEF,UAAU,CAAC;IAElDS,OAAO,CAACE,eAAe,GAAG,MAAM;MAC9B,MAAMC,EAAE,GAAGH,OAAO,CAACI,MAAM;MACzB,IAAI,CAACD,EAAE,CAACE,gBAAgB,CAACC,QAAQ,CAACZ,SAAS,CAAC,EAAE;QAC5CS,EAAE,CAACI,iBAAiB,CAACb,SAAS,CAAC;MACjC;IACF,CAAC;IAEDM,OAAO,CAACQ,SAAS,GAAG,MAAMZ,OAAO,CAACI,OAAO,CAACI,MAAM,CAAC;IACjDJ,OAAO,CAACS,OAAO,GAAG,MAChBZ,MAAM,CAACG,OAAO,CAACU,KAAK,IAAI,IAAIX,KAAK,CAAC,oCAAoC,CAAC,CAAC;EAC5E,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeY,sBAAsBA,CAC1ClB,MAAM,GAAGJ,eAAe,EACxBK,SAAS,GAAGJ,kBAAkB,EAC9BsB,OAAgC,GAAG,CAAC,CAAC,EACH;EAClC,MAAMT,EAAE,GAAG,MAAMX,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC;EAC1C,MAAMmB,KAAK,GAAG,IAAIC,GAAG,CAAiB,CAAC;EACvC,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAAgB,CAAC;EAC9C,MAAMC,WAAW,GAAG,
|
|
1
|
+
{"version":3,"names":["DEFAULT_DB_NAME","DEFAULT_STORE_NAME","DB_VERSION","openDB","dbName","storeName","Promise","resolve","reject","indexedDB","Error","request","open","onupgradeneeded","db","result","objectStoreNames","contains","createObjectStore","onsuccess","onerror","error","createIndexedDBBackend","options","cache","Map","pendingWrites","Set","pendingErrors","subscribers","sourceId","Math","random","toString","slice","channelName","channel","BroadcastChannel","emitExternal","event","forEach","subscriber","handleAsyncError","normalized","String","push","onError","addEventListener","data","key","clear","newValue","delete","set","publish","postMessage","tx","transaction","store","objectStore","openCursor","cursor","value","continue","oncomplete","trackWrite","pending","onabort","add","finally","persistSet","put","persistDelete","persistClear","backend","name","getItem","get","setItem","removeItem","getAllKeys","Array","from","keys","getMany","map","setMany","entries","removeMany","size","subscribe","listener","flush","all","length","splice"],"sourceRoot":"../../src","sources":["indexeddb-backend.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -55,6 +55,7 @@ export async function createIndexedDBBackend(dbName = DEFAULT_DB_NAME, storeName
|
|
|
55
55
|
const db = await openDB(dbName, storeName);
|
|
56
56
|
const cache = new Map();
|
|
57
57
|
const pendingWrites = new Set();
|
|
58
|
+
const pendingErrors = [];
|
|
58
59
|
const subscribers = new Set();
|
|
59
60
|
const sourceId = `nitro-storage-${Math.random().toString(36).slice(2)}`;
|
|
60
61
|
const channelName = options.channelName ?? `nitro-storage:${dbName}:${storeName}`;
|
|
@@ -66,6 +67,7 @@ export async function createIndexedDBBackend(dbName = DEFAULT_DB_NAME, storeName
|
|
|
66
67
|
}
|
|
67
68
|
function handleAsyncError(error) {
|
|
68
69
|
const normalized = error instanceof Error ? error : new Error(String(error ?? "Unknown IndexedDB error"));
|
|
70
|
+
pendingErrors.push(normalized);
|
|
69
71
|
options.onError?.(normalized);
|
|
70
72
|
}
|
|
71
73
|
channel?.addEventListener("message", event => {
|
|
@@ -241,6 +243,11 @@ export async function createIndexedDBBackend(dbName = DEFAULT_DB_NAME, storeName
|
|
|
241
243
|
},
|
|
242
244
|
async flush() {
|
|
243
245
|
await Promise.all(Array.from(pendingWrites));
|
|
246
|
+
if (pendingErrors.length === 0) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
const [error] = pendingErrors.splice(0);
|
|
250
|
+
throw error;
|
|
244
251
|
}
|
|
245
252
|
};
|
|
246
253
|
return backend;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_DB_NAME","DEFAULT_STORE_NAME","DB_VERSION","openDB","dbName","storeName","Promise","resolve","reject","indexedDB","Error","request","open","onupgradeneeded","db","result","objectStoreNames","contains","createObjectStore","onsuccess","onerror","error","createIndexedDBBackend","options","cache","Map","pendingWrites","Set","subscribers","sourceId","Math","random","toString","slice","channelName","channel","BroadcastChannel","emitExternal","event","forEach","subscriber","handleAsyncError","normalized","String","onError","addEventListener","data","key","clear","newValue","delete","set","publish","postMessage","tx","transaction","store","objectStore","openCursor","cursor","value","continue","oncomplete","trackWrite","pending","onabort","add","finally","persistSet","put","persistDelete","persistClear","backend","name","getItem","get","setItem","removeItem","getAllKeys","Array","from","keys","getMany","map","setMany","entries","removeMany","size","subscribe","listener","flush","all"],"sourceRoot":"../../src","sources":["indexeddb-backend.ts"],"mappings":";;AAKA,MAAMA,eAAe,GAAG,sBAAsB;AAC9C,MAAMC,kBAAkB,GAAG,UAAU;AACrC,MAAMC,UAAU,GAAG,CAAC;AAOpB;AACA;AACA;AACA;AACA,SAASC,MAAMA,CAACC,MAAc,EAAEC,SAAiB,EAAwB;EACvE,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtC,IAAI,OAAOC,SAAS,KAAK,WAAW,EAAE;MACpCD,MAAM,CAAC,IAAIE,KAAK,CAAC,iDAAiD,CAAC,CAAC;MACpE;IACF;IAEA,MAAMC,OAAO,GAAGF,SAAS,CAACG,IAAI,CAACR,MAAM,EAAEF,UAAU,CAAC;IAElDS,OAAO,CAACE,eAAe,GAAG,MAAM;MAC9B,MAAMC,EAAE,GAAGH,OAAO,CAACI,MAAM;MACzB,IAAI,CAACD,EAAE,CAACE,gBAAgB,CAACC,QAAQ,CAACZ,SAAS,CAAC,EAAE;QAC5CS,EAAE,CAACI,iBAAiB,CAACb,SAAS,CAAC;MACjC;IACF,CAAC;IAEDM,OAAO,CAACQ,SAAS,GAAG,MAAMZ,OAAO,CAACI,OAAO,CAACI,MAAM,CAAC;IACjDJ,OAAO,CAACS,OAAO,GAAG,MAChBZ,MAAM,CAACG,OAAO,CAACU,KAAK,IAAI,IAAIX,KAAK,CAAC,oCAAoC,CAAC,CAAC;EAC5E,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeY,sBAAsBA,CAC1ClB,MAAM,GAAGJ,eAAe,EACxBK,SAAS,GAAGJ,kBAAkB,EAC9BsB,OAAgC,GAAG,CAAC,CAAC,EACH;EAClC,MAAMT,EAAE,GAAG,MAAMX,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC;EAC1C,MAAMmB,KAAK,GAAG,IAAIC,GAAG,CAAiB,CAAC;EACvC,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAAgB,CAAC;EAC9C,MAAMC,WAAW,GAAG,
|
|
1
|
+
{"version":3,"names":["DEFAULT_DB_NAME","DEFAULT_STORE_NAME","DB_VERSION","openDB","dbName","storeName","Promise","resolve","reject","indexedDB","Error","request","open","onupgradeneeded","db","result","objectStoreNames","contains","createObjectStore","onsuccess","onerror","error","createIndexedDBBackend","options","cache","Map","pendingWrites","Set","pendingErrors","subscribers","sourceId","Math","random","toString","slice","channelName","channel","BroadcastChannel","emitExternal","event","forEach","subscriber","handleAsyncError","normalized","String","push","onError","addEventListener","data","key","clear","newValue","delete","set","publish","postMessage","tx","transaction","store","objectStore","openCursor","cursor","value","continue","oncomplete","trackWrite","pending","onabort","add","finally","persistSet","put","persistDelete","persistClear","backend","name","getItem","get","setItem","removeItem","getAllKeys","Array","from","keys","getMany","map","setMany","entries","removeMany","size","subscribe","listener","flush","all","length","splice"],"sourceRoot":"../../src","sources":["indexeddb-backend.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexeddb-backend.d.ts","sourceRoot":"","sources":["../../src/indexeddb-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,uBAAuB,CAAC;AAM/B,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC,CAAC;AA4BF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,SAAkB,EACxB,SAAS,SAAqB,EAC9B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,uBAAuB,CAAC,
|
|
1
|
+
{"version":3,"file":"indexeddb-backend.d.ts","sourceRoot":"","sources":["../../src/indexeddb-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,uBAAuB,CAAC;AAM/B,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC,CAAC;AA4BF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,SAAkB,EACxB,SAAS,SAAqB,EAC9B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,uBAAuB,CAAC,CA6NlC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-nitro-storage",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.2",
|
|
4
4
|
"description": "Synchronous React Native storage powered by Nitro Modules and JSI: typed Memory, Disk, Keychain/Android Keystore secure storage, biometric auth, MMKV migration, Expo, Zustand/Jotai persistence, and web IndexedDB support.",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
package/src/indexeddb-backend.ts
CHANGED
|
@@ -72,6 +72,7 @@ export async function createIndexedDBBackend(
|
|
|
72
72
|
const db = await openDB(dbName, storeName);
|
|
73
73
|
const cache = new Map<string, string>();
|
|
74
74
|
const pendingWrites = new Set<Promise<void>>();
|
|
75
|
+
const pendingErrors: Error[] = [];
|
|
75
76
|
const subscribers = new Set<(event: WebStorageChangeEvent) => void>();
|
|
76
77
|
const sourceId = `nitro-storage-${Math.random().toString(36).slice(2)}`;
|
|
77
78
|
const channelName =
|
|
@@ -92,6 +93,7 @@ export async function createIndexedDBBackend(
|
|
|
92
93
|
error instanceof Error
|
|
93
94
|
? error
|
|
94
95
|
: new Error(String(error ?? "Unknown IndexedDB error"));
|
|
96
|
+
pendingErrors.push(normalized);
|
|
95
97
|
options.onError?.(normalized);
|
|
96
98
|
}
|
|
97
99
|
|
|
@@ -277,6 +279,12 @@ export async function createIndexedDBBackend(
|
|
|
277
279
|
},
|
|
278
280
|
async flush(): Promise<void> {
|
|
279
281
|
await Promise.all(Array.from(pendingWrites));
|
|
282
|
+
if (pendingErrors.length === 0) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
const [error] = pendingErrors.splice(0);
|
|
287
|
+
throw error;
|
|
280
288
|
},
|
|
281
289
|
};
|
|
282
290
|
|