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,378 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createStateInspectorPlugin = createStateInspectorPlugin;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _stateAdapterRegistry = require("./stateAdapterRegistry");
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
+ // ─── JSON Tree Viewer ───────────────────────────────────────────────────────
13
+
14
+ const JsonNode = /*#__PURE__*/_react.default.memo(({
15
+ keyName,
16
+ value,
17
+ depth,
18
+ theme,
19
+ searchQuery
20
+ }) => {
21
+ const [expanded, setExpanded] = (0, _react.useState)(depth < 2);
22
+ const isObject = typeof value === 'object' && value !== null;
23
+ const isArray = Array.isArray(value);
24
+ const entries = isObject ? Object.entries(value) : [];
25
+ const typeLabel = isArray ? `Array(${entries.length})` : `Object(${entries.length})`;
26
+ const matchesSearch = searchQuery && keyName.toLowerCase().includes(searchQuery.toLowerCase());
27
+ const valueDisplay = (0, _react.useMemo)(() => {
28
+ if (value === null) return 'null';
29
+ if (value === undefined) return 'undefined';
30
+ if (typeof value === 'boolean') return value ? 'true' : 'false';
31
+ if (typeof value === 'number') return String(value);
32
+ if (typeof value === 'string') return `"${value.length > 100 ? value.slice(0, 100) + '…' : value}"`;
33
+ return null;
34
+ }, [value]);
35
+ const valueColor = (0, _react.useMemo)(() => {
36
+ if (value === null || value === undefined) return theme.textMuted;
37
+ if (typeof value === 'boolean') return theme.accent;
38
+ if (typeof value === 'number') return theme.success;
39
+ if (typeof value === 'string') return theme.warning;
40
+ return theme.text;
41
+ }, [value, theme]);
42
+ if (!isObject) {
43
+ return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
44
+ style: [styles.nodeRow, {
45
+ paddingLeft: depth * 16
46
+ }],
47
+ onLongPress: () => (0, _utils.copyToClipboard)((0, _utils.safeStringify)(value, 0)),
48
+ activeOpacity: 0.7
49
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
50
+ style: [styles.nodeKey, {
51
+ color: matchesSearch ? theme.accent : theme.info
52
+ }]
53
+ }, keyName, ":", ' '), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
54
+ style: [styles.nodeValue, {
55
+ color: valueColor
56
+ }]
57
+ }, valueDisplay));
58
+ }
59
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, null, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
60
+ style: [styles.nodeRow, {
61
+ paddingLeft: depth * 16
62
+ }],
63
+ onPress: () => setExpanded(!expanded),
64
+ onLongPress: () => (0, _utils.copyToClipboard)((0, _utils.safeStringify)(value)),
65
+ activeOpacity: 0.7
66
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
67
+ style: [styles.nodeExpander, {
68
+ color: theme.textMuted
69
+ }]
70
+ }, expanded ? '▼' : '▶', ' '), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
71
+ style: [styles.nodeKey, {
72
+ color: matchesSearch ? theme.accent : theme.info
73
+ }]
74
+ }, keyName), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
75
+ style: [styles.nodeType, {
76
+ color: theme.textMuted
77
+ }]
78
+ }, " ", typeLabel)), expanded && entries.map(([key, val]) => /*#__PURE__*/_react.default.createElement(JsonNode, {
79
+ key: key,
80
+ keyName: key,
81
+ value: val,
82
+ depth: depth + 1,
83
+ theme: theme,
84
+ searchQuery: searchQuery
85
+ })));
86
+ });
87
+
88
+ // ─── State Inspector Panel ──────────────────────────────────────────────────
89
+
90
+ const StateInspectorPanel = ({
91
+ theme
92
+ }) => {
93
+ const [adapters, setAdapters] = (0, _react.useState)(new Map());
94
+ const [states, setStates] = (0, _react.useState)(new Map());
95
+ const [activeStore, setActiveStore] = (0, _react.useState)(null);
96
+ const [searchQuery, setSearchQuery] = (0, _react.useState)('');
97
+ const [, forceUpdate] = (0, _react.useState)(0);
98
+
99
+ // Listen for adapter registry changes
100
+ (0, _react.useEffect)(() => {
101
+ const unsubscribe = _stateAdapterRegistry.stateAdapterRegistry.subscribe(() => {
102
+ setAdapters(_stateAdapterRegistry.stateAdapterRegistry.getAll());
103
+ });
104
+ setAdapters(_stateAdapterRegistry.stateAdapterRegistry.getAll());
105
+ return unsubscribe;
106
+ }, []);
107
+
108
+ // Subscribe to state changes from all adapters
109
+ (0, _react.useEffect)(() => {
110
+ const unsubscribers = [];
111
+ const refreshStates = () => {
112
+ const newStates = new Map();
113
+ for (const [id, adapter] of adapters) {
114
+ try {
115
+ newStates.set(id, adapter.getState());
116
+ } catch {
117
+ newStates.set(id, {
118
+ error: 'Failed to read state'
119
+ });
120
+ }
121
+ }
122
+ setStates(newStates);
123
+ };
124
+ refreshStates();
125
+ for (const [id, adapter] of adapters) {
126
+ if (adapter.subscribe) {
127
+ const unsub = adapter.subscribe(() => {
128
+ try {
129
+ setStates(prev => {
130
+ const next = new Map(prev);
131
+ next.set(id, adapter.getState());
132
+ return next;
133
+ });
134
+ } catch {
135
+ // ignore
136
+ }
137
+ });
138
+ unsubscribers.push(unsub);
139
+ }
140
+ }
141
+ return () => unsubscribers.forEach(u => u());
142
+ }, [adapters]);
143
+ const handleRefresh = (0, _react.useCallback)(() => {
144
+ const newStates = new Map();
145
+ for (const [id, adapter] of adapters) {
146
+ try {
147
+ newStates.set(id, adapter.getState());
148
+ } catch {
149
+ newStates.set(id, {
150
+ error: 'Failed to read state'
151
+ });
152
+ }
153
+ }
154
+ setStates(newStates);
155
+ forceUpdate(n => n + 1);
156
+ }, [adapters]);
157
+ const handleCopyState = (0, _react.useCallback)(storeId => {
158
+ const state = states.get(storeId);
159
+ if (state) (0, _utils.copyToClipboard)((0, _utils.safeStringify)(state));
160
+ }, [states]);
161
+ const storeIds = (0, _react.useMemo)(() => Array.from(adapters.keys()), [adapters]);
162
+ const activeStoreId = activeStore || storeIds[0] || null;
163
+ const activeState = activeStoreId ? states.get(activeStoreId) : null;
164
+ const activeAdapter = activeStoreId ? adapters.get(activeStoreId) : null;
165
+ if (storeIds.length === 0) {
166
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
167
+ style: styles.emptyContainer
168
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
169
+ style: [styles.emptyIcon]
170
+ }, "\uD83D\uDD0D"), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
171
+ style: [styles.emptyTitle, {
172
+ color: theme.text
173
+ }]
174
+ }, "No State Stores Registered"), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
175
+ style: [styles.emptyDesc, {
176
+ color: theme.textMuted
177
+ }]
178
+ }, "Register your stores using:", '\n\n', /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
179
+ style: {
180
+ fontFamily: 'monospace',
181
+ color: theme.codeText
182
+ }
183
+ }, 'setStateAdapter("redux", {\n name: "Redux Store",\n getState: () => store.getState(),\n subscribe: (cb) => store.subscribe(cb)\n})')));
184
+ }
185
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
186
+ style: styles.container
187
+ }, storeIds.length > 1 && /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
188
+ horizontal: true,
189
+ showsHorizontalScrollIndicator: false,
190
+ style: [styles.storeBar, {
191
+ backgroundColor: theme.surface
192
+ }],
193
+ contentContainerStyle: styles.storeBarContent
194
+ }, storeIds.map(id => {
195
+ const adapter = adapters.get(id);
196
+ return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
197
+ key: id,
198
+ style: [styles.storeChip, {
199
+ backgroundColor: id === activeStoreId ? theme.accent : theme.surfaceAlt,
200
+ borderColor: theme.border
201
+ }],
202
+ onPress: () => setActiveStore(id),
203
+ activeOpacity: 0.7
204
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
205
+ style: [styles.storeChipText, {
206
+ color: id === activeStoreId ? '#FFF' : theme.textSecondary
207
+ }]
208
+ }, adapter?.name || id));
209
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
210
+ style: [styles.actionBar, {
211
+ backgroundColor: theme.surface,
212
+ borderBottomColor: theme.border
213
+ }]
214
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
215
+ style: [styles.storeName, {
216
+ color: theme.text
217
+ }]
218
+ }, activeAdapter?.name || activeStoreId), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
219
+ style: styles.actionButtons
220
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
221
+ onPress: handleRefresh,
222
+ activeOpacity: 0.7,
223
+ style: styles.actionBtn
224
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
225
+ style: [styles.actionBtnText, {
226
+ color: theme.accent
227
+ }]
228
+ }, "\u21BB Refresh")), activeStoreId && /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
229
+ onPress: () => handleCopyState(activeStoreId),
230
+ activeOpacity: 0.7,
231
+ style: styles.actionBtn
232
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
233
+ style: [styles.actionBtnText, {
234
+ color: theme.accent
235
+ }]
236
+ }, "Copy")))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
237
+ style: [styles.searchContainer, {
238
+ backgroundColor: theme.surface
239
+ }]
240
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
241
+ style: [styles.searchInput, {
242
+ color: theme.text,
243
+ backgroundColor: theme.surfaceAlt,
244
+ borderColor: theme.border
245
+ }],
246
+ placeholder: "Search keys...",
247
+ placeholderTextColor: theme.textMuted,
248
+ value: searchQuery,
249
+ onChangeText: setSearchQuery,
250
+ autoCapitalize: "none"
251
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
252
+ style: styles.treeContainer
253
+ }, activeState && typeof activeState === 'object' ? Object.entries(activeState).map(([key, val]) => /*#__PURE__*/_react.default.createElement(JsonNode, {
254
+ key: key,
255
+ keyName: key,
256
+ value: val,
257
+ depth: 0,
258
+ theme: theme,
259
+ searchQuery: searchQuery
260
+ })) : /*#__PURE__*/_react.default.createElement(_reactNative.View, {
261
+ style: {
262
+ padding: 12
263
+ }
264
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
265
+ style: [styles.nodeValue, {
266
+ color: theme.text
267
+ }]
268
+ }, (0, _utils.safeStringify)(activeState)))));
269
+ };
270
+ const styles = _reactNative.StyleSheet.create({
271
+ container: {
272
+ flex: 1
273
+ },
274
+ emptyContainer: {
275
+ flex: 1,
276
+ alignItems: 'center',
277
+ justifyContent: 'center',
278
+ paddingHorizontal: 32
279
+ },
280
+ emptyIcon: {
281
+ fontSize: 48,
282
+ marginBottom: 16
283
+ },
284
+ emptyTitle: {
285
+ fontSize: 16,
286
+ fontWeight: '700',
287
+ marginBottom: 8
288
+ },
289
+ emptyDesc: {
290
+ fontSize: 13,
291
+ textAlign: 'center',
292
+ lineHeight: 20
293
+ },
294
+ storeBar: {
295
+ maxHeight: 44
296
+ },
297
+ storeBarContent: {
298
+ paddingHorizontal: 12,
299
+ paddingVertical: 8,
300
+ gap: 6
301
+ },
302
+ storeChip: {
303
+ paddingHorizontal: 12,
304
+ paddingVertical: 4,
305
+ borderRadius: 12,
306
+ borderWidth: 1
307
+ },
308
+ storeChipText: {
309
+ fontSize: 12,
310
+ fontWeight: '600'
311
+ },
312
+ actionBar: {
313
+ flexDirection: 'row',
314
+ justifyContent: 'space-between',
315
+ alignItems: 'center',
316
+ paddingHorizontal: 12,
317
+ paddingVertical: 8,
318
+ borderBottomWidth: _reactNative.StyleSheet.hairlineWidth
319
+ },
320
+ storeName: {
321
+ fontSize: 14,
322
+ fontWeight: '700'
323
+ },
324
+ actionButtons: {
325
+ flexDirection: 'row',
326
+ gap: 12
327
+ },
328
+ actionBtn: {},
329
+ actionBtnText: {
330
+ fontSize: 12,
331
+ fontWeight: '600'
332
+ },
333
+ searchContainer: {
334
+ paddingHorizontal: 12,
335
+ paddingVertical: 8
336
+ },
337
+ searchInput: {
338
+ height: 36,
339
+ borderRadius: 8,
340
+ paddingHorizontal: 12,
341
+ fontSize: 13,
342
+ borderWidth: 1
343
+ },
344
+ treeContainer: {
345
+ flex: 1
346
+ },
347
+ nodeRow: {
348
+ flexDirection: 'row',
349
+ alignItems: 'center',
350
+ paddingVertical: 4,
351
+ paddingRight: 12
352
+ },
353
+ nodeExpander: {
354
+ fontSize: 10
355
+ },
356
+ nodeKey: {
357
+ fontSize: 12,
358
+ fontWeight: '600'
359
+ },
360
+ nodeType: {
361
+ fontSize: 10,
362
+ fontStyle: 'italic'
363
+ },
364
+ nodeValue: {
365
+ fontSize: 12,
366
+ flex: 1
367
+ }
368
+ });
369
+ function createStateInspectorPlugin() {
370
+ return {
371
+ id: 'state-inspector',
372
+ name: 'State',
373
+ icon: '🔍',
374
+ component: StateInspectorPanel,
375
+ order: 30
376
+ };
377
+ }
378
+ //# sourceMappingURL=StateInspectorPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_stateAdapterRegistry","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","JsonNode","React","memo","keyName","value","depth","theme","searchQuery","expanded","setExpanded","useState","isObject","isArray","Array","entries","typeLabel","length","matchesSearch","toLowerCase","includes","valueDisplay","useMemo","undefined","String","slice","valueColor","textMuted","accent","success","warning","text","createElement","TouchableOpacity","style","styles","nodeRow","paddingLeft","onLongPress","copyToClipboard","safeStringify","activeOpacity","Text","nodeKey","color","info","nodeValue","View","onPress","nodeExpander","nodeType","map","key","val","StateInspectorPanel","adapters","setAdapters","Map","states","setStates","activeStore","setActiveStore","setSearchQuery","forceUpdate","useEffect","unsubscribe","stateAdapterRegistry","subscribe","getAll","unsubscribers","refreshStates","newStates","id","adapter","getState","error","unsub","prev","next","push","forEach","u","handleRefresh","useCallback","handleCopyState","storeId","state","storeIds","from","keys","activeStoreId","activeState","activeAdapter","emptyContainer","emptyIcon","emptyTitle","emptyDesc","fontFamily","codeText","container","ScrollView","horizontal","showsHorizontalScrollIndicator","storeBar","backgroundColor","surface","contentContainerStyle","storeBarContent","storeChip","surfaceAlt","borderColor","border","storeChipText","textSecondary","name","actionBar","borderBottomColor","storeName","actionButtons","actionBtn","actionBtnText","searchContainer","TextInput","searchInput","placeholder","placeholderTextColor","onChangeText","autoCapitalize","treeContainer","padding","StyleSheet","create","flex","alignItems","justifyContent","paddingHorizontal","fontSize","marginBottom","fontWeight","textAlign","lineHeight","maxHeight","paddingVertical","gap","borderRadius","borderWidth","flexDirection","borderBottomWidth","hairlineWidth","height","paddingRight","fontStyle","createStateInspectorPlugin","icon","component","order"],"sourceRoot":"../../../../src","sources":["plugins/stateInspector/StateInspectorPlugin.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.removeStateAdapter = removeStateAdapter;
7
+ exports.setStateAdapter = setStateAdapter;
8
+ exports.stateAdapterRegistry = void 0;
9
+ /**
10
+ * State Adapter Registry — Allows consumers to register their state stores.
11
+ *
12
+ * Supports Redux, Zustand, MobX, or any custom state store via a simple adapter interface.
13
+ */
14
+
15
+ class StateAdapterRegistryClass {
16
+ adapters = new Map();
17
+ listeners = new Set();
18
+
19
+ /** Register a state adapter. */
20
+ set(id, adapter) {
21
+ this.adapters.set(id, adapter);
22
+ this.notify();
23
+ }
24
+
25
+ /** Remove a state adapter. */
26
+ remove(id) {
27
+ this.adapters.delete(id);
28
+ this.notify();
29
+ }
30
+
31
+ /** Get all registered adapters. */
32
+ getAll() {
33
+ return new Map(this.adapters);
34
+ }
35
+
36
+ /** Subscribe to adapter changes. */
37
+ subscribe(listener) {
38
+ this.listeners.add(listener);
39
+ return () => this.listeners.delete(listener);
40
+ }
41
+ notify() {
42
+ for (const listener of this.listeners) {
43
+ try {
44
+ listener();
45
+ } catch {
46
+ /* ignore */
47
+ }
48
+ }
49
+ }
50
+ }
51
+ const stateAdapterRegistry = exports.stateAdapterRegistry = new StateAdapterRegistryClass();
52
+
53
+ /** Register a state store adapter. */
54
+ function setStateAdapter(id, adapter) {
55
+ stateAdapterRegistry.set(id, adapter);
56
+ }
57
+
58
+ /** Remove a state store adapter. */
59
+ function removeStateAdapter(id) {
60
+ stateAdapterRegistry.remove(id);
61
+ }
62
+ //# sourceMappingURL=stateAdapterRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StateAdapterRegistryClass","adapters","Map","listeners","Set","set","id","adapter","notify","remove","delete","getAll","subscribe","listener","add","stateAdapterRegistry","exports","setStateAdapter","removeStateAdapter"],"sourceRoot":"../../../../src","sources":["plugins/stateInspector/stateAdapterRegistry.ts"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;;AAaA,MAAMA,yBAAyB,CAAC;EACtBC,QAAQ,GAA8B,IAAIC,GAAG,CAAC,CAAC;EAC/CC,SAAS,GAAyB,IAAIC,GAAG,CAAC,CAAC;;EAEnD;EACAC,GAAGA,CAACC,EAAU,EAAEC,OAAqB,EAAQ;IAC3C,IAAI,CAACN,QAAQ,CAACI,GAAG,CAACC,EAAE,EAAEC,OAAO,CAAC;IAC9B,IAAI,CAACC,MAAM,CAAC,CAAC;EACf;;EAEA;EACAC,MAAMA,CAACH,EAAU,EAAQ;IACvB,IAAI,CAACL,QAAQ,CAACS,MAAM,CAACJ,EAAE,CAAC;IACxB,IAAI,CAACE,MAAM,CAAC,CAAC;EACf;;EAEA;EACAG,MAAMA,CAAA,EAA8B;IAClC,OAAO,IAAIT,GAAG,CAAC,IAAI,CAACD,QAAQ,CAAC;EAC/B;;EAEA;EACAW,SAASA,CAACC,QAAyB,EAAc;IAC/C,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,MAAMK,QAAQ,IAAI,IAAI,CAACV,SAAS,EAAE;MACrC,IAAI;QACFU,QAAQ,CAAC,CAAC;MACZ,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ;EACF;AACF;AAEO,MAAME,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,IAAIf,yBAAyB,CAAC,CAAC;;AAEnE;AACO,SAASiB,eAAeA,CAACX,EAAU,EAAEC,OAAqB,EAAQ;EACvEQ,oBAAoB,CAACV,GAAG,CAACC,EAAE,EAAEC,OAAO,CAAC;AACvC;;AAEA;AACO,SAASW,kBAAkBA,CAACZ,EAAU,EAAQ;EACnDS,oBAAoB,CAACN,MAAM,CAACH,EAAE,CAAC;AACjC","ignoreList":[]}