react-native-nitro-storage 0.4.5 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/README.md +254 -945
  2. package/SECURITY.md +26 -0
  3. package/docs/api-reference.md +281 -0
  4. package/docs/batch-transactions-migrations.md +200 -0
  5. package/docs/benchmarks.md +37 -0
  6. package/docs/mmkv-migration.md +80 -0
  7. package/docs/react-hooks.md +113 -0
  8. package/docs/recipes.md +302 -0
  9. package/docs/secure-storage.md +190 -0
  10. package/docs/web-backends.md +141 -0
  11. package/lib/commonjs/index.js +265 -14
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/index.web.js +220 -11
  14. package/lib/commonjs/index.web.js.map +1 -1
  15. package/lib/commonjs/storage-events.js +117 -0
  16. package/lib/commonjs/storage-events.js.map +1 -0
  17. package/lib/commonjs/storage-runtime.js.map +1 -1
  18. package/lib/module/index.js +265 -14
  19. package/lib/module/index.js.map +1 -1
  20. package/lib/module/index.web.js +220 -11
  21. package/lib/module/index.web.js.map +1 -1
  22. package/lib/module/storage-events.js +112 -0
  23. package/lib/module/storage-events.js.map +1 -0
  24. package/lib/module/storage-runtime.js.map +1 -1
  25. package/lib/typescript/index.d.ts +19 -2
  26. package/lib/typescript/index.d.ts.map +1 -1
  27. package/lib/typescript/index.web.d.ts +19 -2
  28. package/lib/typescript/index.web.d.ts.map +1 -1
  29. package/lib/typescript/storage-events.d.ts +37 -0
  30. package/lib/typescript/storage-events.d.ts.map +1 -0
  31. package/lib/typescript/storage-runtime.d.ts +32 -0
  32. package/lib/typescript/storage-runtime.d.ts.map +1 -1
  33. package/package.json +25 -11
  34. package/src/index.ts +601 -14
  35. package/src/index.web.ts +535 -22
  36. package/src/storage-events.ts +184 -0
  37. package/src/storage-runtime.ts +35 -0
@@ -1,9 +1,11 @@
1
1
  import { StorageScope, AccessControl, BiometricLevel } from "./Storage.types";
2
2
  import { type WebDiskStorageBackend, type WebSecureStorageBackend } from "./web-storage-backend";
3
- import { type StorageCapabilities } from "./storage-runtime";
3
+ import { type SecureStorageMetadata, type SecurityCapabilities, type StorageCapabilities } from "./storage-runtime";
4
+ import { type StorageEventListener } from "./storage-events";
4
5
  export { StorageScope, AccessControl, BiometricLevel } from "./Storage.types";
5
6
  export { migrateFromMMKV } from "./migration";
6
- export { getStorageErrorCode, type StorageCapabilities, type StorageErrorCode, } from "./storage-runtime";
7
+ export { getStorageErrorCode, type SecureStorageMetadata, type SecurityCapabilities, type StorageCapabilities, type StorageErrorCode, } from "./storage-runtime";
8
+ export type { StorageBatchChangeEvent, StorageChangeEvent, StorageChangeOperation, StorageChangeSource, StorageEventListener, StorageKeyChangeEvent, } from "./storage-events";
7
9
  export type { WebStorageBackend, WebStorageChangeEvent, WebStorageScope, } from "./web-storage-backend";
8
10
  export type Validator<T> = (value: unknown) => value is T;
9
11
  export type ExpirationConfig = {
@@ -27,6 +29,11 @@ export type StorageMetricSummary = {
27
29
  avgDurationMs: number;
28
30
  maxDurationMs: number;
29
31
  };
32
+ export type StorageSelectorListener<TSelected> = (value: TSelected, previousValue: TSelected) => void;
33
+ export type StorageSelectorSubscribeOptions<TSelected> = {
34
+ isEqual?: (previousValue: TSelected, nextValue: TSelected) => boolean;
35
+ fireImmediately?: boolean;
36
+ };
30
37
  export type MigrationContext = {
31
38
  scope: StorageScope;
32
39
  getRaw: (key: string) => string | undefined;
@@ -71,6 +78,11 @@ export interface Storage {
71
78
  clearSecureBiometric(): void;
72
79
  }
73
80
  export declare const storage: {
81
+ subscribe: (scope: StorageScope, listener: StorageEventListener) => (() => void);
82
+ subscribeKey: (scope: StorageScope, key: string, listener: StorageEventListener) => (() => void);
83
+ subscribePrefix: (scope: StorageScope, prefix: string, listener: StorageEventListener) => (() => void);
84
+ subscribeNamespace: (namespace: string, scope: StorageScope, listener: StorageEventListener) => (() => void);
85
+ setEventObserver: (observer?: StorageEventListener) => void;
74
86
  clear: (scope: StorageScope) => void;
75
87
  clearAll: () => void;
76
88
  clearNamespace: (namespace: string, scope: StorageScope) => void;
@@ -80,6 +92,7 @@ export declare const storage: {
80
92
  getKeysByPrefix: (prefix: string, scope: StorageScope) => string[];
81
93
  getByPrefix: (prefix: string, scope: StorageScope) => Record<string, string>;
82
94
  getAll: (scope: StorageScope) => Record<string, string>;
95
+ export: (scope: StorageScope) => Record<string, string>;
83
96
  size: (scope: StorageScope) => number;
84
97
  setAccessControl: (level: AccessControl) => void;
85
98
  setSecureWritesAsync: (_enabled: boolean) => void;
@@ -91,6 +104,9 @@ export declare const storage: {
91
104
  getMetricsSnapshot: () => Record<string, StorageMetricSummary>;
92
105
  resetMetrics: () => void;
93
106
  getCapabilities: () => StorageCapabilities;
107
+ getSecurityCapabilities: () => SecurityCapabilities;
108
+ getSecureMetadata: (key: string) => SecureStorageMetadata;
109
+ getAllSecureMetadata: () => SecureStorageMetadata[];
94
110
  getString: (key: string, scope: StorageScope) => string | undefined;
95
111
  setString: (key: string, value: string, scope: StorageScope) => void;
96
112
  deleteString: (key: string, scope: StorageScope) => void;
@@ -127,6 +143,7 @@ export interface StorageItem<T> {
127
143
  delete: () => void;
128
144
  has: () => boolean;
129
145
  subscribe: (callback: () => void) => () => void;
146
+ subscribeSelector: <TSelected>(selector: (value: T) => TSelected, listener: StorageSelectorListener<TSelected>, options?: StorageSelectorSubscribeOptions<TSelected>) => () => void;
130
147
  serialize: (value: T) => string;
131
148
  deserialize: (value: string) => T;
132
149
  scope: StorageScope;
@@ -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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"}
@@ -0,0 +1,37 @@
1
+ import { StorageScope } from "./Storage.types";
2
+ export type StorageChangeOperation = "set" | "remove" | "clear" | "clearNamespace" | "setBatch" | "removeBatch" | "import" | "external";
3
+ export type StorageChangeSource = "memory" | "native" | "web" | "external";
4
+ export type StorageKeyChangeEvent = {
5
+ type: "key";
6
+ scope: StorageScope;
7
+ key: string;
8
+ oldValue: string | undefined;
9
+ newValue: string | undefined;
10
+ operation: StorageChangeOperation;
11
+ source: StorageChangeSource;
12
+ };
13
+ export type StorageBatchChangeEvent = {
14
+ type: "batch";
15
+ scope: StorageScope;
16
+ operation: StorageChangeOperation;
17
+ source: StorageChangeSource;
18
+ changes: StorageKeyChangeEvent[];
19
+ };
20
+ export type StorageChangeEvent = StorageKeyChangeEvent | StorageBatchChangeEvent;
21
+ export type StorageEventListener = (event: StorageChangeEvent) => void;
22
+ export declare class StorageEventRegistry {
23
+ private readonly scopeListeners;
24
+ private readonly keyListeners;
25
+ private readonly prefixListeners;
26
+ subscribe(scope: StorageScope, listener: StorageEventListener): () => void;
27
+ hasListeners(scope: StorageScope): boolean;
28
+ subscribeKey(scope: StorageScope, key: string, listener: StorageEventListener): () => void;
29
+ subscribePrefix(scope: StorageScope, prefix: string, listener: StorageEventListener): () => void;
30
+ emitKey(event: StorageKeyChangeEvent): void;
31
+ emitBatch(event: StorageBatchChangeEvent): void;
32
+ private emitToScope;
33
+ private emitToKey;
34
+ private emitToPrefixes;
35
+ private emitBatchToPrefixes;
36
+ }
37
+ //# sourceMappingURL=storage-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-events.d.ts","sourceRoot":"","sources":["../../src/storage-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,sBAAsB,GAC9B,KAAK,GACL,QAAQ,GACR,OAAO,GACP,gBAAgB,GAChB,UAAU,GACV,aAAa,GACb,QAAQ,GACR,UAAU,CAAC;AAEf,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC;AAE3E,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,sBAAsB,CAAC;IAClC,MAAM,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,sBAAsB,CAAC;IAClC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC1B,qBAAqB,GACrB,uBAAuB,CAAC;AAE5B,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;AA+BvE,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAG3B;IACJ,OAAO,CAAC,QAAQ,CAAC,YAAY,CAGzB;IACJ,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG5B;IAEJ,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,oBAAoB,GAAG,MAAM,IAAI;IAI1E,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAQ1C,YAAY,CACV,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,oBAAoB,GAC7B,MAAM,IAAI;IA8Bb,eAAe,CACb,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,oBAAoB,GAC7B,MAAM,IAAI;IAKb,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI;IAM3C,SAAS,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI;IAQ/C,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,mBAAmB;CAU5B"}
@@ -11,6 +11,38 @@ export type StorageCapabilities = {
11
11
  };
12
12
  errorClassification: boolean;
13
13
  };
14
+ export type SecurityCapabilityStatus = "available" | "unavailable" | "unknown";
15
+ export type SecurityCapabilities = {
16
+ platform: "native" | "web";
17
+ secureStorage: {
18
+ backend: string;
19
+ encrypted: SecurityCapabilityStatus;
20
+ accessControl: SecurityCapabilityStatus;
21
+ keychainAccessGroup: SecurityCapabilityStatus;
22
+ hardwareBacked: SecurityCapabilityStatus;
23
+ };
24
+ biometric: {
25
+ storage: SecurityCapabilityStatus;
26
+ prompt: SecurityCapabilityStatus;
27
+ biometryOnly: SecurityCapabilityStatus;
28
+ biometryOrPasscode: SecurityCapabilityStatus;
29
+ };
30
+ metadata: {
31
+ perKey: boolean;
32
+ listsWithoutValues: boolean;
33
+ persistsTimestamps: boolean;
34
+ };
35
+ };
36
+ export type SecureStorageMetadata = {
37
+ key: string;
38
+ exists: boolean;
39
+ kind: "secure" | "biometric" | "missing";
40
+ backend: string;
41
+ encrypted: SecurityCapabilityStatus;
42
+ hardwareBacked: SecurityCapabilityStatus;
43
+ biometricProtected: boolean;
44
+ valueExposed: false;
45
+ };
14
46
  export declare function getStorageErrorCode(err: unknown): StorageErrorCode | undefined;
15
47
  export declare function isLockedStorageErrorCode(code: StorageErrorCode | undefined): boolean;
16
48
  //# sourceMappingURL=storage-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-runtime.d.ts","sourceRoot":"","sources":["../../src/storage-runtime.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACxB,iBAAiB,GACjB,yBAAyB,GACzB,iBAAiB,GACjB,oBAAoB,GACpB,uBAAuB,GACvB,aAAa,CAAC;AAElB,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC3B,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,cAAc,EAAE;QACd,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAIF,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,GACX,gBAAgB,GAAG,SAAS,CA0D9B;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,gBAAgB,GAAG,SAAS,GACjC,OAAO,CAMT"}
1
+ {"version":3,"file":"storage-runtime.d.ts","sourceRoot":"","sources":["../../src/storage-runtime.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACxB,iBAAiB,GACjB,yBAAyB,GACzB,iBAAiB,GACjB,oBAAoB,GACpB,uBAAuB,GACvB,aAAa,CAAC;AAElB,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC3B,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,cAAc,EAAE;QACd,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;AAE/E,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC3B,aAAa,EAAE;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,wBAAwB,CAAC;QACpC,aAAa,EAAE,wBAAwB,CAAC;QACxC,mBAAmB,EAAE,wBAAwB,CAAC;QAC9C,cAAc,EAAE,wBAAwB,CAAC;KAC1C,CAAC;IACF,SAAS,EAAE;QACT,OAAO,EAAE,wBAAwB,CAAC;QAClC,MAAM,EAAE,wBAAwB,CAAC;QACjC,YAAY,EAAE,wBAAwB,CAAC;QACvC,kBAAkB,EAAE,wBAAwB,CAAC;KAC9C,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,EAAE,OAAO,CAAC;QAChB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,wBAAwB,CAAC;IACpC,cAAc,EAAE,wBAAwB,CAAC;IACzC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,KAAK,CAAC;CACrB,CAAC;AAIF,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,GACX,gBAAgB,GAAG,SAAS,CA0D9B;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,gBAAgB,GAAG,SAAS,GACjC,OAAO,CAMT"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-native-nitro-storage",
3
- "version": "0.4.5",
4
- "description": "The fastest, most complete storage solution for React Native. Synchronous Memory, Disk, and Secure storage in one unified API. Built with Nitro Modules.",
3
+ "version": "0.5.1",
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",
7
7
  "types": "lib/typescript/index.d.ts",
@@ -30,9 +30,11 @@
30
30
  "cpp",
31
31
  "android",
32
32
  "ios",
33
+ "docs",
33
34
  "nitrogen",
34
35
  "nitro.json",
35
36
  "*.podspec",
37
+ "SECURITY.md",
36
38
  "app.plugin.js",
37
39
  "!**/__tests__",
38
40
  "!**/__fixtures__",
@@ -48,35 +50,47 @@
48
50
  "clean": "rimraf lib nitrogen/generated",
49
51
  "codegen": "nitrogen --logLevel=\"debug\"",
50
52
  "lint": "bunx eslint src --max-warnings=0 --fix",
51
- "format": "bunx prettier --write \"src/**/*.{ts,tsx}\" \"../../README.md\"",
52
- "format:check": "bunx prettier --check \"src/**/*.{ts,tsx}\" \"../../README.md\"",
53
+ "format": "bunx prettier --write \"src/**/*.{ts,tsx}\" \"../../README.md\" \"../../CHANGELOG.md\" \"../../SECURITY.md\" \"../../docs/**/*.md\"",
54
+ "format:check": "bunx prettier --check \"src/**/*.{ts,tsx}\" \"../../README.md\" \"../../CHANGELOG.md\" \"../../SECURITY.md\" \"../../docs/**/*.md\"",
53
55
  "typecheck": "tsc --noEmit",
54
56
  "test:types": "tsc --noEmit -p tsconfig.types.json",
55
57
  "test": "jest",
56
58
  "test:coverage": "jest --coverage",
57
59
  "benchmark": "node scripts/benchmark-check.js",
58
60
  "test:cpp": "node scripts/test-cpp.js",
61
+ "test:cpp:coverage": "node scripts/test-cpp.js --coverage",
59
62
  "check:pack": "node scripts/check-pack-contents.js",
60
63
  "prepublishOnly": "bun run clean && bun run codegen && bun run build && bun run test:types && bun run benchmark",
61
- "prepack": "node -e \"const fs=require('fs'); fs.copyFileSync('../../README.md','./README.md'); try{fs.copyFileSync('../../LICENSE','./LICENSE')}catch(e){}\"",
62
- "postpack": "node -e \"const fs=require('fs'); ['./README.md','./LICENSE'].forEach(f=>fs.existsSync(f)&&fs.unlinkSync(f))\""
64
+ "prepack": "node scripts/sync-package-docs.js prepare",
65
+ "postpack": "node scripts/sync-package-docs.js cleanup"
63
66
  },
64
67
  "keywords": [
65
68
  "react-native",
69
+ "react-native-storage",
70
+ "react-native-secure-storage",
66
71
  "storage",
72
+ "secure-storage",
73
+ "encrypted-storage",
74
+ "biometric-storage",
75
+ "biometrics",
76
+ "ios-keychain",
77
+ "android-keystore",
67
78
  "nitro",
79
+ "nitro-modules",
68
80
  "jsi",
81
+ "synchronous-storage",
69
82
  "synchronous",
70
83
  "state-management",
84
+ "react-native-mmkv",
71
85
  "mmkv",
72
86
  "async-storage",
87
+ "expo-secure-store",
73
88
  "secure-store",
74
89
  "keychain",
75
90
  "persistence",
76
91
  "zustand",
77
92
  "jotai",
78
- "encrypted-storage",
79
- "react-native-storage",
93
+ "indexeddb",
80
94
  "native-module",
81
95
  "performance",
82
96
  "fast-storage"
@@ -95,8 +109,8 @@
95
109
  "registry": "https://registry.npmjs.org/"
96
110
  },
97
111
  "devDependencies": {
98
- "@expo/config-plugins": "^55.0.3",
99
- "@react-native/babel-preset": "^0.83.2",
112
+ "@expo/config-plugins": "^55.0.8",
113
+ "@react-native/babel-preset": "^0.83.6",
100
114
  "@testing-library/react-hooks": "^8.0.1",
101
115
  "@testing-library/react-native": "^13.3.3",
102
116
  "@types/react": "~19.2.0",
@@ -105,7 +119,7 @@
105
119
  "peerDependencies": {
106
120
  "react": ">=18.2.0",
107
121
  "react-native": ">=0.75.0",
108
- "react-native-nitro-modules": ">=0.35.4"
122
+ "react-native-nitro-modules": ">=0.35.5"
109
123
  },
110
124
  "react-native-builder-bob": {
111
125
  "source": "src",