react-native-nitro-storage 0.6.0 → 0.8.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 (108) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +36 -12
  3. package/SECURITY.md +2 -2
  4. package/android/src/main/java/com/nitrostorage/AndroidStorageAdapter.kt +225 -76
  5. package/app.plugin.js +2 -0
  6. package/cpp/bindings/HybridStorage.cpp +4 -12
  7. package/docs/api-reference.md +11 -1
  8. package/docs/batch-transactions-migrations.md +8 -2
  9. package/docs/benchmarks.md +19 -15
  10. package/docs/secure-storage.md +4 -0
  11. package/docs/web-backends.md +18 -1
  12. package/ios/IOSStorageAdapterCpp.mm +162 -17
  13. package/lib/commonjs/capabilities.js +26 -0
  14. package/lib/commonjs/capabilities.js.map +1 -0
  15. package/lib/commonjs/core/durability.js +137 -0
  16. package/lib/commonjs/core/durability.js.map +1 -0
  17. package/lib/commonjs/core/metrics.js +91 -0
  18. package/lib/commonjs/core/metrics.js.map +1 -0
  19. package/lib/commonjs/index.js +47 -22
  20. package/lib/commonjs/index.js.map +1 -1
  21. package/lib/commonjs/index.web.js +118 -66
  22. package/lib/commonjs/index.web.js.map +1 -1
  23. package/lib/commonjs/indexeddb-backend.js +73 -23
  24. package/lib/commonjs/indexeddb-backend.js.map +1 -1
  25. package/lib/commonjs/internal.js +27 -4
  26. package/lib/commonjs/internal.js.map +1 -1
  27. package/lib/commonjs/shared.js +2 -2
  28. package/lib/commonjs/shared.js.map +1 -1
  29. package/lib/commonjs/storage-core.js +217 -233
  30. package/lib/commonjs/storage-core.js.map +1 -1
  31. package/lib/commonjs/storage-platform.js +6 -0
  32. package/lib/commonjs/storage-platform.js.map +1 -0
  33. package/lib/commonjs/storage-runtime.js +3 -21
  34. package/lib/commonjs/storage-runtime.js.map +1 -1
  35. package/lib/commonjs/testing.js +19 -4
  36. package/lib/commonjs/testing.js.map +1 -1
  37. package/lib/commonjs/web-backend-contract.js +27 -0
  38. package/lib/commonjs/web-backend-contract.js.map +1 -0
  39. package/lib/module/capabilities.js +21 -0
  40. package/lib/module/capabilities.js.map +1 -0
  41. package/lib/module/core/durability.js +133 -0
  42. package/lib/module/core/durability.js.map +1 -0
  43. package/lib/module/core/metrics.js +87 -0
  44. package/lib/module/core/metrics.js.map +1 -0
  45. package/lib/module/index.js +48 -23
  46. package/lib/module/index.js.map +1 -1
  47. package/lib/module/index.web.js +103 -64
  48. package/lib/module/index.web.js.map +1 -1
  49. package/lib/module/indexeddb-backend.js +73 -23
  50. package/lib/module/indexeddb-backend.js.map +1 -1
  51. package/lib/module/internal.js +24 -3
  52. package/lib/module/internal.js.map +1 -1
  53. package/lib/module/shared.js +2 -2
  54. package/lib/module/shared.js.map +1 -1
  55. package/lib/module/storage-core.js +218 -234
  56. package/lib/module/storage-core.js.map +1 -1
  57. package/lib/module/storage-platform.js +4 -0
  58. package/lib/module/storage-platform.js.map +1 -0
  59. package/lib/module/storage-runtime.js +3 -21
  60. package/lib/module/storage-runtime.js.map +1 -1
  61. package/lib/module/testing.js +5 -3
  62. package/lib/module/testing.js.map +1 -1
  63. package/lib/module/web-backend-contract.js +22 -0
  64. package/lib/module/web-backend-contract.js.map +1 -0
  65. package/lib/typescript/capabilities.d.ts +11 -0
  66. package/lib/typescript/capabilities.d.ts.map +1 -0
  67. package/lib/typescript/core/durability.d.ts +27 -0
  68. package/lib/typescript/core/durability.d.ts.map +1 -0
  69. package/lib/typescript/core/metrics.d.ts +12 -0
  70. package/lib/typescript/core/metrics.d.ts.map +1 -0
  71. package/lib/typescript/index.d.ts +11 -3
  72. package/lib/typescript/index.d.ts.map +1 -1
  73. package/lib/typescript/index.web.d.ts +14 -5
  74. package/lib/typescript/index.web.d.ts.map +1 -1
  75. package/lib/typescript/indexeddb-backend.d.ts.map +1 -1
  76. package/lib/typescript/internal.d.ts +3 -0
  77. package/lib/typescript/internal.d.ts.map +1 -1
  78. package/lib/typescript/shared.d.ts +2 -1
  79. package/lib/typescript/shared.d.ts.map +1 -1
  80. package/lib/typescript/storage-core.d.ts +14 -4
  81. package/lib/typescript/storage-core.d.ts.map +1 -1
  82. package/lib/typescript/storage-events.d.ts +2 -2
  83. package/lib/typescript/storage-events.d.ts.map +1 -1
  84. package/lib/typescript/storage-platform.d.ts +12 -0
  85. package/lib/typescript/storage-platform.d.ts.map +1 -0
  86. package/lib/typescript/storage-runtime.d.ts.map +1 -1
  87. package/lib/typescript/testing.d.ts +17 -3
  88. package/lib/typescript/testing.d.ts.map +1 -1
  89. package/lib/typescript/web-backend-contract.d.ts +10 -0
  90. package/lib/typescript/web-backend-contract.d.ts.map +1 -0
  91. package/lib/typescript/web-storage-backend.d.ts +1 -1
  92. package/lib/typescript/web-storage-backend.d.ts.map +1 -1
  93. package/package.json +6 -6
  94. package/src/capabilities.ts +36 -0
  95. package/src/core/durability.ts +170 -0
  96. package/src/core/metrics.ts +133 -0
  97. package/src/index.ts +67 -42
  98. package/src/index.web.ts +159 -88
  99. package/src/indexeddb-backend.ts +92 -22
  100. package/src/internal.ts +51 -5
  101. package/src/shared.ts +7 -6
  102. package/src/storage-core.ts +336 -287
  103. package/src/storage-events.ts +3 -3
  104. package/src/storage-platform.ts +16 -0
  105. package/src/storage-runtime.ts +13 -47
  106. package/src/testing.ts +14 -7
  107. package/src/web-backend-contract.ts +34 -0
  108. package/src/web-storage-backend.ts +1 -1
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createMetricsRegistry = createMetricsRegistry;
7
+ var _shared = require("../shared");
8
+ function createMetricsRegistry() {
9
+ let observer;
10
+ const counters = new Map();
11
+ function record(operation, scope, durationMs, keysCount = 1) {
12
+ const counterKey = `${operation}:${scope}`;
13
+ const existing = counters.get(counterKey);
14
+ if (!existing) {
15
+ counters.set(counterKey, {
16
+ count: 1,
17
+ totalDurationMs: durationMs,
18
+ maxDurationMs: durationMs
19
+ });
20
+ } else {
21
+ existing.count += 1;
22
+ existing.totalDurationMs += durationMs;
23
+ existing.maxDurationMs = Math.max(existing.maxDurationMs, durationMs);
24
+ }
25
+ observer?.({
26
+ operation,
27
+ scope,
28
+ durationMs,
29
+ keysCount
30
+ });
31
+ }
32
+ function measure(operation, scope, fn, keysCount = 1) {
33
+ if (!observer) {
34
+ return fn();
35
+ }
36
+ const start = (0, _shared.now)();
37
+ try {
38
+ return fn();
39
+ } finally {
40
+ record(operation, scope, (0, _shared.now)() - start, keysCount);
41
+ }
42
+ }
43
+ function toSummary(value) {
44
+ return {
45
+ count: value.count,
46
+ totalDurationMs: value.totalDurationMs,
47
+ avgDurationMs: value.count === 0 ? 0 : value.totalDurationMs / value.count,
48
+ maxDurationMs: value.maxDurationMs
49
+ };
50
+ }
51
+ return {
52
+ setObserver(next) {
53
+ observer = next;
54
+ },
55
+ record,
56
+ measure,
57
+ getSnapshot() {
58
+ const aggregated = new Map();
59
+ counters.forEach((value, key) => {
60
+ const separator = key.lastIndexOf(":");
61
+ const operation = separator === -1 ? key : key.slice(0, separator);
62
+ const existing = aggregated.get(operation);
63
+ if (!existing) {
64
+ aggregated.set(operation, {
65
+ ...value
66
+ });
67
+ return;
68
+ }
69
+ existing.count += value.count;
70
+ existing.totalDurationMs += value.totalDurationMs;
71
+ existing.maxDurationMs = Math.max(existing.maxDurationMs, value.maxDurationMs);
72
+ });
73
+ const snapshot = {};
74
+ aggregated.forEach((value, operation) => {
75
+ snapshot[operation] = toSummary(value);
76
+ });
77
+ return snapshot;
78
+ },
79
+ getScopedSnapshot() {
80
+ const snapshot = {};
81
+ counters.forEach((value, key) => {
82
+ snapshot[key] = toSummary(value);
83
+ });
84
+ return snapshot;
85
+ },
86
+ reset() {
87
+ counters.clear();
88
+ }
89
+ };
90
+ }
91
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_shared","require","createMetricsRegistry","observer","counters","Map","record","operation","scope","durationMs","keysCount","counterKey","existing","get","set","count","totalDurationMs","maxDurationMs","Math","max","measure","fn","start","now","toSummary","value","avgDurationMs","setObserver","next","getSnapshot","aggregated","forEach","key","separator","lastIndexOf","slice","snapshot","getScopedSnapshot","reset","clear"],"sourceRoot":"../../../src","sources":["core/metrics.ts"],"mappings":"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","ignoreList":[]}
@@ -85,11 +85,13 @@ Object.defineProperty(exports, "useStorageValue", {
85
85
  return _storageHooks.useStorageValue;
86
86
  }
87
87
  });
88
- var _shared = require("./shared");
88
+ var _reactNative = require("react-native");
89
89
  var _reactNativeNitroModules = require("react-native-nitro-modules");
90
- var _Storage = require("./Storage.types");
90
+ var _capabilities = require("./capabilities");
91
91
  var _internal = require("./internal");
92
+ var _shared = require("./shared");
92
93
  var _storageCore = require("./storage-core");
94
+ var _Storage = require("./Storage.types");
93
95
  var _migration = require("./migration");
94
96
  var _storageRuntime = require("./storage-runtime");
95
97
  var _storageHooks = require("./storage-hooks");
@@ -104,33 +106,56 @@ function getStorageModule() {
104
106
  const nativeSecureBackend = "platform-secure-storage";
105
107
  const nativeBackend = {
106
108
  get: (key, scope) => getStorageModule().get(key, scope),
107
- set: (key, value, scope) => getStorageModule().set(key, value, scope),
108
- remove: (key, scope) => getStorageModule().remove(key, scope),
109
- clear: scope => getStorageModule().clear(scope),
109
+ set: (key, value, scope) => {
110
+ getStorageModule().set(key, value, scope);
111
+ },
112
+ remove: (key, scope) => {
113
+ getStorageModule().remove(key, scope);
114
+ },
115
+ clear: scope => {
116
+ getStorageModule().clear(scope);
117
+ },
110
118
  has: (key, scope) => getStorageModule().has(key, scope),
111
119
  getAllKeys: scope => getStorageModule().getAllKeys(scope) ?? [],
112
120
  getKeysByPrefix: (prefix, scope) => getStorageModule().getKeysByPrefix(prefix, scope) ?? [],
113
121
  size: scope => getStorageModule().size(scope),
114
- setBatch: (keys, values, scope) => getStorageModule().setBatch(keys, values, scope),
122
+ setBatch: (keys, values, scope) => {
123
+ getStorageModule().setBatch(keys, values, scope);
124
+ },
115
125
  getBatch: (keys, scope) => (getStorageModule().getBatch(keys, scope) ?? []).map(value => (0, _internal.decodeNativeBatchValue)(value)),
116
- removeBatch: (keys, scope) => getStorageModule().removeBatch(keys, scope),
117
- removeByPrefix: (prefix, scope) => getStorageModule().removeByPrefix(prefix, scope),
118
- setSecureAccessControl: level => getStorageModule().setSecureAccessControl(level),
126
+ removeBatch: (keys, scope) => {
127
+ getStorageModule().removeBatch(keys, scope);
128
+ },
129
+ removeByPrefix: (prefix, scope) => {
130
+ getStorageModule().removeByPrefix(prefix, scope);
131
+ },
132
+ setSecureAccessControl: level => {
133
+ getStorageModule().setSecureAccessControl(level);
134
+ },
119
135
  getSecureBiometric: key => getStorageModule().getSecureBiometric(key),
120
- setSecureBiometricWithLevel: (key, value, level) => getStorageModule().setSecureBiometricWithLevel(key, value, level),
121
- deleteSecureBiometric: key => getStorageModule().deleteSecureBiometric(key),
136
+ setSecureBiometricWithLevel: (key, value, level) => {
137
+ getStorageModule().setSecureBiometricWithLevel(key, value, level);
138
+ },
139
+ deleteSecureBiometric: key => {
140
+ getStorageModule().deleteSecureBiometric(key);
141
+ },
122
142
  hasSecureBiometric: key => getStorageModule().hasSecureBiometric(key),
123
- clearSecureBiometric: () => getStorageModule().clearSecureBiometric()
143
+ clearSecureBiometric: () => {
144
+ getStorageModule().clearSecureBiometric();
145
+ }
124
146
  };
125
147
  function buildNativeAdapter(internals) {
126
148
  const scopedUnsubscribers = new Map();
127
- const suppressedNativeEvents = new Map([[_Storage.StorageScope.Disk, new Map()], [_Storage.StorageScope.Secure, new Map()]]);
149
+ const suppressedNativeEvents = {
150
+ [_Storage.StorageScope.Disk]: new Map(),
151
+ [_Storage.StorageScope.Secure]: new Map()
152
+ };
128
153
  function suppressNativeEvent(scope, key) {
129
- const suppressedEvents = suppressedNativeEvents.get(scope);
154
+ const suppressedEvents = suppressedNativeEvents[scope];
130
155
  suppressedEvents.set(key, (suppressedEvents.get(key) ?? 0) + 1);
131
156
  }
132
157
  function consumeSuppressedNativeEvent(scope, key) {
133
- const suppressedEvents = suppressedNativeEvents.get(scope);
158
+ const suppressedEvents = suppressedNativeEvents[scope];
134
159
  const count = suppressedEvents.get(key);
135
160
  if (count === undefined) {
136
161
  return false;
@@ -172,7 +197,7 @@ function buildNativeAdapter(internals) {
172
197
  if (consumeSuppressedNativeEvent(scope, key)) {
173
198
  return;
174
199
  }
175
- internals.emitKeyChange(scope, key, oldValue, value, "external", "native");
200
+ internals.emitKeyChange(scope, key, oldValue === undefined ? undefined : (0, _internal.unescapeCollidingRawValue)(oldValue), value === undefined ? undefined : (0, _internal.unescapeCollidingRawValue)(value), "external", "native");
176
201
  });
177
202
  scopedUnsubscribers.set(scope, typeof unsubscribe === "function" ? unsubscribe : () => {});
178
203
  }
@@ -192,12 +217,13 @@ function buildNativeAdapter(internals) {
192
217
  backend: nativeBackend,
193
218
  changeSource: "native",
194
219
  applyAccessControlOnSecureRawWrite: true,
195
- flushDiskWritesOnImport: false,
196
220
  ensureScopeSubscription: ensureNativeScopeSubscription,
197
221
  maybeCleanupScopeSubscription: maybeCleanupNativeScopeSubscription,
198
222
  onWillEmitChanges: (scope, keys, operation, source) => {
199
223
  if (source === "native" && operation !== "external" && scope !== _Storage.StorageScope.Memory && scopedUnsubscribers.has(scope)) {
200
- keys.forEach(key => suppressNativeEvent(scope, key));
224
+ keys.forEach(key => {
225
+ suppressNativeEvent(scope, key);
226
+ });
201
227
  }
202
228
  },
203
229
  getSecureMetadataProfile: () => ({
@@ -211,6 +237,7 @@ const core = (0, _storageCore.createStorageCore)(buildNativeAdapter);
211
237
  const {
212
238
  internals
213
239
  } = core;
240
+ let secureWritesBuffered = false;
214
241
  const storage = exports.storage = {
215
242
  ...core.storage,
216
243
  setAccessControl: level => {
@@ -222,6 +249,7 @@ const storage = exports.storage = {
222
249
  },
223
250
  setSecureWritesAsync: enabled => {
224
251
  internals.measureOperation("storage:setSecureWritesAsync", _Storage.StorageScope.Secure, () => {
252
+ secureWritesBuffered = enabled;
225
253
  getStorageModule().setSecureWritesAsync(enabled);
226
254
  });
227
255
  },
@@ -236,10 +264,7 @@ const storage = exports.storage = {
236
264
  disk: "platform-preferences",
237
265
  secure: nativeSecureBackend
238
266
  },
239
- writeBuffering: {
240
- disk: true,
241
- secure: true
242
- },
267
+ writeBuffering: (0, _capabilities.resolveNativeWriteBuffering)(_reactNative.Platform.OS === "android" ? "android" : "ios", secureWritesBuffered),
243
268
  errorClassification: true
244
269
  }),
245
270
  getSecurityCapabilities: () => ({
@@ -1 +1 @@
1
- {"version":3,"names":["_shared","require","_reactNativeNitroModules","_Storage","_internal","_storageCore","_migration","_storageRuntime","_storageHooks","_indexeddbBackend","_storageModule","getStorageModule","NitroModules","createHybridObject","nativeSecureBackend","nativeBackend","get","key","scope","set","value","remove","clear","has","getAllKeys","getKeysByPrefix","prefix","size","setBatch","keys","values","getBatch","map","decodeNativeBatchValue","removeBatch","removeByPrefix","setSecureAccessControl","level","getSecureBiometric","setSecureBiometricWithLevel","deleteSecureBiometric","hasSecureBiometric","clearSecureBiometric","buildNativeAdapter","internals","scopedUnsubscribers","Map","suppressedNativeEvents","StorageScope","Disk","Secure","suppressNativeEvent","suppressedEvents","consumeSuppressedNativeEvent","count","undefined","delete","ensureNativeScopeSubscription","unsubscribe","addOnChange","clearAllPendingDiskWrites","clearPendingDiskWrite","clearAllPendingSecureWrites","clearPendingSecureWrite","clearScopeRawCache","notifyAllListeners","getScopedListeners","oldValue","readCachedRawValue","cacheRawValue","notifyKeyListeners","emitKeyChange","maybeCleanupNativeScopeSubscription","listeners","hasScopeEventListeners","hasEventObserver","backend","changeSource","applyAccessControlOnSecureRawWrite","flushDiskWritesOnImport","ensureScopeSubscription","maybeCleanupScopeSubscription","onWillEmitChanges","operation","source","Memory","forEach","getSecureMetadataProfile","encrypted","hardwareBacked","core","createStorageCore","storage","exports","setAccessControl","measureOperation","assertAccessControlLevel","setSecureDefaultAccessControl","setSecureWritesAsync","enabled","setKeychainAccessGroup","group","getCapabilities","platform","disk","secure","writeBuffering","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"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeNitroModules","_capabilities","_internal","_shared","_storageCore","_Storage","_migration","_storageRuntime","_storageHooks","_indexeddbBackend","_storageModule","getStorageModule","NitroModules","createHybridObject","nativeSecureBackend","nativeBackend","get","key","scope","set","value","remove","clear","has","getAllKeys","getKeysByPrefix","prefix","size","setBatch","keys","values","getBatch","map","decodeNativeBatchValue","removeBatch","removeByPrefix","setSecureAccessControl","level","getSecureBiometric","setSecureBiometricWithLevel","deleteSecureBiometric","hasSecureBiometric","clearSecureBiometric","buildNativeAdapter","internals","scopedUnsubscribers","Map","suppressedNativeEvents","StorageScope","Disk","Secure","suppressNativeEvent","suppressedEvents","consumeSuppressedNativeEvent","count","undefined","delete","ensureNativeScopeSubscription","unsubscribe","addOnChange","clearAllPendingDiskWrites","clearPendingDiskWrite","clearAllPendingSecureWrites","clearPendingSecureWrite","clearScopeRawCache","notifyAllListeners","getScopedListeners","oldValue","readCachedRawValue","cacheRawValue","notifyKeyListeners","emitKeyChange","unescapeCollidingRawValue","maybeCleanupNativeScopeSubscription","listeners","hasScopeEventListeners","hasEventObserver","backend","changeSource","applyAccessControlOnSecureRawWrite","ensureScopeSubscription","maybeCleanupScopeSubscription","onWillEmitChanges","operation","source","Memory","forEach","getSecureMetadataProfile","encrypted","hardwareBacked","core","createStorageCore","secureWritesBuffered","storage","exports","setAccessControl","measureOperation","assertAccessControlLevel","setSecureDefaultAccessControl","setSecureWritesAsync","enabled","setKeychainAccessGroup","group","getCapabilities","platform","disk","secure","writeBuffering","resolveNativeWriteBuffering","Platform","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"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}