@buoy-gg/storage 7.0.41 → 7.0.43
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 +11 -90
- package/lib/commonjs/index.js +1 -353
- package/lib/commonjs/preset.js +1 -85
- package/lib/commonjs/storage/components/DiffViewer/TreeDiffViewer.js +1 -36
- package/lib/commonjs/storage/components/DiffViewer/modes/ThemedSplitView.js +1 -12
- package/lib/commonjs/storage/components/DiffViewer/themes/diffThemes.js +1 -24
- package/lib/commonjs/storage/components/GameUIStorageBrowser.js +3 -1259
- package/lib/commonjs/storage/components/MMKVInstanceInfoPanel.js +1 -257
- package/lib/commonjs/storage/components/MMKVInstanceSelector.js +1 -419
- package/lib/commonjs/storage/components/SelectionActionBar.js +1 -207
- package/lib/commonjs/storage/components/StorageActionButtons.js +1 -242
- package/lib/commonjs/storage/components/StorageBrowserMode.js +1 -61
- package/lib/commonjs/storage/components/StorageEventActionButton.js +1 -121
- package/lib/commonjs/storage/components/StorageEventCard.js +1 -118
- package/lib/commonjs/storage/components/StorageEventDetailContent.js +1 -494
- package/lib/commonjs/storage/components/StorageEventFilterView.js +1 -160
- package/lib/commonjs/storage/components/StorageEventsSection.js +1 -24
- package/lib/commonjs/storage/components/StorageFilterCards.js +1 -231
- package/lib/commonjs/storage/components/StorageKeyCard.js +1 -520
- package/lib/commonjs/storage/components/StorageKeyDetailScreen.js +1 -579
- package/lib/commonjs/storage/components/StorageKeyRow.js +1 -559
- package/lib/commonjs/storage/components/StorageKeySection.js +1 -160
- package/lib/commonjs/storage/components/StorageKeyStats.js +1 -345
- package/lib/commonjs/storage/components/StorageModalWithTabs.js +1 -954
- package/lib/commonjs/storage/components/StorageSaveNotice.js +1 -171
- package/lib/commonjs/storage/components/StorageSection.js +1 -43
- package/lib/commonjs/storage/components/StorageTypeFilterBar.js +1 -144
- package/lib/commonjs/storage/hooks/useAsyncStorageKeys.js +1 -141
- package/lib/commonjs/storage/hooks/useMMKVInstances.js +1 -210
- package/lib/commonjs/storage/hooks/useMMKVKeys.js +1 -376
- package/lib/commonjs/storage/hooks/useSecureStoreKeys.js +1 -202
- package/lib/commonjs/storage/hooks/useStorageEvents.js +1 -61
- package/lib/commonjs/storage/stores/storageEventStore.js +1 -312
- package/lib/commonjs/storage/sync/storageSyncAdapter.js +1 -492
- package/lib/commonjs/storage/types.js +1 -5
- package/lib/commonjs/storage/utils/AsyncStorageListener.js +1 -691
- package/lib/commonjs/storage/utils/AsyncStorageListener.web.js +1 -89
- package/lib/commonjs/storage/utils/MMKVInstanceRegistry.js +1 -203
- package/lib/commonjs/storage/utils/MMKVListener.js +1 -416
- package/lib/commonjs/storage/utils/SecureStoreRegistry.js +1 -200
- package/lib/commonjs/storage/utils/asyncStorageCompat.js +1 -89
- package/lib/commonjs/storage/utils/browserStorageLifecycle.js +1 -10
- package/lib/commonjs/storage/utils/browserStorageLifecycle.web.js +1 -70
- package/lib/commonjs/storage/utils/clearAllStorage.js +1 -48
- package/lib/commonjs/storage/utils/deleteStorageKeys.js +1 -82
- package/lib/commonjs/storage/utils/lineDiff.js +1 -30
- package/lib/commonjs/storage/utils/mmkvAvailability.js +1 -62
- package/lib/commonjs/storage/utils/mmkvAvailability.web.js +1 -21
- package/lib/commonjs/storage/utils/mmkvTypeDetection.js +1 -154
- package/lib/commonjs/storage/utils/requiredStorageKeyScope.js +1 -17
- package/lib/commonjs/storage/utils/setStorageValue.js +1 -218
- package/lib/commonjs/storage/utils/snapshotProvider.js +1 -382
- package/lib/commonjs/storage/utils/storageActionHelpers.js +1 -46
- package/lib/commonjs/storage/utils/storageBrowserRefresh.js +1 -49
- package/lib/commonjs/storage/utils/storageLabels.js +1 -13
- package/lib/commonjs/storage/utils/storageLabels.web.js +1 -13
- package/lib/commonjs/storage/utils/storageOps.js +1 -53
- package/lib/commonjs/storage/utils/storageQueryUtils.js +1 -35
- package/lib/commonjs/storage/utils/storageTimeTravelUtils.js +1 -288
- package/lib/commonjs/storage/utils/valueType.js +1 -83
- package/lib/module/index.js +1 -114
- package/lib/module/preset.js +1 -82
- package/lib/module/storage/components/DiffViewer/TreeDiffViewer.js +1 -32
- package/lib/module/storage/components/DiffViewer/modes/ThemedSplitView.js +1 -9
- package/lib/module/storage/components/DiffViewer/themes/diffThemes.js +1 -10
- package/lib/module/storage/components/GameUIStorageBrowser.js +3 -1257
- package/lib/module/storage/components/MMKVInstanceInfoPanel.js +1 -253
- package/lib/module/storage/components/MMKVInstanceSelector.js +1 -415
- package/lib/module/storage/components/SelectionActionBar.js +1 -204
- package/lib/module/storage/components/StorageActionButtons.js +1 -238
- package/lib/module/storage/components/StorageBrowserMode.js +1 -57
- package/lib/module/storage/components/StorageEventActionButton.js +1 -118
- package/lib/module/storage/components/StorageEventCard.js +1 -113
- package/lib/module/storage/components/StorageEventDetailContent.js +1 -490
- package/lib/module/storage/components/StorageEventFilterView.js +1 -156
- package/lib/module/storage/components/StorageEventsSection.js +1 -20
- package/lib/module/storage/components/StorageFilterCards.js +1 -227
- package/lib/module/storage/components/StorageKeyCard.js +1 -517
- package/lib/module/storage/components/StorageKeyDetailScreen.js +1 -577
- package/lib/module/storage/components/StorageKeyRow.js +1 -554
- package/lib/module/storage/components/StorageKeySection.js +1 -155
- package/lib/module/storage/components/StorageKeyStats.js +1 -342
- package/lib/module/storage/components/StorageModalWithTabs.js +1 -949
- package/lib/module/storage/components/StorageSaveNotice.js +1 -168
- package/lib/module/storage/components/StorageSection.js +1 -40
- package/lib/module/storage/components/StorageTypeFilterBar.js +1 -139
- package/lib/module/storage/hooks/useAsyncStorageKeys.js +1 -136
- package/lib/module/storage/hooks/useMMKVInstances.js +1 -204
- package/lib/module/storage/hooks/useMMKVKeys.js +1 -371
- package/lib/module/storage/hooks/useSecureStoreKeys.js +1 -199
- package/lib/module/storage/hooks/useStorageEvents.js +1 -58
- package/lib/module/storage/stores/storageEventStore.js +1 -301
- package/lib/module/storage/sync/storageSyncAdapter.js +1 -486
- package/lib/module/storage/types.js +1 -3
- package/lib/module/storage/utils/AsyncStorageListener.js +1 -679
- package/lib/module/storage/utils/AsyncStorageListener.web.js +1 -76
- package/lib/module/storage/utils/MMKVInstanceRegistry.js +1 -197
- package/lib/module/storage/utils/MMKVListener.js +1 -403
- package/lib/module/storage/utils/SecureStoreRegistry.js +1 -194
- package/lib/module/storage/utils/asyncStorageCompat.js +1 -81
- package/lib/module/storage/utils/browserStorageLifecycle.js +1 -6
- package/lib/module/storage/utils/browserStorageLifecycle.web.js +1 -66
- package/lib/module/storage/utils/clearAllStorage.js +1 -43
- package/lib/module/storage/utils/deleteStorageKeys.js +1 -78
- package/lib/module/storage/utils/lineDiff.js +1 -12
- package/lib/module/storage/utils/mmkvAvailability.js +1 -56
- package/lib/module/storage/utils/mmkvAvailability.web.js +1 -15
- package/lib/module/storage/utils/mmkvTypeDetection.js +1 -148
- package/lib/module/storage/utils/requiredStorageKeyScope.js +1 -13
- package/lib/module/storage/utils/setStorageValue.js +1 -209
- package/lib/module/storage/utils/snapshotProvider.js +1 -380
- package/lib/module/storage/utils/storageActionHelpers.js +1 -42
- package/lib/module/storage/utils/storageBrowserRefresh.js +1 -44
- package/lib/module/storage/utils/storageLabels.js +1 -9
- package/lib/module/storage/utils/storageLabels.web.js +1 -9
- package/lib/module/storage/utils/storageOps.js +1 -46
- package/lib/module/storage/utils/storageQueryUtils.js +1 -30
- package/lib/module/storage/utils/storageTimeTravelUtils.js +1 -281
- package/lib/module/storage/utils/valueType.js +1 -76
- package/lib/web/index.mjs +2 -3
- package/package.json +6 -10
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/preset.d.ts.map +0 -1
- package/lib/typescript/storage/components/DiffViewer/TreeDiffViewer.d.ts.map +0 -1
- package/lib/typescript/storage/components/DiffViewer/modes/ThemedSplitView.d.ts.map +0 -1
- package/lib/typescript/storage/components/DiffViewer/themes/diffThemes.d.ts.map +0 -1
- package/lib/typescript/storage/components/GameUIStorageBrowser.d.ts.map +0 -1
- package/lib/typescript/storage/components/MMKVInstanceInfoPanel.d.ts.map +0 -1
- package/lib/typescript/storage/components/MMKVInstanceSelector.d.ts.map +0 -1
- package/lib/typescript/storage/components/SelectionActionBar.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageActionButtons.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageBrowserMode.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageEventActionButton.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageEventCard.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageEventDetailContent.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageEventFilterView.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageEventsSection.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageFilterCards.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageKeyCard.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageKeyDetailScreen.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageKeyRow.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageKeySection.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageKeyStats.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageModalWithTabs.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageSaveNotice.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageSection.d.ts.map +0 -1
- package/lib/typescript/storage/components/StorageTypeFilterBar.d.ts.map +0 -1
- package/lib/typescript/storage/hooks/useAsyncStorageKeys.d.ts.map +0 -1
- package/lib/typescript/storage/hooks/useMMKVInstances.d.ts.map +0 -1
- package/lib/typescript/storage/hooks/useMMKVKeys.d.ts.map +0 -1
- package/lib/typescript/storage/hooks/useSecureStoreKeys.d.ts.map +0 -1
- package/lib/typescript/storage/hooks/useStorageEvents.d.ts.map +0 -1
- package/lib/typescript/storage/stores/storageEventStore.d.ts.map +0 -1
- package/lib/typescript/storage/sync/storageSyncAdapter.d.ts.map +0 -1
- package/lib/typescript/storage/types.d.ts.map +0 -1
- package/lib/typescript/storage/utils/AsyncStorageListener.d.ts.map +0 -1
- package/lib/typescript/storage/utils/AsyncStorageListener.web.d.ts.map +0 -1
- package/lib/typescript/storage/utils/MMKVInstanceRegistry.d.ts.map +0 -1
- package/lib/typescript/storage/utils/MMKVListener.d.ts.map +0 -1
- package/lib/typescript/storage/utils/SecureStoreRegistry.d.ts.map +0 -1
- package/lib/typescript/storage/utils/asyncStorageCompat.d.ts.map +0 -1
- package/lib/typescript/storage/utils/browserStorageLifecycle.d.ts.map +0 -1
- package/lib/typescript/storage/utils/browserStorageLifecycle.web.d.ts.map +0 -1
- package/lib/typescript/storage/utils/clearAllStorage.d.ts.map +0 -1
- package/lib/typescript/storage/utils/deleteStorageKeys.d.ts.map +0 -1
- package/lib/typescript/storage/utils/lineDiff.d.ts.map +0 -1
- package/lib/typescript/storage/utils/mmkvAvailability.d.ts.map +0 -1
- package/lib/typescript/storage/utils/mmkvAvailability.web.d.ts.map +0 -1
- package/lib/typescript/storage/utils/mmkvTypeDetection.d.ts.map +0 -1
- package/lib/typescript/storage/utils/requiredStorageKeyScope.d.ts.map +0 -1
- package/lib/typescript/storage/utils/setStorageValue.d.ts.map +0 -1
- package/lib/typescript/storage/utils/snapshotProvider.d.ts.map +0 -1
- package/lib/typescript/storage/utils/storageActionHelpers.d.ts.map +0 -1
- package/lib/typescript/storage/utils/storageBrowserRefresh.d.ts.map +0 -1
- package/lib/typescript/storage/utils/storageLabels.d.ts.map +0 -1
- package/lib/typescript/storage/utils/storageLabels.web.d.ts.map +0 -1
- package/lib/typescript/storage/utils/storageOps.d.ts.map +0 -1
- package/lib/typescript/storage/utils/storageQueryUtils.d.ts.map +0 -1
- package/lib/typescript/storage/utils/storageTimeTravelUtils.d.ts.map +0 -1
- 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)}
|