react-native-debug-toolkit 3.3.4 → 3.5.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 (258) hide show
  1. package/README.md +48 -46
  2. package/README.zh-CN.md +48 -46
  3. package/android/src/main/java/com/reactnativedebugtoolkit/DebugToolkitDevConnectModule.java +0 -187
  4. package/bin/debug-toolkit.js +0 -16
  5. package/ios/DebugToolkitDevConnect.h +0 -12
  6. package/ios/DebugToolkitDevConnect.mm +0 -321
  7. package/lib/commonjs/constants/logLevels.js +19 -0
  8. package/lib/commonjs/constants/logLevels.js.map +1 -0
  9. package/lib/commonjs/core/initialize.js +36 -18
  10. package/lib/commonjs/core/initialize.js.map +1 -1
  11. package/lib/commonjs/features/console/ConsoleLogTab.js +4 -15
  12. package/lib/commonjs/features/console/ConsoleLogTab.js.map +1 -1
  13. package/lib/commonjs/features/console/index.js +15 -8
  14. package/lib/commonjs/features/console/index.js.map +1 -1
  15. package/lib/commonjs/features/devConnect/DevConnectTab.js +18 -470
  16. package/lib/commonjs/features/devConnect/DevConnectTab.js.map +1 -1
  17. package/lib/commonjs/features/devConnect/devConnectPreferences.js +0 -12
  18. package/lib/commonjs/features/devConnect/devConnectPreferences.js.map +1 -1
  19. package/lib/commonjs/features/devConnect/devConnectUtils.js +2 -57
  20. package/lib/commonjs/features/devConnect/devConnectUtils.js.map +1 -1
  21. package/lib/commonjs/features/devConnect/index.js +1 -23
  22. package/lib/commonjs/features/devConnect/index.js.map +1 -1
  23. package/lib/commonjs/features/devConnect/nativeDevConnect.js +1 -103
  24. package/lib/commonjs/features/devConnect/nativeDevConnect.js.map +1 -1
  25. package/lib/commonjs/features/network/NetworkLogTab.js +91 -93
  26. package/lib/commonjs/features/network/NetworkLogTab.js.map +1 -1
  27. package/lib/commonjs/features/network/index.js +7 -4
  28. package/lib/commonjs/features/network/index.js.map +1 -1
  29. package/lib/commonjs/features/sessionHistory/SessionHistoryTab.js +1044 -0
  30. package/lib/commonjs/features/sessionHistory/SessionHistoryTab.js.map +1 -0
  31. package/lib/commonjs/features/sessionHistory/index.js +103 -0
  32. package/lib/commonjs/features/sessionHistory/index.js.map +1 -0
  33. package/lib/commonjs/features/track/index.js +4 -3
  34. package/lib/commonjs/features/track/index.js.map +1 -1
  35. package/lib/commonjs/index.js +27 -0
  36. package/lib/commonjs/index.js.map +1 -1
  37. package/lib/commonjs/ui/DebugView.js +3 -0
  38. package/lib/commonjs/ui/DebugView.js.map +1 -1
  39. package/lib/commonjs/ui/panel/DebugPanel.js +67 -34
  40. package/lib/commonjs/ui/panel/DebugPanel.js.map +1 -1
  41. package/lib/commonjs/ui/panel/FeatureIntroCard.js +131 -0
  42. package/lib/commonjs/ui/panel/FeatureIntroCard.js.map +1 -0
  43. package/lib/commonjs/ui/panel/FeatureRail.js +163 -0
  44. package/lib/commonjs/ui/panel/FeatureRail.js.map +1 -0
  45. package/lib/commonjs/ui/panel/FloatPanelView.js +169 -32
  46. package/lib/commonjs/ui/panel/FloatPanelView.js.map +1 -1
  47. package/lib/commonjs/ui/panel/buildFeatureSummary.js +207 -0
  48. package/lib/commonjs/ui/panel/buildFeatureSummary.js.map +1 -0
  49. package/lib/commonjs/ui/panel/filterFeatureSnapshot.js +43 -0
  50. package/lib/commonjs/ui/panel/filterFeatureSnapshot.js.map +1 -0
  51. package/lib/commonjs/ui/panel/tabPersistence.js +17 -0
  52. package/lib/commonjs/ui/panel/tabPersistence.js.map +1 -0
  53. package/lib/commonjs/ui/theme/colors.js +6 -0
  54. package/lib/commonjs/ui/theme/colors.js.map +1 -1
  55. package/lib/commonjs/utils/DaemonClient.js +30 -8
  56. package/lib/commonjs/utils/DaemonClient.js.map +1 -1
  57. package/lib/commonjs/utils/SessionManager.js +132 -0
  58. package/lib/commonjs/utils/SessionManager.js.map +1 -0
  59. package/lib/commonjs/utils/StorageAdapter.js +104 -0
  60. package/lib/commonjs/utils/StorageAdapter.js.map +1 -0
  61. package/lib/commonjs/utils/createChannelFeature.js +22 -5
  62. package/lib/commonjs/utils/createChannelFeature.js.map +1 -1
  63. package/lib/commonjs/utils/createDebugTab.js +21 -0
  64. package/lib/commonjs/utils/createDebugTab.js.map +1 -0
  65. package/lib/commonjs/utils/createPersistedObservableStore.js +14 -8
  66. package/lib/commonjs/utils/createPersistedObservableStore.js.map +1 -1
  67. package/lib/commonjs/utils/debugPreferences.js +28 -6
  68. package/lib/commonjs/utils/debugPreferences.js.map +1 -1
  69. package/lib/commonjs/utils/deviceReport.js +5 -1
  70. package/lib/commonjs/utils/deviceReport.js.map +1 -1
  71. package/lib/commonjs/utils/logRuntime.js +32 -0
  72. package/lib/commonjs/utils/logRuntime.js.map +1 -0
  73. package/lib/module/constants/logLevels.js +15 -0
  74. package/lib/module/constants/logLevels.js.map +1 -0
  75. package/lib/module/core/initialize.js +36 -18
  76. package/lib/module/core/initialize.js.map +1 -1
  77. package/lib/module/features/console/ConsoleLogTab.js +1 -12
  78. package/lib/module/features/console/ConsoleLogTab.js.map +1 -1
  79. package/lib/module/features/console/index.js +15 -8
  80. package/lib/module/features/console/index.js.map +1 -1
  81. package/lib/module/features/devConnect/DevConnectTab.js +21 -473
  82. package/lib/module/features/devConnect/DevConnectTab.js.map +1 -1
  83. package/lib/module/features/devConnect/devConnectPreferences.js +1 -12
  84. package/lib/module/features/devConnect/devConnectPreferences.js.map +1 -1
  85. package/lib/module/features/devConnect/devConnectUtils.js +1 -53
  86. package/lib/module/features/devConnect/devConnectUtils.js.map +1 -1
  87. package/lib/module/features/devConnect/index.js +5 -9
  88. package/lib/module/features/devConnect/index.js.map +1 -1
  89. package/lib/module/features/devConnect/nativeDevConnect.js +1 -100
  90. package/lib/module/features/devConnect/nativeDevConnect.js.map +1 -1
  91. package/lib/module/features/network/NetworkLogTab.js +91 -93
  92. package/lib/module/features/network/NetworkLogTab.js.map +1 -1
  93. package/lib/module/features/network/index.js +7 -4
  94. package/lib/module/features/network/index.js.map +1 -1
  95. package/lib/module/features/sessionHistory/SessionHistoryTab.js +1039 -0
  96. package/lib/module/features/sessionHistory/SessionHistoryTab.js.map +1 -0
  97. package/lib/module/features/sessionHistory/index.js +99 -0
  98. package/lib/module/features/sessionHistory/index.js.map +1 -0
  99. package/lib/module/features/track/index.js +4 -3
  100. package/lib/module/features/track/index.js.map +1 -1
  101. package/lib/module/index.js +4 -0
  102. package/lib/module/index.js.map +1 -1
  103. package/lib/module/ui/DebugView.js +3 -0
  104. package/lib/module/ui/DebugView.js.map +1 -1
  105. package/lib/module/ui/panel/DebugPanel.js +67 -34
  106. package/lib/module/ui/panel/DebugPanel.js.map +1 -1
  107. package/lib/module/ui/panel/FeatureIntroCard.js +126 -0
  108. package/lib/module/ui/panel/FeatureIntroCard.js.map +1 -0
  109. package/lib/module/ui/panel/FeatureRail.js +158 -0
  110. package/lib/module/ui/panel/FeatureRail.js.map +1 -0
  111. package/lib/module/ui/panel/FloatPanelView.js +170 -33
  112. package/lib/module/ui/panel/FloatPanelView.js.map +1 -1
  113. package/lib/module/ui/panel/buildFeatureSummary.js +203 -0
  114. package/lib/module/ui/panel/buildFeatureSummary.js.map +1 -0
  115. package/lib/module/ui/panel/filterFeatureSnapshot.js +39 -0
  116. package/lib/module/ui/panel/filterFeatureSnapshot.js.map +1 -0
  117. package/lib/module/ui/panel/tabPersistence.js +13 -0
  118. package/lib/module/ui/panel/tabPersistence.js.map +1 -0
  119. package/lib/module/ui/theme/colors.js +6 -0
  120. package/lib/module/ui/theme/colors.js.map +1 -1
  121. package/lib/module/utils/DaemonClient.js +30 -8
  122. package/lib/module/utils/DaemonClient.js.map +1 -1
  123. package/lib/module/utils/SessionManager.js +127 -0
  124. package/lib/module/utils/SessionManager.js.map +1 -0
  125. package/lib/module/utils/StorageAdapter.js +96 -0
  126. package/lib/module/utils/StorageAdapter.js.map +1 -0
  127. package/lib/module/utils/createChannelFeature.js +22 -5
  128. package/lib/module/utils/createChannelFeature.js.map +1 -1
  129. package/lib/module/utils/createDebugTab.js +17 -0
  130. package/lib/module/utils/createDebugTab.js.map +1 -0
  131. package/lib/module/utils/createPersistedObservableStore.js +14 -8
  132. package/lib/module/utils/createPersistedObservableStore.js.map +1 -1
  133. package/lib/module/utils/debugPreferences.js +27 -6
  134. package/lib/module/utils/debugPreferences.js.map +1 -1
  135. package/lib/module/utils/deviceReport.js +4 -1
  136. package/lib/module/utils/deviceReport.js.map +1 -1
  137. package/lib/module/utils/logRuntime.js +26 -0
  138. package/lib/module/utils/logRuntime.js.map +1 -0
  139. package/lib/typescript/src/constants/logLevels.d.ts +3 -0
  140. package/lib/typescript/src/constants/logLevels.d.ts.map +1 -0
  141. package/lib/typescript/src/core/initialize.d.ts +6 -0
  142. package/lib/typescript/src/core/initialize.d.ts.map +1 -1
  143. package/lib/typescript/src/features/console/ConsoleLogTab.d.ts.map +1 -1
  144. package/lib/typescript/src/features/console/index.d.ts +2 -1
  145. package/lib/typescript/src/features/console/index.d.ts.map +1 -1
  146. package/lib/typescript/src/features/devConnect/DevConnectTab.d.ts.map +1 -1
  147. package/lib/typescript/src/features/devConnect/devConnectPreferences.d.ts +0 -2
  148. package/lib/typescript/src/features/devConnect/devConnectPreferences.d.ts.map +1 -1
  149. package/lib/typescript/src/features/devConnect/devConnectUtils.d.ts +0 -20
  150. package/lib/typescript/src/features/devConnect/devConnectUtils.d.ts.map +1 -1
  151. package/lib/typescript/src/features/devConnect/index.d.ts +2 -2
  152. package/lib/typescript/src/features/devConnect/index.d.ts.map +1 -1
  153. package/lib/typescript/src/features/devConnect/nativeDevConnect.d.ts +0 -25
  154. package/lib/typescript/src/features/devConnect/nativeDevConnect.d.ts.map +1 -1
  155. package/lib/typescript/src/features/devConnect/types.d.ts +1 -3
  156. package/lib/typescript/src/features/devConnect/types.d.ts.map +1 -1
  157. package/lib/typescript/src/features/network/NetworkLogTab.d.ts.map +1 -1
  158. package/lib/typescript/src/features/network/index.d.ts +2 -1
  159. package/lib/typescript/src/features/network/index.d.ts.map +1 -1
  160. package/lib/typescript/src/features/sessionHistory/SessionHistoryTab.d.ts +20 -0
  161. package/lib/typescript/src/features/sessionHistory/SessionHistoryTab.d.ts.map +1 -0
  162. package/lib/typescript/src/features/sessionHistory/index.d.ts +4 -0
  163. package/lib/typescript/src/features/sessionHistory/index.d.ts.map +1 -0
  164. package/lib/typescript/src/features/track/index.d.ts +2 -1
  165. package/lib/typescript/src/features/track/index.d.ts.map +1 -1
  166. package/lib/typescript/src/index.d.ts +6 -0
  167. package/lib/typescript/src/index.d.ts.map +1 -1
  168. package/lib/typescript/src/types/feature.d.ts +1 -1
  169. package/lib/typescript/src/types/feature.d.ts.map +1 -1
  170. package/lib/typescript/src/types/index.d.ts +2 -0
  171. package/lib/typescript/src/types/index.d.ts.map +1 -1
  172. package/lib/typescript/src/ui/DebugView.d.ts +4 -2
  173. package/lib/typescript/src/ui/DebugView.d.ts.map +1 -1
  174. package/lib/typescript/src/ui/panel/DebugPanel.d.ts +3 -1
  175. package/lib/typescript/src/ui/panel/DebugPanel.d.ts.map +1 -1
  176. package/lib/typescript/src/ui/panel/FeatureIntroCard.d.ts +11 -0
  177. package/lib/typescript/src/ui/panel/FeatureIntroCard.d.ts.map +1 -0
  178. package/lib/typescript/src/ui/panel/FeatureRail.d.ts +16 -0
  179. package/lib/typescript/src/ui/panel/FeatureRail.d.ts.map +1 -0
  180. package/lib/typescript/src/ui/panel/FloatPanelView.d.ts.map +1 -1
  181. package/lib/typescript/src/ui/panel/buildFeatureSummary.d.ts +13 -0
  182. package/lib/typescript/src/ui/panel/buildFeatureSummary.d.ts.map +1 -0
  183. package/lib/typescript/src/ui/panel/filterFeatureSnapshot.d.ts +3 -0
  184. package/lib/typescript/src/ui/panel/filterFeatureSnapshot.d.ts.map +1 -0
  185. package/lib/typescript/src/ui/panel/tabPersistence.d.ts +3 -0
  186. package/lib/typescript/src/ui/panel/tabPersistence.d.ts.map +1 -0
  187. package/lib/typescript/src/ui/theme/colors.d.ts +5 -0
  188. package/lib/typescript/src/ui/theme/colors.d.ts.map +1 -1
  189. package/lib/typescript/src/utils/DaemonClient.d.ts +7 -1
  190. package/lib/typescript/src/utils/DaemonClient.d.ts.map +1 -1
  191. package/lib/typescript/src/utils/SessionManager.d.ts +30 -0
  192. package/lib/typescript/src/utils/SessionManager.d.ts.map +1 -0
  193. package/lib/typescript/src/utils/StorageAdapter.d.ts +38 -0
  194. package/lib/typescript/src/utils/StorageAdapter.d.ts.map +1 -0
  195. package/lib/typescript/src/utils/createChannelFeature.d.ts +2 -0
  196. package/lib/typescript/src/utils/createChannelFeature.d.ts.map +1 -1
  197. package/lib/typescript/src/utils/createDebugTab.d.ts +18 -0
  198. package/lib/typescript/src/utils/createDebugTab.d.ts.map +1 -0
  199. package/lib/typescript/src/utils/createPersistedObservableStore.d.ts +4 -1
  200. package/lib/typescript/src/utils/createPersistedObservableStore.d.ts.map +1 -1
  201. package/lib/typescript/src/utils/debugPreferences.d.ts +1 -4
  202. package/lib/typescript/src/utils/debugPreferences.d.ts.map +1 -1
  203. package/lib/typescript/src/utils/deviceReport.d.ts +1 -0
  204. package/lib/typescript/src/utils/deviceReport.d.ts.map +1 -1
  205. package/lib/typescript/src/utils/logRuntime.d.ts +13 -0
  206. package/lib/typescript/src/utils/logRuntime.d.ts.map +1 -0
  207. package/package.json +10 -6
  208. package/src/constants/logLevels.ts +13 -0
  209. package/src/core/initialize.ts +61 -21
  210. package/src/features/console/ConsoleLogTab.tsx +1 -14
  211. package/src/features/console/index.ts +18 -8
  212. package/src/features/devConnect/DevConnectTab.tsx +17 -381
  213. package/src/features/devConnect/devConnectPreferences.ts +0 -15
  214. package/src/features/devConnect/devConnectUtils.ts +1 -81
  215. package/src/features/devConnect/index.ts +2 -9
  216. package/src/features/devConnect/nativeDevConnect.ts +1 -136
  217. package/src/features/devConnect/types.ts +1 -3
  218. package/src/features/network/NetworkLogTab.tsx +61 -71
  219. package/src/features/network/index.ts +12 -3
  220. package/src/features/sessionHistory/SessionHistoryTab.tsx +691 -0
  221. package/src/features/sessionHistory/index.ts +102 -0
  222. package/src/features/track/index.ts +10 -3
  223. package/src/index.ts +13 -0
  224. package/src/types/feature.ts +2 -1
  225. package/src/types/index.ts +10 -0
  226. package/src/ui/DebugView.tsx +6 -1
  227. package/src/ui/panel/DebugPanel.tsx +60 -30
  228. package/src/ui/panel/FeatureIntroCard.tsx +127 -0
  229. package/src/ui/panel/FeatureRail.tsx +165 -0
  230. package/src/ui/panel/FloatPanelView.tsx +176 -25
  231. package/src/ui/panel/buildFeatureSummary.ts +288 -0
  232. package/src/ui/panel/filterFeatureSnapshot.ts +51 -0
  233. package/src/ui/panel/tabPersistence.ts +22 -0
  234. package/src/ui/theme/colors.ts +7 -0
  235. package/src/utils/DaemonClient.ts +33 -5
  236. package/src/utils/SessionManager.ts +174 -0
  237. package/src/utils/StorageAdapter.ts +135 -0
  238. package/src/utils/createChannelFeature.ts +28 -6
  239. package/src/utils/createDebugTab.ts +32 -0
  240. package/src/utils/createPersistedObservableStore.ts +18 -10
  241. package/src/utils/debugPreferences.ts +38 -8
  242. package/src/utils/deviceReport.ts +5 -1
  243. package/src/utils/logRuntime.ts +39 -0
  244. package/app.plugin.js +0 -51
  245. package/dev-client.js +0 -3
  246. package/lib/commonjs/ui/panel/FeatureTabBar.js +0 -182
  247. package/lib/commonjs/ui/panel/FeatureTabBar.js.map +0 -1
  248. package/lib/module/ui/panel/FeatureTabBar.js +0 -177
  249. package/lib/module/ui/panel/FeatureTabBar.js.map +0 -1
  250. package/lib/typescript/src/ui/panel/FeatureTabBar.d.ts +0 -13
  251. package/lib/typescript/src/ui/panel/FeatureTabBar.d.ts.map +0 -1
  252. package/scripts/bundle/android.js +0 -101
  253. package/scripts/bundle/cli.js +0 -57
  254. package/scripts/bundle/doctor.js +0 -38
  255. package/scripts/bundle/ios.js +0 -179
  256. package/scripts/bundle/setup.js +0 -39
  257. package/scripts/debug-bundle.gradle +0 -147
  258. package/src/ui/panel/FeatureTabBar.tsx +0 -204
@@ -1,189 +1,11 @@
1
1
  #import "DebugToolkitDevConnect.h"
2
2
 
3
3
  #import <Foundation/Foundation.h>
4
- #import <UIKit/UIKit.h>
5
- #import <React/RCTBridge.h>
6
- #import <React/RCTBundleManager.h>
7
4
  #import <React/RCTBridgeModule.h>
8
- #import <React/RCTBundleURLProvider.h>
9
- #import <React/RCTReloadCommand.h>
10
- #import <objc/runtime.h>
11
5
  #include <ifaddrs.h>
12
6
  #include <arpa/inet.h>
13
7
  #include <net/if.h>
14
8
 
15
- // Debug-only Metro host switching — zero host-app native changes required.
16
- //
17
- // RN/Expo Debug templates call jsBundleURLForBundleRoot:fallbackURLProvider:, which consults
18
- // -packagerServerHostPort (guessPackagerHost on simulator when Metro is running). We only hook
19
- // jsBundleURLForBundleRoot:fallbackURLProvider: so no DevConnect host starts from main.jsbundle.
20
- // Persisted DevConnect hosts still flow through RCTBundleURLProvider, preserving RN's reachability
21
- // and fallback behavior when a saved Metro host is stale.
22
- //
23
- // Optional: host apps may call DebugToolkitMetroBundleURL() from bundleURL() for explicit control.
24
-
25
- static NSString *const kBundleRoot = @"index";
26
- // Expo prebuild templates pass this to jsBundleURLForBundleRoot: in Debug (see expo/expo#21643).
27
- static NSString *const kExpoVirtualMetroEntry = @".expo/.virtual-metro-entry";
28
- static NSString *const kMetroHostKey = @"_devconnect_metro_host";
29
-
30
- static BOOL gBundleRootHookInstalled = NO;
31
-
32
- static NSURL *(*gOrigJsBundleURLForBundleRootWithFallback)(id, SEL, NSString *, NSURL * _Nonnull (^)(void));
33
-
34
- static BOOL DevConnectEmbeddedFirstHooksActive(void)
35
- {
36
- return gBundleRootHookInstalled;
37
- }
38
-
39
- static NSURL *DebugToolkitEmbeddedBundleURL(void)
40
- {
41
- return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
42
- }
43
-
44
- static NSString *DevConnectPersistedMetroHost(void)
45
- {
46
- return [[NSUserDefaults standardUserDefaults] stringForKey:kMetroHostKey];
47
- }
48
-
49
- static void DevConnectSetPersistedMetroHost(NSString *_Nullable hostPort)
50
- {
51
- NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
52
- if (hostPort.length > 0) {
53
- [defaults setObject:hostPort forKey:kMetroHostKey];
54
- } else {
55
- [defaults removeObjectForKey:kMetroHostKey];
56
- }
57
- [defaults synchronize];
58
- }
59
-
60
- static void DebugToolkitPrepareBundleSourceIfNeeded(void)
61
- {
62
- // Touch sharedSettings so RCTBundleURLProvider is linked before hook install retries.
63
- RCTBundleURLProvider *settings = [RCTBundleURLProvider sharedSettings];
64
- if (DevConnectPersistedMetroHost().length > 0) {
65
- return;
66
- }
67
- [settings resetToDefaults];
68
- }
69
-
70
- static BOOL DevConnectIsExpoProject(void)
71
- {
72
- static dispatch_once_t onceToken;
73
- static BOOL isExpo = NO;
74
- dispatch_once(&onceToken, ^{
75
- // Heuristic: matches common Expo prebuild / dev-client binaries.
76
- isExpo = NSClassFromString(@"EXAppDelegateWrapper") != nil
77
- || [[NSBundle mainBundle] objectForInfoDictionaryKey:@"EXUpdatesURL"] != nil
78
- || [[NSBundle mainBundle] objectForInfoDictionaryKey:@"EXPO_RUNTIME_VERSION"] != nil;
79
- });
80
- return isExpo;
81
- }
82
-
83
- /// Bundle root Metro expects when DevConnect steers the packager (index for plain RN, virtual entry for Expo).
84
- static NSString *DevConnectMetroBundleRoot(void)
85
- {
86
- return DevConnectIsExpoProject() ? kExpoVirtualMetroEntry : kBundleRoot;
87
- }
88
-
89
- static NSURL *DevConnectMetroURLForPersistedHost(void)
90
- {
91
- NSString *host = DevConnectPersistedMetroHost();
92
- if (host.length == 0) {
93
- return nil;
94
- }
95
- RCTBundleURLProvider *settings = [RCTBundleURLProvider sharedSettings];
96
- settings.jsLocation = host;
97
- return [settings jsBundleURLForBundleRoot:DevConnectMetroBundleRoot()];
98
- }
99
-
100
- /// Primary hook: return embedded main.jsbundle before RN/Expo tries Metro / virtual-metro-entry.
101
- static NSURL *replacement_jsBundleURLForBundleRoot_fallback(
102
- id self, SEL _cmd, NSString *bundleRoot, NSURL * _Nonnull (^fallbackURLProvider)(void))
103
- {
104
- if (DevConnectPersistedMetroHost().length == 0) {
105
- NSURL *embedded = DebugToolkitEmbeddedBundleURL();
106
- if (embedded) {
107
- NSLog(@"[DevConnect] cold start → embedded bundle (root=%@)", bundleRoot);
108
- return embedded;
109
- }
110
- NSLog(@"[DevConnect] no embedded main.jsbundle — falling back to Metro (root=%@)", bundleRoot);
111
- }
112
-
113
- if (gOrigJsBundleURLForBundleRootWithFallback) {
114
- return gOrigJsBundleURLForBundleRootWithFallback(self, _cmd, bundleRoot, fallbackURLProvider);
115
- }
116
- return fallbackURLProvider ? fallbackURLProvider() : nil;
117
- }
118
-
119
- static void DebugToolkitInstallBundleRootHook(Class cls)
120
- {
121
- if (gBundleRootHookInstalled) {
122
- return;
123
- }
124
- SEL selector = @selector(jsBundleURLForBundleRoot:fallbackURLProvider:);
125
- Method method = class_getInstanceMethod(cls, selector);
126
- if (!method) {
127
- NSLog(@"[DevConnect] jsBundleURLForBundleRoot:fallbackURLProvider: not found");
128
- return;
129
- }
130
- IMP replacement = (IMP)replacement_jsBundleURLForBundleRoot_fallback;
131
- gOrigJsBundleURLForBundleRootWithFallback =
132
- (NSURL * (*)(id, SEL, NSString *, NSURL * _Nonnull (^)(void)))method_getImplementation(method);
133
- if ((IMP)gOrigJsBundleURLForBundleRootWithFallback == replacement) {
134
- gBundleRootHookInstalled = YES;
135
- return;
136
- }
137
- method_setImplementation(method, replacement);
138
- gBundleRootHookInstalled = YES;
139
- }
140
-
141
- static void DebugToolkitInstallAllHooks(void)
142
- {
143
- if (gBundleRootHookInstalled) {
144
- return;
145
- }
146
-
147
- Class cls = NSClassFromString(@"RCTBundleURLProvider");
148
- if (!cls) {
149
- NSLog(@"[DevConnect] RCTBundleURLProvider not loaded — hooks will retry");
150
- return;
151
- }
152
-
153
- DebugToolkitInstallBundleRootHook(cls);
154
-
155
- static BOOL didLogOutcome = NO;
156
- if (!didLogOutcome) {
157
- didLogOutcome = YES;
158
- if (DevConnectEmbeddedFirstHooksActive()) {
159
- NSLog(@"[DevConnect] embedded-first hook active");
160
- } else {
161
- NSLog(@"[DevConnect] embedded-first hooks FAILED — rebuild / check React linkage");
162
- }
163
- }
164
- }
165
-
166
- NSURL *DebugToolkitMetroBundleURL(void)
167
- {
168
- return DevConnectMetroURLForPersistedHost();
169
- }
170
-
171
- // RCT_EXPORT_MODULE defines +load for module registration — use a separate class for hooks.
172
- @interface DebugToolkitDevConnectBootstrap : NSObject
173
- @end
174
-
175
- @implementation DebugToolkitDevConnectBootstrap
176
-
177
- + (void)load
178
- {
179
- DebugToolkitPrepareBundleSourceIfNeeded();
180
- DebugToolkitInstallAllHooks();
181
- }
182
-
183
- @end
184
-
185
- #pragma mark - Module
186
-
187
9
  @interface DebugToolkitDevConnect : NSObject <RCTBridgeModule>
188
10
  @end
189
11
 
@@ -191,152 +13,9 @@ NSURL *DebugToolkitMetroBundleURL(void)
191
13
 
192
14
  RCT_EXPORT_MODULE(DebugToolkitDevConnect)
193
15
 
194
- @synthesize bridge = _bridge;
195
- @synthesize bundleManager = _bundleManager;
196
-
197
- - (instancetype)init
198
- {
199
- if ((self = [super init])) {
200
- DebugToolkitInstallAllHooks();
201
- }
202
- return self;
203
- }
204
-
205
16
  + (BOOL)requiresMainQueueSetup { return NO; }
206
17
  - (dispatch_queue_t)methodQueue { return dispatch_get_main_queue(); }
207
18
 
208
- #pragma mark - Bundle Manager Resolution
209
-
210
- - (RCTBundleManager *)resolveBundleManager
211
- {
212
- if (_bundleManager) return _bundleManager;
213
- if (_bridge) return [_bridge moduleForClass:[RCTBundleManager class]];
214
- return nil;
215
- }
216
-
217
- #pragma mark - Host Parsing
218
-
219
- - (NSString *)normalizeHostPort:(NSString *)hostPort
220
- {
221
- NSRange sep = [hostPort rangeOfString:@":" options:NSBackwardsSearch];
222
- NSString *host = sep.location == NSNotFound ? hostPort : [hostPort substringToIndex:sep.location];
223
- NSString *portStr = sep.location == NSNotFound ? @"" : [hostPort substringFromIndex:sep.location + 1];
224
-
225
- NSNumberFormatter *formatter = [NSNumberFormatter new];
226
- formatter.numberStyle = NSNumberFormatterDecimalStyle;
227
- NSNumber *parsed = [formatter numberFromString:portStr];
228
- int port;
229
- if (parsed && parsed.intValue > 0 && parsed.intValue <= 65535) {
230
- port = parsed.intValue;
231
- } else {
232
- #ifdef RCT_METRO_PORT
233
- port = RCT_METRO_PORT;
234
- #else
235
- port = 8081;
236
- #endif
237
- }
238
- return [NSString stringWithFormat:@"%@:%d", host, port];
239
- }
240
-
241
- #pragma mark - Reload helper
242
-
243
- - (void)reloadWithBundleURL:(NSURL *)bundleURL reason:(NSString *)reason
244
- {
245
- if (bundleURL) {
246
- RCTBundleManager *bm = [self resolveBundleManager];
247
- if (bm) bm.bundleURL = bundleURL;
248
- RCTReloadCommandSetBundleURL(bundleURL);
249
- }
250
- RCTTriggerReloadCommandListeners(reason);
251
- }
252
-
253
- #pragma mark - Exported Methods
254
-
255
- RCT_EXPORT_METHOD(applyMetroHost:(NSString *)hostPort
256
- resolver:(RCTPromiseResolveBlock)resolve
257
- rejecter:(RCTPromiseRejectBlock)reject)
258
- {
259
- @try {
260
- if (hostPort.length == 0) {
261
- reject(@"invalid_host", @"Metro host cannot be empty.", nil);
262
- return;
263
- }
264
- NSString *normalized = [self normalizeHostPort:hostPort];
265
-
266
- DevConnectSetPersistedMetroHost(normalized);
267
-
268
- RCTBundleURLProvider *settings = [RCTBundleURLProvider sharedSettings];
269
- settings.jsLocation = normalized;
270
- NSURL *bundleURL = [settings jsBundleURLForBundleRoot:DevConnectMetroBundleRoot()];
271
-
272
- [self reloadWithBundleURL:bundleURL reason:@"Dev menu - apply changes"];
273
-
274
- NSLog(@"[DevConnect] applyMetroHost host=%@ url=%@", normalized, bundleURL);
275
- resolve(@{
276
- @"hostPort": normalized,
277
- @"bundleURL": bundleURL.absoluteString ?: [NSNull null],
278
- });
279
- } @catch (NSException *e) {
280
- NSLog(@"[DevConnect] applyMetroHost EXCEPTION: %@", e.reason);
281
- reject(@"native_error", e.reason ?: @"unknown", nil);
282
- }
283
- }
284
-
285
- RCT_EXPORT_METHOD(resetMetroHost:(RCTPromiseResolveBlock)resolve
286
- rejecter:(__unused RCTPromiseRejectBlock)reject)
287
- {
288
- @try {
289
- DevConnectSetPersistedMetroHost(nil);
290
-
291
- RCTBundleURLProvider *settings = [RCTBundleURLProvider sharedSettings];
292
- [settings resetToDefaults];
293
-
294
- NSURL *embedded = DebugToolkitEmbeddedBundleURL();
295
- if (!embedded) {
296
- embedded = [settings jsBundleURLForFallbackExtension:nil];
297
- }
298
-
299
- [self reloadWithBundleURL:embedded reason:@"Dev menu - reset to default"];
300
-
301
- NSLog(@"[DevConnect] resetMetroHost url=%@", embedded);
302
- resolve([NSNull null]);
303
- } @catch (NSException *e) {
304
- NSLog(@"[DevConnect] resetMetroHost EXCEPTION: %@", e.reason);
305
- reject(@"native_error", e.reason ?: @"unknown", nil);
306
- }
307
- }
308
-
309
- RCT_EXPORT_METHOD(getMetroHost:(RCTPromiseResolveBlock)resolve
310
- rejecter:(__unused RCTPromiseRejectBlock)reject)
311
- {
312
- NSString *host = DevConnectPersistedMetroHost();
313
- resolve(host.length > 0 ? host : [NSNull null]);
314
- }
315
-
316
- RCT_EXPORT_METHOD(getDiagnostics:(RCTPromiseResolveBlock)resolve
317
- rejecter:(__unused RCTPromiseRejectBlock)reject)
318
- {
319
- Class realDelegate = object_getClass([UIApplication sharedApplication].delegate);
320
- NSString *delegateName = realDelegate ? NSStringFromClass(realDelegate) : @"unknown";
321
- NSString *persisted = DevConnectPersistedMetroHost();
322
-
323
- #if DEBUG
324
- BOOL isDebug = YES;
325
- #else
326
- BOOL isDebug = NO;
327
- #endif
328
-
329
- resolve(@{
330
- @"persistedMetroHost": persisted.length > 0 ? persisted : [NSNull null],
331
- @"appDelegateClass": delegateName,
332
- @"isDebugBuild": @(isDebug),
333
- @"hasEmbeddedBundle": @(DebugToolkitEmbeddedBundleURL() != nil),
334
- @"embeddedFirstHookInstalled": @(DevConnectEmbeddedFirstHooksActive()),
335
- @"packagerHookInstalled": @NO,
336
- @"bundleRootHookInstalled": @(gBundleRootHookInstalled),
337
- });
338
- }
339
-
340
19
  RCT_EXPORT_METHOD(getPreference:(NSString *)key
341
20
  resolver:(RCTPromiseResolveBlock)resolve
342
21
  rejecter:(__unused RCTPromiseRejectBlock)reject)
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LEVEL_ICONS = exports.LEVEL_COLORS = void 0;
7
+ const LEVEL_COLORS = exports.LEVEL_COLORS = {
8
+ log: '#8E8E93',
9
+ info: '#007AFF',
10
+ warn: '#FF9500',
11
+ error: '#FF3B30'
12
+ };
13
+ const LEVEL_ICONS = exports.LEVEL_ICONS = {
14
+ log: '●',
15
+ info: 'ℹ',
16
+ warn: '⚠',
17
+ error: '✕'
18
+ };
19
+ //# sourceMappingURL=logLevels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["LEVEL_COLORS","exports","log","info","warn","error","LEVEL_ICONS"],"sourceRoot":"../../../src","sources":["constants/logLevels.ts"],"mappings":";;;;;;AAAO,MAAMA,YAAoC,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAClDE,GAAG,EAAE,SAAS;EACdC,IAAI,EAAE,SAAS;EACfC,IAAI,EAAE,SAAS;EACfC,KAAK,EAAE;AACT,CAAC;AAEM,MAAMC,WAAmC,GAAAL,OAAA,CAAAK,WAAA,GAAG;EACjDJ,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,GAAG;EACTC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE;AACT,CAAC","ignoreList":[]}
@@ -13,45 +13,54 @@ var _track = require("../features/track");
13
13
  var _environment = require("../features/environment");
14
14
  var _clipboard = require("../features/clipboard");
15
15
  var _devConnect = require("../features/devConnect");
16
+ var _sessionHistory = require("../features/sessionHistory");
16
17
  var _DaemonClient = require("../utils/DaemonClient");
18
+ var _logRuntime = require("../utils/logRuntime");
17
19
  const isDebugMode = __DEV__;
18
20
 
19
21
  /** Feature-specific configuration map */
20
22
 
21
23
  /** Registry mapping feature names to creator functions */
22
- // Config param requires `any` — each factory accepts a different config type.
23
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
24
  const featureRegistry = {
25
- network: _network.createNetworkFeature,
26
- console: _console.createConsoleLogFeature,
27
- zustand: _zustand.createZustandLogFeature,
28
- navigation: _navigation.createNavigationLogFeature,
29
- track: _track.createTrackFeature,
30
- environment: _environment.createEnvironmentFeature,
31
- clipboard: _clipboard.createClipboardFeature,
32
- devConnect: _devConnect.createDevConnectFeature
25
+ network: (config, runtime) => (0, _network.createNetworkFeature)(config, runtime),
26
+ console: (config, runtime) => (0, _console.createConsoleLogFeature)(config, runtime),
27
+ zustand: config => (0, _zustand.createZustandLogFeature)(config),
28
+ navigation: config => (0, _navigation.createNavigationLogFeature)(config),
29
+ track: (config, runtime) => (0, _track.createTrackFeature)(config, runtime),
30
+ environment: config => (0, _environment.createEnvironmentFeature)(config),
31
+ clipboard: () => (0, _clipboard.createClipboardFeature)(),
32
+ devConnect: () => (0, _devConnect.createDevConnectFeature)(),
33
+ sessionHistory: (_config, runtime) => (0, _sessionHistory.createSessionHistoryFeature)(runtime)
33
34
  };
34
- const DEFAULT_FEATURES = ['network', 'console', 'navigation', 'zustand', 'track', 'clipboard', 'devConnect'];
35
- function resolveFeatureConfigs(configs) {
35
+ const DEFAULT_FEATURES = ['network', 'console', 'navigation', 'zustand', 'track', 'clipboard', 'devConnect', 'sessionHistory'];
36
+ function resolveFeatureConfigs(configs, runtime) {
36
37
  const features = [];
37
38
  const entries = Object.entries(configs);
38
39
  for (const [name, config] of entries) {
39
- if (config === false) continue;
40
+ if (config === false) {
41
+ continue;
42
+ }
40
43
  const creator = featureRegistry[name];
41
44
  if (!creator) {
42
45
  console.warn(`[DebugToolkit] Unknown feature: "${name}"`);
43
46
  continue;
44
47
  }
45
48
  if (config === true || config === undefined) {
46
- features.push(creator());
49
+ features.push(creator(undefined, runtime));
47
50
  } else if (typeof config === 'object') {
48
- features.push(creator(config));
51
+ features.push(creator(config, runtime));
49
52
  }
50
53
  }
51
54
  return features;
52
55
  }
53
- function resolveDefaultFeatures() {
54
- return DEFAULT_FEATURES.map(name => featureRegistry[name]());
56
+ function resolveDefaultFeatures(runtime) {
57
+ return DEFAULT_FEATURES.map(name => featureRegistry[name](undefined, runtime));
58
+ }
59
+ function appendCustomFeatures(builtInFeatures, customFeatures) {
60
+ if (!customFeatures || customFeatures.length === 0) {
61
+ return builtInFeatures;
62
+ }
63
+ return [...builtInFeatures, ...customFeatures];
55
64
  }
56
65
 
57
66
  /**
@@ -77,14 +86,23 @@ async function initializeDebugToolkit(options) {
77
86
  enabled = isDebugMode;
78
87
  }
79
88
  }
80
- const resolvedFeatures = options?.features ? resolveFeatureConfigs(options.features) : resolveDefaultFeatures();
81
89
  try {
82
90
  _DebugToolkit.DebugToolkit.setEnabled(enabled);
83
91
  if (!enabled) {
92
+ _DaemonClient.daemonClient.clearSessionProvider();
84
93
  _DebugToolkit.DebugToolkit.reset();
85
94
  return _DebugToolkit.DebugToolkit;
86
95
  }
96
+ const runtime = (0, _logRuntime.createLogRuntime)({
97
+ logStorage: options?.logStorage,
98
+ maxSessions: options?.maxLogSessions
99
+ });
100
+ (0, _logRuntime.setDefaultLogRuntime)(runtime);
101
+ _DaemonClient.daemonClient.setSessionProvider(() => runtime.sessionManager.getCurrentSession());
102
+ const resolvedBuiltInFeatures = options?.features ? resolveFeatureConfigs(options.features, runtime) : resolveDefaultFeatures(runtime);
103
+ const resolvedFeatures = appendCustomFeatures(resolvedBuiltInFeatures, options?.customFeatures);
87
104
  _DebugToolkit.DebugToolkit.replaceFeatures(resolvedFeatures);
105
+ runtime.sessionManager.initialize().catch(() => {});
88
106
  _DaemonClient.daemonClient.setEndpointDetector(url => {
89
107
  (0, _network.addToBlacklist)(url);
90
108
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_DebugToolkit","require","_network","_console","_zustand","_navigation","_track","_environment","_clipboard","_devConnect","_DaemonClient","isDebugMode","__DEV__","featureRegistry","network","createNetworkFeature","console","createConsoleLogFeature","zustand","createZustandLogFeature","navigation","createNavigationLogFeature","track","createTrackFeature","environment","createEnvironmentFeature","clipboard","createClipboardFeature","devConnect","createDevConnectFeature","DEFAULT_FEATURES","resolveFeatureConfigs","configs","features","entries","Object","name","config","creator","warn","undefined","push","resolveDefaultFeatures","map","initializeDebugToolkit","options","enabled","nativeResult","nativeIsDebugBuild","resolvedFeatures","DebugToolkit","setEnabled","reset","replaceFeatures","daemonClient","setEndpointDetector","url","addToBlacklist","hasFeatures","showLauncher","hideLauncher","restoreDevConnectSettingsToDaemon","then","restore","catch","error"],"sourceRoot":"../../../src","sources":["core/initialize.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_DebugToolkit","require","_network","_console","_zustand","_navigation","_track","_environment","_clipboard","_devConnect","_sessionHistory","_DaemonClient","_logRuntime","isDebugMode","__DEV__","featureRegistry","network","config","runtime","createNetworkFeature","console","createConsoleLogFeature","zustand","createZustandLogFeature","navigation","createNavigationLogFeature","track","createTrackFeature","environment","createEnvironmentFeature","clipboard","createClipboardFeature","devConnect","createDevConnectFeature","sessionHistory","_config","createSessionHistoryFeature","DEFAULT_FEATURES","resolveFeatureConfigs","configs","features","entries","Object","name","creator","warn","undefined","push","resolveDefaultFeatures","map","appendCustomFeatures","builtInFeatures","customFeatures","length","initializeDebugToolkit","options","enabled","nativeResult","nativeIsDebugBuild","DebugToolkit","setEnabled","daemonClient","clearSessionProvider","reset","createLogRuntime","logStorage","maxSessions","maxLogSessions","setDefaultLogRuntime","setSessionProvider","sessionManager","getCurrentSession","resolvedBuiltInFeatures","resolvedFeatures","replaceFeatures","initialize","catch","setEndpointDetector","url","addToBlacklist","hasFeatures","showLauncher","hideLauncher","restoreDevConnectSettingsToDaemon","then","restore","error"],"sourceRoot":"../../../src","sources":["core/initialize.ts"],"mappings":"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","ignoreList":[]}
@@ -13,20 +13,9 @@ var _JsonView = require("../../ui/shared/JsonView");
13
13
  var _CopyButton = require("../../ui/shared/CopyButton");
14
14
  var _LogListScreen = require("../../ui/shared/LogListScreen");
15
15
  var _copyToComputer = require("../../utils/copyToComputer");
16
+ var _logLevels = require("../../constants/logLevels");
16
17
  var _jsxRuntime = require("react/jsx-runtime");
17
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
- const LEVEL_COLORS = {
19
- log: '#8E8E93',
20
- info: '#007AFF',
21
- warn: '#FF9500',
22
- error: '#FF3B30'
23
- };
24
- const LEVEL_ICONS = {
25
- log: '●',
26
- info: 'ℹ',
27
- warn: '⚠',
28
- error: '✕'
29
- };
30
19
  const ConsoleLogTab = exports.ConsoleLogTab = /*#__PURE__*/_react.default.memo(({
31
20
  snapshot
32
21
  }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_LogListScreen.LogListScreen, {
@@ -36,11 +25,11 @@ const ConsoleLogTab = exports.ConsoleLogTab = /*#__PURE__*/_react.default.memo((
36
25
  style: s.cardRow,
37
26
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
38
27
  style: [s.levelDot, {
39
- backgroundColor: LEVEL_COLORS[item.level] ?? '#8E8E93'
28
+ backgroundColor: _logLevels.LEVEL_COLORS[item.level] ?? '#8E8E93'
40
29
  }],
41
30
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
42
31
  style: s.levelIcon,
43
- children: LEVEL_ICONS[item.level] ?? '●'
32
+ children: _logLevels.LEVEL_ICONS[item.level] ?? '●'
44
33
  })
45
34
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
46
35
  style: s.cardContent,
@@ -57,7 +46,7 @@ const ConsoleLogTab = exports.ConsoleLogTab = /*#__PURE__*/_react.default.memo((
57
46
  renderDetailHeader: item => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
58
47
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
59
48
  style: [s.levelBadge, {
60
- backgroundColor: LEVEL_COLORS[item.level] ?? '#8E8E93'
49
+ backgroundColor: _logLevels.LEVEL_COLORS[item.level] ?? '#8E8E93'
61
50
  }],
62
51
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
63
52
  style: s.levelBadgeText,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_colors","_safeStringify","_CollapsibleSection","_JsonView","_CopyButton","_LogListScreen","_copyToComputer","_jsxRuntime","e","__esModule","default","LEVEL_COLORS","log","info","warn","error","LEVEL_ICONS","ConsoleLogTab","exports","React","memo","snapshot","jsx","LogListScreen","data","emptyText","renderRow","item","jsxs","View","style","s","cardRow","children","levelDot","backgroundColor","level","Text","levelIcon","cardContent","logMessage","numberOfLines","map","d","safeStringify","join","time","Date","timestamp","toLocaleTimeString","renderDetailHeader","Fragment","levelBadge","levelBadgeText","toUpperCase","detailTime","toLocaleString","renderDetailBody","ScrollView","detailBody","contentContainerStyle","detailBodyContent","index","formatted","fmt","String","CollapsibleSection","title","initiallyExpanded","sectionWithCopy","CopyButton","text","label","JsonView","maxHeight","plainText","selectable","StyleSheet","create","flexDirection","padding","alignItems","width","height","borderRadius","justifyContent","marginRight","marginTop","color","fontSize","fontWeight","flex","Colors","lineHeight","textSecondary","paddingHorizontal","paddingVertical","textAlign","gap","fontFamily"],"sourceRoot":"../../../../src","sources":["features/console/ConsoleLogTab.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_colors","_safeStringify","_CollapsibleSection","_JsonView","_CopyButton","_LogListScreen","_copyToComputer","_logLevels","_jsxRuntime","e","__esModule","default","ConsoleLogTab","exports","React","memo","snapshot","jsx","LogListScreen","data","emptyText","renderRow","item","jsxs","View","style","s","cardRow","children","levelDot","backgroundColor","LEVEL_COLORS","level","Text","levelIcon","LEVEL_ICONS","cardContent","logMessage","numberOfLines","map","d","safeStringify","join","time","Date","timestamp","toLocaleTimeString","renderDetailHeader","Fragment","levelBadge","levelBadgeText","toUpperCase","detailTime","toLocaleString","renderDetailBody","ScrollView","detailBody","contentContainerStyle","detailBodyContent","index","formatted","fmt","String","CollapsibleSection","title","initiallyExpanded","sectionWithCopy","CopyButton","text","label","JsonView","maxHeight","plainText","selectable","StyleSheet","create","flexDirection","padding","alignItems","width","height","borderRadius","justifyContent","marginRight","marginTop","color","fontSize","fontWeight","flex","Colors","lineHeight","textSecondary","paddingHorizontal","paddingVertical","textAlign","gap","fontFamily"],"sourceRoot":"../../../../src","sources":["features/console/ConsoleLogTab.tsx"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,7 @@ exports._resetConsoleForTesting = _resetConsoleForTesting;
7
7
  exports.createConsoleLogFeature = void 0;
8
8
  var _ConsoleLogTab = require("./ConsoleLogTab");
9
9
  var _createPersistedObservableStore = require("../../utils/createPersistedObservableStore");
10
- var _debugPreferences = require("../../utils/debugPreferences");
10
+ var _logRuntime = require("../../utils/logRuntime");
11
11
  const LEVELS = ['log', 'info', 'warn', 'error'];
12
12
 
13
13
  // ─── Console capture manager (encapsulated mutable state) ──
@@ -17,7 +17,9 @@ const consoleCapture = (() => {
17
17
  let refCount = 0;
18
18
  function stop() {
19
19
  refCount = Math.max(0, refCount - 1);
20
- if (refCount > 0) return;
20
+ if (refCount > 0) {
21
+ return;
22
+ }
21
23
  LEVELS.forEach(level => {
22
24
  const original = originalMethods[level];
23
25
  if (original) {
@@ -73,10 +75,11 @@ const consoleCapture = (() => {
73
75
  // ─── Feature factory ──────────────────────────────────
74
76
 
75
77
  const DEFAULT_MAX_LOGS = 200;
76
- const createConsoleLogFeature = config => {
78
+ const createConsoleLogFeature = (config, runtime = (0, _logRuntime.getDefaultLogRuntime)()) => {
77
79
  const maxLogs = config?.maxLogs ?? DEFAULT_MAX_LOGS;
78
80
  const logStore = (0, _createPersistedObservableStore.createPersistedObservableStore)({
79
- storageKey: _debugPreferences.KEYS.consoleLogs,
81
+ storage: runtime.logStorage,
82
+ storageKey: runtime.sessionManager.getLogStorageKey('console_logs'),
80
83
  maxPersist: 50
81
84
  });
82
85
  let initialized = false;
@@ -86,7 +89,9 @@ const createConsoleLogFeature = config => {
86
89
  label: 'Console',
87
90
  renderContent: _ConsoleLogTab.ConsoleLogTab,
88
91
  setup: () => {
89
- if (initialized) return;
92
+ if (initialized) {
93
+ return;
94
+ }
90
95
  stopCapture = consoleCapture.start(entry => {
91
96
  logStore.push({
92
97
  ...entry,
@@ -97,13 +102,15 @@ const createConsoleLogFeature = config => {
97
102
  },
98
103
  getSnapshot: () => logStore.getData(),
99
104
  clear: () => {
100
- logStore.clear();
105
+ logStore.clearPersisted();
101
106
  },
102
107
  cleanup: () => {
103
- if (!initialized) return;
108
+ if (!initialized) {
109
+ return;
110
+ }
104
111
  stopCapture?.();
105
112
  stopCapture = null;
106
- logStore.clear();
113
+ logStore.dispose();
107
114
  initialized = false;
108
115
  },
109
116
  subscribe: listener => logStore.subscribe(listener)