react-native-nitro-storage 0.7.0 → 0.9.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 (110) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +89 -22
  3. package/SECURITY.md +2 -2
  4. package/cpp/bindings/HybridStorage.cpp +5 -12
  5. package/cpp/bindings/HybridStorage.hpp +1 -1
  6. package/docs/api-reference.md +11 -1
  7. package/docs/batch-transactions-migrations.md +8 -2
  8. package/docs/benchmarks.md +19 -15
  9. package/docs/web-backends.md +18 -1
  10. package/ios/IOSStorageAdapterCpp.mm +162 -17
  11. package/lib/commonjs/capabilities.js +26 -0
  12. package/lib/commonjs/capabilities.js.map +1 -0
  13. package/lib/commonjs/core/durability.js +137 -0
  14. package/lib/commonjs/core/durability.js.map +1 -0
  15. package/lib/commonjs/core/metrics.js +91 -0
  16. package/lib/commonjs/core/metrics.js.map +1 -0
  17. package/lib/commonjs/index.js +47 -22
  18. package/lib/commonjs/index.js.map +1 -1
  19. package/lib/commonjs/index.web.js +118 -66
  20. package/lib/commonjs/index.web.js.map +1 -1
  21. package/lib/commonjs/indexeddb-backend.js +73 -23
  22. package/lib/commonjs/indexeddb-backend.js.map +1 -1
  23. package/lib/commonjs/internal.js +27 -4
  24. package/lib/commonjs/internal.js.map +1 -1
  25. package/lib/commonjs/shared.js +2 -2
  26. package/lib/commonjs/shared.js.map +1 -1
  27. package/lib/commonjs/storage-core.js +224 -237
  28. package/lib/commonjs/storage-core.js.map +1 -1
  29. package/lib/commonjs/storage-events.js.map +1 -1
  30. package/lib/commonjs/storage-platform.js +6 -0
  31. package/lib/commonjs/storage-platform.js.map +1 -0
  32. package/lib/commonjs/storage-runtime.js +3 -21
  33. package/lib/commonjs/storage-runtime.js.map +1 -1
  34. package/lib/commonjs/testing.js +19 -4
  35. package/lib/commonjs/testing.js.map +1 -1
  36. package/lib/commonjs/web-backend-contract.js +27 -0
  37. package/lib/commonjs/web-backend-contract.js.map +1 -0
  38. package/lib/module/capabilities.js +21 -0
  39. package/lib/module/capabilities.js.map +1 -0
  40. package/lib/module/core/durability.js +133 -0
  41. package/lib/module/core/durability.js.map +1 -0
  42. package/lib/module/core/metrics.js +87 -0
  43. package/lib/module/core/metrics.js.map +1 -0
  44. package/lib/module/index.js +48 -23
  45. package/lib/module/index.js.map +1 -1
  46. package/lib/module/index.web.js +103 -64
  47. package/lib/module/index.web.js.map +1 -1
  48. package/lib/module/indexeddb-backend.js +73 -23
  49. package/lib/module/indexeddb-backend.js.map +1 -1
  50. package/lib/module/internal.js +24 -3
  51. package/lib/module/internal.js.map +1 -1
  52. package/lib/module/shared.js +2 -2
  53. package/lib/module/shared.js.map +1 -1
  54. package/lib/module/storage-core.js +225 -238
  55. package/lib/module/storage-core.js.map +1 -1
  56. package/lib/module/storage-events.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 +5 -2
  72. package/lib/typescript/index.d.ts.map +1 -1
  73. package/lib/typescript/index.web.d.ts +8 -4
  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 +6 -6
  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 +5 -1
  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/nitrogen/generated/shared/c++/HybridStorageSpec.hpp +1 -1
  94. package/package.json +4 -3
  95. package/react-native-nitro-storage.podspec +3 -1
  96. package/src/capabilities.ts +36 -0
  97. package/src/core/durability.ts +170 -0
  98. package/src/core/metrics.ts +133 -0
  99. package/src/index.ts +66 -40
  100. package/src/index.web.ts +158 -86
  101. package/src/indexeddb-backend.ts +91 -20
  102. package/src/internal.ts +50 -4
  103. package/src/shared.ts +7 -6
  104. package/src/storage-core.ts +327 -292
  105. package/src/storage-events.ts +2 -1
  106. package/src/storage-platform.ts +16 -0
  107. package/src/storage-runtime.ts +13 -47
  108. package/src/testing.ts +14 -7
  109. package/src/web-backend-contract.ts +34 -0
  110. package/src/web-storage-backend.ts +1 -1
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+
3
+ import { runMicrotask } from "../shared";
4
+ import { StorageScope } from "../Storage.types";
5
+ export function createDurabilityCoordinator(options) {
6
+ const pendingDiskWrites = new Map();
7
+ let diskFlushScheduled = false;
8
+ let diskWritesAsync = false;
9
+ const pendingSecureWrites = new Map();
10
+ let secureFlushScheduled = false;
11
+ function flushDiskWrites() {
12
+ diskFlushScheduled = false;
13
+ if (pendingDiskWrites.size === 0) {
14
+ return;
15
+ }
16
+ const writes = Array.from(pendingDiskWrites.values());
17
+ pendingDiskWrites.clear();
18
+ const keysToSet = [];
19
+ const valuesToSet = [];
20
+ const keysToRemove = [];
21
+ writes.forEach(({
22
+ key,
23
+ value
24
+ }) => {
25
+ if (value === undefined) {
26
+ keysToRemove.push(key);
27
+ return;
28
+ }
29
+ keysToSet.push(key);
30
+ valuesToSet.push(value);
31
+ });
32
+ if (keysToSet.length > 0) {
33
+ options.backend.setBatch(keysToSet, valuesToSet, StorageScope.Disk);
34
+ }
35
+ if (keysToRemove.length > 0) {
36
+ options.backend.removeBatch(keysToRemove, StorageScope.Disk);
37
+ }
38
+ }
39
+ function flushSecureWrites() {
40
+ secureFlushScheduled = false;
41
+ if (pendingSecureWrites.size === 0) {
42
+ return;
43
+ }
44
+ const writes = Array.from(pendingSecureWrites.values());
45
+ pendingSecureWrites.clear();
46
+ const groupedSetWrites = new Map();
47
+ const keysToRemove = [];
48
+ writes.forEach(({
49
+ key,
50
+ value,
51
+ accessControl
52
+ }) => {
53
+ if (value === undefined) {
54
+ keysToRemove.push(key);
55
+ } else {
56
+ const resolvedAccessControl = accessControl ?? options.resolveSecureDefaultAccessControl();
57
+ const existingGroup = groupedSetWrites.get(resolvedAccessControl);
58
+ const group = existingGroup ?? {
59
+ keys: [],
60
+ values: []
61
+ };
62
+ group.keys.push(key);
63
+ group.values.push(value);
64
+ if (!existingGroup) {
65
+ groupedSetWrites.set(resolvedAccessControl, group);
66
+ }
67
+ }
68
+ });
69
+ groupedSetWrites.forEach((group, accessControl) => {
70
+ options.backend.setSecureAccessControl(accessControl);
71
+ options.backend.setBatch(group.keys, group.values, StorageScope.Secure);
72
+ });
73
+ if (keysToRemove.length > 0) {
74
+ options.backend.removeBatch(keysToRemove, StorageScope.Secure);
75
+ }
76
+ }
77
+ function scheduleDiskWrite(key, value) {
78
+ pendingDiskWrites.set(key, {
79
+ key,
80
+ value
81
+ });
82
+ if (diskFlushScheduled) {
83
+ return;
84
+ }
85
+ diskFlushScheduled = true;
86
+ runMicrotask(flushDiskWrites);
87
+ }
88
+ function scheduleSecureWrite(key, value, accessControl) {
89
+ const pendingWrite = {
90
+ key,
91
+ value
92
+ };
93
+ if (accessControl !== undefined) {
94
+ pendingWrite.accessControl = accessControl;
95
+ }
96
+ pendingSecureWrites.set(key, pendingWrite);
97
+ if (secureFlushScheduled) {
98
+ return;
99
+ }
100
+ secureFlushScheduled = true;
101
+ runMicrotask(flushSecureWrites);
102
+ }
103
+ return {
104
+ setDiskWritesAsync(enabled) {
105
+ diskWritesAsync = enabled;
106
+ if (!enabled) {
107
+ flushDiskWrites();
108
+ }
109
+ },
110
+ isDiskWritesAsync: () => diskWritesAsync,
111
+ hasPendingDiskWrite: key => pendingDiskWrites.has(key),
112
+ hasPendingSecureWrite: key => pendingSecureWrites.has(key),
113
+ readPendingDiskWrite: key => pendingDiskWrites.get(key)?.value,
114
+ readPendingSecureWrite: key => pendingSecureWrites.get(key)?.value,
115
+ clearPendingDiskWrite: key => {
116
+ pendingDiskWrites.delete(key);
117
+ },
118
+ clearPendingSecureWrite: key => {
119
+ pendingSecureWrites.delete(key);
120
+ },
121
+ clearAllPendingDiskWrites: () => {
122
+ pendingDiskWrites.clear();
123
+ },
124
+ clearAllPendingSecureWrites: () => {
125
+ pendingSecureWrites.clear();
126
+ },
127
+ scheduleDiskWrite,
128
+ scheduleSecureWrite,
129
+ flushDiskWrites,
130
+ flushSecureWrites
131
+ };
132
+ }
133
+ //# sourceMappingURL=durability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["runMicrotask","StorageScope","createDurabilityCoordinator","options","pendingDiskWrites","Map","diskFlushScheduled","diskWritesAsync","pendingSecureWrites","secureFlushScheduled","flushDiskWrites","size","writes","Array","from","values","clear","keysToSet","valuesToSet","keysToRemove","forEach","key","value","undefined","push","length","backend","setBatch","Disk","removeBatch","flushSecureWrites","groupedSetWrites","accessControl","resolvedAccessControl","resolveSecureDefaultAccessControl","existingGroup","get","group","keys","set","setSecureAccessControl","Secure","scheduleDiskWrite","scheduleSecureWrite","pendingWrite","setDiskWritesAsync","enabled","isDiskWritesAsync","hasPendingDiskWrite","has","hasPendingSecureWrite","readPendingDiskWrite","readPendingSecureWrite","clearPendingDiskWrite","delete","clearPendingSecureWrite","clearAllPendingDiskWrites","clearAllPendingSecureWrites"],"sourceRoot":"../../../src","sources":["core/durability.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ import { now } from "../shared";
4
+ export function createMetricsRegistry() {
5
+ let observer;
6
+ const counters = new Map();
7
+ function record(operation, scope, durationMs, keysCount = 1) {
8
+ const counterKey = `${operation}:${scope}`;
9
+ const existing = counters.get(counterKey);
10
+ if (!existing) {
11
+ counters.set(counterKey, {
12
+ count: 1,
13
+ totalDurationMs: durationMs,
14
+ maxDurationMs: durationMs
15
+ });
16
+ } else {
17
+ existing.count += 1;
18
+ existing.totalDurationMs += durationMs;
19
+ existing.maxDurationMs = Math.max(existing.maxDurationMs, durationMs);
20
+ }
21
+ observer?.({
22
+ operation,
23
+ scope,
24
+ durationMs,
25
+ keysCount
26
+ });
27
+ }
28
+ function measure(operation, scope, fn, keysCount = 1) {
29
+ if (!observer) {
30
+ return fn();
31
+ }
32
+ const start = now();
33
+ try {
34
+ return fn();
35
+ } finally {
36
+ record(operation, scope, now() - start, keysCount);
37
+ }
38
+ }
39
+ function toSummary(value) {
40
+ return {
41
+ count: value.count,
42
+ totalDurationMs: value.totalDurationMs,
43
+ avgDurationMs: value.count === 0 ? 0 : value.totalDurationMs / value.count,
44
+ maxDurationMs: value.maxDurationMs
45
+ };
46
+ }
47
+ return {
48
+ setObserver(next) {
49
+ observer = next;
50
+ },
51
+ record,
52
+ measure,
53
+ getSnapshot() {
54
+ const aggregated = new Map();
55
+ counters.forEach((value, key) => {
56
+ const separator = key.lastIndexOf(":");
57
+ const operation = separator === -1 ? key : key.slice(0, separator);
58
+ const existing = aggregated.get(operation);
59
+ if (!existing) {
60
+ aggregated.set(operation, {
61
+ ...value
62
+ });
63
+ return;
64
+ }
65
+ existing.count += value.count;
66
+ existing.totalDurationMs += value.totalDurationMs;
67
+ existing.maxDurationMs = Math.max(existing.maxDurationMs, value.maxDurationMs);
68
+ });
69
+ const snapshot = {};
70
+ aggregated.forEach((value, operation) => {
71
+ snapshot[operation] = toSummary(value);
72
+ });
73
+ return snapshot;
74
+ },
75
+ getScopedSnapshot() {
76
+ const snapshot = {};
77
+ counters.forEach((value, key) => {
78
+ snapshot[key] = toSummary(value);
79
+ });
80
+ return snapshot;
81
+ },
82
+ reset() {
83
+ counters.clear();
84
+ }
85
+ };
86
+ }
87
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["now","createMetricsRegistry","observer","counters","Map","record","operation","scope","durationMs","keysCount","counterKey","existing","get","set","count","totalDurationMs","maxDurationMs","Math","max","measure","fn","start","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":[]}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
 
3
- import { assertAccessControlLevel, notifyAllListeners, notifyKeyListeners } from "./shared";
3
+ import { Platform } from "react-native";
4
4
  import { NitroModules } from "react-native-nitro-modules";
5
- import { StorageScope } from "./Storage.types";
6
- import { decodeNativeBatchValue } from "./internal";
5
+ import { resolveNativeWriteBuffering } from "./capabilities";
6
+ import { decodeNativeBatchValue, unescapeCollidingRawValue } from "./internal";
7
+ import { assertAccessControlLevel, notifyAllListeners, notifyKeyListeners } from "./shared";
7
8
  import { createStorageCore } from "./storage-core";
9
+ import { StorageScope } from "./Storage.types";
8
10
  export { isKeychainLockedError } from "./shared";
9
11
  export { StorageScope, AccessControl, BiometricLevel } from "./Storage.types";
10
12
  export { migrateFromMMKV } from "./migration";
@@ -19,33 +21,56 @@ function getStorageModule() {
19
21
  const nativeSecureBackend = "platform-secure-storage";
20
22
  const nativeBackend = {
21
23
  get: (key, scope) => getStorageModule().get(key, scope),
22
- set: (key, value, scope) => getStorageModule().set(key, value, scope),
23
- remove: (key, scope) => getStorageModule().remove(key, scope),
24
- clear: scope => getStorageModule().clear(scope),
24
+ set: (key, value, scope) => {
25
+ getStorageModule().set(key, value, scope);
26
+ },
27
+ remove: (key, scope) => {
28
+ getStorageModule().remove(key, scope);
29
+ },
30
+ clear: scope => {
31
+ getStorageModule().clear(scope);
32
+ },
25
33
  has: (key, scope) => getStorageModule().has(key, scope),
26
34
  getAllKeys: scope => getStorageModule().getAllKeys(scope) ?? [],
27
35
  getKeysByPrefix: (prefix, scope) => getStorageModule().getKeysByPrefix(prefix, scope) ?? [],
28
36
  size: scope => getStorageModule().size(scope),
29
- setBatch: (keys, values, scope) => getStorageModule().setBatch(keys, values, scope),
37
+ setBatch: (keys, values, scope) => {
38
+ getStorageModule().setBatch(keys, values, scope);
39
+ },
30
40
  getBatch: (keys, scope) => (getStorageModule().getBatch(keys, scope) ?? []).map(value => decodeNativeBatchValue(value)),
31
- removeBatch: (keys, scope) => getStorageModule().removeBatch(keys, scope),
32
- removeByPrefix: (prefix, scope) => getStorageModule().removeByPrefix(prefix, scope),
33
- setSecureAccessControl: level => getStorageModule().setSecureAccessControl(level),
41
+ removeBatch: (keys, scope) => {
42
+ getStorageModule().removeBatch(keys, scope);
43
+ },
44
+ removeByPrefix: (prefix, scope) => {
45
+ getStorageModule().removeByPrefix(prefix, scope);
46
+ },
47
+ setSecureAccessControl: level => {
48
+ getStorageModule().setSecureAccessControl(level);
49
+ },
34
50
  getSecureBiometric: key => getStorageModule().getSecureBiometric(key),
35
- setSecureBiometricWithLevel: (key, value, level) => getStorageModule().setSecureBiometricWithLevel(key, value, level),
36
- deleteSecureBiometric: key => getStorageModule().deleteSecureBiometric(key),
51
+ setSecureBiometricWithLevel: (key, value, level) => {
52
+ getStorageModule().setSecureBiometricWithLevel(key, value, level);
53
+ },
54
+ deleteSecureBiometric: key => {
55
+ getStorageModule().deleteSecureBiometric(key);
56
+ },
37
57
  hasSecureBiometric: key => getStorageModule().hasSecureBiometric(key),
38
- clearSecureBiometric: () => getStorageModule().clearSecureBiometric()
58
+ clearSecureBiometric: () => {
59
+ getStorageModule().clearSecureBiometric();
60
+ }
39
61
  };
40
62
  function buildNativeAdapter(internals) {
41
63
  const scopedUnsubscribers = new Map();
42
- const suppressedNativeEvents = new Map([[StorageScope.Disk, new Map()], [StorageScope.Secure, new Map()]]);
64
+ const suppressedNativeEvents = {
65
+ [StorageScope.Disk]: new Map(),
66
+ [StorageScope.Secure]: new Map()
67
+ };
43
68
  function suppressNativeEvent(scope, key) {
44
- const suppressedEvents = suppressedNativeEvents.get(scope);
69
+ const suppressedEvents = suppressedNativeEvents[scope];
45
70
  suppressedEvents.set(key, (suppressedEvents.get(key) ?? 0) + 1);
46
71
  }
47
72
  function consumeSuppressedNativeEvent(scope, key) {
48
- const suppressedEvents = suppressedNativeEvents.get(scope);
73
+ const suppressedEvents = suppressedNativeEvents[scope];
49
74
  const count = suppressedEvents.get(key);
50
75
  if (count === undefined) {
51
76
  return false;
@@ -87,7 +112,7 @@ function buildNativeAdapter(internals) {
87
112
  if (consumeSuppressedNativeEvent(scope, key)) {
88
113
  return;
89
114
  }
90
- internals.emitKeyChange(scope, key, oldValue, value, "external", "native");
115
+ internals.emitKeyChange(scope, key, oldValue === undefined ? undefined : unescapeCollidingRawValue(oldValue), value === undefined ? undefined : unescapeCollidingRawValue(value), "external", "native");
91
116
  });
92
117
  scopedUnsubscribers.set(scope, typeof unsubscribe === "function" ? unsubscribe : () => {});
93
118
  }
@@ -107,12 +132,13 @@ function buildNativeAdapter(internals) {
107
132
  backend: nativeBackend,
108
133
  changeSource: "native",
109
134
  applyAccessControlOnSecureRawWrite: true,
110
- flushDiskWritesOnImport: false,
111
135
  ensureScopeSubscription: ensureNativeScopeSubscription,
112
136
  maybeCleanupScopeSubscription: maybeCleanupNativeScopeSubscription,
113
137
  onWillEmitChanges: (scope, keys, operation, source) => {
114
138
  if (source === "native" && operation !== "external" && scope !== StorageScope.Memory && scopedUnsubscribers.has(scope)) {
115
- keys.forEach(key => suppressNativeEvent(scope, key));
139
+ keys.forEach(key => {
140
+ suppressNativeEvent(scope, key);
141
+ });
116
142
  }
117
143
  },
118
144
  getSecureMetadataProfile: () => ({
@@ -126,6 +152,7 @@ const core = createStorageCore(buildNativeAdapter);
126
152
  const {
127
153
  internals
128
154
  } = core;
155
+ let secureWritesBuffered = false;
129
156
  export const storage = {
130
157
  ...core.storage,
131
158
  setAccessControl: level => {
@@ -137,6 +164,7 @@ export const storage = {
137
164
  },
138
165
  setSecureWritesAsync: enabled => {
139
166
  internals.measureOperation("storage:setSecureWritesAsync", StorageScope.Secure, () => {
167
+ secureWritesBuffered = enabled;
140
168
  getStorageModule().setSecureWritesAsync(enabled);
141
169
  });
142
170
  },
@@ -151,10 +179,7 @@ export const storage = {
151
179
  disk: "platform-preferences",
152
180
  secure: nativeSecureBackend
153
181
  },
154
- writeBuffering: {
155
- disk: true,
156
- secure: true
157
- },
182
+ writeBuffering: resolveNativeWriteBuffering(Platform.OS === "android" ? "android" : "ios", secureWritesBuffered),
158
183
  errorClassification: true
159
184
  }),
160
185
  getSecurityCapabilities: () => ({
@@ -1 +1 @@
1
- {"version":3,"names":["assertAccessControlLevel","notifyAllListeners","notifyKeyListeners","NitroModules","StorageScope","decodeNativeBatchValue","createStorageCore","isKeychainLockedError","AccessControl","BiometricLevel","migrateFromMMKV","getStorageErrorCode","_storageModule","getStorageModule","createHybridObject","nativeSecureBackend","nativeBackend","get","key","scope","set","value","remove","clear","has","getAllKeys","getKeysByPrefix","prefix","size","setBatch","keys","values","getBatch","map","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","cacheRawValue","emitKeyChange","maybeCleanupNativeScopeSubscription","listeners","hasScopeEventListeners","hasEventObserver","backend","changeSource","applyAccessControlOnSecureRawWrite","flushDiskWritesOnImport","ensureScopeSubscription","maybeCleanupScopeSubscription","onWillEmitChanges","operation","source","Memory","forEach","getSecureMetadataProfile","encrypted","hardwareBacked","core","storage","setAccessControl","measureOperation","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","useSetStorage","useStorage","useStorageActions","useStorageSelector","useStorageValue","createIndexedDBBackend"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","NitroModules","resolveNativeWriteBuffering","decodeNativeBatchValue","unescapeCollidingRawValue","assertAccessControlLevel","notifyAllListeners","notifyKeyListeners","createStorageCore","StorageScope","isKeychainLockedError","AccessControl","BiometricLevel","migrateFromMMKV","getStorageErrorCode","_storageModule","getStorageModule","createHybridObject","nativeSecureBackend","nativeBackend","get","key","scope","set","value","remove","clear","has","getAllKeys","getKeysByPrefix","prefix","size","setBatch","keys","values","getBatch","map","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","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":"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","ignoreList":[]}