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,294 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createTimelinePlugin = createTimelinePlugin;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _timelineStore = require("./timelineStore");
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 CATEGORY_COLORS = {
13
+ navigation: '#5B8DEF',
14
+ network: '#FF9500',
15
+ state: '#AF52DE',
16
+ user: '#34C759',
17
+ lifecycle: '#FF3B30',
18
+ custom: '#8E8E93'
19
+ };
20
+ const TimelinePanel = ({
21
+ theme
22
+ }) => {
23
+ const [events, setEvents] = (0, _react.useState)([]);
24
+ const [searchQuery, setSearchQuery] = (0, _react.useState)('');
25
+ const [categoryFilter, setCategoryFilter] = (0, _react.useState)(null);
26
+ const [expandedId, setExpandedId] = (0, _react.useState)(null);
27
+ (0, _react.useEffect)(() => {
28
+ const unsub = _timelineStore.timelineStore.subscribe(setEvents);
29
+ return unsub;
30
+ }, []);
31
+ const categories = (0, _react.useMemo)(() => {
32
+ const cats = new Set();
33
+ for (const e of events) cats.add(e.category);
34
+ return Array.from(cats);
35
+ }, [events]);
36
+ const filteredEvents = (0, _react.useMemo)(() => {
37
+ let filtered = events;
38
+ if (categoryFilter) {
39
+ filtered = filtered.filter(e => e.category === categoryFilter);
40
+ }
41
+ if (searchQuery) {
42
+ const q = searchQuery.toLowerCase();
43
+ filtered = filtered.filter(e => e.title.toLowerCase().includes(q) || e.category.toLowerCase().includes(q));
44
+ }
45
+ return filtered;
46
+ }, [events, categoryFilter, searchQuery]);
47
+ const handleClear = (0, _react.useCallback)(() => {
48
+ _timelineStore.timelineStore.clear();
49
+ setExpandedId(null);
50
+ }, []);
51
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
52
+ style: styles.container
53
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
54
+ horizontal: true,
55
+ showsHorizontalScrollIndicator: false,
56
+ style: [styles.filterBar, {
57
+ backgroundColor: theme.surface
58
+ }],
59
+ contentContainerStyle: styles.filterContent
60
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
61
+ style: [styles.filterChip, {
62
+ backgroundColor: !categoryFilter ? theme.accent : theme.surfaceAlt,
63
+ borderColor: theme.border
64
+ }],
65
+ onPress: () => setCategoryFilter(null),
66
+ activeOpacity: 0.7
67
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
68
+ style: [styles.filterText, {
69
+ color: !categoryFilter ? '#FFF' : theme.textSecondary
70
+ }]
71
+ }, "All (", events.length, ")")), categories.map(cat => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
72
+ key: cat,
73
+ style: [styles.filterChip, {
74
+ backgroundColor: categoryFilter === cat ? CATEGORY_COLORS[cat] || theme.accent : theme.surfaceAlt,
75
+ borderColor: theme.border
76
+ }],
77
+ onPress: () => setCategoryFilter(categoryFilter === cat ? null : cat),
78
+ activeOpacity: 0.7
79
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
80
+ style: [styles.filterText, {
81
+ color: categoryFilter === cat ? '#FFF' : CATEGORY_COLORS[cat] || theme.textSecondary
82
+ }]
83
+ }, cat))), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
84
+ onPress: handleClear,
85
+ style: [styles.filterChip, {
86
+ backgroundColor: theme.surfaceAlt,
87
+ borderColor: theme.error
88
+ }],
89
+ activeOpacity: 0.7
90
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
91
+ style: [styles.filterText, {
92
+ color: theme.error
93
+ }]
94
+ }, "Clear"))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
95
+ style: [styles.searchContainer, {
96
+ backgroundColor: theme.surface
97
+ }]
98
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
99
+ style: [styles.searchInput, {
100
+ color: theme.text,
101
+ backgroundColor: theme.surfaceAlt,
102
+ borderColor: theme.border
103
+ }],
104
+ placeholder: "Search events...",
105
+ placeholderTextColor: theme.textMuted,
106
+ value: searchQuery,
107
+ onChangeText: setSearchQuery,
108
+ autoCapitalize: "none"
109
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, {
110
+ data: filteredEvents,
111
+ keyExtractor: item => item.id,
112
+ renderItem: ({
113
+ item,
114
+ index
115
+ }) => {
116
+ const catColor = CATEGORY_COLORS[item.category] || theme.textMuted;
117
+ const timeDiff = index < filteredEvents.length - 1 ? item.timestamp - filteredEvents[index + 1].timestamp : 0;
118
+ return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
119
+ style: [styles.eventRow, {
120
+ borderBottomColor: theme.border
121
+ }],
122
+ onPress: () => setExpandedId(expandedId === item.id ? null : item.id),
123
+ activeOpacity: 0.7
124
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
125
+ style: styles.timelineTrack
126
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
127
+ style: [styles.timelineDot, {
128
+ backgroundColor: catColor
129
+ }]
130
+ }), index < filteredEvents.length - 1 && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
131
+ style: [styles.timelineLine, {
132
+ backgroundColor: theme.border
133
+ }]
134
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
135
+ style: styles.eventContent
136
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
137
+ style: styles.eventHeader
138
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
139
+ style: [styles.catBadge, {
140
+ backgroundColor: `${catColor}20`
141
+ }]
142
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
143
+ style: [styles.catText, {
144
+ color: catColor
145
+ }]
146
+ }, item.category)), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
147
+ style: [styles.eventTime, {
148
+ color: theme.textMuted
149
+ }]
150
+ }, (0, _utils.formatTimestamp)(item.timestamp))), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
151
+ style: [styles.eventTitle, {
152
+ color: theme.text
153
+ }]
154
+ }, item.title), timeDiff > 0 && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
155
+ style: [styles.timeDiff, {
156
+ color: theme.textMuted
157
+ }]
158
+ }, "+", timeDiff >= 1000 ? `${(timeDiff / 1000).toFixed(1)}s` : `${timeDiff}ms`), expandedId === item.id && item.data !== undefined && item.data !== null && /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
159
+ style: [styles.dataBlock, {
160
+ backgroundColor: theme.codeBackground
161
+ }],
162
+ onLongPress: () => (0, _utils.copyToClipboard)((0, _utils.safeStringify)(item.data)),
163
+ activeOpacity: 0.7
164
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
165
+ style: [styles.dataText, {
166
+ color: theme.codeText
167
+ }],
168
+ selectable: true
169
+ }, String((0, _utils.safeStringify)(item.data))))));
170
+ },
171
+ ListEmptyComponent: /*#__PURE__*/_react.default.createElement(_reactNative.View, {
172
+ style: styles.emptyContainer
173
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
174
+ style: [styles.emptyText, {
175
+ color: theme.textMuted
176
+ }]
177
+ }, "No events logged")),
178
+ initialNumToRender: 30
179
+ }));
180
+ };
181
+ const styles = _reactNative.StyleSheet.create({
182
+ container: {
183
+ flex: 1
184
+ },
185
+ filterBar: {
186
+ maxHeight: 44
187
+ },
188
+ filterContent: {
189
+ paddingHorizontal: 12,
190
+ paddingVertical: 8,
191
+ gap: 6
192
+ },
193
+ filterChip: {
194
+ paddingHorizontal: 10,
195
+ paddingVertical: 4,
196
+ borderRadius: 12,
197
+ borderWidth: 1
198
+ },
199
+ filterText: {
200
+ fontSize: 11,
201
+ fontWeight: '600'
202
+ },
203
+ searchContainer: {
204
+ paddingHorizontal: 12,
205
+ paddingBottom: 8
206
+ },
207
+ searchInput: {
208
+ height: 36,
209
+ borderRadius: 8,
210
+ paddingHorizontal: 12,
211
+ fontSize: 13,
212
+ borderWidth: 1
213
+ },
214
+ eventRow: {
215
+ flexDirection: 'row',
216
+ borderBottomWidth: _reactNative.StyleSheet.hairlineWidth
217
+ },
218
+ timelineTrack: {
219
+ width: 30,
220
+ alignItems: 'center',
221
+ paddingTop: 14
222
+ },
223
+ timelineDot: {
224
+ width: 10,
225
+ height: 10,
226
+ borderRadius: 5,
227
+ zIndex: 1
228
+ },
229
+ timelineLine: {
230
+ width: 2,
231
+ flex: 1,
232
+ marginTop: -2
233
+ },
234
+ eventContent: {
235
+ flex: 1,
236
+ paddingVertical: 10,
237
+ paddingRight: 12
238
+ },
239
+ eventHeader: {
240
+ flexDirection: 'row',
241
+ justifyContent: 'space-between',
242
+ alignItems: 'center',
243
+ marginBottom: 4
244
+ },
245
+ catBadge: {
246
+ paddingHorizontal: 6,
247
+ paddingVertical: 2,
248
+ borderRadius: 4
249
+ },
250
+ catText: {
251
+ fontSize: 9,
252
+ fontWeight: '800',
253
+ textTransform: 'uppercase',
254
+ letterSpacing: 0.5
255
+ },
256
+ eventTime: {
257
+ fontSize: 10
258
+ },
259
+ eventTitle: {
260
+ fontSize: 13,
261
+ fontWeight: '500'
262
+ },
263
+ timeDiff: {
264
+ fontSize: 10,
265
+ marginTop: 2
266
+ },
267
+ dataBlock: {
268
+ padding: 8,
269
+ borderRadius: 6,
270
+ marginTop: 8
271
+ },
272
+ dataText: {
273
+ fontSize: 11,
274
+ fontFamily: 'monospace',
275
+ lineHeight: 16
276
+ },
277
+ emptyContainer: {
278
+ alignItems: 'center',
279
+ paddingVertical: 40
280
+ },
281
+ emptyText: {
282
+ fontSize: 13
283
+ }
284
+ });
285
+ function createTimelinePlugin() {
286
+ return {
287
+ id: 'timeline',
288
+ name: 'Timeline',
289
+ icon: '📊',
290
+ component: TimelinePanel,
291
+ order: 130
292
+ };
293
+ }
294
+ //# sourceMappingURL=TimelinePlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_timelineStore","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","CATEGORY_COLORS","navigation","network","state","user","lifecycle","custom","TimelinePanel","theme","events","setEvents","useState","searchQuery","setSearchQuery","categoryFilter","setCategoryFilter","expandedId","setExpandedId","useEffect","unsub","timelineStore","subscribe","categories","useMemo","cats","Set","add","category","Array","from","filteredEvents","filtered","filter","q","toLowerCase","title","includes","handleClear","useCallback","clear","createElement","View","style","styles","container","ScrollView","horizontal","showsHorizontalScrollIndicator","filterBar","backgroundColor","surface","contentContainerStyle","filterContent","TouchableOpacity","filterChip","accent","surfaceAlt","borderColor","border","onPress","activeOpacity","Text","filterText","color","textSecondary","length","map","cat","key","error","searchContainer","TextInput","searchInput","text","placeholder","placeholderTextColor","textMuted","value","onChangeText","autoCapitalize","FlatList","data","keyExtractor","item","id","renderItem","index","catColor","timeDiff","timestamp","eventRow","borderBottomColor","timelineTrack","timelineDot","timelineLine","eventContent","eventHeader","catBadge","catText","eventTime","formatTimestamp","eventTitle","toFixed","undefined","dataBlock","codeBackground","onLongPress","copyToClipboard","safeStringify","dataText","codeText","selectable","String","ListEmptyComponent","emptyContainer","emptyText","initialNumToRender","StyleSheet","create","flex","maxHeight","paddingHorizontal","paddingVertical","gap","borderRadius","borderWidth","fontSize","fontWeight","paddingBottom","height","flexDirection","borderBottomWidth","hairlineWidth","width","alignItems","paddingTop","zIndex","marginTop","paddingRight","justifyContent","marginBottom","textTransform","letterSpacing","padding","fontFamily","lineHeight","createTimelinePlugin","name","icon","component","order"],"sourceRoot":"../../../../src","sources":["plugins/timeline/TimelinePlugin.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.logTimelineEvent = logTimelineEvent;
7
+ exports.timelineStore = void 0;
8
+ var _utils = require("../../core/utils");
9
+ /**
10
+ * TimelineStore — Global event logger for tracking app lifecycle events.
11
+ *
12
+ * Records events with category, timestamp, and optional data.
13
+ * Useful for tracking user flows, state transitions, and debugging sequences.
14
+ */
15
+ class TimelineStoreClass {
16
+ events = [];
17
+ listeners = new Set();
18
+ maxEvents = 500;
19
+
20
+ /** Log a timeline event. */
21
+ log(category, title, data) {
22
+ const event = {
23
+ id: (0, _utils.generateId)(),
24
+ timestamp: Date.now(),
25
+ category,
26
+ title,
27
+ data
28
+ };
29
+ this.events = [event, ...this.events].slice(0, this.maxEvents);
30
+ this.notify();
31
+ }
32
+ getAll() {
33
+ return [...this.events];
34
+ }
35
+ clear() {
36
+ this.events = [];
37
+ this.notify();
38
+ }
39
+ subscribe(listener) {
40
+ this.listeners.add(listener);
41
+ listener(this.events);
42
+ return () => this.listeners.delete(listener);
43
+ }
44
+ notify() {
45
+ const snapshot = this.events;
46
+ for (const l of this.listeners) {
47
+ try {
48
+ l(snapshot);
49
+ } catch {
50
+ /* ignore */
51
+ }
52
+ }
53
+ }
54
+ }
55
+ const timelineStore = exports.timelineStore = new TimelineStoreClass();
56
+
57
+ /** Log a timeline event. */
58
+ function logTimelineEvent(category, title, data) {
59
+ timelineStore.log(category, title, data);
60
+ }
61
+ //# sourceMappingURL=timelineStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_utils","require","TimelineStoreClass","events","listeners","Set","maxEvents","log","category","title","data","event","id","generateId","timestamp","Date","now","slice","notify","getAll","clear","subscribe","listener","add","delete","snapshot","l","timelineStore","exports","logTimelineEvent"],"sourceRoot":"../../../../src","sources":["plugins/timeline/timelineStore.ts"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,CAAC;EACfC,MAAM,GAAoB,EAAE;EAC5BC,SAAS,GAA0B,IAAIC,GAAG,CAAC,CAAC;EAC5CC,SAAS,GAAG,GAAG;;EAEvB;EACAC,GAAGA,CAACC,QAAmC,EAAEC,KAAa,EAAEC,IAAc,EAAQ;IAC5E,MAAMC,KAAoB,GAAG;MAC3BC,EAAE,EAAE,IAAAC,iBAAU,EAAC,CAAC;MAChBC,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC;MACrBR,QAAQ;MACRC,KAAK;MACLC;IACF,CAAC;IACD,IAAI,CAACP,MAAM,GAAG,CAACQ,KAAK,EAAE,GAAG,IAAI,CAACR,MAAM,CAAC,CAACc,KAAK,CAAC,CAAC,EAAE,IAAI,CAACX,SAAS,CAAC;IAC9D,IAAI,CAACY,MAAM,CAAC,CAAC;EACf;EAEAC,MAAMA,CAAA,EAAoB;IACxB,OAAO,CAAC,GAAG,IAAI,CAAChB,MAAM,CAAC;EACzB;EACAiB,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACjB,MAAM,GAAG,EAAE;IAChB,IAAI,CAACe,MAAM,CAAC,CAAC;EACf;EAEAG,SAASA,CAACC,QAA0B,EAAc;IAChD,IAAI,CAAClB,SAAS,CAACmB,GAAG,CAACD,QAAQ,CAAC;IAC5BA,QAAQ,CAAC,IAAI,CAACnB,MAAM,CAAC;IACrB,OAAO,MAAM,IAAI,CAACC,SAAS,CAACoB,MAAM,CAACF,QAAQ,CAAC;EAC9C;EAEQJ,MAAMA,CAAA,EAAS;IACrB,MAAMO,QAAQ,GAAG,IAAI,CAACtB,MAAM;IAC5B,KAAK,MAAMuB,CAAC,IAAI,IAAI,CAACtB,SAAS,EAAE;MAC9B,IAAI;QACFsB,CAAC,CAACD,QAAQ,CAAC;MACb,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ;EACF;AACF;AAEO,MAAME,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,IAAIzB,kBAAkB,CAAC,CAAC;;AAErD;AACO,SAAS2B,gBAAgBA,CAC9BrB,QAAmC,EACnCC,KAAa,EACbC,IAAc,EACR;EACNiB,aAAa,CAACpB,GAAG,CAACC,QAAQ,EAAEC,KAAK,EAAEC,IAAI,CAAC;AAC1C","ignoreList":[]}
@@ -0,0 +1,131 @@
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
+ import React, { useRef, useMemo } from 'react';
3
+ import { Animated, PanResponder, TouchableOpacity, StyleSheet, Dimensions, Text, View } from 'react-native';
4
+ const SCREEN = Dimensions.get('window');
5
+
6
+ /**
7
+ * DebugBubble — A floating, draggable FAB that opens the debug overlay.
8
+ *
9
+ * - Fully draggable via PanResponder
10
+ * - Snaps to the nearest screen edge on release
11
+ * - Pulses subtly to indicate interactivity
12
+ * - Renders above all other content
13
+ */
14
+ export const DebugBubble = ({
15
+ onPress,
16
+ theme,
17
+ size = 50,
18
+ initialPosition
19
+ }) => {
20
+ const defaultPos = initialPosition ?? {
21
+ x: SCREEN.width - size - 16,
22
+ y: SCREEN.height * 0.7
23
+ };
24
+ const pan = useRef(new Animated.ValueXY(defaultPos)).current;
25
+ const scale = useRef(new Animated.Value(1)).current;
26
+ const panResponder = useMemo(() => PanResponder.create({
27
+ onStartShouldSetPanResponder: () => true,
28
+ onMoveShouldSetPanResponder: (_, gesture) => {
29
+ // Only claim the gesture if the user has dragged more than 5px
30
+ return Math.abs(gesture.dx) > 5 || Math.abs(gesture.dy) > 5;
31
+ },
32
+ onPanResponderGrant: () => {
33
+ // Flatten offset into the value so extractOffset works correctly
34
+ pan.extractOffset();
35
+ Animated.spring(scale, {
36
+ toValue: 1.15,
37
+ useNativeDriver: true,
38
+ friction: 5
39
+ }).start();
40
+ },
41
+ onPanResponderMove: Animated.event([null, {
42
+ dx: pan.x,
43
+ dy: pan.y
44
+ }], {
45
+ useNativeDriver: false
46
+ }),
47
+ onPanResponderRelease: (_, gesture) => {
48
+ pan.flattenOffset();
49
+ Animated.spring(scale, {
50
+ toValue: 1,
51
+ useNativeDriver: true,
52
+ friction: 5
53
+ }).start();
54
+
55
+ // Snap to nearest horizontal edge
56
+ const finalX = gesture.moveX > SCREEN.width / 2 ? SCREEN.width - size - 8 : 8;
57
+
58
+ // Clamp vertical position
59
+ const finalY = Math.max(50, Math.min(gesture.moveY - size / 2, SCREEN.height - size - 50));
60
+ Animated.spring(pan, {
61
+ toValue: {
62
+ x: finalX,
63
+ y: finalY
64
+ },
65
+ useNativeDriver: false,
66
+ friction: 7,
67
+ tension: 40
68
+ }).start();
69
+
70
+ // If the user barely moved, treat it as a tap
71
+ if (Math.abs(gesture.dx) < 10 && Math.abs(gesture.dy) < 10) {
72
+ onPress();
73
+ }
74
+ }
75
+ }), [pan, scale, size, onPress]);
76
+ return /*#__PURE__*/React.createElement(Animated.View, _extends({
77
+ style: [styles.container, {
78
+ width: size,
79
+ height: size,
80
+ borderRadius: size / 2,
81
+ backgroundColor: theme.bubbleBackground,
82
+ transform: [{
83
+ translateX: pan.x
84
+ }, {
85
+ translateY: pan.y
86
+ }, {
87
+ scale
88
+ }],
89
+ shadowColor: theme.shadow
90
+ }]
91
+ }, panResponder.panHandlers), /*#__PURE__*/React.createElement(TouchableOpacity, {
92
+ activeOpacity: 0.8,
93
+ style: [styles.inner, {
94
+ width: size,
95
+ height: size,
96
+ borderRadius: size / 2
97
+ }],
98
+ onPress: onPress
99
+ }, /*#__PURE__*/React.createElement(View, {
100
+ style: styles.iconContainer
101
+ }, /*#__PURE__*/React.createElement(Text, {
102
+ style: [styles.icon, {
103
+ fontSize: size * 0.45
104
+ }]
105
+ }, "\uD83D\uDC1B"))));
106
+ };
107
+ const styles = StyleSheet.create({
108
+ container: {
109
+ position: 'absolute',
110
+ zIndex: 99999,
111
+ elevation: 99999,
112
+ shadowOffset: {
113
+ width: 0,
114
+ height: 4
115
+ },
116
+ shadowOpacity: 0.3,
117
+ shadowRadius: 8
118
+ },
119
+ inner: {
120
+ alignItems: 'center',
121
+ justifyContent: 'center'
122
+ },
123
+ iconContainer: {
124
+ alignItems: 'center',
125
+ justifyContent: 'center'
126
+ },
127
+ icon: {
128
+ textAlign: 'center'
129
+ }
130
+ });
131
+ //# sourceMappingURL=DebugBubble.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useRef","useMemo","Animated","PanResponder","TouchableOpacity","StyleSheet","Dimensions","Text","View","SCREEN","get","DebugBubble","onPress","theme","size","initialPosition","defaultPos","x","width","y","height","pan","ValueXY","current","scale","Value","panResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","_","gesture","Math","abs","dx","dy","onPanResponderGrant","extractOffset","spring","toValue","useNativeDriver","friction","start","onPanResponderMove","event","onPanResponderRelease","flattenOffset","finalX","moveX","finalY","max","min","moveY","tension","createElement","_extends","style","styles","container","borderRadius","backgroundColor","bubbleBackground","transform","translateX","translateY","shadowColor","shadow","panHandlers","activeOpacity","inner","iconContainer","icon","fontSize","position","zIndex","elevation","shadowOffset","shadowOpacity","shadowRadius","alignItems","justifyContent","textAlign"],"sourceRoot":"../../../src","sources":["core/DebugBubble.tsx"],"mappings":"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","ignoreList":[]}