react-native-debug-toolkit 0.6.4 → 2.1.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 (340) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +149 -211
  3. package/README.zh-CN.md +150 -171
  4. package/lib/commonjs/components/ClipboardTab.js +91 -0
  5. package/lib/commonjs/components/ClipboardTab.js.map +1 -0
  6. package/lib/commonjs/components/ConsoleLogTab.js +162 -0
  7. package/lib/commonjs/components/ConsoleLogTab.js.map +1 -0
  8. package/lib/commonjs/components/DebugPanel.js +230 -0
  9. package/lib/commonjs/components/DebugPanel.js.map +1 -0
  10. package/lib/commonjs/components/DebugView.js +66 -0
  11. package/lib/commonjs/components/DebugView.js.map +1 -0
  12. package/lib/commonjs/components/EnvironmentTab.js +287 -0
  13. package/lib/commonjs/components/EnvironmentTab.js.map +1 -0
  14. package/lib/commonjs/components/FeatureTabBar.js +182 -0
  15. package/lib/commonjs/components/FeatureTabBar.js.map +1 -0
  16. package/lib/commonjs/components/FloatIcon.js +187 -0
  17. package/lib/commonjs/components/FloatIcon.js.map +1 -0
  18. package/lib/commonjs/components/FloatPanelView.js +214 -0
  19. package/lib/commonjs/components/FloatPanelView.js.map +1 -0
  20. package/lib/commonjs/components/NavigationLogTab.js +131 -0
  21. package/lib/commonjs/components/NavigationLogTab.js.map +1 -0
  22. package/lib/commonjs/components/NetworkLogTab.js +404 -0
  23. package/lib/commonjs/components/NetworkLogTab.js.map +1 -0
  24. package/lib/commonjs/components/ThirdPartyLibsTab.js +97 -0
  25. package/lib/commonjs/components/ThirdPartyLibsTab.js.map +1 -0
  26. package/lib/commonjs/components/TrackLogTab.js +230 -0
  27. package/lib/commonjs/components/TrackLogTab.js.map +1 -0
  28. package/lib/commonjs/components/ZustandLogTab.js +311 -0
  29. package/lib/commonjs/components/ZustandLogTab.js.map +1 -0
  30. package/lib/commonjs/components/shared/CollapsibleSection.js +84 -0
  31. package/lib/commonjs/components/shared/CollapsibleSection.js.map +1 -0
  32. package/lib/commonjs/components/shared/CopyButton.js +64 -0
  33. package/lib/commonjs/components/shared/CopyButton.js.map +1 -0
  34. package/lib/commonjs/components/shared/JsonView.js +157 -0
  35. package/lib/commonjs/components/shared/JsonView.js.map +1 -0
  36. package/lib/commonjs/components/shared/LogListScreen.js +174 -0
  37. package/lib/commonjs/components/shared/LogListScreen.js.map +1 -0
  38. package/lib/commonjs/core/DebugToolkit.js +122 -0
  39. package/lib/commonjs/core/DebugToolkit.js.map +1 -0
  40. package/lib/commonjs/core/DebugToolkitProvider.js +66 -0
  41. package/lib/commonjs/core/DebugToolkitProvider.js.map +1 -0
  42. package/lib/commonjs/features/ClipboardFeature.js +21 -0
  43. package/lib/commonjs/features/ClipboardFeature.js.map +1 -0
  44. package/lib/commonjs/features/ConsoleLogFeature.js +115 -0
  45. package/lib/commonjs/features/ConsoleLogFeature.js.map +1 -0
  46. package/lib/commonjs/features/EnvironmentFeature.js +160 -0
  47. package/lib/commonjs/features/EnvironmentFeature.js.map +1 -0
  48. package/lib/commonjs/features/NavigationLogFeature.js +39 -0
  49. package/lib/commonjs/features/NavigationLogFeature.js.map +1 -0
  50. package/lib/commonjs/features/NetworkFeature.js +107 -0
  51. package/lib/commonjs/features/NetworkFeature.js.map +1 -0
  52. package/lib/commonjs/features/ThirdPartyLibsFeature.js +51 -0
  53. package/lib/commonjs/features/ThirdPartyLibsFeature.js.map +1 -0
  54. package/lib/commonjs/features/TrackFeature.js +34 -0
  55. package/lib/commonjs/features/TrackFeature.js.map +1 -0
  56. package/lib/commonjs/features/ZustandLogFeature.js +59 -0
  57. package/lib/commonjs/features/ZustandLogFeature.js.map +1 -0
  58. package/lib/commonjs/hooks/useNavigationLogger.js +78 -0
  59. package/lib/commonjs/hooks/useNavigationLogger.js.map +1 -0
  60. package/lib/commonjs/hooks/useSlideDetailAnimation.js +53 -0
  61. package/lib/commonjs/hooks/useSlideDetailAnimation.js.map +1 -0
  62. package/lib/commonjs/index.js +152 -0
  63. package/lib/commonjs/index.js.map +1 -0
  64. package/lib/commonjs/initialize.js +84 -0
  65. package/lib/commonjs/initialize.js.map +1 -0
  66. package/lib/commonjs/interceptors/networkInterceptor.js +466 -0
  67. package/lib/commonjs/interceptors/networkInterceptor.js.map +1 -0
  68. package/lib/commonjs/native/NativeDebugLibs.js +58 -0
  69. package/lib/commonjs/native/NativeDebugLibs.js.map +1 -0
  70. package/lib/commonjs/package.json +1 -0
  71. package/lib/commonjs/types/index.js +6 -0
  72. package/lib/commonjs/types/index.js.map +1 -0
  73. package/lib/commonjs/utils/colors.js +48 -0
  74. package/lib/commonjs/utils/colors.js.map +1 -0
  75. package/lib/commonjs/utils/copyToComputer.js +97 -0
  76. package/lib/commonjs/utils/copyToComputer.js.map +1 -0
  77. package/lib/commonjs/utils/createChannelFeature.js +48 -0
  78. package/lib/commonjs/utils/createChannelFeature.js.map +1 -0
  79. package/lib/commonjs/utils/createEventChannel.js +21 -0
  80. package/lib/commonjs/utils/createEventChannel.js.map +1 -0
  81. package/lib/commonjs/utils/createObservableStore.js +38 -0
  82. package/lib/commonjs/utils/createObservableStore.js.map +1 -0
  83. package/lib/commonjs/utils/layout.js +8 -0
  84. package/lib/commonjs/utils/layout.js.map +1 -0
  85. package/lib/commonjs/utils/safeStringify.js +27 -0
  86. package/lib/commonjs/utils/safeStringify.js.map +1 -0
  87. package/lib/commonjs/utils/urlRewriterRegistry.js +14 -0
  88. package/lib/commonjs/utils/urlRewriterRegistry.js.map +1 -0
  89. package/lib/module/components/ClipboardTab.js +86 -0
  90. package/lib/module/components/ClipboardTab.js.map +1 -0
  91. package/lib/module/components/ConsoleLogTab.js +157 -0
  92. package/lib/module/components/ConsoleLogTab.js.map +1 -0
  93. package/lib/module/components/DebugPanel.js +225 -0
  94. package/lib/module/components/DebugPanel.js.map +1 -0
  95. package/lib/module/components/DebugView.js +61 -0
  96. package/lib/module/components/DebugView.js.map +1 -0
  97. package/lib/module/components/EnvironmentTab.js +282 -0
  98. package/lib/module/components/EnvironmentTab.js.map +1 -0
  99. package/lib/module/components/FeatureTabBar.js +177 -0
  100. package/lib/module/components/FeatureTabBar.js.map +1 -0
  101. package/lib/module/components/FloatIcon.js +182 -0
  102. package/lib/module/components/FloatIcon.js.map +1 -0
  103. package/lib/module/components/FloatPanelView.js +209 -0
  104. package/lib/module/components/FloatPanelView.js.map +1 -0
  105. package/lib/module/components/NavigationLogTab.js +126 -0
  106. package/lib/module/components/NavigationLogTab.js.map +1 -0
  107. package/lib/module/components/NetworkLogTab.js +399 -0
  108. package/lib/module/components/NetworkLogTab.js.map +1 -0
  109. package/lib/module/components/ThirdPartyLibsTab.js +91 -0
  110. package/lib/module/components/ThirdPartyLibsTab.js.map +1 -0
  111. package/lib/module/components/TrackLogTab.js +225 -0
  112. package/lib/module/components/TrackLogTab.js.map +1 -0
  113. package/lib/module/components/ZustandLogTab.js +306 -0
  114. package/lib/module/components/ZustandLogTab.js.map +1 -0
  115. package/lib/module/components/shared/CollapsibleSection.js +78 -0
  116. package/lib/module/components/shared/CollapsibleSection.js.map +1 -0
  117. package/lib/module/components/shared/CopyButton.js +58 -0
  118. package/lib/module/components/shared/CopyButton.js.map +1 -0
  119. package/lib/module/components/shared/JsonView.js +152 -0
  120. package/lib/module/components/shared/JsonView.js.map +1 -0
  121. package/lib/module/components/shared/LogListScreen.js +169 -0
  122. package/lib/module/components/shared/LogListScreen.js.map +1 -0
  123. package/lib/module/core/DebugToolkit.js +118 -0
  124. package/lib/module/core/DebugToolkit.js.map +1 -0
  125. package/lib/module/core/DebugToolkitProvider.js +60 -0
  126. package/lib/module/core/DebugToolkitProvider.js.map +1 -0
  127. package/lib/module/features/ClipboardFeature.js +16 -0
  128. package/lib/module/features/ClipboardFeature.js.map +1 -0
  129. package/lib/module/features/ConsoleLogFeature.js +109 -0
  130. package/lib/module/features/ConsoleLogFeature.js.map +1 -0
  131. package/lib/module/features/EnvironmentFeature.js +156 -0
  132. package/lib/module/features/EnvironmentFeature.js.map +1 -0
  133. package/lib/module/features/NavigationLogFeature.js +32 -0
  134. package/lib/module/features/NavigationLogFeature.js.map +1 -0
  135. package/lib/module/features/NetworkFeature.js +101 -0
  136. package/lib/module/features/NetworkFeature.js.map +1 -0
  137. package/lib/module/features/ThirdPartyLibsFeature.js +46 -0
  138. package/lib/module/features/ThirdPartyLibsFeature.js.map +1 -0
  139. package/lib/module/features/TrackFeature.js +27 -0
  140. package/lib/module/features/TrackFeature.js.map +1 -0
  141. package/lib/module/features/ZustandLogFeature.js +53 -0
  142. package/lib/module/features/ZustandLogFeature.js.map +1 -0
  143. package/lib/module/hooks/useNavigationLogger.js +74 -0
  144. package/lib/module/hooks/useNavigationLogger.js.map +1 -0
  145. package/lib/module/hooks/useSlideDetailAnimation.js +50 -0
  146. package/lib/module/hooks/useSlideDetailAnimation.js.map +1 -0
  147. package/lib/module/index.js +28 -0
  148. package/lib/module/index.js.map +1 -0
  149. package/lib/module/initialize.js +80 -0
  150. package/lib/module/initialize.js.map +1 -0
  151. package/lib/module/interceptors/networkInterceptor.js +460 -0
  152. package/lib/module/interceptors/networkInterceptor.js.map +1 -0
  153. package/lib/module/native/NativeDebugLibs.js +54 -0
  154. package/lib/module/native/NativeDebugLibs.js.map +1 -0
  155. package/lib/module/package.json +1 -0
  156. package/lib/module/types/index.js +4 -0
  157. package/lib/module/types/index.js.map +1 -0
  158. package/lib/module/utils/colors.js +43 -0
  159. package/lib/module/utils/colors.js.map +1 -0
  160. package/lib/module/utils/copyToComputer.js +91 -0
  161. package/lib/module/utils/copyToComputer.js.map +1 -0
  162. package/lib/module/utils/createChannelFeature.js +44 -0
  163. package/lib/module/utils/createChannelFeature.js.map +1 -0
  164. package/lib/module/utils/createEventChannel.js +17 -0
  165. package/lib/module/utils/createEventChannel.js.map +1 -0
  166. package/lib/module/utils/createObservableStore.js +34 -0
  167. package/lib/module/utils/createObservableStore.js.map +1 -0
  168. package/lib/module/utils/layout.js +4 -0
  169. package/lib/module/utils/layout.js.map +1 -0
  170. package/lib/module/utils/safeStringify.js +23 -0
  171. package/lib/module/utils/safeStringify.js.map +1 -0
  172. package/lib/module/utils/urlRewriterRegistry.js +10 -0
  173. package/lib/module/utils/urlRewriterRegistry.js.map +1 -0
  174. package/lib/typescript/src/components/ClipboardTab.d.ts +4 -0
  175. package/lib/typescript/src/components/ClipboardTab.d.ts.map +1 -0
  176. package/lib/typescript/src/components/ConsoleLogTab.d.ts +4 -0
  177. package/lib/typescript/src/components/ConsoleLogTab.d.ts.map +1 -0
  178. package/lib/typescript/src/components/DebugPanel.d.ts +9 -0
  179. package/lib/typescript/src/components/DebugPanel.d.ts.map +1 -0
  180. package/lib/typescript/src/components/DebugView.d.ts +19 -0
  181. package/lib/typescript/src/components/DebugView.d.ts.map +1 -0
  182. package/lib/typescript/src/components/EnvironmentTab.d.ts +4 -0
  183. package/lib/typescript/src/components/EnvironmentTab.d.ts.map +1 -0
  184. package/lib/typescript/src/components/FeatureTabBar.d.ts +13 -0
  185. package/lib/typescript/src/components/FeatureTabBar.d.ts.map +1 -0
  186. package/lib/typescript/src/components/FloatIcon.d.ts +12 -0
  187. package/lib/typescript/src/components/FloatIcon.d.ts.map +1 -0
  188. package/lib/typescript/src/components/FloatPanelView.d.ts +9 -0
  189. package/lib/typescript/src/components/FloatPanelView.d.ts.map +1 -0
  190. package/lib/typescript/src/components/NavigationLogTab.d.ts +4 -0
  191. package/lib/typescript/src/components/NavigationLogTab.d.ts.map +1 -0
  192. package/lib/typescript/src/components/NetworkLogTab.d.ts +4 -0
  193. package/lib/typescript/src/components/NetworkLogTab.d.ts.map +1 -0
  194. package/lib/typescript/src/components/ThirdPartyLibsTab.d.ts +4 -0
  195. package/lib/typescript/src/components/ThirdPartyLibsTab.d.ts.map +1 -0
  196. package/lib/typescript/src/components/TrackLogTab.d.ts +4 -0
  197. package/lib/typescript/src/components/TrackLogTab.d.ts.map +1 -0
  198. package/lib/typescript/src/components/ZustandLogTab.d.ts +4 -0
  199. package/lib/typescript/src/components/ZustandLogTab.d.ts.map +1 -0
  200. package/lib/typescript/src/components/shared/CollapsibleSection.d.ts +9 -0
  201. package/lib/typescript/src/components/shared/CollapsibleSection.d.ts.map +1 -0
  202. package/lib/typescript/src/components/shared/CopyButton.d.ts +12 -0
  203. package/lib/typescript/src/components/shared/CopyButton.d.ts.map +1 -0
  204. package/lib/typescript/src/components/shared/JsonView.d.ts +6 -0
  205. package/lib/typescript/src/components/shared/JsonView.d.ts.map +1 -0
  206. package/lib/typescript/src/components/shared/LogListScreen.d.ts +21 -0
  207. package/lib/typescript/src/components/shared/LogListScreen.d.ts.map +1 -0
  208. package/lib/typescript/src/core/DebugToolkit.d.ts +20 -0
  209. package/lib/typescript/src/core/DebugToolkit.d.ts.map +1 -0
  210. package/lib/typescript/src/core/DebugToolkitProvider.d.ts +15 -0
  211. package/lib/typescript/src/core/DebugToolkitProvider.d.ts.map +1 -0
  212. package/lib/typescript/src/features/ClipboardFeature.d.ts +7 -0
  213. package/lib/typescript/src/features/ClipboardFeature.d.ts.map +1 -0
  214. package/lib/typescript/src/features/ConsoleLogFeature.d.ts +9 -0
  215. package/lib/typescript/src/features/ConsoleLogFeature.d.ts.map +1 -0
  216. package/lib/typescript/src/features/EnvironmentFeature.d.ts +8 -0
  217. package/lib/typescript/src/features/EnvironmentFeature.d.ts.map +1 -0
  218. package/lib/typescript/src/features/NavigationLogFeature.d.ts +10 -0
  219. package/lib/typescript/src/features/NavigationLogFeature.d.ts.map +1 -0
  220. package/lib/typescript/src/features/NetworkFeature.d.ts +15 -0
  221. package/lib/typescript/src/features/NetworkFeature.d.ts.map +1 -0
  222. package/lib/typescript/src/features/ThirdPartyLibsFeature.d.ts +3 -0
  223. package/lib/typescript/src/features/ThirdPartyLibsFeature.d.ts.map +1 -0
  224. package/lib/typescript/src/features/TrackFeature.d.ts +14 -0
  225. package/lib/typescript/src/features/TrackFeature.d.ts.map +1 -0
  226. package/lib/typescript/src/features/ZustandLogFeature.d.ts +31 -0
  227. package/lib/typescript/src/features/ZustandLogFeature.d.ts.map +1 -0
  228. package/lib/typescript/src/hooks/useNavigationLogger.d.ts +13 -0
  229. package/lib/typescript/src/hooks/useNavigationLogger.d.ts.map +1 -0
  230. package/lib/typescript/src/hooks/useSlideDetailAnimation.d.ts +11 -0
  231. package/lib/typescript/src/hooks/useSlideDetailAnimation.d.ts.map +1 -0
  232. package/lib/typescript/src/index.d.ts +26 -0
  233. package/lib/typescript/src/index.d.ts.map +1 -0
  234. package/lib/typescript/src/initialize.d.ts +32 -0
  235. package/lib/typescript/src/initialize.d.ts.map +1 -0
  236. package/lib/typescript/src/interceptors/networkInterceptor.d.ts +18 -0
  237. package/lib/typescript/src/interceptors/networkInterceptor.d.ts.map +1 -0
  238. package/lib/typescript/src/native/NativeDebugLibs.d.ts +11 -0
  239. package/lib/typescript/src/native/NativeDebugLibs.d.ts.map +1 -0
  240. package/lib/typescript/src/types/index.d.ts +109 -0
  241. package/lib/typescript/src/types/index.d.ts.map +1 -0
  242. package/lib/typescript/src/utils/colors.d.ts +21 -0
  243. package/lib/typescript/src/utils/colors.d.ts.map +1 -0
  244. package/lib/typescript/src/utils/copyToComputer.d.ts +30 -0
  245. package/lib/typescript/src/utils/copyToComputer.d.ts.map +1 -0
  246. package/lib/typescript/src/utils/createChannelFeature.d.ts +18 -0
  247. package/lib/typescript/src/utils/createChannelFeature.d.ts.map +1 -0
  248. package/lib/typescript/src/utils/createEventChannel.d.ts +7 -0
  249. package/lib/typescript/src/utils/createEventChannel.d.ts.map +1 -0
  250. package/lib/typescript/src/utils/createObservableStore.d.ts +9 -0
  251. package/lib/typescript/src/utils/createObservableStore.d.ts.map +1 -0
  252. package/lib/typescript/src/utils/layout.d.ts +2 -0
  253. package/lib/typescript/src/utils/layout.d.ts.map +1 -0
  254. package/lib/typescript/src/utils/safeStringify.d.ts +6 -0
  255. package/lib/typescript/src/utils/safeStringify.d.ts.map +1 -0
  256. package/lib/typescript/src/utils/urlRewriterRegistry.d.ts +7 -0
  257. package/lib/typescript/src/utils/urlRewriterRegistry.d.ts.map +1 -0
  258. package/package.json +67 -24
  259. package/src/components/ClipboardTab.tsx +81 -0
  260. package/src/components/ConsoleLogTab.tsx +95 -0
  261. package/src/components/DebugPanel.tsx +215 -0
  262. package/src/components/DebugView.tsx +80 -0
  263. package/src/components/EnvironmentTab.tsx +276 -0
  264. package/src/components/FeatureTabBar.tsx +204 -0
  265. package/src/components/FloatIcon.tsx +171 -0
  266. package/src/components/FloatPanelView.tsx +202 -0
  267. package/src/components/NavigationLogTab.tsx +66 -0
  268. package/src/components/NetworkLogTab.tsx +270 -0
  269. package/src/components/ThirdPartyLibsTab.tsx +63 -0
  270. package/src/components/TrackLogTab.tsx +110 -0
  271. package/src/components/ZustandLogTab.tsx +203 -0
  272. package/src/components/shared/CollapsibleSection.tsx +78 -0
  273. package/src/components/shared/CopyButton.tsx +68 -0
  274. package/src/components/shared/JsonView.tsx +125 -0
  275. package/src/components/shared/LogListScreen.tsx +164 -0
  276. package/src/core/DebugToolkit.tsx +150 -0
  277. package/src/core/DebugToolkitProvider.tsx +83 -0
  278. package/src/features/ClipboardFeature.ts +15 -0
  279. package/src/features/ConsoleLogFeature.ts +116 -0
  280. package/src/features/EnvironmentFeature.ts +186 -0
  281. package/src/features/NavigationLogFeature.ts +44 -0
  282. package/src/features/NetworkFeature.ts +126 -0
  283. package/src/features/ThirdPartyLibsFeature.ts +42 -0
  284. package/src/features/TrackFeature.ts +34 -0
  285. package/src/features/ZustandLogFeature.ts +101 -0
  286. package/src/hooks/useNavigationLogger.ts +102 -0
  287. package/src/hooks/useSlideDetailAnimation.ts +45 -0
  288. package/src/index.ts +48 -0
  289. package/src/initialize.ts +122 -0
  290. package/src/interceptors/networkInterceptor.ts +646 -0
  291. package/src/native/NativeDebugLibs.ts +74 -0
  292. package/src/types/index.ts +127 -0
  293. package/src/utils/colors.ts +38 -0
  294. package/src/utils/copyToComputer.ts +104 -0
  295. package/src/utils/createChannelFeature.ts +55 -0
  296. package/src/utils/createEventChannel.ts +22 -0
  297. package/src/utils/createObservableStore.ts +42 -0
  298. package/src/utils/layout.ts +1 -0
  299. package/src/utils/safeStringify.ts +25 -0
  300. package/src/utils/urlRewriterRegistry.ts +10 -0
  301. package/.cursor/rules/react-native.mdc +0 -41
  302. package/index.js +0 -41
  303. package/ios/BuildTypeModule.h +0 -9
  304. package/ios/BuildTypeModule.m +0 -42
  305. package/ios/RNDebugLibs.h +0 -10
  306. package/ios/RNDebugLibs.m +0 -79
  307. package/lib/DebugToolKit.js +0 -126
  308. package/lib/EnvironmentManager.ts +0 -80
  309. package/lib/NativeDebugLibs.js +0 -67
  310. package/lib/features/ConsoleLogFeature.js +0 -70
  311. package/lib/features/NavigationLogFeature.js +0 -45
  312. package/lib/features/NetworkFeature.js +0 -389
  313. package/lib/features/PerformanceFeature.js +0 -390
  314. package/lib/features/ThirdPartyLibsFeature.js +0 -63
  315. package/lib/features/TrackFeature.js +0 -94
  316. package/lib/features/ZustandLogFeature.js +0 -44
  317. package/lib/hooks/useNavigationLogger.js +0 -92
  318. package/lib/index.js +0 -114
  319. package/lib/navigation/NavigationLogger.js +0 -1
  320. package/lib/types/TrackTypes.ts +0 -92
  321. package/lib/utils/DebugConst.js +0 -67
  322. package/lib/utils/StorageUtils.js +0 -80
  323. package/lib/views/ConsoleLogDetails.js +0 -314
  324. package/lib/views/FloatPanelView.js +0 -697
  325. package/lib/views/HttpLogDetails.js +0 -648
  326. package/lib/views/NavigationLogDetails.js +0 -302
  327. package/lib/views/RestartModal.js +0 -75
  328. package/lib/views/SubViewConsoleLogs.js +0 -209
  329. package/lib/views/SubViewEnvironment.js +0 -73
  330. package/lib/views/SubViewHTTPLogs.js +0 -235
  331. package/lib/views/SubViewNavigationLogs.js +0 -199
  332. package/lib/views/SubViewPerformance.js +0 -515
  333. package/lib/views/SubViewThirdPartyLibs.js +0 -239
  334. package/lib/views/SubViewTrackLogs.js +0 -318
  335. package/lib/views/SubViewZustandLogs.js +0 -279
  336. package/lib/views/TabView.js +0 -66
  337. package/lib/views/TrackLogDetails.js +0 -481
  338. package/lib/views/ZustandLogDetails.js +0 -355
  339. package/react-native-debug-toolkit.podspec +0 -25
  340. package/react-native.config.js +0 -18
package/README.zh-CN.md CHANGED
@@ -1,230 +1,209 @@
1
+ # React Native Debug Toolkit
1
2
 
3
+ [English](README.md)
2
4
 
5
+ 一个仅用于开发的 React Native 浮动调试面板 — 在设备上直接查看网络请求、控制台日志、状态变化、导航事件等。
3
6
 
4
- # React Native Debug Toolkit 使用文档
7
+ > 生产环境零影响(仅在 `__DEV__` 模式下运行)。
5
8
 
6
- 一个简单但功能强大的React Native调试工具包,提供便捷的开发期浮动界面。
9
+ ## 功能
10
+
11
+ - **Network** — 自动拦截 fetch / XMLHttpRequest,查看请求与响应,复制为 cURL
12
+ - **Console** — 捕获 `console.log / info / warn / error`
13
+ - **Zustand** — 通过中间件记录状态变化
14
+ - **Navigation** — 追踪路由切换
15
+ - **Track** — 记录自定义埋点事件
16
+ - **Environment** — 运行时切换 API 环境
17
+ - **Clipboard** — 粘贴文本并复制到电脑
7
18
 
8
19
  ## 安装
9
20
 
10
21
  ```bash
11
22
  npm install react-native-debug-toolkit
12
- # 或
13
- yarn add react-native-debug-toolkit
14
- ```
15
-
16
- ### iOS 额外设置
17
-
18
- 该工具包使用FLEX和DoraemonKit提供iOS调试功能。请按以下步骤正确集成:
19
-
20
- 1. 确保项目中已安装CocoaPods
21
- 2. 在Podfile中添加以下依赖:
22
-
23
- ```ruby
24
- pod 'FLEX', :configurations => ['Debug']
25
- pod 'DoraemonKit/Core', :git => 'https://github.com/superzcj/DoKit.git', :configurations => ['Debug'] #必选
26
- ```
27
-
28
- 3. 在`didFinishLaunchingWithOptions`方法中的AppDelegate.m文件中添加以下代码:
29
-
30
- ```objc
31
- #ifdef DEBUG
32
- #import <DoraemonKit/DoraemonManager.h>
33
- #endif
34
-
35
- #ifdef DEBUG
36
- DoraemonManager *doKit = [DoraemonManager shareInstance];
37
- doKit.autoDock = false;
38
- [doKit install];
39
- [doKit hiddenDoraemon];
40
- #endif
41
23
  ```
42
24
 
43
- 4. 在iOS目录中运行pod install:
25
+ 可选 剪贴板复制支持:
44
26
 
45
27
  ```bash
46
- cd ios && pod install
28
+ npm install @react-native-clipboard/clipboard
47
29
  ```
48
30
 
49
- ### Android 额外设置
31
+ ## 快速开始
50
32
 
51
- 1. 在`android/settings.gradle`中添加以下内容:
33
+ ```tsx
34
+ import { DebugView } from 'react-native-debug-toolkit';
52
35
 
53
- ```gradle
54
- include ':react-native-debug-toolkit'
55
- project(':react-native-debug-toolkit').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-debug-toolkit/android')
56
- ```
57
-
58
- 2. 在`android/app/build.gradle`中添加以下依赖:
59
-
60
- ```gradle
61
- dependencies {
62
- // 其他依赖...
63
-
64
- debugImplementation 'io.github.didi.dokit:dokitx:3.7.1'
65
- releaseImplementation 'io.github.didi.dokit:dokitx-no-op:3.7.1'
66
- debugImplementation 'com.android.volley:volley:1.2.0'
67
-
68
- implementation project(':react-native-debug-toolkit')
36
+ function App() {
37
+ return (
38
+ <DebugView>
39
+ <AppContent />
40
+ </DebugView>
41
+ );
69
42
  }
70
43
  ```
71
44
 
72
- 3. 在`MainApplication.kt`中初始化DoKit:
73
-
74
- ```kotlin
75
- import com.didichuxing.doraemonkit.DoKit
76
- import com.reactnative.debuglibs.RNDebugLibsPackage
77
-
78
- // 在getPackages方法内
79
- add(RNDebugLibsPackage())
80
-
81
- // 在onCreate方法内
82
- if (BuildConfig.DEBUG) {
83
- DoKit.Builder(this)
84
- .build()
85
- DoKit.hide()
86
- }
87
- ```
45
+ 开发模式下会出现浮动调试按钮,点击即可打开面板。
88
46
 
89
- ## 使用方法
47
+ 网络(fetch 和 XMLHttpRequest)、控制台、导航、埋点和剪贴板默认启用。在 React Native 和 Expo 中,Axios 会通过 XMLHttpRequest 层发起请求,因此无需额外配置 Axios。
90
48
 
91
- 将调试工具包添加到您的应用程序中非常简单,只需一行代码即可启用所有功能:
49
+ ### 导航追踪
92
50
 
93
- ```javascript
94
- // 在App.js或其他初始化文件中
95
- import React, { useEffect } from 'react';
96
- import { initializeDebugToolkit, isDebugMode } from 'react-native-debug-toolkit';
51
+ ```tsx
52
+ import { useRef } from 'react';
53
+ import { DebugView } from 'react-native-debug-toolkit';
54
+ import { NavigationContainer } from '@react-navigation/native';
97
55
 
98
56
  function App() {
99
- useEffect(() => {
100
- if (isDebugMode) {
101
- // 使用所有默认功能初始化
102
- initializeDebugToolkit();
103
-
104
- // 或选择特定的内置功能
105
- // initializeDebugToolkit(['network', 'console', 'zustand', 'navigation', 'thirdPartyLibs']);
106
- }
107
-
108
- return () => {
109
- // 自动清理
110
- };
111
- }, []);
112
-
113
- return <YourApp />;
57
+ const navRef = useRef(null);
58
+ return (
59
+ <DebugView navigationRef={navRef}>
60
+ <NavigationContainer ref={navRef}>
61
+ <AppContent />
62
+ </NavigationContainer>
63
+ </DebugView>
64
+ );
114
65
  }
115
66
  ```
116
67
 
117
- 就这么简单!现在您的应用程序将在开发模式下显示一个浮动的调试面板,让您可以访问所有调试功能。
118
-
119
- ## 内置功能
68
+ ### 环境切换
69
+
70
+ ```tsx
71
+ <DebugView
72
+ environments={[
73
+ { id: 'dev', label: 'Dev', host: 'dev-api.example.com', color: '#34C759' },
74
+ { id: 'prod', label: 'Prod', host: 'api.example.com', color: '#FF3B30' },
75
+ ]}
76
+ >
77
+ <AppContent />
78
+ </DebugView>
79
+ ```
120
80
 
121
- 通过上面的一行代码初始化,您将自动获得以下所有调试功能:
81
+ ### 禁用特定功能
122
82
 
123
- - **网络监控**:跟踪和检查所有网络请求和响应
124
- - **控制台日志**:在应用内查看所有控制台日志输出
125
- - **Zustand状态**:监控Zustand状态管理(如果您的应用使用Zustand)
126
- - **导航跟踪**:自动记录应用内的导航事件
127
- - **第三方调试工具**:快速访问原生调试工具(iOS的FLEX,iOS和Android的DoraemonKit)
83
+ ```tsx
84
+ <DebugView features={{ clipboard: false, zustand: false }}>
85
+ <AppContent />
86
+ </DebugView>
87
+ ```
128
88
 
129
- ## 集成
89
+ ## `<DebugView>` 属性
130
90
 
131
- ### 高级Axios网络跟踪
91
+ | 属性 | 类型 | 默认值 | 说明 |
92
+ |------|------|--------|------|
93
+ | `children` | `ReactNode` | — | 应用内容 |
94
+ | `features` | `Partial<FeatureConfigs>` | 全部启用 | 启用/禁用功能 |
95
+ | `navigationRef` | `RefObject` | — | 导航容器 ref |
96
+ | `environments` | `EnvironmentConfig[]` | — | 环境配置 |
97
+ | `enabled` | `boolean` | `__DEV__` | 强制启用/禁用 |
132
98
 
133
- 对于使用Axios的项目,您可以启用更详细的网络请求跟踪:
99
+ ### 功能配置项
134
100
 
135
- ```javascript
136
- import axios from 'axios';
137
- import { createNetworkFeature, isDebugMode } from 'react-native-debug-toolkit';
101
+ | 功能 | 配置项 |
102
+ |------|--------|
103
+ | `network` | `maxLogs`, `blacklist` |
104
+ | `console` | `maxLogs` |
105
+ | `zustand` | `maxLogs` |
106
+ | `navigation` | `maxLogs` |
107
+ | `track` | `maxLogs` |
108
+ | `environment` | `EnvironmentConfig[]` |
109
+ | `clipboard` | — |
138
110
 
139
- // 获取网络功能实例并设置Axios拦截器
140
- if (isDebugMode) {
141
- const networkFeature = createNetworkFeature();
142
- networkFeature.setupAxiosInterceptors(axios);
143
-
144
- // 可选:排除敏感URL(如认证接口)
145
- networkFeature.addUrlToBlacklist('api.example.com/auth');
146
- networkFeature.addUrlToBlacklist(/password/i); // 支持正则表达式
147
- }
148
- ```
111
+ 所有 `maxLogs` 默认值为 **200**。
149
112
 
150
- ### 监控Zustand状态(如果您使用Zustand)
113
+ ## 使用示例
151
114
 
152
- 如果您的应用使用Zustand进行状态管理,只需添加中间件即可跟踪所有状态变化:
115
+ ### Zustand 中间件
153
116
 
154
- ```javascript
155
- import { create } from 'zustand';
117
+ ```tsx
156
118
  import { zustandLogMiddleware } from 'react-native-debug-toolkit';
157
119
 
158
- // 只需添加zustandLogMiddleware来包装您的store
159
120
  const useStore = create(
160
- zustandLogMiddleware(
161
- (set) => ({
162
- count: 0,
163
- increment: () => set((state) => ({ count: state.count + 1 })),
164
- decrement: () => set((state) => ({ count: state.count - 1 })),
165
- })
166
- )
121
+ zustandLogMiddleware((set) => ({
122
+ count: 0,
123
+ increment: () => set((s) => ({ count: s.count + 1 }), false, 'increment'),
124
+ }))
167
125
  );
168
126
  ```
169
127
 
170
- ### 导航跟踪(React Navigation)
128
+ ### 自定义事件
171
129
 
172
- 如果您使用React Navigation,添加导航跟踪只需一步:
130
+ ```tsx
131
+ import { addTrackLog } from 'react-native-debug-toolkit';
173
132
 
174
- ```javascript
175
- import React, { useRef } from 'react';
176
- import { NavigationContainer } from '@react-navigation/native';
177
- import { useNavigationLogger } from 'react-native-debug-toolkit';
178
-
179
- function AppNavigator() {
180
- const navigationRef = useRef(null);
181
-
182
- // 添加这一行来启用导航日志
183
- useNavigationLogger(navigationRef);
184
-
185
- return (
186
- <NavigationContainer ref={navigationRef}>
187
- {/* 您的导航配置 */}
188
- </NavigationContainer>
189
- );
190
- }
133
+ addTrackLog({ eventName: 'button_click', buttonId: 'submit' });
191
134
  ```
192
135
 
193
- ## 自定义配置
136
+ ### 复制到电脑
194
137
 
195
- 如果您不需要所有功能,可以选择性地启用特定功能:
138
+ ```tsx
139
+ import { copyToComputer } from 'react-native-debug-toolkit';
140
+
141
+ await copyToComputer(jsonString);
142
+ ```
196
143
 
197
- ```javascript
198
- // 只启用网络和控制台日志功能
199
- initializeDebugToolkit(['network', 'console']);
144
+ ## 高级:命令式 API
200
145
 
201
- // 或者指定一组自定义功能
202
- initializeDebugToolkit([
203
- 'network',
204
- 'console',
205
- 'zustand',
206
- 'navigation',
207
- 'thirdPartyLibs'
208
- ]);
146
+ 用于 React 组件外的编程控制:
147
+
148
+ ```tsx
149
+ import { initializeDebugToolkit } from 'react-native-debug-toolkit';
150
+
151
+ const toolkit = initializeDebugToolkit({
152
+ features: { network: { maxLogs: 100 }, console: true },
153
+ enabled: true,
154
+ });
155
+
156
+ toolkit?.showPanel();
157
+ toolkit?.clearAll();
158
+ toolkit?.destroy();
209
159
  ```
210
160
 
211
- ## 常见问题排除
161
+ ### `DebugToolkit` 方法
162
+
163
+ | 方法 | 说明 |
164
+ |------|------|
165
+ | `showPanel()` / `hidePanel()` | 切换面板显示 |
166
+ | `clearAll()` | 清除所有数据 |
167
+ | `addFeature(f)` / `removeFeature(name)` | 运行时管理功能 |
168
+ | `destroy()` | 完全销毁 |
169
+ | `features` | 当前功能列表(只读) |
170
+
171
+ ### 自定义功能
172
+
173
+ ```tsx
174
+ import type { DebugFeature } from 'react-native-debug-toolkit';
175
+
176
+ const myFeature: DebugFeature<MyData> = {
177
+ name: 'myFeature',
178
+ label: '我的功能',
179
+ setup: () => { /* 开始捕获 */ },
180
+ getData: () => myDataArray,
181
+ cleanup: () => { /* 停止捕获 */ },
182
+ clear: () => { /* 重置数据 */ },
183
+ subscribe: (cb) => { emitter.on('change', cb); return () => emitter.off('change', cb); },
184
+ renderContent: MyFeatureTab,
185
+ };
186
+
187
+ const toolkit = initializeDebugToolkit();
188
+ toolkit?.addFeature(myFeature);
189
+ ```
212
190
 
213
- ### 调试面板不显示
214
- - 确保您在开发模式下(`isDebugMode`为true)
215
- - 检查是否正确调用了`initializeDebugToolkit()`
191
+ ### 工具函数
216
192
 
217
- ### iOS功能不工作
218
- - 确认您已将FLEX和DoraemonKit添加到Podfile
219
- - 在修改后重新运行`pod install`
220
- - 确保您正在运行Debug构建版本
193
+ | 导出 | 说明 |
194
+ |------|------|
195
+ | `safeStringify(value, space?)` | JSON 序列化,自动处理循环引用 |
196
+ | `copyToComputer(content, options?)` | 复制内容到电脑 |
197
+ | `logToComputer(...args)` | 输出到电脑控制台 |
221
198
 
222
- ### 网络请求未被捕获
223
- - 对于Axios,请确保调用了`setupAxiosInterceptors(axios)`
224
- - 对于fetch请求,工具包会自动拦截,无需额外配置
199
+ ## 对等依赖
225
200
 
226
- ### 应用性能问题
227
- - 此调试工具包仅适用于开发阶段,请确保生产构建中未包含
228
- - 如果开发模式下性能受影响,可以尝试只启用特定功能    
201
+ | 包 | 版本 | 必需 |
202
+ |----|------|------|
203
+ | react | >= 18.0.0 | 是 |
204
+ | react-native | >= 0.72.0 | 是 |
205
+ | @react-native-clipboard/clipboard | >= 1.0.0 | 否 |
229
206
 
207
+ ## 许可证
230
208
 
209
+ MIT
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ClipboardTab = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _colors = require("../utils/colors");
10
+ var _copyToComputer = require("../utils/copyToComputer");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ 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); }
13
+ const ClipboardTab = exports.ClipboardTab = /*#__PURE__*/_react.default.memo(() => {
14
+ const [text, setText] = (0, _react.useState)('');
15
+ const [feedback, setFeedback] = (0, _react.useState)(null);
16
+ const handleCopy = (0, _react.useCallback)(() => {
17
+ if (!text) return;
18
+ try {
19
+ const result = (0, _copyToComputer.copyToComputer)(text, {
20
+ label: 'Clipboard'
21
+ });
22
+ setFeedback(result.method === 'clipboard' ? 'Copied' : 'Logged');
23
+ } catch {
24
+ setFeedback('Logged');
25
+ }
26
+ setTimeout(() => setFeedback(null), 2000);
27
+ }, [text]);
28
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
29
+ style: s.container,
30
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
31
+ style: s.input,
32
+ value: text,
33
+ onChangeText: setText,
34
+ placeholder: "Paste or type text here...",
35
+ placeholderTextColor: _colors.Colors.textLight,
36
+ multiline: true,
37
+ textAlignVertical: "top"
38
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
39
+ style: s.footer,
40
+ children: text ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
41
+ style: s.copyBtn,
42
+ onPress: handleCopy,
43
+ activeOpacity: 0.7,
44
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
45
+ style: s.copyBtnText,
46
+ children: feedback ?? 'Copy'
47
+ })
48
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
49
+ style: s.hint,
50
+ children: "Paste or type content above, then copy to computer"
51
+ })
52
+ })]
53
+ });
54
+ });
55
+ const s = _reactNative.StyleSheet.create({
56
+ container: {
57
+ flex: 1,
58
+ backgroundColor: _colors.Colors.background,
59
+ padding: 12
60
+ },
61
+ input: {
62
+ flex: 1,
63
+ backgroundColor: _colors.Colors.surface,
64
+ borderRadius: 12,
65
+ padding: 12,
66
+ fontSize: 14,
67
+ color: _colors.Colors.text,
68
+ lineHeight: 20
69
+ },
70
+ footer: {
71
+ paddingTop: 8,
72
+ minHeight: 36,
73
+ alignItems: 'flex-end'
74
+ },
75
+ hint: {
76
+ fontSize: 12,
77
+ color: _colors.Colors.textLight
78
+ },
79
+ copyBtn: {
80
+ backgroundColor: _colors.Colors.background,
81
+ paddingHorizontal: 16,
82
+ paddingVertical: 6,
83
+ borderRadius: 8
84
+ },
85
+ copyBtnText: {
86
+ fontSize: 13,
87
+ color: _colors.Colors.primary,
88
+ fontWeight: '600'
89
+ }
90
+ });
91
+ //# sourceMappingURL=ClipboardTab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_colors","_copyToComputer","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ClipboardTab","exports","React","memo","text","setText","useState","feedback","setFeedback","handleCopy","useCallback","result","copyToComputer","label","method","setTimeout","jsxs","View","style","s","container","children","jsx","TextInput","input","value","onChangeText","placeholder","placeholderTextColor","Colors","textLight","multiline","textAlignVertical","footer","TouchableOpacity","copyBtn","onPress","activeOpacity","Text","copyBtnText","hint","StyleSheet","create","flex","backgroundColor","background","padding","surface","borderRadius","fontSize","color","lineHeight","paddingTop","minHeight","alignItems","paddingHorizontal","paddingVertical","primary","fontWeight"],"sourceRoot":"../../../src","sources":["components/ClipboardTab.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ConsoleLogTab = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _colors = require("../utils/colors");
10
+ var _safeStringify = require("../utils/safeStringify");
11
+ var _CollapsibleSection = require("./shared/CollapsibleSection");
12
+ var _JsonView = require("./shared/JsonView");
13
+ var _CopyButton = require("./shared/CopyButton");
14
+ var _LogListScreen = require("./shared/LogListScreen");
15
+ var _copyToComputer = require("../utils/copyToComputer");
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ 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
+ const ConsoleLogTab = exports.ConsoleLogTab = /*#__PURE__*/_react.default.memo(({
31
+ data
32
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_LogListScreen.LogListScreen, {
33
+ data: data,
34
+ emptyText: "No console logs",
35
+ renderRow: item => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
36
+ style: s.cardRow,
37
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
38
+ style: [s.levelDot, {
39
+ backgroundColor: LEVEL_COLORS[item.level] ?? '#8E8E93'
40
+ }],
41
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
42
+ style: s.levelIcon,
43
+ children: LEVEL_ICONS[item.level] ?? '●'
44
+ })
45
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
46
+ style: s.cardContent,
47
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
48
+ style: s.logMessage,
49
+ numberOfLines: 2,
50
+ children: item.data.map(d => typeof d === 'string' ? d : (0, _safeStringify.safeStringify)(d)).join(' ')
51
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
52
+ style: s.time,
53
+ children: new Date(item.timestamp).toLocaleTimeString()
54
+ })]
55
+ })]
56
+ }),
57
+ renderDetailHeader: item => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
58
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
59
+ style: [s.levelBadge, {
60
+ backgroundColor: LEVEL_COLORS[item.level] ?? '#8E8E93'
61
+ }],
62
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
63
+ style: s.levelBadgeText,
64
+ children: item.level.toUpperCase()
65
+ })
66
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
67
+ style: s.detailTime,
68
+ children: new Date(item.timestamp).toLocaleString()
69
+ })]
70
+ }),
71
+ renderDetailBody: item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
72
+ style: s.detailBody,
73
+ contentContainerStyle: s.detailBodyContent,
74
+ children: item.data.map((d, index) => {
75
+ const formatted = typeof d === 'object' && d !== null ? (0, _copyToComputer.fmt)(d) : String(d);
76
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CollapsibleSection.CollapsibleSection, {
77
+ title: typeof d === 'object' && d !== null ? `Arg ${index + 1} (object)` : `Arg ${index + 1}`,
78
+ initiallyExpanded: index === 0,
79
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
80
+ style: s.sectionWithCopy,
81
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_CopyButton.CopyButton, {
82
+ text: formatted,
83
+ label: `Console Arg ${index + 1}`
84
+ }), typeof d === 'object' && d !== null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_JsonView.JsonView, {
85
+ data: d,
86
+ maxHeight: 250
87
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
88
+ style: s.plainText,
89
+ selectable: true,
90
+ children: String(d)
91
+ })]
92
+ })
93
+ }, index);
94
+ })
95
+ })
96
+ }));
97
+ const s = _reactNative.StyleSheet.create({
98
+ cardRow: {
99
+ flexDirection: 'row',
100
+ padding: 14,
101
+ alignItems: 'flex-start'
102
+ },
103
+ levelDot: {
104
+ width: 24,
105
+ height: 24,
106
+ borderRadius: 12,
107
+ alignItems: 'center',
108
+ justifyContent: 'center',
109
+ marginRight: 12,
110
+ marginTop: 1
111
+ },
112
+ levelIcon: {
113
+ color: '#FFF',
114
+ fontSize: 11,
115
+ fontWeight: '700'
116
+ },
117
+ cardContent: {
118
+ flex: 1
119
+ },
120
+ logMessage: {
121
+ fontSize: 14,
122
+ color: _colors.Colors.text,
123
+ lineHeight: 20
124
+ },
125
+ time: {
126
+ fontSize: 12,
127
+ color: _colors.Colors.textSecondary,
128
+ marginTop: 4
129
+ },
130
+ levelBadge: {
131
+ paddingHorizontal: 10,
132
+ paddingVertical: 4,
133
+ borderRadius: 6
134
+ },
135
+ levelBadgeText: {
136
+ color: '#FFF',
137
+ fontSize: 12,
138
+ fontWeight: '700'
139
+ },
140
+ detailTime: {
141
+ flex: 1,
142
+ fontSize: 13,
143
+ color: _colors.Colors.textSecondary,
144
+ textAlign: 'right'
145
+ },
146
+ detailBody: {
147
+ flex: 1
148
+ },
149
+ detailBodyContent: {
150
+ padding: 12
151
+ },
152
+ sectionWithCopy: {
153
+ gap: 8
154
+ },
155
+ plainText: {
156
+ fontFamily: 'Courier',
157
+ fontSize: 13,
158
+ color: _colors.Colors.text,
159
+ lineHeight: 20
160
+ }
161
+ });
162
+ //# sourceMappingURL=ConsoleLogTab.js.map
@@ -0,0 +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","data","jsx","LogListScreen","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":["components/ConsoleLogTab.tsx"],"mappings":"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","ignoreList":[]}