react-native-xenon 0.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 (367) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +62 -0
  3. package/lib/commonjs/assets/code.png +0 -0
  4. package/lib/commonjs/assets/delete.png +0 -0
  5. package/lib/commonjs/assets/hide.png +0 -0
  6. package/lib/commonjs/assets/move.png +0 -0
  7. package/lib/commonjs/assets/record.png +0 -0
  8. package/lib/commonjs/constants.js +8 -0
  9. package/lib/commonjs/constants.js.map +1 -0
  10. package/lib/commonjs/contexts/MainContext.js +10 -0
  11. package/lib/commonjs/contexts/MainContext.js.map +1 -0
  12. package/lib/commonjs/contexts/index.js +14 -0
  13. package/lib/commonjs/contexts/index.js.map +1 -0
  14. package/lib/commonjs/global.d.js +2 -0
  15. package/lib/commonjs/global.d.js.map +1 -0
  16. package/lib/commonjs/hooks/index.js +28 -0
  17. package/lib/commonjs/hooks/index.js.map +1 -0
  18. package/lib/commonjs/hooks/useConsoleInterceptor.js +49 -0
  19. package/lib/commonjs/hooks/useConsoleInterceptor.js.map +1 -0
  20. package/lib/commonjs/hooks/useNetworkInterceptor.js +162 -0
  21. package/lib/commonjs/hooks/useNetworkInterceptor.js.map +1 -0
  22. package/lib/commonjs/hooks/useScrollToBottom.js +23 -0
  23. package/lib/commonjs/hooks/useScrollToBottom.js.map +1 -0
  24. package/lib/commonjs/index.js +14 -0
  25. package/lib/commonjs/index.js.map +1 -0
  26. package/lib/commonjs/interceptors/ConsoleInterceptor.js +93 -0
  27. package/lib/commonjs/interceptors/ConsoleInterceptor.js.map +1 -0
  28. package/lib/commonjs/interceptors/FetchInterceptor.js +114 -0
  29. package/lib/commonjs/interceptors/FetchInterceptor.js.map +1 -0
  30. package/lib/commonjs/interceptors/HttpInterceptor.js +57 -0
  31. package/lib/commonjs/interceptors/HttpInterceptor.js.map +1 -0
  32. package/lib/commonjs/interceptors/Interceptor.js +11 -0
  33. package/lib/commonjs/interceptors/Interceptor.js.map +1 -0
  34. package/lib/commonjs/interceptors/NetworkInterceptor.js +11 -0
  35. package/lib/commonjs/interceptors/NetworkInterceptor.js.map +1 -0
  36. package/lib/commonjs/interceptors/WebSocketInterceptor.js +150 -0
  37. package/lib/commonjs/interceptors/WebSocketInterceptor.js.map +1 -0
  38. package/lib/commonjs/interceptors/XHRInterceptor.js +69 -0
  39. package/lib/commonjs/interceptors/XHRInterceptor.js.map +1 -0
  40. package/lib/commonjs/interceptors/index.js +35 -0
  41. package/lib/commonjs/interceptors/index.js.map +1 -0
  42. package/lib/commonjs/types/common.js +18 -0
  43. package/lib/commonjs/types/common.js.map +1 -0
  44. package/lib/commonjs/types/console.js +2 -0
  45. package/lib/commonjs/types/console.js.map +1 -0
  46. package/lib/commonjs/types/http.js +6 -0
  47. package/lib/commonjs/types/http.js.map +1 -0
  48. package/lib/commonjs/types/index.js +50 -0
  49. package/lib/commonjs/types/index.js.map +1 -0
  50. package/lib/commonjs/types/websocket.js +6 -0
  51. package/lib/commonjs/types/websocket.js.map +1 -0
  52. package/lib/commonjs/ui/Xenon.js +117 -0
  53. package/lib/commonjs/ui/Xenon.js.map +1 -0
  54. package/lib/commonjs/ui/components/bubble/Bubble.js +82 -0
  55. package/lib/commonjs/ui/components/bubble/Bubble.js.map +1 -0
  56. package/lib/commonjs/ui/components/details/DetailsViewer.js +33 -0
  57. package/lib/commonjs/ui/components/details/DetailsViewer.js.map +1 -0
  58. package/lib/commonjs/ui/components/details/LogMessageDetails.js +30 -0
  59. package/lib/commonjs/ui/components/details/LogMessageDetails.js.map +1 -0
  60. package/lib/commonjs/ui/components/details/NetworkRequestDetails.js +130 -0
  61. package/lib/commonjs/ui/components/details/NetworkRequestDetails.js.map +1 -0
  62. package/lib/commonjs/ui/components/headers/DebuggerHeader.js +94 -0
  63. package/lib/commonjs/ui/components/headers/DebuggerHeader.js.map +1 -0
  64. package/lib/commonjs/ui/components/headers/NetworkPanelHeader.js +68 -0
  65. package/lib/commonjs/ui/components/headers/NetworkPanelHeader.js.map +1 -0
  66. package/lib/commonjs/ui/components/headers/NetworkRequestDetailsHeader.js +65 -0
  67. package/lib/commonjs/ui/components/headers/NetworkRequestDetailsHeader.js.map +1 -0
  68. package/lib/commonjs/ui/components/index.js +42 -0
  69. package/lib/commonjs/ui/components/index.js.map +1 -0
  70. package/lib/commonjs/ui/components/items/ConsolePanelItem.js +35 -0
  71. package/lib/commonjs/ui/components/items/ConsolePanelItem.js.map +1 -0
  72. package/lib/commonjs/ui/components/items/DebuggerHeaderItem.js +54 -0
  73. package/lib/commonjs/ui/components/items/DebuggerHeaderItem.js.map +1 -0
  74. package/lib/commonjs/ui/components/items/NetworkPanelItem.js +76 -0
  75. package/lib/commonjs/ui/components/items/NetworkPanelItem.js.map +1 -0
  76. package/lib/commonjs/ui/components/items/NetworkRequestDetailsHeaderItem.js +47 -0
  77. package/lib/commonjs/ui/components/items/NetworkRequestDetailsHeaderItem.js.map +1 -0
  78. package/lib/commonjs/ui/components/items/NetworkRequestDetailsItem.js +41 -0
  79. package/lib/commonjs/ui/components/items/NetworkRequestDetailsItem.js.map +1 -0
  80. package/lib/commonjs/ui/components/panels/ConsolePanel.js +58 -0
  81. package/lib/commonjs/ui/components/panels/ConsolePanel.js.map +1 -0
  82. package/lib/commonjs/ui/components/panels/NetworkPanel.js +66 -0
  83. package/lib/commonjs/ui/components/panels/NetworkPanel.js.map +1 -0
  84. package/lib/commonjs/utils.js +46 -0
  85. package/lib/commonjs/utils.js.map +1 -0
  86. package/lib/module/assets/code.png +0 -0
  87. package/lib/module/assets/delete.png +0 -0
  88. package/lib/module/assets/hide.png +0 -0
  89. package/lib/module/assets/move.png +0 -0
  90. package/lib/module/assets/record.png +0 -0
  91. package/lib/module/constants.js +4 -0
  92. package/lib/module/constants.js.map +1 -0
  93. package/lib/module/contexts/MainContext.js +6 -0
  94. package/lib/module/contexts/MainContext.js.map +1 -0
  95. package/lib/module/contexts/index.js +4 -0
  96. package/lib/module/contexts/index.js.map +1 -0
  97. package/lib/module/global.d.js +2 -0
  98. package/lib/module/global.d.js.map +1 -0
  99. package/lib/module/hooks/index.js +6 -0
  100. package/lib/module/hooks/index.js.map +1 -0
  101. package/lib/module/hooks/useConsoleInterceptor.js +45 -0
  102. package/lib/module/hooks/useConsoleInterceptor.js.map +1 -0
  103. package/lib/module/hooks/useNetworkInterceptor.js +158 -0
  104. package/lib/module/hooks/useNetworkInterceptor.js.map +1 -0
  105. package/lib/module/hooks/useScrollToBottom.js +19 -0
  106. package/lib/module/hooks/useScrollToBottom.js.map +1 -0
  107. package/lib/module/index.js +4 -0
  108. package/lib/module/index.js.map +1 -0
  109. package/lib/module/interceptors/ConsoleInterceptor.js +86 -0
  110. package/lib/module/interceptors/ConsoleInterceptor.js.map +1 -0
  111. package/lib/module/interceptors/FetchInterceptor.js +108 -0
  112. package/lib/module/interceptors/FetchInterceptor.js.map +1 -0
  113. package/lib/module/interceptors/HttpInterceptor.js +52 -0
  114. package/lib/module/interceptors/HttpInterceptor.js.map +1 -0
  115. package/lib/module/interceptors/Interceptor.js +6 -0
  116. package/lib/module/interceptors/Interceptor.js.map +1 -0
  117. package/lib/module/interceptors/NetworkInterceptor.js +5 -0
  118. package/lib/module/interceptors/NetworkInterceptor.js.map +1 -0
  119. package/lib/module/interceptors/WebSocketInterceptor.js +144 -0
  120. package/lib/module/interceptors/WebSocketInterceptor.js.map +1 -0
  121. package/lib/module/interceptors/XHRInterceptor.js +63 -0
  122. package/lib/module/interceptors/XHRInterceptor.js.map +1 -0
  123. package/lib/module/interceptors/index.js +7 -0
  124. package/lib/module/interceptors/index.js.map +1 -0
  125. package/lib/module/types/common.js +14 -0
  126. package/lib/module/types/common.js.map +1 -0
  127. package/lib/module/types/console.js +2 -0
  128. package/lib/module/types/console.js.map +1 -0
  129. package/lib/module/types/http.js +4 -0
  130. package/lib/module/types/http.js.map +1 -0
  131. package/lib/module/types/index.js +7 -0
  132. package/lib/module/types/index.js.map +1 -0
  133. package/lib/module/types/websocket.js +4 -0
  134. package/lib/module/types/websocket.js.map +1 -0
  135. package/lib/module/ui/Xenon.js +112 -0
  136. package/lib/module/ui/Xenon.js.map +1 -0
  137. package/lib/module/ui/components/bubble/Bubble.js +78 -0
  138. package/lib/module/ui/components/bubble/Bubble.js.map +1 -0
  139. package/lib/module/ui/components/details/DetailsViewer.js +28 -0
  140. package/lib/module/ui/components/details/DetailsViewer.js.map +1 -0
  141. package/lib/module/ui/components/details/LogMessageDetails.js +26 -0
  142. package/lib/module/ui/components/details/LogMessageDetails.js.map +1 -0
  143. package/lib/module/ui/components/details/NetworkRequestDetails.js +125 -0
  144. package/lib/module/ui/components/details/NetworkRequestDetails.js.map +1 -0
  145. package/lib/module/ui/components/headers/DebuggerHeader.js +89 -0
  146. package/lib/module/ui/components/headers/DebuggerHeader.js.map +1 -0
  147. package/lib/module/ui/components/headers/NetworkPanelHeader.js +64 -0
  148. package/lib/module/ui/components/headers/NetworkPanelHeader.js.map +1 -0
  149. package/lib/module/ui/components/headers/NetworkRequestDetailsHeader.js +60 -0
  150. package/lib/module/ui/components/headers/NetworkRequestDetailsHeader.js.map +1 -0
  151. package/lib/module/ui/components/index.js +8 -0
  152. package/lib/module/ui/components/index.js.map +1 -0
  153. package/lib/module/ui/components/items/ConsolePanelItem.js +31 -0
  154. package/lib/module/ui/components/items/ConsolePanelItem.js.map +1 -0
  155. package/lib/module/ui/components/items/DebuggerHeaderItem.js +50 -0
  156. package/lib/module/ui/components/items/DebuggerHeaderItem.js.map +1 -0
  157. package/lib/module/ui/components/items/NetworkPanelItem.js +72 -0
  158. package/lib/module/ui/components/items/NetworkPanelItem.js.map +1 -0
  159. package/lib/module/ui/components/items/NetworkRequestDetailsHeaderItem.js +43 -0
  160. package/lib/module/ui/components/items/NetworkRequestDetailsHeaderItem.js.map +1 -0
  161. package/lib/module/ui/components/items/NetworkRequestDetailsItem.js +37 -0
  162. package/lib/module/ui/components/items/NetworkRequestDetailsItem.js.map +1 -0
  163. package/lib/module/ui/components/panels/ConsolePanel.js +53 -0
  164. package/lib/module/ui/components/panels/ConsolePanel.js.map +1 -0
  165. package/lib/module/ui/components/panels/NetworkPanel.js +61 -0
  166. package/lib/module/ui/components/panels/NetworkPanel.js.map +1 -0
  167. package/lib/module/utils.js +35 -0
  168. package/lib/module/utils.js.map +1 -0
  169. package/lib/typescript/commonjs/package.json +1 -0
  170. package/lib/typescript/commonjs/src/constants.d.ts +2 -0
  171. package/lib/typescript/commonjs/src/constants.d.ts.map +1 -0
  172. package/lib/typescript/commonjs/src/contexts/MainContext.d.ts +24 -0
  173. package/lib/typescript/commonjs/src/contexts/MainContext.d.ts.map +1 -0
  174. package/lib/typescript/commonjs/src/contexts/index.d.ts +2 -0
  175. package/lib/typescript/commonjs/src/contexts/index.d.ts.map +1 -0
  176. package/lib/typescript/commonjs/src/hooks/index.d.ts +4 -0
  177. package/lib/typescript/commonjs/src/hooks/index.d.ts.map +1 -0
  178. package/lib/typescript/commonjs/src/hooks/useConsoleInterceptor.d.ts +13 -0
  179. package/lib/typescript/commonjs/src/hooks/useConsoleInterceptor.d.ts.map +1 -0
  180. package/lib/typescript/commonjs/src/hooks/useNetworkInterceptor.d.ts +12 -0
  181. package/lib/typescript/commonjs/src/hooks/useNetworkInterceptor.d.ts.map +1 -0
  182. package/lib/typescript/commonjs/src/hooks/useScrollToBottom.d.ts +3 -0
  183. package/lib/typescript/commonjs/src/hooks/useScrollToBottom.d.ts.map +1 -0
  184. package/lib/typescript/commonjs/src/index.d.ts +2 -0
  185. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  186. package/lib/typescript/commonjs/src/interceptors/ConsoleInterceptor.d.ts +10 -0
  187. package/lib/typescript/commonjs/src/interceptors/ConsoleInterceptor.d.ts.map +1 -0
  188. package/lib/typescript/commonjs/src/interceptors/FetchInterceptor.d.ts +8 -0
  189. package/lib/typescript/commonjs/src/interceptors/FetchInterceptor.d.ts.map +1 -0
  190. package/lib/typescript/commonjs/src/interceptors/HttpInterceptor.d.ts +23 -0
  191. package/lib/typescript/commonjs/src/interceptors/HttpInterceptor.d.ts.map +1 -0
  192. package/lib/typescript/commonjs/src/interceptors/Interceptor.d.ts +6 -0
  193. package/lib/typescript/commonjs/src/interceptors/Interceptor.d.ts.map +1 -0
  194. package/lib/typescript/commonjs/src/interceptors/NetworkInterceptor.d.ts +6 -0
  195. package/lib/typescript/commonjs/src/interceptors/NetworkInterceptor.d.ts.map +1 -0
  196. package/lib/typescript/commonjs/src/interceptors/WebSocketInterceptor.d.ts +34 -0
  197. package/lib/typescript/commonjs/src/interceptors/WebSocketInterceptor.d.ts.map +1 -0
  198. package/lib/typescript/commonjs/src/interceptors/XHRInterceptor.d.ts +8 -0
  199. package/lib/typescript/commonjs/src/interceptors/XHRInterceptor.d.ts.map +1 -0
  200. package/lib/typescript/commonjs/src/interceptors/index.d.ts +5 -0
  201. package/lib/typescript/commonjs/src/interceptors/index.d.ts.map +1 -0
  202. package/lib/typescript/commonjs/src/types/common.d.ts +19 -0
  203. package/lib/typescript/commonjs/src/types/common.d.ts.map +1 -0
  204. package/lib/typescript/commonjs/src/types/console.d.ts +5 -0
  205. package/lib/typescript/commonjs/src/types/console.d.ts.map +1 -0
  206. package/lib/typescript/commonjs/src/types/http.d.ts +21 -0
  207. package/lib/typescript/commonjs/src/types/http.d.ts.map +1 -0
  208. package/lib/typescript/commonjs/src/types/index.d.ts +5 -0
  209. package/lib/typescript/commonjs/src/types/index.d.ts.map +1 -0
  210. package/lib/typescript/commonjs/src/types/websocket.d.ts +29 -0
  211. package/lib/typescript/commonjs/src/types/websocket.d.ts.map +1 -0
  212. package/lib/typescript/commonjs/src/ui/Xenon.d.ts +16 -0
  213. package/lib/typescript/commonjs/src/ui/Xenon.d.ts.map +1 -0
  214. package/lib/typescript/commonjs/src/ui/components/bubble/Bubble.d.ts +9 -0
  215. package/lib/typescript/commonjs/src/ui/components/bubble/Bubble.d.ts.map +1 -0
  216. package/lib/typescript/commonjs/src/ui/components/details/DetailsViewer.d.ts +2 -0
  217. package/lib/typescript/commonjs/src/ui/components/details/DetailsViewer.d.ts.map +1 -0
  218. package/lib/typescript/commonjs/src/ui/components/details/LogMessageDetails.d.ts +7 -0
  219. package/lib/typescript/commonjs/src/ui/components/details/LogMessageDetails.d.ts.map +1 -0
  220. package/lib/typescript/commonjs/src/ui/components/details/NetworkRequestDetails.d.ts +7 -0
  221. package/lib/typescript/commonjs/src/ui/components/details/NetworkRequestDetails.d.ts.map +1 -0
  222. package/lib/typescript/commonjs/src/ui/components/headers/DebuggerHeader.d.ts +2 -0
  223. package/lib/typescript/commonjs/src/ui/components/headers/DebuggerHeader.d.ts.map +1 -0
  224. package/lib/typescript/commonjs/src/ui/components/headers/NetworkPanelHeader.d.ts +2 -0
  225. package/lib/typescript/commonjs/src/ui/components/headers/NetworkPanelHeader.d.ts.map +1 -0
  226. package/lib/typescript/commonjs/src/ui/components/headers/NetworkRequestDetailsHeader.d.ts +13 -0
  227. package/lib/typescript/commonjs/src/ui/components/headers/NetworkRequestDetailsHeader.d.ts.map +1 -0
  228. package/lib/typescript/commonjs/src/ui/components/index.d.ts +6 -0
  229. package/lib/typescript/commonjs/src/ui/components/index.d.ts.map +1 -0
  230. package/lib/typescript/commonjs/src/ui/components/items/ConsolePanelItem.d.ts +7 -0
  231. package/lib/typescript/commonjs/src/ui/components/items/ConsolePanelItem.d.ts.map +1 -0
  232. package/lib/typescript/commonjs/src/ui/components/items/DebuggerHeaderItem.d.ts +10 -0
  233. package/lib/typescript/commonjs/src/ui/components/items/DebuggerHeaderItem.d.ts.map +1 -0
  234. package/lib/typescript/commonjs/src/ui/components/items/NetworkPanelItem.d.ts +10 -0
  235. package/lib/typescript/commonjs/src/ui/components/items/NetworkPanelItem.d.ts.map +1 -0
  236. package/lib/typescript/commonjs/src/ui/components/items/NetworkRequestDetailsHeaderItem.d.ts +11 -0
  237. package/lib/typescript/commonjs/src/ui/components/items/NetworkRequestDetailsHeaderItem.d.ts.map +1 -0
  238. package/lib/typescript/commonjs/src/ui/components/items/NetworkRequestDetailsItem.d.ts +8 -0
  239. package/lib/typescript/commonjs/src/ui/components/items/NetworkRequestDetailsItem.d.ts.map +1 -0
  240. package/lib/typescript/commonjs/src/ui/components/panels/ConsolePanel.d.ts +2 -0
  241. package/lib/typescript/commonjs/src/ui/components/panels/ConsolePanel.d.ts.map +1 -0
  242. package/lib/typescript/commonjs/src/ui/components/panels/NetworkPanel.d.ts +2 -0
  243. package/lib/typescript/commonjs/src/ui/components/panels/NetworkPanel.d.ts.map +1 -0
  244. package/lib/typescript/commonjs/src/utils.d.ts +9 -0
  245. package/lib/typescript/commonjs/src/utils.d.ts.map +1 -0
  246. package/lib/typescript/module/package.json +1 -0
  247. package/lib/typescript/module/src/constants.d.ts +2 -0
  248. package/lib/typescript/module/src/constants.d.ts.map +1 -0
  249. package/lib/typescript/module/src/contexts/MainContext.d.ts +24 -0
  250. package/lib/typescript/module/src/contexts/MainContext.d.ts.map +1 -0
  251. package/lib/typescript/module/src/contexts/index.d.ts +2 -0
  252. package/lib/typescript/module/src/contexts/index.d.ts.map +1 -0
  253. package/lib/typescript/module/src/hooks/index.d.ts +4 -0
  254. package/lib/typescript/module/src/hooks/index.d.ts.map +1 -0
  255. package/lib/typescript/module/src/hooks/useConsoleInterceptor.d.ts +13 -0
  256. package/lib/typescript/module/src/hooks/useConsoleInterceptor.d.ts.map +1 -0
  257. package/lib/typescript/module/src/hooks/useNetworkInterceptor.d.ts +12 -0
  258. package/lib/typescript/module/src/hooks/useNetworkInterceptor.d.ts.map +1 -0
  259. package/lib/typescript/module/src/hooks/useScrollToBottom.d.ts +3 -0
  260. package/lib/typescript/module/src/hooks/useScrollToBottom.d.ts.map +1 -0
  261. package/lib/typescript/module/src/index.d.ts +2 -0
  262. package/lib/typescript/module/src/index.d.ts.map +1 -0
  263. package/lib/typescript/module/src/interceptors/ConsoleInterceptor.d.ts +10 -0
  264. package/lib/typescript/module/src/interceptors/ConsoleInterceptor.d.ts.map +1 -0
  265. package/lib/typescript/module/src/interceptors/FetchInterceptor.d.ts +8 -0
  266. package/lib/typescript/module/src/interceptors/FetchInterceptor.d.ts.map +1 -0
  267. package/lib/typescript/module/src/interceptors/HttpInterceptor.d.ts +23 -0
  268. package/lib/typescript/module/src/interceptors/HttpInterceptor.d.ts.map +1 -0
  269. package/lib/typescript/module/src/interceptors/Interceptor.d.ts +6 -0
  270. package/lib/typescript/module/src/interceptors/Interceptor.d.ts.map +1 -0
  271. package/lib/typescript/module/src/interceptors/NetworkInterceptor.d.ts +6 -0
  272. package/lib/typescript/module/src/interceptors/NetworkInterceptor.d.ts.map +1 -0
  273. package/lib/typescript/module/src/interceptors/WebSocketInterceptor.d.ts +34 -0
  274. package/lib/typescript/module/src/interceptors/WebSocketInterceptor.d.ts.map +1 -0
  275. package/lib/typescript/module/src/interceptors/XHRInterceptor.d.ts +8 -0
  276. package/lib/typescript/module/src/interceptors/XHRInterceptor.d.ts.map +1 -0
  277. package/lib/typescript/module/src/interceptors/index.d.ts +5 -0
  278. package/lib/typescript/module/src/interceptors/index.d.ts.map +1 -0
  279. package/lib/typescript/module/src/types/common.d.ts +19 -0
  280. package/lib/typescript/module/src/types/common.d.ts.map +1 -0
  281. package/lib/typescript/module/src/types/console.d.ts +5 -0
  282. package/lib/typescript/module/src/types/console.d.ts.map +1 -0
  283. package/lib/typescript/module/src/types/http.d.ts +21 -0
  284. package/lib/typescript/module/src/types/http.d.ts.map +1 -0
  285. package/lib/typescript/module/src/types/index.d.ts +5 -0
  286. package/lib/typescript/module/src/types/index.d.ts.map +1 -0
  287. package/lib/typescript/module/src/types/websocket.d.ts +29 -0
  288. package/lib/typescript/module/src/types/websocket.d.ts.map +1 -0
  289. package/lib/typescript/module/src/ui/Xenon.d.ts +16 -0
  290. package/lib/typescript/module/src/ui/Xenon.d.ts.map +1 -0
  291. package/lib/typescript/module/src/ui/components/bubble/Bubble.d.ts +9 -0
  292. package/lib/typescript/module/src/ui/components/bubble/Bubble.d.ts.map +1 -0
  293. package/lib/typescript/module/src/ui/components/details/DetailsViewer.d.ts +2 -0
  294. package/lib/typescript/module/src/ui/components/details/DetailsViewer.d.ts.map +1 -0
  295. package/lib/typescript/module/src/ui/components/details/LogMessageDetails.d.ts +7 -0
  296. package/lib/typescript/module/src/ui/components/details/LogMessageDetails.d.ts.map +1 -0
  297. package/lib/typescript/module/src/ui/components/details/NetworkRequestDetails.d.ts +7 -0
  298. package/lib/typescript/module/src/ui/components/details/NetworkRequestDetails.d.ts.map +1 -0
  299. package/lib/typescript/module/src/ui/components/headers/DebuggerHeader.d.ts +2 -0
  300. package/lib/typescript/module/src/ui/components/headers/DebuggerHeader.d.ts.map +1 -0
  301. package/lib/typescript/module/src/ui/components/headers/NetworkPanelHeader.d.ts +2 -0
  302. package/lib/typescript/module/src/ui/components/headers/NetworkPanelHeader.d.ts.map +1 -0
  303. package/lib/typescript/module/src/ui/components/headers/NetworkRequestDetailsHeader.d.ts +13 -0
  304. package/lib/typescript/module/src/ui/components/headers/NetworkRequestDetailsHeader.d.ts.map +1 -0
  305. package/lib/typescript/module/src/ui/components/index.d.ts +6 -0
  306. package/lib/typescript/module/src/ui/components/index.d.ts.map +1 -0
  307. package/lib/typescript/module/src/ui/components/items/ConsolePanelItem.d.ts +7 -0
  308. package/lib/typescript/module/src/ui/components/items/ConsolePanelItem.d.ts.map +1 -0
  309. package/lib/typescript/module/src/ui/components/items/DebuggerHeaderItem.d.ts +10 -0
  310. package/lib/typescript/module/src/ui/components/items/DebuggerHeaderItem.d.ts.map +1 -0
  311. package/lib/typescript/module/src/ui/components/items/NetworkPanelItem.d.ts +10 -0
  312. package/lib/typescript/module/src/ui/components/items/NetworkPanelItem.d.ts.map +1 -0
  313. package/lib/typescript/module/src/ui/components/items/NetworkRequestDetailsHeaderItem.d.ts +11 -0
  314. package/lib/typescript/module/src/ui/components/items/NetworkRequestDetailsHeaderItem.d.ts.map +1 -0
  315. package/lib/typescript/module/src/ui/components/items/NetworkRequestDetailsItem.d.ts +8 -0
  316. package/lib/typescript/module/src/ui/components/items/NetworkRequestDetailsItem.d.ts.map +1 -0
  317. package/lib/typescript/module/src/ui/components/panels/ConsolePanel.d.ts +2 -0
  318. package/lib/typescript/module/src/ui/components/panels/ConsolePanel.d.ts.map +1 -0
  319. package/lib/typescript/module/src/ui/components/panels/NetworkPanel.d.ts +2 -0
  320. package/lib/typescript/module/src/ui/components/panels/NetworkPanel.d.ts.map +1 -0
  321. package/lib/typescript/module/src/utils.d.ts +9 -0
  322. package/lib/typescript/module/src/utils.d.ts.map +1 -0
  323. package/package.json +219 -0
  324. package/src/assets/code.png +0 -0
  325. package/src/assets/delete.png +0 -0
  326. package/src/assets/hide.png +0 -0
  327. package/src/assets/move.png +0 -0
  328. package/src/assets/record.png +0 -0
  329. package/src/constants.ts +1 -0
  330. package/src/contexts/MainContext.ts +34 -0
  331. package/src/contexts/index.ts +1 -0
  332. package/src/global.d.ts +29 -0
  333. package/src/hooks/index.ts +3 -0
  334. package/src/hooks/useConsoleInterceptor.ts +58 -0
  335. package/src/hooks/useNetworkInterceptor.ts +263 -0
  336. package/src/hooks/useScrollToBottom.ts +23 -0
  337. package/src/index.ts +1 -0
  338. package/src/interceptors/ConsoleInterceptor.ts +115 -0
  339. package/src/interceptors/FetchInterceptor.ts +134 -0
  340. package/src/interceptors/HttpInterceptor.ts +65 -0
  341. package/src/interceptors/Interceptor.ts +6 -0
  342. package/src/interceptors/NetworkInterceptor.ts +6 -0
  343. package/src/interceptors/WebSocketInterceptor.ts +189 -0
  344. package/src/interceptors/XHRInterceptor.ts +97 -0
  345. package/src/interceptors/index.ts +4 -0
  346. package/src/types/common.ts +26 -0
  347. package/src/types/console.ts +4 -0
  348. package/src/types/http.ts +44 -0
  349. package/src/types/index.ts +4 -0
  350. package/src/types/websocket.ts +46 -0
  351. package/src/ui/Xenon.tsx +149 -0
  352. package/src/ui/components/bubble/Bubble.tsx +93 -0
  353. package/src/ui/components/details/DetailsViewer.tsx +20 -0
  354. package/src/ui/components/details/LogMessageDetails.tsx +26 -0
  355. package/src/ui/components/details/NetworkRequestDetails.tsx +140 -0
  356. package/src/ui/components/headers/DebuggerHeader.tsx +112 -0
  357. package/src/ui/components/headers/NetworkPanelHeader.tsx +58 -0
  358. package/src/ui/components/headers/NetworkRequestDetailsHeader.tsx +91 -0
  359. package/src/ui/components/index.ts +5 -0
  360. package/src/ui/components/items/ConsolePanelItem.tsx +28 -0
  361. package/src/ui/components/items/DebuggerHeaderItem.tsx +65 -0
  362. package/src/ui/components/items/NetworkPanelItem.tsx +71 -0
  363. package/src/ui/components/items/NetworkRequestDetailsHeaderItem.tsx +52 -0
  364. package/src/ui/components/items/NetworkRequestDetailsItem.tsx +43 -0
  365. package/src/ui/components/panels/ConsolePanel.tsx +55 -0
  366. package/src/ui/components/panels/NetworkPanel.tsx +64 -0
  367. package/src/utils.ts +54 -0
@@ -0,0 +1,263 @@
1
+ import { enableMapSet } from 'immer';
2
+ import { useCallback, useEffect, useState } from 'react';
3
+ import { useImmer } from 'use-immer';
4
+ import { NETWORK_REQUEST_HEADER } from '../constants';
5
+ import {
6
+ NetworkType,
7
+ type HttpHeaderReceivedCallback,
8
+ type HttpOpenCallback,
9
+ type HttpRequest,
10
+ type HttpRequestHeaderCallback,
11
+ type HttpResponseCallback,
12
+ type HttpSendCallback,
13
+ type ID,
14
+ type WebSocketCloseCallback,
15
+ type WebSocketConnectCallback,
16
+ type WebSocketOnCloseCallback,
17
+ type WebSocketOnErrorCallback,
18
+ type WebSocketOnMessageCallback,
19
+ type WebSocketOnOpenCallback,
20
+ type WebSocketRequest,
21
+ type WebSocketSendCallback,
22
+ } from '../types';
23
+ import { keyValueToString } from '../utils';
24
+ import { XHRInterceptor, FetchInterceptor, WebSocketInterceptor } from '../interceptors';
25
+
26
+ interface NetworkInterceptorParams {
27
+ autoEnabled?: boolean;
28
+ }
29
+
30
+ type NetworkRequests<T> = Map<NonNullable<ID>, T>;
31
+
32
+ enableMapSet();
33
+
34
+ const initRequests = new Map<NonNullable<ID>, HttpRequest & WebSocketRequest>();
35
+
36
+ export default function useNetworkInterceptor(params?: NetworkInterceptorParams) {
37
+ const { autoEnabled = false } = params || {};
38
+ const [isInterceptorEnabled, setIsInterceptorEnabled] = useState(autoEnabled);
39
+
40
+ const [networkRequests, setNetworkRequests] = useImmer(initRequests);
41
+
42
+ const _isInterceptorEnabled = () =>
43
+ XHRInterceptor.instance.isInterceptorEnabled &&
44
+ FetchInterceptor.instance.isInterceptorEnabled &&
45
+ WebSocketInterceptor.instance.isInterceptorEnabled;
46
+
47
+ const clearAllNetworkRequests = () => {
48
+ setNetworkRequests(initRequests);
49
+ };
50
+
51
+ const enableHttpInterceptions = useCallback(() => {
52
+ const openCallback: HttpOpenCallback = (id, type, method, url) => {
53
+ if (!id) return;
54
+
55
+ setNetworkRequests((draft: NetworkRequests<HttpRequest>) => {
56
+ draft.set(id, { type, method, url });
57
+ });
58
+ };
59
+
60
+ const requestHeaderCallback: HttpRequestHeaderCallback = (id, header, value) => {
61
+ if (!id) return;
62
+
63
+ setNetworkRequests((draft: NetworkRequests<HttpRequest>) => {
64
+ if (!draft.get(id)) return draft;
65
+
66
+ const currentHeaderLine = keyValueToString(header, value);
67
+
68
+ const fetchRequestHeaderLineRegex = RegExp(
69
+ keyValueToString(NETWORK_REQUEST_HEADER, NetworkType.Fetch),
70
+ 'gi',
71
+ );
72
+
73
+ const isFetchInXHR =
74
+ draft.get(id)!.type === NetworkType.XHR &&
75
+ !!currentHeaderLine.match(fetchRequestHeaderLineRegex);
76
+
77
+ if (isFetchInXHR) {
78
+ draft.delete(id);
79
+ } else {
80
+ draft.get(id)!.requestHeadersString ??= '';
81
+ draft.get(id)!.requestHeadersString += currentHeaderLine;
82
+ draft.get(id)!.requestHeaders ??= {};
83
+ draft.get(id)!.requestHeaders![header] = value;
84
+ }
85
+ });
86
+ };
87
+
88
+ const sendCallback: HttpSendCallback = (id, data) => {
89
+ if (!id) return;
90
+
91
+ setNetworkRequests((draft: NetworkRequests<HttpRequest>) => {
92
+ if (!draft.get(id)) return draft;
93
+
94
+ draft.get(id)!.body = data;
95
+ });
96
+ };
97
+
98
+ const headerReceivedCallback: HttpHeaderReceivedCallback = (
99
+ id,
100
+ responseContentType,
101
+ responseSize,
102
+ responseHeaders,
103
+ ) => {
104
+ if (!id) return;
105
+
106
+ setNetworkRequests((draft: NetworkRequests<HttpRequest>) => {
107
+ if (!draft.get(id)) return draft;
108
+
109
+ draft.get(id)!.responseContentType = responseContentType;
110
+ draft.get(id)!.responseSize = responseSize;
111
+ draft.get(id)!.responseHeaders = responseHeaders;
112
+ });
113
+ };
114
+
115
+ const responseCallback: HttpResponseCallback = (
116
+ id,
117
+ status,
118
+ timeout,
119
+ response,
120
+ responseURL,
121
+ responseType,
122
+ ) => {
123
+ if (!id) return;
124
+
125
+ setNetworkRequests((draft: NetworkRequests<HttpRequest>) => {
126
+ if (!draft.get(id)) return draft;
127
+
128
+ draft.get(id)!.status = status;
129
+ draft.get(id)!.timeout = timeout;
130
+ draft.get(id)!.response = response;
131
+ if (responseURL) draft.get(id)!.url = responseURL;
132
+ draft.get(id)!.responseType = responseType;
133
+ });
134
+ };
135
+
136
+ XHRInterceptor.instance
137
+ .setOpenCallback(openCallback)
138
+ .setRequestHeaderCallback(requestHeaderCallback)
139
+ .setSendCallback(sendCallback)
140
+ .setHeaderReceivedCallback(headerReceivedCallback)
141
+ .setResponseCallback(responseCallback)
142
+ .enableInterception();
143
+
144
+ FetchInterceptor.instance
145
+ .setOpenCallback(openCallback)
146
+ .setRequestHeaderCallback(requestHeaderCallback)
147
+ .setSendCallback(sendCallback)
148
+ .setHeaderReceivedCallback(headerReceivedCallback)
149
+ .setResponseCallback(responseCallback)
150
+ .enableInterception();
151
+ }, [setNetworkRequests]);
152
+
153
+ const enableWebSocketInterception = useCallback(() => {
154
+ const connectCallback: WebSocketConnectCallback = (uri, protocols, options, socketId) => {
155
+ if (typeof socketId !== 'number') return;
156
+
157
+ setNetworkRequests((draft: NetworkRequests<WebSocketRequest>) => {
158
+ draft.set(`${socketId}`, {
159
+ uri,
160
+ type: NetworkType.WS,
161
+ protocols,
162
+ options,
163
+ });
164
+ });
165
+ };
166
+
167
+ const sendCallback: WebSocketSendCallback = (data, socketId) => {
168
+ if (typeof socketId !== 'number') return;
169
+
170
+ setNetworkRequests((draft: NetworkRequests<WebSocketRequest>) => {
171
+ if (!draft.get(`${socketId}`)) return draft;
172
+
173
+ draft.get(`${socketId}`)!.messages ??= '';
174
+ draft.get(`${socketId}`)!.messages += keyValueToString('SENT', data);
175
+ });
176
+ };
177
+
178
+ const closeCallback: WebSocketCloseCallback = (code, reason, socketId) => {
179
+ if (typeof socketId !== 'number') return;
180
+
181
+ setNetworkRequests((draft: NetworkRequests<WebSocketRequest>) => {
182
+ if (!draft.get(`${socketId}`)) return draft;
183
+
184
+ draft.get(`${socketId}`)!.status = code;
185
+ draft.get(`${socketId}`)!.closeReason = reason;
186
+ });
187
+ };
188
+
189
+ const onOpenCallback: WebSocketOnOpenCallback = () => {};
190
+
191
+ const onMessageCallback: WebSocketOnMessageCallback = (socketId, message) => {
192
+ if (typeof socketId !== 'number') return;
193
+
194
+ setNetworkRequests((draft: NetworkRequests<WebSocketRequest>) => {
195
+ if (!draft.get(`${socketId}`)) return draft;
196
+
197
+ draft.get(`${socketId}`)!.messages ??= '';
198
+ draft.get(`${socketId}`)!.messages += keyValueToString('RECEIVED', message);
199
+ });
200
+ };
201
+
202
+ const onErrorCallback: WebSocketOnErrorCallback = (socketId, data) => {
203
+ if (typeof socketId !== 'number') return;
204
+
205
+ setNetworkRequests((draft: NetworkRequests<WebSocketRequest>) => {
206
+ if (!draft.get(`${socketId}`)) return draft;
207
+
208
+ draft.get(`${socketId}`)!.serverError = data;
209
+ });
210
+ };
211
+
212
+ const onCloseCallback: WebSocketOnCloseCallback = (socketId, data) => {
213
+ if (typeof socketId !== 'number') return;
214
+
215
+ setNetworkRequests((draft: NetworkRequests<WebSocketRequest>) => {
216
+ if (!draft.get(`${socketId}`)) return draft;
217
+
218
+ draft.get(`${socketId}`)!.serverClose = data;
219
+ });
220
+ };
221
+
222
+ WebSocketInterceptor.instance
223
+ .setConnectCallback(connectCallback)
224
+ .setSendCallback(sendCallback)
225
+ .setCloseCallback(closeCallback)
226
+ .setOnOpenCallback(onOpenCallback)
227
+ .setOnMessageCallback(onMessageCallback)
228
+ .setOnErrorCallback(onErrorCallback)
229
+ .setOnCloseCallback(onCloseCallback)
230
+ .enableInterception();
231
+ }, [setNetworkRequests]);
232
+
233
+ const enableInterception = useCallback(() => {
234
+ if (_isInterceptorEnabled()) return;
235
+
236
+ enableHttpInterceptions();
237
+ enableWebSocketInterception();
238
+ setIsInterceptorEnabled(true);
239
+ }, [enableHttpInterceptions, enableWebSocketInterception]);
240
+
241
+ const disableInterception = useCallback(() => {
242
+ if (!_isInterceptorEnabled()) return;
243
+
244
+ XHRInterceptor.instance.disableInterception();
245
+ FetchInterceptor.instance.disableInterception();
246
+ WebSocketInterceptor.instance.disableInterception();
247
+ setIsInterceptorEnabled(false);
248
+ }, []);
249
+
250
+ useEffect(() => {
251
+ if (autoEnabled) enableInterception();
252
+
253
+ if (autoEnabled) return disableInterception;
254
+ }, [autoEnabled, disableInterception, enableInterception]);
255
+
256
+ return {
257
+ isInterceptorEnabled,
258
+ enableInterception,
259
+ disableInterception,
260
+ clearAllNetworkRequests,
261
+ networkRequests,
262
+ };
263
+ }
@@ -0,0 +1,23 @@
1
+ import { useEffect, useRef } from 'react';
2
+ import type { FlatList } from 'react-native';
3
+
4
+ export default function useScrollToBottom(listSize: number) {
5
+ const currentSize = useRef(listSize);
6
+ const listRef = useRef<FlatList | null>(null);
7
+
8
+ useEffect(() => {
9
+ if (listSize <= currentSize.current) return;
10
+
11
+ currentSize.current = listSize;
12
+
13
+ const timer = setTimeout(() => {
14
+ if (listSize) listRef.current?.scrollToEnd();
15
+ }, 0);
16
+
17
+ return () => {
18
+ clearTimeout(timer);
19
+ };
20
+ }, [listSize]);
21
+
22
+ return listRef;
23
+ }
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export { default } from './ui/Xenon';
@@ -0,0 +1,115 @@
1
+ /* eslint-disable no-console */
2
+ import Interceptor from './Interceptor';
3
+
4
+ const originalConsoleError = console.error;
5
+ const originalConsoleInfo = console.info;
6
+ const originalConsoleLog = console.log;
7
+ const originalConsoleWarn = console.warn;
8
+ const originalConsoleTrace = console.trace;
9
+ const originalConsoleDebug = console.debug;
10
+ const originalConsoleTable = console.table;
11
+ const originalConsoleGroupCollapsed = console.groupCollapsed;
12
+ const originalConsoleGroupEnd = console.groupEnd;
13
+ const originalConsoleGroup = console.group;
14
+
15
+ export default class ConsoleInterceptor extends Interceptor {
16
+ static instance = new ConsoleInterceptor();
17
+
18
+ private constructor() {
19
+ super();
20
+ }
21
+
22
+ private callback: ((type: string, args: any[]) => void) | null = null;
23
+
24
+ setCallback(callback: typeof this.callback) {
25
+ this.callback = callback;
26
+ return this;
27
+ }
28
+
29
+ enableInterception(): void {
30
+ if (this.isInterceptorEnabled) return;
31
+
32
+ const callback = this.callback?.bind(this);
33
+
34
+ console.error = function (...args) {
35
+ callback?.('error', args);
36
+
37
+ originalConsoleError.call(this, ...args);
38
+ };
39
+
40
+ console.info = function (...args) {
41
+ callback?.('info', args);
42
+
43
+ originalConsoleInfo.call(this, ...args);
44
+ };
45
+
46
+ console.log = function (...args) {
47
+ callback?.('log', args);
48
+
49
+ originalConsoleLog.call(this, ...args);
50
+ };
51
+
52
+ console.warn = function (...args) {
53
+ callback?.('warn', args);
54
+
55
+ originalConsoleWarn.call(this, ...args);
56
+ };
57
+
58
+ console.trace = function (...args) {
59
+ callback?.('trace', args);
60
+
61
+ originalConsoleTrace.call(this, ...args);
62
+ };
63
+
64
+ console.debug = function (...args) {
65
+ callback?.('debug', args);
66
+
67
+ originalConsoleDebug.call(this, ...args);
68
+ };
69
+
70
+ console.table = function (...args) {
71
+ callback?.('table', args);
72
+
73
+ originalConsoleTable.call(this, ...(args as Parameters<typeof originalConsoleTable>));
74
+ };
75
+
76
+ console.groupCollapsed = function (...args) {
77
+ callback?.('groupCollapsed', args);
78
+
79
+ originalConsoleGroupCollapsed.call(this, ...args);
80
+ };
81
+
82
+ console.groupEnd = function (...args) {
83
+ callback?.('groupEnd', args);
84
+
85
+ originalConsoleGroupEnd.call(this, ...args);
86
+ };
87
+
88
+ console.group = function (...args) {
89
+ callback?.('group', args);
90
+
91
+ originalConsoleGroup.call(this, ...args);
92
+ };
93
+
94
+ this.isInterceptorEnabled = true;
95
+ }
96
+
97
+ disableInterception(): void {
98
+ if (!this.isInterceptorEnabled) return;
99
+
100
+ this.isInterceptorEnabled = false;
101
+
102
+ console.error = originalConsoleError;
103
+ console.info = originalConsoleInfo;
104
+ console.log = originalConsoleLog;
105
+ console.warn = originalConsoleWarn;
106
+ console.trace = originalConsoleTrace;
107
+ console.debug = originalConsoleDebug;
108
+ console.table = originalConsoleTable;
109
+ console.groupCollapsed = originalConsoleGroupCollapsed;
110
+ console.groupEnd = originalConsoleGroupEnd;
111
+ console.group = originalConsoleGroup;
112
+
113
+ this.callback = null;
114
+ }
115
+ }
@@ -0,0 +1,134 @@
1
+ import { NETWORK_REQUEST_HEADER } from '../constants';
2
+ import { NetworkType } from '../types';
3
+ import { keyValueToString, formatMethod, getHttpInterceptorId } from '../utils';
4
+ import HttpInterceptor from './HttpInterceptor';
5
+
6
+ const originalFetch = global.fetch;
7
+
8
+ export default class FetchInterceptor extends HttpInterceptor {
9
+ static instance = new FetchInterceptor();
10
+
11
+ private constructor() {
12
+ super();
13
+ }
14
+
15
+ enableInterception() {
16
+ if (this.isInterceptorEnabled) return;
17
+
18
+ const {
19
+ openCallback,
20
+ requestHeaderCallback,
21
+ sendCallback,
22
+ headerReceivedCallback,
23
+ responseCallback,
24
+ } = this.getCallbacks();
25
+
26
+ global.fetch = async function (input, init) {
27
+ const interceptionId = getHttpInterceptorId();
28
+
29
+ const requestHeaders = new Headers(init?.headers);
30
+
31
+ requestHeaders.append(NETWORK_REQUEST_HEADER, NetworkType.Fetch);
32
+
33
+ const requestInit: RequestInit = { ...init, headers: requestHeaders };
34
+
35
+ //#region open
36
+ const method = formatMethod(init?.method);
37
+
38
+ let url: string;
39
+
40
+ switch (true) {
41
+ case input instanceof Request:
42
+ url = input.url;
43
+ break;
44
+ case input instanceof URL:
45
+ url = input.href;
46
+ break;
47
+ default:
48
+ url = input;
49
+ }
50
+
51
+ openCallback?.(interceptionId, NetworkType.Fetch, method, url);
52
+ //#endregion
53
+
54
+ //#region requestHeader
55
+ const headers = requestInit?.headers;
56
+ if (headers) {
57
+ switch (true) {
58
+ case headers instanceof Headers:
59
+ for (const [headerKey, headerValue] of headers.entries()) {
60
+ requestHeaderCallback?.(interceptionId, headerKey, headerValue);
61
+ }
62
+ break;
63
+ case Array.isArray(headers):
64
+ for (const [headerKey, headerValue] of headers) {
65
+ if (headerKey && headerValue)
66
+ requestHeaderCallback?.(interceptionId, headerKey, headerValue);
67
+ }
68
+ break;
69
+ default:
70
+ for (const key in headers) {
71
+ if (headers[key]) requestHeaderCallback?.(interceptionId, key, headers[key]);
72
+ }
73
+ break;
74
+ }
75
+ }
76
+ //#endregion
77
+
78
+ //#region send
79
+ sendCallback?.(interceptionId, init?.body ?? null);
80
+ //#endregion
81
+
82
+ const response = await originalFetch.call(this, input, requestInit);
83
+
84
+ const clonedResponse = response.clone();
85
+ const clonedResponseHeaders = clonedResponse.headers;
86
+
87
+ //#region headerReceived
88
+ const contentTypeString = clonedResponseHeaders.get('Content-Type');
89
+ const contentLengthString = clonedResponseHeaders.get('Content-Length');
90
+
91
+ let responseContentType: string | undefined;
92
+ let responseSize: number | undefined;
93
+ let responseHeaders: string = '';
94
+
95
+ if (contentTypeString) responseContentType = contentTypeString.split(';')[0];
96
+
97
+ if (contentLengthString) responseSize = parseInt(contentLengthString, 10);
98
+
99
+ for (const [headerKey, headerValue] of clonedResponseHeaders.entries()) {
100
+ responseHeaders += keyValueToString(headerKey, headerValue);
101
+ }
102
+
103
+ headerReceivedCallback?.(interceptionId, responseContentType, responseSize, responseHeaders);
104
+ //#endregion
105
+
106
+ //#region response
107
+ const responseBody: string | null = await clonedResponse.text().catch(() => null);
108
+
109
+ responseCallback?.(
110
+ interceptionId,
111
+ clonedResponse.status,
112
+ 0,
113
+ responseBody,
114
+ clonedResponse.url,
115
+ clonedResponse.type,
116
+ );
117
+ //#endregion
118
+
119
+ return response;
120
+ };
121
+
122
+ this.isInterceptorEnabled = true;
123
+ }
124
+
125
+ disableInterception() {
126
+ if (!this.isInterceptorEnabled) return;
127
+
128
+ this.isInterceptorEnabled = false;
129
+
130
+ global.fetch = originalFetch;
131
+
132
+ this.clearCallbacks();
133
+ }
134
+ }
@@ -0,0 +1,65 @@
1
+ import type {
2
+ HttpHeaderReceivedCallback,
3
+ HttpOpenCallback,
4
+ HttpRequestHeaderCallback,
5
+ HttpResponseCallback,
6
+ HttpSendCallback,
7
+ } from '../types';
8
+ import { NetworkInterceptor } from './NetworkInterceptor';
9
+
10
+ export default abstract class HttpInterceptor extends NetworkInterceptor {
11
+ protected openCallback: HttpOpenCallback = null;
12
+ protected requestHeaderCallback: HttpRequestHeaderCallback = null;
13
+ protected sendCallback: HttpSendCallback = null;
14
+ protected headerReceivedCallback: HttpHeaderReceivedCallback = null;
15
+ protected responseCallback: HttpResponseCallback = null;
16
+
17
+ setOpenCallback(callback: typeof this.openCallback) {
18
+ this.openCallback = callback;
19
+ return this;
20
+ }
21
+
22
+ setRequestHeaderCallback(callback: typeof this.requestHeaderCallback) {
23
+ this.requestHeaderCallback = callback;
24
+ return this;
25
+ }
26
+
27
+ setSendCallback(callback: typeof this.sendCallback) {
28
+ this.sendCallback = callback;
29
+ return this;
30
+ }
31
+
32
+ setHeaderReceivedCallback(callback: typeof this.headerReceivedCallback) {
33
+ this.headerReceivedCallback = callback;
34
+ return this;
35
+ }
36
+
37
+ setResponseCallback(callback: typeof this.responseCallback) {
38
+ this.responseCallback = callback;
39
+ return this;
40
+ }
41
+
42
+ protected getCallbacks() {
43
+ const openCallback = this.openCallback?.bind(this);
44
+ const requestHeaderCallback = this.requestHeaderCallback?.bind(this);
45
+ const sendCallback = this.sendCallback?.bind(this);
46
+ const headerReceivedCallback = this.headerReceivedCallback?.bind(this);
47
+ const responseCallback = this.responseCallback?.bind(this);
48
+
49
+ return {
50
+ openCallback,
51
+ requestHeaderCallback,
52
+ sendCallback,
53
+ headerReceivedCallback,
54
+ responseCallback,
55
+ };
56
+ }
57
+
58
+ protected clearCallbacks(): void {
59
+ this.openCallback = null;
60
+ this.requestHeaderCallback = null;
61
+ this.sendCallback = null;
62
+ this.headerReceivedCallback = null;
63
+ this.responseCallback = null;
64
+ }
65
+ }
@@ -0,0 +1,6 @@
1
+ export default abstract class Interceptor {
2
+ isInterceptorEnabled = false;
3
+
4
+ abstract enableInterception(): void;
5
+ abstract disableInterception(): void;
6
+ }
@@ -0,0 +1,6 @@
1
+ import Interceptor from './Interceptor';
2
+
3
+ export abstract class NetworkInterceptor extends Interceptor {
4
+ protected abstract getCallbacks(): any;
5
+ protected abstract clearCallbacks(): void;
6
+ }