react-native-debug-toolkit 2.1.0 → 2.2.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 (420) hide show
  1. package/README.md +54 -92
  2. package/README.zh-CN.md +50 -88
  3. package/lib/commonjs/core/DebugToolkit.js +33 -11
  4. package/lib/commonjs/core/DebugToolkit.js.map +1 -1
  5. package/lib/commonjs/core/DebugToolkitProvider.js +18 -12
  6. package/lib/commonjs/core/DebugToolkitProvider.js.map +1 -1
  7. package/lib/commonjs/{initialize.js → core/initialize.js} +17 -17
  8. package/lib/commonjs/core/initialize.js.map +1 -0
  9. package/lib/commonjs/{components → features/clipboard}/ClipboardTab.js +2 -2
  10. package/lib/commonjs/features/clipboard/ClipboardTab.js.map +1 -0
  11. package/lib/commonjs/features/{ClipboardFeature.js → clipboard/index.js} +3 -3
  12. package/lib/commonjs/features/clipboard/index.js.map +1 -0
  13. package/lib/commonjs/{components → features/console}/ConsoleLogTab.js +9 -9
  14. package/lib/commonjs/features/console/ConsoleLogTab.js.map +1 -0
  15. package/lib/commonjs/features/{ConsoleLogFeature.js → console/index.js} +10 -7
  16. package/lib/commonjs/features/console/index.js.map +1 -0
  17. package/lib/commonjs/{components → features/environment}/EnvironmentTab.js +3 -3
  18. package/lib/commonjs/features/environment/EnvironmentTab.js.map +1 -0
  19. package/lib/commonjs/features/{EnvironmentFeature.js → environment/index.js} +18 -13
  20. package/lib/commonjs/features/environment/index.js.map +1 -0
  21. package/lib/commonjs/{components → features/navigation}/NavigationLogTab.js +4 -3
  22. package/lib/commonjs/features/navigation/NavigationLogTab.js.map +1 -0
  23. package/lib/commonjs/features/{NavigationLogFeature.js → navigation/index.js} +4 -4
  24. package/lib/commonjs/features/navigation/index.js.map +1 -0
  25. package/lib/commonjs/{hooks → features/navigation}/useNavigationLogger.js +3 -3
  26. package/lib/commonjs/features/navigation/useNavigationLogger.js.map +1 -0
  27. package/lib/commonjs/{components → features/network}/NetworkLogTab.js +8 -7
  28. package/lib/commonjs/features/network/NetworkLogTab.js.map +1 -0
  29. package/lib/commonjs/features/{NetworkFeature.js → network/index.js} +20 -31
  30. package/lib/commonjs/features/network/index.js.map +1 -0
  31. package/lib/commonjs/features/network/networkInterceptor.js +261 -0
  32. package/lib/commonjs/features/network/networkInterceptor.js.map +1 -0
  33. package/lib/commonjs/{components → features/thirdPartyLibs}/ThirdPartyLibsTab.js +3 -2
  34. package/lib/commonjs/features/thirdPartyLibs/ThirdPartyLibsTab.js.map +1 -0
  35. package/lib/commonjs/features/{ThirdPartyLibsFeature.js → thirdPartyLibs/index.js} +8 -8
  36. package/lib/commonjs/features/thirdPartyLibs/index.js.map +1 -0
  37. package/lib/commonjs/{native/NativeDebugLibs.js → features/thirdPartyLibs/nativeDebugLibs.js} +1 -1
  38. package/lib/commonjs/features/thirdPartyLibs/nativeDebugLibs.js.map +1 -0
  39. package/lib/commonjs/{components → features/track}/TrackLogTab.js +8 -8
  40. package/lib/commonjs/features/track/TrackLogTab.js.map +1 -0
  41. package/lib/commonjs/features/{TrackFeature.js → track/index.js} +10 -5
  42. package/lib/commonjs/features/track/index.js.map +1 -0
  43. package/lib/commonjs/{components → features/zustand}/ZustandLogTab.js +8 -8
  44. package/lib/commonjs/features/zustand/ZustandLogTab.js.map +1 -0
  45. package/lib/commonjs/features/{ZustandLogFeature.js → zustand/index.js} +4 -4
  46. package/lib/commonjs/features/zustand/index.js.map +1 -0
  47. package/lib/commonjs/index.js +21 -21
  48. package/lib/commonjs/index.js.map +1 -1
  49. package/lib/commonjs/types/environment.js +2 -0
  50. package/lib/commonjs/types/environment.js.map +1 -0
  51. package/lib/commonjs/types/feature.js +6 -0
  52. package/lib/commonjs/types/feature.js.map +1 -0
  53. package/lib/commonjs/types/index.js +0 -4
  54. package/lib/commonjs/types/logs.js +2 -0
  55. package/lib/commonjs/types/logs.js.map +1 -0
  56. package/lib/commonjs/types/navigation.js +2 -0
  57. package/lib/commonjs/types/navigation.js.map +1 -0
  58. package/lib/commonjs/types/thirdPartyLibs.js +2 -0
  59. package/lib/commonjs/types/thirdPartyLibs.js.map +1 -0
  60. package/lib/commonjs/{components → ui}/DebugView.js +2 -2
  61. package/lib/commonjs/ui/DebugView.js.map +1 -0
  62. package/lib/commonjs/{components → ui/floating}/FloatIcon.js +65 -12
  63. package/lib/commonjs/ui/floating/FloatIcon.js.map +1 -0
  64. package/lib/commonjs/{components → ui/panel}/DebugPanel.js +4 -4
  65. package/lib/commonjs/ui/panel/DebugPanel.js.map +1 -0
  66. package/lib/commonjs/{components → ui/panel}/FeatureTabBar.js +1 -1
  67. package/lib/commonjs/ui/panel/FeatureTabBar.js.map +1 -0
  68. package/lib/commonjs/{components → ui/panel}/FloatPanelView.js +36 -12
  69. package/lib/commonjs/ui/panel/FloatPanelView.js.map +1 -0
  70. package/lib/commonjs/{components → ui}/shared/CollapsibleSection.js +1 -1
  71. package/lib/commonjs/ui/shared/CollapsibleSection.js.map +1 -0
  72. package/lib/commonjs/{components → ui}/shared/CopyButton.js +1 -1
  73. package/lib/commonjs/ui/shared/CopyButton.js.map +1 -0
  74. package/lib/commonjs/ui/shared/JsonView.js.map +1 -0
  75. package/lib/commonjs/{components → ui}/shared/LogListScreen.js +2 -2
  76. package/lib/commonjs/ui/shared/LogListScreen.js.map +1 -0
  77. package/lib/commonjs/ui/shared/useSlideDetailAnimation.js.map +1 -0
  78. package/lib/commonjs/{utils → ui/theme}/colors.js +0 -5
  79. package/lib/commonjs/ui/theme/colors.js.map +1 -0
  80. package/lib/commonjs/ui/theme/layout.js.map +1 -0
  81. package/lib/commonjs/utils/createChannelFeature.js +18 -4
  82. package/lib/commonjs/utils/createChannelFeature.js.map +1 -1
  83. package/lib/commonjs/utils/createObservableStore.js +5 -0
  84. package/lib/commonjs/utils/createObservableStore.js.map +1 -1
  85. package/lib/commonjs/utils/createPersistedObservableStore.js +71 -0
  86. package/lib/commonjs/utils/createPersistedObservableStore.js.map +1 -0
  87. package/lib/commonjs/utils/debugPreferences.js +52 -0
  88. package/lib/commonjs/utils/debugPreferences.js.map +1 -0
  89. package/lib/module/core/DebugToolkit.js +33 -11
  90. package/lib/module/core/DebugToolkit.js.map +1 -1
  91. package/lib/module/core/DebugToolkitProvider.js +18 -12
  92. package/lib/module/core/DebugToolkitProvider.js.map +1 -1
  93. package/lib/module/{initialize.js → core/initialize.js} +10 -10
  94. package/lib/module/core/initialize.js.map +1 -0
  95. package/lib/module/{components → features/clipboard}/ClipboardTab.js +2 -2
  96. package/lib/module/features/clipboard/ClipboardTab.js.map +1 -0
  97. package/lib/module/features/{ClipboardFeature.js → clipboard/index.js} +3 -3
  98. package/lib/module/features/clipboard/index.js.map +1 -0
  99. package/lib/module/{components → features/console}/ConsoleLogTab.js +9 -9
  100. package/lib/module/features/console/ConsoleLogTab.js.map +1 -0
  101. package/lib/module/features/{ConsoleLogFeature.js → console/index.js} +10 -7
  102. package/lib/module/features/console/index.js.map +1 -0
  103. package/lib/module/{components → features/environment}/EnvironmentTab.js +3 -3
  104. package/lib/module/features/environment/EnvironmentTab.js.map +1 -0
  105. package/lib/module/features/{EnvironmentFeature.js → environment/index.js} +18 -13
  106. package/lib/module/features/environment/index.js.map +1 -0
  107. package/lib/module/{components → features/navigation}/NavigationLogTab.js +4 -3
  108. package/lib/module/features/navigation/NavigationLogTab.js.map +1 -0
  109. package/lib/module/features/{NavigationLogFeature.js → navigation/index.js} +4 -4
  110. package/lib/module/features/navigation/index.js.map +1 -0
  111. package/lib/module/{hooks → features/navigation}/useNavigationLogger.js +2 -2
  112. package/lib/module/features/navigation/useNavigationLogger.js.map +1 -0
  113. package/lib/module/{components → features/network}/NetworkLogTab.js +8 -7
  114. package/lib/module/features/network/NetworkLogTab.js.map +1 -0
  115. package/lib/module/features/{NetworkFeature.js → network/index.js} +20 -31
  116. package/lib/module/features/network/index.js.map +1 -0
  117. package/lib/module/features/network/networkInterceptor.js +256 -0
  118. package/lib/module/features/network/networkInterceptor.js.map +1 -0
  119. package/lib/module/{components → features/thirdPartyLibs}/ThirdPartyLibsTab.js +3 -2
  120. package/lib/module/features/thirdPartyLibs/ThirdPartyLibsTab.js.map +1 -0
  121. package/lib/module/features/{ThirdPartyLibsFeature.js → thirdPartyLibs/index.js} +4 -4
  122. package/lib/module/features/thirdPartyLibs/index.js.map +1 -0
  123. package/lib/module/{native/NativeDebugLibs.js → features/thirdPartyLibs/nativeDebugLibs.js} +1 -1
  124. package/lib/module/features/thirdPartyLibs/nativeDebugLibs.js.map +1 -0
  125. package/lib/module/{components → features/track}/TrackLogTab.js +8 -8
  126. package/lib/module/features/track/TrackLogTab.js.map +1 -0
  127. package/lib/module/features/{TrackFeature.js → track/index.js} +10 -5
  128. package/lib/module/features/track/index.js.map +1 -0
  129. package/lib/module/{components → features/zustand}/ZustandLogTab.js +8 -8
  130. package/lib/module/features/zustand/ZustandLogTab.js.map +1 -0
  131. package/lib/module/features/{ZustandLogFeature.js → zustand/index.js} +4 -4
  132. package/lib/module/features/zustand/index.js.map +1 -0
  133. package/lib/module/index.js +11 -11
  134. package/lib/module/index.js.map +1 -1
  135. package/lib/module/types/environment.js +2 -0
  136. package/lib/module/types/environment.js.map +1 -0
  137. package/lib/module/types/feature.js +4 -0
  138. package/lib/module/types/feature.js.map +1 -0
  139. package/lib/module/types/index.js +0 -2
  140. package/lib/module/types/logs.js +2 -0
  141. package/lib/module/types/logs.js.map +1 -0
  142. package/lib/module/types/navigation.js +2 -0
  143. package/lib/module/types/navigation.js.map +1 -0
  144. package/lib/module/types/thirdPartyLibs.js +2 -0
  145. package/lib/module/types/thirdPartyLibs.js.map +1 -0
  146. package/lib/module/{components → ui}/DebugView.js +2 -2
  147. package/lib/module/ui/DebugView.js.map +1 -0
  148. package/lib/module/{components → ui/floating}/FloatIcon.js +66 -13
  149. package/lib/module/ui/floating/FloatIcon.js.map +1 -0
  150. package/lib/module/{components → ui/panel}/DebugPanel.js +4 -4
  151. package/lib/module/ui/panel/DebugPanel.js.map +1 -0
  152. package/lib/module/{components → ui/panel}/FeatureTabBar.js +1 -1
  153. package/lib/module/ui/panel/FeatureTabBar.js.map +1 -0
  154. package/lib/module/{components → ui/panel}/FloatPanelView.js +36 -12
  155. package/lib/module/ui/panel/FloatPanelView.js.map +1 -0
  156. package/lib/module/{components → ui}/shared/CollapsibleSection.js +1 -1
  157. package/lib/module/ui/shared/CollapsibleSection.js.map +1 -0
  158. package/lib/module/{components → ui}/shared/CopyButton.js +1 -1
  159. package/lib/module/ui/shared/CopyButton.js.map +1 -0
  160. package/lib/module/ui/shared/JsonView.js.map +1 -0
  161. package/lib/module/{components → ui}/shared/LogListScreen.js +2 -2
  162. package/lib/module/ui/shared/LogListScreen.js.map +1 -0
  163. package/lib/module/ui/shared/useSlideDetailAnimation.js.map +1 -0
  164. package/lib/module/{utils → ui/theme}/colors.js +0 -5
  165. package/lib/module/ui/theme/colors.js.map +1 -0
  166. package/lib/module/ui/theme/layout.js.map +1 -0
  167. package/lib/module/utils/createChannelFeature.js +18 -4
  168. package/lib/module/utils/createChannelFeature.js.map +1 -1
  169. package/lib/module/utils/createObservableStore.js +5 -0
  170. package/lib/module/utils/createObservableStore.js.map +1 -1
  171. package/lib/module/utils/createPersistedObservableStore.js +67 -0
  172. package/lib/module/utils/createPersistedObservableStore.js.map +1 -0
  173. package/lib/module/utils/debugPreferences.js +46 -0
  174. package/lib/module/utils/debugPreferences.js.map +1 -0
  175. package/lib/typescript/src/core/DebugToolkit.d.ts +7 -3
  176. package/lib/typescript/src/core/DebugToolkit.d.ts.map +1 -1
  177. package/lib/typescript/src/core/DebugToolkitProvider.d.ts +2 -2
  178. package/lib/typescript/src/core/DebugToolkitProvider.d.ts.map +1 -1
  179. package/lib/typescript/src/{initialize.d.ts → core/initialize.d.ts} +7 -7
  180. package/lib/typescript/src/core/initialize.d.ts.map +1 -0
  181. package/lib/typescript/src/features/clipboard/ClipboardTab.d.ts +4 -0
  182. package/lib/typescript/src/features/clipboard/ClipboardTab.d.ts.map +1 -0
  183. package/lib/typescript/src/features/{ClipboardFeature.d.ts → clipboard/index.d.ts} +3 -3
  184. package/lib/typescript/src/features/clipboard/index.d.ts.map +1 -0
  185. package/lib/typescript/src/{components → features/console}/ConsoleLogTab.d.ts +2 -2
  186. package/lib/typescript/src/features/console/ConsoleLogTab.d.ts.map +1 -0
  187. package/lib/typescript/src/features/{ConsoleLogFeature.d.ts → console/index.d.ts} +3 -3
  188. package/lib/typescript/src/features/console/index.d.ts.map +1 -0
  189. package/lib/typescript/src/{components → features/environment}/EnvironmentTab.d.ts +1 -1
  190. package/lib/typescript/src/features/environment/EnvironmentTab.d.ts.map +1 -0
  191. package/lib/typescript/src/features/{EnvironmentFeature.d.ts → environment/index.d.ts} +2 -2
  192. package/lib/typescript/src/features/environment/index.d.ts.map +1 -0
  193. package/lib/typescript/src/{components → features/navigation}/NavigationLogTab.d.ts +2 -2
  194. package/lib/typescript/src/features/navigation/NavigationLogTab.d.ts.map +1 -0
  195. package/lib/typescript/src/features/{NavigationLogFeature.d.ts → navigation/index.d.ts} +3 -3
  196. package/lib/typescript/src/features/navigation/index.d.ts.map +1 -0
  197. package/lib/typescript/src/{hooks → features/navigation}/useNavigationLogger.d.ts +1 -1
  198. package/lib/typescript/src/features/navigation/useNavigationLogger.d.ts.map +1 -0
  199. package/lib/typescript/src/{components → features/network}/NetworkLogTab.d.ts +2 -2
  200. package/lib/typescript/src/features/network/NetworkLogTab.d.ts.map +1 -0
  201. package/lib/typescript/src/features/network/index.d.ts +15 -0
  202. package/lib/typescript/src/features/network/index.d.ts.map +1 -0
  203. package/lib/typescript/src/features/network/networkInterceptor.d.ts +19 -0
  204. package/lib/typescript/src/features/network/networkInterceptor.d.ts.map +1 -0
  205. package/lib/typescript/src/{components → features/thirdPartyLibs}/ThirdPartyLibsTab.d.ts +2 -2
  206. package/lib/typescript/src/features/thirdPartyLibs/ThirdPartyLibsTab.d.ts.map +1 -0
  207. package/lib/typescript/src/features/thirdPartyLibs/index.d.ts +3 -0
  208. package/lib/typescript/src/features/thirdPartyLibs/index.d.ts.map +1 -0
  209. package/lib/typescript/src/{native/NativeDebugLibs.d.ts → features/thirdPartyLibs/nativeDebugLibs.d.ts} +1 -1
  210. package/lib/typescript/src/features/thirdPartyLibs/nativeDebugLibs.d.ts.map +1 -0
  211. package/lib/typescript/src/{components → features/track}/TrackLogTab.d.ts +2 -2
  212. package/lib/typescript/src/features/track/TrackLogTab.d.ts.map +1 -0
  213. package/lib/typescript/src/features/{TrackFeature.d.ts → track/index.d.ts} +3 -3
  214. package/lib/typescript/src/features/track/index.d.ts.map +1 -0
  215. package/lib/typescript/src/{components → features/zustand}/ZustandLogTab.d.ts +2 -2
  216. package/lib/typescript/src/features/zustand/ZustandLogTab.d.ts.map +1 -0
  217. package/lib/typescript/src/features/{ZustandLogFeature.d.ts → zustand/index.d.ts} +3 -3
  218. package/lib/typescript/src/features/zustand/index.d.ts.map +1 -0
  219. package/lib/typescript/src/index.d.ts +19 -19
  220. package/lib/typescript/src/index.d.ts.map +1 -1
  221. package/lib/typescript/src/types/environment.d.ts +11 -0
  222. package/lib/typescript/src/types/environment.d.ts.map +1 -0
  223. package/lib/typescript/src/types/feature.d.ts +23 -0
  224. package/lib/typescript/src/types/feature.d.ts.map +1 -0
  225. package/lib/typescript/src/types/index.d.ts +5 -108
  226. package/lib/typescript/src/types/index.d.ts.map +1 -1
  227. package/lib/typescript/src/types/logs.d.ts +51 -0
  228. package/lib/typescript/src/types/logs.d.ts.map +1 -0
  229. package/lib/typescript/src/types/navigation.d.ts +8 -0
  230. package/lib/typescript/src/types/navigation.d.ts.map +1 -0
  231. package/lib/typescript/src/types/thirdPartyLibs.d.ts +13 -0
  232. package/lib/typescript/src/types/thirdPartyLibs.d.ts.map +1 -0
  233. package/lib/typescript/src/{components → ui}/DebugView.d.ts +1 -1
  234. package/lib/typescript/src/ui/DebugView.d.ts.map +1 -0
  235. package/lib/typescript/src/ui/floating/FloatIcon.d.ts.map +1 -0
  236. package/lib/typescript/src/ui/panel/DebugPanel.d.ts.map +1 -0
  237. package/lib/typescript/src/ui/panel/FeatureTabBar.d.ts.map +1 -0
  238. package/lib/typescript/src/ui/panel/FloatPanelView.d.ts +12 -0
  239. package/lib/typescript/src/ui/panel/FloatPanelView.d.ts.map +1 -0
  240. package/lib/typescript/src/ui/shared/CollapsibleSection.d.ts.map +1 -0
  241. package/lib/typescript/src/ui/shared/CopyButton.d.ts.map +1 -0
  242. package/lib/typescript/src/ui/shared/JsonView.d.ts.map +1 -0
  243. package/lib/typescript/src/ui/shared/LogListScreen.d.ts.map +1 -0
  244. package/lib/typescript/src/ui/shared/useSlideDetailAnimation.d.ts.map +1 -0
  245. package/lib/typescript/src/ui/theme/colors.d.ts.map +1 -0
  246. package/lib/typescript/src/ui/theme/layout.d.ts.map +1 -0
  247. package/lib/typescript/src/utils/createChannelFeature.d.ts +12 -3
  248. package/lib/typescript/src/utils/createChannelFeature.d.ts.map +1 -1
  249. package/lib/typescript/src/utils/createObservableStore.d.ts +1 -0
  250. package/lib/typescript/src/utils/createObservableStore.d.ts.map +1 -1
  251. package/lib/typescript/src/utils/createPersistedObservableStore.d.ts +15 -0
  252. package/lib/typescript/src/utils/createPersistedObservableStore.d.ts.map +1 -0
  253. package/lib/typescript/src/utils/debugPreferences.d.ts +10 -0
  254. package/lib/typescript/src/utils/debugPreferences.d.ts.map +1 -0
  255. package/package.json +1 -1
  256. package/src/core/DebugToolkit.tsx +37 -11
  257. package/src/core/DebugToolkitProvider.tsx +20 -13
  258. package/src/{initialize.ts → core/initialize.ts} +16 -16
  259. package/src/{components → features/clipboard}/ClipboardTab.tsx +4 -4
  260. package/src/features/{ClipboardFeature.ts → clipboard/index.ts} +4 -4
  261. package/src/{components → features/console}/ConsoleLogTab.tsx +10 -10
  262. package/src/features/{ConsoleLogFeature.ts → console/index.ts} +11 -8
  263. package/src/{components → features/environment}/EnvironmentTab.tsx +5 -5
  264. package/src/features/{EnvironmentFeature.ts → environment/index.ts} +23 -13
  265. package/src/{components → features/navigation}/NavigationLogTab.tsx +6 -5
  266. package/src/features/{NavigationLogFeature.ts → navigation/index.ts} +5 -5
  267. package/src/{hooks → features/navigation}/useNavigationLogger.ts +3 -3
  268. package/src/{components → features/network}/NetworkLogTab.tsx +10 -9
  269. package/src/features/{NetworkFeature.ts → network/index.ts} +26 -39
  270. package/src/features/network/networkInterceptor.ts +311 -0
  271. package/src/{components → features/thirdPartyLibs}/ThirdPartyLibsTab.tsx +5 -4
  272. package/src/features/{ThirdPartyLibsFeature.ts → thirdPartyLibs/index.ts} +5 -5
  273. package/src/{components → features/track}/TrackLogTab.tsx +9 -9
  274. package/src/features/{TrackFeature.ts → track/index.ts} +13 -6
  275. package/src/{components → features/zustand}/ZustandLogTab.tsx +10 -10
  276. package/src/features/{ZustandLogFeature.ts → zustand/index.ts} +5 -5
  277. package/src/index.ts +19 -19
  278. package/src/types/environment.ts +11 -0
  279. package/src/types/feature.ts +32 -0
  280. package/src/types/index.ts +29 -127
  281. package/src/types/logs.ts +54 -0
  282. package/src/types/navigation.ts +5 -0
  283. package/src/types/thirdPartyLibs.ts +13 -0
  284. package/src/{components → ui}/DebugView.tsx +3 -3
  285. package/src/{components → ui/floating}/FloatIcon.tsx +60 -29
  286. package/src/{components → ui/panel}/DebugPanel.tsx +4 -4
  287. package/src/{components → ui/panel}/FeatureTabBar.tsx +1 -1
  288. package/src/{components → ui/panel}/FloatPanelView.tsx +38 -13
  289. package/src/{components → ui}/shared/CollapsibleSection.tsx +1 -1
  290. package/src/{components → ui}/shared/CopyButton.tsx +1 -1
  291. package/src/{components → ui}/shared/LogListScreen.tsx +2 -2
  292. package/src/{utils → ui/theme}/colors.ts +0 -5
  293. package/src/utils/createChannelFeature.ts +32 -7
  294. package/src/utils/createObservableStore.ts +6 -0
  295. package/src/utils/createPersistedObservableStore.ts +76 -0
  296. package/src/utils/debugPreferences.ts +48 -0
  297. package/lib/commonjs/components/ClipboardTab.js.map +0 -1
  298. package/lib/commonjs/components/ConsoleLogTab.js.map +0 -1
  299. package/lib/commonjs/components/DebugPanel.js.map +0 -1
  300. package/lib/commonjs/components/DebugView.js.map +0 -1
  301. package/lib/commonjs/components/EnvironmentTab.js.map +0 -1
  302. package/lib/commonjs/components/FeatureTabBar.js.map +0 -1
  303. package/lib/commonjs/components/FloatIcon.js.map +0 -1
  304. package/lib/commonjs/components/FloatPanelView.js.map +0 -1
  305. package/lib/commonjs/components/NavigationLogTab.js.map +0 -1
  306. package/lib/commonjs/components/NetworkLogTab.js.map +0 -1
  307. package/lib/commonjs/components/ThirdPartyLibsTab.js.map +0 -1
  308. package/lib/commonjs/components/TrackLogTab.js.map +0 -1
  309. package/lib/commonjs/components/ZustandLogTab.js.map +0 -1
  310. package/lib/commonjs/components/shared/CollapsibleSection.js.map +0 -1
  311. package/lib/commonjs/components/shared/CopyButton.js.map +0 -1
  312. package/lib/commonjs/components/shared/JsonView.js.map +0 -1
  313. package/lib/commonjs/components/shared/LogListScreen.js.map +0 -1
  314. package/lib/commonjs/features/ClipboardFeature.js.map +0 -1
  315. package/lib/commonjs/features/ConsoleLogFeature.js.map +0 -1
  316. package/lib/commonjs/features/EnvironmentFeature.js.map +0 -1
  317. package/lib/commonjs/features/NavigationLogFeature.js.map +0 -1
  318. package/lib/commonjs/features/NetworkFeature.js.map +0 -1
  319. package/lib/commonjs/features/ThirdPartyLibsFeature.js.map +0 -1
  320. package/lib/commonjs/features/TrackFeature.js.map +0 -1
  321. package/lib/commonjs/features/ZustandLogFeature.js.map +0 -1
  322. package/lib/commonjs/hooks/useNavigationLogger.js.map +0 -1
  323. package/lib/commonjs/hooks/useSlideDetailAnimation.js.map +0 -1
  324. package/lib/commonjs/initialize.js.map +0 -1
  325. package/lib/commonjs/interceptors/networkInterceptor.js +0 -466
  326. package/lib/commonjs/interceptors/networkInterceptor.js.map +0 -1
  327. package/lib/commonjs/native/NativeDebugLibs.js.map +0 -1
  328. package/lib/commonjs/utils/colors.js.map +0 -1
  329. package/lib/commonjs/utils/layout.js.map +0 -1
  330. package/lib/module/components/ClipboardTab.js.map +0 -1
  331. package/lib/module/components/ConsoleLogTab.js.map +0 -1
  332. package/lib/module/components/DebugPanel.js.map +0 -1
  333. package/lib/module/components/DebugView.js.map +0 -1
  334. package/lib/module/components/EnvironmentTab.js.map +0 -1
  335. package/lib/module/components/FeatureTabBar.js.map +0 -1
  336. package/lib/module/components/FloatIcon.js.map +0 -1
  337. package/lib/module/components/FloatPanelView.js.map +0 -1
  338. package/lib/module/components/NavigationLogTab.js.map +0 -1
  339. package/lib/module/components/NetworkLogTab.js.map +0 -1
  340. package/lib/module/components/ThirdPartyLibsTab.js.map +0 -1
  341. package/lib/module/components/TrackLogTab.js.map +0 -1
  342. package/lib/module/components/ZustandLogTab.js.map +0 -1
  343. package/lib/module/components/shared/CollapsibleSection.js.map +0 -1
  344. package/lib/module/components/shared/CopyButton.js.map +0 -1
  345. package/lib/module/components/shared/JsonView.js.map +0 -1
  346. package/lib/module/components/shared/LogListScreen.js.map +0 -1
  347. package/lib/module/features/ClipboardFeature.js.map +0 -1
  348. package/lib/module/features/ConsoleLogFeature.js.map +0 -1
  349. package/lib/module/features/EnvironmentFeature.js.map +0 -1
  350. package/lib/module/features/NavigationLogFeature.js.map +0 -1
  351. package/lib/module/features/NetworkFeature.js.map +0 -1
  352. package/lib/module/features/ThirdPartyLibsFeature.js.map +0 -1
  353. package/lib/module/features/TrackFeature.js.map +0 -1
  354. package/lib/module/features/ZustandLogFeature.js.map +0 -1
  355. package/lib/module/hooks/useNavigationLogger.js.map +0 -1
  356. package/lib/module/hooks/useSlideDetailAnimation.js.map +0 -1
  357. package/lib/module/initialize.js.map +0 -1
  358. package/lib/module/interceptors/networkInterceptor.js +0 -460
  359. package/lib/module/interceptors/networkInterceptor.js.map +0 -1
  360. package/lib/module/native/NativeDebugLibs.js.map +0 -1
  361. package/lib/module/utils/colors.js.map +0 -1
  362. package/lib/module/utils/layout.js.map +0 -1
  363. package/lib/typescript/src/components/ClipboardTab.d.ts +0 -4
  364. package/lib/typescript/src/components/ClipboardTab.d.ts.map +0 -1
  365. package/lib/typescript/src/components/ConsoleLogTab.d.ts.map +0 -1
  366. package/lib/typescript/src/components/DebugPanel.d.ts.map +0 -1
  367. package/lib/typescript/src/components/DebugView.d.ts.map +0 -1
  368. package/lib/typescript/src/components/EnvironmentTab.d.ts.map +0 -1
  369. package/lib/typescript/src/components/FeatureTabBar.d.ts.map +0 -1
  370. package/lib/typescript/src/components/FloatIcon.d.ts.map +0 -1
  371. package/lib/typescript/src/components/FloatPanelView.d.ts +0 -9
  372. package/lib/typescript/src/components/FloatPanelView.d.ts.map +0 -1
  373. package/lib/typescript/src/components/NavigationLogTab.d.ts.map +0 -1
  374. package/lib/typescript/src/components/NetworkLogTab.d.ts.map +0 -1
  375. package/lib/typescript/src/components/ThirdPartyLibsTab.d.ts.map +0 -1
  376. package/lib/typescript/src/components/TrackLogTab.d.ts.map +0 -1
  377. package/lib/typescript/src/components/ZustandLogTab.d.ts.map +0 -1
  378. package/lib/typescript/src/components/shared/CollapsibleSection.d.ts.map +0 -1
  379. package/lib/typescript/src/components/shared/CopyButton.d.ts.map +0 -1
  380. package/lib/typescript/src/components/shared/JsonView.d.ts.map +0 -1
  381. package/lib/typescript/src/components/shared/LogListScreen.d.ts.map +0 -1
  382. package/lib/typescript/src/features/ClipboardFeature.d.ts.map +0 -1
  383. package/lib/typescript/src/features/ConsoleLogFeature.d.ts.map +0 -1
  384. package/lib/typescript/src/features/EnvironmentFeature.d.ts.map +0 -1
  385. package/lib/typescript/src/features/NavigationLogFeature.d.ts.map +0 -1
  386. package/lib/typescript/src/features/NetworkFeature.d.ts +0 -15
  387. package/lib/typescript/src/features/NetworkFeature.d.ts.map +0 -1
  388. package/lib/typescript/src/features/ThirdPartyLibsFeature.d.ts +0 -3
  389. package/lib/typescript/src/features/ThirdPartyLibsFeature.d.ts.map +0 -1
  390. package/lib/typescript/src/features/TrackFeature.d.ts.map +0 -1
  391. package/lib/typescript/src/features/ZustandLogFeature.d.ts.map +0 -1
  392. package/lib/typescript/src/hooks/useNavigationLogger.d.ts.map +0 -1
  393. package/lib/typescript/src/hooks/useSlideDetailAnimation.d.ts.map +0 -1
  394. package/lib/typescript/src/initialize.d.ts.map +0 -1
  395. package/lib/typescript/src/interceptors/networkInterceptor.d.ts +0 -18
  396. package/lib/typescript/src/interceptors/networkInterceptor.d.ts.map +0 -1
  397. package/lib/typescript/src/native/NativeDebugLibs.d.ts.map +0 -1
  398. package/lib/typescript/src/utils/colors.d.ts.map +0 -1
  399. package/lib/typescript/src/utils/layout.d.ts.map +0 -1
  400. package/src/interceptors/networkInterceptor.ts +0 -646
  401. /package/lib/commonjs/{components → ui}/shared/JsonView.js +0 -0
  402. /package/lib/commonjs/{hooks → ui/shared}/useSlideDetailAnimation.js +0 -0
  403. /package/lib/commonjs/{utils → ui/theme}/layout.js +0 -0
  404. /package/lib/module/{components → ui}/shared/JsonView.js +0 -0
  405. /package/lib/module/{hooks → ui/shared}/useSlideDetailAnimation.js +0 -0
  406. /package/lib/module/{utils → ui/theme}/layout.js +0 -0
  407. /package/lib/typescript/src/{components → ui/floating}/FloatIcon.d.ts +0 -0
  408. /package/lib/typescript/src/{components → ui/panel}/DebugPanel.d.ts +0 -0
  409. /package/lib/typescript/src/{components → ui/panel}/FeatureTabBar.d.ts +0 -0
  410. /package/lib/typescript/src/{components → ui}/shared/CollapsibleSection.d.ts +0 -0
  411. /package/lib/typescript/src/{components → ui}/shared/CopyButton.d.ts +0 -0
  412. /package/lib/typescript/src/{components → ui}/shared/JsonView.d.ts +0 -0
  413. /package/lib/typescript/src/{components → ui}/shared/LogListScreen.d.ts +0 -0
  414. /package/lib/typescript/src/{hooks → ui/shared}/useSlideDetailAnimation.d.ts +0 -0
  415. /package/lib/typescript/src/{utils → ui/theme}/colors.d.ts +0 -0
  416. /package/lib/typescript/src/{utils → ui/theme}/layout.d.ts +0 -0
  417. /package/src/{native/NativeDebugLibs.ts → features/thirdPartyLibs/nativeDebugLibs.ts} +0 -0
  418. /package/src/{components → ui}/shared/JsonView.tsx +0 -0
  419. /package/src/{hooks → ui/shared}/useSlideDetailAnimation.ts +0 -0
  420. /package/src/{utils → ui/theme}/layout.ts +0 -0
@@ -1,15 +1,15 @@
1
- import { ClipboardTab } from '../components/ClipboardTab';
2
- import type { DebugFeature } from '../types';
1
+ import { ClipboardTab } from './ClipboardTab';
2
+ import type { DebugFeature } from '../../types';
3
3
 
4
4
  /**
5
5
  * Clipboard feature — all logic lives in ClipboardTab.
6
6
  * Data flow is user-driven (TextInput), not event-based.
7
7
  */
8
- export const createClipboardFeature = (): DebugFeature<void> => ({
8
+ export const createClipboardFeature = (): DebugFeature<null> => ({
9
9
  name: 'clipboard',
10
10
  label: 'Clipboard',
11
11
  renderContent: ClipboardTab,
12
12
  setup() {},
13
- getData: () => [],
13
+ getSnapshot: () => null,
14
14
  cleanup() {},
15
15
  });
@@ -1,13 +1,13 @@
1
1
  import React from 'react';
2
2
  import { View, Text, StyleSheet, ScrollView } from 'react-native';
3
- import { Colors } from '../utils/colors';
4
- import { safeStringify } from '../utils/safeStringify';
5
- import { CollapsibleSection } from './shared/CollapsibleSection';
6
- import { JsonView } from './shared/JsonView';
7
- import { CopyButton } from './shared/CopyButton';
8
- import { LogListScreen } from './shared/LogListScreen';
9
- import { fmt } from '../utils/copyToComputer';
10
- import type { ConsoleLogEntry, DebugFeatureRenderProps } from '../types';
3
+ import { Colors } from '../../ui/theme/colors';
4
+ import { safeStringify } from '../../utils/safeStringify';
5
+ import { CollapsibleSection } from '../../ui/shared/CollapsibleSection';
6
+ import { JsonView } from '../../ui/shared/JsonView';
7
+ import { CopyButton } from '../../ui/shared/CopyButton';
8
+ import { LogListScreen } from '../../ui/shared/LogListScreen';
9
+ import { fmt } from '../../utils/copyToComputer';
10
+ import type { ConsoleLogEntry, DebugFeatureRenderProps } from '../../types';
11
11
 
12
12
  const LEVEL_COLORS: Record<string, string> = {
13
13
  log: '#8E8E93',
@@ -23,9 +23,9 @@ const LEVEL_ICONS: Record<string, string> = {
23
23
  error: '✕',
24
24
  };
25
25
 
26
- export const ConsoleLogTab: React.FC<DebugFeatureRenderProps<ConsoleLogEntry>> = React.memo(({ data }) => (
26
+ export const ConsoleLogTab: React.FC<DebugFeatureRenderProps<ConsoleLogEntry[]>> = React.memo(({ snapshot }) => (
27
27
  <LogListScreen
28
- data={data}
28
+ data={snapshot}
29
29
  emptyText="No console logs"
30
30
  renderRow={(item) => (
31
31
  <View style={s.cardRow}>
@@ -1,6 +1,7 @@
1
- import { ConsoleLogTab } from '../components/ConsoleLogTab';
2
- import type { ConsoleLogEntry, DebugFeature } from '../types';
3
- import { createObservableStore } from '../utils/createObservableStore';
1
+ import { ConsoleLogTab } from './ConsoleLogTab';
2
+ import type { ConsoleLogEntry, DebugFeature } from '../../types';
3
+ import { createPersistedObservableStore } from '../../utils/createPersistedObservableStore';
4
+ import { KEYS } from '../../utils/debugPreferences';
4
5
 
5
6
  const LEVELS: ConsoleLogEntry['level'][] = ['log', 'info', 'warn', 'error'];
6
7
 
@@ -77,10 +78,12 @@ export interface ConsoleFeatureConfig {
77
78
  maxLogs?: number;
78
79
  }
79
80
 
80
- export const createConsoleLogFeature = (config?: ConsoleFeatureConfig): DebugFeature<ConsoleLogEntry> => {
81
+ export const createConsoleLogFeature = (config?: ConsoleFeatureConfig): DebugFeature<ConsoleLogEntry[]> => {
81
82
  const maxLogs = config?.maxLogs ?? DEFAULT_MAX_LOGS;
82
- const logStore = createObservableStore<ConsoleLogEntry>();
83
- let nextId = 0;
83
+ const logStore = createPersistedObservableStore<ConsoleLogEntry>({
84
+ storageKey: KEYS.consoleLogs,
85
+ maxPersist: 50,
86
+ });
84
87
  let initialized = false;
85
88
  let stopCapture: (() => void) | null = null;
86
89
 
@@ -92,11 +95,11 @@ export const createConsoleLogFeature = (config?: ConsoleFeatureConfig): DebugFea
92
95
  if (initialized) return;
93
96
 
94
97
  stopCapture = consoleCapture.start((entry) => {
95
- logStore.push({ ...entry, id: String(nextId++) }, maxLogs);
98
+ logStore.push({ ...entry, id: logStore.nextId() }, maxLogs);
96
99
  });
97
100
  initialized = true;
98
101
  },
99
- getData: () => logStore.getData(),
102
+ getSnapshot: () => logStore.getData(),
100
103
  clear: () => { logStore.clear(); },
101
104
  cleanup: () => {
102
105
  if (!initialized) return;
@@ -6,9 +6,9 @@ import {
6
6
  StyleSheet,
7
7
  ScrollView,
8
8
  } from 'react-native';
9
- import { Colors } from '../utils/colors';
10
- import type { DebugFeatureRenderProps, EnvironmentState } from '../types';
11
- import type { EnvironmentFeatureAPI } from '../features/EnvironmentFeature';
9
+ import { Colors } from '../../ui/theme/colors';
10
+ import type { DebugFeatureRenderProps, EnvironmentState } from '../../types';
11
+ import type { EnvironmentFeatureAPI } from './index';
12
12
 
13
13
  const DEFAULT_COLORS: Record<string, string> = {
14
14
  dev: '#34C759',
@@ -20,10 +20,10 @@ const DEFAULT_COLORS: Record<string, string> = {
20
20
  };
21
21
 
22
22
  export const EnvironmentTab: React.FC<DebugFeatureRenderProps<EnvironmentState>> = React.memo(({
23
- data,
23
+ snapshot,
24
24
  feature,
25
25
  }) => {
26
- const state = data[0];
26
+ const state = snapshot;
27
27
  if (!state || state.environments.length === 0) {
28
28
  return (
29
29
  <View style={styles.container}>
@@ -1,7 +1,11 @@
1
- import { EnvironmentTab } from '../components/EnvironmentTab';
2
- import type { DebugFeature, EnvironmentConfig, EnvironmentState } from '../types';
3
- import { createObservableStore } from '../utils/createObservableStore';
4
- import { urlRewriter } from '../utils/urlRewriterRegistry';
1
+ import { EnvironmentTab } from './EnvironmentTab';
2
+ import type {
3
+ DebugFeature,
4
+ DebugFeatureListener,
5
+ EnvironmentConfig,
6
+ EnvironmentState,
7
+ } from '../../types';
8
+ import { urlRewriter } from '../../utils/urlRewriterRegistry';
5
9
 
6
10
  // Lazy AsyncStorage loader
7
11
  type AsyncStorageModule = {
@@ -76,7 +80,7 @@ export interface EnvironmentFeatureAPI extends DebugFeature<EnvironmentState> {
76
80
  export const createEnvironmentFeature = (
77
81
  initialEnvironments?: EnvironmentConfig[],
78
82
  ): EnvironmentFeatureAPI => {
79
- const stateStore = createObservableStore<EnvironmentState>();
83
+ const listeners = new Set<DebugFeatureListener>();
80
84
  let environments: EnvironmentConfig[] = initialEnvironments ?? [];
81
85
  let initialized = false;
82
86
 
@@ -85,9 +89,10 @@ export const createEnvironmentFeature = (
85
89
  currentEnvironmentId: activeEnvironmentId,
86
90
  });
87
91
 
88
- const updateStore = () => {
89
- stateStore.clear();
90
- stateStore.push(getCurrentState());
92
+ const notify = () => {
93
+ listeners.forEach((listener) => {
94
+ listener();
95
+ });
91
96
  };
92
97
 
93
98
  const applyEnvironment = (envId: string | null) => {
@@ -106,7 +111,7 @@ export const createEnvironmentFeature = (
106
111
  }
107
112
  }
108
113
 
109
- updateStore();
114
+ notify();
110
115
  };
111
116
 
112
117
  const persistSelection = async (envId: string | null) => {
@@ -139,7 +144,7 @@ export const createEnvironmentFeature = (
139
144
  setup: () => {
140
145
  if (initialized) return;
141
146
 
142
- updateStore();
147
+ notify();
143
148
  initialized = true;
144
149
 
145
150
  // Install rewriter if an environment is already selected
@@ -150,7 +155,7 @@ export const createEnvironmentFeature = (
150
155
  // Async persistence load (will override if a preference exists)
151
156
  loadPersistedSelection();
152
157
  },
153
- getData: () => stateStore.getData(),
158
+ getSnapshot: getCurrentState,
154
159
  clear: () => {
155
160
  applyEnvironment(null);
156
161
  persistSelection(null);
@@ -160,10 +165,15 @@ export const createEnvironmentFeature = (
160
165
  urlRewriter.set(null);
161
166
  activeEnvironmentId = null;
162
167
  currentHostsMap = null;
163
- stateStore.clear();
168
+ notify();
164
169
  initialized = false;
165
170
  },
166
- subscribe: (listener) => stateStore.subscribe(listener),
171
+ subscribe: (listener) => {
172
+ listeners.add(listener);
173
+ return () => {
174
+ listeners.delete(listener);
175
+ };
176
+ },
167
177
  registerEnvironments: (envs: EnvironmentConfig[]) => {
168
178
  environments = envs;
169
179
  applyEnvironment(activeEnvironmentId);
@@ -1,12 +1,13 @@
1
1
  import React from 'react';
2
2
  import { View, Text, FlatList, StyleSheet } from 'react-native';
3
- import { Colors } from '../utils/colors';
4
- import { CopyButton } from './shared/CopyButton';
5
- import type { DebugFeatureRenderProps, NavigationLogEntry } from '../types';
3
+ import { Colors } from '../../ui/theme/colors';
4
+ import { CopyButton } from '../../ui/shared/CopyButton';
5
+ import type { DebugFeatureRenderProps, NavigationLogEntry } from '../../types';
6
6
 
7
- export const NavigationLogTab: React.FC<DebugFeatureRenderProps<NavigationLogEntry>> = React.memo(({
8
- data,
7
+ export const NavigationLogTab: React.FC<DebugFeatureRenderProps<NavigationLogEntry[]>> = React.memo(({
8
+ snapshot,
9
9
  }) => {
10
+ const data = snapshot;
10
11
  const renderItem = ({ item }: { item: NavigationLogEntry }) => (
11
12
  <View style={styles.logItem}>
12
13
  <View style={styles.header}>
@@ -1,7 +1,7 @@
1
- import { NavigationLogTab } from '../components/NavigationLogTab';
2
- import type { DebugFeature, NavigationLogEntry } from '../types';
3
- import { createEventChannel } from '../utils/createEventChannel';
4
- import { createChannelFeature } from '../utils/createChannelFeature';
1
+ import { NavigationLogTab } from './NavigationLogTab';
2
+ import type { DebugFeature, NavigationLogEntry } from '../../types';
3
+ import { createEventChannel } from '../../utils/createEventChannel';
4
+ import { createChannelFeature } from '../../utils/createChannelFeature';
5
5
 
6
6
  type NavigationLogPayload = Omit<NavigationLogEntry, 'id'>;
7
7
 
@@ -31,7 +31,7 @@ export interface NavigationFeatureConfig {
31
31
  maxLogs?: number;
32
32
  }
33
33
 
34
- export const createNavigationLogFeature = (config?: NavigationFeatureConfig): DebugFeature<NavigationLogEntry> =>
34
+ export const createNavigationLogFeature = (config?: NavigationFeatureConfig): DebugFeature<NavigationLogEntry[]> =>
35
35
  createChannelFeature(
36
36
  () => navigationChannel,
37
37
  (payload, id) => ({ ...payload, id }),
@@ -1,7 +1,7 @@
1
1
  import { useEffect, useRef } from 'react';
2
- import { addNavigationLog } from '../features/NavigationLogFeature';
3
- import { safeStringify } from '../utils/safeStringify';
4
- import type { NavigationContainerRef } from '../types';
2
+ import { addNavigationLog } from './index';
3
+ import { safeStringify } from '../../utils/safeStringify';
4
+ import type { NavigationContainerRef } from '../../types';
5
5
 
6
6
  function getActiveRouteName(state: unknown): string {
7
7
  let currentState = state as
@@ -6,13 +6,13 @@ import {
6
6
  TextInput,
7
7
  ScrollView,
8
8
  } from 'react-native';
9
- import { Colors, getMethodColor } from '../utils/colors';
10
- import { CollapsibleSection } from './shared/CollapsibleSection';
11
- import { JsonView } from './shared/JsonView';
12
- import { CopyButton } from './shared/CopyButton';
13
- import { fmt } from '../utils/copyToComputer';
14
- import { LogListScreen } from './shared/LogListScreen';
15
- import type { DebugFeatureRenderProps, NetworkLogEntry } from '../types';
9
+ import { Colors, getMethodColor } from '../../ui/theme/colors';
10
+ import { CollapsibleSection } from '../../ui/shared/CollapsibleSection';
11
+ import { JsonView } from '../../ui/shared/JsonView';
12
+ import { CopyButton } from '../../ui/shared/CopyButton';
13
+ import { fmt } from '../../utils/copyToComputer';
14
+ import { LogListScreen } from '../../ui/shared/LogListScreen';
15
+ import type { DebugFeatureRenderProps, NetworkLogEntry } from '../../types';
16
16
 
17
17
  const formatSize = (data: unknown): string => {
18
18
  if (!data) return '';
@@ -37,10 +37,11 @@ const buildCurl = (log: NetworkLogEntry): string => {
37
37
  return c;
38
38
  };
39
39
 
40
- export const NetworkLogTab: React.FC<DebugFeatureRenderProps<NetworkLogEntry>> = React.memo(({
41
- data,
40
+ export const NetworkLogTab: React.FC<DebugFeatureRenderProps<NetworkLogEntry[]>> = React.memo(({
41
+ snapshot,
42
42
  }) => {
43
43
  const [search, setSearch] = useState('');
44
+ const data = snapshot;
44
45
 
45
46
  const filtered = search
46
47
  ? data.filter(
@@ -1,15 +1,17 @@
1
- import { NetworkLogTab } from '../components/NetworkLogTab';
2
- import type { DebugFeature, NetworkLogEntry } from '../types';
3
- import { createEventChannel } from '../utils/createEventChannel';
4
- import { createObservableStore } from '../utils/createObservableStore';
5
- import { urlRewriter } from '../utils/urlRewriterRegistry';
1
+ import { NetworkLogTab } from './NetworkLogTab';
2
+
3
+ export type { AxiosInstanceLike } from './networkInterceptor';
4
+ import type { DebugFeature, NetworkLogEntry } from '../../types';
5
+ import { createEventChannel } from '../../utils/createEventChannel';
6
+ import { createPersistedObservableStore } from '../../utils/createPersistedObservableStore';
7
+ import { KEYS } from '../../utils/debugPreferences';
8
+ import { urlRewriter } from '../../utils/urlRewriterRegistry';
9
+ import type { AxiosInstanceLike } from './networkInterceptor';
6
10
  import {
7
11
  startFetch,
8
- startXMLHttpRequest,
9
- setupAxios,
12
+ startAxios,
10
13
  resetInterceptors,
11
- } from '../interceptors/networkInterceptor';
12
- import type { AxiosInstanceLike } from '../interceptors/networkInterceptor';
14
+ } from './networkInterceptor';
13
15
 
14
16
  type NetworkLogPayload = Omit<NetworkLogEntry, 'id'>;
15
17
 
@@ -39,34 +41,32 @@ function emitNetworkLog(entry: NetworkLogPayload): void {
39
41
 
40
42
  const DEFAULT_MAX_LOGS = 200;
41
43
 
42
- export type { AxiosInstanceLike };
43
-
44
44
  export interface NetworkFeatureConfig {
45
45
  /** Maximum number of network logs to keep (default: 200) */
46
46
  maxLogs?: number;
47
47
  /** URLs to filter out from logging */
48
48
  blacklist?: Array<string | RegExp>;
49
+ /** Axios instance to intercept. Pass your axios.create() instance to capture axios requests. */
50
+ axiosInstance?: AxiosInstanceLike;
49
51
  }
50
52
 
51
- export const createNetworkFeature = (config?: NetworkFeatureConfig): DebugFeature<NetworkLogEntry> & {
52
- setupAxiosInterceptors: (axiosInstance: AxiosInstanceLike) => () => void;
53
- } => {
53
+ export const createNetworkFeature = (config?: NetworkFeatureConfig): DebugFeature<NetworkLogEntry[]> => {
54
54
  const maxLogs = config?.maxLogs ?? DEFAULT_MAX_LOGS;
55
55
  const blacklist: Array<string | RegExp> = config?.blacklist ? [...config.blacklist] : [];
56
- const logStore = createObservableStore<NetworkLogEntry>();
57
- const axiosCleanupMap = new Map<AxiosInstanceLike, () => void>();
58
-
59
- let nextId = 0;
56
+ const logStore = createPersistedObservableStore<NetworkLogEntry>({
57
+ storageKey: KEYS.networkLogs,
58
+ maxPersist: 30,
59
+ });
60
60
  let initialized = false;
61
61
  let unsubscribeLogs: (() => void) | null = null;
62
62
  let stopFetchFn: (() => void) | null = null;
63
- let stopXMLHttpRequestFn: (() => void) | null = null;
63
+ let stopAxiosFn: (() => void) | null = null;
64
64
 
65
65
  const handleLog = (entry: NetworkLogPayload) => {
66
66
  if (isUrlBlacklisted(entry.request.url, blacklist)) {
67
67
  return;
68
68
  }
69
- logStore.push({ ...entry, id: String(nextId++) }, maxLogs);
69
+ logStore.push({ ...entry, id: logStore.nextId() }, maxLogs);
70
70
  };
71
71
 
72
72
  return {
@@ -79,10 +79,12 @@ export const createNetworkFeature = (config?: NetworkFeatureConfig): DebugFeatur
79
79
  }
80
80
  unsubscribeLogs = networkChannel.subscribe(handleLog);
81
81
  stopFetchFn = startFetch(emitNetworkLog);
82
- stopXMLHttpRequestFn = startXMLHttpRequest(emitNetworkLog);
82
+ if (config?.axiosInstance) {
83
+ stopAxiosFn = startAxios(config.axiosInstance, emitNetworkLog);
84
+ }
83
85
  initialized = true;
84
86
  },
85
- getData: () => logStore.getData(),
87
+ getSnapshot: () => logStore.getData(),
86
88
  clear: () => {
87
89
  logStore.clear();
88
90
  },
@@ -95,27 +97,12 @@ export const createNetworkFeature = (config?: NetworkFeatureConfig): DebugFeatur
95
97
  unsubscribeLogs = null;
96
98
  stopFetchFn?.();
97
99
  stopFetchFn = null;
98
- stopXMLHttpRequestFn?.();
99
- stopXMLHttpRequestFn = null;
100
- axiosCleanupMap.forEach((c) => c());
101
- axiosCleanupMap.clear();
100
+ stopAxiosFn?.();
101
+ stopAxiosFn = null;
102
102
  logStore.clear();
103
103
  initialized = false;
104
104
  },
105
105
  subscribe: (listener) => logStore.subscribe(listener),
106
- setupAxiosInterceptors: (axiosInstance) => {
107
- const existingCleanup = axiosCleanupMap.get(axiosInstance);
108
- if (existingCleanup) {
109
- return existingCleanup;
110
- }
111
- const cleanup = setupAxios(axiosInstance, emitNetworkLog);
112
- const trackedCleanup = () => {
113
- cleanup();
114
- axiosCleanupMap.delete(axiosInstance);
115
- };
116
- axiosCleanupMap.set(axiosInstance, trackedCleanup);
117
- return trackedCleanup;
118
- },
119
106
  };
120
107
  };
121
108