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
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useRef } from 'react';
4
+ import { Animated } from 'react-native';
5
+
6
+ /**
7
+ * Shared slide-in/out animation for tab detail views.
8
+ * Returns animated styles for the detail overlay and the list behind it.
9
+ */
10
+ export function useSlideDetailAnimation(selected) {
11
+ const slideAnim = useRef(new Animated.Value(0)).current;
12
+ const listSlideAnim = useRef(new Animated.Value(0)).current;
13
+ useEffect(() => {
14
+ if (selected) {
15
+ listSlideAnim.setValue(0);
16
+ Animated.parallel([Animated.spring(slideAnim, {
17
+ toValue: 1,
18
+ friction: 9,
19
+ tension: 60,
20
+ useNativeDriver: true
21
+ }), Animated.spring(listSlideAnim, {
22
+ toValue: 1,
23
+ friction: 9,
24
+ tension: 60,
25
+ useNativeDriver: true
26
+ })]).start();
27
+ } else {
28
+ slideAnim.setValue(0);
29
+ listSlideAnim.setValue(0);
30
+ }
31
+ }, [selected, slideAnim, listSlideAnim]);
32
+ const detailTranslateX = slideAnim.interpolate({
33
+ inputRange: [0, 1],
34
+ outputRange: [300, 0]
35
+ });
36
+ const listTranslateX = listSlideAnim.interpolate({
37
+ inputRange: [0, 1],
38
+ outputRange: [0, -60]
39
+ });
40
+ const listOpacity = listSlideAnim.interpolate({
41
+ inputRange: [0, 1],
42
+ outputRange: [1, 0]
43
+ });
44
+ return {
45
+ detailTranslateX,
46
+ listTranslateX,
47
+ listOpacity
48
+ };
49
+ }
50
+ //# sourceMappingURL=useSlideDetailAnimation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","Animated","useSlideDetailAnimation","selected","slideAnim","Value","current","listSlideAnim","setValue","parallel","spring","toValue","friction","tension","useNativeDriver","start","detailTranslateX","interpolate","inputRange","outputRange","listTranslateX","listOpacity"],"sourceRoot":"../../../src","sources":["hooks/useSlideDetailAnimation.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,QAAQ,QAAQ,cAAc;;AAEvC;AACA;AACA;AACA;AACA,OAAO,SAASC,uBAAuBA,CACrCC,QAAkB,EAKlB;EACA,MAAMC,SAAS,GAAGJ,MAAM,CAAC,IAAIC,QAAQ,CAACI,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EACvD,MAAMC,aAAa,GAAGP,MAAM,CAAC,IAAIC,QAAQ,CAACI,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAE3DP,SAAS,CAAC,MAAM;IACd,IAAII,QAAQ,EAAE;MACZI,aAAa,CAACC,QAAQ,CAAC,CAAC,CAAC;MACzBP,QAAQ,CAACQ,QAAQ,CAAC,CAChBR,QAAQ,CAACS,MAAM,CAACN,SAAS,EAAE;QAAEO,OAAO,EAAE,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,OAAO,EAAE,EAAE;QAAEC,eAAe,EAAE;MAAK,CAAC,CAAC,EAC3Fb,QAAQ,CAACS,MAAM,CAACH,aAAa,EAAE;QAAEI,OAAO,EAAE,CAAC;QAAEC,QAAQ,EAAE,CAAC;QAAEC,OAAO,EAAE,EAAE;QAAEC,eAAe,EAAE;MAAK,CAAC,CAAC,CAChG,CAAC,CAACC,KAAK,CAAC,CAAC;IACZ,CAAC,MAAM;MACLX,SAAS,CAACI,QAAQ,CAAC,CAAC,CAAC;MACrBD,aAAa,CAACC,QAAQ,CAAC,CAAC,CAAC;IAC3B;EACF,CAAC,EAAE,CAACL,QAAQ,EAAEC,SAAS,EAAEG,aAAa,CAAC,CAAC;EAExC,MAAMS,gBAAgB,GAAGZ,SAAS,CAACa,WAAW,CAAC;IAC7CC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClBC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC;EACtB,CAAC,CAAC;EACF,MAAMC,cAAc,GAAGb,aAAa,CAACU,WAAW,CAAC;IAC/CC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;EACtB,CAAC,CAAC;EACF,MAAME,WAAW,GAAGd,aAAa,CAACU,WAAW,CAAC;IAC5CC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;EACpB,CAAC,CAAC;EAEF,OAAO;IAAEH,gBAAgB;IAAEI,cAAc;IAAEC;EAAY,CAAC;AAC1D","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ // Core
4
+ export { DebugToolkit } from './core/DebugToolkit';
5
+ export { DebugToolkitProvider, useDebugToolkit } from './core/DebugToolkitProvider';
6
+ export { DebugView } from './components/DebugView';
7
+ export { initializeDebugToolkit } from './initialize';
8
+ // Feature factories
9
+ export { createNetworkFeature } from './features/NetworkFeature';
10
+ export { createConsoleLogFeature } from './features/ConsoleLogFeature';
11
+ export { createZustandLogFeature, zustandLogMiddleware, addZustandLog } from './features/ZustandLogFeature';
12
+ export { createNavigationLogFeature, addNavigationLog } from './features/NavigationLogFeature';
13
+ export { createTrackFeature, addTrackLog } from './features/TrackFeature';
14
+ export { createEnvironmentFeature } from './features/EnvironmentFeature';
15
+ export { createClipboardFeature } from './features/ClipboardFeature';
16
+
17
+ // Hooks
18
+ export { useNavigationLogger } from './hooks/useNavigationLogger';
19
+
20
+ // Utilities
21
+ export { safeStringify } from './utils/safeStringify';
22
+ export { copyToComputer, logToComputer, fmt } from './utils/copyToComputer';
23
+
24
+ // Types
25
+
26
+ // Default export for convenience
27
+ export { initializeDebugToolkit as default } from './initialize';
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DebugToolkit","DebugToolkitProvider","useDebugToolkit","DebugView","initializeDebugToolkit","createNetworkFeature","createConsoleLogFeature","createZustandLogFeature","zustandLogMiddleware","addZustandLog","createNavigationLogFeature","addNavigationLog","createTrackFeature","addTrackLog","createEnvironmentFeature","createClipboardFeature","useNavigationLogger","safeStringify","copyToComputer","logToComputer","fmt","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SAASA,YAAY,QAAQ,qBAAqB;AAClD,SAASC,oBAAoB,EAAEC,eAAe,QAAQ,6BAA6B;AACnF,SAASC,SAAS,QAAQ,wBAAwB;AAElD,SAASC,sBAAsB,QAAQ,cAAc;AAGrD;AACA,SAASC,oBAAoB,QAAQ,2BAA2B;AAEhE,SAASC,uBAAuB,QAAQ,8BAA8B;AAEtE,SAASC,uBAAuB,EAAEC,oBAAoB,EAAEC,aAAa,QAAQ,8BAA8B;AAE3G,SAASC,0BAA0B,EAAEC,gBAAgB,QAAQ,iCAAiC;AAE9F,SAASC,kBAAkB,EAAEC,WAAW,QAAQ,yBAAyB;AAEzE,SAASC,wBAAwB,QAAQ,+BAA+B;AAExE,SAASC,sBAAsB,QAAQ,6BAA6B;;AAEpE;AACA,SAASC,mBAAmB,QAAQ,6BAA6B;;AAEjE;AACA,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,cAAc,EAAEC,aAAa,EAAEC,GAAG,QAAQ,wBAAwB;;AAG3E;;AAeA;AACA,SAAShB,sBAAsB,IAAIiB,OAAO,QAAQ,cAAc","ignoreList":[]}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ import { DebugToolkit } from './core/DebugToolkit';
4
+ import { createNetworkFeature } from './features/NetworkFeature';
5
+ import { createConsoleLogFeature } from './features/ConsoleLogFeature';
6
+ import { createZustandLogFeature } from './features/ZustandLogFeature';
7
+ import { createNavigationLogFeature } from './features/NavigationLogFeature';
8
+ import { createTrackFeature } from './features/TrackFeature';
9
+ import { createEnvironmentFeature } from './features/EnvironmentFeature';
10
+ import { createClipboardFeature } from './features/ClipboardFeature';
11
+ const isDebugMode = __DEV__;
12
+
13
+ /** Feature-specific configuration map */
14
+
15
+ /** Registry mapping feature names to creator functions */
16
+ // Config param requires `any` — each factory accepts a different config type.
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ const featureRegistry = {
19
+ network: createNetworkFeature,
20
+ console: createConsoleLogFeature,
21
+ zustand: createZustandLogFeature,
22
+ navigation: createNavigationLogFeature,
23
+ track: createTrackFeature,
24
+ environment: createEnvironmentFeature,
25
+ clipboard: createClipboardFeature
26
+ };
27
+ const DEFAULT_FEATURES = ['network', 'console', 'navigation', 'zustand', 'track', 'clipboard'];
28
+ function resolveFeatureConfigs(configs) {
29
+ const features = [];
30
+ const entries = Object.entries(configs);
31
+ for (const [name, config] of entries) {
32
+ if (config === false) continue;
33
+ const creator = featureRegistry[name];
34
+ if (!creator) {
35
+ console.warn(`[DebugToolkit] Unknown feature: "${name}"`);
36
+ continue;
37
+ }
38
+ if (config === true || config === undefined) {
39
+ features.push(creator());
40
+ } else if (typeof config === 'object') {
41
+ features.push(creator(config));
42
+ }
43
+ }
44
+ return features;
45
+ }
46
+ function resolveDefaultFeatures() {
47
+ return DEFAULT_FEATURES.map(name => featureRegistry[name]());
48
+ }
49
+
50
+ /**
51
+ * Initialize the debug toolkit.
52
+ *
53
+ * @example
54
+ * initializeDebugToolkit({
55
+ * features: { network: true, console: true },
56
+ * enabled: true,
57
+ * });
58
+ */
59
+ export function initializeDebugToolkit(options) {
60
+ const enabled = options?.enabled ?? isDebugMode;
61
+ const resolvedFeatures = options?.features ? resolveFeatureConfigs(options.features) : resolveDefaultFeatures();
62
+ try {
63
+ DebugToolkit.setEnabled(enabled);
64
+ if (!enabled) {
65
+ DebugToolkit.reset();
66
+ return DebugToolkit;
67
+ }
68
+ DebugToolkit.replaceFeatures(resolvedFeatures);
69
+ if (DebugToolkit.hasFeatures()) {
70
+ DebugToolkit.showPanel();
71
+ } else {
72
+ DebugToolkit.hidePanel();
73
+ }
74
+ return DebugToolkit;
75
+ } catch (error) {
76
+ console.error('[DebugToolkit] Initialization failed:', error);
77
+ return DebugToolkit;
78
+ }
79
+ }
80
+ //# sourceMappingURL=initialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DebugToolkit","createNetworkFeature","createConsoleLogFeature","createZustandLogFeature","createNavigationLogFeature","createTrackFeature","createEnvironmentFeature","createClipboardFeature","isDebugMode","__DEV__","featureRegistry","network","console","zustand","navigation","track","environment","clipboard","DEFAULT_FEATURES","resolveFeatureConfigs","configs","features","entries","Object","name","config","creator","warn","undefined","push","resolveDefaultFeatures","map","initializeDebugToolkit","options","enabled","resolvedFeatures","setEnabled","reset","replaceFeatures","hasFeatures","showPanel","hidePanel","error"],"sourceRoot":"../../src","sources":["initialize.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,qBAAqB;AAClD,SAASC,oBAAoB,QAAQ,2BAA2B;AAEhE,SAASC,uBAAuB,QAAQ,8BAA8B;AAEtE,SAASC,uBAAuB,QAAQ,8BAA8B;AAEtE,SAASC,0BAA0B,QAAQ,iCAAiC;AAE5E,SAASC,kBAAkB,QAAQ,yBAAyB;AAE5D,SAASC,wBAAwB,QAAQ,+BAA+B;AACxE,SAASC,sBAAsB,QAAQ,6BAA6B;AAGpE,MAAMC,WAAW,GAAGC,OAAO;;AAE3B;;AAgBA;AACA;AACA;AACA,MAAMC,eAA8E,GAAG;EACrFC,OAAO,EAAEV,oBAAoB;EAC7BW,OAAO,EAAEV,uBAAuB;EAChCW,OAAO,EAAEV,uBAAuB;EAChCW,UAAU,EAAEV,0BAA0B;EACtCW,KAAK,EAAEV,kBAAkB;EACzBW,WAAW,EAAEV,wBAAwB;EACrCW,SAAS,EAAEV;AACb,CAAC;AAED,MAAMW,gBAAsC,GAAG,CAC7C,SAAS,EACT,SAAS,EACT,YAAY,EACZ,SAAS,EACT,OAAO,EACP,WAAW,CACZ;AAED,SAASC,qBAAqBA,CAACC,OAAuB,EAAqB;EACzE,MAAMC,QAA2B,GAAG,EAAE;EACtC,MAAMC,OAAO,GAAGC,MAAM,CAACD,OAAO,CAACF,OAAO,CAAoC;EAE1E,KAAK,MAAM,CAACI,IAAI,EAAEC,MAAM,CAAC,IAAIH,OAAO,EAAE;IACpC,IAAIG,MAAM,KAAK,KAAK,EAAE;IAEtB,MAAMC,OAAO,GAAGhB,eAAe,CAACc,IAAI,CAAC;IACrC,IAAI,CAACE,OAAO,EAAE;MACZd,OAAO,CAACe,IAAI,CAAC,oCAAoCH,IAAI,GAAG,CAAC;MACzD;IACF;IAEA,IAAIC,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAKG,SAAS,EAAE;MAC3CP,QAAQ,CAACQ,IAAI,CAACH,OAAO,CAAC,CAAC,CAAC;IAC1B,CAAC,MAAM,IAAI,OAAOD,MAAM,KAAK,QAAQ,EAAE;MACrCJ,QAAQ,CAACQ,IAAI,CAACH,OAAO,CAACD,MAAiC,CAAC,CAAC;IAC3D;EACF;EAEA,OAAOJ,QAAQ;AACjB;AAEA,SAASS,sBAAsBA,CAAA,EAAsB;EACnD,OAAOZ,gBAAgB,CAACa,GAAG,CAAEP,IAAI,IAAKd,eAAe,CAACc,IAAI,CAAC,CAAE,CAAC,CAAC;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASQ,sBAAsBA,CACpCC,OAA2B,EACN;EACrB,MAAMC,OAAO,GAAGD,OAAO,EAAEC,OAAO,IAAI1B,WAAW;EAE/C,MAAM2B,gBAAgB,GAAGF,OAAO,EAAEZ,QAAQ,GACtCF,qBAAqB,CAACc,OAAO,CAACZ,QAAQ,CAAC,GACvCS,sBAAsB,CAAC,CAAC;EAE5B,IAAI;IACF9B,YAAY,CAACoC,UAAU,CAACF,OAAO,CAAC;IAEhC,IAAI,CAACA,OAAO,EAAE;MACZlC,YAAY,CAACqC,KAAK,CAAC,CAAC;MACpB,OAAOrC,YAAY;IACrB;IAEAA,YAAY,CAACsC,eAAe,CAACH,gBAAgB,CAAC;IAE9C,IAAInC,YAAY,CAACuC,WAAW,CAAC,CAAC,EAAE;MAC9BvC,YAAY,CAACwC,SAAS,CAAC,CAAC;IAC1B,CAAC,MAAM;MACLxC,YAAY,CAACyC,SAAS,CAAC,CAAC;IAC1B;IAEA,OAAOzC,YAAY;EACrB,CAAC,CAAC,OAAO0C,KAAK,EAAE;IACd9B,OAAO,CAAC8B,KAAK,CAAC,uCAAuC,EAAEA,KAAK,CAAC;IAC7D,OAAO1C,YAAY;EACrB;AACF","ignoreList":[]}
@@ -0,0 +1,460 @@
1
+ "use strict";
2
+
3
+ import { urlRewriter } from '../utils/urlRewriterRegistry';
4
+
5
+ // ─── Axios types ───────────────────────────────────────
6
+
7
+ // ─── XMLHttpRequest types ─────────────────────────────
8
+
9
+ // ─── Shared helpers ────────────────────────────────────
10
+
11
+ function rewriteUrl(url) {
12
+ const rewriter = urlRewriter.get();
13
+ if (!rewriter) {
14
+ return url;
15
+ }
16
+ try {
17
+ return rewriter(url);
18
+ } catch {
19
+ return url;
20
+ }
21
+ }
22
+ function headersToObject(headers) {
23
+ const result = {};
24
+ if (!headers) {
25
+ return result;
26
+ }
27
+ if (typeof headers.forEach === 'function') {
28
+ headers.forEach((value, key) => {
29
+ result[key] = value;
30
+ });
31
+ return result;
32
+ }
33
+ Object.keys(headers).forEach(key => {
34
+ result[key] = headers[key];
35
+ });
36
+ return result;
37
+ }
38
+ function getRequestSnapshot(input, init) {
39
+ const request = input instanceof Request ? input : null;
40
+ return {
41
+ url: typeof input === 'string' ? input : request?.url ?? String(input),
42
+ method: (init?.method || request?.method || 'GET').toUpperCase(),
43
+ headers: init?.headers ? headersToObject(init.headers) : request?.headers ? headersToObject(request.headers) : undefined,
44
+ body: init?.body
45
+ };
46
+ }
47
+ async function parseResponseBody(response) {
48
+ const raw = await response.clone().text();
49
+ if (!raw) {
50
+ return undefined;
51
+ }
52
+ try {
53
+ return JSON.parse(raw);
54
+ } catch {
55
+ return raw;
56
+ }
57
+ }
58
+ function parseMaybeJson(raw) {
59
+ if (!raw) {
60
+ return undefined;
61
+ }
62
+ try {
63
+ return JSON.parse(raw);
64
+ } catch {
65
+ return raw;
66
+ }
67
+ }
68
+ function parseRawHeaders(rawHeaders) {
69
+ if (!rawHeaders) {
70
+ return undefined;
71
+ }
72
+ const headers = {};
73
+ rawHeaders.split(/\r?\n/).forEach(line => {
74
+ const separatorIndex = line.indexOf(':');
75
+ if (separatorIndex <= 0) {
76
+ return;
77
+ }
78
+ const key = line.slice(0, separatorIndex).trim();
79
+ const value = line.slice(separatorIndex + 1).trim();
80
+ if (!key) {
81
+ return;
82
+ }
83
+ headers[key] = value;
84
+ });
85
+ return Object.keys(headers).length > 0 ? headers : undefined;
86
+ }
87
+ function getXMLHttpRequestConstructor() {
88
+ const globalWithXhr = globalThis;
89
+ const candidate = globalWithXhr.XMLHttpRequest;
90
+ if (typeof candidate !== 'function') {
91
+ return undefined;
92
+ }
93
+ const prototype = candidate.prototype;
94
+ if (!prototype || typeof prototype.open !== 'function' || typeof prototype.send !== 'function') {
95
+ return undefined;
96
+ }
97
+ return candidate;
98
+ }
99
+ function getXhrResponseHeaders(xhr) {
100
+ if (typeof xhr.getAllResponseHeaders !== 'function') {
101
+ return undefined;
102
+ }
103
+ try {
104
+ return parseRawHeaders(xhr.getAllResponseHeaders());
105
+ } catch {
106
+ return undefined;
107
+ }
108
+ }
109
+ function getXhrResponseData(xhr) {
110
+ const responseType = typeof xhr.responseType === 'string' ? xhr.responseType : '';
111
+ if (responseType === 'json') {
112
+ return xhr.response;
113
+ }
114
+ if (responseType && responseType !== 'text') {
115
+ return undefined;
116
+ }
117
+ try {
118
+ if (typeof xhr.responseText === 'string') {
119
+ return parseMaybeJson(xhr.responseText);
120
+ }
121
+ } catch {
122
+ return undefined;
123
+ }
124
+ return typeof xhr.response === 'string' ? parseMaybeJson(xhr.response) : xhr.response;
125
+ }
126
+
127
+ // ─── Interceptor manager (encapsulated mutable state) ──
128
+
129
+ let originalFetch = null;
130
+ let fetchRefCount = 0;
131
+ const pendingAxiosRequests = new WeakMap();
132
+ const axiosRegistrations = new WeakMap();
133
+ let originalXMLHttpRequest = null;
134
+ let xhrRefCount = 0;
135
+ const pendingXhrRequests = new WeakMap();
136
+ function stopFetch() {
137
+ fetchRefCount = Math.max(0, fetchRefCount - 1);
138
+ if (fetchRefCount === 0 && originalFetch) {
139
+ globalThis.fetch = originalFetch;
140
+ originalFetch = null;
141
+ }
142
+ }
143
+ export function startFetch(emit) {
144
+ fetchRefCount += 1;
145
+ if (originalFetch) {
146
+ return () => {
147
+ stopFetch();
148
+ };
149
+ }
150
+ originalFetch = globalThis.fetch;
151
+ globalThis.fetch = async function interceptedFetch(input, init) {
152
+ const startTime = Date.now();
153
+ let rewrittenInput = input;
154
+ if (urlRewriter.get()) {
155
+ if (typeof input === 'string') {
156
+ rewrittenInput = rewriteUrl(input);
157
+ } else if (input instanceof Request) {
158
+ rewrittenInput = new Request(rewriteUrl(input.url), input);
159
+ }
160
+ }
161
+ const request = getRequestSnapshot(rewrittenInput, init);
162
+ try {
163
+ const response = await originalFetch.call(globalThis, rewrittenInput, init);
164
+ const duration = Date.now() - startTime;
165
+ try {
166
+ const data = await parseResponseBody(response);
167
+ emit({
168
+ timestamp: startTime,
169
+ duration,
170
+ request,
171
+ response: {
172
+ status: response.status,
173
+ statusText: response.statusText,
174
+ data
175
+ }
176
+ });
177
+ } catch {
178
+ emit({
179
+ timestamp: startTime,
180
+ duration,
181
+ request,
182
+ response: {
183
+ status: response.status,
184
+ statusText: response.statusText
185
+ }
186
+ });
187
+ }
188
+ return response;
189
+ } catch (error) {
190
+ emit({
191
+ timestamp: startTime,
192
+ duration: Date.now() - startTime,
193
+ request,
194
+ error: error instanceof Error ? error.message : String(error)
195
+ });
196
+ throw error;
197
+ }
198
+ };
199
+ return () => {
200
+ stopFetch();
201
+ };
202
+ }
203
+ function emitXhrLog(xhr, emit, error) {
204
+ const pending = pendingXhrRequests.get(xhr);
205
+ if (!pending) {
206
+ return;
207
+ }
208
+ const status = typeof xhr.status === 'number' ? xhr.status : 0;
209
+ const statusText = typeof xhr.statusText === 'string' ? xhr.statusText : undefined;
210
+ emit({
211
+ timestamp: pending.timestamp,
212
+ duration: Date.now() - pending.startTime,
213
+ request: {
214
+ url: pending.url,
215
+ method: pending.method,
216
+ headers: Object.keys(pending.headers).length > 0 ? pending.headers : undefined,
217
+ body: pending.body
218
+ },
219
+ response: error ? undefined : {
220
+ status,
221
+ statusText,
222
+ headers: getXhrResponseHeaders(xhr),
223
+ data: getXhrResponseData(xhr),
224
+ success: status >= 200 && status < 300
225
+ },
226
+ error
227
+ });
228
+ pendingXhrRequests.delete(xhr);
229
+ }
230
+ function isXhrDone(xhr) {
231
+ return typeof xhr.readyState === 'number' && xhr.readyState === (xhr.DONE ?? 4);
232
+ }
233
+ function attachXhrCompletion(xhr, emit) {
234
+ let completed = false;
235
+ const finish = error => {
236
+ if (completed) {
237
+ return;
238
+ }
239
+ completed = true;
240
+ if (typeof xhr.removeEventListener === 'function') {
241
+ xhr.removeEventListener('loadend', onLoadEnd);
242
+ xhr.removeEventListener('error', onError);
243
+ xhr.removeEventListener('abort', onAbort);
244
+ xhr.removeEventListener('timeout', onTimeout);
245
+ }
246
+ emitXhrLog(xhr, emit, error);
247
+ };
248
+ const onLoadEnd = () => finish();
249
+ const onError = () => finish('XMLHttpRequest error');
250
+ const onAbort = () => finish('XMLHttpRequest aborted');
251
+ const onTimeout = () => finish('XMLHttpRequest timeout');
252
+ if (typeof xhr.addEventListener === 'function') {
253
+ xhr.addEventListener('loadend', onLoadEnd);
254
+ xhr.addEventListener('error', onError);
255
+ xhr.addEventListener('abort', onAbort);
256
+ xhr.addEventListener('timeout', onTimeout);
257
+ return;
258
+ }
259
+ const originalOnReadyStateChange = xhr.onreadystatechange;
260
+ const originalOnLoadEnd = xhr.onloadend;
261
+ xhr.onreadystatechange = function interceptedReadyStateChange(event) {
262
+ originalOnReadyStateChange?.call(this, event);
263
+ if (isXhrDone(this)) {
264
+ finish();
265
+ }
266
+ };
267
+ xhr.onloadend = function interceptedLoadEnd(event) {
268
+ originalOnLoadEnd?.call(this, event);
269
+ finish();
270
+ };
271
+ }
272
+ function stopXMLHttpRequest() {
273
+ xhrRefCount = Math.max(0, xhrRefCount - 1);
274
+ if (xhrRefCount === 0 && originalXMLHttpRequest) {
275
+ const prototype = originalXMLHttpRequest.constructor.prototype;
276
+ prototype.open = originalXMLHttpRequest.open;
277
+ prototype.send = originalXMLHttpRequest.send;
278
+ if (originalXMLHttpRequest.setRequestHeader) {
279
+ prototype.setRequestHeader = originalXMLHttpRequest.setRequestHeader;
280
+ }
281
+ originalXMLHttpRequest = null;
282
+ }
283
+ }
284
+ export function startXMLHttpRequest(emit) {
285
+ xhrRefCount += 1;
286
+ if (originalXMLHttpRequest) {
287
+ return () => {
288
+ stopXMLHttpRequest();
289
+ };
290
+ }
291
+ const XMLHttpRequestConstructor = getXMLHttpRequestConstructor();
292
+ if (!XMLHttpRequestConstructor) {
293
+ return () => {
294
+ stopXMLHttpRequest();
295
+ };
296
+ }
297
+ const prototype = XMLHttpRequestConstructor.prototype;
298
+ const originalOpen = prototype.open;
299
+ const originalSend = prototype.send;
300
+ const originalSetRequestHeader = prototype.setRequestHeader;
301
+ originalXMLHttpRequest = {
302
+ constructor: XMLHttpRequestConstructor,
303
+ open: originalOpen,
304
+ send: originalSend,
305
+ setRequestHeader: originalSetRequestHeader
306
+ };
307
+ prototype.open = function interceptedOpen(method, url, async, username, password) {
308
+ const rewrittenUrl = urlRewriter.get() ? rewriteUrl(url) : url;
309
+ const now = Date.now();
310
+ pendingXhrRequests.set(this, {
311
+ method: method.toUpperCase(),
312
+ url: rewrittenUrl,
313
+ headers: {},
314
+ startTime: now,
315
+ timestamp: now
316
+ });
317
+ if (typeof password !== 'undefined') {
318
+ return originalOpen.call(this, method, rewrittenUrl, async, username, password);
319
+ }
320
+ if (typeof username !== 'undefined') {
321
+ return originalOpen.call(this, method, rewrittenUrl, async, username);
322
+ }
323
+ if (typeof async !== 'undefined') {
324
+ return originalOpen.call(this, method, rewrittenUrl, async);
325
+ }
326
+ return originalOpen.call(this, method, rewrittenUrl);
327
+ };
328
+ if (originalSetRequestHeader) {
329
+ prototype.setRequestHeader = function interceptedSetRequestHeader(name, value) {
330
+ const pending = pendingXhrRequests.get(this);
331
+ if (pending) {
332
+ pending.headers[name] = value;
333
+ }
334
+ return originalSetRequestHeader.call(this, name, value);
335
+ };
336
+ }
337
+ prototype.send = function interceptedSend(body) {
338
+ const pending = pendingXhrRequests.get(this);
339
+ if (pending) {
340
+ const now = Date.now();
341
+ pending.body = body;
342
+ pending.startTime = now;
343
+ pending.timestamp = now;
344
+ attachXhrCompletion(this, emit);
345
+ }
346
+ try {
347
+ return originalSend.call(this, body);
348
+ } catch (error) {
349
+ emitXhrLog(this, emit, error instanceof Error ? error.message : String(error));
350
+ throw error;
351
+ }
352
+ };
353
+ return () => {
354
+ stopXMLHttpRequest();
355
+ };
356
+ }
357
+ function teardownAxios(axiosInstance) {
358
+ const registration = axiosRegistrations.get(axiosInstance);
359
+ if (!registration) {
360
+ return;
361
+ }
362
+ registration.refCount -= 1;
363
+ if (registration.refCount > 0) {
364
+ return;
365
+ }
366
+ if (typeof registration.requestId === 'number') {
367
+ axiosInstance.interceptors.request.eject?.(registration.requestId);
368
+ }
369
+ if (typeof registration.responseId === 'number') {
370
+ axiosInstance.interceptors.response.eject?.(registration.responseId);
371
+ }
372
+ axiosRegistrations.delete(axiosInstance);
373
+ }
374
+ export function setupAxios(axiosInstance, emit) {
375
+ const existing = axiosRegistrations.get(axiosInstance);
376
+ if (existing) {
377
+ existing.refCount += 1;
378
+ return () => {
379
+ teardownAxios(axiosInstance);
380
+ };
381
+ }
382
+ const requestId = axiosInstance.interceptors.request.use(config => {
383
+ if (urlRewriter.get() && config.url) {
384
+ const fullUrl = config.baseURL ? `${config.baseURL}${config.url}` : config.url;
385
+ const rewritten = rewriteUrl(fullUrl);
386
+ if (rewritten !== fullUrl) {
387
+ if (config.baseURL && rewritten.startsWith(config.baseURL)) {
388
+ config.url = rewritten.slice(config.baseURL.length);
389
+ } else {
390
+ config.baseURL = '';
391
+ config.url = rewritten;
392
+ }
393
+ }
394
+ }
395
+ pendingAxiosRequests.set(config, {
396
+ startTime: Date.now(),
397
+ timestamp: Date.now()
398
+ });
399
+ return config;
400
+ }, error => Promise.reject(error));
401
+ const responseId = axiosInstance.interceptors.response.use(response => {
402
+ const pending = pendingAxiosRequests.get(response.config);
403
+ if (pending) {
404
+ emit({
405
+ timestamp: pending.timestamp,
406
+ duration: Date.now() - pending.startTime,
407
+ request: {
408
+ url: `${response.config.baseURL || ''}${response.config.url}`,
409
+ method: (response.config.method || 'GET').toUpperCase(),
410
+ headers: response.config.headers,
411
+ body: response.config.data || response.config.params
412
+ },
413
+ response: {
414
+ status: response.status,
415
+ statusText: response.statusText,
416
+ headers: response.headers,
417
+ data: response.data,
418
+ success: response.data && typeof response.data === 'object' ? response.data.success !== false : response.status >= 200 && response.status < 300
419
+ }
420
+ });
421
+ pendingAxiosRequests.delete(response.config);
422
+ }
423
+ return response;
424
+ }, error => {
425
+ if (error.config) {
426
+ const pending = pendingAxiosRequests.get(error.config);
427
+ emit({
428
+ timestamp: pending ? pending.timestamp : Date.now(),
429
+ duration: pending ? Date.now() - pending.startTime : undefined,
430
+ request: {
431
+ url: `${error.config.baseURL || ''}${error.config.url}`,
432
+ method: (error.config.method || 'GET').toUpperCase(),
433
+ headers: error.config.headers,
434
+ body: error.config.data || error.config.params
435
+ },
436
+ error: error.message
437
+ });
438
+ pendingAxiosRequests.delete(error.config);
439
+ }
440
+ return Promise.reject(error);
441
+ });
442
+ axiosRegistrations.set(axiosInstance, {
443
+ refCount: 1,
444
+ requestId: typeof requestId === 'number' ? requestId : undefined,
445
+ responseId: typeof responseId === 'number' ? responseId : undefined
446
+ });
447
+ return () => {
448
+ teardownAxios(axiosInstance);
449
+ };
450
+ }
451
+ export function resetInterceptors() {
452
+ if (originalFetch) {
453
+ globalThis.fetch = originalFetch;
454
+ originalFetch = null;
455
+ }
456
+ fetchRefCount = 0;
457
+ xhrRefCount = 1;
458
+ stopXMLHttpRequest();
459
+ }
460
+ //# sourceMappingURL=networkInterceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["urlRewriter","rewriteUrl","url","rewriter","get","headersToObject","headers","result","forEach","value","key","Object","keys","getRequestSnapshot","input","init","request","Request","String","method","toUpperCase","undefined","body","parseResponseBody","response","raw","clone","text","JSON","parse","parseMaybeJson","parseRawHeaders","rawHeaders","split","line","separatorIndex","indexOf","slice","trim","length","getXMLHttpRequestConstructor","globalWithXhr","globalThis","candidate","XMLHttpRequest","prototype","open","send","getXhrResponseHeaders","xhr","getAllResponseHeaders","getXhrResponseData","responseType","responseText","originalFetch","fetchRefCount","pendingAxiosRequests","WeakMap","axiosRegistrations","originalXMLHttpRequest","xhrRefCount","pendingXhrRequests","stopFetch","Math","max","fetch","startFetch","emit","interceptedFetch","startTime","Date","now","rewrittenInput","call","duration","data","timestamp","status","statusText","error","Error","message","emitXhrLog","pending","success","delete","isXhrDone","readyState","DONE","attachXhrCompletion","completed","finish","removeEventListener","onLoadEnd","onError","onAbort","onTimeout","addEventListener","originalOnReadyStateChange","onreadystatechange","originalOnLoadEnd","onloadend","interceptedReadyStateChange","event","interceptedLoadEnd","stopXMLHttpRequest","constructor","setRequestHeader","startXMLHttpRequest","XMLHttpRequestConstructor","originalOpen","originalSend","originalSetRequestHeader","interceptedOpen","async","username","password","rewrittenUrl","set","interceptedSetRequestHeader","name","interceptedSend","teardownAxios","axiosInstance","registration","refCount","requestId","interceptors","eject","responseId","setupAxios","existing","use","config","fullUrl","baseURL","rewritten","startsWith","Promise","reject","params","resetInterceptors"],"sourceRoot":"../../../src","sources":["interceptors/networkInterceptor.ts"],"mappings":"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","ignoreList":[]}