react-native-nitro-storage 0.5.4 → 0.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -5
- package/android/build.gradle +5 -5
- package/android/src/main/java/com/nitrostorage/AndroidStorageAdapter.kt +12 -25
- package/app.plugin.js +114 -9
- package/docs/api-reference.md +39 -36
- package/docs/batch-transactions-migrations.md +1 -1
- package/docs/recipes.md +1 -1
- package/docs/secure-storage.md +15 -4
- package/docs/web-backends.md +5 -0
- package/lib/commonjs/index.js +49 -9
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +71 -11
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/indexeddb-backend.js +28 -0
- package/lib/commonjs/indexeddb-backend.js.map +1 -1
- package/lib/commonjs/web-storage-backend.js.map +1 -1
- package/lib/module/index.js +49 -9
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +71 -11
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/indexeddb-backend.js +28 -0
- package/lib/module/indexeddb-backend.js.map +1 -1
- package/lib/module/web-storage-backend.js.map +1 -1
- package/lib/typescript/index.d.ts +10 -3
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/index.web.d.ts +10 -3
- package/lib/typescript/index.web.d.ts.map +1 -1
- package/lib/typescript/indexeddb-backend.d.ts.map +1 -1
- package/lib/typescript/web-storage-backend.d.ts +1 -0
- package/lib/typescript/web-storage-backend.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +80 -9
- package/src/index.web.ts +107 -11
- package/src/indexeddb-backend.ts +30 -0
- package/src/web-storage-backend.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ export { StorageScope, AccessControl, BiometricLevel } from "./Storage.types";
|
|
|
6
6
|
export { migrateFromMMKV } from "./migration";
|
|
7
7
|
export { getStorageErrorCode, type SecureStorageMetadata, type SecurityCapabilities, type StorageCapabilities, type StorageErrorCode, } from "./storage-runtime";
|
|
8
8
|
export type { StorageBatchChangeEvent, StorageChangeEvent, StorageChangeOperation, StorageChangeSource, StorageEventListener, StorageKeyChangeEvent, } from "./storage-events";
|
|
9
|
-
export type { WebStorageBackend, WebStorageChangeEvent, WebStorageScope, } from "./web-storage-backend";
|
|
9
|
+
export type { WebDiskStorageBackend, WebSecureStorageBackend, WebStorageBackend, WebStorageChangeEvent, WebStorageScope, } from "./web-storage-backend";
|
|
10
10
|
export type Validator<T> = (value: unknown) => value is T;
|
|
11
11
|
export type ExpirationConfig = {
|
|
12
12
|
ttlMs: number;
|
|
@@ -23,6 +23,12 @@ export type StorageMetricsEvent = {
|
|
|
23
23
|
keysCount: number;
|
|
24
24
|
};
|
|
25
25
|
export type StorageMetricsObserver = (event: StorageMetricsEvent) => void;
|
|
26
|
+
export type StorageEventObserverOptions = {
|
|
27
|
+
redactSecureValues?: boolean;
|
|
28
|
+
};
|
|
29
|
+
export type StorageExportOptions = {
|
|
30
|
+
includeSecureValues?: boolean;
|
|
31
|
+
};
|
|
26
32
|
export type StorageMetricSummary = {
|
|
27
33
|
count: number;
|
|
28
34
|
totalDurationMs: number;
|
|
@@ -82,7 +88,7 @@ export declare const storage: {
|
|
|
82
88
|
subscribeKey: (scope: StorageScope, key: string, listener: StorageEventListener) => (() => void);
|
|
83
89
|
subscribePrefix: (scope: StorageScope, prefix: string, listener: StorageEventListener) => (() => void);
|
|
84
90
|
subscribeNamespace: (namespace: string, scope: StorageScope, listener: StorageEventListener) => (() => void);
|
|
85
|
-
setEventObserver: (observer?: StorageEventListener) => void;
|
|
91
|
+
setEventObserver: (observer?: StorageEventListener, options?: StorageEventObserverOptions) => void;
|
|
86
92
|
clear: (scope: StorageScope) => void;
|
|
87
93
|
clearAll: () => void;
|
|
88
94
|
clearNamespace: (namespace: string, scope: StorageScope) => void;
|
|
@@ -92,7 +98,8 @@ export declare const storage: {
|
|
|
92
98
|
getKeysByPrefix: (prefix: string, scope: StorageScope) => string[];
|
|
93
99
|
getByPrefix: (prefix: string, scope: StorageScope) => Record<string, string>;
|
|
94
100
|
getAll: (scope: StorageScope) => Record<string, string>;
|
|
95
|
-
export: (scope: StorageScope) => Record<string, string>;
|
|
101
|
+
export: (scope: StorageScope, options?: StorageExportOptions) => Record<string, string>;
|
|
102
|
+
exportSecureUnsafe: () => Record<string, string>;
|
|
96
103
|
size: (scope: StorageScope) => number;
|
|
97
104
|
setAccessControl: (level: AccessControl) => void;
|
|
98
105
|
setSecureWritesAsync: (_enabled: boolean) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../src/index.web.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../src/index.web.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,CA2PlC"}
|
|
@@ -16,6 +16,7 @@ export type WebStorageBackend = {
|
|
|
16
16
|
size?: () => number;
|
|
17
17
|
subscribe?: (listener: (event: WebStorageChangeEvent) => void) => () => void;
|
|
18
18
|
flush?: () => Promise<void>;
|
|
19
|
+
close?: () => void;
|
|
19
20
|
name?: string;
|
|
20
21
|
};
|
|
21
22
|
export type WebDiskStorageBackend = WebStorageBackend;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-storage-backend.d.ts","sourceRoot":"","sources":["../../src/web-storage-backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC;AAEtE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACxC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAChD,OAAO,CAAC,EAAE,CACR,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,KACxD,IAAI,CAAC;IACV,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAC7E,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AACtD,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AAExD,KAAK,0BAA0B,GAAG;IAChC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC;CAC5C,CAAC;AAgBF,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,0BAA+B,GACvC,iBAAiB,CA6EnB"}
|
|
1
|
+
{"version":3,"file":"web-storage-backend.d.ts","sourceRoot":"","sources":["../../src/web-storage-backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC;AAEtE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACxC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAChD,OAAO,CAAC,EAAE,CACR,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,KACxD,IAAI,CAAC;IACV,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAC7E,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AACtD,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AAExD,KAAK,0BAA0B,GAAG;IAChC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC;CAC5C,CAAC;AAgBF,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,0BAA+B,GACvC,iBAAiB,CA6EnB"}
|
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.5",
|
|
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",
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
},
|
|
113
113
|
"devDependencies": {
|
|
114
114
|
"@expo/config-plugins": "^55.0.8",
|
|
115
|
-
"@react-native/babel-preset": "^0.83.
|
|
115
|
+
"@react-native/babel-preset": "^0.83.9",
|
|
116
116
|
"@testing-library/react-hooks": "^8.0.1",
|
|
117
117
|
"@testing-library/react-native": "^13.3.3",
|
|
118
118
|
"@types/react": "~19.2.0"
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
"peerDependencies": {
|
|
121
121
|
"react": ">=18.2.0",
|
|
122
122
|
"react-native": ">=0.75.0",
|
|
123
|
-
"react-native-nitro-modules": ">=0.35.
|
|
123
|
+
"react-native-nitro-modules": ">=0.35.6"
|
|
124
124
|
},
|
|
125
125
|
"react-native-builder-bob": {
|
|
126
126
|
"source": "src",
|
package/src/index.ts
CHANGED
|
@@ -55,6 +55,8 @@ export type {
|
|
|
55
55
|
StorageKeyChangeEvent,
|
|
56
56
|
} from "./storage-events";
|
|
57
57
|
export type {
|
|
58
|
+
WebDiskStorageBackend,
|
|
59
|
+
WebSecureStorageBackend,
|
|
58
60
|
WebStorageBackend,
|
|
59
61
|
WebStorageChangeEvent,
|
|
60
62
|
WebStorageScope,
|
|
@@ -76,6 +78,12 @@ export type StorageMetricsEvent = {
|
|
|
76
78
|
keysCount: number;
|
|
77
79
|
};
|
|
78
80
|
export type StorageMetricsObserver = (event: StorageMetricsEvent) => void;
|
|
81
|
+
export type StorageEventObserverOptions = {
|
|
82
|
+
redactSecureValues?: boolean;
|
|
83
|
+
};
|
|
84
|
+
export type StorageExportOptions = {
|
|
85
|
+
includeSecureValues?: boolean;
|
|
86
|
+
};
|
|
79
87
|
export type StorageMetricSummary = {
|
|
80
88
|
count: number;
|
|
81
89
|
totalDurationMs: number;
|
|
@@ -229,6 +237,7 @@ const suppressedNativeEvents = new Map<NonMemoryScope, Map<string, number>>([
|
|
|
229
237
|
]);
|
|
230
238
|
let metricsObserver: StorageMetricsObserver | undefined;
|
|
231
239
|
let eventObserver: StorageEventListener | undefined;
|
|
240
|
+
let eventObserverRedactSecureValues = true;
|
|
232
241
|
const metricsCounters = new Map<
|
|
233
242
|
string,
|
|
234
243
|
{ count: number; totalDurationMs: number; maxDurationMs: number }
|
|
@@ -411,6 +420,49 @@ function hasStorageChangeObservers(scope: StorageScope): boolean {
|
|
|
411
420
|
return storageEvents.hasListeners(scope) || eventObserver !== undefined;
|
|
412
421
|
}
|
|
413
422
|
|
|
423
|
+
function shouldReadPreviousEventValues(scope: StorageScope): boolean {
|
|
424
|
+
if (storageEvents.hasListeners(scope)) {
|
|
425
|
+
return true;
|
|
426
|
+
}
|
|
427
|
+
if (!eventObserver) {
|
|
428
|
+
return false;
|
|
429
|
+
}
|
|
430
|
+
return scope !== StorageScope.Secure || !eventObserverRedactSecureValues;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
const SECURE_EVENT_REDACTED_VALUE = "[secure]";
|
|
434
|
+
|
|
435
|
+
function redactSecureKeyChange(
|
|
436
|
+
event: StorageKeyChangeEvent,
|
|
437
|
+
): StorageKeyChangeEvent {
|
|
438
|
+
if (event.scope !== StorageScope.Secure) {
|
|
439
|
+
return event;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
return {
|
|
443
|
+
...event,
|
|
444
|
+
oldValue:
|
|
445
|
+
event.oldValue === undefined ? undefined : SECURE_EVENT_REDACTED_VALUE,
|
|
446
|
+
newValue:
|
|
447
|
+
event.newValue === undefined ? undefined : SECURE_EVENT_REDACTED_VALUE,
|
|
448
|
+
};
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
function eventForGlobalObserver(event: StorageChangeEvent): StorageChangeEvent {
|
|
452
|
+
if (!eventObserverRedactSecureValues || event.scope !== StorageScope.Secure) {
|
|
453
|
+
return event;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
if (event.type === "key") {
|
|
457
|
+
return redactSecureKeyChange(event);
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
return {
|
|
461
|
+
...event,
|
|
462
|
+
changes: event.changes.map(redactSecureKeyChange),
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
|
|
414
466
|
function emitKeyChange(
|
|
415
467
|
scope: StorageScope,
|
|
416
468
|
key: string,
|
|
@@ -436,7 +488,7 @@ function emitKeyChange(
|
|
|
436
488
|
source,
|
|
437
489
|
);
|
|
438
490
|
storageEvents.emitKey(event);
|
|
439
|
-
eventObserver?.(event);
|
|
491
|
+
eventObserver?.(eventForGlobalObserver(event));
|
|
440
492
|
}
|
|
441
493
|
|
|
442
494
|
function emitBatchChange(
|
|
@@ -466,7 +518,7 @@ function emitBatchChange(
|
|
|
466
518
|
changes,
|
|
467
519
|
};
|
|
468
520
|
storageEvents.emitBatch(event);
|
|
469
|
-
eventObserver?.(event);
|
|
521
|
+
eventObserver?.(eventForGlobalObserver(event));
|
|
470
522
|
}
|
|
471
523
|
|
|
472
524
|
function readPendingSecureWrite(key: string): string | undefined {
|
|
@@ -811,8 +863,12 @@ export const storage = {
|
|
|
811
863
|
): (() => void) => {
|
|
812
864
|
return storage.subscribePrefix(scope, prefixKey(namespace, ""), listener);
|
|
813
865
|
},
|
|
814
|
-
setEventObserver: (
|
|
866
|
+
setEventObserver: (
|
|
867
|
+
observer?: StorageEventListener,
|
|
868
|
+
options: StorageEventObserverOptions = {},
|
|
869
|
+
) => {
|
|
815
870
|
eventObserver = observer;
|
|
871
|
+
eventObserverRedactSecureValues = options.redactSecureValues !== false;
|
|
816
872
|
if (observer) {
|
|
817
873
|
ensureNativeScopeSubscription(StorageScope.Disk);
|
|
818
874
|
ensureNativeScopeSubscription(StorageScope.Secure);
|
|
@@ -823,7 +879,7 @@ export const storage = {
|
|
|
823
879
|
},
|
|
824
880
|
clear: (scope: StorageScope) => {
|
|
825
881
|
measureOperation("storage:clear", scope, () => {
|
|
826
|
-
const previousValues =
|
|
882
|
+
const previousValues = shouldReadPreviousEventValues(scope)
|
|
827
883
|
? storage.getAll(scope)
|
|
828
884
|
: {};
|
|
829
885
|
if (scope === StorageScope.Memory) {
|
|
@@ -927,7 +983,7 @@ export const storage = {
|
|
|
927
983
|
}
|
|
928
984
|
|
|
929
985
|
const keyPrefix = prefixKey(namespace, "");
|
|
930
|
-
const previousValues =
|
|
986
|
+
const previousValues = shouldReadPreviousEventValues(scope)
|
|
931
987
|
? storage.getByPrefix(keyPrefix, scope)
|
|
932
988
|
: {};
|
|
933
989
|
if (scope === StorageScope.Disk) {
|
|
@@ -1077,11 +1133,26 @@ export const storage = {
|
|
|
1077
1133
|
return result;
|
|
1078
1134
|
});
|
|
1079
1135
|
},
|
|
1080
|
-
export: (
|
|
1136
|
+
export: (
|
|
1137
|
+
scope: StorageScope,
|
|
1138
|
+
options: StorageExportOptions = {},
|
|
1139
|
+
): Record<string, string> => {
|
|
1140
|
+
if (scope === StorageScope.Secure && options.includeSecureValues !== true) {
|
|
1141
|
+
throw new Error(
|
|
1142
|
+
"NitroStorage: exporting Secure scope exposes raw secret values. Pass { includeSecureValues: true } or use exportSecureUnsafe().",
|
|
1143
|
+
);
|
|
1144
|
+
}
|
|
1081
1145
|
return measureOperation("storage:export", scope, () =>
|
|
1082
1146
|
storage.getAll(scope),
|
|
1083
1147
|
);
|
|
1084
1148
|
},
|
|
1149
|
+
exportSecureUnsafe: (): Record<string, string> => {
|
|
1150
|
+
return measureOperation(
|
|
1151
|
+
"storage:exportSecureUnsafe",
|
|
1152
|
+
StorageScope.Secure,
|
|
1153
|
+
() => storage.getAll(StorageScope.Secure),
|
|
1154
|
+
);
|
|
1155
|
+
},
|
|
1085
1156
|
size: (scope: StorageScope): number => {
|
|
1086
1157
|
return measureOperation("storage:size", scope, () => {
|
|
1087
1158
|
assertValidScope(scope);
|
|
@@ -2136,7 +2207,7 @@ export function setBatch<T>(
|
|
|
2136
2207
|
flushSecureWrites();
|
|
2137
2208
|
const storageModule = getStorageModule();
|
|
2138
2209
|
const keys = secureEntries.map(({ item }) => item.key);
|
|
2139
|
-
const oldValues =
|
|
2210
|
+
const oldValues = shouldReadPreviousEventValues(scope)
|
|
2140
2211
|
? (storageModule.getBatch(keys, scope) ?? [])
|
|
2141
2212
|
: [];
|
|
2142
2213
|
const groupedByAccessControl = new Map<
|
|
@@ -2193,7 +2264,7 @@ export function setBatch<T>(
|
|
|
2193
2264
|
|
|
2194
2265
|
const keys = items.map((entry) => entry.item.key);
|
|
2195
2266
|
const values = items.map((entry) => entry.item.serialize(entry.value));
|
|
2196
|
-
const oldValues =
|
|
2267
|
+
const oldValues = shouldReadPreviousEventValues(scope)
|
|
2197
2268
|
? (getStorageModule().getBatch(keys, scope) ?? [])
|
|
2198
2269
|
: [];
|
|
2199
2270
|
|
|
@@ -2252,7 +2323,7 @@ export function removeBatch(
|
|
|
2252
2323
|
if (scope === StorageScope.Secure) {
|
|
2253
2324
|
flushSecureWrites();
|
|
2254
2325
|
}
|
|
2255
|
-
const oldValues =
|
|
2326
|
+
const oldValues = shouldReadPreviousEventValues(scope)
|
|
2256
2327
|
? (getStorageModule().getBatch(keys, scope) ?? [])
|
|
2257
2328
|
: [];
|
|
2258
2329
|
getStorageModule().removeBatch(keys, scope);
|
package/src/index.web.ts
CHANGED
|
@@ -54,6 +54,8 @@ export type {
|
|
|
54
54
|
StorageKeyChangeEvent,
|
|
55
55
|
} from "./storage-events";
|
|
56
56
|
export type {
|
|
57
|
+
WebDiskStorageBackend,
|
|
58
|
+
WebSecureStorageBackend,
|
|
57
59
|
WebStorageBackend,
|
|
58
60
|
WebStorageChangeEvent,
|
|
59
61
|
WebStorageScope,
|
|
@@ -75,6 +77,12 @@ export type StorageMetricsEvent = {
|
|
|
75
77
|
keysCount: number;
|
|
76
78
|
};
|
|
77
79
|
export type StorageMetricsObserver = (event: StorageMetricsEvent) => void;
|
|
80
|
+
export type StorageEventObserverOptions = {
|
|
81
|
+
redactSecureValues?: boolean;
|
|
82
|
+
};
|
|
83
|
+
export type StorageExportOptions = {
|
|
84
|
+
includeSecureValues?: boolean;
|
|
85
|
+
};
|
|
78
86
|
export type StorageMetricSummary = {
|
|
79
87
|
count: number;
|
|
80
88
|
totalDurationMs: number;
|
|
@@ -254,6 +262,7 @@ let hasWarnedAboutWebBiometricFallback = false;
|
|
|
254
262
|
let hasWindowStorageEventSubscription = false;
|
|
255
263
|
let metricsObserver: StorageMetricsObserver | undefined;
|
|
256
264
|
let eventObserver: StorageEventListener | undefined;
|
|
265
|
+
let eventObserverRedactSecureValues = true;
|
|
257
266
|
const metricsCounters = new Map<
|
|
258
267
|
string,
|
|
259
268
|
{ count: number; totalDurationMs: number; maxDurationMs: number }
|
|
@@ -552,6 +561,21 @@ function resetBackendChangeSubscription(scope: NonMemoryScope): void {
|
|
|
552
561
|
externalSyncUnsubscribers.delete(scope);
|
|
553
562
|
}
|
|
554
563
|
|
|
564
|
+
function closeWebBackend(
|
|
565
|
+
scope: NonMemoryScope,
|
|
566
|
+
backend: WebStorageBackend | undefined,
|
|
567
|
+
): void {
|
|
568
|
+
if (!backend?.close) {
|
|
569
|
+
return;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
try {
|
|
573
|
+
backend.close();
|
|
574
|
+
} catch (error) {
|
|
575
|
+
throw createWebStorageError(scope, "close", error, backend);
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
|
|
555
579
|
function ensureExternalSyncSubscriptions(): void {
|
|
556
580
|
if (
|
|
557
581
|
!hasWindowStorageEventSubscription &&
|
|
@@ -675,6 +699,49 @@ function hasStorageChangeObservers(scope: StorageScope): boolean {
|
|
|
675
699
|
return storageEvents.hasListeners(scope) || eventObserver !== undefined;
|
|
676
700
|
}
|
|
677
701
|
|
|
702
|
+
function shouldReadPreviousEventValues(scope: StorageScope): boolean {
|
|
703
|
+
if (storageEvents.hasListeners(scope)) {
|
|
704
|
+
return true;
|
|
705
|
+
}
|
|
706
|
+
if (!eventObserver) {
|
|
707
|
+
return false;
|
|
708
|
+
}
|
|
709
|
+
return scope !== StorageScope.Secure || !eventObserverRedactSecureValues;
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
const SECURE_EVENT_REDACTED_VALUE = "[secure]";
|
|
713
|
+
|
|
714
|
+
function redactSecureKeyChange(
|
|
715
|
+
event: StorageKeyChangeEvent,
|
|
716
|
+
): StorageKeyChangeEvent {
|
|
717
|
+
if (event.scope !== StorageScope.Secure) {
|
|
718
|
+
return event;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
return {
|
|
722
|
+
...event,
|
|
723
|
+
oldValue:
|
|
724
|
+
event.oldValue === undefined ? undefined : SECURE_EVENT_REDACTED_VALUE,
|
|
725
|
+
newValue:
|
|
726
|
+
event.newValue === undefined ? undefined : SECURE_EVENT_REDACTED_VALUE,
|
|
727
|
+
};
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
function eventForGlobalObserver(event: StorageChangeEvent): StorageChangeEvent {
|
|
731
|
+
if (!eventObserverRedactSecureValues || event.scope !== StorageScope.Secure) {
|
|
732
|
+
return event;
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
if (event.type === "key") {
|
|
736
|
+
return redactSecureKeyChange(event);
|
|
737
|
+
}
|
|
738
|
+
|
|
739
|
+
return {
|
|
740
|
+
...event,
|
|
741
|
+
changes: event.changes.map(redactSecureKeyChange),
|
|
742
|
+
};
|
|
743
|
+
}
|
|
744
|
+
|
|
678
745
|
function emitKeyChange(
|
|
679
746
|
scope: StorageScope,
|
|
680
747
|
key: string,
|
|
@@ -692,7 +759,7 @@ function emitKeyChange(
|
|
|
692
759
|
source,
|
|
693
760
|
);
|
|
694
761
|
storageEvents.emitKey(event);
|
|
695
|
-
eventObserver?.(event);
|
|
762
|
+
eventObserver?.(eventForGlobalObserver(event));
|
|
696
763
|
}
|
|
697
764
|
|
|
698
765
|
function emitBatchChange(
|
|
@@ -713,7 +780,7 @@ function emitBatchChange(
|
|
|
713
780
|
changes,
|
|
714
781
|
};
|
|
715
782
|
storageEvents.emitBatch(event);
|
|
716
|
-
eventObserver?.(event);
|
|
783
|
+
eventObserver?.(eventForGlobalObserver(event));
|
|
717
784
|
}
|
|
718
785
|
|
|
719
786
|
function readPendingSecureWrite(key: string): string | undefined {
|
|
@@ -1293,15 +1360,19 @@ export const storage = {
|
|
|
1293
1360
|
): (() => void) => {
|
|
1294
1361
|
return storage.subscribePrefix(scope, prefixKey(namespace, ""), listener);
|
|
1295
1362
|
},
|
|
1296
|
-
setEventObserver: (
|
|
1363
|
+
setEventObserver: (
|
|
1364
|
+
observer?: StorageEventListener,
|
|
1365
|
+
options: StorageEventObserverOptions = {},
|
|
1366
|
+
) => {
|
|
1297
1367
|
eventObserver = observer;
|
|
1368
|
+
eventObserverRedactSecureValues = options.redactSecureValues !== false;
|
|
1298
1369
|
if (observer) {
|
|
1299
1370
|
ensureExternalSyncSubscriptions();
|
|
1300
1371
|
}
|
|
1301
1372
|
},
|
|
1302
1373
|
clear: (scope: StorageScope) => {
|
|
1303
1374
|
measureOperation("storage:clear", scope, () => {
|
|
1304
|
-
const previousValues =
|
|
1375
|
+
const previousValues = shouldReadPreviousEventValues(scope)
|
|
1305
1376
|
? storage.getAll(scope)
|
|
1306
1377
|
: {};
|
|
1307
1378
|
if (scope === StorageScope.Memory) {
|
|
@@ -1405,7 +1476,7 @@ export const storage = {
|
|
|
1405
1476
|
}
|
|
1406
1477
|
|
|
1407
1478
|
const keyPrefix = prefixKey(namespace, "");
|
|
1408
|
-
const previousValues =
|
|
1479
|
+
const previousValues = shouldReadPreviousEventValues(scope)
|
|
1409
1480
|
? storage.getByPrefix(keyPrefix, scope)
|
|
1410
1481
|
: {};
|
|
1411
1482
|
if (scope === StorageScope.Disk) {
|
|
@@ -1551,11 +1622,26 @@ export const storage = {
|
|
|
1551
1622
|
return result;
|
|
1552
1623
|
});
|
|
1553
1624
|
},
|
|
1554
|
-
export: (
|
|
1625
|
+
export: (
|
|
1626
|
+
scope: StorageScope,
|
|
1627
|
+
options: StorageExportOptions = {},
|
|
1628
|
+
): Record<string, string> => {
|
|
1629
|
+
if (scope === StorageScope.Secure && options.includeSecureValues !== true) {
|
|
1630
|
+
throw new Error(
|
|
1631
|
+
"NitroStorage: exporting Secure scope exposes raw secret values. Pass { includeSecureValues: true } or use exportSecureUnsafe().",
|
|
1632
|
+
);
|
|
1633
|
+
}
|
|
1555
1634
|
return measureOperation("storage:export", scope, () =>
|
|
1556
1635
|
storage.getAll(scope),
|
|
1557
1636
|
);
|
|
1558
1637
|
},
|
|
1638
|
+
exportSecureUnsafe: (): Record<string, string> => {
|
|
1639
|
+
return measureOperation(
|
|
1640
|
+
"storage:exportSecureUnsafe",
|
|
1641
|
+
StorageScope.Secure,
|
|
1642
|
+
() => storage.getAll(StorageScope.Secure),
|
|
1643
|
+
);
|
|
1644
|
+
},
|
|
1559
1645
|
size: (scope: StorageScope): number => {
|
|
1560
1646
|
return measureOperation("storage:size", scope, () => {
|
|
1561
1647
|
assertValidScope(scope);
|
|
@@ -1759,12 +1845,17 @@ export const storage = {
|
|
|
1759
1845
|
export function setWebSecureStorageBackend(
|
|
1760
1846
|
backend?: WebSecureStorageBackend,
|
|
1761
1847
|
): void {
|
|
1848
|
+
const previousBackend = webSecureStorageBackend;
|
|
1849
|
+
const nextBackend = backend ?? createDefaultSecureBackend();
|
|
1762
1850
|
pendingSecureWrites.clear();
|
|
1763
|
-
webSecureStorageBackend = backend ?? createDefaultSecureBackend();
|
|
1764
1851
|
resetBackendChangeSubscription(StorageScope.Secure);
|
|
1852
|
+
webSecureStorageBackend = nextBackend;
|
|
1765
1853
|
hydratedWebScopeKeyIndex.delete(StorageScope.Secure);
|
|
1766
1854
|
clearScopeRawCache(StorageScope.Secure);
|
|
1767
1855
|
ensureExternalSyncSubscriptions();
|
|
1856
|
+
if (previousBackend !== nextBackend) {
|
|
1857
|
+
closeWebBackend(StorageScope.Secure, previousBackend);
|
|
1858
|
+
}
|
|
1768
1859
|
}
|
|
1769
1860
|
|
|
1770
1861
|
export function getWebSecureStorageBackend():
|
|
@@ -1776,12 +1867,17 @@ export function getWebSecureStorageBackend():
|
|
|
1776
1867
|
export function setWebDiskStorageBackend(
|
|
1777
1868
|
backend?: WebDiskStorageBackend,
|
|
1778
1869
|
): void {
|
|
1870
|
+
const previousBackend = webDiskStorageBackend;
|
|
1871
|
+
const nextBackend = backend ?? createDefaultDiskBackend();
|
|
1779
1872
|
pendingDiskWrites.clear();
|
|
1780
|
-
webDiskStorageBackend = backend ?? createDefaultDiskBackend();
|
|
1781
1873
|
resetBackendChangeSubscription(StorageScope.Disk);
|
|
1874
|
+
webDiskStorageBackend = nextBackend;
|
|
1782
1875
|
hydratedWebScopeKeyIndex.delete(StorageScope.Disk);
|
|
1783
1876
|
clearScopeRawCache(StorageScope.Disk);
|
|
1784
1877
|
ensureExternalSyncSubscriptions();
|
|
1878
|
+
if (previousBackend !== nextBackend) {
|
|
1879
|
+
closeWebBackend(StorageScope.Disk, previousBackend);
|
|
1880
|
+
}
|
|
1785
1881
|
}
|
|
1786
1882
|
|
|
1787
1883
|
export function getWebDiskStorageBackend(): WebDiskStorageBackend | undefined {
|
|
@@ -2597,7 +2693,7 @@ export function setBatch<T>(
|
|
|
2597
2693
|
|
|
2598
2694
|
flushSecureWrites();
|
|
2599
2695
|
const keys = secureEntries.map(({ item }) => item.key);
|
|
2600
|
-
const oldValues =
|
|
2696
|
+
const oldValues = shouldReadPreviousEventValues(scope)
|
|
2601
2697
|
? WebStorage.getBatch(keys, scope)
|
|
2602
2698
|
: [];
|
|
2603
2699
|
const groupedByAccessControl = new Map<
|
|
@@ -2654,7 +2750,7 @@ export function setBatch<T>(
|
|
|
2654
2750
|
|
|
2655
2751
|
const keys = items.map((entry) => entry.item.key);
|
|
2656
2752
|
const values = items.map((entry) => entry.item.serialize(entry.value));
|
|
2657
|
-
const oldValues =
|
|
2753
|
+
const oldValues = shouldReadPreviousEventValues(scope)
|
|
2658
2754
|
? WebStorage.getBatch(keys, scope)
|
|
2659
2755
|
: [];
|
|
2660
2756
|
WebStorage.setBatch(keys, values, scope);
|
|
@@ -2712,7 +2808,7 @@ export function removeBatch(
|
|
|
2712
2808
|
if (scope === StorageScope.Secure) {
|
|
2713
2809
|
flushSecureWrites();
|
|
2714
2810
|
}
|
|
2715
|
-
const oldValues =
|
|
2811
|
+
const oldValues = shouldReadPreviousEventValues(scope)
|
|
2716
2812
|
? WebStorage.getBatch(keys, scope)
|
|
2717
2813
|
: [];
|
|
2718
2814
|
WebStorage.removeBatch(keys, scope);
|