react-native-prod-debugger 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +350 -0
  3. package/lib/commonjs/core/DebugBubble.js +139 -0
  4. package/lib/commonjs/core/DebugBubble.js.map +1 -0
  5. package/lib/commonjs/core/DebugOverlay.js +184 -0
  6. package/lib/commonjs/core/DebugOverlay.js.map +1 -0
  7. package/lib/commonjs/core/DebuggerProvider.js +174 -0
  8. package/lib/commonjs/core/DebuggerProvider.js.map +1 -0
  9. package/lib/commonjs/core/GestureDetector.js +83 -0
  10. package/lib/commonjs/core/GestureDetector.js.map +1 -0
  11. package/lib/commonjs/core/PluginRegistry.js +124 -0
  12. package/lib/commonjs/core/PluginRegistry.js.map +1 -0
  13. package/lib/commonjs/core/theme.js +50 -0
  14. package/lib/commonjs/core/theme.js.map +1 -0
  15. package/lib/commonjs/core/types.js +6 -0
  16. package/lib/commonjs/core/types.js.map +1 -0
  17. package/lib/commonjs/core/useDebugger.js +27 -0
  18. package/lib/commonjs/core/useDebugger.js.map +1 -0
  19. package/lib/commonjs/core/utils.js +239 -0
  20. package/lib/commonjs/core/utils.js.map +1 -0
  21. package/lib/commonjs/index.js +132 -0
  22. package/lib/commonjs/index.js.map +1 -0
  23. package/lib/commonjs/plugins/console/ConsoleInterceptor.js +103 -0
  24. package/lib/commonjs/plugins/console/ConsoleInterceptor.js.map +1 -0
  25. package/lib/commonjs/plugins/console/ConsoleViewerPlugin.js +269 -0
  26. package/lib/commonjs/plugins/console/ConsoleViewerPlugin.js.map +1 -0
  27. package/lib/commonjs/plugins/crashReporter/CrashReporterPlugin.js +363 -0
  28. package/lib/commonjs/plugins/crashReporter/CrashReporterPlugin.js.map +1 -0
  29. package/lib/commonjs/plugins/customActions/CustomActionsPlugin.js +218 -0
  30. package/lib/commonjs/plugins/customActions/CustomActionsPlugin.js.map +1 -0
  31. package/lib/commonjs/plugins/customActions/actionStore.js +46 -0
  32. package/lib/commonjs/plugins/customActions/actionStore.js.map +1 -0
  33. package/lib/commonjs/plugins/deepLinkTester/DeepLinkTesterPlugin.js +268 -0
  34. package/lib/commonjs/plugins/deepLinkTester/DeepLinkTesterPlugin.js.map +1 -0
  35. package/lib/commonjs/plugins/deviceInfo/DeviceInfoPlugin.js +184 -0
  36. package/lib/commonjs/plugins/deviceInfo/DeviceInfoPlugin.js.map +1 -0
  37. package/lib/commonjs/plugins/featureFlags/FeatureFlagsPlugin.js +381 -0
  38. package/lib/commonjs/plugins/featureFlags/FeatureFlagsPlugin.js.map +1 -0
  39. package/lib/commonjs/plugins/featureFlags/flagStore.js +125 -0
  40. package/lib/commonjs/plugins/featureFlags/flagStore.js.map +1 -0
  41. package/lib/commonjs/plugins/navigationInspector/NavigationInspectorPlugin.js +250 -0
  42. package/lib/commonjs/plugins/navigationInspector/NavigationInspectorPlugin.js.map +1 -0
  43. package/lib/commonjs/plugins/navigationInspector/navigationStore.js +65 -0
  44. package/lib/commonjs/plugins/navigationInspector/navigationStore.js.map +1 -0
  45. package/lib/commonjs/plugins/network/NetworkInspectorPlugin.js +709 -0
  46. package/lib/commonjs/plugins/network/NetworkInspectorPlugin.js.map +1 -0
  47. package/lib/commonjs/plugins/network/NetworkInterceptor.js +305 -0
  48. package/lib/commonjs/plugins/network/NetworkInterceptor.js.map +1 -0
  49. package/lib/commonjs/plugins/performance/PerformanceMonitorPlugin.js +261 -0
  50. package/lib/commonjs/plugins/performance/PerformanceMonitorPlugin.js.map +1 -0
  51. package/lib/commonjs/plugins/remoteConfig/RemoteConfigPlugin.js +265 -0
  52. package/lib/commonjs/plugins/remoteConfig/RemoteConfigPlugin.js.map +1 -0
  53. package/lib/commonjs/plugins/remoteConfig/remoteConfigStore.js +50 -0
  54. package/lib/commonjs/plugins/remoteConfig/remoteConfigStore.js.map +1 -0
  55. package/lib/commonjs/plugins/stateInspector/StateInspectorPlugin.js +378 -0
  56. package/lib/commonjs/plugins/stateInspector/StateInspectorPlugin.js.map +1 -0
  57. package/lib/commonjs/plugins/stateInspector/stateAdapterRegistry.js +62 -0
  58. package/lib/commonjs/plugins/stateInspector/stateAdapterRegistry.js.map +1 -0
  59. package/lib/commonjs/plugins/storageBrowser/StorageBrowserPlugin.js +496 -0
  60. package/lib/commonjs/plugins/storageBrowser/StorageBrowserPlugin.js.map +1 -0
  61. package/lib/commonjs/plugins/storageBrowser/storageAdapterRegistry.js +44 -0
  62. package/lib/commonjs/plugins/storageBrowser/storageAdapterRegistry.js.map +1 -0
  63. package/lib/commonjs/plugins/timeline/TimelinePlugin.js +294 -0
  64. package/lib/commonjs/plugins/timeline/TimelinePlugin.js.map +1 -0
  65. package/lib/commonjs/plugins/timeline/timelineStore.js +61 -0
  66. package/lib/commonjs/plugins/timeline/timelineStore.js.map +1 -0
  67. package/lib/module/core/DebugBubble.js +131 -0
  68. package/lib/module/core/DebugBubble.js.map +1 -0
  69. package/lib/module/core/DebugOverlay.js +176 -0
  70. package/lib/module/core/DebugOverlay.js.map +1 -0
  71. package/lib/module/core/DebuggerProvider.js +167 -0
  72. package/lib/module/core/DebuggerProvider.js.map +1 -0
  73. package/lib/module/core/GestureDetector.js +75 -0
  74. package/lib/module/core/GestureDetector.js.map +1 -0
  75. package/lib/module/core/PluginRegistry.js +116 -0
  76. package/lib/module/core/PluginRegistry.js.map +1 -0
  77. package/lib/module/core/theme.js +43 -0
  78. package/lib/module/core/theme.js.map +1 -0
  79. package/lib/module/core/types.js +2 -0
  80. package/lib/module/core/types.js.map +1 -0
  81. package/lib/module/core/useDebugger.js +21 -0
  82. package/lib/module/core/useDebugger.js.map +1 -0
  83. package/lib/module/core/utils.js +219 -0
  84. package/lib/module/core/utils.js.map +1 -0
  85. package/lib/module/index.js +44 -0
  86. package/lib/module/index.js.map +1 -0
  87. package/lib/module/plugins/console/ConsoleInterceptor.js +97 -0
  88. package/lib/module/plugins/console/ConsoleInterceptor.js.map +1 -0
  89. package/lib/module/plugins/console/ConsoleViewerPlugin.js +262 -0
  90. package/lib/module/plugins/console/ConsoleViewerPlugin.js.map +1 -0
  91. package/lib/module/plugins/crashReporter/CrashReporterPlugin.js +357 -0
  92. package/lib/module/plugins/crashReporter/CrashReporterPlugin.js.map +1 -0
  93. package/lib/module/plugins/customActions/CustomActionsPlugin.js +211 -0
  94. package/lib/module/plugins/customActions/CustomActionsPlugin.js.map +1 -0
  95. package/lib/module/plugins/customActions/actionStore.js +38 -0
  96. package/lib/module/plugins/customActions/actionStore.js.map +1 -0
  97. package/lib/module/plugins/deepLinkTester/DeepLinkTesterPlugin.js +261 -0
  98. package/lib/module/plugins/deepLinkTester/DeepLinkTesterPlugin.js.map +1 -0
  99. package/lib/module/plugins/deviceInfo/DeviceInfoPlugin.js +177 -0
  100. package/lib/module/plugins/deviceInfo/DeviceInfoPlugin.js.map +1 -0
  101. package/lib/module/plugins/featureFlags/FeatureFlagsPlugin.js +374 -0
  102. package/lib/module/plugins/featureFlags/FeatureFlagsPlugin.js.map +1 -0
  103. package/lib/module/plugins/featureFlags/flagStore.js +117 -0
  104. package/lib/module/plugins/featureFlags/flagStore.js.map +1 -0
  105. package/lib/module/plugins/navigationInspector/NavigationInspectorPlugin.js +243 -0
  106. package/lib/module/plugins/navigationInspector/NavigationInspectorPlugin.js.map +1 -0
  107. package/lib/module/plugins/navigationInspector/navigationStore.js +58 -0
  108. package/lib/module/plugins/navigationInspector/navigationStore.js.map +1 -0
  109. package/lib/module/plugins/network/NetworkInspectorPlugin.js +703 -0
  110. package/lib/module/plugins/network/NetworkInspectorPlugin.js.map +1 -0
  111. package/lib/module/plugins/network/NetworkInterceptor.js +299 -0
  112. package/lib/module/plugins/network/NetworkInterceptor.js.map +1 -0
  113. package/lib/module/plugins/performance/PerformanceMonitorPlugin.js +254 -0
  114. package/lib/module/plugins/performance/PerformanceMonitorPlugin.js.map +1 -0
  115. package/lib/module/plugins/remoteConfig/RemoteConfigPlugin.js +258 -0
  116. package/lib/module/plugins/remoteConfig/RemoteConfigPlugin.js.map +1 -0
  117. package/lib/module/plugins/remoteConfig/remoteConfigStore.js +43 -0
  118. package/lib/module/plugins/remoteConfig/remoteConfigStore.js.map +1 -0
  119. package/lib/module/plugins/stateInspector/StateInspectorPlugin.js +372 -0
  120. package/lib/module/plugins/stateInspector/StateInspectorPlugin.js.map +1 -0
  121. package/lib/module/plugins/stateInspector/stateAdapterRegistry.js +54 -0
  122. package/lib/module/plugins/stateInspector/stateAdapterRegistry.js.map +1 -0
  123. package/lib/module/plugins/storageBrowser/StorageBrowserPlugin.js +489 -0
  124. package/lib/module/plugins/storageBrowser/StorageBrowserPlugin.js.map +1 -0
  125. package/lib/module/plugins/storageBrowser/storageAdapterRegistry.js +36 -0
  126. package/lib/module/plugins/storageBrowser/storageAdapterRegistry.js.map +1 -0
  127. package/lib/module/plugins/timeline/TimelinePlugin.js +287 -0
  128. package/lib/module/plugins/timeline/TimelinePlugin.js.map +1 -0
  129. package/lib/module/plugins/timeline/timelineStore.js +54 -0
  130. package/lib/module/plugins/timeline/timelineStore.js.map +1 -0
  131. package/lib/typescript/core/DebugBubble.d.ts +22 -0
  132. package/lib/typescript/core/DebugBubble.d.ts.map +1 -0
  133. package/lib/typescript/core/DebugOverlay.d.ts +18 -0
  134. package/lib/typescript/core/DebugOverlay.d.ts.map +1 -0
  135. package/lib/typescript/core/DebuggerProvider.d.ts +25 -0
  136. package/lib/typescript/core/DebuggerProvider.d.ts.map +1 -0
  137. package/lib/typescript/core/GestureDetector.d.ts +20 -0
  138. package/lib/typescript/core/GestureDetector.d.ts.map +1 -0
  139. package/lib/typescript/core/PluginRegistry.d.ts +41 -0
  140. package/lib/typescript/core/PluginRegistry.d.ts.map +1 -0
  141. package/lib/typescript/core/theme.d.ts +11 -0
  142. package/lib/typescript/core/theme.d.ts.map +1 -0
  143. package/lib/typescript/core/types.d.ts +269 -0
  144. package/lib/typescript/core/types.d.ts.map +1 -0
  145. package/lib/typescript/core/useDebugger.d.ts +14 -0
  146. package/lib/typescript/core/useDebugger.d.ts.map +1 -0
  147. package/lib/typescript/core/utils.d.ts +46 -0
  148. package/lib/typescript/core/utils.d.ts.map +1 -0
  149. package/lib/typescript/index.d.ts +23 -0
  150. package/lib/typescript/index.d.ts.map +1 -0
  151. package/lib/typescript/plugins/console/ConsoleInterceptor.d.ts +32 -0
  152. package/lib/typescript/plugins/console/ConsoleInterceptor.d.ts.map +1 -0
  153. package/lib/typescript/plugins/console/ConsoleViewerPlugin.d.ts +3 -0
  154. package/lib/typescript/plugins/console/ConsoleViewerPlugin.d.ts.map +1 -0
  155. package/lib/typescript/plugins/crashReporter/CrashReporterPlugin.d.ts +3 -0
  156. package/lib/typescript/plugins/crashReporter/CrashReporterPlugin.d.ts.map +1 -0
  157. package/lib/typescript/plugins/customActions/CustomActionsPlugin.d.ts +3 -0
  158. package/lib/typescript/plugins/customActions/CustomActionsPlugin.d.ts.map +1 -0
  159. package/lib/typescript/plugins/customActions/actionStore.d.ts +16 -0
  160. package/lib/typescript/plugins/customActions/actionStore.d.ts.map +1 -0
  161. package/lib/typescript/plugins/deepLinkTester/DeepLinkTesterPlugin.d.ts +3 -0
  162. package/lib/typescript/plugins/deepLinkTester/DeepLinkTesterPlugin.d.ts.map +1 -0
  163. package/lib/typescript/plugins/deviceInfo/DeviceInfoPlugin.d.ts +3 -0
  164. package/lib/typescript/plugins/deviceInfo/DeviceInfoPlugin.d.ts.map +1 -0
  165. package/lib/typescript/plugins/featureFlags/FeatureFlagsPlugin.d.ts +3 -0
  166. package/lib/typescript/plugins/featureFlags/FeatureFlagsPlugin.d.ts.map +1 -0
  167. package/lib/typescript/plugins/featureFlags/flagStore.d.ts +45 -0
  168. package/lib/typescript/plugins/featureFlags/flagStore.d.ts.map +1 -0
  169. package/lib/typescript/plugins/navigationInspector/NavigationInspectorPlugin.d.ts +3 -0
  170. package/lib/typescript/plugins/navigationInspector/NavigationInspectorPlugin.d.ts.map +1 -0
  171. package/lib/typescript/plugins/navigationInspector/navigationStore.d.ts +30 -0
  172. package/lib/typescript/plugins/navigationInspector/navigationStore.d.ts.map +1 -0
  173. package/lib/typescript/plugins/network/NetworkInspectorPlugin.d.ts +3 -0
  174. package/lib/typescript/plugins/network/NetworkInspectorPlugin.d.ts.map +1 -0
  175. package/lib/typescript/plugins/network/NetworkInterceptor.d.ts +42 -0
  176. package/lib/typescript/plugins/network/NetworkInterceptor.d.ts.map +1 -0
  177. package/lib/typescript/plugins/performance/PerformanceMonitorPlugin.d.ts +3 -0
  178. package/lib/typescript/plugins/performance/PerformanceMonitorPlugin.d.ts.map +1 -0
  179. package/lib/typescript/plugins/remoteConfig/RemoteConfigPlugin.d.ts +3 -0
  180. package/lib/typescript/plugins/remoteConfig/RemoteConfigPlugin.d.ts.map +1 -0
  181. package/lib/typescript/plugins/remoteConfig/remoteConfigStore.d.ts +20 -0
  182. package/lib/typescript/plugins/remoteConfig/remoteConfigStore.d.ts.map +1 -0
  183. package/lib/typescript/plugins/stateInspector/StateInspectorPlugin.d.ts +3 -0
  184. package/lib/typescript/plugins/stateInspector/StateInspectorPlugin.d.ts.map +1 -0
  185. package/lib/typescript/plugins/stateInspector/stateAdapterRegistry.d.ts +34 -0
  186. package/lib/typescript/plugins/stateInspector/stateAdapterRegistry.d.ts.map +1 -0
  187. package/lib/typescript/plugins/storageBrowser/StorageBrowserPlugin.d.ts +3 -0
  188. package/lib/typescript/plugins/storageBrowser/StorageBrowserPlugin.d.ts.map +1 -0
  189. package/lib/typescript/plugins/storageBrowser/storageAdapterRegistry.d.ts +16 -0
  190. package/lib/typescript/plugins/storageBrowser/storageAdapterRegistry.d.ts.map +1 -0
  191. package/lib/typescript/plugins/timeline/TimelinePlugin.d.ts +3 -0
  192. package/lib/typescript/plugins/timeline/TimelinePlugin.d.ts.map +1 -0
  193. package/lib/typescript/plugins/timeline/timelineStore.d.ts +24 -0
  194. package/lib/typescript/plugins/timeline/timelineStore.d.ts.map +1 -0
  195. package/package.json +131 -0
  196. package/src/core/DebugBubble.tsx +149 -0
  197. package/src/core/DebugOverlay.tsx +211 -0
  198. package/src/core/DebuggerProvider.tsx +211 -0
  199. package/src/core/GestureDetector.tsx +95 -0
  200. package/src/core/PluginRegistry.ts +118 -0
  201. package/src/core/theme.ts +41 -0
  202. package/src/core/types.ts +339 -0
  203. package/src/core/useDebugger.ts +24 -0
  204. package/src/core/utils.ts +221 -0
  205. package/src/index.ts +67 -0
  206. package/src/plugins/console/ConsoleInterceptor.ts +110 -0
  207. package/src/plugins/console/ConsoleViewerPlugin.tsx +241 -0
  208. package/src/plugins/crashReporter/CrashReporterPlugin.tsx +316 -0
  209. package/src/plugins/customActions/CustomActionsPlugin.tsx +199 -0
  210. package/src/plugins/customActions/actionStore.ts +49 -0
  211. package/src/plugins/deepLinkTester/DeepLinkTesterPlugin.tsx +213 -0
  212. package/src/plugins/deviceInfo/DeviceInfoPlugin.tsx +153 -0
  213. package/src/plugins/featureFlags/FeatureFlagsPlugin.tsx +338 -0
  214. package/src/plugins/featureFlags/flagStore.ts +118 -0
  215. package/src/plugins/navigationInspector/NavigationInspectorPlugin.tsx +170 -0
  216. package/src/plugins/navigationInspector/navigationStore.ts +70 -0
  217. package/src/plugins/network/NetworkInspectorPlugin.tsx +598 -0
  218. package/src/plugins/network/NetworkInterceptor.ts +344 -0
  219. package/src/plugins/performance/PerformanceMonitorPlugin.tsx +194 -0
  220. package/src/plugins/remoteConfig/RemoteConfigPlugin.tsx +205 -0
  221. package/src/plugins/remoteConfig/remoteConfigStore.ts +48 -0
  222. package/src/plugins/stateInspector/StateInspectorPlugin.tsx +342 -0
  223. package/src/plugins/stateInspector/stateAdapterRegistry.ts +66 -0
  224. package/src/plugins/storageBrowser/StorageBrowserPlugin.tsx +410 -0
  225. package/src/plugins/storageBrowser/storageAdapterRegistry.ts +47 -0
  226. package/src/plugins/timeline/TimelinePlugin.tsx +242 -0
  227. package/src/plugins/timeline/timelineStore.ts +65 -0
@@ -0,0 +1,496 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createStorageBrowserPlugin = createStorageBrowserPlugin;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _storageAdapterRegistry = require("./storageAdapterRegistry");
10
+ var _utils = require("../../core/utils");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ const StorageBrowserPanel = ({
13
+ theme
14
+ }) => {
15
+ const [adapters, setAdapters] = (0, _react.useState)(new Map());
16
+ const [activeAdapterId, setActiveAdapterId] = (0, _react.useState)(null);
17
+ const [keys, setKeys] = (0, _react.useState)([]);
18
+ const [searchQuery, setSearchQuery] = (0, _react.useState)('');
19
+ const [selectedKey, setSelectedKey] = (0, _react.useState)(null);
20
+ const [selectedValue, setSelectedValue] = (0, _react.useState)('');
21
+ const [isEditing, setIsEditing] = (0, _react.useState)(false);
22
+ const [editValue, setEditValue] = (0, _react.useState)('');
23
+ const [loading, setLoading] = (0, _react.useState)(false);
24
+ (0, _react.useEffect)(() => {
25
+ const unsubscribe = _storageAdapterRegistry.storageAdapterRegistry.subscribe(() => {
26
+ const all = _storageAdapterRegistry.storageAdapterRegistry.getAll();
27
+ setAdapters(all);
28
+ if (!activeAdapterId && all.size > 0) {
29
+ setActiveAdapterId(Array.from(all.keys())[0]);
30
+ }
31
+ });
32
+ const all = _storageAdapterRegistry.storageAdapterRegistry.getAll();
33
+ setAdapters(all);
34
+ if (all.size > 0) setActiveAdapterId(Array.from(all.keys())[0]);
35
+ return unsubscribe;
36
+ }, []);
37
+ const activeAdapter = activeAdapterId ? adapters.get(activeAdapterId) : null;
38
+ const loadKeys = (0, _react.useCallback)(async () => {
39
+ if (!activeAdapter) return;
40
+ setLoading(true);
41
+ try {
42
+ const allKeys = await activeAdapter.getAllKeys();
43
+ setKeys(allKeys.sort());
44
+ } catch {
45
+ setKeys([]);
46
+ }
47
+ setLoading(false);
48
+ }, [activeAdapter]);
49
+ (0, _react.useEffect)(() => {
50
+ loadKeys();
51
+ }, [loadKeys]);
52
+ const handleSelectKey = (0, _react.useCallback)(async key => {
53
+ if (!activeAdapter) return;
54
+ setSelectedKey(key);
55
+ try {
56
+ const value = await activeAdapter.getItem(key);
57
+ setSelectedValue(value ?? '');
58
+ } catch {
59
+ setSelectedValue('[Error reading value]');
60
+ }
61
+ }, [activeAdapter]);
62
+ const handleSave = (0, _react.useCallback)(async () => {
63
+ if (!activeAdapter || !selectedKey) return;
64
+ try {
65
+ await activeAdapter.setItem(selectedKey, editValue);
66
+ setSelectedValue(editValue);
67
+ setIsEditing(false);
68
+ } catch {
69
+ /* ignore */
70
+ }
71
+ }, [activeAdapter, selectedKey, editValue]);
72
+ const handleDelete = (0, _react.useCallback)(async key => {
73
+ if (!activeAdapter) return;
74
+ _reactNative.Alert.alert('Delete', `Delete "${key}"?`, [{
75
+ text: 'Cancel',
76
+ style: 'cancel'
77
+ }, {
78
+ text: 'Delete',
79
+ style: 'destructive',
80
+ onPress: async () => {
81
+ try {
82
+ await activeAdapter.removeItem(key);
83
+ if (selectedKey === key) {
84
+ setSelectedKey(null);
85
+ setSelectedValue('');
86
+ }
87
+ loadKeys();
88
+ } catch {
89
+ /* ignore */
90
+ }
91
+ }
92
+ }]);
93
+ }, [activeAdapter, selectedKey, loadKeys]);
94
+ const handleExportAll = (0, _react.useCallback)(async () => {
95
+ if (!activeAdapter) return;
96
+ const data = {};
97
+ for (const key of keys) {
98
+ try {
99
+ data[key] = await activeAdapter.getItem(key);
100
+ } catch {
101
+ data[key] = null;
102
+ }
103
+ }
104
+ (0, _utils.copyToClipboard)((0, _utils.safeStringify)(data));
105
+ }, [activeAdapter, keys]);
106
+ const filteredKeys = (0, _react.useMemo)(() => {
107
+ if (!searchQuery) return keys;
108
+ const q = searchQuery.toLowerCase();
109
+ return keys.filter(k => k.toLowerCase().includes(q));
110
+ }, [keys, searchQuery]);
111
+ const formattedValue = (0, _react.useMemo)(() => {
112
+ const parsed = (0, _utils.safeParse)(selectedValue);
113
+ if (parsed !== null && typeof parsed === 'object') return (0, _utils.safeStringify)(parsed);
114
+ return selectedValue;
115
+ }, [selectedValue]);
116
+ if (adapters.size === 0) {
117
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
118
+ style: styles.emptyContainer
119
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
120
+ style: styles.emptyIcon
121
+ }, "\uD83D\uDCBE"), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
122
+ style: [styles.emptyTitle, {
123
+ color: theme.text
124
+ }]
125
+ }, "No Storage Adapters"), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
126
+ style: [styles.emptyDesc, {
127
+ color: theme.textMuted
128
+ }]
129
+ }, "Register an adapter:", '\n\n', /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
130
+ style: {
131
+ fontFamily: 'monospace',
132
+ color: theme.codeText
133
+ }
134
+ }, 'setStorageAdapter("async", {\n name: "AsyncStorage",\n getAllKeys: () => AsyncStorage.getAllKeys(),\n getItem: (k) => AsyncStorage.getItem(k),\n setItem: (k,v) => AsyncStorage.setItem(k,v),\n removeItem: (k) => AsyncStorage.removeItem(k),\n})')));
135
+ }
136
+ if (selectedKey) {
137
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
138
+ style: styles.container
139
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
140
+ style: [styles.detailHeader, {
141
+ backgroundColor: theme.surface,
142
+ borderBottomColor: theme.border
143
+ }]
144
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
145
+ onPress: () => {
146
+ setSelectedKey(null);
147
+ setIsEditing(false);
148
+ },
149
+ activeOpacity: 0.7
150
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
151
+ style: [styles.backBtn, {
152
+ color: theme.accent
153
+ }]
154
+ }, "\u2190 Back")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
155
+ style: styles.detailActions
156
+ }, !isEditing && /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
157
+ onPress: () => {
158
+ setEditValue(selectedValue);
159
+ setIsEditing(true);
160
+ },
161
+ activeOpacity: 0.7
162
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
163
+ style: [styles.actionText, {
164
+ color: theme.accent
165
+ }]
166
+ }, "Edit")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
167
+ onPress: () => (0, _utils.copyToClipboard)(selectedValue),
168
+ activeOpacity: 0.7
169
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
170
+ style: [styles.actionText, {
171
+ color: theme.accent
172
+ }]
173
+ }, "Copy")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
174
+ onPress: () => handleDelete(selectedKey),
175
+ activeOpacity: 0.7
176
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
177
+ style: [styles.actionText, {
178
+ color: theme.error
179
+ }]
180
+ }, "Delete")))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
181
+ style: [styles.keyDisplay, {
182
+ backgroundColor: theme.codeBackground
183
+ }]
184
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
185
+ style: [styles.keyText, {
186
+ color: theme.codeText
187
+ }],
188
+ selectable: true
189
+ }, selectedKey)), isEditing ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
190
+ style: styles.editSection
191
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
192
+ style: [styles.editArea, {
193
+ color: theme.text,
194
+ backgroundColor: theme.surfaceAlt,
195
+ borderColor: theme.border
196
+ }],
197
+ value: editValue,
198
+ onChangeText: setEditValue,
199
+ multiline: true,
200
+ textAlignVertical: "top"
201
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
202
+ style: styles.editBtns
203
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
204
+ onPress: handleSave,
205
+ style: [styles.saveBtn, {
206
+ backgroundColor: theme.success
207
+ }],
208
+ activeOpacity: 0.7
209
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
210
+ style: styles.saveBtnText
211
+ }, "Save")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
212
+ onPress: () => setIsEditing(false),
213
+ activeOpacity: 0.7
214
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
215
+ style: [styles.cancelBtnText, {
216
+ color: theme.textMuted
217
+ }]
218
+ }, "Cancel")))) : /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
219
+ style: styles.valueScrollView
220
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
221
+ style: [styles.valueBlock, {
222
+ backgroundColor: theme.codeBackground
223
+ }]
224
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
225
+ style: [styles.valueCode, {
226
+ color: theme.codeText
227
+ }],
228
+ selectable: true
229
+ }, formattedValue))));
230
+ }
231
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
232
+ style: styles.container
233
+ }, Array.from(adapters.keys()).length > 1 && /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
234
+ horizontal: true,
235
+ showsHorizontalScrollIndicator: false,
236
+ style: [styles.adapterBar, {
237
+ backgroundColor: theme.surface
238
+ }],
239
+ contentContainerStyle: styles.adapterBarContent
240
+ }, Array.from(adapters.entries()).map(([id, adapter]) => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
241
+ key: id,
242
+ style: [styles.adapterChip, {
243
+ backgroundColor: id === activeAdapterId ? theme.accent : theme.surfaceAlt,
244
+ borderColor: theme.border
245
+ }],
246
+ onPress: () => setActiveAdapterId(id),
247
+ activeOpacity: 0.7
248
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
249
+ style: [styles.adapterChipText, {
250
+ color: id === activeAdapterId ? '#FFF' : theme.textSecondary
251
+ }]
252
+ }, adapter.name)))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
253
+ style: [styles.actionBar, {
254
+ backgroundColor: theme.surface,
255
+ borderBottomColor: theme.border
256
+ }]
257
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
258
+ style: [styles.keyCount, {
259
+ color: theme.text
260
+ }]
261
+ }, keys.length, " keys"), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
262
+ style: styles.actionBarBtns
263
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
264
+ onPress: loadKeys,
265
+ activeOpacity: 0.7
266
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
267
+ style: [styles.actionText, {
268
+ color: theme.accent
269
+ }]
270
+ }, "\u21BB Refresh")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
271
+ onPress: handleExportAll,
272
+ activeOpacity: 0.7
273
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
274
+ style: [styles.actionText, {
275
+ color: theme.accent
276
+ }]
277
+ }, "Export")))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
278
+ style: [styles.searchContainer, {
279
+ backgroundColor: theme.surface
280
+ }]
281
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
282
+ style: [styles.searchInput, {
283
+ color: theme.text,
284
+ backgroundColor: theme.surfaceAlt,
285
+ borderColor: theme.border
286
+ }],
287
+ placeholder: "Search keys...",
288
+ placeholderTextColor: theme.textMuted,
289
+ value: searchQuery,
290
+ onChangeText: setSearchQuery,
291
+ autoCapitalize: "none"
292
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, {
293
+ data: filteredKeys,
294
+ keyExtractor: item => item,
295
+ renderItem: ({
296
+ item
297
+ }) => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
298
+ style: [styles.keyRow, {
299
+ borderBottomColor: theme.border
300
+ }],
301
+ onPress: () => handleSelectKey(item),
302
+ onLongPress: () => handleDelete(item),
303
+ activeOpacity: 0.7
304
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
305
+ style: [styles.keyName, {
306
+ color: theme.text
307
+ }]
308
+ }, item), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
309
+ style: [styles.keyArrow, {
310
+ color: theme.textMuted
311
+ }]
312
+ }, "\u203A")),
313
+ ListEmptyComponent: /*#__PURE__*/_react.default.createElement(_reactNative.View, {
314
+ style: styles.emptyListContainer
315
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
316
+ style: [styles.emptyText, {
317
+ color: theme.textMuted
318
+ }]
319
+ }, loading ? 'Loading...' : 'No storage keys'))
320
+ }));
321
+ };
322
+ const styles = _reactNative.StyleSheet.create({
323
+ container: {
324
+ flex: 1
325
+ },
326
+ emptyContainer: {
327
+ flex: 1,
328
+ alignItems: 'center',
329
+ justifyContent: 'center',
330
+ paddingHorizontal: 32
331
+ },
332
+ emptyIcon: {
333
+ fontSize: 48,
334
+ marginBottom: 16
335
+ },
336
+ emptyTitle: {
337
+ fontSize: 16,
338
+ fontWeight: '700',
339
+ marginBottom: 8
340
+ },
341
+ emptyDesc: {
342
+ fontSize: 13,
343
+ textAlign: 'center',
344
+ lineHeight: 20
345
+ },
346
+ adapterBar: {
347
+ maxHeight: 44
348
+ },
349
+ adapterBarContent: {
350
+ paddingHorizontal: 12,
351
+ paddingVertical: 8,
352
+ gap: 6
353
+ },
354
+ adapterChip: {
355
+ paddingHorizontal: 12,
356
+ paddingVertical: 4,
357
+ borderRadius: 12,
358
+ borderWidth: 1
359
+ },
360
+ adapterChipText: {
361
+ fontSize: 12,
362
+ fontWeight: '600'
363
+ },
364
+ actionBar: {
365
+ flexDirection: 'row',
366
+ justifyContent: 'space-between',
367
+ alignItems: 'center',
368
+ paddingHorizontal: 12,
369
+ paddingVertical: 8,
370
+ borderBottomWidth: _reactNative.StyleSheet.hairlineWidth
371
+ },
372
+ keyCount: {
373
+ fontSize: 13,
374
+ fontWeight: '600'
375
+ },
376
+ actionBarBtns: {
377
+ flexDirection: 'row',
378
+ gap: 12
379
+ },
380
+ actionText: {
381
+ fontSize: 12,
382
+ fontWeight: '600'
383
+ },
384
+ searchContainer: {
385
+ paddingHorizontal: 12,
386
+ paddingVertical: 8
387
+ },
388
+ searchInput: {
389
+ height: 36,
390
+ borderRadius: 8,
391
+ paddingHorizontal: 12,
392
+ fontSize: 13,
393
+ borderWidth: 1
394
+ },
395
+ keyRow: {
396
+ flexDirection: 'row',
397
+ justifyContent: 'space-between',
398
+ alignItems: 'center',
399
+ paddingHorizontal: 12,
400
+ paddingVertical: 12,
401
+ borderBottomWidth: _reactNative.StyleSheet.hairlineWidth
402
+ },
403
+ keyName: {
404
+ fontSize: 13,
405
+ fontFamily: 'monospace',
406
+ flex: 1
407
+ },
408
+ keyArrow: {
409
+ fontSize: 18
410
+ },
411
+ emptyListContainer: {
412
+ alignItems: 'center',
413
+ paddingVertical: 40
414
+ },
415
+ emptyText: {
416
+ fontSize: 13
417
+ },
418
+ detailHeader: {
419
+ flexDirection: 'row',
420
+ justifyContent: 'space-between',
421
+ alignItems: 'center',
422
+ paddingHorizontal: 12,
423
+ paddingVertical: 10,
424
+ borderBottomWidth: _reactNative.StyleSheet.hairlineWidth
425
+ },
426
+ backBtn: {
427
+ fontSize: 14,
428
+ fontWeight: '600'
429
+ },
430
+ detailActions: {
431
+ flexDirection: 'row',
432
+ gap: 12
433
+ },
434
+ keyDisplay: {
435
+ padding: 12
436
+ },
437
+ keyText: {
438
+ fontSize: 12,
439
+ fontFamily: 'monospace'
440
+ },
441
+ valueScrollView: {
442
+ flex: 1
443
+ },
444
+ valueBlock: {
445
+ padding: 12,
446
+ margin: 12,
447
+ borderRadius: 8
448
+ },
449
+ valueCode: {
450
+ fontSize: 12,
451
+ fontFamily: 'monospace',
452
+ lineHeight: 18
453
+ },
454
+ editSection: {
455
+ flex: 1,
456
+ padding: 12
457
+ },
458
+ editArea: {
459
+ flex: 1,
460
+ borderWidth: 1,
461
+ borderRadius: 8,
462
+ padding: 12,
463
+ fontSize: 12,
464
+ fontFamily: 'monospace'
465
+ },
466
+ editBtns: {
467
+ flexDirection: 'row',
468
+ alignItems: 'center',
469
+ gap: 12,
470
+ marginTop: 12,
471
+ justifyContent: 'flex-end'
472
+ },
473
+ saveBtn: {
474
+ paddingHorizontal: 20,
475
+ paddingVertical: 8,
476
+ borderRadius: 8
477
+ },
478
+ saveBtnText: {
479
+ color: '#FFF',
480
+ fontWeight: '700',
481
+ fontSize: 13
482
+ },
483
+ cancelBtnText: {
484
+ fontSize: 13
485
+ }
486
+ });
487
+ function createStorageBrowserPlugin() {
488
+ return {
489
+ id: 'storage-browser',
490
+ name: 'Storage',
491
+ icon: '💾',
492
+ component: StorageBrowserPanel,
493
+ order: 60
494
+ };
495
+ }
496
+ //# sourceMappingURL=StorageBrowserPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_storageAdapterRegistry","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StorageBrowserPanel","theme","adapters","setAdapters","useState","Map","activeAdapterId","setActiveAdapterId","keys","setKeys","searchQuery","setSearchQuery","selectedKey","setSelectedKey","selectedValue","setSelectedValue","isEditing","setIsEditing","editValue","setEditValue","loading","setLoading","useEffect","unsubscribe","storageAdapterRegistry","subscribe","all","getAll","size","Array","from","activeAdapter","loadKeys","useCallback","allKeys","getAllKeys","sort","handleSelectKey","key","value","getItem","handleSave","setItem","handleDelete","Alert","alert","text","style","onPress","removeItem","handleExportAll","data","copyToClipboard","safeStringify","filteredKeys","useMemo","q","toLowerCase","filter","k","includes","formattedValue","parsed","safeParse","createElement","View","styles","emptyContainer","Text","emptyIcon","emptyTitle","color","emptyDesc","textMuted","fontFamily","codeText","container","detailHeader","backgroundColor","surface","borderBottomColor","border","TouchableOpacity","activeOpacity","backBtn","accent","detailActions","actionText","error","keyDisplay","codeBackground","keyText","selectable","editSection","TextInput","editArea","surfaceAlt","borderColor","onChangeText","multiline","textAlignVertical","editBtns","saveBtn","success","saveBtnText","cancelBtnText","ScrollView","valueScrollView","valueBlock","valueCode","length","horizontal","showsHorizontalScrollIndicator","adapterBar","contentContainerStyle","adapterBarContent","entries","map","id","adapter","adapterChip","adapterChipText","textSecondary","name","actionBar","keyCount","actionBarBtns","searchContainer","searchInput","placeholder","placeholderTextColor","autoCapitalize","FlatList","keyExtractor","item","renderItem","keyRow","onLongPress","keyName","keyArrow","ListEmptyComponent","emptyListContainer","emptyText","StyleSheet","create","flex","alignItems","justifyContent","paddingHorizontal","fontSize","marginBottom","fontWeight","textAlign","lineHeight","maxHeight","paddingVertical","gap","borderRadius","borderWidth","flexDirection","borderBottomWidth","hairlineWidth","height","padding","margin","marginTop","createStorageBrowserPlugin","icon","component","order"],"sourceRoot":"../../../../src","sources":["plugins/storageBrowser/StorageBrowserPlugin.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.removeStorageAdapter = removeStorageAdapter;
7
+ exports.setStorageAdapter = setStorageAdapter;
8
+ exports.storageAdapterRegistry = void 0;
9
+ class StorageAdapterRegistryClass {
10
+ adapters = new Map();
11
+ listeners = new Set();
12
+ set(id, adapter) {
13
+ this.adapters.set(id, adapter);
14
+ this.notify();
15
+ }
16
+ remove(id) {
17
+ this.adapters.delete(id);
18
+ this.notify();
19
+ }
20
+ getAll() {
21
+ return new Map(this.adapters);
22
+ }
23
+ subscribe(listener) {
24
+ this.listeners.add(listener);
25
+ return () => this.listeners.delete(listener);
26
+ }
27
+ notify() {
28
+ for (const l of this.listeners) {
29
+ try {
30
+ l();
31
+ } catch {
32
+ /* ignore */
33
+ }
34
+ }
35
+ }
36
+ }
37
+ const storageAdapterRegistry = exports.storageAdapterRegistry = new StorageAdapterRegistryClass();
38
+ function setStorageAdapter(id, adapter) {
39
+ storageAdapterRegistry.set(id, adapter);
40
+ }
41
+ function removeStorageAdapter(id) {
42
+ storageAdapterRegistry.remove(id);
43
+ }
44
+ //# sourceMappingURL=storageAdapterRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StorageAdapterRegistryClass","adapters","Map","listeners","Set","set","id","adapter","notify","remove","delete","getAll","subscribe","listener","add","l","storageAdapterRegistry","exports","setStorageAdapter","removeStorageAdapter"],"sourceRoot":"../../../../src","sources":["plugins/storageBrowser/storageAdapterRegistry.ts"],"mappings":";;;;;;;;AAIA,MAAMA,2BAA2B,CAAC;EACxBC,QAAQ,GAAgC,IAAIC,GAAG,CAAC,CAAC;EACjDC,SAAS,GAAkB,IAAIC,GAAG,CAAC,CAAC;EAE5CC,GAAGA,CAACC,EAAU,EAAEC,OAAuB,EAAQ;IAC7C,IAAI,CAACN,QAAQ,CAACI,GAAG,CAACC,EAAE,EAAEC,OAAO,CAAC;IAC9B,IAAI,CAACC,MAAM,CAAC,CAAC;EACf;EAEAC,MAAMA,CAACH,EAAU,EAAQ;IACvB,IAAI,CAACL,QAAQ,CAACS,MAAM,CAACJ,EAAE,CAAC;IACxB,IAAI,CAACE,MAAM,CAAC,CAAC;EACf;EAEAG,MAAMA,CAAA,EAAgC;IACpC,OAAO,IAAIT,GAAG,CAAC,IAAI,CAACD,QAAQ,CAAC;EAC/B;EAEAW,SAASA,CAACC,QAAkB,EAAc;IACxC,IAAI,CAACV,SAAS,CAACW,GAAG,CAACD,QAAQ,CAAC;IAC5B,OAAO,MAAM,IAAI,CAACV,SAAS,CAACO,MAAM,CAACG,QAAQ,CAAC;EAC9C;EAEQL,MAAMA,CAAA,EAAS;IACrB,KAAK,MAAMO,CAAC,IAAI,IAAI,CAACZ,SAAS,EAAE;MAC9B,IAAI;QACFY,CAAC,CAAC,CAAC;MACL,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ;EACF;AACF;AAEO,MAAMC,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG,IAAIhB,2BAA2B,CAAC,CAAC;AAEhE,SAASkB,iBAAiBA,CAACZ,EAAU,EAAEC,OAAuB,EAAQ;EAC3ES,sBAAsB,CAACX,GAAG,CAACC,EAAE,EAAEC,OAAO,CAAC;AACzC;AAEO,SAASY,oBAAoBA,CAACb,EAAU,EAAQ;EACrDU,sBAAsB,CAACP,MAAM,CAACH,EAAE,CAAC;AACnC","ignoreList":[]}