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,184 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createDeviceInfoPlugin = createDeviceInfoPlugin;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _utils = require("../../core/utils");
10
+ 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); }
11
+ const SCREEN = _reactNative.Dimensions.get('window');
12
+ const DeviceInfoPanel = ({
13
+ theme
14
+ }) => {
15
+ const info = (0, _react.useMemo)(() => {
16
+ const items = [];
17
+
18
+ // Platform
19
+ items.push({
20
+ label: 'Platform',
21
+ value: _reactNative.Platform.OS,
22
+ group: 'Platform'
23
+ });
24
+ items.push({
25
+ label: 'OS Version',
26
+ value: String(_reactNative.Platform.Version),
27
+ group: 'Platform'
28
+ });
29
+ items.push({
30
+ label: 'Hermes',
31
+ value: typeof HermesInternal !== 'undefined' ? '✅ Enabled' : '❌ Disabled',
32
+ group: 'Platform'
33
+ });
34
+ items.push({
35
+ label: '__DEV__',
36
+ value: typeof __DEV__ !== 'undefined' && __DEV__ ? 'true' : 'false',
37
+ group: 'Platform'
38
+ });
39
+
40
+ // Screen
41
+ items.push({
42
+ label: 'Screen',
43
+ value: `${SCREEN.width} × ${SCREEN.height}`,
44
+ group: 'Display'
45
+ });
46
+ items.push({
47
+ label: 'Scale',
48
+ value: String(_reactNative.Dimensions.get('window').scale ?? 'N/A'),
49
+ group: 'Display'
50
+ });
51
+ items.push({
52
+ label: 'Font Scale',
53
+ value: String(_reactNative.Dimensions.get('window').fontScale ?? 'N/A'),
54
+ group: 'Display'
55
+ });
56
+
57
+ // Runtime
58
+ items.push({
59
+ label: 'Locale',
60
+ value: _reactNative.Platform.OS === 'ios' ? _reactNative.Platform.locale || 'Unknown' : 'Check via library',
61
+ group: 'Runtime'
62
+ });
63
+ return items;
64
+ }, []);
65
+ const handleCopyAll = (0, _react.useCallback)(() => {
66
+ const text = info.map(i => `${i.label}: ${i.value}`).join('\n');
67
+ (0, _utils.copyToClipboard)(text);
68
+ }, [info]);
69
+ const groups = (0, _react.useMemo)(() => {
70
+ const groupMap = new Map();
71
+ for (const item of info) {
72
+ const group = groupMap.get(item.group) || [];
73
+ group.push(item);
74
+ groupMap.set(item.group, group);
75
+ }
76
+ return groupMap;
77
+ }, [info]);
78
+ return /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
79
+ style: styles.container
80
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
81
+ style: [styles.header, {
82
+ backgroundColor: theme.surface
83
+ }]
84
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
85
+ style: [styles.headerTitle, {
86
+ color: theme.text
87
+ }]
88
+ }, "\uD83D\uDCF1 Device Info"), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
89
+ onPress: handleCopyAll,
90
+ activeOpacity: 0.7
91
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
92
+ style: [styles.copyAllBtn, {
93
+ color: theme.accent
94
+ }]
95
+ }, "Copy All"))), Array.from(groups.entries()).map(([groupName, items]) => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
96
+ key: groupName,
97
+ style: [styles.group, {
98
+ backgroundColor: theme.surface
99
+ }]
100
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
101
+ style: [styles.groupTitle, {
102
+ color: theme.textSecondary
103
+ }]
104
+ }, groupName), items.map(item => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
105
+ key: item.label,
106
+ style: [styles.infoRow, {
107
+ borderBottomColor: theme.border
108
+ }],
109
+ onLongPress: () => (0, _utils.copyToClipboard)(item.value),
110
+ activeOpacity: 0.7
111
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
112
+ style: [styles.infoLabel, {
113
+ color: theme.textSecondary
114
+ }]
115
+ }, item.label), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
116
+ style: [styles.infoValue, {
117
+ color: theme.text
118
+ }],
119
+ selectable: true
120
+ }, item.value))))));
121
+ };
122
+ const styles = _reactNative.StyleSheet.create({
123
+ container: {
124
+ flex: 1
125
+ },
126
+ header: {
127
+ flexDirection: 'row',
128
+ justifyContent: 'space-between',
129
+ alignItems: 'center',
130
+ paddingHorizontal: 12,
131
+ paddingVertical: 12
132
+ },
133
+ headerTitle: {
134
+ fontSize: 16,
135
+ fontWeight: '700'
136
+ },
137
+ copyAllBtn: {
138
+ fontSize: 13,
139
+ fontWeight: '600'
140
+ },
141
+ group: {
142
+ marginHorizontal: 12,
143
+ marginBottom: 12,
144
+ borderRadius: 12,
145
+ overflow: 'hidden'
146
+ },
147
+ groupTitle: {
148
+ fontSize: 12,
149
+ fontWeight: '700',
150
+ textTransform: 'uppercase',
151
+ letterSpacing: 1,
152
+ paddingHorizontal: 12,
153
+ paddingTop: 12,
154
+ paddingBottom: 4
155
+ },
156
+ infoRow: {
157
+ flexDirection: 'row',
158
+ justifyContent: 'space-between',
159
+ alignItems: 'center',
160
+ paddingHorizontal: 12,
161
+ paddingVertical: 10,
162
+ borderBottomWidth: _reactNative.StyleSheet.hairlineWidth
163
+ },
164
+ infoLabel: {
165
+ fontSize: 13,
166
+ flex: 1
167
+ },
168
+ infoValue: {
169
+ fontSize: 13,
170
+ fontWeight: '600',
171
+ flex: 1,
172
+ textAlign: 'right'
173
+ }
174
+ });
175
+ function createDeviceInfoPlugin() {
176
+ return {
177
+ id: 'device-info',
178
+ name: 'Device',
179
+ icon: '📱',
180
+ component: DeviceInfoPanel,
181
+ order: 80
182
+ };
183
+ }
184
+ //# sourceMappingURL=DeviceInfoPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SCREEN","Dimensions","DeviceInfoPanel","theme","info","useMemo","items","push","label","value","Platform","OS","group","String","Version","HermesInternal","__DEV__","width","height","scale","fontScale","locale","handleCopyAll","useCallback","text","map","join","copyToClipboard","groups","groupMap","Map","item","createElement","ScrollView","style","styles","container","View","header","backgroundColor","surface","Text","headerTitle","color","TouchableOpacity","onPress","activeOpacity","copyAllBtn","accent","Array","from","entries","groupName","key","groupTitle","textSecondary","infoRow","borderBottomColor","border","onLongPress","infoLabel","infoValue","selectable","StyleSheet","create","flex","flexDirection","justifyContent","alignItems","paddingHorizontal","paddingVertical","fontSize","fontWeight","marginHorizontal","marginBottom","borderRadius","overflow","textTransform","letterSpacing","paddingTop","paddingBottom","borderBottomWidth","hairlineWidth","textAlign","createDeviceInfoPlugin","id","name","icon","component","order"],"sourceRoot":"../../../../src","sources":["plugins/deviceInfo/DeviceInfoPlugin.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,381 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFeatureFlagsPlugin = createFeatureFlagsPlugin;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _flagStore = require("./flagStore");
10
+ 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); }
11
+ const FeatureFlagsPanel = ({
12
+ theme
13
+ }) => {
14
+ const [flags, setFlags] = (0, _react.useState)([]);
15
+ const [searchQuery, setSearchQuery] = (0, _react.useState)('');
16
+ const [groupFilter, setGroupFilter] = (0, _react.useState)(null);
17
+ const [editingFlag, setEditingFlag] = (0, _react.useState)(null);
18
+ const [editValue, setEditValue] = (0, _react.useState)('');
19
+ (0, _react.useEffect)(() => {
20
+ const unsubscribe = _flagStore.flagStore.subscribe(setFlags);
21
+ return unsubscribe;
22
+ }, []);
23
+ const groups = (0, _react.useMemo)(() => {
24
+ const groupSet = new Set();
25
+ for (const flag of flags) {
26
+ if (flag.group) groupSet.add(flag.group);
27
+ }
28
+ return Array.from(groupSet).sort();
29
+ }, [flags]);
30
+ const filteredFlags = (0, _react.useMemo)(() => {
31
+ let filtered = flags;
32
+ if (groupFilter) {
33
+ filtered = filtered.filter(f => f.group === groupFilter);
34
+ }
35
+ if (searchQuery) {
36
+ const q = searchQuery.toLowerCase();
37
+ filtered = filtered.filter(f => f.key.toLowerCase().includes(q) || f.label?.toLowerCase().includes(q) || f.description?.toLowerCase().includes(q));
38
+ }
39
+ return filtered;
40
+ }, [flags, searchQuery, groupFilter]);
41
+ const handleToggle = (0, _react.useCallback)((key, currentValue) => {
42
+ _flagStore.flagStore.override(key, !currentValue);
43
+ }, []);
44
+ const handleSaveEdit = (0, _react.useCallback)(flag => {
45
+ let parsed = editValue;
46
+ if (flag.type === 'number') {
47
+ parsed = Number(editValue);
48
+ if (isNaN(parsed)) return;
49
+ } else if (flag.type === 'json') {
50
+ try {
51
+ parsed = JSON.parse(editValue);
52
+ } catch {
53
+ return;
54
+ }
55
+ }
56
+ _flagStore.flagStore.override(flag.key, parsed);
57
+ setEditingFlag(null);
58
+ }, [editValue]);
59
+ const handleResetAll = (0, _react.useCallback)(() => {
60
+ _flagStore.flagStore.resetAll();
61
+ }, []);
62
+ const isOverridden = (0, _react.useCallback)(flag => {
63
+ return JSON.stringify(flag.currentValue) !== JSON.stringify(flag.defaultValue);
64
+ }, []);
65
+ if (flags.length === 0) {
66
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
67
+ style: styles.emptyContainer
68
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
69
+ style: styles.emptyIcon
70
+ }, "\uD83D\uDEA9"), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
71
+ style: [styles.emptyTitle, {
72
+ color: theme.text
73
+ }]
74
+ }, "No Feature Flags"), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
75
+ style: [styles.emptyDesc, {
76
+ color: theme.textMuted
77
+ }]
78
+ }, "Register flags using:", '\n\n', /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
79
+ style: {
80
+ fontFamily: 'monospace',
81
+ color: theme.codeText
82
+ }
83
+ }, 'registerFlag({\n key: "dark_mode",\n type: "boolean",\n defaultValue: false\n})')));
84
+ }
85
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
86
+ style: styles.container
87
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
88
+ style: [styles.headerBar, {
89
+ backgroundColor: theme.surface,
90
+ borderBottomColor: theme.border
91
+ }]
92
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
93
+ style: [styles.headerText, {
94
+ color: theme.text
95
+ }]
96
+ }, flags.length, " flags"), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
97
+ onPress: handleResetAll,
98
+ activeOpacity: 0.7
99
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
100
+ style: [styles.resetText, {
101
+ color: theme.warning
102
+ }]
103
+ }, "Reset All"))), groups.length > 0 && /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
104
+ horizontal: true,
105
+ showsHorizontalScrollIndicator: false,
106
+ style: [styles.groupBar, {
107
+ backgroundColor: theme.surface
108
+ }],
109
+ contentContainerStyle: styles.groupBarContent
110
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
111
+ style: [styles.groupChip, {
112
+ backgroundColor: !groupFilter ? theme.accent : theme.surfaceAlt,
113
+ borderColor: theme.border
114
+ }],
115
+ onPress: () => setGroupFilter(null),
116
+ activeOpacity: 0.7
117
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
118
+ style: [styles.groupChipText, {
119
+ color: !groupFilter ? '#FFF' : theme.textSecondary
120
+ }]
121
+ }, "All")), groups.map(group => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
122
+ key: group,
123
+ style: [styles.groupChip, {
124
+ backgroundColor: groupFilter === group ? theme.accent : theme.surfaceAlt,
125
+ borderColor: theme.border
126
+ }],
127
+ onPress: () => setGroupFilter(groupFilter === group ? null : group),
128
+ activeOpacity: 0.7
129
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
130
+ style: [styles.groupChipText, {
131
+ color: groupFilter === group ? '#FFF' : theme.textSecondary
132
+ }]
133
+ }, group)))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
134
+ style: [styles.searchContainer, {
135
+ backgroundColor: theme.surface
136
+ }]
137
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
138
+ style: [styles.searchInput, {
139
+ color: theme.text,
140
+ backgroundColor: theme.surfaceAlt,
141
+ borderColor: theme.border
142
+ }],
143
+ placeholder: "Search flags...",
144
+ placeholderTextColor: theme.textMuted,
145
+ value: searchQuery,
146
+ onChangeText: setSearchQuery,
147
+ autoCapitalize: "none"
148
+ })), /*#__PURE__*/_react.default.createElement(_reactNative.FlatList, {
149
+ data: filteredFlags,
150
+ keyExtractor: item => item.key,
151
+ renderItem: ({
152
+ item
153
+ }) => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
154
+ style: [styles.flagRow, {
155
+ backgroundColor: isOverridden(item) ? `${theme.warning}10` : theme.surface,
156
+ borderBottomColor: theme.border
157
+ }]
158
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
159
+ style: styles.flagInfo
160
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
161
+ style: styles.flagNameRow
162
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
163
+ style: [styles.flagKey, {
164
+ color: theme.text
165
+ }]
166
+ }, item.label || item.key), isOverridden(item) && /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
167
+ onPress: () => _flagStore.flagStore.reset(item.key),
168
+ activeOpacity: 0.7
169
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
170
+ style: [styles.resetFlag, {
171
+ color: theme.warning
172
+ }]
173
+ }, "Reset"))), item.description && /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
174
+ style: [styles.flagDesc, {
175
+ color: theme.textMuted
176
+ }]
177
+ }, item.description), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
178
+ style: [styles.flagMeta, {
179
+ color: theme.textMuted
180
+ }]
181
+ }, item.key, " \u2022 ", item.type, item.group ? ` • ${item.group}` : '')), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
182
+ style: styles.flagControl
183
+ }, item.type === 'boolean' ? /*#__PURE__*/_react.default.createElement(_reactNative.Switch, {
184
+ value: item.currentValue,
185
+ onValueChange: () => handleToggle(item.key, item.currentValue),
186
+ trackColor: {
187
+ false: theme.border,
188
+ true: theme.accent
189
+ },
190
+ thumbColor: "#FFFFFF"
191
+ }) : editingFlag === item.key ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
192
+ style: styles.editContainer
193
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
194
+ style: [styles.editInput, {
195
+ color: theme.text,
196
+ borderColor: theme.accent,
197
+ backgroundColor: theme.surfaceAlt
198
+ }],
199
+ value: editValue,
200
+ onChangeText: setEditValue,
201
+ autoFocus: true,
202
+ autoCapitalize: "none"
203
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
204
+ style: styles.editButtons
205
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
206
+ onPress: () => handleSaveEdit(item),
207
+ activeOpacity: 0.7
208
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
209
+ style: [styles.editSave, {
210
+ color: theme.success
211
+ }]
212
+ }, "Save")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
213
+ onPress: () => setEditingFlag(null),
214
+ activeOpacity: 0.7
215
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
216
+ style: [styles.editCancel, {
217
+ color: theme.textMuted
218
+ }]
219
+ }, "Cancel")))) : /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
220
+ onPress: () => {
221
+ setEditingFlag(item.key);
222
+ setEditValue(typeof item.currentValue === 'object' ? JSON.stringify(item.currentValue, null, 2) : String(item.currentValue));
223
+ },
224
+ style: [styles.valueButton, {
225
+ backgroundColor: theme.surfaceAlt
226
+ }],
227
+ activeOpacity: 0.7
228
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
229
+ style: [styles.valueText, {
230
+ color: theme.text
231
+ }],
232
+ numberOfLines: 1
233
+ }, typeof item.currentValue === 'object' ? JSON.stringify(item.currentValue) : String(item.currentValue)))))
234
+ }));
235
+ };
236
+ const styles = _reactNative.StyleSheet.create({
237
+ container: {
238
+ flex: 1
239
+ },
240
+ emptyContainer: {
241
+ flex: 1,
242
+ alignItems: 'center',
243
+ justifyContent: 'center',
244
+ paddingHorizontal: 32
245
+ },
246
+ emptyIcon: {
247
+ fontSize: 48,
248
+ marginBottom: 16
249
+ },
250
+ emptyTitle: {
251
+ fontSize: 16,
252
+ fontWeight: '700',
253
+ marginBottom: 8
254
+ },
255
+ emptyDesc: {
256
+ fontSize: 13,
257
+ textAlign: 'center',
258
+ lineHeight: 20
259
+ },
260
+ headerBar: {
261
+ flexDirection: 'row',
262
+ justifyContent: 'space-between',
263
+ alignItems: 'center',
264
+ paddingHorizontal: 12,
265
+ paddingVertical: 8,
266
+ borderBottomWidth: _reactNative.StyleSheet.hairlineWidth
267
+ },
268
+ headerText: {
269
+ fontSize: 13,
270
+ fontWeight: '600'
271
+ },
272
+ resetText: {
273
+ fontSize: 12,
274
+ fontWeight: '700'
275
+ },
276
+ groupBar: {
277
+ maxHeight: 44
278
+ },
279
+ groupBarContent: {
280
+ paddingHorizontal: 12,
281
+ paddingVertical: 8,
282
+ gap: 6
283
+ },
284
+ groupChip: {
285
+ paddingHorizontal: 10,
286
+ paddingVertical: 4,
287
+ borderRadius: 12,
288
+ borderWidth: 1
289
+ },
290
+ groupChipText: {
291
+ fontSize: 11,
292
+ fontWeight: '600'
293
+ },
294
+ searchContainer: {
295
+ paddingHorizontal: 12,
296
+ paddingBottom: 8
297
+ },
298
+ searchInput: {
299
+ height: 36,
300
+ borderRadius: 8,
301
+ paddingHorizontal: 12,
302
+ fontSize: 13,
303
+ borderWidth: 1
304
+ },
305
+ flagRow: {
306
+ paddingHorizontal: 12,
307
+ paddingVertical: 10,
308
+ borderBottomWidth: _reactNative.StyleSheet.hairlineWidth
309
+ },
310
+ flagInfo: {
311
+ marginBottom: 8
312
+ },
313
+ flagNameRow: {
314
+ flexDirection: 'row',
315
+ justifyContent: 'space-between',
316
+ alignItems: 'center'
317
+ },
318
+ flagKey: {
319
+ fontSize: 14,
320
+ fontWeight: '600'
321
+ },
322
+ resetFlag: {
323
+ fontSize: 11,
324
+ fontWeight: '600'
325
+ },
326
+ flagDesc: {
327
+ fontSize: 12,
328
+ marginTop: 2
329
+ },
330
+ flagMeta: {
331
+ fontSize: 10,
332
+ marginTop: 2,
333
+ fontFamily: 'monospace'
334
+ },
335
+ flagControl: {
336
+ alignItems: 'flex-end'
337
+ },
338
+ editContainer: {
339
+ width: '100%'
340
+ },
341
+ editInput: {
342
+ height: 36,
343
+ borderRadius: 8,
344
+ paddingHorizontal: 12,
345
+ fontSize: 13,
346
+ borderWidth: 1,
347
+ marginBottom: 8
348
+ },
349
+ editButtons: {
350
+ flexDirection: 'row',
351
+ gap: 12,
352
+ justifyContent: 'flex-end'
353
+ },
354
+ editSave: {
355
+ fontSize: 13,
356
+ fontWeight: '700'
357
+ },
358
+ editCancel: {
359
+ fontSize: 13
360
+ },
361
+ valueButton: {
362
+ paddingHorizontal: 12,
363
+ paddingVertical: 6,
364
+ borderRadius: 8,
365
+ maxWidth: 200
366
+ },
367
+ valueText: {
368
+ fontSize: 12,
369
+ fontFamily: 'monospace'
370
+ }
371
+ });
372
+ function createFeatureFlagsPlugin() {
373
+ return {
374
+ id: 'feature-flags',
375
+ name: 'Flags',
376
+ icon: '🚩',
377
+ component: FeatureFlagsPanel,
378
+ order: 40
379
+ };
380
+ }
381
+ //# sourceMappingURL=FeatureFlagsPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_flagStore","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FeatureFlagsPanel","theme","flags","setFlags","useState","searchQuery","setSearchQuery","groupFilter","setGroupFilter","editingFlag","setEditingFlag","editValue","setEditValue","useEffect","unsubscribe","flagStore","subscribe","groups","useMemo","groupSet","Set","flag","group","add","Array","from","sort","filteredFlags","filtered","filter","q","toLowerCase","key","includes","label","description","handleToggle","useCallback","currentValue","override","handleSaveEdit","parsed","type","Number","isNaN","JSON","parse","handleResetAll","resetAll","isOverridden","stringify","defaultValue","length","createElement","View","style","styles","emptyContainer","Text","emptyIcon","emptyTitle","color","text","emptyDesc","textMuted","fontFamily","codeText","container","headerBar","backgroundColor","surface","borderBottomColor","border","headerText","TouchableOpacity","onPress","activeOpacity","resetText","warning","ScrollView","horizontal","showsHorizontalScrollIndicator","groupBar","contentContainerStyle","groupBarContent","groupChip","accent","surfaceAlt","borderColor","groupChipText","textSecondary","map","searchContainer","TextInput","searchInput","placeholder","placeholderTextColor","value","onChangeText","autoCapitalize","FlatList","data","keyExtractor","item","renderItem","flagRow","flagInfo","flagNameRow","flagKey","reset","resetFlag","flagDesc","flagMeta","flagControl","Switch","onValueChange","trackColor","false","true","thumbColor","editContainer","editInput","autoFocus","editButtons","editSave","success","editCancel","String","valueButton","valueText","numberOfLines","StyleSheet","create","flex","alignItems","justifyContent","paddingHorizontal","fontSize","marginBottom","fontWeight","textAlign","lineHeight","flexDirection","paddingVertical","borderBottomWidth","hairlineWidth","maxHeight","gap","borderRadius","borderWidth","paddingBottom","height","marginTop","width","maxWidth","createFeatureFlagsPlugin","id","name","icon","component","order"],"sourceRoot":"../../../../src","sources":["plugins/featureFlags/FeatureFlagsPlugin.tsx"],"mappings":"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","ignoreList":[]}