@buoy-gg/storage 7.0.40 → 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 (215) hide show
  1. package/README.md +11 -86
  2. package/lib/commonjs/index.js +1 -346
  3. package/lib/commonjs/preset.js +1 -80
  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 -1258
  8. package/lib/commonjs/storage/components/MMKVInstanceInfoPanel.js +1 -257
  9. package/lib/commonjs/storage/components/MMKVInstanceSelector.js +1 -418
  10. package/lib/commonjs/storage/components/SelectionActionBar.js +1 -207
  11. package/lib/commonjs/storage/components/StorageActionButtons.js +1 -241
  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 -117
  15. package/lib/commonjs/storage/components/StorageEventDetailContent.js +1 -494
  16. package/lib/commonjs/storage/components/StorageEventFilterView.js +1 -159
  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 -344
  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 -143
  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 -159
  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 -478
  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 -0
  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 -0
  43. package/lib/commonjs/storage/utils/browserStorageLifecycle.web.js +1 -0
  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 -0
  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 -0
  56. package/lib/commonjs/storage/utils/storageLabels.web.js +1 -0
  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 -112
  62. package/lib/module/preset.js +1 -76
  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 -1256
  67. package/lib/module/storage/components/MMKVInstanceInfoPanel.js +1 -253
  68. package/lib/module/storage/components/MMKVInstanceSelector.js +1 -414
  69. package/lib/module/storage/components/SelectionActionBar.js +1 -204
  70. package/lib/module/storage/components/StorageActionButtons.js +1 -237
  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 -112
  74. package/lib/module/storage/components/StorageEventDetailContent.js +1 -490
  75. package/lib/module/storage/components/StorageEventFilterView.js +1 -155
  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 -341
  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 -138
  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 -156
  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 -474
  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 -0
  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 -0
  102. package/lib/module/storage/utils/browserStorageLifecycle.web.js +1 -0
  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 -0
  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 -0
  115. package/lib/module/storage/utils/storageLabels.web.js +1 -0
  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/typescript/index.d.ts +1 -0
  121. package/lib/typescript/storage/components/MMKVInstanceSelector.d.ts +0 -8
  122. package/lib/typescript/storage/components/StorageEventCard.d.ts +0 -7
  123. package/lib/typescript/storage/components/StorageKeyRow.d.ts +2 -6
  124. package/lib/typescript/storage/components/StorageTypeFilterBar.d.ts +0 -15
  125. package/lib/typescript/storage/hooks/useSecureStoreKeys.d.ts +2 -2
  126. package/lib/typescript/storage/sync/storageSyncAdapter.d.ts +7 -13
  127. package/lib/typescript/storage/utils/AsyncStorageListener.web.d.ts +24 -0
  128. package/lib/typescript/storage/utils/browserStorageLifecycle.d.ts +3 -0
  129. package/lib/typescript/storage/utils/browserStorageLifecycle.web.d.ts +2 -0
  130. package/lib/typescript/storage/utils/mmkvAvailability.web.d.ts +4 -0
  131. package/lib/typescript/storage/utils/storageLabels.d.ts +8 -0
  132. package/lib/typescript/storage/utils/storageLabels.web.d.ts +8 -0
  133. package/lib/web/index.mjs +4 -0
  134. package/package.json +40 -14
  135. package/lib/commonjs/storage/components/DiffViewer/DiffOptionsPanel.js +0 -356
  136. package/lib/commonjs/storage/components/DiffViewer/components/DiffSummary.js +0 -122
  137. package/lib/commonjs/storage/components/StorageKeyEditorScreen.js +0 -414
  138. package/lib/commonjs/storage/components/StorageScalarKeyEditor.js +0 -61
  139. package/lib/commonjs/storage/components/StorageValueEditModal.js +0 -24
  140. package/lib/commonjs/storage/hooks/useKeyEditor.js +0 -31
  141. package/lib/commonjs/storage/hooks/useTreeDraft.js +0 -25
  142. package/lib/module/storage/components/DiffViewer/DiffOptionsPanel.js +0 -352
  143. package/lib/module/storage/components/DiffViewer/components/DiffSummary.js +0 -118
  144. package/lib/module/storage/components/StorageKeyEditorScreen.js +0 -410
  145. package/lib/module/storage/components/StorageScalarKeyEditor.js +0 -57
  146. package/lib/module/storage/components/StorageValueEditModal.js +0 -20
  147. package/lib/module/storage/hooks/useKeyEditor.js +0 -27
  148. package/lib/module/storage/hooks/useTreeDraft.js +0 -21
  149. package/lib/typescript/index.d.ts.map +0 -1
  150. package/lib/typescript/preset.d.ts.map +0 -1
  151. package/lib/typescript/storage/components/DiffViewer/DiffOptionsPanel.d.ts +0 -18
  152. package/lib/typescript/storage/components/DiffViewer/DiffOptionsPanel.d.ts.map +0 -1
  153. package/lib/typescript/storage/components/DiffViewer/TreeDiffViewer.d.ts.map +0 -1
  154. package/lib/typescript/storage/components/DiffViewer/components/DiffSummary.d.ts +0 -12
  155. package/lib/typescript/storage/components/DiffViewer/components/DiffSummary.d.ts.map +0 -1
  156. package/lib/typescript/storage/components/DiffViewer/modes/ThemedSplitView.d.ts.map +0 -1
  157. package/lib/typescript/storage/components/DiffViewer/themes/diffThemes.d.ts.map +0 -1
  158. package/lib/typescript/storage/components/GameUIStorageBrowser.d.ts.map +0 -1
  159. package/lib/typescript/storage/components/MMKVInstanceInfoPanel.d.ts.map +0 -1
  160. package/lib/typescript/storage/components/MMKVInstanceSelector.d.ts.map +0 -1
  161. package/lib/typescript/storage/components/SelectionActionBar.d.ts.map +0 -1
  162. package/lib/typescript/storage/components/StorageActionButtons.d.ts.map +0 -1
  163. package/lib/typescript/storage/components/StorageBrowserMode.d.ts.map +0 -1
  164. package/lib/typescript/storage/components/StorageEventActionButton.d.ts.map +0 -1
  165. package/lib/typescript/storage/components/StorageEventCard.d.ts.map +0 -1
  166. package/lib/typescript/storage/components/StorageEventDetailContent.d.ts.map +0 -1
  167. package/lib/typescript/storage/components/StorageEventFilterView.d.ts.map +0 -1
  168. package/lib/typescript/storage/components/StorageEventsSection.d.ts.map +0 -1
  169. package/lib/typescript/storage/components/StorageFilterCards.d.ts.map +0 -1
  170. package/lib/typescript/storage/components/StorageKeyCard.d.ts.map +0 -1
  171. package/lib/typescript/storage/components/StorageKeyDetailScreen.d.ts.map +0 -1
  172. package/lib/typescript/storage/components/StorageKeyEditorScreen.d.ts +0 -42
  173. package/lib/typescript/storage/components/StorageKeyEditorScreen.d.ts.map +0 -1
  174. package/lib/typescript/storage/components/StorageKeyRow.d.ts.map +0 -1
  175. package/lib/typescript/storage/components/StorageKeySection.d.ts.map +0 -1
  176. package/lib/typescript/storage/components/StorageKeyStats.d.ts.map +0 -1
  177. package/lib/typescript/storage/components/StorageModalWithTabs.d.ts.map +0 -1
  178. package/lib/typescript/storage/components/StorageSaveNotice.d.ts.map +0 -1
  179. package/lib/typescript/storage/components/StorageScalarKeyEditor.d.ts +0 -24
  180. package/lib/typescript/storage/components/StorageScalarKeyEditor.d.ts.map +0 -1
  181. package/lib/typescript/storage/components/StorageSection.d.ts.map +0 -1
  182. package/lib/typescript/storage/components/StorageTypeFilterBar.d.ts.map +0 -1
  183. package/lib/typescript/storage/components/StorageValueEditModal.d.ts +0 -14
  184. package/lib/typescript/storage/components/StorageValueEditModal.d.ts.map +0 -1
  185. package/lib/typescript/storage/hooks/useAsyncStorageKeys.d.ts.map +0 -1
  186. package/lib/typescript/storage/hooks/useKeyEditor.d.ts +0 -27
  187. package/lib/typescript/storage/hooks/useKeyEditor.d.ts.map +0 -1
  188. package/lib/typescript/storage/hooks/useMMKVInstances.d.ts.map +0 -1
  189. package/lib/typescript/storage/hooks/useMMKVKeys.d.ts.map +0 -1
  190. package/lib/typescript/storage/hooks/useSecureStoreKeys.d.ts.map +0 -1
  191. package/lib/typescript/storage/hooks/useStorageEvents.d.ts.map +0 -1
  192. package/lib/typescript/storage/hooks/useTreeDraft.d.ts +0 -16
  193. package/lib/typescript/storage/hooks/useTreeDraft.d.ts.map +0 -1
  194. package/lib/typescript/storage/stores/storageEventStore.d.ts.map +0 -1
  195. package/lib/typescript/storage/sync/storageSyncAdapter.d.ts.map +0 -1
  196. package/lib/typescript/storage/types.d.ts.map +0 -1
  197. package/lib/typescript/storage/utils/AsyncStorageListener.d.ts.map +0 -1
  198. package/lib/typescript/storage/utils/MMKVInstanceRegistry.d.ts.map +0 -1
  199. package/lib/typescript/storage/utils/MMKVListener.d.ts.map +0 -1
  200. package/lib/typescript/storage/utils/SecureStoreRegistry.d.ts.map +0 -1
  201. package/lib/typescript/storage/utils/asyncStorageCompat.d.ts.map +0 -1
  202. package/lib/typescript/storage/utils/clearAllStorage.d.ts.map +0 -1
  203. package/lib/typescript/storage/utils/deleteStorageKeys.d.ts.map +0 -1
  204. package/lib/typescript/storage/utils/lineDiff.d.ts.map +0 -1
  205. package/lib/typescript/storage/utils/mmkvAvailability.d.ts.map +0 -1
  206. package/lib/typescript/storage/utils/mmkvTypeDetection.d.ts.map +0 -1
  207. package/lib/typescript/storage/utils/requiredStorageKeyScope.d.ts.map +0 -1
  208. package/lib/typescript/storage/utils/setStorageValue.d.ts.map +0 -1
  209. package/lib/typescript/storage/utils/snapshotProvider.d.ts.map +0 -1
  210. package/lib/typescript/storage/utils/storageActionHelpers.d.ts.map +0 -1
  211. package/lib/typescript/storage/utils/storageBrowserRefresh.d.ts.map +0 -1
  212. package/lib/typescript/storage/utils/storageOps.d.ts.map +0 -1
  213. package/lib/typescript/storage/utils/storageQueryUtils.d.ts.map +0 -1
  214. package/lib/typescript/storage/utils/storageTimeTravelUtils.d.ts.map +0 -1
  215. package/lib/typescript/storage/utils/valueType.d.ts.map +0 -1
@@ -1,159 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.StorageEventFilterView = StorageEventFilterView;
7
- var _reactNative = require("react-native");
8
- var _sharedUi = require("@buoy-gg/shared-ui");
9
- var _jsxRuntime = require("react/jsx-runtime");
10
- function StorageEventFilterView({
11
- ignoredPatterns,
12
- onTogglePattern,
13
- onAddPattern,
14
- availableKeys = [],
15
- enabledStorageTypes,
16
- onToggleStorageType
17
- }) {
18
- const filterConfig = {
19
- addFilterSection: {
20
- enabled: true,
21
- placeholder: "Enter key pattern to hide...",
22
- title: "KEY FILTERS",
23
- icon: _sharedUi.Filter
24
- },
25
- availableItemsSection: {
26
- enabled: true,
27
- title: "AVAILABLE EVENT KEYS",
28
- emptyMessage: "No storage event keys available. Events will appear here once captured.",
29
- items: availableKeys
30
- },
31
- howItWorksSection: {
32
- enabled: true,
33
- title: "HOW EVENT FILTERS WORK",
34
- description: "Patterns hide matching storage keys from the event list. Storage type toggles control which storage backends are monitored.",
35
- examples: ["• react_buoy → hides keys containing react_buoy", "• @temp → hides @temp_user, @temp_data", "• redux → hides redux-persist:root", "• AsyncStorage → show/hide AsyncStorage events", "• MMKV → show/hide MMKV events"],
36
- icon: _sharedUi.Filter
37
- },
38
- onPatternToggle: onTogglePattern,
39
- onPatternAdd: onAddPattern,
40
- activePatterns: ignoredPatterns
41
- };
42
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
43
- style: styles.container,
44
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
45
- style: styles.storageTypeSection,
46
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
47
- style: styles.sectionTitle,
48
- children: "STORAGE TYPES"
49
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
50
- style: styles.storageTypeButtons,
51
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
52
- style: [styles.storageTypeButton, enabledStorageTypes.has('async') && styles.storageTypeButtonActive, {
53
- borderColor: _sharedUi.macOSColors.semantic.warning + '40'
54
- }],
55
- onPress: () => onToggleStorageType('async'),
56
- testID: "buoy-storage-backend-async",
57
- accessibilityRole: "button",
58
- accessibilityLabel: "Toggle AsyncStorage capture",
59
- accessibilityState: {
60
- selected: enabledStorageTypes.has('async')
61
- },
62
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Database, {
63
- size: 16,
64
- color: enabledStorageTypes.has('async') ? _sharedUi.macOSColors.semantic.warning : _sharedUi.night.color.textTertiary
65
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
66
- style: [styles.storageTypeButtonText, enabledStorageTypes.has('async') && {
67
- color: _sharedUi.macOSColors.semantic.warning
68
- }],
69
- children: "AsyncStorage"
70
- })]
71
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
72
- style: [styles.storageTypeButton, enabledStorageTypes.has('mmkv') && styles.storageTypeButtonActive, {
73
- borderColor: _sharedUi.macOSColors.semantic.info + '40'
74
- }],
75
- onPress: () => onToggleStorageType('mmkv'),
76
- testID: "buoy-storage-backend-mmkv",
77
- accessibilityRole: "button",
78
- accessibilityLabel: "Toggle MMKV capture",
79
- accessibilityState: {
80
- selected: enabledStorageTypes.has('mmkv')
81
- },
82
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.HardDrive, {
83
- size: 16,
84
- color: enabledStorageTypes.has('mmkv') ? _sharedUi.macOSColors.semantic.info : _sharedUi.night.color.textTertiary
85
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
86
- style: [styles.storageTypeButtonText, enabledStorageTypes.has('mmkv') && {
87
- color: _sharedUi.macOSColors.semantic.info
88
- }],
89
- children: "MMKV"
90
- })]
91
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
92
- style: [styles.storageTypeButton, enabledStorageTypes.has('secure') && styles.storageTypeButtonActive, {
93
- borderColor: _sharedUi.macOSColors.semantic.success + '40'
94
- }],
95
- onPress: () => onToggleStorageType('secure'),
96
- testID: "buoy-storage-backend-secure",
97
- accessibilityRole: "button",
98
- accessibilityLabel: "Toggle Secure Storage capture",
99
- accessibilityState: {
100
- selected: enabledStorageTypes.has('secure')
101
- },
102
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Shield, {
103
- size: 16,
104
- color: enabledStorageTypes.has('secure') ? _sharedUi.macOSColors.semantic.success : _sharedUi.night.color.textTertiary
105
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
106
- style: [styles.storageTypeButtonText, enabledStorageTypes.has('secure') && {
107
- color: _sharedUi.macOSColors.semantic.success
108
- }],
109
- children: "Secure Storage"
110
- })]
111
- })]
112
- })]
113
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.DynamicFilterView, {
114
- ...filterConfig
115
- })]
116
- });
117
- }
118
- const styles = _reactNative.StyleSheet.create({
119
- container: {
120
- flex: 1
121
- },
122
- storageTypeSection: {
123
- padding: 16,
124
- borderBottomWidth: 1,
125
- borderBottomColor: _sharedUi.night.color.border
126
- },
127
- sectionTitle: {
128
- fontSize: 11,
129
- fontWeight: '700',
130
- color: _sharedUi.night.color.textSecondary,
131
- letterSpacing: 0.8,
132
- marginBottom: 12
133
- },
134
- storageTypeButtons: {
135
- flexDirection: 'row',
136
- gap: 8
137
- },
138
- storageTypeButton: {
139
- flex: 1,
140
- flexDirection: 'row',
141
- alignItems: 'center',
142
- justifyContent: 'center',
143
- gap: 6,
144
- paddingVertical: 10,
145
- paddingHorizontal: 12,
146
- backgroundColor: _sharedUi.night.color.surfaceElevated,
147
- borderRadius: 8,
148
- borderWidth: 1,
149
- borderColor: _sharedUi.night.color.border
150
- },
151
- storageTypeButtonActive: {
152
- backgroundColor: _sharedUi.night.color.surface
153
- },
154
- storageTypeButtonText: {
155
- fontSize: 11,
156
- fontWeight: '600',
157
- color: _sharedUi.night.color.textTertiary
158
- }
159
- });
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.StorageEventFilterView=StorageEventFilterView;var _storageLabels=require("../utils/storageLabels");var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _jsxRuntime=require("react/jsx-runtime");function StorageEventFilterView({ignoredPatterns:s,onTogglePattern:o,onAddPattern:r,availableKeys:a=[],enabledStorageTypes:e,onToggleStorageType:t}){const i={addFilterSection:{enabled:true,placeholder:"Enter key pattern to hide...",title:"KEY FILTERS",icon:_sharedUi.Filter},availableItemsSection:{enabled:true,title:"AVAILABLE EVENT KEYS",emptyMessage:"No storage event keys available. Events will appear here once captured.",items:a},howItWorksSection:{enabled:true,title:"HOW EVENT FILTERS WORK",description:"Patterns hide matching storage keys from the event list. Storage type toggles control which storage backends are monitored.",examples:["\u2022 react_buoy \u2192 hides keys containing react_buoy","\u2022 @temp \u2192 hides @temp_user, @temp_data","\u2022 redux \u2192 hides redux-persist:root",`\u2022 ${_storageLabels.storageLabels.asyncFull}: show or hide captured events`,`\u2022 ${_storageLabels.storageLabels.mmkv}: show or hide captured events`],icon:_sharedUi.Filter},onPatternToggle:o,onPatternAdd:r,activePatterns:s};return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.container,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.storageTypeSection,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.sectionTitle,children:"STORAGE TYPES"}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.storageTypeButtons,children:[(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:[styles.storageTypeButton,e.has("async")&&styles.storageTypeButtonActive,{borderColor:_sharedUi.macOSColors.semantic.warning+"40"}],onPress:()=>t("async"),testID:"buoy-storage-backend-async",accessibilityRole:"button",accessibilityLabel:`Toggle ${_storageLabels.storageLabels.asyncFull} capture`,accessibilityState:{selected:e.has("async")},children:[(0,_jsxRuntime.jsx)(_sharedUi.Database,{size:16,color:e.has("async")?_sharedUi.macOSColors.semantic.warning:_sharedUi.night.color.textTertiary}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.storageTypeButtonText,e.has("async")&&{color:_sharedUi.macOSColors.semantic.warning}],children:_storageLabels.storageLabels.asyncFull})]}),(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:[styles.storageTypeButton,e.has("mmkv")&&styles.storageTypeButtonActive,{borderColor:_sharedUi.macOSColors.semantic.info+"40"}],onPress:()=>t("mmkv"),testID:"buoy-storage-backend-mmkv",accessibilityRole:"button",accessibilityLabel:`Toggle ${_storageLabels.storageLabels.mmkv} capture`,accessibilityState:{selected:e.has("mmkv")},children:[(0,_jsxRuntime.jsx)(_sharedUi.HardDrive,{size:16,color:e.has("mmkv")?_sharedUi.macOSColors.semantic.info:_sharedUi.night.color.textTertiary}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.storageTypeButtonText,e.has("mmkv")&&{color:_sharedUi.macOSColors.semantic.info}],children:_storageLabels.storageLabels.mmkv})]}),_storageLabels.storageLabels.hasSecure&&(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:[styles.storageTypeButton,e.has("secure")&&styles.storageTypeButtonActive,{borderColor:_sharedUi.macOSColors.semantic.success+"40"}],onPress:()=>t("secure"),testID:"buoy-storage-backend-secure",accessibilityRole:"button",accessibilityLabel:"Toggle Secure Storage capture",accessibilityState:{selected:e.has("secure")},children:[(0,_jsxRuntime.jsx)(_sharedUi.Shield,{size:16,color:e.has("secure")?_sharedUi.macOSColors.semantic.success:_sharedUi.night.color.textTertiary}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.storageTypeButtonText,e.has("secure")&&{color:_sharedUi.macOSColors.semantic.success}],children:"Secure Storage"})]})]})]}),(0,_jsxRuntime.jsx)(_sharedUi.DynamicFilterView,{...i})]})}const styles=_reactNative.StyleSheet.create({container:{flex:1},storageTypeSection:{padding:16,borderBottomWidth:1,borderBottomColor:_sharedUi.night.color.border},sectionTitle:{fontSize:11,fontWeight:"700",color:_sharedUi.night.color.textSecondary,letterSpacing:.8,marginBottom:12},storageTypeButtons:{flexDirection:"row",gap:8},storageTypeButton:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:6,paddingVertical:10,paddingHorizontal:12,backgroundColor:_sharedUi.night.color.surfaceElevated,borderRadius:8,borderWidth:1,borderColor:_sharedUi.night.color.border},storageTypeButtonActive:{backgroundColor:_sharedUi.night.color.surface},storageTypeButtonText:{fontSize:11,fontWeight:"600",color:_sharedUi.night.color.textTertiary}});
@@ -1,24 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.StorageEventsSection = StorageEventsSection;
7
- var _sharedUi = require("@buoy-gg/shared-ui");
8
- var _jsxRuntime = require("react/jsx-runtime");
9
- function StorageEventsSection({
10
- onPress,
11
- eventCount = 0
12
- }) {
13
- const subtitle = eventCount > 0 ? `${eventCount} events` : "Monitoring";
14
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.CyberpunkSectionButton, {
15
- id: "storage-events",
16
- title: "EVENTS",
17
- subtitle: subtitle,
18
- icon: _sharedUi.Database,
19
- iconColor: "#00E5FF",
20
- iconBackgroundColor: "rgba(0, 229, 255, 0.1)",
21
- onPress: onPress,
22
- index: 3
23
- });
24
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.StorageEventsSection=StorageEventsSection;var _sharedUi=require("@buoy-gg/shared-ui");var _jsxRuntime=require("react/jsx-runtime");function StorageEventsSection({onPress:t,eventCount:e=0}){const r=e>0?`${e} events`:"Monitoring";return(0,_jsxRuntime.jsx)(_sharedUi.CyberpunkSectionButton,{id:"storage-events",title:"EVENTS",subtitle:r,icon:_sharedUi.Database,iconColor:"#00E5FF",iconBackgroundColor:"rgba(0, 229, 255, 0.1)",onPress:t,index:3})}
@@ -1,231 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.StorageFilterCards = StorageFilterCards;
7
- var _reactNative = require("react-native");
8
- var _StorageTypeFilterBar = require("./StorageTypeFilterBar");
9
- var _sharedUi = require("@buoy-gg/shared-ui");
10
- var _mmkvAvailability = require("../utils/mmkvAvailability");
11
- var _jsxRuntime = require("react/jsx-runtime");
12
- // Feature flags - set to true when implemented
13
- const IS_MMKV_IMPLEMENTED = true; // ✅ MMKV support is now implemented
14
-
15
- // Runtime availability checks
16
- const IS_MMKV_AVAILABLE = (0, _mmkvAvailability.isMMKVAvailable)();
17
- function StorageFilterCards({
18
- stats,
19
- tabStats,
20
- healthPercentage,
21
- healthStatus,
22
- healthColor,
23
- activeFilter = "all",
24
- onFilterChange,
25
- activeStorageType = "all",
26
- onStorageTypeChange,
27
- showStatus = true
28
- }) {
29
- // Use tabStats if provided (for filtered counts), otherwise fall back to stats
30
- const displayStats = tabStats || {
31
- validCount: stats.presentRequiredCount + stats.optionalCount,
32
- missingCount: stats.missingCount,
33
- issuesCount: stats.wrongValueCount + stats.wrongTypeCount,
34
- asyncCount: stats.asyncCount || 0,
35
- mmkvCount: stats.mmkvCount || 0,
36
- secureCount: stats.secureCount || 0,
37
- totalCount: stats.totalCount
38
- };
39
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
40
- style: styles.container,
41
- children: [showStatus ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
42
- style: styles.filtersRow,
43
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
44
- style: [styles.filterChip, activeFilter === "all" && [styles.filterChipActive, {
45
- backgroundColor: _sharedUi.night.color.accentSoft,
46
- borderColor: _sharedUi.night.color.accentBorderStrong,
47
- shadowColor: _sharedUi.night.color.accent
48
- }]],
49
- onPress: () => onFilterChange?.("all"),
50
- activeOpacity: 0.8,
51
- testID: "buoy-storage-status-all",
52
- accessibilityRole: "button",
53
- accessibilityLabel: "Valid keys",
54
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
55
- style: [styles.filterValue, {
56
- color: _sharedUi.night.color.text
57
- }],
58
- children: displayStats.validCount
59
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
60
- style: styles.filterLabel,
61
- children: "Valid"
62
- })]
63
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
64
- style: [styles.filterChip, activeFilter === "missing" && [styles.filterChipActive, {
65
- backgroundColor: _sharedUi.macOSColors.semantic.error + "10",
66
- borderColor: _sharedUi.macOSColors.semantic.error + "30",
67
- shadowColor: _sharedUi.macOSColors.semantic.error
68
- }]],
69
- onPress: () => onFilterChange?.("missing"),
70
- activeOpacity: 0.8,
71
- testID: "buoy-storage-status-missing",
72
- accessibilityRole: "button",
73
- accessibilityLabel: "Missing keys",
74
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
75
- style: [styles.filterValue, {
76
- color: displayStats.missingCount > 0 ? _sharedUi.macOSColors.semantic.error : _sharedUi.night.color.textTertiary
77
- }],
78
- children: displayStats.missingCount
79
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
80
- style: styles.filterLabel,
81
- children: "Missing"
82
- })]
83
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
84
- style: [styles.filterChip, activeFilter === "issues" && [styles.filterChipActive, {
85
- backgroundColor: _sharedUi.macOSColors.semantic.warning + "10",
86
- borderColor: _sharedUi.macOSColors.semantic.warning + "30",
87
- shadowColor: _sharedUi.macOSColors.semantic.warning
88
- }]],
89
- onPress: () => onFilterChange?.("issues"),
90
- activeOpacity: 0.8,
91
- testID: "buoy-storage-status-issues",
92
- accessibilityRole: "button",
93
- accessibilityLabel: "Issues keys",
94
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
95
- style: [styles.filterValue, {
96
- color: displayStats.issuesCount > 0 ? _sharedUi.macOSColors.semantic.warning : _sharedUi.night.color.textTertiary
97
- }],
98
- children: displayStats.issuesCount
99
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
100
- style: styles.filterLabel,
101
- children: "Issues"
102
- })]
103
- })]
104
- }) : null, onStorageTypeChange && /*#__PURE__*/(0, _jsxRuntime.jsx)(_StorageTypeFilterBar.StorageTypeFilterBar, {
105
- active: activeStorageType,
106
- onChange: onStorageTypeChange,
107
- counts: {
108
- all: displayStats.totalCount,
109
- async: displayStats.asyncCount,
110
- mmkv: displayStats.mmkvCount,
111
- secure: displayStats.secureCount
112
- }
113
- })]
114
- });
115
- }
116
- const styles = _reactNative.StyleSheet.create({
117
- container: {
118
- backgroundColor: _sharedUi.night.color.surface,
119
- borderRadius: 12,
120
- padding: 16,
121
- borderWidth: 1,
122
- borderColor: _sharedUi.night.color.border,
123
- gap: 14,
124
- shadowColor: "#000000",
125
- shadowOpacity: 0.03,
126
- shadowRadius: 12,
127
- shadowOffset: {
128
- width: 0,
129
- height: 2
130
- }
131
- },
132
- topRow: {
133
- flexDirection: "row",
134
- alignItems: "center",
135
- justifyContent: "space-between"
136
- },
137
- titleLeft: {
138
- flexDirection: "row",
139
- alignItems: "center",
140
- gap: 8,
141
- flexShrink: 1
142
- },
143
- healthDot: {
144
- width: 6,
145
- height: 6,
146
- borderRadius: 3
147
- },
148
- titleText: {
149
- fontSize: 12,
150
- fontWeight: "600",
151
- color: _sharedUi.night.color.text,
152
- letterSpacing: 0.5,
153
- textTransform: "uppercase"
154
- },
155
- titleDivider: {
156
- width: 4,
157
- height: 1,
158
- backgroundColor: _sharedUi.night.color.border,
159
- marginHorizontal: 4
160
- },
161
- subtitleText: {
162
- color: _sharedUi.night.color.textTertiary,
163
- fontSize: 11
164
- },
165
- healthBadge: {
166
- paddingHorizontal: 6,
167
- paddingVertical: 2,
168
- borderRadius: 6,
169
- borderWidth: 1
170
- },
171
- healthBadgeText: {
172
- fontSize: 10,
173
- fontWeight: "600",
174
- fontVariant: ["tabular-nums"]
175
- },
176
- // Health progress bar
177
- healthProgressBar: {
178
- height: 3,
179
- borderRadius: 1.5,
180
- backgroundColor: _sharedUi.night.color.bg,
181
- overflow: "hidden"
182
- },
183
- healthProgressFill: {
184
- height: 3,
185
- borderRadius: 1.5
186
- },
187
- // Status filters
188
- filtersRow: {
189
- flexDirection: "row",
190
- gap: 10
191
- },
192
- filterChip: {
193
- flex: 1,
194
- backgroundColor: _sharedUi.night.color.buttonSurface,
195
- borderRadius: 8,
196
- borderWidth: 1,
197
- borderColor: _sharedUi.night.color.border,
198
- paddingVertical: 10,
199
- paddingHorizontal: 12,
200
- alignItems: "center",
201
- justifyContent: "center",
202
- minHeight: 44
203
- },
204
- filterChipActive: {
205
- borderWidth: 1,
206
- shadowOffset: {
207
- width: 0,
208
- height: 0
209
- },
210
- shadowOpacity: 0.1,
211
- shadowRadius: 6,
212
- elevation: 2,
213
- transform: [{
214
- scale: 1.005
215
- }]
216
- },
217
- filterLabel: {
218
- fontSize: 9,
219
- color: _sharedUi.night.color.textTertiary,
220
- textTransform: "uppercase",
221
- letterSpacing: 0.5,
222
- fontWeight: "500",
223
- marginTop: 3
224
- },
225
- filterValue: {
226
- fontSize: 18,
227
- fontWeight: "600",
228
- fontFamily: _sharedUi.monoFont,
229
- lineHeight: 20
230
- }
231
- });
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.StorageFilterCards=StorageFilterCards;var _reactNative=require("react-native");var _StorageTypeFilterBar=require("./StorageTypeFilterBar");var _sharedUi=require("@buoy-gg/shared-ui");var _mmkvAvailability=require("../utils/mmkvAvailability");var _jsxRuntime=require("react/jsx-runtime");const IS_MMKV_IMPLEMENTED=true;const IS_MMKV_AVAILABLE=(0,_mmkvAvailability.isMMKVAvailable)();function StorageFilterCards({stats:e,tabStats:l,healthPercentage:n,healthStatus:c,healthColor:u,activeFilter:r="all",onFilterChange:o,activeStorageType:a="all",onStorageTypeChange:i,showStatus:s=true}){const t=l||{validCount:e.presentRequiredCount+e.optionalCount,missingCount:e.missingCount,issuesCount:e.wrongValueCount+e.wrongTypeCount,asyncCount:e.asyncCount||0,mmkvCount:e.mmkvCount||0,secureCount:e.secureCount||0,totalCount:e.totalCount};return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.container,children:[s?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.filtersRow,children:[(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:[styles.filterChip,r==="all"&&[styles.filterChipActive,{backgroundColor:_sharedUi.night.color.accentSoft,borderColor:_sharedUi.night.color.accentBorderStrong,shadowColor:_sharedUi.night.color.accent}]],onPress:()=>o?.("all"),activeOpacity:.8,testID:"buoy-storage-status-all",accessibilityRole:"button",accessibilityLabel:"Valid keys",children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.filterValue,{color:_sharedUi.night.color.text}],children:t.validCount}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.filterLabel,children:"Valid"})]}),(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:[styles.filterChip,r==="missing"&&[styles.filterChipActive,{backgroundColor:_sharedUi.macOSColors.semantic.error+"10",borderColor:_sharedUi.macOSColors.semantic.error+"30",shadowColor:_sharedUi.macOSColors.semantic.error}]],onPress:()=>o?.("missing"),activeOpacity:.8,testID:"buoy-storage-status-missing",accessibilityRole:"button",accessibilityLabel:"Missing keys",children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.filterValue,{color:t.missingCount>0?_sharedUi.macOSColors.semantic.error:_sharedUi.night.color.textTertiary}],children:t.missingCount}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.filterLabel,children:"Missing"})]}),(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:[styles.filterChip,r==="issues"&&[styles.filterChipActive,{backgroundColor:_sharedUi.macOSColors.semantic.warning+"10",borderColor:_sharedUi.macOSColors.semantic.warning+"30",shadowColor:_sharedUi.macOSColors.semantic.warning}]],onPress:()=>o?.("issues"),activeOpacity:.8,testID:"buoy-storage-status-issues",accessibilityRole:"button",accessibilityLabel:"Issues keys",children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.filterValue,{color:t.issuesCount>0?_sharedUi.macOSColors.semantic.warning:_sharedUi.night.color.textTertiary}],children:t.issuesCount}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.filterLabel,children:"Issues"})]})]}):null,i&&(0,_jsxRuntime.jsx)(_StorageTypeFilterBar.StorageTypeFilterBar,{active:a,onChange:i,counts:{all:t.totalCount,async:t.asyncCount,mmkv:t.mmkvCount,secure:t.secureCount}})]})}const styles=_reactNative.StyleSheet.create({container:{backgroundColor:_sharedUi.night.color.surface,borderRadius:12,padding:16,borderWidth:1,borderColor:_sharedUi.night.color.border,gap:14,shadowColor:"#000000",shadowOpacity:.03,shadowRadius:12,shadowOffset:{width:0,height:2}},topRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},titleLeft:{flexDirection:"row",alignItems:"center",gap:8,flexShrink:1},healthDot:{width:6,height:6,borderRadius:3},titleText:{fontSize:12,fontWeight:"600",color:_sharedUi.night.color.text,letterSpacing:.5,textTransform:"uppercase"},titleDivider:{width:4,height:1,backgroundColor:_sharedUi.night.color.border,marginHorizontal:4},subtitleText:{color:_sharedUi.night.color.textTertiary,fontSize:11},healthBadge:{paddingHorizontal:6,paddingVertical:2,borderRadius:6,borderWidth:1},healthBadgeText:{fontSize:10,fontWeight:"600",fontVariant:["tabular-nums"]},healthProgressBar:{height:3,borderRadius:1.5,backgroundColor:_sharedUi.night.color.bg,overflow:"hidden"},healthProgressFill:{height:3,borderRadius:1.5},filtersRow:{flexDirection:"row",gap:10},filterChip:{flex:1,backgroundColor:_sharedUi.night.color.buttonSurface,borderRadius:8,borderWidth:1,borderColor:_sharedUi.night.color.border,paddingVertical:10,paddingHorizontal:12,alignItems:"center",justifyContent:"center",minHeight:44},filterChipActive:{borderWidth:1,shadowOffset:{width:0,height:0},shadowOpacity:.1,shadowRadius:6,elevation:2,transform:[{scale:1.005}]},filterLabel:{fontSize:9,color:_sharedUi.night.color.textTertiary,textTransform:"uppercase",letterSpacing:.5,fontWeight:"500",marginTop:3},filterValue:{fontSize:18,fontWeight:"600",fontFamily:_sharedUi.monoFont,lineHeight:20}});