@buoy-gg/network 7.0.40 → 7.0.42

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 (275) hide show
  1. package/README.md +11 -79
  2. package/lib/commonjs/index.js +1 -325
  3. package/lib/commonjs/index.web.js +1 -420
  4. package/lib/commonjs/network/components/DataViewer.web.js +1 -879
  5. package/lib/commonjs/network/components/NetworkCopyScreen.web.js +1 -48
  6. package/lib/commonjs/network/components/NetworkCopySettingsView.js +27 -755
  7. package/lib/commonjs/network/components/NetworkCopySettingsView.web.js +14 -1242
  8. package/lib/commonjs/network/components/NetworkDetailScreen.web.js +1 -101
  9. package/lib/commonjs/network/components/NetworkDetailStepper.js +1 -108
  10. package/lib/commonjs/network/components/NetworkDetailStepper.web.js +1 -298
  11. package/lib/commonjs/network/components/NetworkEventDetailView.js +15 -1130
  12. package/lib/commonjs/network/components/NetworkEventDetailView.web.js +15 -1484
  13. package/lib/commonjs/network/components/NetworkEventItemCompact.js +2 -401
  14. package/lib/commonjs/network/components/NetworkEventItemCompact.web.js +2 -820
  15. package/lib/commonjs/network/components/NetworkFilterScreen.web.js +1 -55
  16. package/lib/commonjs/network/components/NetworkFilterViewV3.js +1 -442
  17. package/lib/commonjs/network/components/NetworkFilterViewV3.web.js +1 -1310
  18. package/lib/commonjs/network/components/NetworkHeaderLive.js +1 -375
  19. package/lib/commonjs/network/components/NetworkHeaderLive.web.js +1 -623
  20. package/lib/commonjs/network/components/NetworkHeaderMenu.js +1 -190
  21. package/lib/commonjs/network/components/NetworkListScreen.js +1 -404
  22. package/lib/commonjs/network/components/NetworkListScreen.web.js +1 -625
  23. package/lib/commonjs/network/components/NetworkModal.js +1 -786
  24. package/lib/commonjs/network/components/NetworkNumberPrompt.js +1 -178
  25. package/lib/commonjs/network/components/NetworkNumberPrompt.web.js +1 -232
  26. package/lib/commonjs/network/components/NetworkOverrideEditor.js +1 -814
  27. package/lib/commonjs/network/components/NetworkOverrideEditor.web.js +1 -942
  28. package/lib/commonjs/network/components/NetworkOverrideHeaderButton.js +1 -107
  29. package/lib/commonjs/network/components/NetworkOverrideHeaderButton.web.js +1 -133
  30. package/lib/commonjs/network/components/NetworkOverridesButton.js +1 -90
  31. package/lib/commonjs/network/components/NetworkOverridesButton.web.js +1 -143
  32. package/lib/commonjs/network/components/NetworkOverridesScreen.js +1 -543
  33. package/lib/commonjs/network/components/NetworkOverridesScreen.web.js +1 -830
  34. package/lib/commonjs/network/components/NetworkSavedScreen.js +1 -226
  35. package/lib/commonjs/network/components/NetworkSavedScreen.web.js +1 -463
  36. package/lib/commonjs/network/components/NetworkUpgradeBanner.js +1 -76
  37. package/lib/commonjs/network/components/response-editor/Explorer.js +1 -973
  38. package/lib/commonjs/network/components/response-editor/Explorer.web.js +1 -1136
  39. package/lib/commonjs/network/components/response-editor/deleteNestedDataByPath.js +1 -56
  40. package/lib/commonjs/network/components/response-editor/editorContext.js +1 -33
  41. package/lib/commonjs/network/components/response-editor/updateNestedDataByPath.js +1 -61
  42. package/lib/commonjs/network/conditions/NetworkConditionsControl.js +1 -235
  43. package/lib/commonjs/network/conditions/NetworkConditionsControl.test.js +1 -136
  44. package/lib/commonjs/network/conditions/NetworkConditionsIcon.js +1 -33
  45. package/lib/commonjs/network/conditions/NetworkFloatingTool.js +1 -310
  46. package/lib/commonjs/network/conditions/NetworkFloatingTool.test.js +1 -219
  47. package/lib/commonjs/network/conditions/store.js +1 -75
  48. package/lib/commonjs/network/conditions/wait.js +1 -43
  49. package/lib/commonjs/network/conditions/xhr.js +1 -110
  50. package/lib/commonjs/network/hooks/useLiveNetworkEvent.js +1 -62
  51. package/lib/commonjs/network/hooks/useNetworkBadgeCounts.js +1 -83
  52. package/lib/commonjs/network/hooks/useNetworkEventList.js +1 -108
  53. package/lib/commonjs/network/hooks/useNetworkEvents.js +1 -318
  54. package/lib/commonjs/network/hooks/useNetworkHasMatches.js +1 -56
  55. package/lib/commonjs/network/hooks/useNetworkSaved.js +1 -38
  56. package/lib/commonjs/network/hooks/useNetworkSelection.js +1 -53
  57. package/lib/commonjs/network/hooks/useOverrideRules.js +1 -36
  58. package/lib/commonjs/network/hooks/useTickEveryMinute.js +1 -21
  59. package/lib/commonjs/network/overrides/applyToFetch.js +1 -80
  60. package/lib/commonjs/network/overrides/applyToXhr.js +2 -453
  61. package/lib/commonjs/network/overrides/engine.js +1 -93
  62. package/lib/commonjs/network/overrides/matchRule.js +1 -81
  63. package/lib/commonjs/network/overrides/overriddenRows.js +1 -0
  64. package/lib/commonjs/network/overrides/overrideRulesStore.js +1 -550
  65. package/lib/commonjs/network/overrides/presets.js +1 -70
  66. package/lib/commonjs/network/overrides/resolveOverride.js +1 -158
  67. package/lib/commonjs/network/overrides/types.js +1 -90
  68. package/lib/commonjs/network/sync/networkBodyResolver.js +1 -39
  69. package/lib/commonjs/network/sync/networkSyncAdapter.js +1 -882
  70. package/lib/commonjs/network/sync/overrideHonesty.release.test.js +1 -36
  71. package/lib/commonjs/network/types/index.js +1 -5
  72. package/lib/commonjs/network/utils/extractOperationName.js +1 -80
  73. package/lib/commonjs/network/utils/filterNetworkEvents.js +1 -96
  74. package/lib/commonjs/network/utils/formatGraphQLVariables.js +1 -219
  75. package/lib/commonjs/network/utils/formatting.js +1 -30
  76. package/lib/commonjs/network/utils/generateCurl.js +2 -71
  77. package/lib/commonjs/network/utils/generateNetworkCopyText.js +37 -166
  78. package/lib/commonjs/network/utils/httpCompletion.js +1 -37
  79. package/lib/commonjs/network/utils/networkEventStore.js +1 -393
  80. package/lib/commonjs/network/utils/networkListener.js +4 -1259
  81. package/lib/commonjs/network/utils/networkSavedStore.js +3 -577
  82. package/lib/commonjs/network/utils/networkSelectionStore.js +1 -193
  83. package/lib/commonjs/network/utils/realNow.js +1 -0
  84. package/lib/commonjs/network/utils/requestId.js +1 -0
  85. package/lib/commonjs/network/utils/resolveRequestUrl.js +1 -0
  86. package/lib/commonjs/network/utils/selectSavedEvents.js +1 -39
  87. package/lib/commonjs/network/utils/startNetworkCapture.js +1 -0
  88. package/lib/commonjs/network/utils/withPinnedFirst.js +1 -32
  89. package/lib/commonjs/preset.js +1 -102
  90. package/lib/module/index.js +1 -103
  91. package/lib/module/index.web.js +1 -82
  92. package/lib/module/network/components/DataViewer.web.js +1 -875
  93. package/lib/module/network/components/NetworkCopyScreen.web.js +1 -44
  94. package/lib/module/network/components/NetworkCopySettingsView.js +27 -750
  95. package/lib/module/network/components/NetworkCopySettingsView.web.js +14 -1237
  96. package/lib/module/network/components/NetworkDetailScreen.web.js +1 -97
  97. package/lib/module/network/components/NetworkDetailStepper.js +1 -104
  98. package/lib/module/network/components/NetworkDetailStepper.web.js +1 -296
  99. package/lib/module/network/components/NetworkEventDetailView.js +15 -1129
  100. package/lib/module/network/components/NetworkEventDetailView.web.js +15 -1482
  101. package/lib/module/network/components/NetworkEventItemCompact.js +2 -398
  102. package/lib/module/network/components/NetworkEventItemCompact.web.js +2 -818
  103. package/lib/module/network/components/NetworkFilterScreen.web.js +1 -51
  104. package/lib/module/network/components/NetworkFilterViewV3.js +1 -438
  105. package/lib/module/network/components/NetworkFilterViewV3.web.js +1 -1306
  106. package/lib/module/network/components/NetworkHeaderLive.js +1 -366
  107. package/lib/module/network/components/NetworkHeaderLive.web.js +1 -617
  108. package/lib/module/network/components/NetworkHeaderMenu.js +1 -184
  109. package/lib/module/network/components/NetworkListScreen.js +1 -400
  110. package/lib/module/network/components/NetworkListScreen.web.js +1 -623
  111. package/lib/module/network/components/NetworkModal.js +1 -781
  112. package/lib/module/network/components/NetworkNumberPrompt.js +1 -174
  113. package/lib/module/network/components/NetworkNumberPrompt.web.js +1 -230
  114. package/lib/module/network/components/NetworkOverrideEditor.js +1 -811
  115. package/lib/module/network/components/NetworkOverrideEditor.web.js +1 -939
  116. package/lib/module/network/components/NetworkOverrideHeaderButton.js +1 -104
  117. package/lib/module/network/components/NetworkOverrideHeaderButton.web.js +1 -131
  118. package/lib/module/network/components/NetworkOverridesButton.js +1 -87
  119. package/lib/module/network/components/NetworkOverridesButton.web.js +1 -141
  120. package/lib/module/network/components/NetworkOverridesScreen.js +1 -539
  121. package/lib/module/network/components/NetworkOverridesScreen.web.js +1 -826
  122. package/lib/module/network/components/NetworkSavedScreen.js +1 -222
  123. package/lib/module/network/components/NetworkSavedScreen.web.js +1 -461
  124. package/lib/module/network/components/NetworkUpgradeBanner.js +1 -72
  125. package/lib/module/network/components/response-editor/Explorer.js +1 -972
  126. package/lib/module/network/components/response-editor/Explorer.web.js +1 -1133
  127. package/lib/module/network/components/response-editor/deleteNestedDataByPath.js +1 -51
  128. package/lib/module/network/components/response-editor/editorContext.js +1 -29
  129. package/lib/module/network/components/response-editor/updateNestedDataByPath.js +1 -56
  130. package/lib/module/network/conditions/NetworkConditionsControl.js +1 -231
  131. package/lib/module/network/conditions/NetworkConditionsControl.test.js +1 -135
  132. package/lib/module/network/conditions/NetworkConditionsIcon.js +1 -29
  133. package/lib/module/network/conditions/NetworkFloatingTool.js +1 -304
  134. package/lib/module/network/conditions/NetworkFloatingTool.test.js +1 -218
  135. package/lib/module/network/conditions/store.js +1 -65
  136. package/lib/module/network/conditions/wait.js +1 -38
  137. package/lib/module/network/conditions/xhr.js +1 -106
  138. package/lib/module/network/hooks/useLiveNetworkEvent.js +1 -58
  139. package/lib/module/network/hooks/useNetworkBadgeCounts.js +1 -79
  140. package/lib/module/network/hooks/useNetworkEventList.js +1 -104
  141. package/lib/module/network/hooks/useNetworkEvents.js +1 -314
  142. package/lib/module/network/hooks/useNetworkHasMatches.js +1 -52
  143. package/lib/module/network/hooks/useNetworkSaved.js +1 -34
  144. package/lib/module/network/hooks/useNetworkSelection.js +1 -46
  145. package/lib/module/network/hooks/useOverrideRules.js +1 -32
  146. package/lib/module/network/hooks/useTickEveryMinute.js +1 -11
  147. package/lib/module/network/overrides/applyToFetch.js +1 -72
  148. package/lib/module/network/overrides/applyToXhr.js +2 -446
  149. package/lib/module/network/overrides/engine.js +1 -85
  150. package/lib/module/network/overrides/matchRule.js +1 -75
  151. package/lib/module/network/overrides/overriddenRows.js +1 -0
  152. package/lib/module/network/overrides/overrideRulesStore.js +1 -547
  153. package/lib/module/network/overrides/presets.js +1 -65
  154. package/lib/module/network/overrides/resolveOverride.js +1 -152
  155. package/lib/module/network/overrides/types.js +1 -86
  156. package/lib/module/network/sync/networkBodyResolver.js +1 -34
  157. package/lib/module/network/sync/networkSyncAdapter.js +1 -880
  158. package/lib/module/network/sync/overrideHonesty.release.test.js +1 -35
  159. package/lib/module/network/types/index.js +1 -3
  160. package/lib/module/network/utils/extractOperationName.js +1 -76
  161. package/lib/module/network/utils/filterNetworkEvents.js +1 -92
  162. package/lib/module/network/utils/formatGraphQLVariables.js +1 -213
  163. package/lib/module/network/utils/formatting.js +1 -9
  164. package/lib/module/network/utils/generateCurl.js +2 -67
  165. package/lib/module/network/utils/generateNetworkCopyText.js +37 -162
  166. package/lib/module/network/utils/httpCompletion.js +1 -32
  167. package/lib/module/network/utils/networkEventStore.js +1 -391
  168. package/lib/module/network/utils/networkListener.js +4 -1249
  169. package/lib/module/network/utils/networkSavedStore.js +3 -572
  170. package/lib/module/network/utils/networkSelectionStore.js +1 -188
  171. package/lib/module/network/utils/realNow.js +1 -0
  172. package/lib/module/network/utils/requestId.js +1 -0
  173. package/lib/module/network/utils/resolveRequestUrl.js +1 -0
  174. package/lib/module/network/utils/selectSavedEvents.js +1 -35
  175. package/lib/module/network/utils/startNetworkCapture.js +1 -0
  176. package/lib/module/network/utils/withPinnedFirst.js +1 -28
  177. package/lib/module/preset.js +1 -100
  178. package/lib/typescript/index.d.ts +1 -0
  179. package/lib/typescript/network/overrides/applyToXhr.d.ts +1 -0
  180. package/lib/typescript/network/overrides/engine.d.ts +1 -1
  181. package/lib/typescript/network/overrides/matchRule.d.ts +1 -1
  182. package/lib/typescript/network/overrides/overriddenRows.d.ts +16 -0
  183. package/lib/typescript/network/overrides/resolveOverride.d.ts +2 -2
  184. package/lib/typescript/network/overrides/types.d.ts +9 -0
  185. package/lib/typescript/network/utils/networkListener.d.ts +14 -4
  186. package/lib/typescript/network/utils/networkSavedStore.d.ts +4 -4
  187. package/lib/typescript/network/utils/realNow.d.ts +18 -0
  188. package/lib/typescript/network/utils/requestId.d.ts +2 -0
  189. package/lib/typescript/network/utils/resolveRequestUrl.d.ts +3 -0
  190. package/lib/typescript/network/utils/startNetworkCapture.d.ts +6 -0
  191. package/lib/web/index.mjs +145 -0
  192. package/package.json +32 -10
  193. package/lib/typescript/index.d.ts.map +0 -1
  194. package/lib/typescript/index.web.d.ts.map +0 -1
  195. package/lib/typescript/network/components/DataViewer.web.d.ts.map +0 -1
  196. package/lib/typescript/network/components/NetworkCopyScreen.web.d.ts.map +0 -1
  197. package/lib/typescript/network/components/NetworkCopySettingsView.d.ts.map +0 -1
  198. package/lib/typescript/network/components/NetworkCopySettingsView.web.d.ts.map +0 -1
  199. package/lib/typescript/network/components/NetworkDetailScreen.web.d.ts.map +0 -1
  200. package/lib/typescript/network/components/NetworkDetailStepper.d.ts.map +0 -1
  201. package/lib/typescript/network/components/NetworkDetailStepper.web.d.ts.map +0 -1
  202. package/lib/typescript/network/components/NetworkEventDetailView.d.ts.map +0 -1
  203. package/lib/typescript/network/components/NetworkEventDetailView.web.d.ts.map +0 -1
  204. package/lib/typescript/network/components/NetworkEventItemCompact.d.ts.map +0 -1
  205. package/lib/typescript/network/components/NetworkEventItemCompact.web.d.ts.map +0 -1
  206. package/lib/typescript/network/components/NetworkFilterScreen.web.d.ts.map +0 -1
  207. package/lib/typescript/network/components/NetworkFilterViewV3.d.ts.map +0 -1
  208. package/lib/typescript/network/components/NetworkFilterViewV3.web.d.ts.map +0 -1
  209. package/lib/typescript/network/components/NetworkHeaderLive.d.ts.map +0 -1
  210. package/lib/typescript/network/components/NetworkHeaderLive.web.d.ts.map +0 -1
  211. package/lib/typescript/network/components/NetworkHeaderMenu.d.ts.map +0 -1
  212. package/lib/typescript/network/components/NetworkListScreen.d.ts.map +0 -1
  213. package/lib/typescript/network/components/NetworkListScreen.web.d.ts.map +0 -1
  214. package/lib/typescript/network/components/NetworkModal.d.ts.map +0 -1
  215. package/lib/typescript/network/components/NetworkNumberPrompt.d.ts.map +0 -1
  216. package/lib/typescript/network/components/NetworkNumberPrompt.web.d.ts.map +0 -1
  217. package/lib/typescript/network/components/NetworkOverrideEditor.d.ts.map +0 -1
  218. package/lib/typescript/network/components/NetworkOverrideEditor.web.d.ts.map +0 -1
  219. package/lib/typescript/network/components/NetworkOverrideHeaderButton.d.ts.map +0 -1
  220. package/lib/typescript/network/components/NetworkOverrideHeaderButton.web.d.ts.map +0 -1
  221. package/lib/typescript/network/components/NetworkOverridesButton.d.ts.map +0 -1
  222. package/lib/typescript/network/components/NetworkOverridesButton.web.d.ts.map +0 -1
  223. package/lib/typescript/network/components/NetworkOverridesScreen.d.ts.map +0 -1
  224. package/lib/typescript/network/components/NetworkOverridesScreen.web.d.ts.map +0 -1
  225. package/lib/typescript/network/components/NetworkSavedScreen.d.ts.map +0 -1
  226. package/lib/typescript/network/components/NetworkSavedScreen.web.d.ts.map +0 -1
  227. package/lib/typescript/network/components/NetworkUpgradeBanner.d.ts.map +0 -1
  228. package/lib/typescript/network/components/response-editor/Explorer.d.ts.map +0 -1
  229. package/lib/typescript/network/components/response-editor/Explorer.web.d.ts.map +0 -1
  230. package/lib/typescript/network/components/response-editor/deleteNestedDataByPath.d.ts.map +0 -1
  231. package/lib/typescript/network/components/response-editor/editorContext.d.ts.map +0 -1
  232. package/lib/typescript/network/components/response-editor/updateNestedDataByPath.d.ts.map +0 -1
  233. package/lib/typescript/network/conditions/NetworkConditionsControl.d.ts.map +0 -1
  234. package/lib/typescript/network/conditions/NetworkConditionsControl.test.d.ts.map +0 -1
  235. package/lib/typescript/network/conditions/NetworkConditionsIcon.d.ts.map +0 -1
  236. package/lib/typescript/network/conditions/NetworkFloatingTool.d.ts.map +0 -1
  237. package/lib/typescript/network/conditions/NetworkFloatingTool.test.d.ts.map +0 -1
  238. package/lib/typescript/network/conditions/store.d.ts.map +0 -1
  239. package/lib/typescript/network/conditions/wait.d.ts.map +0 -1
  240. package/lib/typescript/network/conditions/xhr.d.ts.map +0 -1
  241. package/lib/typescript/network/hooks/useLiveNetworkEvent.d.ts.map +0 -1
  242. package/lib/typescript/network/hooks/useNetworkBadgeCounts.d.ts.map +0 -1
  243. package/lib/typescript/network/hooks/useNetworkEventList.d.ts.map +0 -1
  244. package/lib/typescript/network/hooks/useNetworkEvents.d.ts.map +0 -1
  245. package/lib/typescript/network/hooks/useNetworkHasMatches.d.ts.map +0 -1
  246. package/lib/typescript/network/hooks/useNetworkSaved.d.ts.map +0 -1
  247. package/lib/typescript/network/hooks/useNetworkSelection.d.ts.map +0 -1
  248. package/lib/typescript/network/hooks/useOverrideRules.d.ts.map +0 -1
  249. package/lib/typescript/network/hooks/useTickEveryMinute.d.ts.map +0 -1
  250. package/lib/typescript/network/overrides/applyToFetch.d.ts.map +0 -1
  251. package/lib/typescript/network/overrides/applyToXhr.d.ts.map +0 -1
  252. package/lib/typescript/network/overrides/engine.d.ts.map +0 -1
  253. package/lib/typescript/network/overrides/matchRule.d.ts.map +0 -1
  254. package/lib/typescript/network/overrides/overrideRulesStore.d.ts.map +0 -1
  255. package/lib/typescript/network/overrides/presets.d.ts.map +0 -1
  256. package/lib/typescript/network/overrides/resolveOverride.d.ts.map +0 -1
  257. package/lib/typescript/network/overrides/types.d.ts.map +0 -1
  258. package/lib/typescript/network/sync/networkBodyResolver.d.ts.map +0 -1
  259. package/lib/typescript/network/sync/networkSyncAdapter.d.ts.map +0 -1
  260. package/lib/typescript/network/sync/overrideHonesty.release.test.d.ts.map +0 -1
  261. package/lib/typescript/network/types/index.d.ts.map +0 -1
  262. package/lib/typescript/network/utils/extractOperationName.d.ts.map +0 -1
  263. package/lib/typescript/network/utils/filterNetworkEvents.d.ts.map +0 -1
  264. package/lib/typescript/network/utils/formatGraphQLVariables.d.ts.map +0 -1
  265. package/lib/typescript/network/utils/formatting.d.ts.map +0 -1
  266. package/lib/typescript/network/utils/generateCurl.d.ts.map +0 -1
  267. package/lib/typescript/network/utils/generateNetworkCopyText.d.ts.map +0 -1
  268. package/lib/typescript/network/utils/httpCompletion.d.ts.map +0 -1
  269. package/lib/typescript/network/utils/networkEventStore.d.ts.map +0 -1
  270. package/lib/typescript/network/utils/networkListener.d.ts.map +0 -1
  271. package/lib/typescript/network/utils/networkSavedStore.d.ts.map +0 -1
  272. package/lib/typescript/network/utils/networkSelectionStore.d.ts.map +0 -1
  273. package/lib/typescript/network/utils/selectSavedEvents.d.ts.map +0 -1
  274. package/lib/typescript/network/utils/withPinnedFirst.d.ts.map +0 -1
  275. package/lib/typescript/preset.d.ts.map +0 -1
@@ -1,110 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.runConditionXhr = runConditionXhr;
7
- var _applyToXhr = require("../overrides/applyToXhr");
8
- /** Active simulation uses a send-to-completion deadline, including the wait. */
9
- function runConditionXhr(target, url, condition, outcome, dispatch) {
10
- if (!(0, _applyToXhr.canSynthesize)(target)) throw new Error("Network conditions require React Native XMLHttpRequest.");
11
- const xhr = target;
12
- if (xhr.readyState !== 1 || xhr._sent) throw new Error("Request is not open or has already been sent.");
13
- const started = Date.now();
14
- let timeout = xhr.timeout;
15
- let settled = false;
16
- let dispatching = false;
17
- let deadline;
18
- let pending;
19
- const originalAbort = xhr.abort;
20
- const originalOpen = xhr.open;
21
- const abortDescriptor = Object.getOwnPropertyDescriptor(xhr, "abort");
22
- const openDescriptor = Object.getOwnPropertyDescriptor(xhr, "open");
23
- const timeoutDescriptor = Object.getOwnPropertyDescriptor(xhr, "timeout");
24
- const restore = (key, descriptor) => {
25
- if (descriptor) Object.defineProperty(xhr, key, descriptor);else delete xhr[key];
26
- };
27
- const cleanup = () => {
28
- if (settled) return;
29
- settled = true;
30
- clearTimeout(pending);
31
- clearTimeout(deadline);
32
- xhr.removeEventListener("loadend", cleanup);
33
- restore("abort", abortDescriptor);
34
- restore("open", openDescriptor);
35
- restore("timeout", timeoutDescriptor);
36
- xhr.timeout = timeout;
37
- };
38
- const fail = timedOut => {
39
- if (settled) return;
40
- // DONE suppresses abort events while the native transport is cancelled.
41
- Object.assign(xhr, {
42
- readyState: 4
43
- });
44
- originalAbort.call(xhr);
45
- xhr._aborted = false;
46
- xhr._hasError = true;
47
- xhr._timedOut = timedOut;
48
- xhr._response = timedOut ? "Request timed out (Buoy conditions)" : "Network request failed (Buoy Offline)";
49
- xhr.setReadyState(4);
50
- cleanup();
51
- };
52
- const expired = () => timeout > 0 && Date.now() - started >= timeout;
53
- const scheduleDeadline = () => {
54
- clearTimeout(deadline);
55
- if (timeout > 0) deadline = setTimeout(() => fail(true), Math.max(0, timeout - (Date.now() - started)));
56
- };
57
- Object.defineProperty(xhr, "timeout", {
58
- configurable: true,
59
- get: () => dispatching ? 0 : timeout,
60
- set: value => {
61
- timeout = Math.max(0, Number(value) || 0);
62
- scheduleDeadline();
63
- }
64
- });
65
- Object.defineProperty(xhr, "abort", {
66
- configurable: true,
67
- value: () => {
68
- if (!settled) {
69
- originalAbort.call(xhr);
70
- cleanup();
71
- }
72
- }
73
- });
74
- Object.defineProperty(xhr, "open", {
75
- configurable: true,
76
- value: (...args) => {
77
- const result = Reflect.apply(originalOpen, xhr, args);
78
- cleanup();
79
- return result;
80
- }
81
- });
82
- xhr._sent = true;
83
- xhr._requestId = null;
84
- xhr.addEventListener("loadend", cleanup);
85
- scheduleDeadline();
86
- pending = setTimeout(() => {
87
- if (settled) return;
88
- if (expired()) {
89
- fail(true);
90
- return;
91
- }
92
- if (condition.profile === "offline") {
93
- fail(false);
94
- return;
95
- }
96
- if (outcome && outcome.kind !== "delay") {
97
- (0, _applyToXhr.completeNativeOverride)(xhr, url, outcome);
98
- return;
99
- }
100
- xhr._sent = false;
101
- dispatching = true;
102
- try {
103
- dispatch();
104
- } catch {
105
- fail(false);
106
- } finally {
107
- dispatching = false;
108
- }
109
- }, condition.delayMs + (outcome?.delayMs ?? 0));
110
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.runConditionXhr=runConditionXhr;var _applyToXhr=require("../overrides/applyToXhr");var _realNow=require("../utils/realNow");function runConditionXhr(u,d,o,r,y){if(!(0,_applyToXhr.canSynthesize)(u)){const t={id:"condition",enabled:true,urlPattern:d,kind:"delay",hits:0,seen:0,createdAt:Date.now()};const a=o.profile==="offline"?{kind:"fail",rule:t,failKind:"network",delayMs:0}:r?{...r,delayMs:o.delayMs+r.delayMs}:{kind:"delay",rule:t,delayMs:o.delayMs};if(!(0,_applyToXhr.runOverride)(u,d,a,y))throw new Error("Network conditions are unavailable for this XMLHttpRequest implementation.");return}const e=u;if(e.readyState!==1||e._sent)throw new Error("Request is not open or has already been sent.");const b=(0,_realNow.realNow)();let n=e.timeout;let i=false;let f=false;let c;let h;const w=e.abort;const m=e.open;const v=Object.getOwnPropertyDescriptor(e,"abort");const M=Object.getOwnPropertyDescriptor(e,"open");const _=Object.getOwnPropertyDescriptor(e,"timeout");const p=(t,a)=>{if(a)Object.defineProperty(e,t,a);else delete e[t]};const l=()=>{if(i)return;i=true;clearTimeout(h);(0,_realNow.realClearTimeout)(c);e.removeEventListener("loadend",l);p("abort",v);p("open",M);p("timeout",_);e.timeout=n};const s=t=>{if(i)return;Object.assign(e,{readyState:4});w.call(e);e._aborted=false;e._hasError=true;e._timedOut=t;e._response=t?"Request timed out (Buoy conditions)":"Network request failed (Buoy Offline)";e.setReadyState(4);l()};const g=()=>n>0&&(0,_realNow.realNow)()-b>=n;const O=()=>{(0,_realNow.realClearTimeout)(c);if(n>0)c=(0,_realNow.realSetTimeout)(()=>s(true),Math.max(0,n-((0,_realNow.realNow)()-b)))};Object.defineProperty(e,"timeout",{configurable:true,get:()=>f?0:n,set:t=>{n=Math.max(0,Number(t)||0);O()}});Object.defineProperty(e,"abort",{configurable:true,value:()=>{if(!i){w.call(e);l()}}});Object.defineProperty(e,"open",{configurable:true,value:(...t)=>{const a=Reflect.apply(m,e,t);l();return a}});e._sent=true;e._requestId=null;e.addEventListener("loadend",l);O();h=setTimeout(()=>{if(i)return;if(g()){s(true);return}if(o.profile==="offline"){s(false);return}if(r&&r.kind!=="delay"){(0,_applyToXhr.completeNativeOverride)(e,d,r);return}e._sent=false;f=true;try{y()}catch{s(false)}finally{f=false}},o.delayMs+(r?.delayMs??0))}
@@ -1,62 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useLiveNetworkEvent = useLiveNetworkEvent;
7
- var _react = require("react");
8
- var _networkEventStore = require("../utils/networkEventStore");
9
- var _networkSavedStore = require("../utils/networkSavedStore");
10
- /**
11
- * Resolves a selected event ID to the LIVE event object in the store.
12
- *
13
- * The detail view used to be handed the `NetworkEvent` captured at press
14
- * time. The store updates immutably — a response/error replaces the pending
15
- * event with a NEW object — so a request opened while pending stayed
16
- * "Pending" for as long as the detail view was open, and only showed its
17
- * real status after going back and re-opening the row (which re-read the
18
- * store). This hook closes that gap: callers keep the ID as UI state and the
19
- * leaf that renders the detail subscribes for its current value.
20
- *
21
- * Subscribing here (not at the modal root) keeps the event stream out of the
22
- * shell's render path — same rule the list/header leaves follow.
23
- */
24
-
25
- /**
26
- * Live store first, then the pinned/saved snapshots. The fallback is what
27
- * makes a pinned request openable after a Clear, after it aged past the
28
- * 500-event cap, or in a later app launch — cases where the live store has
29
- * nothing and the persisted snapshot is the only copy left.
30
- */
31
- function readEvent(eventId) {
32
- return _networkEventStore.networkEventStore.getEvents().find(e => e.id === eventId) ?? _networkSavedStore.networkSavedStore.getEventById(eventId);
33
- }
34
- function useLiveNetworkEvent(eventId, options = {}) {
35
- const {
36
- paused = false
37
- } = options;
38
- const [entry, setEntry] = (0, _react.useState)(null);
39
- (0, _react.useEffect)(() => {
40
- // `paused` is the power toggle's freeze-stream semantic: a frozen tool
41
- // keeps showing the version it froze on.
42
- if (!eventId || paused) return undefined;
43
- // subscribeToEvents replays the current array immediately, so the open
44
- // detail catches up on subscribe as well as on every later update.
45
- return _networkEventStore.networkEventStore.subscribeToEvents(events => {
46
- const next = events.find(e => e.id === eventId);
47
- // Gone from the store (cleared, or aged past maxEvents) — keep the last
48
- // known version rather than blanking an open detail view.
49
- if (!next) return;
50
- setEntry(prev => prev && prev.id === eventId && prev.event === next ? prev : {
51
- id: eventId,
52
- event: next
53
- });
54
- });
55
- }, [eventId, paused]);
56
- if (!eventId) return null;
57
- // A store read during render covers the frame where `eventId` just changed:
58
- // the effect's first emission lands a commit later, and until then `entry`
59
- // still describes the previously selected request.
60
- if (entry && entry.id === eventId) return entry.event;
61
- return readEvent(eventId);
62
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.useLiveNetworkEvent=useLiveNetworkEvent;var _react=require("react");var _networkEventStore=require("../utils/networkEventStore");var _networkSavedStore=require("../utils/networkSavedStore");function readEvent(e){return _networkEventStore.networkEventStore.getEvents().find(r=>r.id===e)??_networkSavedStore.networkSavedStore.getEventById(e)}function useLiveNetworkEvent(e,r={}){const{paused:o=false}=r;const[n,i]=(0,_react.useState)(null);(0,_react.useEffect)(()=>{if(!e||o)return void 0;return _networkEventStore.networkEventStore.subscribeToEvents(s=>{const u=s.find(t=>t.id===e);if(!u)return;i(t=>t&&t.id===e&&t.event===u?t:{id:e,event:u})})},[e,o]);if(!e)return null;if(n&&n.id===e)return n.event;return readEvent(e)}
@@ -1,83 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useNetworkBadgeCounts = useNetworkBadgeCounts;
7
- var _react = require("react");
8
- var _networkEventStore = require("../utils/networkEventStore");
9
- var _filterNetworkEvents = require("../utils/filterNetworkEvents");
10
- /**
11
- * Narrow store subscription for the header's live counters — the ONLY
12
- * header data that should update per network event (the success/error/
13
- * pending chips and the clear button's has-events state).
14
- *
15
- * Holds derived COUNTS in state, not the events array, with an equality
16
- * guard — so consumers re-render only when a count actually changes
17
- * (e.g. an ignored-pattern-matched event arriving doesn't re-render the
18
- * chips). rule2: external store, narrowest possible subscription.
19
- */
20
-
21
- function computeCounts(events, ignoredPatterns) {
22
- let successful = 0;
23
- let failed = 0;
24
- let pending = 0;
25
- for (const event of (0, _filterNetworkEvents.applyIgnoredPatterns)(events, ignoredPatterns)) {
26
- if (event.status && event.status >= 200 && event.status < 300) {
27
- successful++;
28
- } else if (event.error || event.status && event.status >= 400) {
29
- failed++;
30
- } else if (!event.status && !event.error) {
31
- pending++;
32
- }
33
- }
34
- return {
35
- successful,
36
- failed,
37
- pending,
38
- total: events.length
39
- };
40
- }
41
- function countsEqual(a, b) {
42
- return a.successful === b.successful && a.failed === b.failed && a.pending === b.pending && a.total === b.total;
43
- }
44
- function useNetworkBadgeCounts(options) {
45
- const {
46
- ignoredPatterns,
47
- paused
48
- } = options;
49
- const [counts, setCounts] = (0, _react.useState)(() => computeCounts(_networkEventStore.networkEventStore.getEvents(), ignoredPatterns));
50
- (0, _react.useEffect)(() => {
51
- if (paused) return undefined;
52
- // Frame-coalesced like useNetworkEventList: a request burst updates
53
- // the chips once per frame, not once per emission. subscribeToEvents
54
- // replays immediately, which also recomputes when ignoredPatterns
55
- // change (this effect re-runs).
56
- let rafId = null;
57
- let pending = null;
58
- const unsubscribe = _networkEventStore.networkEventStore.subscribeToEvents(events => {
59
- pending = events;
60
- if (rafId != null) return;
61
- rafId = requestAnimationFrame(() => {
62
- rafId = null;
63
- if (!pending) return;
64
- const next = computeCounts(pending, ignoredPatterns);
65
- pending = null;
66
- setCounts(prev => countsEqual(prev, next) ? prev : next);
67
- });
68
- });
69
- return () => {
70
- unsubscribe();
71
- if (rafId != null) cancelAnimationFrame(rafId);
72
- };
73
- }, [paused, ignoredPatterns]);
74
- (0, _react.useEffect)(() => _networkEventStore.networkEventStore.onClear(() => {
75
- setCounts({
76
- successful: 0,
77
- failed: 0,
78
- pending: 0,
79
- total: 0
80
- });
81
- }), []);
82
- return counts;
83
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.useNetworkBadgeCounts=useNetworkBadgeCounts;var _react=require("react");var _networkEventStore=require("../utils/networkEventStore");var _filterNetworkEvents=require("../utils/filterNetworkEvents");function computeCounts(n,t){let r=0;let u=0;let s=0;for(const e of(0,_filterNetworkEvents.applyIgnoredPatterns)(n,t)){if(e.status&&e.status>=200&&e.status<300){r++}else if(e.error||e.status&&e.status>=400){u++}else if(!e.status&&!e.error){s++}}return{successful:r,failed:u,pending:s,total:n.length}}function countsEqual(n,t){return n.successful===t.successful&&n.failed===t.failed&&n.pending===t.pending&&n.total===t.total}function useNetworkBadgeCounts(n){const{ignoredPatterns:t,paused:r}=n;const[u,s]=(0,_react.useState)(()=>computeCounts(_networkEventStore.networkEventStore.getEvents(),t));(0,_react.useEffect)(()=>{if(r)return void 0;let e=null;let o=null;const a=_networkEventStore.networkEventStore.subscribeToEvents(c=>{o=c;if(e!=null)return;e=requestAnimationFrame(()=>{e=null;if(!o)return;const l=computeCounts(o,t);o=null;s(i=>countsEqual(i,l)?i:l)})});return()=>{a();if(e!=null)cancelAnimationFrame(e)}},[r,t]);(0,_react.useEffect)(()=>_networkEventStore.networkEventStore.onClear(()=>{s({successful:0,failed:0,pending:0,total:0})}),[]);return u}
@@ -1,108 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useNetworkEventList = useNetworkEventList;
7
- var _react = require("react");
8
- var _sharedUi = require("@buoy-gg/shared-ui");
9
- var _networkEventStore = require("../utils/networkEventStore");
10
- var _filterNetworkEvents = require("../utils/filterNetworkEvents");
11
- /**
12
- * Narrow store subscription for components that render the network event
13
- * LIST (or need the filtered list). Decomposed from `useNetworkEvents`
14
- * per rule2 ("external store + narrow subscriptions") so the subscription
15
- * lives in the leaf that consumes it — the modal root no longer
16
- * re-renders per network event.
17
- *
18
- * Profiling evidence (tool-bench, 2026-07-06): with the subscription at
19
- * the modal root, 15 network events re-rendered the ENTIRE modal 15× —
20
- * JsModalComponent/header buttons ×15, all visible rows ×105.
21
- *
22
- * `paused` gates the subscription (the power toggle's freeze-stream
23
- * semantic, and screens pass `paused || !visible` so hidden screens don't
24
- * subscribe at all). Store clears are honored even while paused so a
25
- * frozen list can't show deleted events (parity with the old hook's
26
- * clearEvents local reset).
27
- */
28
-
29
- function useNetworkEventList(options) {
30
- const {
31
- filter,
32
- ignoredPatterns,
33
- paused,
34
- visible = true,
35
- isPro
36
- } = options;
37
- const tierLimit = (0, _sharedUi.useLimit)("network.requests");
38
- // `isPro` stays an option so callers can force the unlimited view.
39
- const requestLimit = isPro ? Infinity : tierLimit;
40
- const [events, setEvents] = (0, _react.useState)(() => _networkEventStore.networkEventStore.getEvents());
41
- (0, _react.useEffect)(() => {
42
- // Hidden: neither subscribe nor sync — a hidden screen re-rendering for
43
- // stream traffic is pure waste (the stable-router contract).
44
- if (!visible) return undefined;
45
- if (paused) {
46
- // Pause freezes the STREAM, not the data. The store still holds the
47
- // frozen events, and a screen entering visibility during a pause must
48
- // show them rather than whatever it had at mount.
49
- setEvents(_networkEventStore.networkEventStore.getEvents());
50
- return undefined;
51
- }
52
- // Coalesce store emissions to one commit per frame: a burst of N
53
- // concurrent requests emits 2N times (add + response each), and
54
- // uncoalesced each emission is its own commit re-rendering the
55
- // changed row's whole subtree. Profiling (tool-bench 2026-07-06):
56
- // a rapid 25-request session produced 70 commits at ~220 renders
57
- // each. subscribeToEvents replays the current array immediately, so
58
- // resuming from pause catches up on the next frame.
59
- let rafId = null;
60
- let pending = null;
61
- const unsubscribe = _networkEventStore.networkEventStore.subscribeToEvents(next => {
62
- pending = next;
63
- if (rafId != null) return;
64
- rafId = requestAnimationFrame(() => {
65
- rafId = null;
66
- if (pending) setEvents(pending);
67
- pending = null;
68
- });
69
- });
70
- return () => {
71
- unsubscribe();
72
- if (rafId != null) cancelAnimationFrame(rafId);
73
- };
74
- }, [paused, visible]);
75
- (0, _react.useEffect)(() => _networkEventStore.networkEventStore.onClear(() => {
76
- setEvents([]);
77
- }), []);
78
-
79
- // Derivations are plain useMemo over the subscribed array — linear
80
- // passes over ≤maxEvents items, recomputed only when inputs change.
81
- // Split in two so the pre-filter count is observable: `totalEvents` below
82
- // is the denominator the empty state needs, and recomputing it separately
83
- // would mean a second pass over the same array.
84
- const candidateEvents = (0, _react.useMemo)(() => (0, _filterNetworkEvents.applyIgnoredPatterns)(events, ignoredPatterns), [events, ignoredPatterns]);
85
- const filteredEvents = (0, _react.useMemo)(() => (0, _filterNetworkEvents.filterNetworkEvents)(candidateEvents, filter), [candidateEvents, filter]);
86
-
87
- // Free tier: events beyond the limit in the ORIGINAL order are locked,
88
- // so locked events stay locked even when searching (ported verbatim).
89
- const lockedEventIds = (0, _react.useMemo)(() => {
90
- const lockedIds = new Set();
91
- events.slice(requestLimit).forEach(event => {
92
- lockedIds.add(event.id);
93
- });
94
- return lockedIds;
95
- }, [events, requestLimit]);
96
- const visibleEvents = (0, _react.useMemo)(() => {
97
- if (lockedEventIds.size === 0) return filteredEvents;
98
- return filteredEvents.filter(event => !lockedEventIds.has(event.id));
99
- }, [filteredEvents, lockedEventIds]);
100
- const lockedEventCount = filteredEvents.length - visibleEvents.length;
101
- return {
102
- events: filteredEvents,
103
- visibleEvents,
104
- hasLockedEvents: lockedEventCount > 0,
105
- lockedEventCount,
106
- totalEvents: candidateEvents.length
107
- };
108
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.useNetworkEventList=useNetworkEventList;var _react=require("react");var _sharedUi=require("@buoy-gg/shared-ui");var _networkEventStore=require("../utils/networkEventStore");var _filterNetworkEvents=require("../utils/filterNetworkEvents");function useNetworkEventList(f){const{filter:u,ignoredPatterns:l,paused:v,visible:c=true,isPro:k}=f;const w=(0,_sharedUi.useLimit)("network.requests");const a=k?Infinity:w;const[r,s]=(0,_react.useState)(()=>_networkEventStore.networkEventStore.getEvents());(0,_react.useEffect)(()=>{if(!c)return void 0;if(v){s(_networkEventStore.networkEventStore.getEvents());return void 0}let e=null;let t=null;const m=_networkEventStore.networkEventStore.subscribeToEvents(g=>{t=g;if(e!=null)return;e=requestAnimationFrame(()=>{e=null;if(t)s(t);t=null})});return()=>{m();if(e!=null)cancelAnimationFrame(e)}},[v,c]);(0,_react.useEffect)(()=>_networkEventStore.networkEventStore.onClear(()=>{s([])}),[]);const i=(0,_react.useMemo)(()=>(0,_filterNetworkEvents.applyIgnoredPatterns)(r,l),[r,l]);const n=(0,_react.useMemo)(()=>(0,_filterNetworkEvents.filterNetworkEvents)(i,u),[i,u]);const o=(0,_react.useMemo)(()=>{const e=new Set;r.slice(a).forEach(t=>{e.add(t.id)});return e},[r,a]);const d=(0,_react.useMemo)(()=>{if(o.size===0)return n;return n.filter(e=>!o.has(e.id))},[n,o]);const E=n.length-d.length;return{events:n,visibleEvents:d,hasLockedEvents:E>0,lockedEventCount:E,totalEvents:i.length}}