@buoy-gg/storage 7.0.41 → 7.0.42

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 (180) hide show
  1. package/README.md +11 -90
  2. package/lib/commonjs/index.js +1 -353
  3. package/lib/commonjs/preset.js +1 -85
  4. package/lib/commonjs/storage/components/DiffViewer/TreeDiffViewer.js +1 -36
  5. package/lib/commonjs/storage/components/DiffViewer/modes/ThemedSplitView.js +1 -12
  6. package/lib/commonjs/storage/components/DiffViewer/themes/diffThemes.js +1 -24
  7. package/lib/commonjs/storage/components/GameUIStorageBrowser.js +3 -1259
  8. package/lib/commonjs/storage/components/MMKVInstanceInfoPanel.js +1 -257
  9. package/lib/commonjs/storage/components/MMKVInstanceSelector.js +1 -419
  10. package/lib/commonjs/storage/components/SelectionActionBar.js +1 -207
  11. package/lib/commonjs/storage/components/StorageActionButtons.js +1 -242
  12. package/lib/commonjs/storage/components/StorageBrowserMode.js +1 -61
  13. package/lib/commonjs/storage/components/StorageEventActionButton.js +1 -121
  14. package/lib/commonjs/storage/components/StorageEventCard.js +1 -118
  15. package/lib/commonjs/storage/components/StorageEventDetailContent.js +1 -494
  16. package/lib/commonjs/storage/components/StorageEventFilterView.js +1 -160
  17. package/lib/commonjs/storage/components/StorageEventsSection.js +1 -24
  18. package/lib/commonjs/storage/components/StorageFilterCards.js +1 -231
  19. package/lib/commonjs/storage/components/StorageKeyCard.js +1 -520
  20. package/lib/commonjs/storage/components/StorageKeyDetailScreen.js +1 -579
  21. package/lib/commonjs/storage/components/StorageKeyRow.js +1 -559
  22. package/lib/commonjs/storage/components/StorageKeySection.js +1 -160
  23. package/lib/commonjs/storage/components/StorageKeyStats.js +1 -345
  24. package/lib/commonjs/storage/components/StorageModalWithTabs.js +1 -954
  25. package/lib/commonjs/storage/components/StorageSaveNotice.js +1 -171
  26. package/lib/commonjs/storage/components/StorageSection.js +1 -43
  27. package/lib/commonjs/storage/components/StorageTypeFilterBar.js +1 -144
  28. package/lib/commonjs/storage/hooks/useAsyncStorageKeys.js +1 -141
  29. package/lib/commonjs/storage/hooks/useMMKVInstances.js +1 -210
  30. package/lib/commonjs/storage/hooks/useMMKVKeys.js +1 -376
  31. package/lib/commonjs/storage/hooks/useSecureStoreKeys.js +1 -202
  32. package/lib/commonjs/storage/hooks/useStorageEvents.js +1 -61
  33. package/lib/commonjs/storage/stores/storageEventStore.js +1 -312
  34. package/lib/commonjs/storage/sync/storageSyncAdapter.js +1 -492
  35. package/lib/commonjs/storage/types.js +1 -5
  36. package/lib/commonjs/storage/utils/AsyncStorageListener.js +1 -691
  37. package/lib/commonjs/storage/utils/AsyncStorageListener.web.js +1 -89
  38. package/lib/commonjs/storage/utils/MMKVInstanceRegistry.js +1 -203
  39. package/lib/commonjs/storage/utils/MMKVListener.js +1 -416
  40. package/lib/commonjs/storage/utils/SecureStoreRegistry.js +1 -200
  41. package/lib/commonjs/storage/utils/asyncStorageCompat.js +1 -89
  42. package/lib/commonjs/storage/utils/browserStorageLifecycle.js +1 -10
  43. package/lib/commonjs/storage/utils/browserStorageLifecycle.web.js +1 -70
  44. package/lib/commonjs/storage/utils/clearAllStorage.js +1 -48
  45. package/lib/commonjs/storage/utils/deleteStorageKeys.js +1 -82
  46. package/lib/commonjs/storage/utils/lineDiff.js +1 -30
  47. package/lib/commonjs/storage/utils/mmkvAvailability.js +1 -62
  48. package/lib/commonjs/storage/utils/mmkvAvailability.web.js +1 -21
  49. package/lib/commonjs/storage/utils/mmkvTypeDetection.js +1 -154
  50. package/lib/commonjs/storage/utils/requiredStorageKeyScope.js +1 -17
  51. package/lib/commonjs/storage/utils/setStorageValue.js +1 -218
  52. package/lib/commonjs/storage/utils/snapshotProvider.js +1 -382
  53. package/lib/commonjs/storage/utils/storageActionHelpers.js +1 -46
  54. package/lib/commonjs/storage/utils/storageBrowserRefresh.js +1 -49
  55. package/lib/commonjs/storage/utils/storageLabels.js +1 -13
  56. package/lib/commonjs/storage/utils/storageLabels.web.js +1 -13
  57. package/lib/commonjs/storage/utils/storageOps.js +1 -53
  58. package/lib/commonjs/storage/utils/storageQueryUtils.js +1 -35
  59. package/lib/commonjs/storage/utils/storageTimeTravelUtils.js +1 -288
  60. package/lib/commonjs/storage/utils/valueType.js +1 -83
  61. package/lib/module/index.js +1 -114
  62. package/lib/module/preset.js +1 -82
  63. package/lib/module/storage/components/DiffViewer/TreeDiffViewer.js +1 -32
  64. package/lib/module/storage/components/DiffViewer/modes/ThemedSplitView.js +1 -9
  65. package/lib/module/storage/components/DiffViewer/themes/diffThemes.js +1 -10
  66. package/lib/module/storage/components/GameUIStorageBrowser.js +3 -1257
  67. package/lib/module/storage/components/MMKVInstanceInfoPanel.js +1 -253
  68. package/lib/module/storage/components/MMKVInstanceSelector.js +1 -415
  69. package/lib/module/storage/components/SelectionActionBar.js +1 -204
  70. package/lib/module/storage/components/StorageActionButtons.js +1 -238
  71. package/lib/module/storage/components/StorageBrowserMode.js +1 -57
  72. package/lib/module/storage/components/StorageEventActionButton.js +1 -118
  73. package/lib/module/storage/components/StorageEventCard.js +1 -113
  74. package/lib/module/storage/components/StorageEventDetailContent.js +1 -490
  75. package/lib/module/storage/components/StorageEventFilterView.js +1 -156
  76. package/lib/module/storage/components/StorageEventsSection.js +1 -20
  77. package/lib/module/storage/components/StorageFilterCards.js +1 -227
  78. package/lib/module/storage/components/StorageKeyCard.js +1 -517
  79. package/lib/module/storage/components/StorageKeyDetailScreen.js +1 -577
  80. package/lib/module/storage/components/StorageKeyRow.js +1 -554
  81. package/lib/module/storage/components/StorageKeySection.js +1 -155
  82. package/lib/module/storage/components/StorageKeyStats.js +1 -342
  83. package/lib/module/storage/components/StorageModalWithTabs.js +1 -949
  84. package/lib/module/storage/components/StorageSaveNotice.js +1 -168
  85. package/lib/module/storage/components/StorageSection.js +1 -40
  86. package/lib/module/storage/components/StorageTypeFilterBar.js +1 -139
  87. package/lib/module/storage/hooks/useAsyncStorageKeys.js +1 -136
  88. package/lib/module/storage/hooks/useMMKVInstances.js +1 -204
  89. package/lib/module/storage/hooks/useMMKVKeys.js +1 -371
  90. package/lib/module/storage/hooks/useSecureStoreKeys.js +1 -199
  91. package/lib/module/storage/hooks/useStorageEvents.js +1 -58
  92. package/lib/module/storage/stores/storageEventStore.js +1 -301
  93. package/lib/module/storage/sync/storageSyncAdapter.js +1 -486
  94. package/lib/module/storage/types.js +1 -3
  95. package/lib/module/storage/utils/AsyncStorageListener.js +1 -679
  96. package/lib/module/storage/utils/AsyncStorageListener.web.js +1 -76
  97. package/lib/module/storage/utils/MMKVInstanceRegistry.js +1 -197
  98. package/lib/module/storage/utils/MMKVListener.js +1 -403
  99. package/lib/module/storage/utils/SecureStoreRegistry.js +1 -194
  100. package/lib/module/storage/utils/asyncStorageCompat.js +1 -81
  101. package/lib/module/storage/utils/browserStorageLifecycle.js +1 -6
  102. package/lib/module/storage/utils/browserStorageLifecycle.web.js +1 -66
  103. package/lib/module/storage/utils/clearAllStorage.js +1 -43
  104. package/lib/module/storage/utils/deleteStorageKeys.js +1 -78
  105. package/lib/module/storage/utils/lineDiff.js +1 -12
  106. package/lib/module/storage/utils/mmkvAvailability.js +1 -56
  107. package/lib/module/storage/utils/mmkvAvailability.web.js +1 -15
  108. package/lib/module/storage/utils/mmkvTypeDetection.js +1 -148
  109. package/lib/module/storage/utils/requiredStorageKeyScope.js +1 -13
  110. package/lib/module/storage/utils/setStorageValue.js +1 -209
  111. package/lib/module/storage/utils/snapshotProvider.js +1 -380
  112. package/lib/module/storage/utils/storageActionHelpers.js +1 -42
  113. package/lib/module/storage/utils/storageBrowserRefresh.js +1 -44
  114. package/lib/module/storage/utils/storageLabels.js +1 -9
  115. package/lib/module/storage/utils/storageLabels.web.js +1 -9
  116. package/lib/module/storage/utils/storageOps.js +1 -46
  117. package/lib/module/storage/utils/storageQueryUtils.js +1 -30
  118. package/lib/module/storage/utils/storageTimeTravelUtils.js +1 -281
  119. package/lib/module/storage/utils/valueType.js +1 -76
  120. package/lib/web/index.mjs +2 -3
  121. package/package.json +5 -5
  122. package/lib/typescript/index.d.ts.map +0 -1
  123. package/lib/typescript/preset.d.ts.map +0 -1
  124. package/lib/typescript/storage/components/DiffViewer/TreeDiffViewer.d.ts.map +0 -1
  125. package/lib/typescript/storage/components/DiffViewer/modes/ThemedSplitView.d.ts.map +0 -1
  126. package/lib/typescript/storage/components/DiffViewer/themes/diffThemes.d.ts.map +0 -1
  127. package/lib/typescript/storage/components/GameUIStorageBrowser.d.ts.map +0 -1
  128. package/lib/typescript/storage/components/MMKVInstanceInfoPanel.d.ts.map +0 -1
  129. package/lib/typescript/storage/components/MMKVInstanceSelector.d.ts.map +0 -1
  130. package/lib/typescript/storage/components/SelectionActionBar.d.ts.map +0 -1
  131. package/lib/typescript/storage/components/StorageActionButtons.d.ts.map +0 -1
  132. package/lib/typescript/storage/components/StorageBrowserMode.d.ts.map +0 -1
  133. package/lib/typescript/storage/components/StorageEventActionButton.d.ts.map +0 -1
  134. package/lib/typescript/storage/components/StorageEventCard.d.ts.map +0 -1
  135. package/lib/typescript/storage/components/StorageEventDetailContent.d.ts.map +0 -1
  136. package/lib/typescript/storage/components/StorageEventFilterView.d.ts.map +0 -1
  137. package/lib/typescript/storage/components/StorageEventsSection.d.ts.map +0 -1
  138. package/lib/typescript/storage/components/StorageFilterCards.d.ts.map +0 -1
  139. package/lib/typescript/storage/components/StorageKeyCard.d.ts.map +0 -1
  140. package/lib/typescript/storage/components/StorageKeyDetailScreen.d.ts.map +0 -1
  141. package/lib/typescript/storage/components/StorageKeyRow.d.ts.map +0 -1
  142. package/lib/typescript/storage/components/StorageKeySection.d.ts.map +0 -1
  143. package/lib/typescript/storage/components/StorageKeyStats.d.ts.map +0 -1
  144. package/lib/typescript/storage/components/StorageModalWithTabs.d.ts.map +0 -1
  145. package/lib/typescript/storage/components/StorageSaveNotice.d.ts.map +0 -1
  146. package/lib/typescript/storage/components/StorageSection.d.ts.map +0 -1
  147. package/lib/typescript/storage/components/StorageTypeFilterBar.d.ts.map +0 -1
  148. package/lib/typescript/storage/hooks/useAsyncStorageKeys.d.ts.map +0 -1
  149. package/lib/typescript/storage/hooks/useMMKVInstances.d.ts.map +0 -1
  150. package/lib/typescript/storage/hooks/useMMKVKeys.d.ts.map +0 -1
  151. package/lib/typescript/storage/hooks/useSecureStoreKeys.d.ts.map +0 -1
  152. package/lib/typescript/storage/hooks/useStorageEvents.d.ts.map +0 -1
  153. package/lib/typescript/storage/stores/storageEventStore.d.ts.map +0 -1
  154. package/lib/typescript/storage/sync/storageSyncAdapter.d.ts.map +0 -1
  155. package/lib/typescript/storage/types.d.ts.map +0 -1
  156. package/lib/typescript/storage/utils/AsyncStorageListener.d.ts.map +0 -1
  157. package/lib/typescript/storage/utils/AsyncStorageListener.web.d.ts.map +0 -1
  158. package/lib/typescript/storage/utils/MMKVInstanceRegistry.d.ts.map +0 -1
  159. package/lib/typescript/storage/utils/MMKVListener.d.ts.map +0 -1
  160. package/lib/typescript/storage/utils/SecureStoreRegistry.d.ts.map +0 -1
  161. package/lib/typescript/storage/utils/asyncStorageCompat.d.ts.map +0 -1
  162. package/lib/typescript/storage/utils/browserStorageLifecycle.d.ts.map +0 -1
  163. package/lib/typescript/storage/utils/browserStorageLifecycle.web.d.ts.map +0 -1
  164. package/lib/typescript/storage/utils/clearAllStorage.d.ts.map +0 -1
  165. package/lib/typescript/storage/utils/deleteStorageKeys.d.ts.map +0 -1
  166. package/lib/typescript/storage/utils/lineDiff.d.ts.map +0 -1
  167. package/lib/typescript/storage/utils/mmkvAvailability.d.ts.map +0 -1
  168. package/lib/typescript/storage/utils/mmkvAvailability.web.d.ts.map +0 -1
  169. package/lib/typescript/storage/utils/mmkvTypeDetection.d.ts.map +0 -1
  170. package/lib/typescript/storage/utils/requiredStorageKeyScope.d.ts.map +0 -1
  171. package/lib/typescript/storage/utils/setStorageValue.d.ts.map +0 -1
  172. package/lib/typescript/storage/utils/snapshotProvider.d.ts.map +0 -1
  173. package/lib/typescript/storage/utils/storageActionHelpers.d.ts.map +0 -1
  174. package/lib/typescript/storage/utils/storageBrowserRefresh.d.ts.map +0 -1
  175. package/lib/typescript/storage/utils/storageLabels.d.ts.map +0 -1
  176. package/lib/typescript/storage/utils/storageLabels.web.d.ts.map +0 -1
  177. package/lib/typescript/storage/utils/storageOps.d.ts.map +0 -1
  178. package/lib/typescript/storage/utils/storageQueryUtils.d.ts.map +0 -1
  179. package/lib/typescript/storage/utils/storageTimeTravelUtils.d.ts.map +0 -1
  180. package/lib/typescript/storage/utils/valueType.d.ts.map +0 -1
@@ -1,89 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.addListener = addListener;
7
- exports.default = void 0;
8
- exports.getListenerCount = getListenerCount;
9
- exports.isListening = isListening;
10
- exports.isPaused = isPaused;
11
- exports.pauseCapture = pauseCapture;
12
- exports.removeAllListeners = removeAllListeners;
13
- exports.resumeCapture = resumeCapture;
14
- exports.startListening = startListening;
15
- exports.stopListening = stopListening;
16
- var _utils = require("@buoy-gg/shared-ui/utils");
17
- const listeners = new Set();
18
- let stop;
19
- let paused = false;
20
- const ignoredKeys = new Set(['@react_buoy_storage_event_filters', '@react_buoy_storage_key_filters', '@react_buoy_storage_is_monitoring', 'REACT_QUERY_OFFLINE_CACHE']);
21
- const ignored = key => [...ignoredKeys].some(prefix => key.startsWith(prefix));
22
- async function startListening() {
23
- if (stop || typeof window === 'undefined') return;
24
- stop = (0, _utils.subscribeToBrowserStorage)(change => {
25
- if (paused || change.area !== 'localStorage' || change.key !== undefined && ignored(change.key)) return;
26
- const {
27
- area: _,
28
- action,
29
- ...data
30
- } = change;
31
- if (data.prevPairs) data.prevPairs = data.prevPairs.filter(([key]) => !ignored(key));
32
- const event = {
33
- action,
34
- data,
35
- timestamp: new Date()
36
- };
37
- for (const listener of [...listeners]) {
38
- try {
39
- listener(event);
40
- } catch {/* Keep observing other consumers. */}
41
- }
42
- });
43
- }
44
- function stopListening() {
45
- stop?.();
46
- stop = undefined;
47
- }
48
- function addListener(listener) {
49
- listeners.add(listener);
50
- return () => {
51
- listeners.delete(listener);
52
- };
53
- }
54
- function removeAllListeners() {
55
- listeners.clear();
56
- }
57
- function isListening() {
58
- return !!stop;
59
- }
60
- function getListenerCount() {
61
- return listeners.size;
62
- }
63
- function pauseCapture() {
64
- paused = true;
65
- }
66
- function resumeCapture() {
67
- paused = false;
68
- }
69
- function isPaused() {
70
- return paused;
71
- }
72
- const asyncStorageListener = {
73
- startListening,
74
- stopListening,
75
- addListener,
76
- removeAllListeners,
77
- pause: pauseCapture,
78
- resume: resumeCapture,
79
- get isActive() {
80
- return isListening();
81
- },
82
- get listenerCount() {
83
- return listeners.size;
84
- },
85
- get paused() {
86
- return paused;
87
- }
88
- };
89
- var _default = exports.default = asyncStorageListener;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.addListener=addListener;exports.default=void 0;exports.getListenerCount=getListenerCount;exports.isListening=isListening;exports.isPaused=isPaused;exports.pauseCapture=pauseCapture;exports.removeAllListeners=removeAllListeners;exports.resumeCapture=resumeCapture;exports.startListening=startListening;exports.stopListening=stopListening;var _utils=require("@buoy-gg/shared-ui/utils");const listeners=new Set;let stop;let paused=false;const ignoredKeys=new Set(["@react_buoy_storage_event_filters","@react_buoy_storage_key_filters","@react_buoy_storage_is_monitoring","REACT_QUERY_OFFLINE_CACHE"]);const ignored=e=>[...ignoredKeys].some(s=>e.startsWith(s));async function startListening(){if(stop||typeof window==="undefined")return;stop=(0,_utils.subscribeToBrowserStorage)(e=>{if(paused||e.area!=="localStorage"||e.key!==void 0&&ignored(e.key))return;const{area:s,action:n,...t}=e;if(t.prevPairs)t.prevPairs=t.prevPairs.filter(([r])=>!ignored(r));const i={action:n,data:t,timestamp:new Date};for(const r of[...listeners]){try{r(i)}catch{}}})}function stopListening(){stop?.();stop=void 0}function addListener(e){listeners.add(e);return()=>{listeners.delete(e)}}function removeAllListeners(){listeners.clear()}function isListening(){return!!stop}function getListenerCount(){return listeners.size}function pauseCapture(){paused=true}function resumeCapture(){paused=false}function isPaused(){return paused}const asyncStorageListener={startListening,stopListening,addListener,removeAllListeners,pause:pauseCapture,resume:resumeCapture,get isActive(){return isListening()},get listenerCount(){return listeners.size},get paused(){return paused}};var _default=exports.default=asyncStorageListener;
@@ -1,203 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.mmkvInstanceRegistry = void 0;
7
- exports.registerMMKVInstance = registerMMKVInstance;
8
- exports.unregisterMMKVInstance = unregisterMMKVInstance;
9
- var _MMKVListener = require("./MMKVListener");
10
- /**
11
- * MMKV Instance Registry
12
- *
13
- * Centralized registry for tracking all MMKV instances in the application.
14
- * Provides a singleton pattern to manage multiple MMKV instances and their metadata.
15
- *
16
- * @module MMKVInstanceRegistry
17
- * @since 1.0.0
18
- */
19
-
20
- // Static ESM import. This was previously a dynamic `require('./MMKVListener')`
21
- // inside register/unregister "to avoid a circular dependency" — but MMKVListener
22
- // imports only ./mmkvTypeDetection, never this file, so there is no cycle. The
23
- // require() form threw `ReferenceError: require is not defined` when this source
24
- // is bundled as ESM (the desktop dashboard imports it through Vite), crashing on
25
- // StorageInline unmount. A static import behaves identically on Metro and Vite.
26
-
27
- /**
28
- * Type-safe representation of an MMKV instance.
29
- * Uses conditional typing to avoid hard dependency on react-native-mmkv.
30
- *
31
- * @public
32
- */
33
-
34
- /**
35
- * Metadata about a registered MMKV instance
36
- *
37
- * @public
38
- */
39
-
40
- /**
41
- * Configuration options for registering an MMKV instance
42
- *
43
- * @public
44
- */
45
-
46
- class MMKVInstanceRegistry {
47
- instances = new Map();
48
-
49
- /**
50
- * Register an MMKV instance for monitoring
51
- *
52
- * @param id - Unique identifier for this instance
53
- * @param instance - The MMKV instance to register
54
- * @param config - Optional configuration (e.g., encrypted flag)
55
- */
56
- register(id, instance, config) {
57
- const instanceInfo = {
58
- id,
59
- instance,
60
- encrypted: config?.encrypted ?? false,
61
- readOnly: instance.isReadOnly ?? false
62
- };
63
- this.instances.set(id, instanceInfo);
64
- }
65
-
66
- /**
67
- * Unregister an MMKV instance
68
- */
69
- unregister(id) {
70
- this.instances.delete(id);
71
- }
72
-
73
- /**
74
- * Get a specific instance by ID
75
- */
76
- get(id) {
77
- return this.instances.get(id);
78
- }
79
-
80
- /**
81
- * Get all registered instances
82
- */
83
- getAll() {
84
- return Array.from(this.instances.values());
85
- }
86
-
87
- /**
88
- * Check if an instance is registered
89
- */
90
- has(id) {
91
- return this.instances.has(id);
92
- }
93
-
94
- /**
95
- * Get count of registered instances
96
- */
97
- count() {
98
- return this.instances.size;
99
- }
100
- }
101
-
102
- // Singleton instance
103
- const mmkvInstanceRegistry = exports.mmkvInstanceRegistry = new MMKVInstanceRegistry();
104
-
105
- /**
106
- * Register an MMKV instance with React Buoy DevTools for monitoring and debugging.
107
- *
108
- * **⚠️ REQUIRED**: Manual registration is required for `react-native-mmkv` v4.
109
- * Auto-detection is not possible due to Metro bundler and ES6 module limitations.
110
- *
111
- * Call this function immediately after creating each MMKV instance you want to monitor.
112
- * The DevTools will then be able to:
113
- * - Display all keys and values
114
- * - Show real-time updates when data changes
115
- * - Allow editing values directly from the DevTools
116
- * - Track storage size and performance
117
- *
118
- * @param id - Unique identifier for this MMKV instance. Should match the `id` you used when creating the instance.
119
- * @param instance - The MMKV instance returned from `createMMKV()`
120
- * @param config - Optional configuration
121
- * @param config.encrypted - Set to `true` if this instance uses encryption (has an `encryptionKey`)
122
- *
123
- * @example
124
- * **Basic usage:**
125
- * ```typescript
126
- * import { createMMKV } from 'react-native-mmkv';
127
- * import { registerMMKVInstance } from '@buoy-gg/storage';
128
- *
129
- * // Create and register default instance
130
- * export const storage = createMMKV({ id: 'mmkv.default' });
131
- * registerMMKVInstance('mmkv.default', storage);
132
- * ```
133
- *
134
- * @example
135
- * **With encryption:**
136
- * ```typescript
137
- * import { createMMKV } from 'react-native-mmkv';
138
- * import { registerMMKVInstance } from '@buoy-gg/storage';
139
- *
140
- * // Create encrypted instance
141
- * export const secureStorage = createMMKV({
142
- * id: 'secure-storage',
143
- * encryptionKey: 'my-encryption-key'
144
- * });
145
- *
146
- * // Register with encrypted flag
147
- * registerMMKVInstance('secure-storage', secureStorage, { encrypted: true });
148
- * ```
149
- *
150
- * @example
151
- * **Multiple instances:**
152
- * ```typescript
153
- * import { createMMKV } from 'react-native-mmkv';
154
- * import { registerMMKVInstance } from '@buoy-gg/storage';
155
- *
156
- * // User preferences
157
- * export const userPrefs = createMMKV({ id: 'user-prefs' });
158
- * registerMMKVInstance('user-prefs', userPrefs);
159
- *
160
- * // Cache
161
- * export const cache = createMMKV({ id: 'cache' });
162
- * registerMMKVInstance('cache', cache);
163
- *
164
- * // Auth (encrypted)
165
- * export const auth = createMMKV({ id: 'auth', encryptionKey: 'key' });
166
- * registerMMKVInstance('auth', auth, { encrypted: true });
167
- * ```
168
- *
169
- * @public
170
- * @since 1.0.0
171
- */
172
- function registerMMKVInstance(id, instance, config) {
173
- // Register in registry
174
- mmkvInstanceRegistry.register(id, instance, config);
175
-
176
- // Add listener for real-time monitoring (CRITICAL: enables event emission)
177
- // v4: Use ONLY native listener (addOnValueChangedListener), skip method wrapping
178
- _MMKVListener.mmkvListener.addInstance(instance, id);
179
- }
180
-
181
- /**
182
- * Unregister an MMKV instance from DevTools monitoring.
183
- *
184
- * This stops the DevTools from tracking changes to this instance.
185
- * Typically not needed unless you're dynamically creating/destroying instances.
186
- *
187
- * @param id - The instance ID to unregister
188
- *
189
- * @example
190
- * ```typescript
191
- * unregisterMMKVInstance('cache');
192
- * ```
193
- *
194
- * @public
195
- * @since 1.0.0
196
- */
197
- function unregisterMMKVInstance(id) {
198
- // Remove listener first
199
- _MMKVListener.mmkvListener.removeInstance(id);
200
-
201
- // Then remove from registry
202
- mmkvInstanceRegistry.unregister(id);
203
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.mmkvInstanceRegistry=void 0;exports.registerMMKVInstance=registerMMKVInstance;exports.unregisterMMKVInstance=unregisterMMKVInstance;var _MMKVListener=require("./MMKVListener");class MMKVInstanceRegistry{instances=new Map;register(e,t,n){const r={id:e,instance:t,encrypted:n?.encrypted??false,readOnly:t.isReadOnly??false};this.instances.set(e,r)}unregister(e){this.instances.delete(e)}get(e){return this.instances.get(e)}getAll(){return Array.from(this.instances.values())}has(e){return this.instances.has(e)}count(){return this.instances.size}}const mmkvInstanceRegistry=exports.mmkvInstanceRegistry=new MMKVInstanceRegistry;function registerMMKVInstance(s,e,t){mmkvInstanceRegistry.register(s,e,t);_MMKVListener.mmkvListener.addInstance(e,s)}function unregisterMMKVInstance(s){_MMKVListener.mmkvListener.removeInstance(s);mmkvInstanceRegistry.unregister(s)}