@buoy-gg/network 7.0.41 → 7.0.43

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 (272) hide show
  1. package/README.md +11 -85
  2. package/lib/commonjs/index.js +1 -332
  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 -403
  22. package/lib/commonjs/network/components/NetworkListScreen.web.js +1 -624
  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 -135
  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 -510
  61. package/lib/commonjs/network/overrides/engine.js +1 -93
  62. package/lib/commonjs/network/overrides/matchRule.js +1 -87
  63. package/lib/commonjs/network/overrides/overriddenRows.js +1 -37
  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 -411
  80. package/lib/commonjs/network/utils/networkListener.js +4 -1352
  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 -16
  85. package/lib/commonjs/network/utils/resolveRequestUrl.js +1 -15
  86. package/lib/commonjs/network/utils/selectSavedEvents.js +1 -39
  87. package/lib/commonjs/network/utils/startNetworkCapture.js +1 -24
  88. package/lib/commonjs/network/utils/withPinnedFirst.js +1 -32
  89. package/lib/commonjs/preset.js +1 -93
  90. package/lib/module/index.js +1 -104
  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 -399
  110. package/lib/module/network/components/NetworkListScreen.web.js +1 -622
  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 -131
  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 -502
  149. package/lib/module/network/overrides/engine.js +1 -85
  150. package/lib/module/network/overrides/matchRule.js +1 -81
  151. package/lib/module/network/overrides/overriddenRows.js +1 -33
  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 -409
  168. package/lib/module/network/utils/networkListener.js +4 -1341
  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 -12
  173. package/lib/module/network/utils/resolveRequestUrl.js +1 -11
  174. package/lib/module/network/utils/selectSavedEvents.js +1 -35
  175. package/lib/module/network/utils/startNetworkCapture.js +1 -21
  176. package/lib/module/network/utils/withPinnedFirst.js +1 -28
  177. package/lib/module/preset.js +1 -91
  178. package/lib/typescript/network/overrides/engine.d.ts +1 -1
  179. package/lib/typescript/network/overrides/matchRule.d.ts +1 -1
  180. package/lib/typescript/network/overrides/resolveOverride.d.ts +2 -2
  181. package/lib/typescript/network/overrides/types.d.ts +9 -0
  182. package/lib/typescript/network/utils/networkListener.d.ts +11 -0
  183. package/lib/typescript/network/utils/realNow.d.ts +18 -0
  184. package/lib/web/index.mjs +73 -74
  185. package/package.json +3 -6
  186. package/lib/typescript/index.d.ts.map +0 -1
  187. package/lib/typescript/index.web.d.ts.map +0 -1
  188. package/lib/typescript/network/components/DataViewer.web.d.ts.map +0 -1
  189. package/lib/typescript/network/components/NetworkCopyScreen.web.d.ts.map +0 -1
  190. package/lib/typescript/network/components/NetworkCopySettingsView.d.ts.map +0 -1
  191. package/lib/typescript/network/components/NetworkCopySettingsView.web.d.ts.map +0 -1
  192. package/lib/typescript/network/components/NetworkDetailScreen.web.d.ts.map +0 -1
  193. package/lib/typescript/network/components/NetworkDetailStepper.d.ts.map +0 -1
  194. package/lib/typescript/network/components/NetworkDetailStepper.web.d.ts.map +0 -1
  195. package/lib/typescript/network/components/NetworkEventDetailView.d.ts.map +0 -1
  196. package/lib/typescript/network/components/NetworkEventDetailView.web.d.ts.map +0 -1
  197. package/lib/typescript/network/components/NetworkEventItemCompact.d.ts.map +0 -1
  198. package/lib/typescript/network/components/NetworkEventItemCompact.web.d.ts.map +0 -1
  199. package/lib/typescript/network/components/NetworkFilterScreen.web.d.ts.map +0 -1
  200. package/lib/typescript/network/components/NetworkFilterViewV3.d.ts.map +0 -1
  201. package/lib/typescript/network/components/NetworkFilterViewV3.web.d.ts.map +0 -1
  202. package/lib/typescript/network/components/NetworkHeaderLive.d.ts.map +0 -1
  203. package/lib/typescript/network/components/NetworkHeaderLive.web.d.ts.map +0 -1
  204. package/lib/typescript/network/components/NetworkHeaderMenu.d.ts.map +0 -1
  205. package/lib/typescript/network/components/NetworkListScreen.d.ts.map +0 -1
  206. package/lib/typescript/network/components/NetworkListScreen.web.d.ts.map +0 -1
  207. package/lib/typescript/network/components/NetworkModal.d.ts.map +0 -1
  208. package/lib/typescript/network/components/NetworkNumberPrompt.d.ts.map +0 -1
  209. package/lib/typescript/network/components/NetworkNumberPrompt.web.d.ts.map +0 -1
  210. package/lib/typescript/network/components/NetworkOverrideEditor.d.ts.map +0 -1
  211. package/lib/typescript/network/components/NetworkOverrideEditor.web.d.ts.map +0 -1
  212. package/lib/typescript/network/components/NetworkOverrideHeaderButton.d.ts.map +0 -1
  213. package/lib/typescript/network/components/NetworkOverrideHeaderButton.web.d.ts.map +0 -1
  214. package/lib/typescript/network/components/NetworkOverridesButton.d.ts.map +0 -1
  215. package/lib/typescript/network/components/NetworkOverridesButton.web.d.ts.map +0 -1
  216. package/lib/typescript/network/components/NetworkOverridesScreen.d.ts.map +0 -1
  217. package/lib/typescript/network/components/NetworkOverridesScreen.web.d.ts.map +0 -1
  218. package/lib/typescript/network/components/NetworkSavedScreen.d.ts.map +0 -1
  219. package/lib/typescript/network/components/NetworkSavedScreen.web.d.ts.map +0 -1
  220. package/lib/typescript/network/components/NetworkUpgradeBanner.d.ts.map +0 -1
  221. package/lib/typescript/network/components/response-editor/Explorer.d.ts.map +0 -1
  222. package/lib/typescript/network/components/response-editor/Explorer.web.d.ts.map +0 -1
  223. package/lib/typescript/network/components/response-editor/deleteNestedDataByPath.d.ts.map +0 -1
  224. package/lib/typescript/network/components/response-editor/editorContext.d.ts.map +0 -1
  225. package/lib/typescript/network/components/response-editor/updateNestedDataByPath.d.ts.map +0 -1
  226. package/lib/typescript/network/conditions/NetworkConditionsControl.d.ts.map +0 -1
  227. package/lib/typescript/network/conditions/NetworkConditionsControl.test.d.ts.map +0 -1
  228. package/lib/typescript/network/conditions/NetworkConditionsIcon.d.ts.map +0 -1
  229. package/lib/typescript/network/conditions/NetworkFloatingTool.d.ts.map +0 -1
  230. package/lib/typescript/network/conditions/NetworkFloatingTool.test.d.ts.map +0 -1
  231. package/lib/typescript/network/conditions/store.d.ts.map +0 -1
  232. package/lib/typescript/network/conditions/wait.d.ts.map +0 -1
  233. package/lib/typescript/network/conditions/xhr.d.ts.map +0 -1
  234. package/lib/typescript/network/hooks/useLiveNetworkEvent.d.ts.map +0 -1
  235. package/lib/typescript/network/hooks/useNetworkBadgeCounts.d.ts.map +0 -1
  236. package/lib/typescript/network/hooks/useNetworkEventList.d.ts.map +0 -1
  237. package/lib/typescript/network/hooks/useNetworkEvents.d.ts.map +0 -1
  238. package/lib/typescript/network/hooks/useNetworkHasMatches.d.ts.map +0 -1
  239. package/lib/typescript/network/hooks/useNetworkSaved.d.ts.map +0 -1
  240. package/lib/typescript/network/hooks/useNetworkSelection.d.ts.map +0 -1
  241. package/lib/typescript/network/hooks/useOverrideRules.d.ts.map +0 -1
  242. package/lib/typescript/network/hooks/useTickEveryMinute.d.ts.map +0 -1
  243. package/lib/typescript/network/overrides/applyToFetch.d.ts.map +0 -1
  244. package/lib/typescript/network/overrides/applyToXhr.d.ts.map +0 -1
  245. package/lib/typescript/network/overrides/engine.d.ts.map +0 -1
  246. package/lib/typescript/network/overrides/matchRule.d.ts.map +0 -1
  247. package/lib/typescript/network/overrides/overriddenRows.d.ts.map +0 -1
  248. package/lib/typescript/network/overrides/overrideRulesStore.d.ts.map +0 -1
  249. package/lib/typescript/network/overrides/presets.d.ts.map +0 -1
  250. package/lib/typescript/network/overrides/resolveOverride.d.ts.map +0 -1
  251. package/lib/typescript/network/overrides/types.d.ts.map +0 -1
  252. package/lib/typescript/network/sync/networkBodyResolver.d.ts.map +0 -1
  253. package/lib/typescript/network/sync/networkSyncAdapter.d.ts.map +0 -1
  254. package/lib/typescript/network/sync/overrideHonesty.release.test.d.ts.map +0 -1
  255. package/lib/typescript/network/types/index.d.ts.map +0 -1
  256. package/lib/typescript/network/utils/extractOperationName.d.ts.map +0 -1
  257. package/lib/typescript/network/utils/filterNetworkEvents.d.ts.map +0 -1
  258. package/lib/typescript/network/utils/formatGraphQLVariables.d.ts.map +0 -1
  259. package/lib/typescript/network/utils/formatting.d.ts.map +0 -1
  260. package/lib/typescript/network/utils/generateCurl.d.ts.map +0 -1
  261. package/lib/typescript/network/utils/generateNetworkCopyText.d.ts.map +0 -1
  262. package/lib/typescript/network/utils/httpCompletion.d.ts.map +0 -1
  263. package/lib/typescript/network/utils/networkEventStore.d.ts.map +0 -1
  264. package/lib/typescript/network/utils/networkListener.d.ts.map +0 -1
  265. package/lib/typescript/network/utils/networkSavedStore.d.ts.map +0 -1
  266. package/lib/typescript/network/utils/networkSelectionStore.d.ts.map +0 -1
  267. package/lib/typescript/network/utils/requestId.d.ts.map +0 -1
  268. package/lib/typescript/network/utils/resolveRequestUrl.d.ts.map +0 -1
  269. package/lib/typescript/network/utils/selectSavedEvents.d.ts.map +0 -1
  270. package/lib/typescript/network/utils/startNetworkCapture.d.ts.map +0 -1
  271. package/lib/typescript/network/utils/withPinnedFirst.d.ts.map +0 -1
  272. package/lib/typescript/preset.d.ts.map +0 -1
package/lib/web/index.mjs CHANGED
@@ -1,146 +1,145 @@
1
- "use client";
2
- var So=Object.defineProperty;var Ks=Object.getOwnPropertyDescriptor;var Ys=Object.getOwnPropertyNames;var Qs=Object.prototype.hasOwnProperty;var Pn=(t,e)=>()=>(t&&(e=t(t=0)),e);var Zs=(t,e)=>{for(var r in e)So(t,r,{get:e[r],enumerable:!0})},vo=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ys(e))!Qs.call(t,i)&&i!==r&&So(t,i,{get:()=>e[i],enumerable:!(o=Ks(e,i))||o.enumerable});return t},ge=(t,e,r)=>(vo(t,e,"default"),r&&vo(r,e,"default"));var ea=t=>vo(So({},"__esModule",{value:!0}),t);var I,g=Pn(()=>{"use strict";I=process.env.NODE_ENV!=="production";typeof window<"u"&&typeof globalThis.global>"u"&&(globalThis.global=globalThis)});var ce={};Zs(ce,{AccessibilityInfo:()=>fa,ActivityIndicator:()=>ko,Alert:()=>ua,Animated:()=>ga,AppRegistry:()=>ha,AppState:()=>ya,Appearance:()=>ma,BackHandler:()=>ba,Button:()=>la,CheckBox:()=>qa,Clipboard:()=>wa,DeviceEventEmitter:()=>Ga,Dimensions:()=>va,Easing:()=>Sa,FlatList:()=>sr,I18nManager:()=>ka,Image:()=>Ma,ImageBackground:()=>Da,InteractionManager:()=>Ra,Keyboard:()=>xa,KeyboardAvoidingView:()=>Aa,LayoutAnimation:()=>Ta,Linking:()=>Ca,LogBox:()=>Ja,Modal:()=>sa,NativeEventEmitter:()=>Ea,NativeModules:()=>pa,PanResponder:()=>Na,Picker:()=>Ha,PixelRatio:()=>Oa,Platform:()=>Ia,Pressable:()=>ia,ProgressBar:()=>za,RefreshControl:()=>Va,SafeAreaView:()=>Fa,ScrollView:()=>Ge,SectionList:()=>_a,Share:()=>Pa,StatusBar:()=>Wa,StyleSheet:()=>K,Switch:()=>aa,Text:()=>f,TextInput:()=>ft,Touchable:()=>$a,TouchableHighlight:()=>oa,TouchableNativeFeedback:()=>Ua,TouchableOpacity:()=>D,TouchableWithoutFeedback:()=>na,UIManager:()=>La,Vibration:()=>Ba,View:()=>u,VirtualizedList:()=>ja,YellowBox:()=>Xa,findNodeHandle:()=>da,unstable_createElement:()=>ca,useColorScheme:()=>Ka,useLocaleContext:()=>Ya,useWindowDimensions:()=>xo});import*as Gp from"react-native-web";import{unstable_createElement as ca,NativeModules as pa,AccessibilityInfo as fa,Animated as ga,Appearance as ma,AppRegistry as ha,AppState as ya,BackHandler as ba,Clipboard as wa,Dimensions as va,Easing as Sa,I18nManager as ka,Keyboard as xa,InteractionManager as Ra,LayoutAnimation as Ta,Linking as Ca,NativeEventEmitter as Ea,PanResponder as Na,PixelRatio as Oa,Platform as Ia,Share as Pa,StyleSheet as K,UIManager as La,Vibration as Ba,CheckBox as qa,FlatList as sr,Image as Ma,ImageBackground as Da,KeyboardAvoidingView as Aa,Picker as Ha,ProgressBar as za,RefreshControl as Va,SafeAreaView as Fa,SectionList as _a,StatusBar as Wa,Touchable as $a,TouchableNativeFeedback as Ua,VirtualizedList as ja,YellowBox as Xa,LogBox as Ja,DeviceEventEmitter as Ga,useColorScheme as Ka,useLocaleContext as Ya,useWindowDimensions as xo}from"react-native-web";import*as le from"react-native-web";import{createElement as ta,forwardRef as ra}from"react";function Ve(t){let e=ra((o,i)=>{let{accessibilityState:n,accessibilityValue:s,...a}=o;for(let l of["busy","checked","disabled","expanded","selected"])n?.[l]!==void 0&&a[`aria-${l}`]===void 0&&(a[`aria-${l}`]=n[l]);for(let[l,p]of Object.entries({min:"valuemin",max:"valuemax",now:"valuenow",text:"valuetext"}))s?.[l]!==void 0&&a[`aria-${p}`]===void 0&&(a[`aria-${p}`]=s[l]);return ta(t,{...a,ref:i})}),r=t.State;return r&&Object.assign(e,{State:r}),e.displayName=t.displayName??t.name??"NativeWebView",e}var u,f,ft,D,oa,na,ia,Ge,sa,aa,ko,la,da,ua,he=Pn(()=>{g();ge(ce,Gp);u=Ve(le.View),f=Ve(le.Text),ft=Ve(le.TextInput),D=Ve(le.TouchableOpacity),oa=Ve(le.TouchableHighlight),na=Ve(le.TouchableWithoutFeedback),ia=Ve(le.Pressable),Ge=Ve(le.ScrollView),sa=Ve(le.Modal),aa=Ve(le.Switch),ko=Ve(le.ActivityIndicator),la=Ve(le.Button),da=le.findNodeHandle,ua={alert(t,e,r,o){if(typeof document>"u")return;let i=document.createElement("dialog");i.dataset.buoyRoot="",i.setAttribute("aria-label",t),i.style.cssText="position:fixed;inset:0;margin:auto;width:min(440px,90vw);padding:24px;border:1px solid #475569;border-radius:14px;background:#17212e;color:#f1f5f9;font:14px system-ui;box-shadow:0 20px 80px #0008;z-index:2147483647";let n=document.createElement("h2");if(n.textContent=t,n.style.cssText="font-size:18px;margin:0 0 12px",i.appendChild(n),e){let p=document.createElement("p");p.textContent=e,p.style.cssText="line-height:1.5;white-space:pre-wrap;margin:0 0 20px",i.appendChild(p)}let s=document.createElement("div");s.style.cssText="display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px";let a=r?.length?r:[{text:"OK"}],l=()=>{i.close?.(),i.remove()};for(let p of a){let c=document.createElement("button");c.type="button",c.textContent=p.text??"OK",c.style.cssText=`padding:9px 14px;border:1px solid #64748b;border-radius:7px;color:white;background:${p.style==="destructive"?"#a52b38":"#283a4d"};cursor:pointer;font:inherit`,c.onclick=()=>{l(),p.onPress?.()},s.appendChild(c)}i.addEventListener("cancel",p=>{p.preventDefault(),o?.cancelable!==!1&&(l(),o?.onDismiss?.())}),i.appendChild(s),document.body.appendChild(i),i.showModal?i.showModal():i.setAttribute("open","")}}});g();g();g();he();import{useSyncExternalStore as Sl}from"react";import{NetworkIcon as kl}from"@buoy-gg/shared-ui/web";g();import{hasAccountAccess as ei,subscribeAccountAccess as vl}from"@buoy-gg/shared-ui/web";g();g();function Ro(t){if(typeof document>"u")return t;try{return new URL(t,document.baseURI).href}catch{return t}}g();var To=globalThis;function Co(t){let e=To.__BUOY_NETWORK_REQUEST_SEQUENCE__??(To.__BUOY_NETWORK_REQUEST_SEQUENCE__={session:`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,next:0});return`${t}_${e.session}_${++e.next}`}g();g();var Er=t=>t,Ln=!1;function No(t){let e=Er(t);return typeof e.setReadyState=="function"&&typeof e.setResponseHeaders=="function"}function Qa(t){return typeof t.addEventListener=="function"&&typeof t.removeEventListener=="function"&&typeof t.dispatchEvent=="function"}function Za(){Ln||(Ln=!0,typeof I<"u"&&I&&console.warn("[Buoy] Network overrides need an XMLHttpRequest they can drive (React Native's, or a standards EventTarget one) and this environment provides neither \u2014 requests will run normally."))}function Bn(t,e,r){let o=Er(t);o.responseURL=e,o.status=r.status,o.statusText=r.statusText,o.setResponseHeaders?.(r.headers),o.setReadyState?.(2),!o._aborted&&(o._responseType="text",o._response=r.body,o._cachedResponse=void 0,o.setReadyState?.(3),!o._aborted&&o.setReadyState?.(4))}function qn(t,e){let r=Er(t),o=e.failKind==="timeout";r._hasError=!0,r._timedOut=o,r._responseType="text",r._response=o?"Request timed out (Buoy override)":"Network request failed (Buoy override)",r._cachedResponse=void 0,r.setReadyState?.(4)}function st(t,e,r){Object.defineProperty(t,e,{value:r,configurable:!0,enumerable:!0,writable:!1})}function el(t){if(t!=="readystatechange"&&typeof ProgressEvent=="function")try{return new ProgressEvent(t)}catch{}if(typeof Event=="function")try{return new Event(t)}catch{}return{type:t}}function Pt(t,e){t.dispatchEvent(el(e))}function ar(t,e){st(t,"readyState",e),Pt(t,"readystatechange")}function tl(t,e){let r="";try{r=t.responseType}catch{}switch(r){case"":case"text":return e.body;case"json":try{return JSON.parse(e.body)}catch{return null}case"arraybuffer":return typeof TextEncoder=="function"?new TextEncoder().encode(e.body).buffer:e.body;case"blob":if(typeof Blob=="function"){let o=Object.entries(e.headers).find(([i])=>i.toLowerCase()==="content-type")?.[1]??"";return new Blob([e.body],{type:o})}return e.body;default:return e.body}}function rl(t,e,r,o){let i=r.headers,n=Object.entries(i).map(([s,a])=>`${s.toLowerCase()}: ${a}\r
3
- `).join("");st(t,"getAllResponseHeaders",()=>n),st(t,"getResponseHeader",s=>{let a=String(s).toLowerCase();for(let[l,p]of Object.entries(i))if(l.toLowerCase()===a)return p;return null}),st(t,"responseURL",e),st(t,"status",r.status),st(t,"statusText",r.statusText),st(t,"response",tl(t,r)),st(t,"responseText",r.body),ar(t,2),!o()&&(ar(t,3),!o()&&(ar(t,4),!o()&&(Pt(t,"load"),Pt(t,"loadend"))))}function Eo(t,e){ar(t,4),Pt(t,e.failKind==="timeout"?"timeout":"error"),Pt(t,"loadend")}var $t=new WeakMap;function Mn(t){return $t.has(t)}function ol(t,e,r,o){let i=Date.now(),n={},s,a,l=!1,p=!1,c=!1,x=t.timeout,O=t.abort,E=t.open,P=["abort","open","timeout","readyState","status","statusText","response","responseText","responseURL","getAllResponseHeaders","getResponseHeader"],N=new Map(P.map(H=>[H,Object.getOwnPropertyDescriptor(t,H)])),w=Object.getPrototypeOf(t),R;for(;w&&!R;)R=Object.getOwnPropertyDescriptor(w,"timeout"),w=Object.getPrototypeOf(w);let S=()=>{l=!0,$t.get(t)===n&&$t.delete(t),clearTimeout(s),clearTimeout(a),t.removeEventListener("loadend",S)},v=()=>{S();for(let[H,L]of N)L?Object.defineProperty(t,H,L):delete t[H];t.timeout=x},A=()=>{clearTimeout(a),c?R?.set?.call(t,x>0?Math.max(1,x-(Date.now()-i)):0):x>0&&(a=setTimeout(()=>{l||(clearTimeout(s),Eo(t,{...r,kind:"fail",failKind:"timeout"}),S())},Math.max(0,x-(Date.now()-i))))};return Object.defineProperty(t,"timeout",{configurable:!0,get:()=>x,set:H=>{x=Math.max(0,Number(H)||0),A()}}),Object.defineProperty(t,"open",{configurable:!0,value:(...H)=>(v(),Reflect.apply(E,t,H))}),Object.defineProperty(t,"abort",{configurable:!0,value:()=>{if(c||l){v(),O.call(t);return}p=!0,clearTimeout(s),ar(t,4),Pt(t,"abort"),Pt(t,"loadend"),S(),$t.has(t)||st(t,"readyState",0)}}),$t.set(t,n),t.addEventListener("loadend",S),A(),s=setTimeout(()=>{if(!(l||p)){if(r.kind==="delay"){c=!0,A();try{o()}catch{Eo(t,{...r,kind:"fail",failKind:"network"}),S()}return}r.kind==="fail"?Eo(t,r):rl(t,e,r,()=>p||$t.get(t)!==n),S()}},r.delayMs),!0}function Nr(t,e,r,o){if(!No(t))return Qa(t)?ol(t,e,r,o):(Za(),!1);let i=Er(t);i._sent=!0,i._requestId=null;let n=null,s=()=>{t.removeEventListener("abort",s),n!==null&&(clearTimeout(n),n=null)};return t.addEventListener("abort",s),n=setTimeout(()=>{if(n=null,t.removeEventListener("abort",s),!i._aborted){if(r.kind==="delay"){i._sent=!1,o();return}if(r.kind==="fail"){qn(t,r);return}Bn(t,e,r)}},r.delayMs),!0}function Dn(t,e,r){r.kind==="fail"?qn(t,r):r.kind==="respond"&&Bn(t,e,r)}function An(t,e,r,o,i){if(!No(t)){let L={id:"condition",enabled:!0,urlPattern:e,kind:"delay",hits:0,seen:0,createdAt:Date.now()},m=r.profile==="offline"?{kind:"fail",rule:L,failKind:"network",delayMs:0}:o?{...o,delayMs:r.delayMs+o.delayMs}:{kind:"delay",rule:L,delayMs:r.delayMs};if(!Nr(t,e,m,i))throw new Error("Network conditions are unavailable for this XMLHttpRequest implementation.");return}let n=t;if(n.readyState!==1||n._sent)throw new Error("Request is not open or has already been sent.");let s=Date.now(),a=n.timeout,l=!1,p=!1,c,x,O=n.abort,E=n.open,P=Object.getOwnPropertyDescriptor(n,"abort"),N=Object.getOwnPropertyDescriptor(n,"open"),w=Object.getOwnPropertyDescriptor(n,"timeout"),R=(L,m)=>{m?Object.defineProperty(n,L,m):delete n[L]},S=()=>{l||(l=!0,clearTimeout(x),clearTimeout(c),n.removeEventListener("loadend",S),R("abort",P),R("open",N),R("timeout",w),n.timeout=a)},v=L=>{l||(Object.assign(n,{readyState:4}),O.call(n),n._aborted=!1,n._hasError=!0,n._timedOut=L,n._response=L?"Request timed out (Buoy conditions)":"Network request failed (Buoy Offline)",n.setReadyState(4),S())},A=()=>a>0&&Date.now()-s>=a,H=()=>{clearTimeout(c),a>0&&(c=setTimeout(()=>v(!0),Math.max(0,a-(Date.now()-s))))};Object.defineProperty(n,"timeout",{configurable:!0,get:()=>p?0:a,set:L=>{a=Math.max(0,Number(L)||0),H()}}),Object.defineProperty(n,"abort",{configurable:!0,value:()=>{l||(O.call(n),S())}}),Object.defineProperty(n,"open",{configurable:!0,value:(...L)=>{let m=Reflect.apply(E,n,L);return S(),m}}),n._sent=!0,n._requestId=null,n.addEventListener("loadend",S),H(),x=setTimeout(()=>{if(!l){if(A()){v(!0);return}if(r.profile==="offline"){v(!1);return}if(o&&o.kind!=="delay"){Dn(n,e,o);return}n._sent=!1,p=!0;try{i()}catch{v(!1)}finally{p=!1}}},r.delayMs+(o?.delayMs??0))}g();function lr(t){if(!t?.aborted)return;if(t.reason!==void 0)throw t.reason;let e=new Error("The request was aborted.");throw e.name="AbortError",e}function Hn(t,e){return new Promise((r,o)=>{try{lr(e)}catch(a){o(a);return}let i=()=>e?.removeEventListener("abort",n),n=()=>{clearTimeout(s),i();try{lr(e)}catch(a){o(a)}},s=setTimeout(()=>{i(),r()},t);e?.addEventListener("abort",n,{once:!0})})}g();import{hasAccountAccess as cl}from"@buoy-gg/shared-ui/web";g();g();var nl="[]{}()\\.^$+|-,?";function zn(t){let e="";for(let r=0;r<t.length;r++){let o=t.charAt(r);nl.indexOf(o)!==-1&&(e+="\\"),e+=o}return e.split("*").join(".*")}var Or=new Map;function il(t){let e=Or.get(t);if(e)return e;let r=t.startsWith("/")?`[a-zA-Z][a-zA-Z0-9+.-]*://[^/]*${zn(t)}`:zn(t),o=new RegExp(`^${r}$`);return Or.size>200&&Or.clear(),Or.set(t,o),o}function Ut(t,e,r){if(t.methods&&t.methods.length>0&&!t.methods.includes(r.toUpperCase()))return!1;try{return il(t.urlPattern).test(e)}catch{return!1}}g();import{TIER_LIMITS as sl}from"@buoy-gg/shared-ui/web";var gt=200,mt=599,Ue=50,Oo=sl["network.overrideRules"].free;function Io(t){return{ruleId:t.rule.id,ruleName:t.rule.name,kind:t.kind,delayMs:t.delayMs||void 0}}var al=[/(^|\.)keygen\.sh/i,/^https?:\/\/(www\.)?buoy\.gg\/api\/license(\/|$)/i];function ll(t){return al.some(e=>e.test(t))}function dl(t){let e=t.trim();if(e==="")return"text/plain; charset=utf-8";if(e.startsWith("{")||e.startsWith("["))try{return JSON.parse(e),"application/json"}catch{}return"text/plain; charset=utf-8"}function ul(t,e){let r=e.toLowerCase();return Object.keys(t).some(o=>o.toLowerCase()===r)}function Vn(t){let e=Math.max(0,t.delayMs??0);if(t.kind==="delay")return{kind:"delay",rule:t,delayMs:e};if(t.kind==="fail")return{kind:"fail",rule:t,delayMs:e,failKind:t.failKind??"network"};let r=t.body??"",o={...t.headers??{}};return ul(o,"content-type")||(o["content-type"]=dl(r)),{kind:"respond",rule:t,delayMs:e,status:Math.min(mt,Math.max(gt,t.status??200)),statusText:t.statusText??"",headers:o,body:r}}function dr(t){return typeof t.times=="number"&&t.hits>=t.times}function Fn(t){return t.alternate?t.seen%2===1:!0}function Po(t,e,r){if(r.length===0||e.toUpperCase()==="OPTIONS"||ll(t))return null;for(let o of r)if(o.enabled&&!dr(o)&&Ut(o,t,e))return o;return null}var Ke=null;function _n(t){Ke=t}function Lo(){return cl()&&!(typeof I<"u"&&!I)}var Wn="Response overrides never apply in a release build \u2014 the rule is saved but will not affect any request.";function $n(t,e){return{hooksInstalled:Ke!==null,devFlag:typeof I>"u"?"undefined":I,ruleCount:Ke?Ke.getRules().length:0,matches:Ke?Po(t,e,Ke.getRules())!==null:!1}}function Bo(t,e){if(!Ke||!Lo())return null;let r=Ke.getRules();if(r.length===0)return null;let o=Po(t,e,r);if(!o)return null;let i=Fn(o);return Ke.recordMatch(o.id),i?(Ke.recordHit(o.id),Vn(o)):null}g();function Un(){return typeof Response=="function"}function jn(t,e){let r=new Response(e.body,{status:e.status,statusText:e.statusText,headers:e.headers});try{Object.defineProperty(r,"url",{value:t,configurable:!0})}catch{}return r}function Xn(t){return new TypeError(t.failKind==="timeout"?"Network request timed out":"Network request failed")}g();var pl={400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",408:"Request Timeout",429:"Too Many Requests",500:"Internal Server Error",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout"};function Jn(t){return typeof t=="number"&&t>0?"response":"error"}function Gn(t,e){let r=(e??"").trim();return r||(pl[t]??"")}var Lt;function Kn(t){let e=globalThis.__buoyHeaderInjectors;if(!e||e.length===0)return;let r;for(let o of e)try{let i=o(t);i&&(r={...r,...i})}catch{}return r}function fl(){if(Lt!==void 0)return Lt;Lt=null;try{if(typeof I<"u"&&!I)return Lt;let e=(he(),ea(ce))?.NativeModules?.SourceCode,r=e?.getConstants?.().scriptURL??e?.scriptURL;if(typeof r=="string"&&/^https?:\/\//.test(r)){let o=new URL(r);Lt=`${o.protocol}//${o.host}`}}catch{Lt=null}return Lt}var Ir=!1,Yn="__buoyNetworkFetchIntercepted",Qn="__buoyNetworkXhrIntercepted",gl=["text/event-stream","application/x-ndjson","application/stream+json"],ml="[streaming\u2026]";function hl(t){if(!t)return!1;let e=t.toLowerCase();return gl.some(r=>e.includes(r))}var yl="__BUOY_INTERNAL_HOSTS__";function bl(t){let e=globalThis[yl];if(!(e instanceof Set)||e.size===0)return!1;let r;try{r=new URL(t).host.toLowerCase()}catch{return!1}for(let o of e)if(typeof o=="string"&&o&&r===o.toLowerCase())return!0;return!1}var qo=class{constructor(){this.listeners=[];this.isListening=!1;this.patchedFetch=null;this.patchedXHROpen=null;this.patchedXHRSend=null;this.patchedXHRSetRequestHeader=null;this.fetchGeneration=0;this.xhrGeneration=0;this.originalFetch=globalThis.fetch,this.originalXHROpen=XMLHttpRequest.prototype.open,this.originalXHRSend=XMLHttpRequest.prototype.send,this.originalXHRSetRequestHeader=XMLHttpRequest.prototype.setRequestHeader}shouldIgnoreUrl(e){try{let r=new URL(e);if(r.hostname==="keygen.sh"||r.hostname.endsWith(".keygen.sh")||(r.hostname==="buoy.gg"||r.hostname==="www.buoy.gg")&&r.pathname.startsWith("/api/license")||(r.hostname==="localhost"||r.hostname==="127.0.0.1"||r.hostname==="10.0.2.2")&&["8081","8802"].includes(r.port))return!0;let i=fl();if(i&&`${r.protocol}//${r.host}`===i)return!0}catch{return!1}return bl(e)}emit(e){this.listeners.forEach(r=>{try{r(e)}catch{}})}parseUrl(e){let r=null,o=e.indexOf("?");return o>-1&&(r={},e.substring(o+1).split("&").forEach(i=>{let[n,s]=i.split("=");n&&s!==void 0&&(r[n]=decodeURIComponent(s.replace(/\+/g," ")))})),{url:o>-1?e.substring(0,o):e,params:r}}async readStreamedBody(e,r=256*1024){let o=e.body;if(!o||typeof o.getReader!="function"){let p=await e.text();return p.length>r?{body:`${p.slice(0,r)}
1
+ "use client";var ro=Object.defineProperty;var vs=Object.getOwnPropertyDescriptor;var Ss=Object.getOwnPropertyNames;var xs=Object.prototype.hasOwnProperty;var Qo=(e,t)=>()=>(e&&(t=e(e=0)),t);var ws=(e,t)=>{for(var r in t)ro(e,r,{get:t[r],enumerable:true})},oo=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Ss(t))!xs.call(e,n)&&n!==r&&ro(e,n,{get:()=>t[n],enumerable:!(o=vs(t,n))||o.enumerable});return e},Ts=(e,t,r)=>(oo(e,t,"default"),r&&oo(r,t,"default"));var Cs=e=>oo(ro({},"__esModule",{value:true}),e);var Ce,D=Qo(()=>{"use strict";Ce=process.env.NODE_ENV!=="production";typeof window<"u"&&typeof globalThis.global>"u"&&(globalThis.global=globalThis)});var no={};ws(no,{AccessibilityInfo:()=>Es,ActivityIndicator:()=>so,Alert:()=>dn,Animated:()=>Ls,AppRegistry:()=>qs,AppState:()=>Bs,Appearance:()=>Ps,BackHandler:()=>Os,Button:()=>an,CheckBox:()=>Gs,Clipboard:()=>Ds,DeviceEventEmitter:()=>ua,Dimensions:()=>zs,Easing:()=>As,FlatList:()=>io,I18nManager:()=>Hs,Image:()=>Ks,ImageBackground:()=>Ys,InteractionManager:()=>Ns,Keyboard:()=>Ms,KeyboardAvoidingView:()=>Zs,LayoutAnimation:()=>Fs,Linking:()=>js,LogBox:()=>da,Modal:()=>nn,NativeEventEmitter:()=>$s,NativeModules:()=>Is,PanResponder:()=>Ws,Picker:()=>Qs,PixelRatio:()=>Vs,Platform:()=>Us,Pressable:()=>on,ProgressBar:()=>ea,RefreshControl:()=>ta,SafeAreaView:()=>ra,ScrollView:()=>dt,SectionList:()=>oa,Share:()=>_s,StatusBar:()=>na,StyleSheet:()=>fe,Switch:()=>sn,Text:()=>g,TextInput:()=>Pt,Touchable:()=>ia,TouchableHighlight:()=>tn,TouchableNativeFeedback:()=>sa,TouchableOpacity:()=>N,TouchableWithoutFeedback:()=>rn,UIManager:()=>Xs,Vibration:()=>Js,View:()=>c,VirtualizedList:()=>aa,YellowBox:()=>la,findNodeHandle:()=>ln,unstable_createElement:()=>ks,useColorScheme:()=>ca,useLocaleContext:()=>ha,useWindowDimensions:()=>en});import*as Rs from"react-native-web";import{unstable_createElement as ks,NativeModules as Is,AccessibilityInfo as Es,Animated as Ls,Appearance as Ps,AppRegistry as qs,AppState as Bs,BackHandler as Os,Clipboard as Ds,Dimensions as zs,Easing as As,I18nManager as Hs,Keyboard as Ms,InteractionManager as Ns,LayoutAnimation as Fs,Linking as js,NativeEventEmitter as $s,PanResponder as Ws,PixelRatio as Vs,Platform as Us,Share as _s,StyleSheet as fe,UIManager as Xs,Vibration as Js,CheckBox as Gs,FlatList as io,Image as Ks,ImageBackground as Ys,KeyboardAvoidingView as Zs,Picker as Qs,ProgressBar as ea,RefreshControl as ta,SafeAreaView as ra,SectionList as oa,StatusBar as na,Touchable as ia,TouchableNativeFeedback as sa,VirtualizedList as aa,YellowBox as la,LogBox as da,DeviceEventEmitter as ua,useColorScheme as ca,useLocaleContext as ha,useWindowDimensions as en}from"react-native-web";import*as Le from"react-native-web";import{createElement as pa,forwardRef as fa}from"react";function ze(e){let t=fa((o,n)=>{let{accessibilityState:i,accessibilityValue:s,...a}=o;for(let l of["busy","checked","disabled","expanded","selected"])i?.[l]!==void 0&&a[`aria-${l}`]===void 0&&(a[`aria-${l}`]=i[l]);for(let[l,u]of Object.entries({min:"valuemin",max:"valuemax",now:"valuenow",text:"valuetext"}))s?.[l]!==void 0&&a[`aria-${u}`]===void 0&&(a[`aria-${u}`]=s[l]);return pa(e,{...a,ref:n})}),r=e.State;return r&&Object.assign(t,{State:r}),t.displayName=e.displayName??e.name??"NativeWebView",t}var c,g,Pt,N,tn,rn,on,dt,nn,sn,so,an,ln,dn,ce=Qo(()=>{D();Ts(no,Rs);c=ze(Le.View),g=ze(Le.Text),Pt=ze(Le.TextInput),N=ze(Le.TouchableOpacity),tn=ze(Le.TouchableHighlight),rn=ze(Le.TouchableWithoutFeedback),on=ze(Le.Pressable),dt=ze(Le.ScrollView),nn=ze(Le.Modal),sn=ze(Le.Switch),so=ze(Le.ActivityIndicator),an=ze(Le.Button),ln=Le.findNodeHandle,dn={alert(e,t,r,o){if(typeof document>"u")return;let n=document.createElement("dialog");n.dataset.buoyRoot="",n.setAttribute("aria-label",e),n.style.cssText="position:fixed;inset:0;margin:auto;width:min(440px,90vw);padding:24px;border:1px solid #475569;border-radius:14px;background:#17212e;color:#f1f5f9;font:14px system-ui;box-shadow:0 20px 80px #0008;z-index:2147483647";let i=document.createElement("h2");if(i.textContent=e,i.style.cssText="font-size:18px;margin:0 0 12px",n.appendChild(i),t){let u=document.createElement("p");u.textContent=t,u.style.cssText="line-height:1.5;white-space:pre-wrap;margin:0 0 20px",n.appendChild(u)}let s=document.createElement("div");s.style.cssText="display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px";let a=r?.length?r:[{text:"OK"}],l=()=>{n.close?.(),n.remove()};for(let u of a){let b=document.createElement("button");b.type="button",b.textContent=u.text??"OK",b.style.cssText=`padding:9px 14px;border:1px solid #64748b;border-radius:7px;color:white;background:${u.style==="destructive"?"#a52b38":"#283a4d"};cursor:pointer;font:inherit`,b.onclick=()=>{l(),u.onPress?.()},s.appendChild(b)}n.addEventListener("cancel",u=>{u.preventDefault(),o?.cancelable!==false&&(l(),o?.onDismiss?.())}),n.appendChild(s),document.body.appendChild(n),n.showModal?n.showModal():n.setAttribute("open","")}}});D();D();D();ce();import{useSyncExternalStore as ga}from"react";import{NetworkIcon as ma}from"@buoy-gg/shared-ui/web";D();import{hasAccountAccess as un,subscribeAccountAccess as ya}from"@buoy-gg/shared-ui/web";D();D();function ur(e){if(typeof document>"u")return e;try{return new URL(e,document.baseURI).href}catch{return e}}D();var cn=globalThis;function cr(e){let t=cn.__BUOY_NETWORK_REQUEST_SEQUENCE__??(cn.__BUOY_NETWORK_REQUEST_SEQUENCE__={session:`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,next:0});return`${e}_${t.session}_${++t.next}`}D();D();D();function ue(){let e=globalThis.__buoyRealNow;return typeof e=="function"?e():Date.now()}function hn(){return globalThis.__buoyRealTimers??globalThis}function pn(e,t){return hn().setTimeout(e,t)}function hr(e){hn().clearTimeout(e)}var fn=2,gn=3,Wt=4,pr=e=>e,mn=false;function yn(e){let t=pr(e);return typeof t.setReadyState=="function"&&typeof t.setResponseHeaders=="function"}function ba(e){return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"&&typeof e.dispatchEvent=="function"}function va(){mn||(mn=true,typeof Ce<"u"&&Ce&&console.warn("[Buoy] Network overrides need an XMLHttpRequest they can drive (React Native's, or a standards EventTarget one) and this environment provides neither \u2014 requests will run normally."))}function bn(e,t,r){let o=pr(e);o.responseURL=t,o.status=r.status,o.statusText=r.statusText,o.setResponseHeaders?.(r.headers),o.setReadyState?.(fn),!o._aborted&&(o._responseType="text",o._response=r.body,o._cachedResponse=void 0,o.setReadyState?.(gn),!o._aborted&&o.setReadyState?.(Wt))}function vn(e,t){let r=pr(e),o=t.failKind==="timeout";r._hasError=true,r._timedOut=o,r._responseType="text",r._response=o?"Request timed out (Buoy override)":"Network request failed (Buoy override)",r._cachedResponse=void 0,r.setReadyState?.(Wt)}function Ge(e,t,r){Object.defineProperty(e,t,{value:r,configurable:true,enumerable:true,writable:false})}function Sa(e){if(e!=="readystatechange"&&typeof ProgressEvent=="function")try{return new ProgressEvent(e)}catch{}if(typeof Event=="function")try{return new Event(e)}catch{}return{type:e}}function ut(e,t){e.dispatchEvent(Sa(t))}function Vt(e,t){Ge(e,"readyState",t),ut(e,"readystatechange")}function xa(e,t){let r="";try{r=e.responseType}catch{}switch(r){case"":case"text":return t.body;case"json":try{return JSON.parse(t.body)}catch{return null}case"arraybuffer":return typeof TextEncoder=="function"?new TextEncoder().encode(t.body).buffer:t.body;case"blob":if(typeof Blob=="function"){let o=Object.entries(t.headers).find(([n])=>n.toLowerCase()==="content-type")?.[1]??"";return new Blob([t.body],{type:o})}return t.body;default:return t.body}}function wa(e,t,r,o){let n=r.headers,i=Object.entries(n).map(([s,a])=>`${s.toLowerCase()}: ${a}\r
2
+ `).join("");Ge(e,"getAllResponseHeaders",()=>i),Ge(e,"getResponseHeader",s=>{let a=String(s).toLowerCase();for(let[l,u]of Object.entries(n))if(l.toLowerCase()===a)return u;return null}),Ge(e,"responseURL",t),Ge(e,"status",r.status),Ge(e,"statusText",r.statusText),Ge(e,"response",xa(e,r)),Ge(e,"responseText",r.body),Vt(e,fn),!o()&&(Vt(e,gn),!o()&&(Vt(e,Wt),!o()&&(ut(e,"load"),ut(e,"loadend"))))}function ao(e,t){Vt(e,Wt),ut(e,t.failKind==="timeout"?"timeout":"error"),ut(e,"loadend")}var qt=new WeakMap;function Ta(e){return qt.has(e)}function Ca(e,t,r,o){let n=ue(),i={},s,a,l=false,u=false,b=false,E=e.timeout,C=e.abort,S=e.open,O=["abort","open","timeout","readyState","status","statusText","response","responseText","responseURL","getAllResponseHeaders","getResponseHeader"],p=new Map(O.map(P=>[P,Object.getOwnPropertyDescriptor(e,P)])),R=Object.getPrototypeOf(e),I;for(;R&&!I;)I=Object.getOwnPropertyDescriptor(R,"timeout"),R=Object.getPrototypeOf(R);let h=()=>{l=true,qt.get(e)===i&&qt.delete(e),clearTimeout(s),hr(a),e.removeEventListener("loadend",h)},L=()=>{h();for(let[P,T]of p)T?Object.defineProperty(e,P,T):delete e[P];e.timeout=E},z=()=>{hr(a),b?I?.set?.call(e,E>0?Math.max(1,E-(ue()-n)):0):E>0&&(a=pn(()=>{l||(clearTimeout(s),ao(e,{...r,kind:"fail",failKind:"timeout"}),h())},Math.max(0,E-(ue()-n))))};return Object.defineProperty(e,"timeout",{configurable:true,get:()=>E,set:P=>{E=Math.max(0,Number(P)||0),z()}}),Object.defineProperty(e,"open",{configurable:true,value:(...P)=>(L(),Reflect.apply(S,e,P))}),Object.defineProperty(e,"abort",{configurable:true,value:()=>{if(b||l){L(),C.call(e);return}u=true,clearTimeout(s),Vt(e,Wt),ut(e,"abort"),ut(e,"loadend"),h(),qt.has(e)||Ge(e,"readyState",0)}}),qt.set(e,i),e.addEventListener("loadend",h),z(),s=setTimeout(()=>{if(!(l||u)){if(r.kind==="delay"){b=true,z();try{o()}catch{ao(e,{...r,kind:"fail",failKind:"network"}),h()}return}r.kind==="fail"?ao(e,r):wa(e,t,r,()=>u||qt.get(e)!==i),h()}},r.delayMs),true}function Sn(e,t,r,o){if(!yn(e))return ba(e)?Ca(e,t,r,o):(va(),false);let n=pr(e);n._sent=true,n._requestId=null;let i=null,s=()=>{e.removeEventListener("abort",s),i!==null&&(clearTimeout(i),i=null)};return e.addEventListener("abort",s),i=setTimeout(()=>{if(i=null,e.removeEventListener("abort",s),!n._aborted){if(r.kind==="delay"){n._sent=false,o();return}if(r.kind==="fail"){vn(e,r);return}bn(e,t,r)}},r.delayMs),true}function Ra(e,t,r){r.kind==="fail"?vn(e,r):r.kind==="respond"&&bn(e,t,r)}function ka(e,t,r,o,n){if(!yn(e)){let T={id:"condition",enabled:true,urlPattern:t,kind:"delay",hits:0,seen:0,createdAt:Date.now()},x=r.profile==="offline"?{kind:"fail",rule:T,failKind:"network",delayMs:0}:o?{...o,delayMs:r.delayMs+o.delayMs}:{kind:"delay",rule:T,delayMs:r.delayMs};if(!Sn(e,t,x,n))throw new Error("Network conditions are unavailable for this XMLHttpRequest implementation.");return}let i=e;if(i.readyState!==1||i._sent)throw new Error("Request is not open or has already been sent.");let s=ue(),a=i.timeout,l=false,u=false,b,E,C=i.abort,S=i.open,O=Object.getOwnPropertyDescriptor(i,"abort"),p=Object.getOwnPropertyDescriptor(i,"open"),R=Object.getOwnPropertyDescriptor(i,"timeout"),I=(T,x)=>{x?Object.defineProperty(i,T,x):delete i[T]},h=()=>{l||(l=true,clearTimeout(E),hr(b),i.removeEventListener("loadend",h),I("abort",O),I("open",p),I("timeout",R),i.timeout=a)},L=T=>{l||(Object.assign(i,{readyState:4}),C.call(i),i._aborted=false,i._hasError=true,i._timedOut=T,i._response=T?"Request timed out (Buoy conditions)":"Network request failed (Buoy Offline)",i.setReadyState(4),h())},z=()=>a>0&&ue()-s>=a,P=()=>{hr(b),a>0&&(b=pn(()=>L(true),Math.max(0,a-(ue()-s))))};Object.defineProperty(i,"timeout",{configurable:true,get:()=>u?0:a,set:T=>{a=Math.max(0,Number(T)||0),P()}}),Object.defineProperty(i,"abort",{configurable:true,value:()=>{l||(C.call(i),h())}}),Object.defineProperty(i,"open",{configurable:true,value:(...T)=>{let x=Reflect.apply(S,i,T);return h(),x}}),i._sent=true,i._requestId=null,i.addEventListener("loadend",h),P(),E=setTimeout(()=>{if(!l){if(z()){L(true);return}if(r.profile==="offline"){L(false);return}if(o&&o.kind!=="delay"){Ra(i,t,o);return}i._sent=false,u=true;try{n()}catch{L(false)}finally{u=false}}},r.delayMs+(o?.delayMs??0))}D();function fr(e){if(!e?.aborted)return;if(e.reason!==void 0)throw e.reason;let t=new Error("The request was aborted.");throw t.name="AbortError",t}function Ia(e,t){return new Promise((r,o)=>{try{fr(t)}catch(a){o(a);return}let n=()=>t?.removeEventListener("abort",i),i=()=>{clearTimeout(s),n();try{fr(t)}catch(a){o(a)}},s=setTimeout(()=>{n(),r()},e);t?.addEventListener("abort",i,{once:true})})}D();import{hasAccountAccess as Ea}from"@buoy-gg/shared-ui/web";D();D();var La="[]{}()\\.^$+|-,?";function xn(e){let t="";for(let r=0;r<e.length;r++){let o=e.charAt(r);La.indexOf(o)!==-1&&(t+="\\"),t+=o}return t.split("*").join(".*")}var gr=new Map;function Pa(e){let t=gr.get(e);if(t)return t;let r=e.startsWith("/")?`[a-zA-Z][a-zA-Z0-9+.-]*://[^/]*${xn(e)}`:xn(e),o=new RegExp(`^${r}$`);return gr.size>200&&gr.clear(),gr.set(e,o),o}function qa(e,t){if(!e)return false;let r=t.toLowerCase();for(let o of Object.keys(e))if(o.toLowerCase()===r&&e[o]!==void 0&&e[o]!=="")return true;return false}function lo(e,t,r,o){if(e.methods&&e.methods.length>0&&!e.methods.includes(r.toUpperCase())||e.requireHeader&&!qa(o,e.requireHeader))return false;try{return Pa(e.urlPattern).test(t)}catch{return false}}D();import{TIER_LIMITS as Ba}from"@buoy-gg/shared-ui/web";var Ut=200,_t=599,tt=50,wn=Ba["network.overrideRules"].free;function Tn(e){return{ruleId:e.rule.id,ruleName:e.rule.name,kind:e.kind,delayMs:e.delayMs||void 0}}var Oa=[/(^|\.)keygen\.sh/i,/^https?:\/\/(www\.)?buoy\.gg\/api\/license(\/|$)/i];function Da(e){return Oa.some(t=>t.test(e))}function za(e){let t=e.trim();if(t==="")return"text/plain; charset=utf-8";if(t.startsWith("{")||t.startsWith("["))try{return JSON.parse(t),"application/json"}catch{}return"text/plain; charset=utf-8"}function Aa(e,t){let r=t.toLowerCase();return Object.keys(e).some(o=>o.toLowerCase()===r)}function Ha(e){let t=Math.max(0,e.delayMs??0);if(e.kind==="delay")return{kind:"delay",rule:e,delayMs:t};if(e.kind==="fail")return{kind:"fail",rule:e,delayMs:t,failKind:e.failKind??"network"};let r=e.body??"",o={...e.headers??{}};return Aa(o,"content-type")||(o["content-type"]=za(r)),{kind:"respond",rule:e,delayMs:t,status:Math.min(_t,Math.max(Ut,e.status??200)),statusText:e.statusText??"",headers:o,body:r}}function uo(e){return typeof e.times=="number"&&e.hits>=e.times}function Ma(e){return e.alternate?e.seen%2===1:true}function Cn(e,t,r,o){if(r.length===0||t.toUpperCase()==="OPTIONS"||Da(e))return null;for(let n of r)if(n.enabled&&!uo(n)&&lo(n,e,t,o))return n;return null}var Fe=null;function Na(e){Fe=e}function Rn(){return Ea()&&!(typeof Ce<"u"&&!Ce)}var Fa="Response overrides never apply in a release build \u2014 the rule is saved but will not affect any request.";function ja(e,t){return{hooksInstalled:Fe!==null,devFlag:typeof Ce>"u"?"undefined":Ce,ruleCount:Fe?Fe.getRules().length:0,matches:Fe?Cn(e,t,Fe.getRules())!==null:false}}function kn(e,t,r){if(!Fe||!Rn())return null;let o=Fe.getRules();if(o.length===0)return null;let n=Cn(e,t,o,r);if(!n)return null;let i=Ma(n);return Fe.recordMatch(n.id),i?(Fe.recordHit(n.id),Ha(n)):null}D();function $a(){return typeof Response=="function"}function Wa(e,t){let r=new Response(t.body,{status:t.status,statusText:t.statusText,headers:t.headers});try{Object.defineProperty(r,"url",{value:e,configurable:true})}catch{}return r}function Va(e){return new TypeError(e.failKind==="timeout"?"Network request timed out":"Network request failed")}D();var Ua={400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",408:"Request Timeout",429:"Too Many Requests",500:"Internal Server Error",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout"};function _a(e){return typeof e=="number"&&e>0?"response":"error"}function Xa(e,t){let r=(t??"").trim();return r||(Ua[e]??"")}var ct;function In(e){let t=globalThis.__buoyHeaderInjectors;if(!t||t.length===0)return;let r;for(let o of t)try{let n=o(e);n&&(r={...r,...n})}catch{}return r}function Ja(){if(ct!==void 0)return ct;ct=null;try{if(typeof Ce<"u"&&!Ce)return ct;let e=(ce(),Cs(no))?.NativeModules?.SourceCode,t=e?.getConstants?.().scriptURL??e?.scriptURL;if(typeof t=="string"&&/^https?:\/\//.test(t)){let r=new URL(t);ct=`${r.protocol}//${r.host}`}}catch{ct=null}return ct}var mr=false;function Ga(e){let t={};if(!e)return t;if(typeof Headers<"u"&&e instanceof Headers)e.forEach((r,o)=>{t[o]=r});else if(Array.isArray(e))for(let[r,o]of e)t[r]=o;else Object.assign(t,e);return t}var En="__buoyNetworkFetchIntercepted",Ln="__buoyNetworkXhrIntercepted",Ka=["text/event-stream","application/x-ndjson","application/stream+json"],Pn="[streaming\u2026]";function Ya(e){if(!e)return false;let t=e.toLowerCase();return Ka.some(r=>t.includes(r))}var Za="__BUOY_INTERNAL_HOSTS__";function Qa(e){let t=globalThis[Za];if(!(t instanceof Set)||t.size===0)return false;let r;try{r=new URL(e).host.toLowerCase()}catch{return false}for(let o of t)if(typeof o=="string"&&o&&r===o.toLowerCase())return true;return false}var el=class{constructor(){this.listeners=[];this.isListening=false;this.patchedFetch=null;this.patchedXHROpen=null;this.patchedXHRSend=null;this.patchedXHRSetRequestHeader=null;this.fetchGeneration=0;this.xhrGeneration=0;this.originalFetch=globalThis.fetch,this.originalXHROpen=XMLHttpRequest.prototype.open,this.originalXHRSend=XMLHttpRequest.prototype.send,this.originalXHRSetRequestHeader=XMLHttpRequest.prototype.setRequestHeader}shouldIgnoreUrl(e){try{let t=new URL(e);if(t.hostname==="keygen.sh"||t.hostname.endsWith(".keygen.sh")||(t.hostname==="buoy.gg"||t.hostname==="www.buoy.gg")&&t.pathname.startsWith("/api/license")||(t.hostname==="localhost"||t.hostname==="127.0.0.1"||t.hostname==="10.0.2.2")&&["8081","8802"].includes(t.port))return true;let r=Ja();if(r&&`${t.protocol}//${t.host}`===r)return true}catch{return false}return Qa(e)}emit(e){this.listeners.forEach(t=>{try{t(e)}catch{}})}parseUrl(e){let t=null,r=e.indexOf("?");return r>-1&&(t={},e.substring(r+1).split("&").forEach(o=>{let[n,i]=o.split("=");n&&i!==void 0&&(t[n]=decodeURIComponent(i.replace(/\+/g," ")))})),{url:r>-1?e.substring(0,r):e,params:t}}async readStreamedBody(e,t=256*1024){let r=e.body;if(!r||typeof r.getReader!="function"){let l=await e.text();return l.length>t?{body:`${l.slice(0,t)}
4
3
 
5
- ... [truncated]`,size:p.length}:{body:p,size:p.length}}let i=o.getReader(),n=new TextDecoder,s="",a=0,l=!1;try{for(;;){let{done:p,value:c}=await i.read();if(p)break;if(a+=c?.byteLength??0,!l&&(s+=n.decode(c,{stream:!0}),a>=r)){s=`${s.slice(0,r)}
4
+ ... [truncated]`,size:l.length}:{body:l,size:l.length}}let o=r.getReader(),n=new TextDecoder,i="",s=0,a=false;try{for(;;){let{done:l,value:u}=await o.read();if(l)break;if(s+=u?.byteLength??0,!a&&(i+=n.decode(u,{stream:true}),s>=t)){i=`${i.slice(0,t)}
6
5
 
7
- ... [truncated]`,l=!0;break}}l||(s+=n.decode())}finally{try{Promise.resolve(i.cancel()).catch(()=>{})}catch{}try{i.releaseLock()}catch{}}return{body:s,size:a}}async processResponseBody(e,r=1024*1024){try{let o=e.headers.get("content-length");if(o){let s=parseInt(o,10);if(!isNaN(s)&&s>r)return{body:`[Response too large: ${this.formatBytes(s)}]`,size:s,truncated:!0}}let i=await e.text(),n=i.length;if(n>r){let s=i.substring(0,r),a=n-r;return{body:`${s}
6
+ ... [truncated]`,a=true;break}}a||(i+=n.decode())}finally{try{Promise.resolve(o.cancel()).catch(()=>{})}catch{}try{o.releaseLock()}catch{}}return{body:i,size:s}}async processResponseBody(e,t=1024*1024){try{let r=e.headers.get("content-length");if(r){let i=parseInt(r,10);if(!isNaN(i)&&i>t)return{body:`[Response too large: ${this.formatBytes(i)}]`,size:i,truncated:true}}let o=await e.text(),n=o.length;if(n>t){let i=o.substring(0,t),s=n-t;return{body:`${i}
8
7
 
9
- ... [truncated, ${this.formatBytes(a)} omitted]`,size:n,truncated:!0}}try{return{body:JSON.parse(i),size:n,truncated:!1}}catch{return{body:i,size:n,truncated:!1}}}catch{return{body:"~~~ unable to read body ~~~",size:0,truncated:!1}}}formatBytes(e){if(e===0)return"0 B";let r=1024,o=["B","KB","MB","GB"],i=Math.floor(Math.log(e)/Math.log(r));return`${Math.round(e/Math.pow(r,i)*100)/100} ${o[i]}`}handleXHRResponse(e,r,o,i,n,s,a,l,p=!1,c="xhr",x,O){let E=l?Date.now()-l:0,P=e._buoyTtfb,N=P===void 0?void 0:{ttfb:P,download:Math.max(0,E-P)};if(p||e.status===0){this.emit({type:"error",timestamp:new Date,duration:E,request:{id:r||"unknown",url:o,method:i,headers:n,data:s,params:a||void 0,client:c},error:{message:p?"Request failed":"Network error or request aborted"},override:x,condition:O});return}let w,R=0;try{let v=e.response;if(e.responseType==="json"&&v)w=v,R=JSON.stringify(v).length;else if(e.responseType===""||e.responseType==="text"){if(e.responseText){R=e.responseText.length;try{w=JSON.parse(e.responseText)}catch{w=e.responseText}}}else if(e.responseType==="arraybuffer")if(v)try{let A=new TextDecoder("utf-8").decode(v);R=A.length;try{w=JSON.parse(A)}catch{w=A}}catch{w=`[arraybuffer response - ${v.byteLength||0} bytes]`,R=v.byteLength||0}else w="[arraybuffer response - no data]",R=0;else if(e.responseType==="blob")if(v instanceof Blob)w=`[blob response - ${v.size} bytes, type: ${v.type||"unknown"}]`,R=v.size;else if(v)try{w=typeof v=="string"?JSON.parse(v):v,R=JSON.stringify(w).length}catch{w="[blob response - unable to parse]",R=0}else w="[blob response - no data]",R=0;else if(v)if(typeof v=="string"){w=v,R=v.length;try{w=JSON.parse(v)}catch{}}else typeof v=="object"?(w=v,R=JSON.stringify(v).length):(w=String(v),R=String(v).length)}catch{w="~~~ unable to read body ~~~"}let S={};try{let v=e.getAllResponseHeaders();v&&v.split(`\r
10
- `).forEach(A=>{if(A){let H=A.indexOf(": ");if(H>0){let L=A.substring(0,H).toLowerCase(),m=A.substring(H+2);S[L]=m}}})}catch{}Jn(e.status)==="response"?this.emit({type:"response",timestamp:new Date,duration:E,timings:N,request:{id:r||"unknown",url:o,method:i,headers:n,data:s,params:a||void 0,client:c},response:{status:e.status,statusText:Gn(e.status,e.statusText),headers:S,body:w,size:R},override:x,condition:O}):this.emit({type:"error",timestamp:new Date,duration:E,request:{id:r||"unknown",url:o,method:i,headers:n,data:s,params:a||void 0,client:c},response:{status:e.status,statusText:e.statusText,headers:S,body:w,size:R},error:{message:"Network Error"},override:x,condition:O})}isFetchInterceptionLive(){return globalThis.fetch[Yn]===!0}isXhrInterceptionLive(){return XMLHttpRequest.prototype.send[Qn]===!0}isInterceptionLive(){return this.isFetchInterceptionLive()&&this.isXhrInterceptionLive()}startListening(){let e=this.isListening&&this.isFetchInterceptionLive(),r=this.isListening&&this.isXhrInterceptionLive();e&&r||(e||this.installFetchInterceptor(),r||this.installXhrInterceptor(),this.isListening=!0)}installFetchInterceptor(){let e=this,r=globalThis.fetch.bind(globalThis);this.originalFetch=globalThis.fetch;let o=++this.fetchGeneration,i=async(n,s)=>{let a=Ro(typeof n=="string"?n:n instanceof URL?n.href:n.url);if(o!==e.fetchGeneration||e.shouldIgnoreUrl(a))return r(n,s);let l=Date.now(),p=Co("fetch"),c=typeof n=="object"&&"method"in n?n:void 0,x=s?.method??c?.method??"GET",O=s?.signal!==void 0?s.signal:c?.signal;lr(O);let E=Mo(a),{url:P,params:N}=e.parseUrl(a),w={},R=s?.headers??c?.headers;R&&(R instanceof Headers?R.forEach((L,m)=>{w[m]=L}):Array.isArray(R)?R.forEach(([L,m])=>{w[L]=m}):w={...R}),Object.assign(w,Kn(a));let S;if(s?.body)if(typeof s.body=="string")try{S=JSON.parse(s.body)}catch{S=s.body}else S=s.body;let v=w["X-Request-Client"]||w["x-request-client"]||"fetch",A=E?.profile!=="offline"&&Un()?Bo(a,x):null,H=A?Io(A):void 0;if(e.emit({type:"request",timestamp:new Date,request:{id:p||"unknown",url:P,method:x,headers:w,data:S,params:N||void 0,client:v},override:H,condition:E}),s?.body===void 0&&c?.body&&!c.bodyUsed)try{let L=c.clone();e.readStreamedBody(L).then(({body:m})=>{try{S=JSON.parse(m)}catch{S=m}e.emit({type:"request-body",timestamp:new Date,request:{id:p||"unknown",url:P,method:x,data:S,client:v}})}).catch(()=>{})}catch{}try{if((E||A)&&await Hn((E?.delayMs??0)+(A?.delayMs??0),O),lr(O),E?.profile==="offline")throw new TypeError("Network request failed (Buoy Offline)");if(A?.kind==="fail")throw Xn(A);let L;if(A?.kind==="respond")L=jn(a,A);else{let re=Ir;Ir=!0;let X;try{X=r(n,s)}finally{Ir=re}L=await X}let m=Date.now()-l,y=typeof L.body?.getReader=="function"||hl(L.headers?.get?.("content-type")),k=L.clone(),{body:d,size:b}=y?{body:ml,size:0}:await e.processResponseBody(k),h=Date.now()-l,M=Math.max(0,h-m),ae=M>0?{ttfb:m,download:M}:void 0,pe={};return L.headers.forEach((re,X)=>{pe[X.toLowerCase()]=re}),e.emit({type:"response",timestamp:new Date,duration:h,timings:ae,request:{id:p||"unknown",url:P,method:x,headers:w,data:S,params:N||void 0,client:v},response:{status:L.status,statusText:L.statusText,headers:pe,body:d,size:b},override:H,condition:E}),y&&e.readStreamedBody(k).then(re=>{let X=re.body;if(L.headers?.get?.("content-type")?.includes("json"))try{X=JSON.parse(re.body)}catch{}e.emit({type:"response",timestamp:new Date,duration:Date.now()-l,timings:ae,request:{id:p||"unknown",url:P,method:x,headers:w,data:S,params:N||void 0,client:v},response:{status:L.status,statusText:L.statusText,headers:pe,body:X,size:re.size},override:H,condition:E})}).catch(()=>{}),L}catch(L){let m=Date.now()-l;throw e.emit({type:"error",timestamp:new Date,duration:m,request:{id:p||"unknown",url:P,method:x,headers:w,data:S,params:N||void 0,client:v},error:{message:L instanceof Error?L.message:"Network error",stack:L instanceof Error?L.stack:void 0},override:H,condition:E}),L}};i[Yn]=!0,this.patchedFetch=i,globalThis.fetch=this.patchedFetch}installXhrInterceptor(){let e=this,r=XMLHttpRequest.prototype.open,o=XMLHttpRequest.prototype.send,i=XMLHttpRequest.prototype.setRequestHeader;this.originalXHROpen=r,this.originalXHRSend=o,this.originalXHRSetRequestHeader=i;let n=++this.xhrGeneration,s=new WeakMap,a=function(c,x,O,E,P){let N=r.call(this,c,x,O??!0,E,P);if(n===e.xhrGeneration){s.get(this)?.();let w=this;w._buoyRequestId=Co("xhr"),w._method=c,w._url=Ro(x),w._buoyStartTime=Date.now(),w._requestHeaders={}}return N},l=function(c,x){let O=this;return n===e.xhrGeneration&&O._requestHeaders&&(O._requestHeaders[c]=x),i.call(this,c,x)},p=function(c){if(n!==e.xhrGeneration||Ir)return o.call(this,c);if(Mn(this))throw new DOMException("The request has already been sent.","InvalidStateError");if(this.readyState!==1||this._sent)return o.call(this,c);let x=this,O=x._buoyRequestId,E=x._method||"GET",P=x._url||"",N=Date.now();x._buoyStartTime=N,x._buoyTtfb=void 0;let w=x._requestHeaders||{};if(Object.assign(w,Kn(P)),e.shouldIgnoreUrl(P))return o.call(this,c);let{url:R,params:S}=e.parseUrl(P),v;if(c)if(typeof c=="string")try{v=JSON.parse(c)}catch{v=c}else v=c;let A=w["X-Request-Client"]||w["x-request-client"],H=w.Accept||w.accept||"",L=H.includes("application/json")&&H.includes("text/plain")&&H.includes("*/*"),m=A||(L?"axios":"xhr"),y=Mo(P),k=y?.profile==="offline"?null:Bo(P,E),d=k?Io(k):void 0;e.emit({type:"request",timestamp:new Date,request:{id:O||"unknown",url:R,method:E,headers:w,data:v,params:S||void 0,client:m},override:d,condition:y});let b=!1,h=(ie=!1)=>{b||(b=!0,e.handleXHRResponse(this,O||"unknown",R,E,w,v,S,N||0,ie,m,d,y),M())},M=()=>{s.delete(this),this.removeEventListener("load",ae),this.removeEventListener("error",pe),this.removeEventListener("abort",re),this.removeEventListener("readystatechange",X)};s.set(this,M);let ae=()=>{h(!1)},pe=()=>{h(!0)},re=()=>{h(!0)},X=()=>{if(this.readyState===2){let ie=this;ie._buoyTtfb===void 0&&ie._buoyStartTime&&(ie._buoyTtfb=Date.now()-ie._buoyStartTime)}this.readyState===4&&!b&&h(!1)};if(this.addEventListener("load",ae),this.addEventListener("error",pe),this.addEventListener("abort",re),this.addEventListener("readystatechange",X),y){An(this,P,y,k,()=>o.call(this,c));return}if(!(k&&Nr(this,P,k,()=>o.call(this,c))))return o.call(this,c)};p[Qn]=!0,this.patchedXHROpen=a,this.patchedXHRSend=p,this.patchedXHRSetRequestHeader=l,XMLHttpRequest.prototype.open=this.patchedXHROpen,XMLHttpRequest.prototype.send=this.patchedXHRSend,XMLHttpRequest.prototype.setRequestHeader=this.patchedXHRSetRequestHeader}stopListening(){this.isListening&&(this.fetchGeneration++,this.xhrGeneration++,this.patchedFetch&&globalThis.fetch===this.patchedFetch&&(globalThis.fetch=this.originalFetch),this.patchedXHROpen&&XMLHttpRequest.prototype.open===this.patchedXHROpen&&(XMLHttpRequest.prototype.open=this.originalXHROpen),this.patchedXHRSend&&XMLHttpRequest.prototype.send===this.patchedXHRSend&&(XMLHttpRequest.prototype.send=this.originalXHRSend),this.patchedXHRSetRequestHeader&&XMLHttpRequest.prototype.setRequestHeader===this.patchedXHRSetRequestHeader&&(XMLHttpRequest.prototype.setRequestHeader=this.originalXHRSetRequestHeader),this.patchedFetch=null,this.patchedXHROpen=null,this.patchedXHRSend=null,this.patchedXHRSetRequestHeader=null,this.isListening=!1)}addListener(e){return this.listeners.push(e),()=>{let r=this.listeners.indexOf(e);r>-1&&this.listeners.splice(r,1)}}removeAllListeners(){this.listeners=[]}get isActive(){return this.isListening}get listenerCount(){return this.listeners.length}},ht=null,Do=()=>(ht||(ht=new qo),ht),ur=Do,Pr=()=>Do().startListening(),yt=()=>ht?.stopListening(),bt=t=>Do().addListener(t),wl=()=>ht?.removeAllListeners(),Ao=()=>ht?.isActive??!1,je=()=>ht?.listenerCount??0,Zn=()=>ht?.isInterceptionLive()??!1;var jt={normal:{label:"Normal",delayMs:0},offline:{label:"Offline (requests)",delayMs:0},slow:{label:"Slow (+500 ms)",delayMs:500},verySlow:{label:"Very slow (+2000 ms)",delayMs:2e3}},qr=`${Date.now()}-${Math.random().toString(36).slice(2)}`,wt="normal",Lr,Br=new Set,at=()=>typeof I<"u"&&I&&ei(),Ye=()=>wt,vt=t=>(Br.add(t),()=>{Br.delete(t)});function Xt(t){if(typeof t!="string"||!Object.prototype.hasOwnProperty.call(jt,t))throw new Error("Choose normal, offline, slow, or verySlow.");if(t!=="normal"&&!at())throw new Error("Network conditions require an admitted account and a development build.");return t===wt||(t!=="normal"&&!Lr?(Pr(),Lr=bt(()=>{})):t==="normal"&&(Lr?.(),Lr=void 0,je()===0&&yt()),wt=t,Br.forEach(e=>e())),wt}function Mo(t){if(!(wt==="normal"||!at()||!/^https?:\/\//i.test(t)))return Object.freeze({profile:wt,delayMs:jt[wt].delayMs})}vl(()=>{ei()||Xt("normal"),Br.forEach(t=>t())});import{jsx as ti,jsxs as xl}from"react/jsx-runtime";function ri({size:t}){let e=Sl(vt,Ye,Ye);return xl(u,{accessibilityLabel:e==="normal"?"Network":`Network: ${jt[e].label}`,children:[ti(kl,{size:t}),e!=="normal"&&ti(f,{testID:"buoy-network-condition-indicator",style:{position:"absolute",top:-6,right:-8,color:"#FFCC66",fontSize:10,fontWeight:"700"},children:e==="offline"?"OFF":`+${jt[e].delayMs}`})]})}import{createToolFactory as fp,defineToolPreset as gp}from"@buoy-gg/shared-ui/web";g();g();he();import{useEffect as oi,useRef as Ho,useState as ni,useSyncExternalStore as zo}from"react";import{FloatingTool as Rl,night as Ie,openFloatingTool as Tl,persistentStorage as Cl,registerPersistentFloatingTool as El}from"@buoy-gg/shared-ui/web";import{jsx as Oe,jsxs as si}from"react/jsx-runtime";function ai(){let t,e=new Set;return{getSnapshot:()=>t,subscribe:r=>(e.add(r),()=>{e.delete(r)}),update(r){t=r,e.forEach(o=>o())}}}var Nl=()=>()=>{},ii=()=>{},Mr=[{id:"normal",label:"No throttling",detail:"No added delay"},{id:"slow",label:"Slow",detail:"+500 ms before sending"},{id:"verySlow",label:"Very slow",detail:"+2 seconds before sending"},{id:"offline",label:"Offline",detail:"New requests fail"}],Ol={id:"network-throttling",render:t=>Oe(di,{...t})};typeof I<"u"&&I&&typeof navigator<"u"&&navigator.product==="ReactNative"&&El(Ol,Cl);function li(t){Tl({id:"network-throttling",render:e=>Oe(di,{...e,source:t})})}function di({id:t,revealToken:e,dismiss:r,source:o}){let i=zo(vt,Ye,Ye),n=zo(vt,at,at),s=zo(o?.subscribe??Nl,o?.getSnapshot??ii,ii),a=o?s?.profile??null:i,l=o?s?.available===!0:n,[p,c]=ni(!1),[x,O]=ni(),E=Ho(!1),P=Ho(0),N=Ho(!0),{width:w}=xo();oi(()=>(N.current=!0,()=>{N.current=!1}),[]),oi(()=>{P.current+=1,E.current=!1,c(!1),O(void 0)},[o,s?.targetId]);let R=a!==null&&a!=="normal",S=a??"normal",v=Mr.find(k=>k.id===S),A=Mr[(Mr.findIndex(k=>k.id===S)+1)%Mr.length],H=!l||S==="offline"?0:S==="verySlow"?1:S==="slow"?2:4,L=p?"Applying\u2026":l?S==="normal"?"0 ms":S==="slow"?"+500 ms":S==="verySlow"?"+2000 ms":"Blocked":"Unavailable";async function m(k,d=!1){if(E.current)return;let b=++P.current;E.current=!0,c(!0),O(void 0);let h=o?.getSnapshot();try{if(o){if(!h?.available)throw new Error("Device unavailable. Open Network again to reconnect these controls.");await h.onChange(k)}else Xt(k);N.current&&P.current===b&&d&&r()}catch(M){N.current&&P.current===b&&O(M instanceof Error?M.message:String(M))}finally{P.current===b&&(E.current=!1,N.current&&c(!1))}}let y=x?Oe(u,{style:qe.menu,children:Oe(f,{accessibilityRole:"alert",style:qe.error,children:x})}):void 0;return Oe(Rl,{id:t,revealToken:e,variant:"strip",dragFromSurface:!0,accessibilityLabel:`Move or hide network throttling. ${R?"Active":"Off"}`,accessory:y,children:si(u,{style:[qe.row,{width:Math.max(220,Math.min(292,w-64))}],children:[Oe(D,{testID:"throttling-cycle",accessibilityRole:"button",accessibilityLabel:`Network: ${v.label}. Switch to ${A.label}`,accessibilityState:{disabled:p||!l},disabled:p||!l,onPress:()=>void m(A.id),style:qe.signalButton,children:p?Oe(ko,{size:"small",color:Ie.color.accent}):si(u,{testID:`throttling-signal-${S}`,style:qe.signal,children:[[7,12,18,24].map((k,d)=>Oe(u,{style:{width:4,height:k,borderRadius:2,backgroundColor:d<H?S==="offline"?Ie.color.danger:Ie.color.accent:Ie.color.fillTertiary}},k)),S==="offline"&&Oe(u,{style:qe.slash})]})}),Oe(u,{style:qe.profile,children:Oe(f,{testID:"throttling-profile",accessibilityLabel:`Connection profile: ${v.label}`,accessibilityLiveRegion:"polite",numberOfLines:1,style:qe.profileLabel,children:v.label})}),Oe(f,{testID:"throttling-status",numberOfLines:1,accessibilityLiveRegion:"polite",style:qe.status,children:L}),Oe(u,{style:qe.separator}),Oe(D,{testID:"throttling-close",accessibilityRole:"button",accessibilityLabel:"Close and turn off throttling",disabled:p,accessibilityState:{disabled:p},onPress:()=>{a==="normal"?r():m("normal",!0)},style:[qe.action,p&&qe.disabled],children:Oe(f,{style:qe.actionText,children:"Close"})})]})})}var qe=K.create({row:{flexDirection:"row",alignItems:"center",gap:6,paddingVertical:4,minHeight:48},signalButton:{width:36,minHeight:44,alignItems:"center",justifyContent:"center"},signal:{flexDirection:"row",alignItems:"flex-end",gap:3,height:24},slash:{position:"absolute",width:30,height:2,backgroundColor:Ie.color.danger,top:11,left:-2,transform:[{rotate:"-45deg"}]},separator:{height:20,width:1,backgroundColor:Ie.color.separator,marginHorizontal:2},status:{color:Ie.color.textSecondary,fontSize:10,lineHeight:15,flexShrink:1},profile:{flex:1,flexDirection:"row",alignItems:"center",gap:6,minHeight:44},profileLabel:{color:Ie.color.text,fontSize:13,fontWeight:"500",flexShrink:1},action:{minHeight:36,minWidth:52,borderRadius:Ie.radius.input,borderWidth:1,borderColor:Ie.color.accentBorderStrong,alignItems:"center",justifyContent:"center",paddingHorizontal:10},actionText:{color:Ie.color.accent,fontSize:12,fontWeight:"600"},disabled:{opacity:.4},menu:{marginVertical:8,padding:6,borderRadius:Ie.radius.card,borderWidth:1,borderColor:Ie.color.separator,backgroundColor:Ie.color.surface,shadowColor:"#000",shadowOffset:{width:0,height:6},shadowOpacity:.25,shadowRadius:16,elevation:8},error:{color:Ie.color.danger,fontSize:12,lineHeight:18,padding:10}});he();import{useState as Re,useRef as uo,useEffect as Ft,useCallback as gn}from"react";import{Search as Gc,Wifi as Kc,Filter as Yc,Bookmark as Qc,JsModal as Zc,ModalHeader as be,devToolsStorageKeys as co,macOSColors as ep,night as ct,persistentStorage as Ts,NightSegmented as tp,useFeatureGate as rp,UpgradeModal as op,PowerToggleButton as np,useIgnoredPatterns as ip,windowDragProps as sp}from"@buoy-gg/shared-ui/web";g();he();import{CheckCircle as Il,Clock as Pl,DynamicFilterView as Ll,Film as Bl,FileJson as ql,FileText as Ml,Filter as ui,Globe as pi,Image as Dl,macOSColors as we,night as Me,Music as Al,XCircle as Hl,monoFont as Vo}from"@buoy-gg/shared-ui/web";import{useCallback as Dr,useMemo as Qe,useState as zl}from"react";import{jsx as Bt,jsxs as ci}from"react/jsx-runtime";function Fo(t){let e=t.responseHeaders||t.requestHeaders,r=e?.["content-type"]||e?.["Content-Type"]||"";return r.includes("json")?{type:"JSON",color:we.semantic.info}:r.includes("xml")?{type:"XML",color:we.semantic.success}:r.includes("html")?{type:"HTML",color:we.semantic.warning}:r.includes("text")?{type:"TEXT",color:we.semantic.success}:r.includes("image")?{type:"IMAGE",color:we.semantic.error}:r.includes("video")?{type:"VIDEO",color:we.semantic.error}:r.includes("audio")?{type:"AUDIO",color:we.semantic.debug}:r.includes("form")?{type:"FORM",color:we.semantic.info}:{type:"OTHER",color:Me.color.textTertiary}}function Vl(t){switch(t){case"JSON":return ql;case"HTML":case"XML":case"TEXT":return Ml;case"IMAGE":return Dl;case"VIDEO":return Bl;case"AUDIO":return Al;default:return pi}}function Fl(t){switch(t){case"GET":return we.semantic.success;case"POST":return we.semantic.info;case"PUT":return we.semantic.warning;case"DELETE":return we.semantic.error;case"PATCH":return we.semantic.success;default:return Me.color.textTertiary}}function fi({events:t,filter:e,onFilterChange:r,ignoredPatterns:o=[],onRemovePattern:i=()=>{},onAddPattern:n=()=>{},onTogglePatternMode:s=()=>{}}){let[a,l]=zl("contains"),p=Qe(()=>{let m=new Map;for(let y of o)m.set(y.value,y.mode);return m},[o]),c=Qe(()=>new Set(o.map(m=>m.value)),[o]),x=Dr(m=>{n({value:m,mode:a})},[n,a]),O=Dr(m=>{let y=p.get(m)??"contains",k=y==="exact",d=k?Me.color.warning:Me.color.info;return Bt(D,{accessibilityRole:"button",accessibilityLabel:`Match mode: ${y}. Tap to toggle.`,onPress:()=>s(m),style:[Ze.modeBadge,{borderColor:`${d}60`,backgroundColor:`${d}15`}],hitSlop:{top:6,bottom:6,left:6,right:6},children:Bt(f,{style:[Ze.modeBadgeText,{color:d}],children:k?"EXACT":"CONTAINS"})})},[p,s]),E=Dr(()=>{let m=[{label:"Contains",value:"contains",hint:"substring"},{label:"Exact",value:"exact",hint:"whole path/host/url"}];return ci(u,{style:Ze.modeToggleRow,children:[Bt(f,{style:Ze.modeToggleLabel,children:"Match:"}),Bt(u,{style:Ze.modeToggleGroup,children:m.map(y=>{let k=a===y.value;return ci(D,{onPress:()=>l(y.value),style:[Ze.modeToggleButton,k&&Ze.modeToggleButtonActive],accessibilityRole:"button",accessibilityState:{selected:k},children:[Bt(f,{style:[Ze.modeToggleButtonText,k&&Ze.modeToggleButtonTextActive],children:y.label}),Bt(f,{style:Ze.modeToggleButtonHint,children:y.hint})]},y.value)})})]})},[a]),P=Qe(()=>{let m={all:t.length,success:0,error:0,pending:0};return t.forEach(y=>{if(y.error||y.status&&y.status>=400){m.error+=1;return}if(y.status&&y.status>=200&&y.status<300){m.success+=1;return}!y.status&&!y.error&&(m.pending+=1)}),m},[t]),N=Qe(()=>t.reduce((m,y)=>(y.method&&(m[y.method]=(m[y.method]||0)+1),m),{}),[t]),w=Qe(()=>t.reduce((m,y)=>{let{type:k}=Fo(y);return m[k]=(m[k]||0)+1,m},{}),[t]),R=Qe(()=>{let m=new Set;return t.forEach(y=>{if(y.host){m.add(y.host);return}try{if(y.url){let k=new URL(y.url),d=String(k.host||"");d&&m.add(d)}}catch{}}),Array.from(m).filter(y=>y&&y!=="").sort((y,k)=>y.localeCompare(k))},[t]),S=Qe(()=>{let m=new Set;return t.forEach(y=>{if(y.url)try{let k=new URL(y.url),d=String(k.origin||""),b=String(k.pathname||""),h=`${d}${b}`;m.add(h)}catch{m.add(y.url)}}),Array.from(m).filter(y=>y&&y!=="").sort((y,k)=>y.localeCompare(k))},[t]),v=Qe(()=>{let y=R.slice(0,30),k=S.slice(0,30);return[...y,...k]},[R,S]),A=Dr((m,y)=>{let[k]=m.split("::");if(k==="status"){r({...e,status:y==="all"?void 0:y});return}if(k==="method"){let d=String(y),b=e.method||[],M=b.includes(d)?b.filter(ae=>ae!==d):[d];r({...e,method:M.length>0?M:void 0});return}if(k==="contentType"){let d=String(y),b=e.contentType||[],M=b.includes(d)?b.filter(ae=>ae!==d):[d];r({...e,contentType:M.length>0?M:void 0})}},[e,r]),H=Qe(()=>{let m=[];m.push({id:"status",title:"Status",type:"status",data:["all","success","error","pending"].map(d=>({id:`status::${d}`,label:d.charAt(0).toUpperCase()+d.slice(1),count:P[d],icon:d==="success"?Il:d==="error"?Hl:d==="pending"?Pl:pi,color:d==="success"?we.semantic.success:d==="error"?we.semantic.error:d==="pending"?we.semantic.warning:we.semantic.info,isActive:e.status===d||!e.status&&d==="all",value:d}))});let y=Object.entries(N);y.length>0&&m.push({id:"method",title:"Method",type:"method",data:y.map(([d,b])=>({id:`method::${d}`,label:d,count:b,color:Fl(d),isActive:e.method?.includes(d)??!1,value:d}))});let k=Object.entries(w);return k.length>0&&m.push({id:"contentType",title:"Content Type",type:"contentType",data:k.map(([d,b])=>{let h=t.find(ae=>Fo(ae).type===d),{color:M}=h?Fo(h):{color:Me.color.textTertiary};return{id:`contentType::${d}`,label:d,count:b,icon:Vl(d),color:M,isActive:e.contentType?.includes(d)??!1,value:d}})}),m},[w,t,e.contentType,e.method,e.status,N,P]),L=Qe(()=>({sections:H,addFilterSection:{enabled:!0,placeholder:"Enter domain or URL pattern...",title:"ACTIVE FILTERS",icon:ui,renderExtra:E},availableItemsSection:{enabled:!0,title:"AVAILABLE DOMAINS & URLS",emptyMessage:"No network events captured yet. Domains and URLs will appear here.",items:v},howItWorksSection:{enabled:!0,title:"HOW NETWORK FILTERS WORK",description:"Patterns hide matching requests from the network event list. Each pattern has a match mode you can toggle on its badge: CONTAINS hides any URL containing the text; EXACT hides only an exact path/host/url match.",examples:["\u2022 example.com (CONTAINS) \u2192 any request whose URL contains example.com","\u2022 example.com (EXACT) \u2192 only requests served by that exact host","\u2022 /v1 (CONTAINS) \u2192 any URL containing /v1 (e.g. /v1, /v1/users)","\u2022 /v1 (EXACT) \u2192 only requests whose pathname is exactly /v1"],icon:ui},onFilterChange:A,onPatternAdd:x,onPatternToggle:i,activePatterns:c,renderPatternMeta:O}),[c,H,A,x,i,E,O,v]);return Bt(Ll,{...L})}var Ze=K.create({modeBadge:{paddingHorizontal:8,paddingVertical:3,borderRadius:6,borderWidth:1},modeBadgeText:{fontSize:9,fontFamily:Vo,fontWeight:"700",letterSpacing:.5},modeToggleRow:{flexDirection:"row",alignItems:"center",gap:8,marginBottom:8},modeToggleLabel:{fontSize:11,fontWeight:"600",color:Me.color.textSecondary,fontFamily:Vo,letterSpacing:.3},modeToggleGroup:{flexDirection:"row",gap:6,flex:1},modeToggleButton:{flex:1,paddingVertical:6,paddingHorizontal:10,borderRadius:8,borderWidth:1,borderColor:Me.color.border,backgroundColor:Me.color.buttonSurface,alignItems:"center"},modeToggleButtonActive:{borderColor:Me.color.accentBorderStrong,backgroundColor:Me.color.accentSoft},modeToggleButtonText:{fontSize:11,fontWeight:"700",color:Me.color.textSecondary,fontFamily:Vo,letterSpacing:.3},modeToggleButtonTextActive:{color:Me.color.accent},modeToggleButtonHint:{fontSize:9,color:Me.color.textTertiary,marginTop:1}});g();import{TickProvider as Ar}from"@buoy-gg/shared-ui/web";import{useTick as _l}from"@buoy-gg/shared-ui/web";function cr(){return _l()??Date.now()}g();he();import{useState as fr,useEffect as hi,useMemo as Jl,memo as Gl}from"react";import{Clock as Uo,Upload as yi,Download as bi,AlertCircle as Kl,ChevronDown as vi,ChevronUp as Si,Lock as Yl,Unlock as Ql,FileJson as Vr,Filter as Zl,Globe as ed,Link as td,Copy as ki,FlaskConical as rd,InlineCopyButton as xi,macOSColors as _r,night as q,useFeatureGate as od,UpgradeModal as nd,monoFont as Gt}from"@buoy-gg/shared-ui/web";g();import{formatBytes as Xe,formatDuration as Jt,formatHttpStatus as _o,getMethodColor as mg}from"@buoy-gg/shared-ui/web";import{formatRelativeTime as id}from"@buoy-gg/shared-ui/web";import{DataViewer as pr}from"@buoy-gg/shared-ui/web/dataViewer";g();function Wo(t,e=30){if(t==null)return null;if(typeof t=="boolean"||typeof t=="number")return String(t);if(typeof t=="string")return t.length>e?t.substring(0,e-1)+"\u2026":t;if(Array.isArray(t))return t.length===0?null:t.length===1?Wo(t[0],e):`${t.length} items`;if(typeof t=="object"){let r=Object.entries(t);if(r.length===0)return null;for(let[o,i]of r){let n=Wo(i,e);if(n)return n}return null}return null}function Wl(t,e=3){if(!t||typeof t!="object")return null;let r=[];for(let[o,i]of Object.entries(t)){let n=Wo(i);if(n&&r.push(n),r.length>=e)break}return r.length>0?r:null}function Hr(t,e){let r=Wl(e);return!r||r.length===0?t:[t,...r].join(" \u203A ")}function zr(t,e){if(!t||typeof t!="object")return!1;for(let r of Object.values(t))if($o(r,e))return!0;return!1}function $o(t,e){return typeof t=="string"?t.toLowerCase().includes(e):typeof t=="number"||typeof t=="boolean"?String(t).includes(e):Array.isArray(t)?t.some(r=>$o(r,e)):typeof t=="object"&&t!==null?Object.values(t).some(r=>$o(r,e)):!1}g();import{createContext as $l,useContext as Ul}from"react";import{jsx as Xl}from"react/jsx-runtime";var gi=$l(null);function jl({resolver:t,children:e}){return Xl(gi.Provider,{value:t,children:e})}function mi(){return Ul(gi)}import{Fragment as jo,jsx as T,jsxs as G}from"react/jsx-runtime";var Fr=q.color.accent,sd=new Set,ad=()=>{},ld=({timings:t,total:e})=>{let r=Math.max(1,e),o=[{label:"Waiting (TTFB)",hint:"incl. queue, DNS, TLS",value:t.ttfb,color:_r.semantic.warning},{label:"Content download",hint:void 0,value:t.download,color:_r.semantic.success}];return T(u,{style:C.phaseList,children:o.map(i=>G(u,{style:C.phaseRow,children:[G(u,{style:C.phaseLabelGroup,children:[T(f,{style:C.phaseLabel,children:i.label}),i.hint?T(f,{style:C.phaseHint,children:i.hint}):null]}),T(u,{style:C.phaseTrack,children:T(u,{style:[C.phaseBar,{backgroundColor:i.color,width:`${Math.min(100,Math.max(1,i.value/r*100))}%`}]})}),T(f,{style:C.phaseValue,children:Jt(i.value)})]},i.label))})},wi=()=>T(u,{style:C.bodyDeferred}),qt=({title:t,icon:e,children:r,defaultOpen:o=!1,count:i})=>{let[n,s]=fr(o);return G(u,{style:C.collapsibleSection,children:[G(D,{style:C.collapsibleHeader,onPress:()=>s(!n),testID:`buoy-network-section-${t.toLowerCase().replace(/\s+/g,"-")}`,accessibilityRole:"button",accessibilityLabel:t,children:[G(u,{style:C.collapsibleTitle,children:[e,T(f,{style:C.collapsibleTitleText,children:t}),i!==void 0?T(f,{style:C.collapsibleCount,children:i}):null]}),n?T(Si,{size:16,color:q.color.textSecondary}):T(vi,{size:16,color:q.color.textSecondary})]}),n?T(u,{style:C.collapsibleContent,children:r}):null]})},dd=({url:t,requestData:e,operationName:r,graphqlVariables:o,requestClient:i,isPro:n=!1,onUpgradePress:s})=>{let a=x=>{try{let O=new URL(x),E=String(O.protocol||""),P=String(O.host||""),N=E==="https:",w=String(O.pathname||"");if(i==="graphql"&&r){let v=Hr(r,o);w=`${w} (${v})`}else r&&(w=`${w} (${r})`);let R={},S=O.searchParams;return S&&typeof S.forEach=="function"&&S.forEach((v,A)=>{R[A]=v}),{protocol:E.replace(":",""),host:P,pathname:w,params:Object.keys(R).length>0?R:null,isSecure:N}}catch{return{protocol:"",host:t,pathname:"",params:null,isSecure:!1}}},l=Jl(()=>a(t),[t,i,r,o]),[p,c]=fr(!1);return G(u,{style:C.urlBreakdown,children:[G(u,{style:C.urlRow,children:[l.isSecure?T(Yl,{size:12,color:_r.semantic.success}):T(Ql,{size:12,color:_r.semantic.warning}),T(f,{style:C.urlDomain,children:l.host}),G(f,{style:C.urlProtocol,children:["(",l.protocol.toUpperCase(),")"]}),n?T(xi,{value:t,buttonStyle:C.copyButton}):T(D,{style:C.copyButton,onPress:s,activeOpacity:.7,children:T(ki,{size:14,color:q.color.textSecondary})})]}),T(u,{style:C.urlPathRow,children:G(f,{style:C.urlPath,numberOfLines:2,children:[l.pathname,l.params?G(f,{style:C.urlQueryString,children:["?",new URLSearchParams(l.params).toString()]}):null]})}),l.params?G(u,{style:C.queryParamsCollapsible,children:[G(D,{style:C.queryParamsToggle,onPress:()=>c(!p),activeOpacity:.7,children:[T(f,{style:C.queryParamsToggleText,children:"Query Parameters"}),T(f,{style:C.collapsibleCount,children:Object.keys(l.params).length}),p?T(Si,{size:14,color:q.color.textSecondary}):T(vi,{size:14,color:q.color.textSecondary})]}),p?T(pr,{title:"",data:l.params,showTypeFilter:!0,rawMode:!0,initialExpanded:!0}):null]}):null]})},Xo=Gl(function({event:e,ignoredPatterns:r=sd,onTogglePattern:o=ad,showBodies:i=!0}){let n=e.status?_o(e.status):null,s=!e.status&&!e.error,{isPro:a}=od(),[l,p]=fr(!1);hi(()=>{l&&a&&p(!1)},[l,a]);let c=mi(),x=e.requestData===void 0&&(e.requestBodyOmitted===!0||(e.requestSize??0)>0),O=e.responseData===void 0&&(e.responseBodyOmitted===!0||(e.responseSize??0)>0),E=e.headersOmitted===!0,[P,N]=fr(null),[w,R]=fr(!1);hi(()=>{if(N(null),!c||!x&&!O&&!E){R(!1);return}let m=!1;return R(!0),c(e.id).then(y=>{m||N(y)}).catch(()=>{}).finally(()=>{m||R(!1)}),()=>{m=!0}},[e.id,c,x,O,E]);let S=e.requestData??P?.requestData??void 0,v=e.responseData??P?.responseData??void 0,A=(E?P?.requestHeaders:void 0)??e.requestHeaders,H=(E?P?.responseHeaders:void 0)??e.responseHeaders,L=()=>{let m={method:e.method,url:e.url,status:e.status,statusText:e.statusText,timestamp:new Date(e.timestamp).toISOString(),duration:e.duration?`${e.duration}ms`:"N/A",requestHeaders:A,requestData:S,responseHeaders:H,responseData:v,requestSize:e.requestSize?Xe(e.requestSize):"N/A",responseSize:e.responseSize?Xe(e.responseSize):"N/A",error:e.error,client:e.requestClient};return`# Network Request Details
8
+ ... [truncated, ${this.formatBytes(s)} omitted]`,size:n,truncated:true}}try{return{body:JSON.parse(o),size:n,truncated:false}}catch{return{body:o,size:n,truncated:false}}}catch{return{body:"~~~ unable to read body ~~~",size:0,truncated:false}}}formatBytes(e){if(e===0)return"0 B";let t=1024,r=["B","KB","MB","GB"],o=Math.floor(Math.log(e)/Math.log(t));return`${Math.round(e/Math.pow(t,o)*100)/100} ${r[o]}`}handleXHRResponse(e,t,r,o,n,i,s,a,l=false,u="xhr",b,E){let C=a?ue()-a:0,S=e._buoyTtfb,O=S===void 0?void 0:{ttfb:S,download:Math.max(0,C-S)};if(l||e.status===0){this.emit({type:"error",timestamp:new Date,duration:C,request:{id:t||"unknown",url:r,method:o,headers:n,data:i,params:s||void 0,client:u},error:{message:l?"Request failed":"Network error or request aborted"},override:b,condition:E});return}let p,R=0;try{let h=e.response;if(e.responseType==="json"&&h)p=h,R=JSON.stringify(h).length;else if(e.responseType===""||e.responseType==="text"){if(e.responseText){R=e.responseText.length;try{p=JSON.parse(e.responseText)}catch{p=e.responseText}}}else if(e.responseType==="arraybuffer")if(h)try{let L=new TextDecoder("utf-8").decode(h);R=L.length;try{p=JSON.parse(L)}catch{p=L}}catch{p=`[arraybuffer response - ${h.byteLength||0} bytes]`,R=h.byteLength||0}else p="[arraybuffer response - no data]",R=0;else if(e.responseType==="blob")if(h instanceof Blob)p=`[blob response - ${h.size} bytes, type: ${h.type||"unknown"}]`,R=h.size;else if(h)try{p=typeof h=="string"?JSON.parse(h):h,R=JSON.stringify(p).length}catch{p="[blob response - unable to parse]",R=0}else p="[blob response - no data]",R=0;else if(h)if(typeof h=="string"){p=h,R=h.length;try{p=JSON.parse(h)}catch{}}else typeof h=="object"?(p=h,R=JSON.stringify(h).length):(p=String(h),R=String(h).length)}catch{p="~~~ unable to read body ~~~"}let I={};try{let h=e.getAllResponseHeaders();h&&h.split(`\r
9
+ `).forEach(L=>{if(L){let z=L.indexOf(": ");if(z>0){let P=L.substring(0,z).toLowerCase(),T=L.substring(z+2);I[P]=T}}})}catch{}_a(e.status)==="response"?this.emit({type:"response",timestamp:new Date,duration:C,timings:O,request:{id:t||"unknown",url:r,method:o,headers:n,data:i,params:s||void 0,client:u},response:{status:e.status,statusText:Xa(e.status,e.statusText),headers:I,body:p,size:R},override:b,condition:E}):this.emit({type:"error",timestamp:new Date,duration:C,request:{id:t||"unknown",url:r,method:o,headers:n,data:i,params:s||void 0,client:u},response:{status:e.status,statusText:e.statusText,headers:I,body:p,size:R},error:{message:"Network Error"},override:b,condition:E})}isFetchInterceptionLive(){return globalThis.fetch[En]===true}isXhrInterceptionLive(){return XMLHttpRequest.prototype.send[Ln]===true}isInterceptionLive(){return this.isFetchInterceptionLive()&&this.isXhrInterceptionLive()}startListening(){let e=this.isListening&&this.isFetchInterceptionLive(),t=this.isListening&&this.isXhrInterceptionLive();e&&t||(e||this.installFetchInterceptor(),t||this.installXhrInterceptor(),this.isListening=true)}installFetchInterceptor(){let e=this,t=globalThis.fetch.bind(globalThis);this.originalFetch=globalThis.fetch;let r=++this.fetchGeneration,o=async(n,i)=>{let s=ur(typeof n=="string"?n:n instanceof URL?n.href:n.url);if(r!==e.fetchGeneration||e.shouldIgnoreUrl(s))return t(n,i);let a=ue(),l=cr("fetch"),u=typeof n=="object"&&"method"in n?n:void 0,b=i?.method??u?.method??"GET",E=i?.signal!==void 0?i.signal:u?.signal;fr(E);let C=On(s),{url:S,params:O}=e.parseUrl(s),p={},R=i?.headers??u?.headers;R&&(R instanceof Headers?R.forEach((P,T)=>{p[T]=P}):Array.isArray(R)?R.forEach(([P,T])=>{p[P]=T}):p={...R}),Object.assign(p,In(s));let I;if(i?.body)if(typeof i.body=="string")try{I=JSON.parse(i.body)}catch{I=i.body}else I=i.body;let h=p["X-Request-Client"]||p["x-request-client"]||"fetch",L=C?.profile!=="offline"&&$a()?kn(s,b,p):null,z=L?Tn(L):void 0;if(e.emit({type:"request",timestamp:new Date,request:{id:l||"unknown",url:S,method:b,headers:p,data:I,params:O||void 0,client:h},override:z,condition:C}),i?.body===void 0&&u?.body&&!u.bodyUsed)try{let P=u.clone();e.readStreamedBody(P).then(({body:T})=>{try{I=JSON.parse(T)}catch{I=T}e.emit({type:"request-body",timestamp:new Date,request:{id:l||"unknown",url:S,method:b,data:I,client:h}})}).catch(()=>{})}catch{}try{if((C||L)&&await Ia((C?.delayMs??0)+(L?.delayMs??0),E),fr(E),C?.profile==="offline")throw new TypeError("Network request failed (Buoy Offline)");if(L?.kind==="fail")throw Va(L);let P;if(L?.kind==="respond")P=Wa(s,L);else{let te=mr;mr=true;let Q;try{Q=t(n,i)}finally{mr=te}P=await Q}let T=ue()-a,x=typeof P.body?.getReader=="function"||Ya(P.headers?.get?.("content-type")),m=P.clone(),{body:v,size:d}=x?{body:Pn,size:0}:await e.processResponseBody(m),f=ue()-a,y=Math.max(0,f-T),A=y>0?{ttfb:T,download:y}:void 0,ae={};return P.headers.forEach((te,Q)=>{ae[Q.toLowerCase()]=te}),e.emit({type:"response",timestamp:new Date,duration:f,timings:A,request:{id:l||"unknown",url:S,method:b,headers:p,data:I,params:O||void 0,client:h},response:{status:P.status,statusText:P.statusText,headers:ae,body:v,size:d},override:z,condition:C}),x&&e.readStreamedBody(m).then(te=>{let Q=te.body;if(P.headers?.get?.("content-type")?.includes("json"))try{Q=JSON.parse(te.body)}catch{}e.emit({type:"response",timestamp:new Date,duration:ue()-a,timings:A,request:{id:l||"unknown",url:S,method:b,headers:p,data:I,params:O||void 0,client:h},response:{status:P.status,statusText:P.statusText,headers:ae,body:Q,size:te.size},override:z,condition:C})}).catch(()=>{}),P}catch(P){let T=ue()-a;throw e.emit({type:"error",timestamp:new Date,duration:T,request:{id:l||"unknown",url:S,method:b,headers:p,data:I,params:O||void 0,client:h},error:{message:P instanceof Error?P.message:"Network error",stack:P instanceof Error?P.stack:void 0},override:z,condition:C}),P}};o[En]=true,this.patchedFetch=o,globalThis.fetch=this.patchedFetch}installXhrInterceptor(){let e=this,t=XMLHttpRequest.prototype.open,r=XMLHttpRequest.prototype.send,o=XMLHttpRequest.prototype.setRequestHeader;this.originalXHROpen=t,this.originalXHRSend=r,this.originalXHRSetRequestHeader=o;let n=++this.xhrGeneration,i=new WeakMap,s=function(u,b,E,C,S){let O=t.call(this,u,b,E??true,C,S);if(n===e.xhrGeneration){i.get(this)?.();let p=this;p._buoyRequestId=cr("xhr"),p._method=u,p._url=ur(b),p._buoyStartTime=ue(),p._requestHeaders={}}return O},a=function(u,b){let E=this;return n===e.xhrGeneration&&E._requestHeaders&&(E._requestHeaders[u]=b),o.call(this,u,b)},l=function(u){if(n!==e.xhrGeneration||mr)return r.call(this,u);if(Ta(this))throw new DOMException("The request has already been sent.","InvalidStateError");if(this.readyState!==1||this._sent)return r.call(this,u);let b=this,E=b._buoyRequestId,C=b._method||"GET",S=b._url||"",O=ue();b._buoyStartTime=O,b._buoyTtfb=void 0;let p=b._requestHeaders||{};if(Object.assign(p,In(S)),e.shouldIgnoreUrl(S))return r.call(this,u);let{url:R,params:I}=e.parseUrl(S),h;if(u)if(typeof u=="string")try{h=JSON.parse(u)}catch{h=u}else h=u;let L=p["X-Request-Client"]||p["x-request-client"],z=p.Accept||p.accept||"",P=z.includes("application/json")&&z.includes("text/plain")&&z.includes("*/*"),T=L||(P?"axios":"xhr"),x=On(S),m=x?.profile==="offline"?null:kn(S,C,p),v=m?Tn(m):void 0;e.emit({type:"request",timestamp:new Date,request:{id:E||"unknown",url:R,method:C,headers:p,data:h,params:I||void 0,client:T},override:v,condition:x});let d=false,f=(G=false)=>{d||(d=true,e.handleXHRResponse(this,E||"unknown",R,C,p,h,I,O||0,G,T,v,x),y())},y=()=>{i.delete(this),this.removeEventListener("load",A),this.removeEventListener("error",ae),this.removeEventListener("abort",te),this.removeEventListener("readystatechange",Q)};i.set(this,y);let A=()=>{f(false)},ae=()=>{f(true)},te=()=>{f(true)},Q=()=>{if(this.readyState===2){let G=this;G._buoyTtfb===void 0&&G._buoyStartTime&&(G._buoyTtfb=ue()-G._buoyStartTime)}this.readyState===4&&!d&&f(false)};if(this.addEventListener("load",A),this.addEventListener("error",ae),this.addEventListener("abort",te),this.addEventListener("readystatechange",Q),x){ka(this,S,x,m,()=>r.call(this,u));return}if(!(m&&Sn(this,S,m,()=>r.call(this,u))))return r.call(this,u)};l[Ln]=true,this.patchedXHROpen=s,this.patchedXHRSend=l,this.patchedXHRSetRequestHeader=a,XMLHttpRequest.prototype.open=this.patchedXHROpen,XMLHttpRequest.prototype.send=this.patchedXHRSend,XMLHttpRequest.prototype.setRequestHeader=this.patchedXHRSetRequestHeader}stopListening(){this.isListening&&(this.fetchGeneration++,this.xhrGeneration++,this.patchedFetch&&globalThis.fetch===this.patchedFetch&&(globalThis.fetch=this.originalFetch),this.patchedXHROpen&&XMLHttpRequest.prototype.open===this.patchedXHROpen&&(XMLHttpRequest.prototype.open=this.originalXHROpen),this.patchedXHRSend&&XMLHttpRequest.prototype.send===this.patchedXHRSend&&(XMLHttpRequest.prototype.send=this.originalXHRSend),this.patchedXHRSetRequestHeader&&XMLHttpRequest.prototype.setRequestHeader===this.patchedXHRSetRequestHeader&&(XMLHttpRequest.prototype.setRequestHeader=this.originalXHRSetRequestHeader),this.patchedFetch=null,this.patchedXHROpen=null,this.patchedXHRSend=null,this.patchedXHRSetRequestHeader=null,this.isListening=false)}adoptEarlyRequests(){let e=globalThis.__BUOY_EARLY_NETWORK__;if(e?.version===1)for(let t of e.adopt())try{t.kind==="fetch"?this.adoptEarlyFetch(t):this.adoptEarlyXhr(t)}catch{}}adoptEarlyFetch(e){let{input:t,init:r}=e,o=typeof t=="object"&&"method"in t?t:void 0,n=ur(typeof t=="string"?t:t instanceof URL?t.href:t.url);if(this.shouldIgnoreUrl(n))return;let i=cr("fetch"),s=r?.method??o?.method??"GET",{url:a,params:l}=this.parseUrl(n),u=Ga(r?.headers??o?.headers),b=r?.body;if(typeof b=="string")try{b=JSON.parse(b)}catch{}let E=u["X-Request-Client"]||u["x-request-client"]||"fetch",C=()=>({id:i,url:a,method:s,headers:u,data:b,params:l||void 0,client:E});this.emit({type:"request",timestamp:new Date(e.start),request:C()}),e.requestCopy&&this.readStreamedBody(e.requestCopy).then(({body:S})=>{try{b=JSON.parse(S)}catch{b=S}this.emit({type:"request-body",timestamp:new Date,request:{id:i,url:a,method:s,data:b,client:E}})}).catch(()=>{}),e.settled.then(async({response:S,clone:O,error:p,headersAt:R})=>{if(!S){this.emit({type:"error",timestamp:new Date,duration:R-e.start,request:C(),error:{message:p instanceof Error?p.message:"Network error",stack:p instanceof Error?p.stack:void 0}});return}let{body:I,size:h}=O?await this.processResponseBody(O):{body:Pn,size:0},L=Math.max(0,ue()-e.start),z=R-e.start,P={};S.headers.forEach((T,x)=>{P[x.toLowerCase()]=T}),this.emit({type:"response",timestamp:new Date,duration:L,timings:L>z?{ttfb:z,download:L-z}:void 0,request:C(),response:{status:S.status,statusText:S.statusText,headers:P,body:I,size:h}})})}adoptEarlyXhr(e){let t=ur(e.url);if(this.shouldIgnoreUrl(t))return;let r=cr("xhr"),o=e.method.toUpperCase(),{url:n,params:i}=this.parseUrl(t),s=e.body;if(typeof s=="string")try{s=JSON.parse(s)}catch{}let a=e.headers["X-Request-Client"]||e.headers["x-request-client"]||"xhr";this.emit({type:"request",timestamp:new Date(e.start),request:{id:r,url:n,method:o,headers:e.headers,data:s,params:i||void 0,client:a}});let l=e.xhr,u=()=>{let b=(l._buoyEarlyEnd??ue())-e.start;this.handleXHRResponse(l,r,n,o,e.headers,s,i,ue()-b,false,a)};l.readyState===4?u():l.addEventListener("loadend",u,{once:true})}addListener(e){return this.listeners.push(e),()=>{let t=this.listeners.indexOf(e);t>-1&&this.listeners.splice(t,1)}}removeAllListeners(){this.listeners=[]}get isActive(){return this.isListening}get listenerCount(){return this.listeners.length}},rt=null,co=()=>(rt||(rt=new el),rt),yr=co,qn=()=>co().startListening(),Xt=()=>rt?.stopListening(),Jt=e=>co().addListener(e),tl=()=>rt?.removeAllListeners(),Bn=()=>rt?.isActive??false,ht=()=>rt?.listenerCount??0,rl=()=>rt?.isInterceptionLive()??false;var Gt={normal:{label:"Normal",delayMs:0},offline:{label:"Offline (requests)",delayMs:0},slow:{label:"Slow (+500 ms)",delayMs:500},verySlow:{label:"Very slow (+2000 ms)",delayMs:2e3}},ho=`${Date.now()}-${Math.random().toString(36).slice(2)}`,pt="normal",br,vr=new Set,ft=()=>typeof Ce<"u"&&Ce&&un(),gt=()=>pt,Kt=e=>(vr.add(e),()=>{vr.delete(e)});function Sr(e){if(typeof e!="string"||!Object.prototype.hasOwnProperty.call(Gt,e))throw new Error("Choose normal, offline, slow, or verySlow.");if(e!=="normal"&&!ft())throw new Error("Network conditions require an admitted account and a development build.");return e===pt||(e!=="normal"&&!br?(qn(),br=Jt(()=>{})):e==="normal"&&(br?.(),br=void 0,ht()===0&&Xt()),pt=e,vr.forEach(t=>t())),pt}function On(e){if(!(pt==="normal"||!ft()||!/^https?:\/\//i.test(e)))return Object.freeze({profile:pt,delayMs:Gt[pt].delayMs})}ya(()=>{un()||Sr("normal"),vr.forEach(e=>e())});import{jsx as Dn,jsxs as ol}from"react/jsx-runtime";function nl({size:e}){let t=ga(Kt,gt,gt);return ol(c,{accessibilityLabel:t==="normal"?"Network":`Network: ${Gt[t].label}`,children:[Dn(ma,{size:e}),t!=="normal"&&Dn(g,{testID:"buoy-network-condition-indicator",style:{position:"absolute",top:-6,right:-8,color:"#FFCC66",fontSize:10,fontWeight:"700"},children:t==="offline"?"OFF":`+${Gt[t].delayMs}`})]})}import{createToolFactory as il,defineToolPreset as sl}from"@buoy-gg/shared-ui/web";D();D();ce();import{useEffect as zn,useRef as po,useState as An,useSyncExternalStore as fo}from"react";import{FloatingTool as al,night as Re,openFloatingTool as ll,persistentStorage as dl,registerPersistentFloatingTool as ul}from"@buoy-gg/shared-ui/web";import{jsx as ke,jsxs as Hn}from"react/jsx-runtime";function cl(){let e,t=new Set;return{getSnapshot:()=>e,subscribe:r=>(t.add(r),()=>{t.delete(r)}),update(r){e=r,t.forEach(o=>o())}}}var hl=()=>()=>{},Mn=()=>{},xr=[{id:"normal",label:"No throttling",detail:"No added delay"},{id:"slow",label:"Slow",detail:"+500 ms before sending"},{id:"verySlow",label:"Very slow",detail:"+2 seconds before sending"},{id:"offline",label:"Offline",detail:"New requests fail"}],pl={id:"network-throttling",render:e=>ke(Nn,{...e})};typeof Ce<"u"&&Ce&&typeof navigator<"u"&&navigator.product==="ReactNative"&&ul(pl,dl);function fl(e){ll({id:"network-throttling",render:t=>ke(Nn,{...t,source:e})})}function Nn({id:e,revealToken:t,dismiss:r,source:o}){let n=fo(Kt,gt,gt),i=fo(Kt,ft,ft),s=fo(o?.subscribe??hl,o?.getSnapshot??Mn,Mn),a=o?s?.profile??null:n,l=o?s?.available===true:i,[u,b]=An(false),[E,C]=An(),S=po(false),O=po(0),p=po(true),{width:R}=en();zn(()=>(p.current=true,()=>{p.current=false}),[]),zn(()=>{O.current+=1,S.current=false,b(false),C(void 0)},[o,s?.targetId]);let I=a!==null&&a!=="normal",h=a??"normal",L=xr.find(v=>v.id===h),z=xr[(xr.findIndex(v=>v.id===h)+1)%xr.length],P=!l||h==="offline"?0:h==="verySlow"?1:h==="slow"?2:4,T=u?"Applying\u2026":l?h==="normal"?"0 ms":h==="slow"?"+500 ms":h==="verySlow"?"+2000 ms":"Blocked":"Unavailable";async function x(v,d=false){if(S.current)return;let f=++O.current;S.current=true,b(true),C(void 0);let y=o?.getSnapshot();try{if(o){if(!y?.available)throw new Error("Device unavailable. Open Network again to reconnect these controls.");await y.onChange(v)}else Sr(v);p.current&&O.current===f&&d&&r()}catch(A){p.current&&O.current===f&&C(A instanceof Error?A.message:String(A))}finally{O.current===f&&(S.current=false,p.current&&b(false))}}let m=E?ke(c,{style:Pe.menu,children:ke(g,{accessibilityRole:"alert",style:Pe.error,children:E})}):void 0;return ke(al,{id:e,revealToken:t,variant:"strip",dragFromSurface:true,accessibilityLabel:`Move or hide network throttling. ${I?"Active":"Off"}`,accessory:m,children:Hn(c,{style:[Pe.row,{width:Math.max(220,Math.min(292,R-64))}],children:[ke(N,{testID:"throttling-cycle",accessibilityRole:"button",accessibilityLabel:`Network: ${L.label}. Switch to ${z.label}`,accessibilityState:{disabled:u||!l},disabled:u||!l,onPress:()=>void x(z.id),style:Pe.signalButton,children:u?ke(so,{size:"small",color:Re.color.accent}):Hn(c,{testID:`throttling-signal-${h}`,style:Pe.signal,children:[[7,12,18,24].map((v,d)=>ke(c,{style:{width:4,height:v,borderRadius:2,backgroundColor:d<P?h==="offline"?Re.color.danger:Re.color.accent:Re.color.fillTertiary}},v)),h==="offline"&&ke(c,{style:Pe.slash})]})}),ke(c,{style:Pe.profile,children:ke(g,{testID:"throttling-profile",accessibilityLabel:`Connection profile: ${L.label}`,accessibilityLiveRegion:"polite",numberOfLines:1,style:Pe.profileLabel,children:L.label})}),ke(g,{testID:"throttling-status",numberOfLines:1,accessibilityLiveRegion:"polite",style:Pe.status,children:T}),ke(c,{style:Pe.separator}),ke(N,{testID:"throttling-close",accessibilityRole:"button",accessibilityLabel:"Close and turn off throttling",disabled:u,accessibilityState:{disabled:u},onPress:()=>{a==="normal"?r():x("normal",true)},style:[Pe.action,u&&Pe.disabled],children:ke(g,{style:Pe.actionText,children:"Close"})})]})})}var Pe=fe.create({row:{flexDirection:"row",alignItems:"center",gap:6,paddingVertical:4,minHeight:48},signalButton:{width:36,minHeight:44,alignItems:"center",justifyContent:"center"},signal:{flexDirection:"row",alignItems:"flex-end",gap:3,height:24},slash:{position:"absolute",width:30,height:2,backgroundColor:Re.color.danger,top:11,left:-2,transform:[{rotate:"-45deg"}]},separator:{height:20,width:1,backgroundColor:Re.color.separator,marginHorizontal:2},status:{color:Re.color.textSecondary,fontSize:10,lineHeight:15,flexShrink:1},profile:{flex:1,flexDirection:"row",alignItems:"center",gap:6,minHeight:44},profileLabel:{color:Re.color.text,fontSize:13,fontWeight:"500",flexShrink:1},action:{minHeight:36,minWidth:52,borderRadius:Re.radius.input,borderWidth:1,borderColor:Re.color.accentBorderStrong,alignItems:"center",justifyContent:"center",paddingHorizontal:10},actionText:{color:Re.color.accent,fontSize:12,fontWeight:"600"},disabled:{opacity:.4},menu:{marginVertical:8,padding:6,borderRadius:Re.radius.card,borderWidth:1,borderColor:Re.color.separator,backgroundColor:Re.color.surface,shadowColor:"#000",shadowOffset:{width:0,height:6},shadowOpacity:.25,shadowRadius:16,elevation:8},error:{color:Re.color.danger,fontSize:12,lineHeight:18,padding:10}});ce();import{useState as me,useRef as wr,useEffect as mt,useCallback as go}from"react";import{Search as gl,Wifi as ml,Filter as yl,Bookmark as bl,JsModal as vl,ModalHeader as ge,devToolsStorageKeys as Tr,macOSColors as Sl,night as Ke,persistentStorage as Fn,NightSegmented as xl,useFeatureGate as wl,UpgradeModal as Tl,PowerToggleButton as Cl,useIgnoredPatterns as Rl,windowDragProps as kl}from"@buoy-gg/shared-ui/web";D();ce();import{CheckCircle as Il,Clock as El,DynamicFilterView as Ll,Film as Pl,FileJson as ql,FileText as Bl,Filter as jn,Globe as $n,Image as Ol,macOSColors as ye,night as qe,Music as Dl,XCircle as zl,monoFont as mo}from"@buoy-gg/shared-ui/web";import{useCallback as Cr,useMemo as je,useState as Al}from"react";import{jsx as yt,jsxs as Wn}from"react/jsx-runtime";function yo(e){let t=e.responseHeaders||e.requestHeaders,r=t?.["content-type"]||t?.["Content-Type"]||"";return r.includes("json")?{type:"JSON",color:ye.semantic.info}:r.includes("xml")?{type:"XML",color:ye.semantic.success}:r.includes("html")?{type:"HTML",color:ye.semantic.warning}:r.includes("text")?{type:"TEXT",color:ye.semantic.success}:r.includes("image")?{type:"IMAGE",color:ye.semantic.error}:r.includes("video")?{type:"VIDEO",color:ye.semantic.error}:r.includes("audio")?{type:"AUDIO",color:ye.semantic.debug}:r.includes("form")?{type:"FORM",color:ye.semantic.info}:{type:"OTHER",color:qe.color.textTertiary}}function Hl(e){switch(e){case"JSON":return ql;case"HTML":case"XML":case"TEXT":return Bl;case"IMAGE":return Ol;case"VIDEO":return Pl;case"AUDIO":return Dl;default:return $n}}function Ml(e){switch(e){case"GET":return ye.semantic.success;case"POST":return ye.semantic.info;case"PUT":return ye.semantic.warning;case"DELETE":return ye.semantic.error;case"PATCH":return ye.semantic.success;default:return qe.color.textTertiary}}function Nl({events:e,filter:t,onFilterChange:r,ignoredPatterns:o=[],onRemovePattern:n=()=>{},onAddPattern:i=()=>{},onTogglePatternMode:s=()=>{}}){let[a,l]=Al("contains"),u=je(()=>{let x=new Map;for(let m of o)x.set(m.value,m.mode);return x},[o]),b=je(()=>new Set(o.map(x=>x.value)),[o]),E=Cr(x=>{i({value:x,mode:a})},[i,a]),C=Cr(x=>{let m=u.get(x)??"contains",v=m==="exact",d=v?qe.color.warning:qe.color.info;return yt(N,{accessibilityRole:"button",accessibilityLabel:`Match mode: ${m}. Tap to toggle.`,onPress:()=>s(x),style:[$e.modeBadge,{borderColor:`${d}60`,backgroundColor:`${d}15`}],hitSlop:{top:6,bottom:6,left:6,right:6},children:yt(g,{style:[$e.modeBadgeText,{color:d}],children:v?"EXACT":"CONTAINS"})})},[u,s]),S=Cr(()=>{let x=[{label:"Contains",value:"contains",hint:"substring"},{label:"Exact",value:"exact",hint:"whole path/host/url"}];return Wn(c,{style:$e.modeToggleRow,children:[yt(g,{style:$e.modeToggleLabel,children:"Match:"}),yt(c,{style:$e.modeToggleGroup,children:x.map(m=>{let v=a===m.value;return Wn(N,{onPress:()=>l(m.value),style:[$e.modeToggleButton,v&&$e.modeToggleButtonActive],accessibilityRole:"button",accessibilityState:{selected:v},children:[yt(g,{style:[$e.modeToggleButtonText,v&&$e.modeToggleButtonTextActive],children:m.label}),yt(g,{style:$e.modeToggleButtonHint,children:m.hint})]},m.value)})})]})},[a]),O=je(()=>{let x={all:e.length,success:0,error:0,pending:0};return e.forEach(m=>{if(m.error||m.status&&m.status>=400){x.error+=1;return}if(m.status&&m.status>=200&&m.status<300){x.success+=1;return}!m.status&&!m.error&&(x.pending+=1)}),x},[e]),p=je(()=>e.reduce((x,m)=>(m.method&&(x[m.method]=(x[m.method]||0)+1),x),{}),[e]),R=je(()=>e.reduce((x,m)=>{let{type:v}=yo(m);return x[v]=(x[v]||0)+1,x},{}),[e]),I=je(()=>{let x=new Set;return e.forEach(m=>{if(m.host){x.add(m.host);return}try{if(m.url){let v=new URL(m.url),d=String(v.host||"");d&&x.add(d)}}catch{}}),Array.from(x).filter(m=>m&&m!=="").sort((m,v)=>m.localeCompare(v))},[e]),h=je(()=>{let x=new Set;return e.forEach(m=>{if(m.url)try{let v=new URL(m.url),d=String(v.origin||""),f=String(v.pathname||""),y=`${d}${f}`;x.add(y)}catch{x.add(m.url)}}),Array.from(x).filter(m=>m&&m!=="").sort((m,v)=>m.localeCompare(v))},[e]),L=je(()=>{let x=I.slice(0,30),m=h.slice(0,30);return[...x,...m]},[I,h]),z=Cr((x,m)=>{let[v]=x.split("::");if(v==="status"){r({...t,status:m==="all"?void 0:m});return}if(v==="method"){let d=String(m),f=t.method||[],y=f.includes(d)?f.filter(A=>A!==d):[d];r({...t,method:y.length>0?y:void 0});return}if(v==="contentType"){let d=String(m),f=t.contentType||[],y=f.includes(d)?f.filter(A=>A!==d):[d];r({...t,contentType:y.length>0?y:void 0})}},[t,r]),P=je(()=>{let x=[];x.push({id:"status",title:"Status",type:"status",data:["all","success","error","pending"].map(d=>({id:`status::${d}`,label:d.charAt(0).toUpperCase()+d.slice(1),count:O[d],icon:d==="success"?Il:d==="error"?zl:d==="pending"?El:$n,color:d==="success"?ye.semantic.success:d==="error"?ye.semantic.error:d==="pending"?ye.semantic.warning:ye.semantic.info,isActive:t.status===d||!t.status&&d==="all",value:d}))});let m=Object.entries(p);m.length>0&&x.push({id:"method",title:"Method",type:"method",data:m.map(([d,f])=>({id:`method::${d}`,label:d,count:f,color:Ml(d),isActive:t.method?.includes(d)??false,value:d}))});let v=Object.entries(R);return v.length>0&&x.push({id:"contentType",title:"Content Type",type:"contentType",data:v.map(([d,f])=>{let y=e.find(ae=>yo(ae).type===d),{color:A}=y?yo(y):{color:qe.color.textTertiary};return{id:`contentType::${d}`,label:d,count:f,icon:Hl(d),color:A,isActive:t.contentType?.includes(d)??false,value:d}})}),x},[R,e,t.contentType,t.method,t.status,p,O]),T=je(()=>({sections:P,addFilterSection:{enabled:true,placeholder:"Enter domain or URL pattern...",title:"ACTIVE FILTERS",icon:jn,renderExtra:S},availableItemsSection:{enabled:true,title:"AVAILABLE DOMAINS & URLS",emptyMessage:"No network events captured yet. Domains and URLs will appear here.",items:L},howItWorksSection:{enabled:true,title:"HOW NETWORK FILTERS WORK",description:"Patterns hide matching requests from the network event list. Each pattern has a match mode you can toggle on its badge: CONTAINS hides any URL containing the text; EXACT hides only an exact path/host/url match.",examples:["\u2022 example.com (CONTAINS) \u2192 any request whose URL contains example.com","\u2022 example.com (EXACT) \u2192 only requests served by that exact host","\u2022 /v1 (CONTAINS) \u2192 any URL containing /v1 (e.g. /v1, /v1/users)","\u2022 /v1 (EXACT) \u2192 only requests whose pathname is exactly /v1"],icon:jn},onFilterChange:z,onPatternAdd:E,onPatternToggle:n,activePatterns:b,renderPatternMeta:C}),[b,P,z,E,n,S,C,L]);return yt(Ll,{...T})}var $e=fe.create({modeBadge:{paddingHorizontal:8,paddingVertical:3,borderRadius:6,borderWidth:1},modeBadgeText:{fontSize:9,fontFamily:mo,fontWeight:"700",letterSpacing:.5},modeToggleRow:{flexDirection:"row",alignItems:"center",gap:8,marginBottom:8},modeToggleLabel:{fontSize:11,fontWeight:"600",color:qe.color.textSecondary,fontFamily:mo,letterSpacing:.3},modeToggleGroup:{flexDirection:"row",gap:6,flex:1},modeToggleButton:{flex:1,paddingVertical:6,paddingHorizontal:10,borderRadius:8,borderWidth:1,borderColor:qe.color.border,backgroundColor:qe.color.buttonSurface,alignItems:"center"},modeToggleButtonActive:{borderColor:qe.color.accentBorderStrong,backgroundColor:qe.color.accentSoft},modeToggleButtonText:{fontSize:11,fontWeight:"700",color:qe.color.textSecondary,fontFamily:mo,letterSpacing:.3},modeToggleButtonTextActive:{color:qe.color.accent},modeToggleButtonHint:{fontSize:9,color:qe.color.textTertiary,marginTop:1}});D();import{TickProvider as bo}from"@buoy-gg/shared-ui/web";import{useTick as Fl}from"@buoy-gg/shared-ui/web";function vo(){return Fl()??Date.now()}D();ce();import{useState as Yt,useEffect as Vn,useMemo as jl,memo as $l}from"react";import{Clock as So,Upload as Un,Download as _n,AlertCircle as Wl,ChevronDown as Xn,ChevronUp as Jn,Lock as Vl,Unlock as Ul,FileJson as Rr,Filter as _l,Globe as Xl,Link as Jl,Copy as Gn,FlaskConical as Gl,InlineCopyButton as Kn,macOSColors as kr,night as B,useFeatureGate as Kl,UpgradeModal as Yl,monoFont as Bt}from"@buoy-gg/shared-ui/web";D();import{formatBytes as Ye,formatDuration as Ir,formatHttpStatus as Yn,getMethodColor as kp}from"@buoy-gg/shared-ui/web";import{formatRelativeTime as Zl}from"@buoy-gg/shared-ui/web";import{DataViewer as Zt}from"@buoy-gg/shared-ui/web/dataViewer";D();function xo(e,t=30){if(e==null)return null;if(typeof e=="boolean"||typeof e=="number")return String(e);if(typeof e=="string")return e.length>t?e.substring(0,t-1)+"\u2026":e;if(Array.isArray(e))return e.length===0?null:e.length===1?xo(e[0],t):`${e.length} items`;if(typeof e=="object"){let r=Object.entries(e);if(r.length===0)return null;for(let[o,n]of r){let i=xo(n,t);if(i)return i}return null}return null}function Ql(e,t=3){if(!e||typeof e!="object")return null;let r=[];for(let[o,n]of Object.entries(e)){let i=xo(n);if(i&&r.push(i),r.length>=t)break}return r.length>0?r:null}function Zn(e,t){let r=Ql(t);return!r||r.length===0?e:[e,...r].join(" \u203A ")}function Qn(e,t){if(!e||typeof e!="object")return false;for(let r of Object.values(e))if(wo(r,t))return true;return false}function wo(e,t){return typeof e=="string"?e.toLowerCase().includes(t):typeof e=="number"||typeof e=="boolean"?String(e).includes(t):Array.isArray(e)?e.some(r=>wo(r,t)):typeof e=="object"&&e!==null?Object.values(e).some(r=>wo(r,t)):false}D();import{createContext as ed,useContext as td}from"react";import{jsx as rd}from"react/jsx-runtime";var ei=ed(null);function od({resolver:e,children:t}){return rd(ei.Provider,{value:e,children:t})}function nd(){return td(ei)}import{Fragment as To,jsx as w,jsxs as X}from"react/jsx-runtime";var Er=B.color.accent,id=new Set,sd=()=>{},ad=({timings:e,total:t})=>{let r=Math.max(1,t),o=[{label:"Waiting (TTFB)",hint:"incl. queue, DNS, TLS",value:e.ttfb,color:kr.semantic.warning},{label:"Content download",hint:void 0,value:e.download,color:kr.semantic.success}];return w(c,{style:k.phaseList,children:o.map(n=>X(c,{style:k.phaseRow,children:[X(c,{style:k.phaseLabelGroup,children:[w(g,{style:k.phaseLabel,children:n.label}),n.hint?w(g,{style:k.phaseHint,children:n.hint}):null]}),w(c,{style:k.phaseTrack,children:w(c,{style:[k.phaseBar,{backgroundColor:n.color,width:`${Math.min(100,Math.max(1,n.value/r*100))}%`}]})}),w(g,{style:k.phaseValue,children:Ir(n.value)})]},n.label))})},ti=()=>w(c,{style:k.bodyDeferred}),bt=({title:e,icon:t,children:r,defaultOpen:o=false,count:n})=>{let[i,s]=Yt(o);return X(c,{style:k.collapsibleSection,children:[X(N,{style:k.collapsibleHeader,onPress:()=>s(!i),testID:`buoy-network-section-${e.toLowerCase().replace(/\s+/g,"-")}`,accessibilityRole:"button",accessibilityLabel:e,children:[X(c,{style:k.collapsibleTitle,children:[t,w(g,{style:k.collapsibleTitleText,children:e}),n!==void 0?w(g,{style:k.collapsibleCount,children:n}):null]}),i?w(Jn,{size:16,color:B.color.textSecondary}):w(Xn,{size:16,color:B.color.textSecondary})]}),i?w(c,{style:k.collapsibleContent,children:r}):null]})},ld=({url:e,requestData:t,operationName:r,graphqlVariables:o,requestClient:n,isPro:i=false,onUpgradePress:s})=>{let a=E=>{try{let C=new URL(E),S=String(C.protocol||""),O=String(C.host||""),p=S==="https:",R=String(C.pathname||"");if(n==="graphql"&&r){let L=Zn(r,o);R=`${R} (${L})`}else r&&(R=`${R} (${r})`);let I={},h=C.searchParams;return h&&typeof h.forEach=="function"&&h.forEach((L,z)=>{I[z]=L}),{protocol:S.replace(":",""),host:O,pathname:R,params:Object.keys(I).length>0?I:null,isSecure:p}}catch{return{protocol:"",host:e,pathname:"",params:null,isSecure:false}}},l=jl(()=>a(e),[e,n,r,o]),[u,b]=Yt(false);return X(c,{style:k.urlBreakdown,children:[X(c,{style:k.urlRow,children:[l.isSecure?w(Vl,{size:12,color:kr.semantic.success}):w(Ul,{size:12,color:kr.semantic.warning}),w(g,{style:k.urlDomain,children:l.host}),X(g,{style:k.urlProtocol,children:["(",l.protocol.toUpperCase(),")"]}),i?w(Kn,{value:e,buttonStyle:k.copyButton}):w(N,{style:k.copyButton,onPress:s,activeOpacity:.7,children:w(Gn,{size:14,color:B.color.textSecondary})})]}),w(c,{style:k.urlPathRow,children:X(g,{style:k.urlPath,numberOfLines:2,children:[l.pathname,l.params?X(g,{style:k.urlQueryString,children:["?",new URLSearchParams(l.params).toString()]}):null]})}),l.params?X(c,{style:k.queryParamsCollapsible,children:[X(N,{style:k.queryParamsToggle,onPress:()=>b(!u),activeOpacity:.7,children:[w(g,{style:k.queryParamsToggleText,children:"Query Parameters"}),w(g,{style:k.collapsibleCount,children:Object.keys(l.params).length}),u?w(Jn,{size:14,color:B.color.textSecondary}):w(Xn,{size:14,color:B.color.textSecondary})]}),u?w(Zt,{title:"",data:l.params,showTypeFilter:true,rawMode:true,initialExpanded:true}):null]}):null]})},ri=$l(function({event:e,ignoredPatterns:t=id,onTogglePattern:r=sd,showBodies:o=true}){let n=e.status?Yn(e.status):null,i=!e.status&&!e.error,{isPro:s}=Kl(),[a,l]=Yt(false);Vn(()=>{a&&s&&l(false)},[a,s]);let u=nd(),b=e.requestData===void 0&&(e.requestBodyOmitted===true||(e.requestSize??0)>0),E=e.responseData===void 0&&(e.responseBodyOmitted===true||(e.responseSize??0)>0),C=e.headersOmitted===true,[S,O]=Yt(null),[p,R]=Yt(false);Vn(()=>{if(O(null),!u||!b&&!E&&!C){R(false);return}let T=false;return R(true),u(e.id).then(x=>{T||O(x)}).catch(()=>{}).finally(()=>{T||R(false)}),()=>{T=true}},[e.id,u,b,E,C]);let I=e.requestData??S?.requestData??void 0,h=e.responseData??S?.responseData??void 0,L=(C?S?.requestHeaders:void 0)??e.requestHeaders,z=(C?S?.responseHeaders:void 0)??e.responseHeaders,P=()=>{let T={method:e.method,url:e.url,status:e.status,statusText:e.statusText,timestamp:new Date(e.timestamp).toISOString(),duration:e.duration?`${e.duration}ms`:"N/A",requestHeaders:L,requestData:I,responseHeaders:z,responseData:h,requestSize:e.requestSize?Ye(e.requestSize):"N/A",responseSize:e.responseSize?Ye(e.responseSize):"N/A",error:e.error,client:e.requestClient};return`# Network Request Details
11
10
 
12
11
  ## Request
13
- - **Method:** ${m.method}
14
- - **URL:** ${m.url}
15
- - **Client:** ${m.client||"N/A"}
16
- - **Timestamp:** ${m.timestamp}
12
+ - **Method:** ${T.method}
13
+ - **URL:** ${T.url}
14
+ - **Client:** ${T.client||"N/A"}
15
+ - **Timestamp:** ${T.timestamp}
17
16
 
18
17
  ## Response
19
- - **Status:** ${m.status||"Pending"}${m.statusText?` (${m.statusText})`:""}
20
- - **Duration:** ${m.duration}
21
- - **Request Size:** ${m.requestSize}
22
- - **Response Size:** ${m.responseSize}
23
- ${m.error?`- **Error:** ${m.error}`:""}
18
+ - **Status:** ${T.status||"Pending"}${T.statusText?` (${T.statusText})`:""}
19
+ - **Duration:** ${T.duration}
20
+ - **Request Size:** ${T.requestSize}
21
+ - **Response Size:** ${T.responseSize}
22
+ ${T.error?`- **Error:** ${T.error}`:""}
24
23
 
25
24
  ## Request Headers
26
25
  \`\`\`json
27
- ${JSON.stringify(m.requestHeaders,null,2)}
26
+ ${JSON.stringify(T.requestHeaders,null,2)}
28
27
  \`\`\`
29
28
 
30
29
  ## Request Data
31
30
  \`\`\`json
32
- ${JSON.stringify(m.requestData,null,2)}
31
+ ${JSON.stringify(T.requestData,null,2)}
33
32
  \`\`\`
34
33
 
35
34
  ## Response Headers
36
35
  \`\`\`json
37
- ${JSON.stringify(m.responseHeaders,null,2)}
36
+ ${JSON.stringify(T.responseHeaders,null,2)}
38
37
  \`\`\`
39
38
 
40
39
  ## Response Data
41
40
  \`\`\`json
42
- ${JSON.stringify(m.responseData,null,2)}
41
+ ${JSON.stringify(T.responseData,null,2)}
43
42
  \`\`\`
44
- `};return G(jo,{children:[G(Ge,{testID:"buoy-network-detail-scroll",style:C.container,children:[G(u,{style:C.requestDetailsSection,children:[G(u,{style:C.httpHeader,children:[T(u,{style:C.httpMethodBadge,children:T(f,{style:C.httpMethod,children:e.method})}),e.status?T(u,{style:[C.httpStatusBadge,{backgroundColor:`${n?.color}20`}],children:G(f,{style:[C.httpStatusText,{color:n?.color}],children:[n?.text," ",n?.meaning]})}):s?G(u,{style:C.pendingBadge,children:[T(Uo,{size:10,color:q.color.warning}),T(f,{style:C.pendingBadgeText,children:"Pending"})]}):null,e.condition&&G(f,{style:{color:"#FFCC66"},children:["Conditions: ",e.condition.profile," (+",e.condition.delayMs," ms)"]}),e.duration?G(u,{style:C.httpDuration,children:[T(Uo,{size:10,color:q.color.textTertiary}),T(f,{style:C.httpDurationText,children:Jt(e.duration)})]}):null,e.override?G(u,{style:C.overrideBadge,children:[T(rd,{size:10,color:q.color.warning}),T(f,{style:C.overrideBadgeText,children:e.override.ruleName||"Overridden"})]}):null,a?T(xi,{value:L,buttonStyle:C.copyFullButton}):T(D,{style:C.copyFullButton,onPress:()=>p(!0),activeOpacity:.7,children:T(ki,{size:14,color:q.color.textSecondary})})]}),T(dd,{url:e.url,requestData:S,operationName:e.operationName,graphqlVariables:e.graphqlVariables,requestClient:e.requestClient,isPro:a,onUpgradePress:()=>p(!0)}),e.error?G(u,{style:C.errorBox,children:[T(Kl,{size:12,color:q.color.danger}),T(f,{style:C.errorText,children:e.error})]}):null]}),G(u,{style:C.timingSection,children:[G(u,{style:C.timingRow,children:[T(Uo,{size:12,color:q.color.textSecondary}),T(f,{style:C.timingLabel,children:"Started:"}),T(f,{style:C.timingValue,children:id(e.timestamp)}),G(f,{style:C.timingExact,children:["(",new Date(e.timestamp).toLocaleTimeString(),")"]}),e.requestSize||e.responseSize?G(u,{style:C.sizeRow,children:[e.requestSize!==void 0?G(u,{style:C.sizeItem,children:[T(yi,{size:10,color:q.color.info}),T(f,{style:C.sizeLabel,children:"Sent:"}),T(f,{style:C.sizeValue,children:Xe(e.requestSize)})]}):null,e.responseSize!==void 0?G(u,{style:C.sizeItem,children:[T(bi,{size:10,color:Fr}),T(f,{style:C.sizeLabel,children:"Received:"}),T(f,{style:C.sizeValue,children:Xe(e.responseSize)})]}):null]}):null]}),e.timings?G(jo,{children:[T(u,{style:C.phaseDivider}),T(ld,{timings:e.timings,total:e.duration??e.timings.ttfb+e.timings.download})]}):null]}),T(qt,{title:"Request Headers",icon:T(yi,{size:14,color:q.color.info}),defaultOpen:!1,count:Object.keys(A).length,children:Object.keys(A).length>0?T(u,{style:C.dataViewerContainer,children:T(pr,{title:"",data:A,showTypeFilter:!0,rawMode:!0,initialExpanded:!0,disableCopy:!a})}):T(f,{style:C.emptyText,children:"No request headers"})}),T(qt,{title:"Response Headers",icon:T(bi,{size:14,color:Fr}),defaultOpen:!1,count:Object.keys(H).length,children:Object.keys(H).length>0?T(u,{style:C.dataViewerContainer,children:T(pr,{title:"",data:H,showTypeFilter:!0,rawMode:!0,initialExpanded:!0,disableCopy:!a})}):T(f,{style:C.emptyText,children:"No response headers yet"})}),S!==void 0?T(qt,{title:"Request Body",icon:T(Vr,{size:14,color:q.color.accent}),defaultOpen:!1,children:T(u,{style:C.dataViewerContainer,children:i?T(pr,{title:"",data:S,showTypeFilter:!0,rawMode:!0,initialExpanded:!0,disableCopy:!a}):T(wi,{})})}):x?T(qt,{title:"Request Body",icon:T(Vr,{size:14,color:q.color.accent}),defaultOpen:!0,children:T(f,{style:C.emptyText,children:w?`Loading request body (${Xe(e.requestSize??0)})\u2026`:"Request body unavailable"})}):null,v!==void 0?T(qt,{title:"Response Body",icon:T(Vr,{size:14,color:Fr}),defaultOpen:!0,children:T(u,{style:C.dataViewerContainer,children:i?T(pr,{title:"",data:v,showTypeFilter:!0,rawMode:!0,initialExpanded:!0,disableCopy:!a}):T(wi,{})})}):O?T(qt,{title:"Response Body",icon:T(Vr,{size:14,color:Fr}),defaultOpen:!0,children:T(f,{style:C.emptyText,children:w?`Loading response body (${Xe(e.responseSize??0)})\u2026`:"Response body unavailable"})}):null,T(qt,{title:"Filter Options",icon:T(Zl,{size:14,color:q.color.warning}),defaultOpen:!1,children:T(u,{style:C.filterOptionsContainer,children:(()=>{let m="",y="";try{let b=new URL(e.url);m=b.hostname,y=b.pathname}catch{y=e.url}let k=r.has(m),d=r.has(y);return G(jo,{children:[G(D,{style:[C.filterOption,k&&C.filterOptionActive],onPress:()=>m&&o(m),children:[G(u,{style:C.filterOptionLeft,children:[T(ed,{size:16,color:k?q.color.warning:q.color.textTertiary}),G(u,{style:C.filterOptionContent,children:[T(f,{style:C.filterOptionLabel,children:"Ignore Domain"}),T(f,{style:C.filterOptionValue,children:m||"N/A"})]})]}),T(u,{style:[C.filterToggle,k&&C.filterToggleActive],children:T(f,{style:[C.filterToggleText,k&&C.filterToggleTextActive],children:k?"IGNORED":"IGNORE"})})]}),G(D,{style:[C.filterOption,d&&C.filterOptionActive],onPress:()=>y&&o(y),children:[G(u,{style:C.filterOptionLeft,children:[T(td,{size:16,color:d?q.color.warning:q.color.textTertiary}),G(u,{style:C.filterOptionContent,children:[T(f,{style:C.filterOptionLabel,children:"Ignore URL Pattern"}),T(f,{style:C.filterOptionValue,numberOfLines:1,children:y||"N/A"})]})]}),T(u,{style:[C.filterToggle,d&&C.filterToggleActive],children:T(f,{style:[C.filterToggleText,d&&C.filterToggleTextActive],children:d?"IGNORED":"IGNORE"})})]}),T(u,{style:C.filterInfoBox,children:T(f,{style:C.filterInfoText,children:"Ignored requests will be hidden from the network list. You can manage filters in the Filters tab."})})]})})()})})]}),T(nd,{visible:l,onClose:()=>p(!1),featureName:"Copy Request Details",description:"Copy network request details to share or debug issues.",benefits:["Copy full request details including headers and body","Export to JSON, Markdown, or plain text","Share request data with teammates","Feed data to AI assistants for debugging"]})]})}),C=K.create({container:{flex:1,backgroundColor:"transparent"},requestDetailsSection:{marginHorizontal:12,marginTop:12,backgroundColor:q.color.surface,borderRadius:8,borderWidth:1,borderColor:q.color.border,padding:12},httpHeader:{flexDirection:"row",alignItems:"center",gap:8,marginBottom:12,flexWrap:"nowrap"},httpMethodBadge:{backgroundColor:q.color.infoSoft,paddingHorizontal:8,paddingVertical:4,borderRadius:4},httpMethod:{color:q.color.info,fontSize:11,fontWeight:"700",letterSpacing:.5},httpStatusBadge:{paddingHorizontal:8,paddingVertical:4,borderRadius:4},httpStatusText:{fontSize:11,fontWeight:"600"},pendingBadge:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:q.color.warningSoft,paddingHorizontal:8,paddingVertical:4,borderRadius:4},pendingBadgeText:{color:q.color.warning,fontSize:11,fontWeight:"600"},httpDuration:{flexDirection:"row",alignItems:"center",gap:4},httpDurationText:{color:q.color.textSecondary,fontSize:11},overrideBadge:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:6,paddingVertical:3,borderRadius:4,backgroundColor:q.color.warningSoft},overrideBadgeText:{color:q.color.warning,fontSize:10,fontWeight:"700"},copyFullButton:{marginLeft:"auto",flexShrink:0,padding:4},urlBreakdown:{backgroundColor:q.color.bg,borderRadius:4,padding:8},urlRow:{flexDirection:"row",alignItems:"center",gap:6,marginBottom:4},urlDomain:{color:q.color.text,fontSize:12,fontWeight:"600",flex:1},urlProtocol:{color:q.color.textTertiary,fontSize:10},copyButton:{padding:4},urlPathRow:{paddingLeft:18},urlPath:{color:q.color.textSecondary,fontSize:11,fontFamily:Gt},urlQueryString:{color:q.color.info,fontSize:11,fontFamily:Gt},queryParamsCollapsible:{marginTop:8},queryParamsToggle:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:12,paddingVertical:10,backgroundColor:q.color.surfaceElevated,borderRadius:8,borderWidth:1,borderColor:q.color.border,marginBottom:8},queryParamsToggleText:{flexGrow:0,color:q.color.text,fontSize:12,fontWeight:"600",letterSpacing:.3},timingSection:{marginHorizontal:12,marginTop:8,backgroundColor:q.color.surface,borderRadius:8,borderWidth:1,borderColor:q.color.border,padding:12},timingRow:{flexDirection:"row",alignItems:"center",gap:6,flexWrap:"wrap"},timingLabel:{color:q.color.textSecondary,fontSize:11},timingValue:{color:q.color.text,fontSize:11,fontWeight:"600"},timingExact:{color:q.color.textTertiary,fontSize:10,marginLeft:4},sizeRow:{flexDirection:"row",alignItems:"center",gap:16,marginLeft:"auto"},sizeItem:{flexDirection:"row",alignItems:"center",gap:4},sizeLabel:{color:q.color.textTertiary,fontSize:10},sizeValue:{color:q.color.info,fontSize:10,fontFamily:Gt,fontWeight:"600"},phaseDivider:{height:1,backgroundColor:q.color.border,marginTop:12,marginBottom:12},phaseList:{gap:8},phaseRow:{flexDirection:"row",alignItems:"center",gap:14},phaseLabelGroup:{width:150},phaseLabel:{fontSize:12,color:q.color.textSecondary},phaseHint:{fontSize:10,color:q.color.textTertiary},phaseTrack:{flex:1,height:7,borderRadius:4,backgroundColor:q.color.surfaceElevated,justifyContent:"center",overflow:"hidden"},phaseBar:{height:7,borderRadius:4},phaseValue:{width:72,textAlign:"right",fontSize:12,fontFamily:Gt,color:q.color.text},collapsibleSection:{marginHorizontal:12,marginTop:8,backgroundColor:q.color.surface,borderRadius:8,borderWidth:1,borderColor:q.color.border,overflow:"hidden"},collapsibleHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",padding:12,backgroundColor:q.color.surfaceElevated},collapsibleTitle:{flexDirection:"row",alignItems:"center",gap:8},collapsibleTitleText:{color:q.color.text,fontSize:13,fontWeight:"600"},collapsibleCount:{color:q.color.textTertiary,fontSize:11.5,fontFamily:Gt},collapsibleContent:{padding:12},dataViewerContainer:{marginTop:-12,marginHorizontal:-12,marginBottom:-12},bodyDeferred:{height:120},errorBox:{flexDirection:"row",alignItems:"center",gap:6,backgroundColor:q.color.dangerSoft,padding:8,borderRadius:4,marginTop:8},errorText:{color:q.color.danger,fontSize:11,flex:1},emptyText:{color:q.color.textTertiary,fontSize:12,fontStyle:"italic",textAlign:"center"},filterOptionsContainer:{gap:12},filterOption:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",backgroundColor:q.color.surfaceElevated,borderRadius:8,padding:12,borderWidth:1,borderColor:q.color.border},filterOptionActive:{backgroundColor:q.color.warningSoft,borderColor:q.color.warning+"33"},filterOptionLeft:{flexDirection:"row",alignItems:"center",gap:12,flex:1},filterOptionContent:{flex:1},filterOptionLabel:{color:q.color.textSecondary,fontSize:11,marginBottom:2,textTransform:"uppercase",letterSpacing:.5},filterOptionValue:{color:q.color.text,fontSize:13,fontFamily:Gt},filterToggle:{paddingHorizontal:10,paddingVertical:6,borderRadius:4,backgroundColor:q.color.bg,borderWidth:1,borderColor:q.color.border},filterToggleActive:{backgroundColor:q.color.warningSoft,borderColor:q.color.warning+"4D"},filterToggleText:{fontSize:10,fontWeight:"600",color:q.color.textTertiary,letterSpacing:.5},filterToggleTextActive:{color:q.color.warning},filterInfoBox:{backgroundColor:q.color.infoSoft,borderRadius:6,padding:10,borderWidth:1,borderColor:q.color.info+"33"},filterInfoText:{color:q.color.textSecondary,fontSize:11,lineHeight:16}});g();he();import{DynamicFilterView as Ri,macOSColors as Je,FileText as Ti,FileCode as Ci,Link as ud,Zap as cd,Settings as pd,Hash as fd,Eye as gd,ToolbarCopyButton as md,formatRelativeTime as hd,useFeatureGate as yd,ProFeatureBanner as bd,ExportPreview as wd,monoFont as Ei}from"@buoy-gg/shared-ui/web";import{DataViewer as vd}from"@buoy-gg/shared-ui/web/dataViewer";import{useCallback as et,useMemo as Mt,useState as Sd}from"react";import{Fragment as Cd,jsx as Fe,jsxs as Ni}from"react/jsx-runtime";var Oi={includeMethod:!0,includeStatus:!0,includeDuration:!0,includeTimestamp:!0,includeClient:!0,includeSizes:!0,includeErrors:!0,includeRequestHeaders:!0,includeResponseHeaders:!0,includeRequestBody:!0,includeResponseBody:!0,bodySizeThreshold:10,format:"markdown",filterMode:"all"},gr={urls:{includeMethod:!0,includeStatus:!1,includeDuration:!1,includeTimestamp:!1,includeClient:!1,includeSizes:!1,includeErrors:!1,includeRequestHeaders:!1,includeResponseHeaders:!1,includeRequestBody:!1,includeResponseBody:!1,bodySizeThreshold:10,format:"plaintext",filterMode:"all"},llm:{includeMethod:!0,includeStatus:!0,includeDuration:!0,includeTimestamp:!0,includeClient:!0,includeSizes:!0,includeErrors:!0,includeRequestHeaders:!0,includeResponseHeaders:!0,includeRequestBody:!0,includeResponseBody:!0,bodySizeThreshold:10,format:"markdown",filterMode:"all"},json:{includeMethod:!0,includeStatus:!0,includeDuration:!0,includeTimestamp:!0,includeClient:!0,includeSizes:!0,includeErrors:!0,includeRequestHeaders:!0,includeResponseHeaders:!0,includeRequestBody:!0,includeResponseBody:!0,bodySizeThreshold:-1,format:"json",filterMode:"all"},full:{includeMethod:!0,includeStatus:!0,includeDuration:!0,includeTimestamp:!0,includeClient:!0,includeSizes:!0,includeErrors:!0,includeRequestHeaders:!0,includeResponseHeaders:!0,includeRequestBody:!0,includeResponseBody:!0,bodySizeThreshold:-1,format:"markdown",filterMode:"all"}};function kd(t){for(let[e,r]of Object.entries(gr))if(Object.keys(r).every(i=>r[i]===t[i]))return e;return null}var xd=100*1024,Rd=500*1024;function Td(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function Ii({settings:t,onSettingsChange:e,events:r=[]}){let{isPro:o}=yd(),i=cr(),[n,s]=Sd(!1),a=r.length>0,l=Mt(()=>{if(!a)return null;let k=r.map(d=>typeof d.timestamp=="number"?d.timestamp:new Date(d.timestamp).getTime());return Math.max(...k)},[r,a]),p=Mt(()=>kd(t),[t]),c=et(()=>{e(gr.urls)},[e]),x=et(()=>{e(gr.llm)},[e]),O=et(()=>{e(gr.json)},[e]),E=et(()=>{e(gr.full)},[e]),P=et((k,d)=>{let[b,h]=k.split("::");if(b==="preset"){switch(h){case"urls":c();break;case"llm":x();break;case"json":O();break;case"full":E();break}return}if(b==="requestInfo"){e({...t,[h]:!t[h]});return}if(b==="headers"){e({...t,[h]:!t[h]});return}if(b==="body"){e(h==="bodySizeThreshold"?{...t,bodySizeThreshold:d}:{...t,[h]:!t[h]});return}if(b==="format"){e({...t,format:d});return}b==="filter"&&e({...t,filterMode:d})},[t,e,c,x,O,E]),N=Mt(()=>({method:"POST",url:"https://api.example.com/v1/users",status:201,duration:342,timestamp:new Date().toISOString(),requestHeaders:{"Content-Type":"application/json",Authorization:"Bearer ***"},responseHeaders:{"Content-Type":"application/json","X-Request-ID":"abc123"},requestBody:{name:"John Doe",email:"john@example.com"},responseBody:{id:"user_123",name:"John Doe",email:"john@example.com",createdAt:"2025-01-10T12:00:00Z"}}),[]),w=Mt(()=>a?r:[N],[a,r,N]),R=Mt(()=>{let k=a?r:[N],d=0;for(let b of k){if(t.includeMethod&&(d+=(b.url?.length||0)+10),t.includeStatus&&(d+=30),t.includeTimestamp&&(d+=30),t.includeRequestHeaders)try{d+=JSON.stringify(b.requestHeaders||{}).length}catch{d+=100}if(t.includeRequestBody){let h="requestBody"in b?b.requestBody:b.requestData;try{d+=JSON.stringify(h||{}).length}catch{d+=100}}if(t.includeResponseBody){let h="responseBody"in b?b.responseBody:b.responseData;try{d+=JSON.stringify(h||{}).length}catch{d+=100}}}return d},[a,r,N,t]),S=Mt(()=>R>=Rd?"danger":R>=xd?"warning":"none",[R]),v=et(()=>{let k=a?r:[N],{format:d,includeMethod:b,includeStatus:h,includeTimestamp:M,includeRequestHeaders:ae,includeRequestBody:pe,includeResponseBody:re}=t,X=Q=>{let z={};return b&&(z.method=Q.method,z.url=Q.url),h&&(z.status=Q.status,z.duration=Q.duration),M&&(z.timestamp=Q.timestamp),ae&&(z.requestHeaders=Q.requestHeaders),pe&&(z.requestBody="requestBody"in Q?Q.requestBody:Q.requestData),re&&(z.responseBody="responseBody"in Q?Q.responseBody:Q.responseData),z};if(d==="json"){let Q=k.map(X);return JSON.stringify(Q,null,2)}return d==="markdown"?k.map((z,Z)=>{let J=[];J.push(`# Request ${Z+1}`),b&&J.push(`
45
- **${z.method}** ${z.url}`);let Pe=[];if(h&&(Pe.push(`**Status:** ${z.status}`),Pe.push(`**Duration:** ${z.duration}ms`)),M&&Pe.push(`**Timestamp:** ${z.timestamp}`),Pe.length>0&&J.push(`
46
- `+Pe.join(`
47
- `)),ae){let Ee=z.requestHeaders||{};J.push(`
43
+ `};return X(To,{children:[X(dt,{testID:"buoy-network-detail-scroll",style:k.container,children:[X(c,{style:k.requestDetailsSection,children:[X(c,{style:k.httpHeader,children:[w(c,{style:k.httpMethodBadge,children:w(g,{style:k.httpMethod,children:e.method})}),e.status?w(c,{style:[k.httpStatusBadge,{backgroundColor:`${n?.color}20`}],children:X(g,{style:[k.httpStatusText,{color:n?.color}],children:[n?.text," ",n?.meaning]})}):i?X(c,{style:k.pendingBadge,children:[w(So,{size:10,color:B.color.warning}),w(g,{style:k.pendingBadgeText,children:"Pending"})]}):null,e.condition&&X(g,{style:{color:"#FFCC66"},children:["Conditions: ",e.condition.profile," (+",e.condition.delayMs," ms)"]}),e.duration?X(c,{style:k.httpDuration,children:[w(So,{size:10,color:B.color.textTertiary}),w(g,{style:k.httpDurationText,children:Ir(e.duration)})]}):null,e.override?X(c,{style:k.overrideBadge,children:[w(Gl,{size:10,color:B.color.warning}),w(g,{style:k.overrideBadgeText,children:e.override.ruleName||"Overridden"})]}):null,s?w(Kn,{value:P,buttonStyle:k.copyFullButton}):w(N,{style:k.copyFullButton,onPress:()=>l(true),activeOpacity:.7,children:w(Gn,{size:14,color:B.color.textSecondary})})]}),w(ld,{url:e.url,requestData:I,operationName:e.operationName,graphqlVariables:e.graphqlVariables,requestClient:e.requestClient,isPro:s,onUpgradePress:()=>l(true)}),e.error?X(c,{style:k.errorBox,children:[w(Wl,{size:12,color:B.color.danger}),w(g,{style:k.errorText,children:e.error})]}):null]}),X(c,{style:k.timingSection,children:[X(c,{style:k.timingRow,children:[w(So,{size:12,color:B.color.textSecondary}),w(g,{style:k.timingLabel,children:"Started:"}),w(g,{style:k.timingValue,children:Zl(e.timestamp)}),X(g,{style:k.timingExact,children:["(",new Date(e.timestamp).toLocaleTimeString(),")"]}),e.requestSize||e.responseSize?X(c,{style:k.sizeRow,children:[e.requestSize!==void 0?X(c,{style:k.sizeItem,children:[w(Un,{size:10,color:B.color.info}),w(g,{style:k.sizeLabel,children:"Sent:"}),w(g,{style:k.sizeValue,children:Ye(e.requestSize)})]}):null,e.responseSize!==void 0?X(c,{style:k.sizeItem,children:[w(_n,{size:10,color:Er}),w(g,{style:k.sizeLabel,children:"Received:"}),w(g,{style:k.sizeValue,children:Ye(e.responseSize)})]}):null]}):null]}),e.timings?X(To,{children:[w(c,{style:k.phaseDivider}),w(ad,{timings:e.timings,total:e.duration??e.timings.ttfb+e.timings.download})]}):null]}),w(bt,{title:"Request Headers",icon:w(Un,{size:14,color:B.color.info}),defaultOpen:false,count:Object.keys(L).length,children:Object.keys(L).length>0?w(c,{style:k.dataViewerContainer,children:w(Zt,{title:"",data:L,showTypeFilter:true,rawMode:true,initialExpanded:true,disableCopy:!s})}):w(g,{style:k.emptyText,children:"No request headers"})}),w(bt,{title:"Response Headers",icon:w(_n,{size:14,color:Er}),defaultOpen:false,count:Object.keys(z).length,children:Object.keys(z).length>0?w(c,{style:k.dataViewerContainer,children:w(Zt,{title:"",data:z,showTypeFilter:true,rawMode:true,initialExpanded:true,disableCopy:!s})}):w(g,{style:k.emptyText,children:"No response headers yet"})}),I!==void 0?w(bt,{title:"Request Body",icon:w(Rr,{size:14,color:B.color.accent}),defaultOpen:false,children:w(c,{style:k.dataViewerContainer,children:o?w(Zt,{title:"",data:I,showTypeFilter:true,rawMode:true,initialExpanded:true,disableCopy:!s}):w(ti,{})})}):b?w(bt,{title:"Request Body",icon:w(Rr,{size:14,color:B.color.accent}),defaultOpen:true,children:w(g,{style:k.emptyText,children:p?`Loading request body (${Ye(e.requestSize??0)})\u2026`:"Request body unavailable"})}):null,h!==void 0?w(bt,{title:"Response Body",icon:w(Rr,{size:14,color:Er}),defaultOpen:true,children:w(c,{style:k.dataViewerContainer,children:o?w(Zt,{title:"",data:h,showTypeFilter:true,rawMode:true,initialExpanded:true,disableCopy:!s}):w(ti,{})})}):E?w(bt,{title:"Response Body",icon:w(Rr,{size:14,color:Er}),defaultOpen:true,children:w(g,{style:k.emptyText,children:p?`Loading response body (${Ye(e.responseSize??0)})\u2026`:"Response body unavailable"})}):null,w(bt,{title:"Filter Options",icon:w(_l,{size:14,color:B.color.warning}),defaultOpen:false,children:w(c,{style:k.filterOptionsContainer,children:(()=>{let T="",x="";try{let d=new URL(e.url);T=d.hostname,x=d.pathname}catch{x=e.url}let m=t.has(T),v=t.has(x);return X(To,{children:[X(N,{style:[k.filterOption,m&&k.filterOptionActive],onPress:()=>T&&r(T),children:[X(c,{style:k.filterOptionLeft,children:[w(Xl,{size:16,color:m?B.color.warning:B.color.textTertiary}),X(c,{style:k.filterOptionContent,children:[w(g,{style:k.filterOptionLabel,children:"Ignore Domain"}),w(g,{style:k.filterOptionValue,children:T||"N/A"})]})]}),w(c,{style:[k.filterToggle,m&&k.filterToggleActive],children:w(g,{style:[k.filterToggleText,m&&k.filterToggleTextActive],children:m?"IGNORED":"IGNORE"})})]}),X(N,{style:[k.filterOption,v&&k.filterOptionActive],onPress:()=>x&&r(x),children:[X(c,{style:k.filterOptionLeft,children:[w(Jl,{size:16,color:v?B.color.warning:B.color.textTertiary}),X(c,{style:k.filterOptionContent,children:[w(g,{style:k.filterOptionLabel,children:"Ignore URL Pattern"}),w(g,{style:k.filterOptionValue,numberOfLines:1,children:x||"N/A"})]})]}),w(c,{style:[k.filterToggle,v&&k.filterToggleActive],children:w(g,{style:[k.filterToggleText,v&&k.filterToggleTextActive],children:v?"IGNORED":"IGNORE"})})]}),w(c,{style:k.filterInfoBox,children:w(g,{style:k.filterInfoText,children:"Ignored requests will be hidden from the network list. You can manage filters in the Filters tab."})})]})})()})})]}),w(Yl,{visible:a,onClose:()=>l(false),featureName:"Copy Request Details",description:"Copy network request details to share or debug issues.",benefits:["Copy full request details including headers and body","Export to JSON, Markdown, or plain text","Share request data with teammates","Feed data to AI assistants for debugging"]})]})}),k=fe.create({container:{flex:1,backgroundColor:"transparent"},requestDetailsSection:{marginHorizontal:12,marginTop:12,backgroundColor:B.color.surface,borderRadius:8,borderWidth:1,borderColor:B.color.border,padding:12},httpHeader:{flexDirection:"row",alignItems:"center",gap:8,marginBottom:12,flexWrap:"nowrap"},httpMethodBadge:{backgroundColor:B.color.infoSoft,paddingHorizontal:8,paddingVertical:4,borderRadius:4},httpMethod:{color:B.color.info,fontSize:11,fontWeight:"700",letterSpacing:.5},httpStatusBadge:{paddingHorizontal:8,paddingVertical:4,borderRadius:4},httpStatusText:{fontSize:11,fontWeight:"600"},pendingBadge:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:B.color.warningSoft,paddingHorizontal:8,paddingVertical:4,borderRadius:4},pendingBadgeText:{color:B.color.warning,fontSize:11,fontWeight:"600"},httpDuration:{flexDirection:"row",alignItems:"center",gap:4},httpDurationText:{color:B.color.textSecondary,fontSize:11},overrideBadge:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:6,paddingVertical:3,borderRadius:4,backgroundColor:B.color.warningSoft},overrideBadgeText:{color:B.color.warning,fontSize:10,fontWeight:"700"},copyFullButton:{marginLeft:"auto",flexShrink:0,padding:4},urlBreakdown:{backgroundColor:B.color.bg,borderRadius:4,padding:8},urlRow:{flexDirection:"row",alignItems:"center",gap:6,marginBottom:4},urlDomain:{color:B.color.text,fontSize:12,fontWeight:"600",flex:1},urlProtocol:{color:B.color.textTertiary,fontSize:10},copyButton:{padding:4},urlPathRow:{paddingLeft:18},urlPath:{color:B.color.textSecondary,fontSize:11,fontFamily:Bt},urlQueryString:{color:B.color.info,fontSize:11,fontFamily:Bt},queryParamsCollapsible:{marginTop:8},queryParamsToggle:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:12,paddingVertical:10,backgroundColor:B.color.surfaceElevated,borderRadius:8,borderWidth:1,borderColor:B.color.border,marginBottom:8},queryParamsToggleText:{flexGrow:0,color:B.color.text,fontSize:12,fontWeight:"600",letterSpacing:.3},timingSection:{marginHorizontal:12,marginTop:8,backgroundColor:B.color.surface,borderRadius:8,borderWidth:1,borderColor:B.color.border,padding:12},timingRow:{flexDirection:"row",alignItems:"center",gap:6,flexWrap:"wrap"},timingLabel:{color:B.color.textSecondary,fontSize:11},timingValue:{color:B.color.text,fontSize:11,fontWeight:"600"},timingExact:{color:B.color.textTertiary,fontSize:10,marginLeft:4},sizeRow:{flexDirection:"row",alignItems:"center",gap:16,marginLeft:"auto"},sizeItem:{flexDirection:"row",alignItems:"center",gap:4},sizeLabel:{color:B.color.textTertiary,fontSize:10},sizeValue:{color:B.color.info,fontSize:10,fontFamily:Bt,fontWeight:"600"},phaseDivider:{height:1,backgroundColor:B.color.border,marginTop:12,marginBottom:12},phaseList:{gap:8},phaseRow:{flexDirection:"row",alignItems:"center",gap:14},phaseLabelGroup:{width:150},phaseLabel:{fontSize:12,color:B.color.textSecondary},phaseHint:{fontSize:10,color:B.color.textTertiary},phaseTrack:{flex:1,height:7,borderRadius:4,backgroundColor:B.color.surfaceElevated,justifyContent:"center",overflow:"hidden"},phaseBar:{height:7,borderRadius:4},phaseValue:{width:72,textAlign:"right",fontSize:12,fontFamily:Bt,color:B.color.text},collapsibleSection:{marginHorizontal:12,marginTop:8,backgroundColor:B.color.surface,borderRadius:8,borderWidth:1,borderColor:B.color.border,overflow:"hidden"},collapsibleHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",padding:12,backgroundColor:B.color.surfaceElevated},collapsibleTitle:{flexDirection:"row",alignItems:"center",gap:8},collapsibleTitleText:{color:B.color.text,fontSize:13,fontWeight:"600"},collapsibleCount:{color:B.color.textTertiary,fontSize:11.5,fontFamily:Bt},collapsibleContent:{padding:12},dataViewerContainer:{marginTop:-12,marginHorizontal:-12,marginBottom:-12},bodyDeferred:{height:120},errorBox:{flexDirection:"row",alignItems:"center",gap:6,backgroundColor:B.color.dangerSoft,padding:8,borderRadius:4,marginTop:8},errorText:{color:B.color.danger,fontSize:11,flex:1},emptyText:{color:B.color.textTertiary,fontSize:12,fontStyle:"italic",textAlign:"center"},filterOptionsContainer:{gap:12},filterOption:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",backgroundColor:B.color.surfaceElevated,borderRadius:8,padding:12,borderWidth:1,borderColor:B.color.border},filterOptionActive:{backgroundColor:B.color.warningSoft,borderColor:B.color.warning+"33"},filterOptionLeft:{flexDirection:"row",alignItems:"center",gap:12,flex:1},filterOptionContent:{flex:1},filterOptionLabel:{color:B.color.textSecondary,fontSize:11,marginBottom:2,textTransform:"uppercase",letterSpacing:.5},filterOptionValue:{color:B.color.text,fontSize:13,fontFamily:Bt},filterToggle:{paddingHorizontal:10,paddingVertical:6,borderRadius:4,backgroundColor:B.color.bg,borderWidth:1,borderColor:B.color.border},filterToggleActive:{backgroundColor:B.color.warningSoft,borderColor:B.color.warning+"4D"},filterToggleText:{fontSize:10,fontWeight:"600",color:B.color.textTertiary,letterSpacing:.5},filterToggleTextActive:{color:B.color.warning},filterInfoBox:{backgroundColor:B.color.infoSoft,borderRadius:6,padding:10,borderWidth:1,borderColor:B.color.info+"33"},filterInfoText:{color:B.color.textSecondary,fontSize:11,lineHeight:16}});D();ce();import{DynamicFilterView as oi,macOSColors as Ne,FileText as ni,FileCode as ii,Link as dd,Zap as ud,Settings as cd,Hash as hd,Eye as pd,ToolbarCopyButton as fd,formatRelativeTime as gd,useFeatureGate as md,ProFeatureBanner as yd,ExportPreview as bd,monoFont as si}from"@buoy-gg/shared-ui/web";import{DataViewer as vd}from"@buoy-gg/shared-ui/web/dataViewer";import{useCallback as We,useMemo as vt,useState as Sd}from"react";import{Fragment as xd,jsx as Ae,jsxs as ai}from"react/jsx-runtime";var wd={includeMethod:true,includeStatus:true,includeDuration:true,includeTimestamp:true,includeClient:true,includeSizes:true,includeErrors:true,includeRequestHeaders:true,includeResponseHeaders:true,includeRequestBody:true,includeResponseBody:true,bodySizeThreshold:10,format:"markdown",filterMode:"all"},Qt={urls:{includeMethod:true,includeStatus:false,includeDuration:false,includeTimestamp:false,includeClient:false,includeSizes:false,includeErrors:false,includeRequestHeaders:false,includeResponseHeaders:false,includeRequestBody:false,includeResponseBody:false,bodySizeThreshold:10,format:"plaintext",filterMode:"all"},llm:{includeMethod:true,includeStatus:true,includeDuration:true,includeTimestamp:true,includeClient:true,includeSizes:true,includeErrors:true,includeRequestHeaders:true,includeResponseHeaders:true,includeRequestBody:true,includeResponseBody:true,bodySizeThreshold:10,format:"markdown",filterMode:"all"},json:{includeMethod:true,includeStatus:true,includeDuration:true,includeTimestamp:true,includeClient:true,includeSizes:true,includeErrors:true,includeRequestHeaders:true,includeResponseHeaders:true,includeRequestBody:true,includeResponseBody:true,bodySizeThreshold:-1,format:"json",filterMode:"all"},full:{includeMethod:true,includeStatus:true,includeDuration:true,includeTimestamp:true,includeClient:true,includeSizes:true,includeErrors:true,includeRequestHeaders:true,includeResponseHeaders:true,includeRequestBody:true,includeResponseBody:true,bodySizeThreshold:-1,format:"markdown",filterMode:"all"}};function Td(e){for(let[t,r]of Object.entries(Qt))if(Object.keys(r).every(o=>r[o]===e[o]))return t;return null}var Cd=100*1024,Rd=500*1024;function kd(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Id({settings:e,onSettingsChange:t,events:r=[]}){let{isPro:o}=md(),n=vo(),[i,s]=Sd(false),a=r.length>0,l=vt(()=>{if(!a)return null;let v=r.map(d=>typeof d.timestamp=="number"?d.timestamp:new Date(d.timestamp).getTime());return Math.max(...v)},[r,a]),u=vt(()=>Td(e),[e]),b=We(()=>{t(Qt.urls)},[t]),E=We(()=>{t(Qt.llm)},[t]),C=We(()=>{t(Qt.json)},[t]),S=We(()=>{t(Qt.full)},[t]),O=We((v,d)=>{let[f,y]=v.split("::");if(f==="preset"){switch(y){case"urls":b();break;case"llm":E();break;case"json":C();break;case"full":S();break}return}if(f==="requestInfo"){t({...e,[y]:!e[y]});return}if(f==="headers"){t({...e,[y]:!e[y]});return}if(f==="body"){t(y==="bodySizeThreshold"?{...e,bodySizeThreshold:d}:{...e,[y]:!e[y]});return}if(f==="format"){t({...e,format:d});return}f==="filter"&&t({...e,filterMode:d})},[e,t,b,E,C,S]),p=vt(()=>({method:"POST",url:"https://api.example.com/v1/users",status:201,duration:342,timestamp:new Date().toISOString(),requestHeaders:{"Content-Type":"application/json",Authorization:"Bearer ***"},responseHeaders:{"Content-Type":"application/json","X-Request-ID":"abc123"},requestBody:{name:"John Doe",email:"john@example.com"},responseBody:{id:"user_123",name:"John Doe",email:"john@example.com",createdAt:"2025-01-10T12:00:00Z"}}),[]),R=vt(()=>a?r:[p],[a,r,p]),I=vt(()=>{let v=a?r:[p],d=0;for(let f of v){if(e.includeMethod&&(d+=(f.url?.length||0)+10),e.includeStatus&&(d+=30),e.includeTimestamp&&(d+=30),e.includeRequestHeaders)try{d+=JSON.stringify(f.requestHeaders||{}).length}catch{d+=100}if(e.includeRequestBody){let y="requestBody"in f?f.requestBody:f.requestData;try{d+=JSON.stringify(y||{}).length}catch{d+=100}}if(e.includeResponseBody){let y="responseBody"in f?f.responseBody:f.responseData;try{d+=JSON.stringify(y||{}).length}catch{d+=100}}}return d},[a,r,p,e]),h=vt(()=>I>=Rd?"danger":I>=Cd?"warning":"none",[I]),L=We(()=>{let v=a?r:[p],{format:d,includeMethod:f,includeStatus:y,includeTimestamp:A,includeRequestHeaders:ae,includeRequestBody:te,includeResponseBody:Q}=e,G=H=>{let W={};return f&&(W.method=H.method,W.url=H.url),y&&(W.status=H.status,W.duration=H.duration),A&&(W.timestamp=H.timestamp),ae&&(W.requestHeaders=H.requestHeaders),te&&(W.requestBody="requestBody"in H?H.requestBody:H.requestData),Q&&(W.responseBody="responseBody"in H?H.responseBody:H.responseData),W};if(d==="json"){let H=v.map(G);return JSON.stringify(H,null,2)}return d==="markdown"?v.map((H,W)=>{let F=[];F.push(`# Request ${W+1}`),f&&F.push(`
44
+ **${H.method}** ${H.url}`);let oe=[];if(y&&(oe.push(`**Status:** ${H.status}`),oe.push(`**Duration:** ${H.duration}ms`)),A&&oe.push(`**Timestamp:** ${H.timestamp}`),oe.length>0&&F.push(`
45
+ `+oe.join(`
46
+ `)),ae){let pe=H.requestHeaders||{};F.push(`
48
47
  ## Request Headers
49
48
  \`\`\`json
50
- ${JSON.stringify(Ee,null,2)}
51
- \`\`\``)}if(pe){let Ee="requestBody"in z?z.requestBody:z.requestData;J.push(`
49
+ ${JSON.stringify(pe,null,2)}
50
+ \`\`\``)}if(te){let pe="requestBody"in H?H.requestBody:H.requestData;F.push(`
52
51
  ## Request Body
53
52
  \`\`\`json
54
- ${JSON.stringify(Ee||{},null,2)}
55
- \`\`\``)}if(re){let Ee="responseBody"in z?z.responseBody:z.responseData;J.push(`
53
+ ${JSON.stringify(pe||{},null,2)}
54
+ \`\`\``)}if(Q){let pe="responseBody"in H?H.responseBody:H.responseData;F.push(`
56
55
  ## Response Body
57
56
  \`\`\`json
58
- ${JSON.stringify(Ee||{},null,2)}
59
- \`\`\``)}return J.join(`
57
+ ${JSON.stringify(pe||{},null,2)}
58
+ \`\`\``)}return F.join(`
60
59
  `)}).join(`
61
60
 
62
61
  ---
63
62
 
64
- `)||"No data included":k.map((Q,z)=>{let Z=[];if(Z.push(`Request ${z+1}:`),b&&Z.push(`${Q.method} ${Q.url}`),h&&(Z.push(`Status: ${Q.status}`),Z.push(`Duration: ${Q.duration}ms`)),M&&Z.push(`Timestamp: ${Q.timestamp}`),pe){let J="requestBody"in Q?Q.requestBody:Q.requestData;Z.push(`
65
- Request:`),Z.push(JSON.stringify(J||{},null,2))}if(re){let J="responseBody"in Q?Q.responseBody:Q.responseData;Z.push(`
66
- Response:`),Z.push(JSON.stringify(J||{},null,2))}return Z.join(`
63
+ `)||"No data included":v.map((H,W)=>{let F=[];if(F.push(`Request ${W+1}:`),f&&F.push(`${H.method} ${H.url}`),y&&(F.push(`Status: ${H.status}`),F.push(`Duration: ${H.duration}ms`)),A&&F.push(`Timestamp: ${H.timestamp}`),te){let oe="requestBody"in H?H.requestBody:H.requestData;F.push(`
64
+ Request:`),F.push(JSON.stringify(oe||{},null,2))}if(Q){let oe="responseBody"in H?H.responseBody:H.responseData;F.push(`
65
+ Response:`),F.push(JSON.stringify(oe||{},null,2))}return F.join(`
67
66
  `)}).join(`
68
67
 
69
68
  ---
70
69
 
71
- `)||"No data included"},[a,r,N,t]),A=et(()=>{let k=a?r:[N],{format:d,includeMethod:b,includeStatus:h,includeTimestamp:M,includeRequestHeaders:ae,includeRequestBody:pe,includeResponseBody:re}=t,X=z=>{let Z={};return b&&(Z.method=z.method,Z.url=z.url),h&&(Z.status=z.status,Z.duration=z.duration),M&&(Z.timestamp=z.timestamp),ae&&(Z.requestHeaders=z.requestHeaders),pe&&(Z.requestBody="requestBody"in z?z.requestBody:z.requestData),re&&(Z.responseBody="responseBody"in z?z.responseBody:z.responseData),Z};if(d==="json"){let z=k.map(X);return Fe(vd,{data:z,title:"",showTypeFilter:!1})}if(d==="markdown"){let Z=k.map((J,Pe)=>{let Ee=[];Ee.push(`# Request ${Pe+1}`),b&&Ee.push(`
72
- **${J.method}** ${J.url}`);let It=[];if(h&&(It.push(`**Status:** ${J.status}`),It.push(`**Duration:** ${J.duration}ms`)),M&&It.push(`**Timestamp:** ${J.timestamp}`),It.length>0&&Ee.push(`
73
- `+It.join(`
74
- `)),ae){let ze=J.requestHeaders||{};Ee.push(`
70
+ `)||"No data included"},[a,r,p,e]),z=We(()=>{let v=a?r:[p],{format:d,includeMethod:f,includeStatus:y,includeTimestamp:A,includeRequestHeaders:ae,includeRequestBody:te,includeResponseBody:Q}=e,G=W=>{let F={};return f&&(F.method=W.method,F.url=W.url),y&&(F.status=W.status,F.duration=W.duration),A&&(F.timestamp=W.timestamp),ae&&(F.requestHeaders=W.requestHeaders),te&&(F.requestBody="requestBody"in W?W.requestBody:W.requestData),Q&&(F.responseBody="responseBody"in W?W.responseBody:W.responseData),F};if(d==="json"){let W=v.map(G);return Ae(vd,{data:W,title:"",showTypeFilter:false})}if(d==="markdown"){let W=v.map((F,oe)=>{let pe=[];pe.push(`# Request ${oe+1}`),f&&pe.push(`
71
+ **${F.method}** ${F.url}`);let et=[];if(y&&(et.push(`**Status:** ${F.status}`),et.push(`**Duration:** ${F.duration}ms`)),A&&et.push(`**Timestamp:** ${F.timestamp}`),et.length>0&&pe.push(`
72
+ `+et.join(`
73
+ `)),ae){let lt=F.requestHeaders||{};pe.push(`
75
74
  ## Request Headers
76
75
  \`\`\`json
77
- ${JSON.stringify(ze,null,2)}
78
- \`\`\``)}if(pe){let ze="requestBody"in J?J.requestBody:J.requestData;Ee.push(`
76
+ ${JSON.stringify(lt,null,2)}
77
+ \`\`\``)}if(te){let lt="requestBody"in F?F.requestBody:F.requestData;pe.push(`
79
78
  ## Request Body
80
79
  \`\`\`json
81
- ${JSON.stringify(ze||{},null,2)}
82
- \`\`\``)}if(re){let ze="responseBody"in J?J.responseBody:J.responseData;Ee.push(`
80
+ ${JSON.stringify(lt||{},null,2)}
81
+ \`\`\``)}if(Q){let lt="responseBody"in F?F.responseBody:F.responseData;pe.push(`
83
82
  ## Response Body
84
83
  \`\`\`json
85
- ${JSON.stringify(ze||{},null,2)}
86
- \`\`\``)}return Ee.join(`
84
+ ${JSON.stringify(lt||{},null,2)}
85
+ \`\`\``)}return pe.join(`
87
86
  `)}).join(`
88
87
 
89
88
  ---
90
89
 
91
- `);return Fe(Ge,{style:Dt.previewScroll,nestedScrollEnabled:!0,children:Fe(f,{style:Dt.markdownText,selectable:o,children:Z||"No data included"})})}let Q=k.map((z,Z)=>{let J=[];if(J.push(`Request ${Z+1}:`),b&&J.push(`${z.method} ${z.url}`),h&&(J.push(`Status: ${z.status}`),J.push(`Duration: ${z.duration}ms`)),M&&J.push(`Timestamp: ${z.timestamp}`),pe){let Pe="requestBody"in z?z.requestBody:z.requestData;J.push(`
92
- Request:`),J.push(JSON.stringify(Pe||{},null,2))}if(re){let Pe="responseBody"in z?z.responseBody:z.responseData;J.push(`
93
- Response:`),J.push(JSON.stringify(Pe||{},null,2))}return J.join(`
90
+ `);return Ae(dt,{style:St.previewScroll,nestedScrollEnabled:true,children:Ae(g,{style:St.markdownText,selectable:o,children:W||"No data included"})})}let H=v.map((W,F)=>{let oe=[];if(oe.push(`Request ${F+1}:`),f&&oe.push(`${W.method} ${W.url}`),y&&(oe.push(`Status: ${W.status}`),oe.push(`Duration: ${W.duration}ms`)),A&&oe.push(`Timestamp: ${W.timestamp}`),te){let pe="requestBody"in W?W.requestBody:W.requestData;oe.push(`
91
+ Request:`),oe.push(JSON.stringify(pe||{},null,2))}if(Q){let pe="responseBody"in W?W.responseBody:W.responseData;oe.push(`
92
+ Response:`),oe.push(JSON.stringify(pe||{},null,2))}return oe.join(`
94
93
  `)}).join(`
95
94
 
96
95
  ---
97
96
 
98
- `);return Fe(Ge,{style:Dt.previewScroll,nestedScrollEnabled:!0,children:Fe(f,{style:Dt.plaintextText,selectable:o,children:Q||"No data included"})})},[t,a,r,N,o]),H=et(()=>{let d=(a?r:[N]).length;return Fe(wd,{expanded:n,onExpandedChange:s,summary:`${d} request${d!==1?"s":""} \u2022 ~${Td(R)}`,warningLevel:S,warningText:{warning:"Large payload - preview may be slow",danger:"Very large payload - may cause performance issues"},renderBody:A})},[t,a,r,N,n,R,S,A]),L=et(()=>{let k=a&&l?`Live data \u2022 Updated ${hd(l,i)}`:"Mock data (no events captured)";return Ni(Cd,{children:[Fe(f,{style:Dt.statusLabel,children:k}),Fe(md,{value:v()})]})},[a,l,i,v]),m=et(()=>H(),[H]),y=Mt(()=>({sections:[{id:"presets",title:"Presets",type:"custom",data:[{id:"preset::urls",label:"URLs",icon:ud,color:Je.semantic.info,value:"urls",isActive:p==="urls"},{id:"preset::llm",label:"LLM",icon:cd,color:Je.semantic.success,value:"llm",isActive:p==="llm"},{id:"preset::json",label:"JSON",icon:Ci,color:Je.semantic.warning,value:"json",isActive:p==="json"},{id:"preset::full",label:"Full",icon:Ti,color:Je.semantic.info,value:"full",isActive:p==="full"},{id:"preset::custom",label:"Custom",icon:pd,color:Je.text.secondary,value:"custom",isActive:p===null}]},{id:"include",title:"Include",type:"custom",data:[{id:"requestInfo::includeMethod",label:"URL",value:"includeMethod",isActive:t.includeMethod},{id:"requestInfo::includeStatus",label:"Status",value:"includeStatus",isActive:t.includeStatus},{id:"requestInfo::includeTimestamp",label:"Time",value:"includeTimestamp",isActive:t.includeTimestamp},{id:"headers::includeRequestHeaders",label:"Headers",value:"includeRequestHeaders",isActive:t.includeRequestHeaders},{id:"body::includeRequestBody",label:"Req Body",value:"includeRequestBody",isActive:t.includeRequestBody},{id:"body::includeResponseBody",label:"Res Body",value:"includeResponseBody",isActive:t.includeResponseBody},{id:"requestInfo::includeErrors",label:"Errors",value:"includeErrors",isActive:t.includeErrors}]},{id:"format",title:"Format",type:"custom",data:[{id:"format::markdown",label:"Markdown",icon:Ti,color:Je.semantic.info,value:"markdown",isActive:t.format==="markdown"},{id:"format::json",label:"JSON",icon:Ci,color:Je.semantic.warning,value:"json",isActive:t.format==="json"},{id:"format::plaintext",label:"Text",icon:fd,color:Je.text.secondary,value:"plaintext",isActive:t.format==="plaintext"}]}],previewSection:{enabled:!0,title:"PREVIEW",icon:gd,content:m,headerActions:L},onFilterChange:P}),[t,P,m,L,p]);return o?Fe(Ri,{...y}):Ni(u,{style:Dt.gatedContainer,children:[Fe(bd,{featureName:"Network Export",description:"Export network requests to share with your team, debug APIs, or feed into AI tools.",benefits:["Export to JSON, Markdown, or plain text","Customizable copy presets (URLs only, LLM-ready, full data)","Share request details with teammates","Feed network data directly to AI assistants"]}),Fe(u,{style:Dt.gatedPreview,children:Fe(Ri,{...y})})]})}var Dt=K.create({previewScroll:{maxHeight:300},markdownText:{fontFamily:Ei,fontSize:11,color:Je.text.primary,lineHeight:18},plaintextText:{fontFamily:Ei,fontSize:11,color:Je.text.primary,lineHeight:18},statusLabel:{fontSize:11,fontWeight:"600",color:Je.text.muted,marginRight:8},gatedContainer:{flex:1,padding:12},gatedPreview:{flex:1}});g();he();import{Bookmark as Gi,CheckCircle as Ud,XCircle as jd,Clock as Xd,Copy as Jd,Pin as Gd,Trash2 as Kd,CopyButton as Yd,macOSColors as kt,night as se,useLimit as Qd,monoFont as Ji}from"@buoy-gg/shared-ui/web";g();import{getAccountAccess as Hi}from"@buoy-gg/shared-ui/web";import{BaseEventStore as Ld}from"@buoy-gg/shared-ui/web";g();function Jo(t){if(!t||typeof t!="object")return null;if("operationName"in t&&t.operationName){let e=t.operationName;if(typeof e=="string"&&e.trim().length>0)return e.trim()}if("query"in t&&typeof t.query=="string"){let r=t.query.match(/(?:query|mutation|subscription)\s+(\w+)/);if(r&&r[1])return r[1]}return null}g();import{devToolsStorageKeys as Pi,persistentStorage as Li}from"@buoy-gg/shared-ui/web";import{TIER_LIMITS as Ed}from"@buoy-gg/shared-ui/web";var Go=`${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`,mr=25,_e=50,Yo=Ed["network.saved"].free,St=16*1024,Bi=512*1024;function Ai(t){if(!t||typeof t!="object")return!1;let e=t;return typeof e.id=="string"&&typeof e.url=="string"}var Nd=800;function Kt(t,e){if(!e)return{pinned:!1,saved:!1};let r=t.pinnedLiveIds.has(e),o=t.savedLiveIds.has(e);if(r||o)return{pinned:r,saved:o};let i=t.records.find(n=>n.event.id===e);return i?{pinned:i.pinned,saved:i.saved}:{pinned:!1,saved:!1}}var Od={records:[],pinnedEvents:[],savedRecords:[],pinnedLiveIds:new Set,savedLiveIds:new Set};function qi(t){if(t==null)return{value:t,truncated:!1};if(typeof t=="string")return t.length<=St?{value:t,truncated:!1}:{value:`${t.slice(0,St)}
97
+ `);return Ae(dt,{style:St.previewScroll,nestedScrollEnabled:true,children:Ae(g,{style:St.plaintextText,selectable:o,children:H||"No data included"})})},[e,a,r,p,o]),P=We(()=>{let v=(a?r:[p]).length;return Ae(bd,{expanded:i,onExpandedChange:s,summary:`${v} request${v!==1?"s":""} \u2022 ~${kd(I)}`,warningLevel:h,warningText:{warning:"Large payload - preview may be slow",danger:"Very large payload - may cause performance issues"},renderBody:z})},[e,a,r,p,i,I,h,z]),T=We(()=>{let v=a&&l?`Live data \u2022 Updated ${gd(l,n)}`:"Mock data (no events captured)";return ai(xd,{children:[Ae(g,{style:St.statusLabel,children:v}),Ae(fd,{value:L()})]})},[a,l,n,L]),x=We(()=>P(),[P]),m=vt(()=>({sections:[{id:"presets",title:"Presets",type:"custom",data:[{id:"preset::urls",label:"URLs",icon:dd,color:Ne.semantic.info,value:"urls",isActive:u==="urls"},{id:"preset::llm",label:"LLM",icon:ud,color:Ne.semantic.success,value:"llm",isActive:u==="llm"},{id:"preset::json",label:"JSON",icon:ii,color:Ne.semantic.warning,value:"json",isActive:u==="json"},{id:"preset::full",label:"Full",icon:ni,color:Ne.semantic.info,value:"full",isActive:u==="full"},{id:"preset::custom",label:"Custom",icon:cd,color:Ne.text.secondary,value:"custom",isActive:u===null}]},{id:"include",title:"Include",type:"custom",data:[{id:"requestInfo::includeMethod",label:"URL",value:"includeMethod",isActive:e.includeMethod},{id:"requestInfo::includeStatus",label:"Status",value:"includeStatus",isActive:e.includeStatus},{id:"requestInfo::includeTimestamp",label:"Time",value:"includeTimestamp",isActive:e.includeTimestamp},{id:"headers::includeRequestHeaders",label:"Headers",value:"includeRequestHeaders",isActive:e.includeRequestHeaders},{id:"body::includeRequestBody",label:"Req Body",value:"includeRequestBody",isActive:e.includeRequestBody},{id:"body::includeResponseBody",label:"Res Body",value:"includeResponseBody",isActive:e.includeResponseBody},{id:"requestInfo::includeErrors",label:"Errors",value:"includeErrors",isActive:e.includeErrors}]},{id:"format",title:"Format",type:"custom",data:[{id:"format::markdown",label:"Markdown",icon:ni,color:Ne.semantic.info,value:"markdown",isActive:e.format==="markdown"},{id:"format::json",label:"JSON",icon:ii,color:Ne.semantic.warning,value:"json",isActive:e.format==="json"},{id:"format::plaintext",label:"Text",icon:hd,color:Ne.text.secondary,value:"plaintext",isActive:e.format==="plaintext"}]}],previewSection:{enabled:true,title:"PREVIEW",icon:pd,content:x,headerActions:T},onFilterChange:O}),[e,O,x,T,u]);return o?Ae(oi,{...m}):ai(c,{style:St.gatedContainer,children:[Ae(yd,{featureName:"Network Export",description:"Export network requests to share with your team, debug APIs, or feed into AI tools.",benefits:["Export to JSON, Markdown, or plain text","Customizable copy presets (URLs only, LLM-ready, full data)","Share request details with teammates","Feed network data directly to AI assistants"]}),Ae(c,{style:St.gatedPreview,children:Ae(oi,{...m})})]})}var St=fe.create({previewScroll:{maxHeight:300},markdownText:{fontFamily:si,fontSize:11,color:Ne.text.primary,lineHeight:18},plaintextText:{fontFamily:si,fontSize:11,color:Ne.text.primary,lineHeight:18},statusLabel:{fontSize:11,fontWeight:"600",color:Ne.text.muted,marginRight:8},gatedContainer:{flex:1,padding:12},gatedPreview:{flex:1}});D();ce();import{Bookmark as li,CheckCircle as Ed,XCircle as Ld,Clock as Pd,Copy as qd,Pin as Bd,Trash2 as Od,CopyButton as Dd,macOSColors as ot,night as re,useLimit as zd,monoFont as di}from"@buoy-gg/shared-ui/web";D();import{getAccountAccess as ui}from"@buoy-gg/shared-ui/web";import{BaseEventStore as Ad}from"@buoy-gg/shared-ui/web";D();function ci(e){if(!e||typeof e!="object")return null;if("operationName"in e&&e.operationName){let t=e.operationName;if(typeof t=="string"&&t.trim().length>0)return t.trim()}if("query"in e&&typeof e.query=="string"){let t=e.query.match(/(?:query|mutation|subscription)\s+(\w+)/);if(t&&t[1])return t[1]}return null}D();import{devToolsStorageKeys as hi,persistentStorage as pi}from"@buoy-gg/shared-ui/web";import{TIER_LIMITS as Hd}from"@buoy-gg/shared-ui/web";var Co=`${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`,Lr=25,nt=50,fi=Hd["network.saved"].free,it=16*1024,gi=512*1024;function mi(e){if(!e||typeof e!="object")return false;let t=e;return typeof t.id=="string"&&typeof t.url=="string"}var Md=800;function Pr(e,t){if(!t)return{pinned:false,saved:false};let r=e.pinnedLiveIds.has(t),o=e.savedLiveIds.has(t);if(r||o)return{pinned:r,saved:o};let n=e.records.find(i=>i.event.id===t);return n?{pinned:n.pinned,saved:n.saved}:{pinned:false,saved:false}}var Nd={records:[],pinnedEvents:[],savedRecords:[],pinnedLiveIds:new Set,savedLiveIds:new Set};function yi(e){if(e==null)return{value:e,truncated:false};if(typeof e=="string")return e.length<=it?{value:e,truncated:false}:{value:`${e.slice(0,it)}
99
98
 
100
- \u2026 truncated by Buoy (body exceeded ${St} bytes)`,truncated:!0};try{let e=JSON.stringify(t);return e===void 0?{value:void 0,truncated:!1}:e.length<=St?{value:t,truncated:!1}:{value:`${e.slice(0,St)}
99
+ \u2026 truncated by Buoy (body exceeded ${it} bytes)`,truncated:true};try{let t=JSON.stringify(e);return t===void 0?{value:void 0,truncated:false}:t.length<=it?{value:e,truncated:false}:{value:`${t.slice(0,it)}
101
100
 
102
- \u2026 truncated by Buoy (body exceeded ${St} bytes)`,truncated:!0}}catch{return{value:"[unserializable body]",truncated:!0}}}function Mi(t){let e=qi(t.requestData),r=qi(t.responseData);return!e.truncated&&!r.truncated?{event:{...t},bodyTruncated:!1}:{event:{...t,requestData:e.value,responseData:r.value},bodyTruncated:!0}}function Di(t){let e=0;return t.requestData!=null&&(e+=Math.min(t.requestSize??0,St)),t.responseData!=null&&(e+=Math.min(t.responseSize??0,St)),e}function Id(t){let e=0;for(let n of t)e+=Di(n.event);if(e<=Bi)return t;let r=[...t].sort((n,s)=>n.pinned!==s.pinned?n.pinned?-1:1:s.savedAt-n.savedAt),o=new Set,i=0;for(let n of r){let s=Di(n.event);i+s<=Bi?i+=s:o.add(n.key)}return o.size===0?t:t.map(n=>o.has(n.key)?{...n,event:{...n.event,requestData:void 0,responseData:void 0},bodyTruncated:!0}:n)}function Pd(t){if(!Array.isArray(t))return[];let e=[];for(let r of t){if(!r||typeof r!="object")continue;let o=r;typeof o.key=="string"&&Ai(o.event)&&(!o.pinned&&!o.saved||e.push({key:o.key,event:{...o.event,id:`saved:${o.key}`},pinned:!!o.pinned,saved:!!o.saved,savedAt:typeof o.savedAt=="number"?o.savedAt:0,sessionId:typeof o.sessionId=="string"?o.sessionId:"unknown",liveId:typeof o.liveId=="string"?o.liveId:"",bodyTruncated:!!o.bodyTruncated}))}return e}var Ko=class{constructor(){this.records=[];this.listeners=new Set;this.loaded=!1;this.loadPromise=null;this.dirty=!1;this.keyCounter=0;this.trackedLiveIds=new Set;this.state=Od;this.remote=null;this.remoteEchoUntil=0}getState(){return this.state}enableRemoteMode(e){this.remote=e}disableRemoteMode(){this.remote=null}replaceRecords(e,r=!1){this.remote&&(!r&&Date.now()<this.remoteEchoUntil||(this.records=e,this.rebuild(),this.emit()))}sessionMatches(e){return this.remote!==null||e.sessionId===Go}getRecords(){return this.records}subscribe(e){return this.listeners.add(e),this.ensureLoaded(),()=>{this.listeners.delete(e)}}getEventById(e){for(let r of this.records)if(r.event.id===e)return r.event;return null}isPinned(e){return this.state.pinnedLiveIds.has(e)}isSaved(e){return this.state.savedLiveIds.has(e)}syncFromLive(e){if(this.trackedLiveIds.size===0||!this.trackedLiveIds.has(e.id))return;let r=this.records.findIndex(i=>this.sessionMatches(i)&&i.liveId===e.id);if(r===-1)return;let o=Mi(e);this.commit(this.records.map((i,n)=>n===r?{...i,event:o.event,bodyTruncated:o.bodyTruncated}:i))}togglePin(e){return this.setFlag(e,"pinned")}toggleSave(e){return this.setFlag(e,"saved")}remove(e){this.records.some(r=>r.key===e)&&(this.remote?.removeRecord(e),this.commit(this.records.filter(r=>r.key!==e)))}clearSaved(){this.records.some(e=>e.saved)&&(this.remote?.clearSaved(),this.commit(this.records.filter(e=>e.pinned).map(e=>({...e,saved:!1}))))}clearPinned(){this.records.some(e=>e.pinned)&&(this.remote?.clearPinned(),this.commit(this.records.filter(e=>e.saved).map(e=>({...e,pinned:!1}))))}setFlag(e,r){if(!Ai(e))return{ok:!1,reason:"invalid-event"};let o=this.findRecordFor(e);if(this.remote){let a=o?!o[r]:!0;r==="pinned"?this.remote.setPinned(e.id,a):this.remote.setSaved(e.id,a),this.remoteEchoUntil=Date.now()+Nd}if(o){let a=!o[r];if(a&&!this.hasRoomFor(r,o.key))return{ok:!1,reason:r==="pinned"?"pin-cap":"saved-cap"};let l={...o,[r]:a};return this.commit(l.pinned||l.saved?this.records.map(p=>p.key===o.key?l:p):this.records.filter(p=>p.key!==o.key)),{ok:!0,active:a}}if(!this.hasRoomFor(r,null))return{ok:!1,reason:r==="pinned"?"pin-cap":"saved-cap"};let i=Date.now(),n=Mi(e),s={key:`${Go}_${++this.keyCounter}`,event:n.event,pinned:r==="pinned",saved:r==="saved",savedAt:i,sessionId:Go,liveId:e.id,bodyTruncated:n.bodyTruncated};return this.commit(this.evictIfNeeded([s,...this.records])),{ok:!0,active:!0}}findRecordFor(e){return this.records.find(r=>r.event.id===e.id||this.sessionMatches(r)&&r.liveId===e.id)}hasRoomFor(e,r){let o=e==="pinned"?mr:_e;return this.records.filter(n=>n[e]&&n.key!==r).length<o}evictIfNeeded(e){let r=e.filter(n=>n.saved);if(r.length<=_e)return e;let o=r.filter(n=>!n.pinned).sort((n,s)=>n.savedAt-s.savedAt).slice(0,r.length-_e);if(o.length===0)return e;let i=new Set(o.map(n=>n.key));return e.filter(n=>!i.has(n.key))}ensureLoaded(){return this.remote||this.loaded?Promise.resolve():this.loadPromise?this.loadPromise:(this.loadPromise=(async()=>{try{let e=await Li.getItem(Pi.network.saved());e&&!this.dirty&&(this.records=Pd(JSON.parse(e)),this.rebuild())}catch{}finally{this.loaded=!0,this.emit()}})(),this.loadPromise)}persist(){this.remote||Li.setItem(Pi.network.saved(),JSON.stringify(this.records)).catch(()=>{})}commit(e){this.dirty=!0,this.records=Id(e),this.rebuild(),this.emit(),this.persist()}rebuild(){let e=[],r=[],o=new Set,i=new Set,n=new Set;for(let s of this.records)s.pinned&&e.push(s),s.saved&&r.push(s),!(!this.sessionMatches(s)||!s.liveId)&&(n.add(s.liveId),s.pinned&&o.add(s.liveId),s.saved&&i.add(s.liveId));this.trackedLiveIds=n,this.state={records:this.records,pinnedEvents:e.map(s=>s.event),savedRecords:r,pinnedLiveIds:o,savedLiveIds:i}}emit(){this.listeners.forEach(e=>e())}},ee=new Ko;var Bd=200,Qo=class extends Ld{constructor(){super({storeName:"network",maxEvents:500});this.pendingRequests=new Map;this.rawListenerUnsubscribe=null;this.bootBuffer=[];this.bootBufferUnsubscribe=null;this.mirrorMode=!1}startBootCapture(){if(Hi().status==="locked"||this.mirrorMode||this.bootBufferUnsubscribe||this.isCapturing())return;let r=ur();r.isActive||r.startListening(),this.bootBufferUnsubscribe=bt(o=>{this.bootBuffer.push(o),this.bootBuffer.length>Bd&&this.bootBuffer.shift()})}takeBootBuffer(){this.bootBufferUnsubscribe&&(this.bootBufferUnsubscribe(),this.bootBufferUnsubscribe=null);let r=this.bootBuffer;return this.bootBuffer=[],r}startCapturing(){let r=ur();r.isActive||r.startListening();for(let o of this.takeBootBuffer())this.processNetworkEvent(o);this.rawListenerUnsubscribe||(this.rawListenerUnsubscribe=bt(o=>{this.processNetworkEvent(o)}))}stopCapturing(){this.takeBootBuffer(),this.rawListenerUnsubscribe&&(this.rawListenerUnsubscribe(),this.rawListenerUnsubscribe=null),je()===0&&yt()}disableCapture(){this.mirrorMode=!0,this.takeBootBuffer(),je()===0&&yt(),super.disableCapture()}isCapturing(){return this.rawListenerUnsubscribe!==null}ensureInterception(){this.isCapturing()&&ur().startListening()}subscribeToEvents(r){let o=super.subscribeToEvents(r);return this.ensureInterception(),o}processNetworkEvent(r){if(Hi().status==="locked")return;let{request:o}=r;if(r.type==="request"){if(this.events.some(p=>p.id===o.id))return;let i=o.params?`?${new URLSearchParams(o.params).toString()}`:"",n=`${o.url}${i}`,s,a;o.client==="graphql"&&(s=Jo(o.data)||void 0,o.data&&typeof o.data=="object"&&"variables"in o.data&&o.data.variables&&typeof o.data.variables=="object"&&(a=o.data.variables));let l={id:o.id,method:o.method,url:n,host:this.extractHost(o.url),path:this.extractPath(o.url),query:i,timestamp:r.timestamp.getTime(),requestHeaders:o.headers||{},requestData:o.data,requestSize:this.getDataSize(o.data),responseHeaders:{},requestClient:o.client,operationName:s,graphqlVariables:a,override:r.override,condition:r.condition};this.pendingRequests.set(o.id,l),this.events=[l,...this.events].slice(0,this.maxEvents),this.notify(l),this.notifyArrayListeners()}else if(r.type==="request-body"){let i=this.events.find(s=>s.id===o.id);if(!i)return;let n={...i,requestData:o.data,requestSize:this.getDataSize(o.data)};if(o.client==="graphql"){n.operationName=Jo(o.data)||void 0;let s=o.data?.variables;s&&typeof s=="object"&&(n.graphqlVariables=s)}this.events=this.events.map(s=>s.id===o.id?n:s),this.pendingRequests.has(o.id)&&this.pendingRequests.set(o.id,n),ee.syncFromLive(n),this.notify(n),this.notifyArrayListeners()}else if(r.type==="response"||r.type==="error"){let i=this.events.findIndex(n=>n.id===o.id);if(i!==-1){let n={...this.events[i],duration:r.duration,timings:r.timings};r.response&&(n.status=r.response.status,n.statusText=r.response.statusText,n.responseHeaders=r.response.headers||{},n.responseData=r.response.body,n.responseSize=r.response.size||0,n.responseType=r.response.headers?.["content-type"]),r.error&&(n.error=r.error.message,n.status=n.status||0),r.override&&(n.override=r.override),this.events=this.events.map((s,a)=>a===i?n:s),this.pendingRequests.delete(o.id),ee.syncFromLive(n),this.notify(n),this.notifyArrayListeners()}}}extractHost(r){try{return new URL(r).hostname}catch{return""}}extractPath(r){try{return new URL(r).pathname}catch{return r}}getDataSize(r){if(!r)return 0;if(typeof r=="string")return r.length;try{return JSON.stringify(r).length}catch{return 0}}getEventById(r){return this.events.find(o=>o.id===r)}clearEvents(){super.clearEvents(),this.pendingRequests.clear()}onEvent(r,o=!0){let i=this.subscribe(r);if(o&&this.events.length>0){let n=[...this.events].reverse();for(let s of n)try{r(s)}catch{}}return i}getStats(){let r=this.events.length,o=this.events.filter(c=>c.status&&c.status>=200&&c.status<300).length,i=this.events.filter(c=>c.error||c.status&&c.status>=400).length,n=this.events.filter(c=>!c.status&&!c.error).length,s=this.events.filter(c=>c.duration).map(c=>c.duration),a=s.length>0?s.reduce((c,x)=>c+x,0)/s.length:0,l=this.events.reduce((c,x)=>c+(x.requestSize||0),0),p=this.events.reduce((c,x)=>c+(x.responseSize||0),0);return{totalRequests:r,successfulRequests:o,failedRequests:i,pendingRequests:n,totalDataSent:l,totalDataReceived:p,averageDuration:Math.round(a)}}filterEvents(r){let o=[...this.events];if(r.method&&(o=o.filter(i=>i.method===r.method)),r.status)switch(r.status){case"success":o=o.filter(i=>i.status&&i.status>=200&&i.status<300);break;case"error":o=o.filter(i=>i.error||i.status&&i.status>=400);break;case"pending":o=o.filter(i=>!i.status&&!i.error);break}if(r.searchText){let i=r.searchText.toLowerCase();o=o.filter(n=>n.url.toLowerCase().includes(i)||n.method.toLowerCase().includes(i)||n.error&&n.error.toLowerCase().includes(i))}return r.host&&(o=o.filter(i=>i.host===r.host)),o}},$=new Qo;g();import{useEffect as qd,useState as Md}from"react";var Dd=t=>ee.togglePin(t),Ad=t=>ee.toggleSave(t),Hd=t=>ee.remove(t),zd=()=>ee.clearSaved(),Vd=()=>ee.clearPinned();function tt(){let[t,e]=Md(()=>ee.getState());return qd(()=>ee.subscribe(()=>{e(ee.getState())}),[]),{...t,togglePin:Dd,toggleSave:Ad,remove:Hd,clearSaved:zd,clearPinned:Vd}}g();import{useSyncExternalStore as hr}from"react";g();var Fd=120,Zo=class{constructor(){this.ids=[];this.index=-1;this.selectedId=null;this.bodyId=null;this.renderedId=null;this.settleMs=120;this.settleTimer=null;this.subscribers=new Set;this.snapshot=this.buildSnapshot()}buildSnapshot(){return{ids:this.ids,index:this.index,selectedId:this.selectedId,bodyId:this.bodyId,renderedId:this.renderedId}}emit(){this.snapshot=this.buildSnapshot();for(let e of this.subscribers)e(this.snapshot)}getState(){return this.snapshot}subscribe(e){return this.subscribers.add(e),()=>{this.subscribers.delete(e)}}setIds(e){e.length===this.ids.length&&e.every((o,i)=>o===this.ids[i])||(this.ids=e,this.index=this.selectedId==null?-1:e.indexOf(this.selectedId),this.emit())}select(e){e!==this.selectedId&&(this.selectedId=e,this.index=e==null?-1:this.ids.indexOf(e),this.scheduleBody(e),this.emit())}clear(){this.select(null)}step(e){if(this.index<0)return null;let r=this.index+e;if(r<0||r>=this.ids.length)return null;let o=this.ids[r];return this.selectedId=o,this.index=r,this.scheduleBody(o),this.emit(),o}scheduleBody(e){if(this.settleTimer!=null&&(clearTimeout(this.settleTimer),this.settleTimer=null),e==null||this.bodyId==null||this.settleMs<=0){this.bodyId=e;return}this.settleTimer=setTimeout(()=>{this.settleTimer=null,this.bodyId!==this.selectedId&&(this.bodyId=this.selectedId,this.emit())},this.settleMs)}setSettleMs(e){this.settleMs=Math.max(0,e)}getSettleMs(){return this.settleMs}reportRendered(e){e!==this.renderedId&&(this.renderedId=e,this.emit())}reset(){this.settleTimer!=null&&clearTimeout(this.settleTimer),this.settleTimer=null,this.ids=[],this.index=-1,this.selectedId=null,this.bodyId=null,this.renderedId=null,this.emit()}},De=new Zo;function zi(t){return t.map(e=>e.id)}var yr=t=>De.subscribe(t),rt=()=>De.getState();function Vi(){return hr(yr,()=>rt().selectedId!=null,()=>rt().selectedId!=null)}function Yt(){return hr(yr,()=>rt().selectedId,()=>rt().selectedId)}function Fi(){return hr(yr,()=>rt().bodyId,()=>rt().bodyId)}function _i(){let t=hr(yr,()=>rt().index,()=>rt().index),e=hr(yr,()=>rt().ids.length,()=>rt().ids.length);return{index:t,total:e}}g();import{useEffect as Wi,useState as Wd}from"react";g();import{urlMatchesIgnoredPattern as _d}from"@buoy-gg/shared-ui/web";function lt(t,e){let r=e.searchText?e.searchText.toLowerCase():null,o=e.method&&e.method.length>0?new Set(e.method):null,i=e.contentType&&e.contentType.length>0?new Set(e.contentType):null,n=[...t];if(o&&(n=n.filter(s=>o.has(s.method))),e.status&&e.status!=="all")switch(e.status){case"success":n=n.filter(s=>s.status&&s.status>=200&&s.status<300);break;case"error":n=n.filter(s=>s.error||s.status&&s.status>=400);break;case"pending":n=n.filter(s=>!s.status&&!s.error);break}return r&&(n=n.filter(s=>s.url.toLowerCase().includes(r)||s.method.toLowerCase().includes(r)||s.path?.toLowerCase().includes(r)||s.host?.toLowerCase().includes(r)||s.error&&s.error.toLowerCase().includes(r)||s.operationName&&s.operationName.toLowerCase().includes(r)||zr(s.graphqlVariables,r))),e.host&&(n=n.filter(s=>s.host===e.host)),i&&(n=n.filter(s=>{let a=s.responseHeaders||s.requestHeaders,l=a?.["content-type"]||a?.["Content-Type"]||"";for(let p of i)switch(p){case"JSON":if(l.includes("json"))return!0;break;case"XML":if(l.includes("xml"))return!0;break;case"HTML":if(l.includes("html"))return!0;break;case"TEXT":if(l.includes("text"))return!0;break;case"IMAGE":if(l.includes("image"))return!0;break;case"VIDEO":if(l.includes("video"))return!0;break;case"AUDIO":if(l.includes("audio"))return!0;break;case"FORM":if(l.includes("form"))return!0;break;case"OTHER":if(!l||!l.includes("json")&&!l.includes("xml")&&!l.includes("html")&&!l.includes("text")&&!l.includes("image")&&!l.includes("video")&&!l.includes("audio")&&!l.includes("form"))return!0;break}return!1})),n}function dt(t,e){return e.length===0?t:t.filter(r=>!e.some(o=>_d(r.url,o)))}function $i(t,e){let r=0,o=0,i=0;for(let n of dt(t,e))n.status&&n.status>=200&&n.status<300?r++:n.error||n.status&&n.status>=400?o++:!n.status&&!n.error&&i++;return{successful:r,failed:o,pending:i,total:t.length}}function $d(t,e){return t.successful===e.successful&&t.failed===e.failed&&t.pending===e.pending&&t.total===e.total}function en(t){let{ignoredPatterns:e,paused:r}=t,[o,i]=Wd(()=>$i($.getEvents(),e));return Wi(()=>{if(r)return;let n=null,s=null,a=$.subscribeToEvents(l=>{s=l,n==null&&(n=requestAnimationFrame(()=>{if(n=null,!s)return;let p=$i(s,e);s=null,i(c=>$d(c,p)?c:p)}))});return()=>{a(),n!=null&&cancelAnimationFrame(n)}},[r,e]),Wi(()=>$.onClear(()=>{i({successful:0,failed:0,pending:0,total:0})}),[]),o}g();import{useEffect as Wr,useState as Ui}from"react";function ji(t){let{paused:e}=t,[r,o]=Ui(()=>$.getEvents().length>0);return Wr(()=>{if(!e)return $.subscribeToEvents(i=>{let n=i.length>0;o(s=>s===n?s:n)})},[e]),Wr(()=>$.onClear(()=>o(!1)),[]),r}function Xi(t){let{filter:e,ignoredPatterns:r,paused:o}=t,[i,n]=Ui(()=>lt(dt($.getEvents(),r),e).length>0);return Wr(()=>{if(!o)return $.subscribeToEvents(s=>{let a=lt(dt(s,r),e).length>0;n(l=>l===a?l:a)})},[o,e,r]),Wr(()=>$.onClear(()=>n(!1)),[]),i}g();function $r(t){if(t==null)return"N/A";if(t===0)return"0 B";let e=1024,r=["B","KB","MB","GB","TB"],o=Math.floor(Math.log(t)/Math.log(e));return`${(t/Math.pow(e,o)).toFixed(1)} ${r[o]}`}function Ur(t,e){if(e===-1||!t)return!0;try{return JSON.stringify(t).length<e*1024}catch{return!1}}function jr(t,e){let r=t;if(e.filterMode==="failed"?r=r.filter(n=>n.error||n.status&&n.status>=400):e.filterMode==="success"&&(r=r.filter(n=>n.status&&n.status>=200&&n.status<300)),r.length===0)return"No requests to copy";if(e.format==="plaintext")return r.map(n=>`${n.method} ${n.url}`).join(`
103
- `);if(e.format==="json"){let n=r.map(s=>{let a={};return e.includeMethod&&(a.method=s.method,a.url=s.url),e.includeStatus&&(a.status=s.status,a.statusText=s.statusText),e.includeDuration&&(a.duration=s.duration),s.condition&&(a.condition=s.condition),e.includeTimestamp&&(a.timestamp=s.timestamp),e.includeClient&&(a.requestClient=s.requestClient),e.includeSizes&&(a.requestSize=s.requestSize,a.responseSize=s.responseSize),e.includeErrors&&s.error&&(a.error=s.error),e.includeRequestHeaders&&(a.requestHeaders=s.requestHeaders),e.includeResponseHeaders&&(a.responseHeaders=s.responseHeaders),e.includeRequestBody&&Ur(s.requestData,e.bodySizeThreshold)&&(a.requestData=s.requestData),e.includeResponseBody&&Ur(s.responseData,e.bodySizeThreshold)&&(a.responseData=s.responseData),a});return JSON.stringify(n,null,2)}let o=r.map((n,s)=>{let a=`# Request ${s+1}
101
+ \u2026 truncated by Buoy (body exceeded ${it} bytes)`,truncated:true}}catch{return{value:"[unserializable body]",truncated:true}}}function bi(e){let t=yi(e.requestData),r=yi(e.responseData);return!t.truncated&&!r.truncated?{event:{...e},bodyTruncated:false}:{event:{...e,requestData:t.value,responseData:r.value},bodyTruncated:true}}function vi(e){let t=0;return e.requestData!=null&&(t+=Math.min(e.requestSize??0,it)),e.responseData!=null&&(t+=Math.min(e.responseSize??0,it)),t}function Fd(e){let t=0;for(let i of e)t+=vi(i.event);if(t<=gi)return e;let r=[...e].sort((i,s)=>i.pinned!==s.pinned?i.pinned?-1:1:s.savedAt-i.savedAt),o=new Set,n=0;for(let i of r){let s=vi(i.event);n+s<=gi?n+=s:o.add(i.key)}return o.size===0?e:e.map(i=>o.has(i.key)?{...i,event:{...i.event,requestData:void 0,responseData:void 0},bodyTruncated:true}:i)}function jd(e){if(!Array.isArray(e))return[];let t=[];for(let r of e){if(!r||typeof r!="object")continue;let o=r;typeof o.key=="string"&&mi(o.event)&&(!o.pinned&&!o.saved||t.push({key:o.key,event:{...o.event,id:`saved:${o.key}`},pinned:!!o.pinned,saved:!!o.saved,savedAt:typeof o.savedAt=="number"?o.savedAt:0,sessionId:typeof o.sessionId=="string"?o.sessionId:"unknown",liveId:typeof o.liveId=="string"?o.liveId:"",bodyTruncated:!!o.bodyTruncated}))}return t}var $d=class{constructor(){this.records=[];this.listeners=new Set;this.loaded=false;this.loadPromise=null;this.dirty=false;this.keyCounter=0;this.trackedLiveIds=new Set;this.state=Nd;this.remote=null;this.remoteEchoUntil=0}getState(){return this.state}enableRemoteMode(e){this.remote=e}disableRemoteMode(){this.remote=null}replaceRecords(e,t=false){this.remote&&(!t&&Date.now()<this.remoteEchoUntil||(this.records=e,this.rebuild(),this.emit()))}sessionMatches(e){return this.remote!==null||e.sessionId===Co}getRecords(){return this.records}subscribe(e){return this.listeners.add(e),this.ensureLoaded(),()=>{this.listeners.delete(e)}}getEventById(e){for(let t of this.records)if(t.event.id===e)return t.event;return null}isPinned(e){return this.state.pinnedLiveIds.has(e)}isSaved(e){return this.state.savedLiveIds.has(e)}syncFromLive(e){if(this.trackedLiveIds.size===0||!this.trackedLiveIds.has(e.id))return;let t=this.records.findIndex(o=>this.sessionMatches(o)&&o.liveId===e.id);if(t===-1)return;let r=bi(e);this.commit(this.records.map((o,n)=>n===t?{...o,event:r.event,bodyTruncated:r.bodyTruncated}:o))}togglePin(e){return this.setFlag(e,"pinned")}toggleSave(e){return this.setFlag(e,"saved")}remove(e){this.records.some(t=>t.key===e)&&(this.remote?.removeRecord(e),this.commit(this.records.filter(t=>t.key!==e)))}clearSaved(){this.records.some(e=>e.saved)&&(this.remote?.clearSaved(),this.commit(this.records.filter(e=>e.pinned).map(e=>({...e,saved:false}))))}clearPinned(){this.records.some(e=>e.pinned)&&(this.remote?.clearPinned(),this.commit(this.records.filter(e=>e.saved).map(e=>({...e,pinned:false}))))}setFlag(e,t){if(!mi(e))return{ok:false,reason:"invalid-event"};let r=this.findRecordFor(e);if(this.remote){let s=r?!r[t]:true;t==="pinned"?this.remote.setPinned(e.id,s):this.remote.setSaved(e.id,s),this.remoteEchoUntil=Date.now()+Md}if(r){let s=!r[t];if(s&&!this.hasRoomFor(t,r.key))return{ok:false,reason:t==="pinned"?"pin-cap":"saved-cap"};let a={...r,[t]:s};return this.commit(a.pinned||a.saved?this.records.map(l=>l.key===r.key?a:l):this.records.filter(l=>l.key!==r.key)),{ok:true,active:s}}if(!this.hasRoomFor(t,null))return{ok:false,reason:t==="pinned"?"pin-cap":"saved-cap"};let o=Date.now(),n=bi(e),i={key:`${Co}_${++this.keyCounter}`,event:n.event,pinned:t==="pinned",saved:t==="saved",savedAt:o,sessionId:Co,liveId:e.id,bodyTruncated:n.bodyTruncated};return this.commit(this.evictIfNeeded([i,...this.records])),{ok:true,active:true}}findRecordFor(e){return this.records.find(t=>t.event.id===e.id||this.sessionMatches(t)&&t.liveId===e.id)}hasRoomFor(e,t){let r=e==="pinned"?Lr:nt;return this.records.filter(o=>o[e]&&o.key!==t).length<r}evictIfNeeded(e){let t=e.filter(n=>n.saved);if(t.length<=nt)return e;let r=t.filter(n=>!n.pinned).sort((n,i)=>n.savedAt-i.savedAt).slice(0,t.length-nt);if(r.length===0)return e;let o=new Set(r.map(n=>n.key));return e.filter(n=>!o.has(n.key))}ensureLoaded(){return this.remote||this.loaded?Promise.resolve():this.loadPromise?this.loadPromise:(this.loadPromise=(async()=>{try{let e=await pi.getItem(hi.network.saved());e&&!this.dirty&&(this.records=jd(JSON.parse(e)),this.rebuild())}catch{}finally{this.loaded=true,this.emit()}})(),this.loadPromise)}persist(){this.remote||pi.setItem(hi.network.saved(),JSON.stringify(this.records)).catch(()=>{})}commit(e){this.dirty=true,this.records=Fd(e),this.rebuild(),this.emit(),this.persist()}rebuild(){let e=[],t=[],r=new Set,o=new Set,n=new Set;for(let i of this.records)i.pinned&&e.push(i),i.saved&&t.push(i),!(!this.sessionMatches(i)||!i.liveId)&&(n.add(i.liveId),i.pinned&&r.add(i.liveId),i.saved&&o.add(i.liveId));this.trackedLiveIds=n,this.state={records:this.records,pinnedEvents:e.map(i=>i.event),savedRecords:t,pinnedLiveIds:r,savedLiveIds:o}}emit(){this.listeners.forEach(e=>e())}},se=new $d;var Wd=200,Vd=class extends Ad{constructor(){super({storeName:"network",maxEvents:500});this.pendingRequests=new Map;this.rawListenerUnsubscribe=null;this.bootBuffer=[];this.bootBufferUnsubscribe=null;this.mirrorMode=false}startBootCapture(){if(ui().status==="locked"||this.mirrorMode||this.bootBufferUnsubscribe||this.isCapturing())return;let e=yr();e.isActive||e.startListening(),this.bootBufferUnsubscribe=Jt(t=>{this.bootBuffer.push(t),this.bootBuffer.length>Wd&&this.bootBuffer.shift()})}takeBootBuffer(){this.bootBufferUnsubscribe&&(this.bootBufferUnsubscribe(),this.bootBufferUnsubscribe=null);let e=this.bootBuffer;return this.bootBuffer=[],e}startCapturing(){let e=yr();e.isActive||e.startListening();for(let t of this.takeBootBuffer())this.processNetworkEvent(t);this.rawListenerUnsubscribe||(this.rawListenerUnsubscribe=Jt(t=>{this.processNetworkEvent(t)})),e.adoptEarlyRequests()}stopCapturing(){this.takeBootBuffer(),this.rawListenerUnsubscribe&&(this.rawListenerUnsubscribe(),this.rawListenerUnsubscribe=null),ht()===0&&Xt()}disableCapture(){this.mirrorMode=true,this.takeBootBuffer(),ht()===0&&Xt(),super.disableCapture()}isCapturing(){return this.rawListenerUnsubscribe!==null}ensureInterception(){this.isCapturing()&&yr().startListening()}subscribeToEvents(e){let t=super.subscribeToEvents(e);return this.ensureInterception(),t}processNetworkEvent(e){if(ui().status==="locked")return;let{request:t}=e;if(e.type==="request"){if(this.events.some(a=>a.id===t.id))return;let r=t.params?`?${new URLSearchParams(t.params).toString()}`:"",o=`${t.url}${r}`,n,i;t.client==="graphql"&&(n=ci(t.data)||void 0,t.data&&typeof t.data=="object"&&"variables"in t.data&&t.data.variables&&typeof t.data.variables=="object"&&(i=t.data.variables));let s={id:t.id,method:t.method,url:o,host:this.extractHost(t.url),path:this.extractPath(t.url),query:r,timestamp:e.timestamp.getTime(),requestHeaders:t.headers||{},requestData:t.data,requestSize:this.getDataSize(t.data),responseHeaders:{},requestClient:t.client,operationName:n,graphqlVariables:i,override:e.override,condition:e.condition};this.pendingRequests.set(t.id,s),this.events=[s,...this.events].slice(0,this.maxEvents),this.notify(s),this.notifyArrayListeners()}else if(e.type==="request-body"){let r=this.events.find(n=>n.id===t.id);if(!r)return;let o={...r,requestData:t.data,requestSize:this.getDataSize(t.data)};if(t.client==="graphql"){o.operationName=ci(t.data)||void 0;let n=t.data?.variables;n&&typeof n=="object"&&(o.graphqlVariables=n)}this.events=this.events.map(n=>n.id===t.id?o:n),this.pendingRequests.has(t.id)&&this.pendingRequests.set(t.id,o),se.syncFromLive(o),this.notify(o),this.notifyArrayListeners()}else if(e.type==="response"||e.type==="error"){let r=this.events.findIndex(o=>o.id===t.id);if(r!==-1){let o={...this.events[r],duration:e.duration,timings:e.timings};e.response&&(o.status=e.response.status,o.statusText=e.response.statusText,o.responseHeaders=e.response.headers||{},o.responseData=e.response.body,o.responseSize=e.response.size||0,o.responseType=e.response.headers?.["content-type"]),e.error&&(o.error=e.error.message,o.status=o.status||0),e.override&&(o.override=e.override),this.events=this.events.map((n,i)=>i===r?o:n),this.pendingRequests.delete(t.id),se.syncFromLive(o),this.notify(o),this.notifyArrayListeners()}}}extractHost(e){try{return new URL(e).hostname}catch{return""}}extractPath(e){try{return new URL(e).pathname}catch{return e}}getDataSize(e){if(!e)return 0;if(typeof e=="string")return e.length;try{return JSON.stringify(e).length}catch{return 0}}getEventById(e){return this.events.find(t=>t.id===e)}clearEvents(){super.clearEvents(),this.pendingRequests.clear()}onEvent(e,t=true){let r=this.subscribe(e);if(t&&this.events.length>0){let o=[...this.events].reverse();for(let n of o)try{e(n)}catch{}}return r}getStats(){let e=this.events.length,t=this.events.filter(l=>l.status&&l.status>=200&&l.status<300).length,r=this.events.filter(l=>l.error||l.status&&l.status>=400).length,o=this.events.filter(l=>!l.status&&!l.error).length,n=this.events.filter(l=>l.duration).map(l=>l.duration),i=n.length>0?n.reduce((l,u)=>l+u,0)/n.length:0,s=this.events.reduce((l,u)=>l+(u.requestSize||0),0),a=this.events.reduce((l,u)=>l+(u.responseSize||0),0);return{totalRequests:e,successfulRequests:t,failedRequests:r,pendingRequests:o,totalDataSent:s,totalDataReceived:a,averageDuration:Math.round(i)}}filterEvents(e){let t=[...this.events];if(e.method&&(t=t.filter(r=>r.method===e.method)),e.status)switch(e.status){case"success":t=t.filter(r=>r.status&&r.status>=200&&r.status<300);break;case"error":t=t.filter(r=>r.error||r.status&&r.status>=400);break;case"pending":t=t.filter(r=>!r.status&&!r.error);break}if(e.searchText){let r=e.searchText.toLowerCase();t=t.filter(o=>o.url.toLowerCase().includes(r)||o.method.toLowerCase().includes(r)||o.error&&o.error.toLowerCase().includes(r))}return e.host&&(t=t.filter(r=>r.host===e.host)),t}},K=new Vd;D();import{useEffect as Ud,useState as _d}from"react";var Xd=e=>se.togglePin(e),Jd=e=>se.toggleSave(e),Gd=e=>se.remove(e),Kd=()=>se.clearSaved(),Yd=()=>se.clearPinned();function Ot(){let[e,t]=_d(()=>se.getState());return Ud(()=>se.subscribe(()=>{t(se.getState())}),[]),{...e,togglePin:Xd,toggleSave:Jd,remove:Gd,clearSaved:Kd,clearPinned:Yd}}D();import{useSyncExternalStore as er}from"react";D();var Zd=120,Qd=class{constructor(){this.ids=[];this.index=-1;this.selectedId=null;this.bodyId=null;this.renderedId=null;this.settleMs=120;this.settleTimer=null;this.subscribers=new Set;this.snapshot=this.buildSnapshot()}buildSnapshot(){return{ids:this.ids,index:this.index,selectedId:this.selectedId,bodyId:this.bodyId,renderedId:this.renderedId}}emit(){this.snapshot=this.buildSnapshot();for(let e of this.subscribers)e(this.snapshot)}getState(){return this.snapshot}subscribe(e){return this.subscribers.add(e),()=>{this.subscribers.delete(e)}}setIds(e){e.length===this.ids.length&&e.every((t,r)=>t===this.ids[r])||(this.ids=e,this.index=this.selectedId==null?-1:e.indexOf(this.selectedId),this.emit())}select(e){e!==this.selectedId&&(this.selectedId=e,this.index=e==null?-1:this.ids.indexOf(e),this.scheduleBody(e),this.emit())}clear(){this.select(null)}step(e){if(this.index<0)return null;let t=this.index+e;if(t<0||t>=this.ids.length)return null;let r=this.ids[t];return this.selectedId=r,this.index=t,this.scheduleBody(r),this.emit(),r}scheduleBody(e){if(this.settleTimer!=null&&(clearTimeout(this.settleTimer),this.settleTimer=null),e==null||this.bodyId==null||this.settleMs<=0){this.bodyId=e;return}this.settleTimer=setTimeout(()=>{this.settleTimer=null,this.bodyId!==this.selectedId&&(this.bodyId=this.selectedId,this.emit())},this.settleMs)}setSettleMs(e){this.settleMs=Math.max(0,e)}getSettleMs(){return this.settleMs}reportRendered(e){e!==this.renderedId&&(this.renderedId=e,this.emit())}reset(){this.settleTimer!=null&&clearTimeout(this.settleTimer),this.settleTimer=null,this.ids=[],this.index=-1,this.selectedId=null,this.bodyId=null,this.renderedId=null,this.emit()}},Ve=new Qd;function eu(e){return e.map(t=>t.id)}var tr=e=>Ve.subscribe(e),Ue=()=>Ve.getState();function tu(){return er(tr,()=>Ue().selectedId!=null,()=>Ue().selectedId!=null)}function Ro(){return er(tr,()=>Ue().selectedId,()=>Ue().selectedId)}function ru(){return er(tr,()=>Ue().bodyId,()=>Ue().bodyId)}function ou(){let e=er(tr,()=>Ue().index,()=>Ue().index),t=er(tr,()=>Ue().ids.length,()=>Ue().ids.length);return{index:e,total:t}}D();import{useEffect as Si,useState as nu}from"react";D();import{urlMatchesIgnoredPattern as iu}from"@buoy-gg/shared-ui/web";function rr(e,t){let r=t.searchText?t.searchText.toLowerCase():null,o=t.method&&t.method.length>0?new Set(t.method):null,n=t.contentType&&t.contentType.length>0?new Set(t.contentType):null,i=[...e];if(o&&(i=i.filter(s=>o.has(s.method))),t.status&&t.status!=="all")switch(t.status){case"success":i=i.filter(s=>s.status&&s.status>=200&&s.status<300);break;case"error":i=i.filter(s=>s.error||s.status&&s.status>=400);break;case"pending":i=i.filter(s=>!s.status&&!s.error);break}return r&&(i=i.filter(s=>s.url.toLowerCase().includes(r)||s.method.toLowerCase().includes(r)||s.path?.toLowerCase().includes(r)||s.host?.toLowerCase().includes(r)||s.error&&s.error.toLowerCase().includes(r)||s.operationName&&s.operationName.toLowerCase().includes(r)||Qn(s.graphqlVariables,r))),t.host&&(i=i.filter(s=>s.host===t.host)),n&&(i=i.filter(s=>{let a=s.responseHeaders||s.requestHeaders,l=a?.["content-type"]||a?.["Content-Type"]||"";for(let u of n)switch(u){case"JSON":if(l.includes("json"))return true;break;case"XML":if(l.includes("xml"))return true;break;case"HTML":if(l.includes("html"))return true;break;case"TEXT":if(l.includes("text"))return true;break;case"IMAGE":if(l.includes("image"))return true;break;case"VIDEO":if(l.includes("video"))return true;break;case"AUDIO":if(l.includes("audio"))return true;break;case"FORM":if(l.includes("form"))return true;break;case"OTHER":if(!l||!l.includes("json")&&!l.includes("xml")&&!l.includes("html")&&!l.includes("text")&&!l.includes("image")&&!l.includes("video")&&!l.includes("audio")&&!l.includes("form"))return true;break}return false})),i}function or(e,t){return t.length===0?e:e.filter(r=>!t.some(o=>iu(r.url,o)))}function xi(e,t){let r=0,o=0,n=0;for(let i of or(e,t))i.status&&i.status>=200&&i.status<300?r++:i.error||i.status&&i.status>=400?o++:!i.status&&!i.error&&n++;return{successful:r,failed:o,pending:n,total:e.length}}function su(e,t){return e.successful===t.successful&&e.failed===t.failed&&e.pending===t.pending&&e.total===t.total}function wi(e){let{ignoredPatterns:t,paused:r}=e,[o,n]=nu(()=>xi(K.getEvents(),t));return Si(()=>{if(r)return;let i=null,s=null,a=K.subscribeToEvents(l=>{s=l,i==null&&(i=requestAnimationFrame(()=>{if(i=null,!s)return;let u=xi(s,t);s=null,n(b=>su(b,u)?b:u)}))});return()=>{a(),i!=null&&cancelAnimationFrame(i)}},[r,t]),Si(()=>K.onClear(()=>{n({successful:0,failed:0,pending:0,total:0})}),[]),o}D();import{useEffect as qr,useState as Ti}from"react";function au(e){let{paused:t}=e,[r,o]=Ti(()=>K.getEvents().length>0);return qr(()=>{if(!t)return K.subscribeToEvents(n=>{let i=n.length>0;o(s=>s===i?s:i)})},[t]),qr(()=>K.onClear(()=>o(false)),[]),r}function lu(e){let{filter:t,ignoredPatterns:r,paused:o}=e,[n,i]=Ti(()=>rr(or(K.getEvents(),r),t).length>0);return qr(()=>{if(!o)return K.subscribeToEvents(s=>{let a=rr(or(s,r),t).length>0;i(l=>l===a?l:a)})},[o,t,r]),qr(()=>K.onClear(()=>i(false)),[]),n}D();function Br(e){if(e==null)return"N/A";if(e===0)return"0 B";let t=1024,r=["B","KB","MB","GB","TB"],o=Math.floor(Math.log(e)/Math.log(t));return`${(e/Math.pow(t,o)).toFixed(1)} ${r[o]}`}function Or(e,t){if(t===-1||!e)return true;try{return JSON.stringify(e).length<t*1024}catch{return false}}function Ci(e,t){let r=e;if(t.filterMode==="failed"?r=r.filter(n=>n.error||n.status&&n.status>=400):t.filterMode==="success"&&(r=r.filter(n=>n.status&&n.status>=200&&n.status<300)),r.length===0)return"No requests to copy";if(t.format==="plaintext")return r.map(n=>`${n.method} ${n.url}`).join(`
102
+ `);if(t.format==="json"){let n=r.map(i=>{let s={};return t.includeMethod&&(s.method=i.method,s.url=i.url),t.includeStatus&&(s.status=i.status,s.statusText=i.statusText),t.includeDuration&&(s.duration=i.duration),i.condition&&(s.condition=i.condition),t.includeTimestamp&&(s.timestamp=i.timestamp),t.includeClient&&(s.requestClient=i.requestClient),t.includeSizes&&(s.requestSize=i.requestSize,s.responseSize=i.responseSize),t.includeErrors&&i.error&&(s.error=i.error),t.includeRequestHeaders&&(s.requestHeaders=i.requestHeaders),t.includeResponseHeaders&&(s.responseHeaders=i.responseHeaders),t.includeRequestBody&&Or(i.requestData,t.bodySizeThreshold)&&(s.requestData=i.requestData),t.includeResponseBody&&Or(i.responseData,t.bodySizeThreshold)&&(s.responseData=i.responseData),s});return JSON.stringify(n,null,2)}let o=r.map((n,i)=>{let s=`# Request ${i+1}
104
103
 
105
- `;if(e.includeMethod&&(a+=`**Method:** ${n.method}
106
- `,a+=`**URL:** ${n.url}
107
- `),e.includeStatus){let l=n.status||"Pending";a+=`**Status:** ${l}${n.statusText?` (${n.statusText})`:""}
108
- `}if(e.includeClient&&n.requestClient&&(a+=`**Client:** ${n.requestClient}
109
- `),n.condition&&(a+=`Conditions: ${n.condition.profile} (+${n.condition.delayMs} ms)
110
- `),e.includeDuration&&n.duration&&(a+=`**Duration:** ${n.duration}ms
111
- `),e.includeTimestamp&&(a+=`**Timestamp:** ${new Date(n.timestamp).toISOString()}
112
- `),e.includeSizes){let l=n.requestSize?$r(n.requestSize):"N/A",p=n.responseSize?$r(n.responseSize):"N/A";a+=`**Request Size:** ${l}
113
- `,a+=`**Response Size:** ${p}
114
- `}if(e.includeErrors&&n.error&&(a+=`**Error:** ${n.error}
115
- `),e.includeRequestHeaders&&Object.keys(n.requestHeaders).length>0&&(a+=`
104
+ `;if(t.includeMethod&&(s+=`**Method:** ${n.method}
105
+ `,s+=`**URL:** ${n.url}
106
+ `),t.includeStatus){let a=n.status||"Pending";s+=`**Status:** ${a}${n.statusText?` (${n.statusText})`:""}
107
+ `}if(t.includeClient&&n.requestClient&&(s+=`**Client:** ${n.requestClient}
108
+ `),n.condition&&(s+=`Conditions: ${n.condition.profile} (+${n.condition.delayMs} ms)
109
+ `),t.includeDuration&&n.duration&&(s+=`**Duration:** ${n.duration}ms
110
+ `),t.includeTimestamp&&(s+=`**Timestamp:** ${new Date(n.timestamp).toISOString()}
111
+ `),t.includeSizes){let a=n.requestSize?Br(n.requestSize):"N/A",l=n.responseSize?Br(n.responseSize):"N/A";s+=`**Request Size:** ${a}
112
+ `,s+=`**Response Size:** ${l}
113
+ `}if(t.includeErrors&&n.error&&(s+=`**Error:** ${n.error}
114
+ `),t.includeRequestHeaders&&Object.keys(n.requestHeaders).length>0&&(s+=`
116
115
  ## Request Headers
117
116
  \`\`\`json
118
117
  ${JSON.stringify(n.requestHeaders,null,2)}
119
118
  \`\`\`
120
- `),e.includeRequestBody)if(a+=`
119
+ `),t.includeRequestBody)if(s+=`
121
120
  ## Request Data
122
- `,Ur(n.requestData,e.bodySizeThreshold))a+=`\`\`\`json
121
+ `,Or(n.requestData,t.bodySizeThreshold))s+=`\`\`\`json
123
122
  ${JSON.stringify(n.requestData,null,2)}
124
123
  \`\`\`
125
- `;else{let l=n.requestSize?$r(n.requestSize):"Unknown size";a+=`_Payload omitted (${l}). Exceeds ${e.bodySizeThreshold}KB threshold._
126
- `}if(e.includeResponseHeaders&&Object.keys(n.responseHeaders).length>0&&(a+=`
124
+ `;else{let a=n.requestSize?Br(n.requestSize):"Unknown size";s+=`_Payload omitted (${a}). Exceeds ${t.bodySizeThreshold}KB threshold._
125
+ `}if(t.includeResponseHeaders&&Object.keys(n.responseHeaders).length>0&&(s+=`
127
126
  ## Response Headers
128
127
  \`\`\`json
129
128
  ${JSON.stringify(n.responseHeaders,null,2)}
130
129
  \`\`\`
131
- `),e.includeResponseBody)if(a+=`
130
+ `),t.includeResponseBody)if(s+=`
132
131
  ## Response Data
133
- `,Ur(n.responseData,e.bodySizeThreshold))a+=`\`\`\`json
132
+ `,Or(n.responseData,t.bodySizeThreshold))s+=`\`\`\`json
134
133
  ${JSON.stringify(n.responseData,null,2)}
135
134
  \`\`\`
136
- `;else{let l=n.responseSize?$r(n.responseSize):"Unknown size";a+=`_Payload omitted (${l}). Exceeds ${e.bodySizeThreshold}KB threshold._
137
- `}return a+=`
135
+ `;else{let a=n.responseSize?Br(n.responseSize):"Unknown size";s+=`_Payload omitted (${a}). Exceeds ${t.bodySizeThreshold}KB threshold._
136
+ `}return s+=`
138
137
  ---
139
- `,a}).join(`
138
+ `,s}).join(`
140
139
  `);return`# Network Requests (${r.length} total)
141
140
 
142
- `+o}import{Fragment as eu,jsx as ye,jsxs as At}from"react/jsx-runtime";function Ki({activeStatus:t,onToggleStatus:e,ignoredPatterns:r,paused:o}){let i=en({ignoredPatterns:r,paused:o});return ye(Yi,{counts:i,activeStatus:t,onToggleStatus:e})}function Yi({counts:t,activeStatus:e,onToggleStatus:r}){return At(u,{style:ne.headerChipRow,children:[At(D,{style:[ne.headerChip,e==="success"&&ne.headerChipActive],onPress:()=>r("success"),children:[ye(Ud,{size:12,color:kt.semantic.success}),ye(f,{style:[ne.headerChipValue,{color:kt.semantic.success}],children:t.successful})]}),At(D,{style:[ne.headerChip,e==="error"&&ne.headerChipActive],onPress:()=>r("error"),children:[ye(jd,{size:12,color:kt.semantic.error}),ye(f,{style:[ne.headerChipValue,{color:kt.semantic.error}],children:t.failed})]}),At(D,{style:[ne.headerChip,e==="pending"&&ne.headerChipActive],onPress:()=>r("pending"),children:[ye(Xd,{size:12,color:kt.semantic.warning}),ye(f,{style:[ne.headerChipValue,{color:kt.semantic.warning}],children:t.pending})]})]})}function Qi({paused:t}){let e=ji({paused:t});return ye(D,{"sentry-label":"ignore clear events",testID:"buoy-network-clear",accessibilityLabel:"Clear network requests",accessibilityRole:"button",onPress:()=>$.clearEvents(),style:[ne.headerActionButton,!e&&ne.headerActionButtonDisabled],disabled:!e,children:ye(Kd,{size:14,color:e?se.color.textSecondary:se.color.textTertiary})})}function Zd({onPress:t}){let{savedRecords:e}=tt(),r=e.length;return At(D,{"sentry-label":"ignore open saved",onPress:t,accessibilityLabel:"Saved requests",style:ne.headerActionButton,children:[ye(Gi,{size:14,color:r>0?se.color.accent:se.color.textSecondary}),r>0?ye(u,{style:ne.savedBadge,children:ye(f,{style:ne.savedBadgeText,children:r>99?"99+":r})}):null]})}function tn({isPro:t,onUpgradePress:e}){let r=Yt(),o=tt(),{pinned:i,saved:n}=Kt(o,r),s=Qd("network.saved"),a=!i&&o.pinnedEvents.length>=mr,l=!n&&o.savedRecords.length>=s,p=()=>r?$.getEvents().find(O=>O.id===r)??ee.getEventById(r):null,c=()=>{let O=p();O&&o.togglePin(O)},x=()=>{if(l&&!t){e();return}let O=p();O&&o.toggleSave(O)};return At(eu,{children:[ye(D,{"sentry-label":"ignore pin request",onPress:c,disabled:a,testID:"buoy-network-pin",accessibilityRole:"button",accessibilityLabel:i?"Unpin request":"Pin request",accessibilityHint:a?`Pin limit reached (${mr})`:void 0,style:[ne.headerActionButton,i&&ne.headerActionButtonActive,a&&ne.headerActionButtonDisabled],children:ye(Gd,{size:14,active:i,color:i?se.color.accent:a?se.color.textTertiary:se.color.textSecondary})}),ye(D,{"sentry-label":"ignore save request",onPress:x,disabled:l&&t,testID:"buoy-network-save",accessibilityRole:"button",accessibilityLabel:n?"Remove from saved":"Save request",accessibilityHint:l&&t?`Saved limit reached (${_e})`:void 0,style:[ne.headerActionButton,n&&ne.headerActionButtonSaved,l&&t&&ne.headerActionButtonDisabled],children:ye(Gi,{size:14,color:n?se.color.accent:l&&t?se.color.textTertiary:se.color.textSecondary})})]})}function Zi({isPro:t,filter:e,ignoredPatterns:r,copySettings:o,paused:i,onUpgradePress:n,label:s}){let a=Xi({filter:e,ignoredPatterns:r,paused:i});return t?ye(Yd,{value:()=>jr(lt(dt($.getEvents(),r),e),o),size:14,label:s,buttonStyle:s?ne.copyMenuRow:ne.headerActionButton,labelStyle:ne.copyMenuLabel,colors:{idle:a?se.color.textSecondary:se.color.textTertiary,success:kt.semantic.success,error:kt.semantic.error},disabled:!a}):At(D,{"sentry-label":"ignore copy pro",onPress:n,style:[s?ne.copyMenuRow:ne.headerActionButton,!a&&ne.headerActionButtonDisabled],disabled:!a,children:[ye(Jd,{size:14,color:a?se.color.textSecondary:se.color.textTertiary}),s?ye(f,{style:ne.copyMenuLabel,children:s}):null]})}var ne=K.create({copyMenuRow:{flexDirection:"row",alignItems:"center",gap:10,paddingHorizontal:6,paddingVertical:11,justifyContent:"flex-start"},copyMenuLabel:{fontSize:13,fontWeight:"600",color:se.color.text},headerChipRow:{flexDirection:"row",alignItems:"center",gap:8},headerChip:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:se.color.buttonSurface,paddingHorizontal:10,paddingVertical:5,borderRadius:12,borderWidth:1,borderColor:se.color.border},headerChipActive:{backgroundColor:se.color.accentSoft,borderColor:se.color.accentBorderStrong},headerChipValue:{fontSize:12,fontWeight:"600",fontFamily:Ji},headerActionButton:{width:32,height:32,borderRadius:8,backgroundColor:se.color.buttonSurface,borderWidth:1,borderColor:se.color.border,alignItems:"center",justifyContent:"center"},headerActionButtonDisabled:{opacity:.55},headerActionButtonActive:{backgroundColor:se.color.accentSoft,borderColor:se.color.accentBorderStrong},headerActionButtonSaved:{backgroundColor:se.color.accentSoft,borderColor:se.color.accentBorderStrong},savedBadge:{position:"absolute",top:-3,right:-3,minWidth:14,height:14,paddingHorizontal:3,borderRadius:7,backgroundColor:se.color.accent,alignItems:"center",justifyContent:"center"},savedBadgeText:{color:se.color.onAccent,fontSize:9,fontWeight:"700",fontFamily:Ji}});g();he();import{useCallback as Pu}from"react";import{FlaskConical as Lu,Pin as Bu,Power as qu,macOSColors as ve,ToolEmptyState as Mu,resolveListEmptyState as Du,EVENT_LIST_PRESET as Au,monoFont as Hu}from"@buoy-gg/shared-ui/web";g();he();import{memo as tu}from"react";import{ChevronRight as ru,Upload as ou,Download as nu,Clock as iu,AlertCircle as su,Bookmark as au,FlaskConical as lu,Pin as du,DevToolsCard as uu,MethodBadge as cu,TypeBadge as pu,night as Te,macOSColors as Qt,monoFont as rn}from"@buoy-gg/shared-ui/web";import{formatRelativeTime as fu}from"@buoy-gg/shared-ui/web";import{jsx as de,jsxs as ot}from"react/jsx-runtime";function gu(t,e){return e?Qt.semantic.error:t?t>=200&&t<300?Qt.semantic.success:t>=300&&t<400?Qt.semantic.info:t>=400?Qt.semantic.error:Qt.text.muted:Qt.semantic.warning}function mu(t){let e=t?.["content-type"]||t?.["Content-Type"]||"";return e.includes("json")?"JSON":e.includes("xml")?"XML":e.includes("html")?"HTML":e.includes("text")?"TEXT":e.includes("image")?"IMG":e.includes("video")?"VIDEO":e.includes("audio")?"AUDIO":e.includes("form")?"FORM":null}function es(t){switch(t){case"fetch":return{backgroundColor:"rgba(74, 144, 226, 0.15)",color:"#4A90E2"};case"graphql":return{backgroundColor:"rgba(229, 53, 171, 0.15)",color:"#E535AB"};case"grpc-web":return{backgroundColor:"rgba(16, 185, 129, 0.15)",color:"#10B981"};case"xhr":return{backgroundColor:"rgba(245, 158, 11, 0.15)",color:"#F59E0B"};default:return{backgroundColor:"rgba(147, 51, 234, 0.15)",color:"#9333EA"}}}function hu({event:t,isPending:e,statusColor:r}){return e?ot(u,{style:fe.pendingBadge,children:[de(iu,{size:10,color:Te.color.warning}),de(f,{style:fe.pendingText,children:"..."})]}):t.error?ot(u,{style:fe.errorBadge,children:[de(su,{size:10,color:Te.color.danger}),de(f,{style:fe.errorText,children:"ERR"})]}):de(u,{style:fe.statusBadge,children:de(f,{style:[fe.statusText,{color:r}],children:String(t.status)})})}function yu({requestSize:t,responseSize:e}){return!t&&!e?null:ot(u,{style:fe.sizeRow,children:[t?ot(u,{style:fe.sizeItem,children:[de(ou,{size:8,color:Te.color.info}),de(f,{style:fe.sizeText,children:Xe(t)})]}):null,e?ot(u,{style:fe.sizeItem,children:[de(nu,{size:8,color:Te.color.accent}),de(f,{style:fe.sizeText,children:Xe(e)})]}):null]})}function bu({timestamp:t,duration:e}){let r=cr(),o=fu(t,r);return e?ot(f,{style:fe.bottomRightText,children:[Jt(e)," ",o]}):de(f,{style:fe.bottomRightText,children:o})}var xt=tu(function({event:e,onPress:r,pinned:o=!1,saved:i=!1,overridden:n=!1,onLongPress:s}){let a=gu(e.status,e.error),l=!e.status&&!e.error,p=mu(e.responseHeaders),c=e.path||e.url.replace(/^https?:\/\/[^/]+/,"");return e.requestClient==="graphql"?e.operationName?c=Hr(e.operationName,e.graphqlVariables):c=c.replace(/\/graphql[^?]*/,"/graphql"):e.operationName&&(c=`${c}
143
- (${e.operationName})`),ot(uu,{onPress:()=>r(e),onLongPress:s?()=>s(e):void 0,style:fe.cardWrapper,contentStyle:[fe.container,{borderLeftColor:a}],testID:`buoy-network-row-${e.id}`,accessibilityLabel:`${e.method} ${e.path||e.url}`,children:[ot(u,{style:fe.topRightContainer,children:[o?de(du,{size:10,active:!0,color:Te.color.info}):null,i?de(au,{size:10,color:Te.color.accent}):null,n||e.override?de(lu,{size:10,color:Te.color.warning}):null,de(hu,{event:e,isPending:l,statusColor:a}),e.requestClient?de(u,{style:[fe.topRightBadge,{backgroundColor:es(e.requestClient).backgroundColor}],children:de(f,{style:[fe.clientText,{color:es(e.requestClient).color}],children:e.requestClient==="graphql"?"GQL":e.requestClient==="grpc-web"?"gRPC":e.requestClient==="xhr"?"XHR":e.requestClient})}):null]}),ot(u,{style:fe.leftSection,children:[de(cu,{method:e.method,size:"small"}),de(yu,{requestSize:e.requestSize,responseSize:e.responseSize})]}),de(u,{style:fe.middleSection,children:de(f,{style:fe.urlText,numberOfLines:2,children:c})}),ot(u,{style:fe.rightSection,children:[p?de(pu,{type:p,size:"small"}):null,de(ru,{size:14,color:Te.color.textTertiary})]}),de(u,{style:fe.bottomRightContainer,children:de(bu,{timestamp:e.timestamp,duration:e.duration})})]})});xt.displayName="NetworkEventItemCompact";var fe=K.create({cardWrapper:{marginHorizontal:8},container:{flexDirection:"row",alignItems:"center",backgroundColor:"rgba(12, 12, 12, 0.9)",borderLeftWidth:3,borderLeftColor:"transparent",borderBottomWidth:1},leftSection:{marginRight:8,alignItems:"flex-start"},topRightContainer:{position:"absolute",top:1,right:1,flexDirection:"row",alignItems:"center",gap:4},topRightBadge:{paddingHorizontal:4,paddingVertical:2,borderRadius:4},middleSection:{flex:1,justifyContent:"center",paddingRight:8},urlText:{fontSize:12,color:Te.color.text,lineHeight:16,fontFamily:rn},rightSection:{flexDirection:"row",alignItems:"center",gap:6},bottomRightContainer:{position:"absolute",bottom:4,right:8},bottomRightText:{fontSize:9,color:Te.color.textTertiary,fontFamily:rn},statusBadge:{paddingHorizontal:4,paddingVertical:1,borderRadius:3},statusText:{fontSize:10,fontWeight:"600"},pendingBadge:{flexDirection:"row",alignItems:"center",gap:2,paddingHorizontal:4,paddingVertical:1,backgroundColor:Te.color.warningSoft,borderRadius:3},pendingText:{fontSize:10,color:Te.color.warning,fontWeight:"600"},errorBadge:{flexDirection:"row",alignItems:"center",gap:2,paddingHorizontal:4,paddingVertical:1,backgroundColor:Te.color.dangerSoft,borderRadius:3},errorText:{fontSize:10,color:Te.color.danger,fontWeight:"600"},durationText:{fontSize:9,color:Te.color.textSecondary},sizeRow:{flexDirection:"row",gap:4,marginTop:4},sizeItem:{flexDirection:"row",alignItems:"center",gap:2},sizeText:{fontSize:8,color:Te.color.textSecondary,fontFamily:rn},clientText:{fontSize:8,fontWeight:"700",letterSpacing:.3,textTransform:"uppercase"}});g();he();import{ProBadge as wu,Zap as vu,buoyColors as wr}from"@buoy-gg/shared-ui/web";import{jsx as Xr,jsxs as on}from"react/jsx-runtime";function Jr({title:t,subtitle:e,onPress:r}){return on(D,{style:br.banner,onPress:r,activeOpacity:.8,children:[on(u,{style:br.content,children:[on(u,{style:br.left,children:[Xr(vu,{size:16,color:wr.primary}),Xr(f,{style:br.title,children:t})]}),Xr(wu,{})]}),Xr(f,{style:br.subtitle,children:e})]})}var br=K.create({banner:{backgroundColor:wr.card,borderRadius:10,borderWidth:1,borderColor:wr.primary+"40",padding:12,marginHorizontal:12,marginTop:12,marginBottom:34},content:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginBottom:4},left:{flexDirection:"row",alignItems:"center",gap:8},title:{color:wr.text,fontSize:13,fontWeight:"600"},subtitle:{color:wr.textMuted,fontSize:11}});g();import{useEffect as ts,useMemo as Gr,useState as Su}from"react";import{useLimit as ku}from"@buoy-gg/shared-ui/web";function Rt(t){let{filter:e,ignoredPatterns:r,paused:o,visible:i=!0,isPro:n}=t,s=ku("network.requests"),a=n?1/0:s,[l,p]=Su(()=>$.getEvents());ts(()=>{if(!i)return;if(o){p($.getEvents());return}let N=null,w=null,R=$.subscribeToEvents(S=>{w=S,N==null&&(N=requestAnimationFrame(()=>{N=null,w&&p(w),w=null}))});return()=>{R(),N!=null&&cancelAnimationFrame(N)}},[o,i]),ts(()=>$.onClear(()=>{p([])}),[]);let c=Gr(()=>dt(l,r),[l,r]),x=Gr(()=>lt(c,e),[c,e]),O=Gr(()=>{let N=new Set;return l.slice(a).forEach(w=>{N.add(w.id)}),N},[l,a]),E=Gr(()=>O.size===0?x:x.filter(N=>!O.has(N.id)),[x,O]),P=x.length-E.length;return{events:x,visibleEvents:E,hasLockedEvents:P>0,lockedEventCount:P,totalEvents:c.length}}g();import{useCallback as Zt,useSyncExternalStore as Ou}from"react";g();import{devToolsStorageKeys as rs,persistentStorage as os}from"@buoy-gg/shared-ui/web";var xu=800,Ru=3,Tu=Object.freeze([]),Cu=250,Eu=["respond","fail","delay"];function Nu(t){if(!Array.isArray(t))return[];let e=[];for(let r of t){if(!r||typeof r!="object")continue;let o=r;if(typeof o.id!="string"||typeof o.urlPattern!="string"||!o.urlPattern)continue;let i=Eu.includes(o.kind)?o.kind:"respond";e.push({id:o.id,enabled:o.enabled!==!1,name:typeof o.name=="string"?o.name:void 0,urlPattern:o.urlPattern,methods:Array.isArray(o.methods)?o.methods.filter(n=>typeof n=="string"):void 0,kind:i,status:typeof o.status=="number"?Math.min(mt,Math.max(gt,o.status)):void 0,statusText:typeof o.statusText=="string"?o.statusText:void 0,headers:o.headers&&typeof o.headers=="object"?o.headers:void 0,body:typeof o.body=="string"?o.body:void 0,failKind:o.failKind==="timeout"?"timeout":void 0,delayMs:typeof o.delayMs=="number"?o.delayMs:void 0,times:typeof o.times=="number"?o.times:null,alternate:o.alternate===!0,hits:0,seen:0,createdAt:typeof o.createdAt=="number"?o.createdAt:0})}return e.slice(0,Ue)}var nn=class{constructor(){this.rules=[];this.enabled=!0;this.listeners=new Set;this.loaded=!1;this.loadPromise=null;this.dirty=!1;this.idCounter=0;this.state={enabled:!0,rules:[],autoPaused:!1};this.launchStreak=0;this.autoPaused=!1;this.keepAlive=null;this.hitEmitTimer=null;this.engineDisabled=!1;this.remote=null;this.remoteEchoUntil=0}enableRemoteMode(e){this.remote=e,this.disableEngine()}disableRemoteMode(){this.remote=null}replaceRules(e,r=!1){this.remote&&(!r&&Date.now()<this.remoteEchoUntil||(this.enabled=e.enabled,this.rules=e.rules,this.rebuild(),this.emit()))}markLocalEdit(){this.remote&&(this.remoteEchoUntil=Date.now()+xu)}disableEngine(){this.engineDisabled=!0,this.keepAlive&&(this.keepAlive(),this.keepAlive=null,je()===0&&yt())}getState(){return this.state}getRules(){return this.engineDisabled||!this.enabled?Tu:this.rules}async fetchRuleBody(e){let r=this.rules.find(o=>o.id===e);if(!r)return null;if(!r.bodyOmitted)return r.body??null;if(!this.remote?.getRuleBody)return null;try{return await this.remote.getRuleBody(e)}catch{return null}}activeCount(){return this.enabled?this.rules.filter(e=>e.enabled&&!dr(e)).length:0}subscribe(e){return this.listeners.add(e),this.ensureLoaded(),()=>{this.listeners.delete(e)}}setEnabled(e){this.enabled!==e&&(this.remote?.setEnabled(e),this.markLocalEdit(),this.markTouched(),this.enabled=e,this.commit(this.rules))}addRule(e){if(this.rules.length>=Ue)return null;let r={...e,id:`ovr_${Date.now().toString(36)}_${++this.idCounter}`,hits:0,seen:0,createdAt:Date.now()};return this.commit([r,...this.rules]),r}upsertRule(e){this.remote?.upsertRule(e),this.markLocalEdit(),this.markTouched();let{id:r,...o}=e;return r&&this.rules.some(i=>i.id===r)?(this.updateRule(r,o),this.rules.find(i=>i.id===r)??null):this.addRule(o)}updateRule(e,r){let o=this.rules.findIndex(n=>n.id===e);if(o===-1)return;let i=[...this.rules];i[o]={...i[o],...r,hits:0,seen:0},this.commit(i)}setRuleEnabled(e,r){let o=this.rules.findIndex(n=>n.id===e);if(o===-1||this.rules[o].enabled===r)return;this.remote?.setRuleEnabled(e,r),this.markLocalEdit(),this.markTouched();let i=[...this.rules];i[o]={...i[o],enabled:r,hits:r?0:i[o].hits,seen:r?0:i[o].seen},this.commit(i)}removeRule(e){let r=this.rules.filter(o=>o.id!==e);r.length!==this.rules.length&&(this.remote?.removeRule(e),this.markLocalEdit(),this.markTouched(),this.commit(r))}clearRules(){this.rules.length!==0&&(this.remote?.clearRules(),this.markLocalEdit(),this.markTouched(),this.commit([]))}recordMatch(e){let r=this.rules.findIndex(i=>i.id===e);if(r===-1)return;let o=[...this.rules];o[r]={...o[r],seen:o[r].seen+1},this.rules=o,this.rebuild()}recordHit(e){let r=this.rules.findIndex(a=>a.id===e);if(r===-1)return;let o=this.rules[r],i=o.hits+1,n=typeof o.times=="number"&&i>=o.times,s=[...this.rules];if(s[r]={...o,hits:i,enabled:n?!1:o.enabled},n){this.commit(s);return}this.rules=s,this.rebuild(),this.scheduleHitEmit()}ensureLoaded(){return this.remote||this.loaded?Promise.resolve():this.loadPromise?this.loadPromise:(this.loadPromise=(async()=>{try{let e=await os.getItem(rs.network.overrides());if(e&&!this.dirty){let r=JSON.parse(e);this.enabled=r?.enabled!==!1,this.rules=Nu(r?.rules),this.launchStreak=typeof r?.launchStreak=="number"?r.launchStreak:0,this.applyLaunchGuard(),this.rebuild()}}catch{}finally{this.loaded=!0,this.syncKeepAlive(),this.emit()}})(),this.loadPromise)}applyLaunchGuard(){if(!this.enabled||this.activeCount()===0){this.launchStreak=0;return}this.launchStreak+=1,this.launchStreak>=Ru&&(this.enabled=!1,this.autoPaused=!0,this.launchStreak=0),this.persist()}syncKeepAlive(){let e=!this.engineDisabled&&this.activeCount()>0;if(e&&!this.keepAlive){Pr(),this.keepAlive=bt(()=>{});return}!e&&this.keepAlive&&(this.keepAlive(),this.keepAlive=null,je()===0&&yt())}scheduleHitEmit(){this.hitEmitTimer===null&&(this.hitEmitTimer=setTimeout(()=>{this.hitEmitTimer=null,this.emit()},Cu))}commit(e){this.dirty=!0,this.rules=e.slice(0,Ue),this.rebuild(),this.syncKeepAlive(),this.emit(),this.persist()}rebuild(){this.state={enabled:this.enabled,rules:this.rules,autoPaused:this.autoPaused}}markTouched(){this.launchStreak=0,this.autoPaused=!1}noteHealthyLaunch(){this.launchStreak===0&&!this.autoPaused||(this.markTouched(),this.persist(),this.rebuild(),this.emit())}persist(){this.remote||os.setItem(rs.network.overrides(),JSON.stringify({enabled:this.enabled,rules:this.rules,launchStreak:this.launchStreak})).catch(()=>{})}emit(){this.listeners.forEach(e=>e())}},U=new nn;_n({getRules:()=>U.getRules(),recordHit:t=>U.recordHit(t),recordMatch:t=>U.recordMatch(t)});function Tt(){let t=Ou(Zt(s=>U.subscribe(s),[]),()=>U.getState(),()=>U.getState()),e=Zt(s=>U.setEnabled(s),[]),r=Zt(s=>U.upsertRule(s),[]),o=Zt((s,a)=>U.setRuleEnabled(s,a),[]),i=Zt(s=>U.removeRule(s),[]),n=Zt(()=>U.clearRules(),[]);return{enabled:t.enabled,rules:t.rules,autoPaused:t.autoPaused,activeCount:U.activeCount(),setEnabled:e,upsertRule:r,setRuleEnabled:o,removeRule:i,clearRules:n,isRuleSpent:dr}}g();function ns(t,e){if(e.length===0)return[];let r=new Set(e.map(i=>i.id)),o=new Set;for(let i of e){let n;for(let s of t){if(s.override&&r.has(s.override.ruleId)){o.add(s.id);continue}Ut(i,s.url,String(s.method||"GET"))&&(s.timestamp>=i.createdAt?o.add(s.id):(!n||s.timestamp>n.timestamp)&&(n=s))}n&&o.add(n.id)}return t.filter(i=>o.has(i.id))}g();var Iu=[];function vr(t,e,r){return e.length===0?{pinned:Iu,rest:t}:{pinned:e,rest:r.size===0?t:t.filter(o=>!r.has(o.id))}}import{jsx as ke,jsxs as Ht}from"react/jsx-runtime";var zu=t=>t.id;function Vu({events:t,onEventPress:e,onLongPress:r,savedLiveIds:o,onClearPinned:i}){return t.length===0?null:Ht(u,{style:Se.pinnedSection,children:[Ht(u,{style:Se.pinnedHeader,children:[ke(Bu,{size:11,active:!0,color:ve.semantic.info}),Ht(f,{style:Se.pinnedTitle,children:["PINNED \xB7 ",t.length]}),ke(D,{onPress:i,"sentry-label":"ignore unpin all",style:Se.pinnedClear,children:ke(f,{style:Se.pinnedClearText,children:"Unpin all"})})]}),t.map(n=>ke(xt,{event:n,onPress:e,onLongPress:r,pinned:!0,saved:o.has(n.id)},n.id))]})}function Fu({events:t,onEventPress:e,onLongPress:r,savedLiveIds:o,paused:i,onTogglePaused:n}){return t.length===0?null:Ht(u,{style:[Se.overriddenSection,i&&Se.overriddenSectionOff],children:[Ht(u,{style:Se.overriddenHeader,children:[ke(Lu,{size:11,color:i?ve.text.muted:ve.semantic.warning}),ke(f,{testID:"buoy-network-overridden-strip",style:[Se.overriddenTitle,i&&Se.overriddenTitleOff],children:i?`PAUSED \xB7 ${t.length}`:`OVERRIDDEN \xB7 ${t.length}`}),ke(D,{onPress:n,"sentry-label":"ignore pause overrides",style:Se.overriddenManage,children:ke(f,{style:[Se.overriddenManageText,i&&Se.overriddenTitleOff],children:i?"Resume":"Pause"})})]}),t.map(s=>ke(xt,{event:s,onPress:e,onLongPress:r,overridden:!0,saved:o.has(s.id)},s.id))]})}function is({visible:t,paused:e,filter:r,ignoredPatterns:o,isPro:i,searchText:n,onEventPress:s,onUpgradePress:a}){let{visibleEvents:l,hasLockedEvents:p,lockedEventCount:c,totalEvents:x}=Rt({filter:r,ignoredPatterns:o,paused:e,visible:t,isPro:i}),{pinnedEvents:O,pinnedLiveIds:E,savedLiveIds:P,togglePin:N,clearPinned:w}=tt(),{rules:R,enabled:S,setEnabled:v,isRuleSpent:A}=Tt(),H=Pu(X=>{N(X)},[N]);if(!t)return null;let{pinned:L,rest:m}=vr(l,O,E),y=R.filter(X=>X.enabled&&!A(X)),k=ns([...L,...m],y),d=new Set(k.map(X=>X.id)),b=L.filter(X=>!d.has(X.id)),h=d.size?m.filter(X=>!d.has(X.id)):m,M=!e,ae=({item:X})=>ke(xt,{event:X,onPress:s,onLongPress:H,saved:P.has(X.id)}),pe=()=>b.length>0||k.length>0?null:ke(Mu,{testID:"buoy-network-empty",...Du({subject:"requests",search:n,total:x,capturing:M,waiting:{otto:"fishing",title:"No network events",message:"Network requests will appear here"},paused:{title:"No network events",message:"Enable interception to start capturing"}})}),re=()=>{if(!p)return null;let X=n.length>0,ie=X?`${c} matching ${c===1?"request":"requests"} in locked history`:`${c} requests locked`;return ke(Jr,{title:ie,subtitle:X?"Upgrade to Pro to search your full request history":"Upgrade to Pro to unlock full request history",onPress:a})};return Ht(u,{style:Se.root,children:[M?null:Ht(u,{style:Se.disabledBanner,children:[ke(qu,{size:14,color:ve.semantic.warning}),ke(f,{style:Se.disabledText,children:"Network interception is disabled"})]}),ke(Fu,{events:k,onEventPress:s,onLongPress:H,savedLiveIds:P,paused:!S,onTogglePaused:()=>v(!S)}),ke(Vu,{events:b,onEventPress:s,onLongPress:H,savedLiveIds:P,onClearPinned:w}),h.length>0||p?ke(sr,{testID:"buoy-network-list",data:h,renderItem:ae,keyExtractor:zu,contentContainerStyle:Se.listContent,showsVerticalScrollIndicator:!0,onEndReachedThreshold:.8,scrollEnabled:!0,...Au,extraData:P,"sentry-label":"ignore network events list",ListFooterComponent:re}):pe()]})}var Se=K.create({root:{flex:1,minHeight:0},overriddenSection:{borderBottomWidth:1,borderBottomColor:ve.semantic.warning+"44",backgroundColor:ve.semantic.warningBackground},overriddenSectionOff:{borderBottomColor:ve.border.default,backgroundColor:ve.background.card},overriddenTitleOff:{color:ve.text.muted},overriddenHeader:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:12,paddingTop:8,paddingBottom:4},overriddenTitle:{flex:1,fontSize:10,fontWeight:"700",letterSpacing:.8,color:ve.semantic.warning},overriddenManage:{paddingHorizontal:6,paddingVertical:2},overriddenManageText:{fontSize:10,fontWeight:"600",color:ve.semantic.warning},pinnedSection:{borderBottomWidth:1,borderBottomColor:ve.border.default,paddingBottom:4},pinnedHeader:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:20,paddingTop:10,paddingBottom:6},pinnedTitle:{flex:1,color:ve.semantic.info,fontSize:10,fontWeight:"700",letterSpacing:.6,fontFamily:Hu},pinnedClear:{paddingHorizontal:6,paddingVertical:2},pinnedClearText:{color:ve.text.muted,fontSize:10},disabledBanner:{flexDirection:"row",alignItems:"center",gap:8,padding:10,marginHorizontal:12,marginTop:8,backgroundColor:ve.semantic.warningBackground,borderRadius:8,borderWidth:1,borderColor:ve.semantic.warning+"20"},disabledText:{color:ve.semantic.warning,fontSize:11,flex:1},listContent:{paddingTop:8}});g();he();import{useState as _u}from"react";import{Bookmark as Wu,CopyButton as $u,Search as Uu,macOSColors as We,useLimit as ju,ToolEmptyState as Xu,resolveListEmptyState as Ju,EVENT_LIST_PRESET as Gu,monoFont as Ku}from"@buoy-gg/shared-ui/web";g();function Kr(t,e,r){let o=t.slice(0,Math.min(e,_e)),i=o.map(n=>n.event);return{events:r?lt(i,{searchText:r}):i,lockedCount:t.length-o.length}}import{jsx as it,jsxs as Yr}from"react/jsx-runtime";var Yu=t=>t.id;function sn({visible:t,isPro:e,copySettings:r,search:o,onSearchChange:i,onEventPress:n,onUpgradePress:s}){let{savedRecords:a,pinnedLiveIds:l,toggleSave:p,clearSaved:c}=tt(),x=ju("network.saved"),[O,E]=_u(""),P=o!=null&&i!=null,N=P?o:O,w=P?i:E;if(!t)return null;let{events:R,lockedCount:S}=Kr(a,x,N),v=L=>{p(L)},A=({item:L})=>it(xt,{event:L,onPress:n,onLongPress:v,saved:!0,pinned:l.has(L.id)}),H=()=>S===0?null:it(Jr,{title:`${S} saved ${S===1?"request":"requests"} locked`,subtitle:`Your plan keeps ${x}. Upgrade to Pro to unlock the rest.`,onPress:s});return Yr(u,{style:nt.root,children:[Yr(u,{style:nt.toolbar,children:[it(Wu,{size:11,color:We.semantic.debug}),Yr(f,{style:nt.toolbarTitle,children:["SAVED \xB7 ",a.length,x>=_e?"":`/${x}`]}),e?it($u,{value:()=>jr(R,r),size:13,buttonStyle:nt.toolbarButton,colors:{idle:We.text.secondary,success:We.semantic.success,error:We.semantic.error},disabled:R.length===0}):null,it(D,{onPress:c,"sentry-label":"ignore clear saved",style:nt.toolbarClear,disabled:a.length===0,children:it(f,{style:[nt.toolbarClearText,a.length===0&&nt.toolbarClearTextDisabled],children:"Clear all"})})]}),a.length>0?Yr(u,{style:nt.searchRow,children:[it(Uu,{size:13,color:We.text.secondary}),it(ft,{style:nt.searchInput,placeholder:"Search saved requests\u2026",placeholderTextColor:We.text.muted,value:N,onChangeText:w,"sentry-label":"ignore saved search",accessibilityLabel:"Search saved requests",autoCapitalize:"none",autoCorrect:!1,returnKeyType:"search"})]}):null,a.length===0||N.trim().length>0&&R.length===0&&S===0?it(Xu,{testID:"buoy-network-saved-empty",...Ju({subject:"saved requests",verb:"kept",search:a.length===0?"":N,total:a.length,waiting:{otto:"empty",title:"No saved requests",message:"Open a request and tap the bookmark to keep it here \u2014 saved requests survive Clear and app restarts."}})}):it(sr,{data:R,renderItem:A,keyExtractor:Yu,contentContainerStyle:nt.listContent,showsVerticalScrollIndicator:!0,scrollEnabled:!0,...Gu,extraData:l,"sentry-label":"ignore saved requests list",ListFooterComponent:H})]})}var nt=K.create({root:{flex:1,minHeight:0},toolbar:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:20,paddingTop:10,paddingBottom:6},toolbarTitle:{flex:1,color:We.semantic.debug,fontSize:10,fontWeight:"700",letterSpacing:.6,fontFamily:Ku},toolbarButton:{width:26,height:26,borderRadius:6,alignItems:"center",justifyContent:"center"},toolbarClear:{paddingHorizontal:6,paddingVertical:2},toolbarClearText:{color:We.text.muted,fontSize:10},toolbarClearTextDisabled:{color:We.text.disabled},searchRow:{flexDirection:"row",alignItems:"center",gap:6,marginHorizontal:12,marginBottom:8,paddingHorizontal:10,paddingVertical:5,backgroundColor:We.background.input,borderRadius:10,borderWidth:1,borderColor:We.border.default},searchInput:{flex:1,color:We.text.primary,fontSize:13,paddingVertical:2},listContent:{paddingTop:4}});g();he();import{useCallback as hc,useEffect as no,useState as yc}from"react";import{AlertCircle as bc,AlertTriangle as wc,DevToolsCard as vc,EmptyState as Sc,MethodBadge as kc,Plus as xc,Trash2 as Rc,macOSColors as te,useLimit as Tc,monoFont as Cc}from"@buoy-gg/shared-ui/web";g();he();import{useMemo as cs,useState as oo}from"react";import{ChevronDown as dc,ChevronRight as uc,macOSColors as j,useSafeAreaInsets as cc,monoFont as pc}from"@buoy-gg/shared-ui/web";g();he();import{useState as Qr,useMemo as Zr,useCallback as xr,useRef as ln,useEffect as ec,memo as to}from"react";import{displayValue as tc,buoyColors as B,monoFont as Ae}from"@buoy-gg/shared-ui/web";import{CopyButton as rc}from"@buoy-gg/shared-ui/web";import{ChevronRight as oc,ChevronDown as nc,Trash as as}from"@buoy-gg/shared-ui/web";import{CyberpunkInput as ic}from"@buoy-gg/shared-ui/web/dataViewer";g();var Ct=(t,e,r)=>{if(e.length===0)return r;if(t instanceof Map){let o=new Map(t);if(e.length===1)return o.set(e[0],r),o;let[i,...n]=e,s=o.get(i);return o.set(i,Ct(s??null,n,r)),o}if(t instanceof Set){let o=Ct(Array.from(t),e,r);return new Set(Array.isArray(o)?o:[])}if(Array.isArray(t)){let o=[...t];if(e.length===1)return o[e[0]]=r,o;let[i,...n]=e;return o[i]=Ct(o[i],n,r),o}if(t instanceof Object){let o={...t};if(e.length===1)return o[e[0]]=r,o;let[i,...n]=e;return o[i]=Ct(o[i],n,r),o}return t};g();var Et=(t,e)=>{if(t instanceof Map){let r=new Map(t);if(e.length===1)return r.delete(e[0]),r;let[o,...i]=e;return r.set(o,Et(r.get(o),i)),r}if(t instanceof Set){let r=Et(Array.from(t),e);return new Set(r)}if(Array.isArray(t)){let r=[...t];if(e.length===1)return r.filter((n,s)=>s.toString()!==e[0]);let[o,...i]=e;return r[o]=Et(r[o],i),r}if(t instanceof Object){let r={...t};if(e.length===1)return delete r[e[0]],r;let[o,...i]=e;return r[o]=Et(r[o],i),r}return t};g();import{createContext as Qu,useContext as Zu}from"react";var an=Qu(null);function Sr(){return Zu(an)}import{Fragment as eo,jsx as Y,jsxs as Le}from"react/jsx-runtime";var kr=100,er={top:8,bottom:8,left:8,right:8},ss=12,sc=(t,e=kr)=>{if(e<1||t.length===0)return[];let r=[];for(let o=0;o<t.length;o+=e)r.push(t.slice(o,o+e));return r},dn=to(({expanded:t,isFocused:e=!1,isMain:r=!1})=>Y(u,{style:[_.expanderIcon,r&&_.expanderIconMain,t?_.expanded:_.collapsed],children:t?Y(nc,{size:r?14:ss,color:e?B.primary:r?B.text:B.textSecondary,strokeWidth:2.5}):Y(oc,{size:r?14:ss,color:e?B.primary:r?B.text:B.textSecondary,strokeWidth:2.5})}));dn.displayName="Expander";var ls=to(({value:t,isFocused:e=!1})=>Y(rc,{value:t,isFocused:e,buttonStyle:e?{..._.buttonStyle,..._.buttonStyleFocused}:_.buttonStyle}));ls.displayName="CopyButton";var un=to(({dataPath:t,isFocused:e=!1})=>{let r=Sr(),o=xr(()=>{r&&r.onChange(Et(r.root,t))},[r,t]);return r?Y(D,{"sentry-label":"ignore devtools explorer delete button",onPress:o,style:[_.deleteButton,e&&_.deleteButtonFocused],accessibilityLabel:"Delete item",hitSlop:er,activeOpacity:.7,children:Y(as,{size:14,strokeWidth:2,color:e?B.error:B.error+"CC"})}):null});un.displayName="DeleteItemButton";var ds=to(({dataPath:t,isFocused:e=!1})=>{let r=Sr(),o=xr(()=>{r&&r.onChange(Ct(r.root,t,[]))},[r,t]);return r?Y(D,{"sentry-label":"ignore devtools explorer clear button",style:[_.clearButton,e&&_.clearButtonFocused],"aria-label":"Remove all items",onPress:o,hitSlop:er,activeOpacity:.7,children:Y(f,{style:[_.clearButtonText,{color:e?B.warning:B.warning+"CC"}],children:"[]"})}):null});ds.displayName="ClearArrayButton";function ac({dataPath:t,value:e,itemsDeletable:r}){let o=Sr(),i=xr(()=>{if(!o)return;let l=typeof e=="boolean"?e:!1;o.onChange(Ct(o.root,t,!l))},[o,t,e]),n=xr(()=>{o&&o.onChange(Et(o.root,t))},[o,t]);if(!o)return null;let s=e?_.toggleBadgeTrue:_.toggleBadgeFalse,a=e?_.toggleTextTrue:_.toggleTextFalse;return Le(D,{"sentry-label":"ignore devtools explorer toggle button",style:_.modernToggleButton,onPress:i,hitSlop:er,activeOpacity:.8,children:[Y(u,{style:[_.toggleBadge,s],children:Y(f,{style:[_.toggleBadgeText,a],children:e?"TRUE":"FALSE"})}),r&&Y(D,{"sentry-label":"ignore devtools explorer delete button in toggle",onPress:n,style:_.deleteButtonInToggle,accessibilityLabel:"Delete item",hitSlop:er,activeOpacity:.7,children:Y(as,{size:14,strokeWidth:2,color:B.error+"CC"})})]})}function Rr({editable:t,label:e,value:r,defaultExpanded:o,dataPath:i,itemsDeletable:n,dataVersion:s=0}){let a=Sr(),[l,p]=Qr(!1),[c,x]=Qr("");ec(()=>{if(r!=null&&(typeof r=="string"||typeof r=="number")){let d=r.toString();x(d)}},[r,e,s]);let O=Zr(()=>{let d=e.toUpperCase();return["DATA","QUERY","QUERYKEY","TYPES","STATS","OPTIONS","OBSERVERS"].includes(d)},[e]),[E,P]=Qr((o||[]).includes(e)),N=()=>P(d=>!d),[w,R]=Qr([]),S=Zr(()=>r==null||typeof r!="object"?[]:Array.isArray(r)?(r.length>1e3?r.slice(0,1e3):r).map((h,M)=>({label:M.toString(),value:h})):r instanceof Map?Array.from(r.entries()).slice(0,1e3).map(([h,M])=>({label:h.toString(),value:M})):r instanceof Set?Array.from(r).slice(0,1e3).map((h,M)=>({label:M.toString(),value:h})):Object.entries(r).slice(0,1e3).map(([b,h])=>({label:b,value:h})),[r]),v=Zr(()=>Array.isArray(r)?"array":r===null||typeof r!="object"?typeof r:r instanceof Map||r instanceof Set?"Iterable":"object",[r]),A=Zr(()=>sc(S,kr),[S]),H=i??[],L=ln(a),m=ln(H),y=ln(v);L.current=a,m.current=H,y.current=v;let k=xr((d,b)=>{x(b);let h=L.current;if(!h||d&&isNaN(Number(b)))return;let M=y.current==="number"?Number(b):b;h.onChange(Ct(h.root,m.current,M))},[x]);return Y(u,{style:_.minWidthWrapper,children:Le(u,{style:_.fullWidthMarginRight,children:[A.length>0&&Le(eo,{children:[Le(u,{style:[_.flexRowItemsCenterGap,O&&_.flexRowItemsCenterGapMain],children:[Le(D,{"sentry-label":"ignore devtools explorer expander button",style:_.expanderButton,onPress:N,hitSlop:er,activeOpacity:.6,children:[Y(dn,{expanded:E,isFocused:l,isMain:O}),Y(f,{style:[_.labelText,l&&_.labelTextFocused,O&&_.labelTextMain],children:e}),Y(f,{style:_.textGray500,children:`${String(v).toLowerCase()==="iterable"?"(Iterable) ":""}${S.length} ${S.length>1?"items":"item"}`})]}),t&&Le(u,{style:_.flexRowGapItemsCenter,children:[Y(ls,{value:r,isFocused:l}),n&&a!==null&&Y(un,{dataPath:H,isFocused:l}),v==="array"&&a!==null&&Y(ds,{dataPath:H,isFocused:l})]})]}),E&&Le(eo,{children:[A.length===1&&Y(u,{style:[_.singleEntryContainer,O&&_.singleEntryContainerMain],children:S.map((d,b)=>Y(Rr,{defaultExpanded:o,label:d.label,value:d.value,editable:t,dataPath:[...H,d.label],itemsDeletable:v==="array"||v==="Iterable"||v==="object",dataVersion:s},d.label+b))}),A.length>1&&Y(u,{style:_.multiEntryContainer,children:A.map((d,b)=>Y(u,{children:Le(u,{style:_.relativeOutlineNone,children:[Le(D,{"sentry-label":"ignore devtools explorer page toggle",onPress:()=>R(h=>h.includes(b)?h.filter(M=>M!==b):[...h,b]),style:_.pageExpanderButton,hitSlop:er,children:[Y(dn,{expanded:w.includes(b)}),Le(f,{style:_.pageRangeText,children:["[",b*kr,"...",b*kr+kr-1,"]"]})]}),w.includes(b)&&Y(u,{style:_.entriesContainer,children:d.map(h=>Y(Rr,{defaultExpanded:o,label:h.label,value:h.value,editable:t,dataPath:[...H,h.label],dataVersion:s},h.label))})]})},b))})]})]}),A.length===0&&Le(u,{style:_.flexRowGapFullWidth,children:[t&&a!==null&&(v==="string"||v==="number"||v==="boolean")?Le(eo,{children:[t&&a&&(v==="string"||v==="number")&&Y(u,{style:_.nebulaInputWrapper,children:Y(ic,{label:e,accessibilityLabel:"Data input field for editing values",style:[v==="number"?_.textNumber:_.textString],keyboardType:v==="number"?"numeric":"default",value:c,onChangeText:d=>k(v==="number",d),onFocus:()=>p(!0),onBlur:()=>p(!1),showNumberControls:v==="number",onIncrement:()=>{let d=Number(c)||0;k(!0,String(d+1))},onDecrement:()=>{let d=Number(c)||0;k(!0,String(d-1))},showDeleteButton:n,onDelete:()=>{a.onChange(Et(a.root,H))}})}),v==="boolean"&&Le(u,{style:_.booleanRowContainer,children:[Y(f,{style:_.booleanLabel,children:e}),Y(u,{style:_.booleanToggleWrapper,children:Y(ac,{dataPath:H,value:r,itemsDeletable:n})})]})]}):Le(eo,{children:[Y(f,{style:_.text344054,children:e}),Y(f,{style:_.displayValueText,children:tc(r)})]}),t&&n&&a!==null&&v!=="string"&&v!=="number"&&v!=="boolean"&&Y(un,{dataPath:H,isFocused:l})]})]})})}var _=K.create({buttonStyle:{backgroundColor:B.card+"E6",borderWidth:1,borderColor:B.textSecondary+"33",borderRadius:6,flexDirection:"row",alignItems:"center",justifyContent:"center",width:28,height:28,position:"relative",shadowColor:"#000",shadowOffset:{width:0,height:1},shadowOpacity:.2,shadowRadius:2},buttonStyleFocused:{borderColor:B.primary+"CC",backgroundColor:B.primary+"26",shadowColor:B.primary,shadowOpacity:.3,shadowRadius:4},deleteButton:{backgroundColor:B.error+"1A",borderColor:B.error+"4D",borderWidth:1,borderRadius:6,padding:0,alignItems:"center",justifyContent:"center",width:28,height:28,position:"relative",shadowColor:B.error,shadowOffset:{width:0,height:0},shadowOpacity:.15,shadowRadius:3},deleteButtonFocused:{borderColor:B.error+"CC",backgroundColor:B.error+"33",shadowOpacity:.3,shadowRadius:5},deleteButtonInToggle:{backgroundColor:B.error+"1A",borderColor:B.error+"4D",borderWidth:1,borderRadius:6,padding:0,alignItems:"center",justifyContent:"center",width:28,height:28,shadowColor:B.error,shadowOffset:{width:0,height:0},shadowOpacity:.15,shadowRadius:3},clearButton:{backgroundColor:B.warning+"1A",borderWidth:1,borderColor:B.warning+"4D",borderRadius:6,flexDirection:"row",padding:0,alignItems:"center",justifyContent:"center",width:28,height:28,position:"relative",zIndex:10,shadowColor:B.warning,shadowOffset:{width:0,height:0},shadowOpacity:.15,shadowRadius:3},clearButtonFocused:{borderColor:B.warning+"CC",backgroundColor:B.warning+"33",shadowOpacity:.3,shadowRadius:5},clearButtonText:{fontSize:12,fontWeight:"700",fontFamily:Ae},expanderIcon:{width:18,height:18,alignItems:"center",justifyContent:"center",marginRight:1,backgroundColor:B.textSecondary+"14",borderRadius:3},expanderIconMain:{backgroundColor:B.textSecondary+"1A",width:20,height:20,borderRadius:4,borderWidth:.5,borderColor:B.textSecondary+"33"},expanded:{transform:[{rotate:"0deg"}]},collapsed:{transform:[{rotate:"0deg"}]},minWidthWrapper:{minWidth:180,fontSize:11,flexDirection:"row",flexWrap:"wrap",width:"100%",marginVertical:.5},fullWidthMarginRight:{position:"relative",width:"100%",marginRight:1},flexRowItemsCenterGap:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:3,paddingHorizontal:6,marginVertical:1,borderRadius:4,backgroundColor:B.card+"66",borderWidth:.5,borderColor:B.textSecondary+"1A"},flexRowItemsCenterGapMain:{backgroundColor:B.card+"E6",borderLeftWidth:2.5,borderLeftColor:B.textSecondary+"80",borderColor:B.textSecondary+"26",paddingVertical:5,paddingHorizontal:8,marginBottom:3,borderWidth:1,shadowColor:"#000",shadowOffset:{width:0,height:0},shadowOpacity:.08,shadowRadius:3},expanderButton:{flexDirection:"row",alignItems:"center",backgroundColor:"transparent",paddingVertical:1,paddingHorizontal:2,gap:6,borderWidth:0,minHeight:24,flex:1},labelText:{color:B.textSecondary,fontSize:10,fontWeight:"600",marginRight:4,fontFamily:Ae,letterSpacing:.4},labelTextFocused:{color:B.text},labelTextMain:{color:B.text,fontSize:11,fontWeight:"700",letterSpacing:.6},textGray500:{color:B.textMuted,fontSize:10,fontWeight:"400",fontFamily:Ae,opacity:.7},pageRangeText:{color:B.textSecondary,fontSize:10,fontWeight:"600",fontFamily:Ae},flexRowGapItemsCenter:{flexDirection:"row",alignItems:"center",gap:4,paddingLeft:2},singleEntryContainer:{marginLeft:2,marginTop:2,paddingLeft:8,borderLeftWidth:1.5,borderLeftColor:B.textSecondary+"40"},singleEntryContainerMain:{borderLeftColor:B.textSecondary+"4D",marginLeft:4,paddingLeft:10},multiEntryContainer:{marginLeft:2,marginTop:2,paddingLeft:8,borderLeftWidth:1.5,borderLeftColor:B.textSecondary+"40"},multiEntryContainerMain:{borderLeftColor:B.textSecondary+"4D",marginLeft:4,paddingLeft:10},relativeOutlineNone:{position:"relative"},pageExpanderButton:{flexDirection:"row",alignItems:"center",backgroundColor:B.card+"66",paddingVertical:3,paddingHorizontal:6,gap:6,borderRadius:4,borderWidth:.5,borderColor:B.textSecondary+"1A",marginBottom:2,minHeight:24},entriesContainer:{marginLeft:2,paddingLeft:8,marginTop:2,borderLeftWidth:1.5,borderLeftColor:B.textSecondary+"40"},textNumber:{color:B.text,fontWeight:"600",fontFamily:Ae},textString:{color:B.text,fontFamily:Ae},flexRowGapFullWidth:{flexDirection:"row",width:"100%",alignItems:"center",marginVertical:1,gap:6,paddingHorizontal:4,paddingVertical:2,borderRadius:3},text344054:{color:B.textSecondary,fontWeight:"600",fontSize:9,minWidth:50,fontFamily:Ae,letterSpacing:.4,opacity:.8},numberInputButtons:{position:"absolute",right:8,top:"50%",transform:[{translateY:-18}],flexDirection:"row",gap:4,zIndex:10},touchableButton:{width:32,height:32,borderRadius:6,backgroundColor:B.card+"E6",borderWidth:1,borderColor:B.textSecondary+"33",alignItems:"center",justifyContent:"center",marginLeft:2,shadowColor:"#000",shadowOffset:{width:0,height:1},shadowOpacity:.2,shadowRadius:2},touchableButtonFocused:{borderColor:B.primary+"CC",backgroundColor:B.primary+"26",shadowColor:B.primary,shadowOffset:{width:0,height:0},shadowOpacity:.3,shadowRadius:4,elevation:3},nebulaInputWrapper:{flex:1,width:"100%",position:"relative"},displayValueText:{flex:1,color:B.text,fontWeight:"400",fontFamily:Ae,fontSize:12,paddingVertical:6,paddingHorizontal:10,borderRadius:6,borderWidth:1,borderColor:B.textMuted+"66",minHeight:34},dataRow:{flexDirection:"row",alignItems:"center",paddingVertical:4,paddingHorizontal:8,minHeight:44,gap:12},dataLabel:{color:B.textSecondary,fontSize:13,fontWeight:"500",minWidth:80,flexShrink:0},dataValueContainer:{flex:1,flexDirection:"row",alignItems:"center"},inputWithActions:{flex:1,position:"relative"},numberControls:{position:"absolute",right:8,top:"50%",transform:[{translateY:-16}],flexDirection:"column",gap:2},numberButton:{width:32,height:16,borderRadius:4,alignItems:"center",justifyContent:"center",borderWidth:1,borderColor:B.primary+"0F"},readOnlyValue:{color:B.text,fontSize:13,fontFamily:Ae,paddingVertical:8,paddingHorizontal:12,borderRadius:6,borderWidth:1,borderColor:B.textMuted+"33",flex:1},actionButtons:{flexDirection:"row",gap:6,paddingLeft:8},booleanContainer:{flexDirection:"row",alignItems:"center",padding:8,borderRadius:6,borderWidth:1,borderColor:B.textMuted+"4D",flex:1},booleanText:{marginLeft:8,color:B.warning,fontWeight:"500",fontFamily:Ae},modernToggleButton:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",borderRadius:6,borderWidth:1,borderColor:B.textMuted+"99",paddingHorizontal:8,paddingVertical:6,marginVertical:2,minHeight:34,gap:8},toggleIconContainer:{marginRight:6},toggleIcon:{padding:8,borderRadius:8,alignItems:"center",justifyContent:"center",width:32,height:32},toggleIconSmall:{width:8,height:8,borderRadius:4},toggleContent:{flex:1,minWidth:0},toggleLabel:{color:"#E5E7EB",fontSize:11,fontWeight:"600",fontFamily:Ae,letterSpacing:.3},toggleStatus:{color:"#9CA3AF",fontSize:11},toggleBadge:{marginLeft:6,paddingHorizontal:6,paddingVertical:3,borderRadius:4,borderWidth:1},toggleBadgeText:{fontSize:9,fontWeight:"700",textTransform:"uppercase",letterSpacing:.8,fontFamily:Ae},toggleIconTrue:{backgroundColor:B.primary},toggleIconFalse:{backgroundColor:B.textMuted},toggleBadgeTrue:{backgroundColor:B.primary+"1A",borderColor:B.primary+"4D"},toggleBadgeFalse:{backgroundColor:B.textMuted+"1A",borderColor:B.textMuted+"4D"},toggleTextTrue:{color:B.primary,fontWeight:"600"},toggleTextFalse:{color:B.textSecondary,fontWeight:"500"},booleanRowContainer:{flexDirection:"row",alignItems:"center",width:"100%",gap:8,paddingVertical:2},booleanLabel:{color:B.textSecondary,fontSize:10,fontWeight:"600",fontFamily:Ae,letterSpacing:.4,minWidth:60,flexShrink:0},booleanToggleWrapper:{flex:1}});g();he();import{useState as lc}from"react";import{absoluteFill as us,macOSColors as Be}from"@buoy-gg/shared-ui/web";import{jsx as Nt,jsxs as cn}from"react/jsx-runtime";function ro({title:t,hint:e,value:r,placeholder:o="Number",min:i,max:n,onSubmit:s,onCancel:a}){let[l,p]=lc(r!=null?String(r):""),c=()=>{let x=l.trim();if(!x){s(null);return}let O=Number(x);if(!Number.isFinite(O)){s(null);return}let E=O;i!=null&&(E=Math.max(i,E)),n!=null&&(E=Math.min(n,E)),s(E)};return cn(u,{style:He.overlay,children:[Nt(D,{style:He.backdrop,activeOpacity:1,onPress:a,"sentry-label":"ignore dismiss number prompt"}),cn(u,{style:He.panel,children:[Nt(f,{style:He.title,children:t}),Nt(ft,{style:He.input,value:l,onChangeText:p,placeholder:o,placeholderTextColor:Be.text.muted,keyboardType:"number-pad",autoFocus:!0,selectTextOnFocus:!0,onSubmitEditing:c,returnKeyType:"done","sentry-label":"ignore number prompt input",accessibilityLabel:t}),e?Nt(f,{style:He.hint,children:e}):null,cn(u,{style:He.actions,children:[Nt(D,{onPress:a,"sentry-label":"ignore cancel number prompt",style:[He.button,He.cancelButton],children:Nt(f,{style:He.cancelText,children:"Cancel"})}),Nt(D,{onPress:c,"sentry-label":"ignore save number prompt",style:[He.button,He.saveButton],children:Nt(f,{style:He.saveText,children:"Set"})})]})]})]})}var He=K.create({overlay:{...us,zIndex:40},backdrop:{...us,backgroundColor:"rgba(0,0,0,0.6)"},panel:{marginHorizontal:12,marginTop:12,padding:14,borderRadius:10,borderWidth:1,borderColor:Be.border.hover,backgroundColor:Be.background.card,gap:10},title:{fontSize:13,fontWeight:"700",color:Be.text.primary},input:{backgroundColor:Be.background.input,borderWidth:1,borderColor:Be.border.input,borderRadius:6,paddingHorizontal:12,paddingVertical:10,fontSize:16,fontWeight:"700",color:Be.text.primary},hint:{fontSize:10,color:Be.text.muted},actions:{flexDirection:"row",gap:8},button:{flex:1,paddingVertical:10,borderRadius:6,alignItems:"center",borderWidth:1},cancelButton:{borderColor:Be.border.default,backgroundColor:Be.background.base},cancelText:{fontSize:12,fontWeight:"600",color:Be.text.secondary},saveButton:{borderColor:Be.semantic.info,backgroundColor:`${Be.semantic.info}22`},saveText:{fontSize:12,fontWeight:"700",color:Be.semantic.info}});import{Fragment as ms,jsx as W,jsxs as Ce}from"react/jsx-runtime";var fc=["GET","POST","PUT","PATCH","DELETE"],ps=[0,500,1e3,3e3,1e4],fs=[{id:"500",label:"Server error",code:"500",danger:!0,patch:{kind:"respond",status:500,statusText:"Internal Server Error"}},{id:"401",label:"Unauthorized",code:"401",danger:!0,patch:{kind:"respond",status:401,statusText:"Unauthorized"}},{id:"404",label:"Not found",code:"404",danger:!0,patch:{kind:"respond",status:404,statusText:"Not Found"}},{id:"403",label:"Forbidden",code:"403",danger:!0,patch:{kind:"respond",status:403,statusText:"Forbidden"}},{id:"429",label:"Rate limited",code:"429",danger:!0,patch:{kind:"respond",status:429,statusText:"Too Many Requests"}},{id:"503",label:"Unavailable",code:"503",danger:!0,patch:{kind:"respond",status:503,statusText:"Service Unavailable"}},{id:"400",label:"Bad request",code:"400",danger:!0,patch:{kind:"respond",status:400,statusText:"Bad Request"}},{id:"200",label:"Success",code:"200",patch:{kind:"respond",status:200,statusText:"OK"}},{id:"offline",label:"Offline",danger:!0,patch:{kind:"fail",failKind:"network"}},{id:"timeout",label:"Timeout",danger:!0,patch:{kind:"fail",failKind:"timeout"}},{id:"passthrough",label:"Real response",patch:{kind:"delay"}}];function gc(t){return t.kind==="delay"?"passthrough":t.kind==="fail"?t.failKind==="timeout"?"timeout":"offline":String(t.status??200)}function mc({outcome:t,active:e,onPress:r}){let o=t.danger?j.semantic.error:j.semantic.info;return Ce(D,{onPress:r,"sentry-label":"ignore override outcome",testID:`buoy-network-outcome-${t.label.toLowerCase().replace(/\s+/g,"-")}${t.code?`-${t.code}`:""}`,accessibilityRole:"button",accessibilityLabel:`${t.label}${t.code?` ${t.code}`:""}`,style:[V.outcome,e&&{borderColor:o,backgroundColor:`${o}1F`}],children:[W(f,{style:[V.outcomeLabel,e&&{color:o}],children:t.label}),t.code?W(f,{style:[V.outcomeCode,e&&{color:o}],children:t.code}):null]})}function gs({title:t,summary:e,open:r,onToggle:o,children:i}){return Ce(u,{style:V.disclosure,children:[Ce(D,{onPress:o,"sentry-label":"ignore override disclosure",testID:`buoy-network-disclosure-${t.toLowerCase().replace(/\s+/g,"-")}`,accessibilityRole:"button",accessibilityLabel:t,style:V.disclosureHeader,children:[r?W(dc,{size:12,color:j.text.muted}):W(uc,{size:12,color:j.text.muted}),W(f,{style:V.disclosureTitle,children:t}),e&&!r?W(f,{style:V.disclosureSummary,numberOfLines:1,children:e}):null]}),r?W(u,{style:V.disclosureBody,children:i}):null]})}function tr({label:t,active:e,onPress:r}){return W(D,{onPress:r,"sentry-label":"ignore override chip",testID:`buoy-network-chip-${t.toLowerCase().replace(/\s+/g,"-")}`,accessibilityRole:"button",accessibilityLabel:t,style:[V.chip,e&&V.chipActive],children:W(f,{style:[V.chipText,e&&V.chipTextActive],children:t})})}function hs({draft:t,onChange:e,onSave:r,onCancel:o,saveLabel:i="Save",applySafeAreaInset:n=!1}){let s=cc({minBottom:16}),a=n?s.bottom:0,l=h=>e({...t,...h}),[p,c]=oo(!t.urlPattern.trim()),[x,O]=oo(!1),[E,P]=oo(null),[N,w]=oo(null),R=gc(t),S=t.kind==="respond"&&typeof t.status=="number"&&!fs.some(h=>h.code===String(t.status)),v=t.kind==="respond",A=t.methods?.[0],H=`${A??"Any"} ${t.urlPattern||"No URL yet"}`,L=cs(()=>{let h=(t.body??"").trim();if(!h)return"Empty";let M=h.split(`
144
- `).length;return`${M} line${M===1?"":"s"}`},[t.body]),m=cs(()=>{let h=(t.body??"").trim();if(!h)return null;try{return JSON.parse(h)}catch{return null}},[t.body]),y=(t.body??"").trim().length>0&&!m,k=t.delayMs??0,d=k>0&&!ps.includes(k),b=!t.alternate&&typeof t.times=="number"&&t.times!==1;return Ce(u,{style:V.root,children:[Ce(Ge,{testID:"buoy-network-editor-scroll",style:V.scroll,contentContainerStyle:V.scrollContent,keyboardShouldPersistTaps:"handled",children:[Ce(gs,{title:"Applies to",summary:H,open:p,onToggle:()=>c(h=>!h),children:[W(ft,{style:V.input,value:t.urlPattern,onChangeText:h=>l({urlPattern:h}),testID:"buoy-network-override-pattern",accessibilityLabel:"Override URL pattern",placeholder:"https://api.example.com/v1/users*",placeholderTextColor:j.text.muted,autoCapitalize:"none",autoCorrect:!1,multiline:!0,"sentry-label":"ignore override url pattern"}),Ce(u,{style:V.chipRow,children:[W(tr,{label:"Any",active:!A,onPress:()=>l({methods:void 0})}),fc.map(h=>W(tr,{label:h,active:A===h,onPress:()=>l({methods:[h]})},h))]})]}),Ce(u,{style:V.outcomeGrid,children:[fs.map(h=>W(mc,{outcome:h,active:R===h.id,onPress:()=>l(h.patch)},h.id)),W(D,{onPress:()=>w("status"),"sentry-label":"ignore custom status",accessibilityLabel:"Custom status code",style:[V.customField,S&&V.customFieldActive],children:W(f,{style:[V.customValue,S&&V.customInputActive],children:S?String(t.status):"Custom"})})]}),v?W(gs,{title:"Response body",summary:L,open:x,onToggle:()=>O(h=>!h),children:E!==null?Ce(ms,{children:[W(ft,{style:[V.input,V.bodyInput],value:E,onChangeText:P,placeholder:"Paste a new body\u2026",placeholderTextColor:j.text.muted,autoCapitalize:"none",autoCorrect:!1,autoFocus:!0,multiline:!0,"sentry-label":"ignore override body paste"}),Ce(u,{style:V.inlineActions,children:[W(D,{onPress:()=>P(null),"sentry-label":"ignore cancel body paste",style:V.textButton,children:W(f,{style:V.textButtonMuted,children:"Cancel"})}),W(D,{onPress:()=>{let h=E.trim();try{l({body:JSON.stringify(JSON.parse(h),null,2)})}catch{l({body:h})}P(null)},disabled:!E.trim(),"sentry-label":"ignore apply body paste",style:V.textButton,children:W(f,{style:[V.textButtonLabel,!E.trim()&&V.textButtonDisabled],children:"Replace"})})]})]}):Ce(ms,{children:[m!==null?W(an.Provider,{value:{root:m,onChange:h=>l({body:JSON.stringify(h,null,2)})},children:W(Rr,{editable:!0,label:"",value:m,defaultExpanded:[""]})}):W(f,{style:V.emptyBody,children:y?"This body isn't JSON, so there's no tree to show.":"No body yet."}),W(D,{onPress:()=>P(""),"sentry-label":"ignore edit all body",style:V.textButton,children:W(f,{style:V.textButtonLabel,children:"Edit all"})})]})}):null,Ce(u,{style:V.field,children:[W(f,{style:V.subLabel,children:"Delay"}),Ce(u,{style:V.chipRow,children:[ps.map(h=>W(tr,{label:h===0?"None":`${h/1e3}s`,active:k===h,onPress:()=>l({delayMs:h})},h)),W(D,{onPress:()=>w("delay"),"sentry-label":"ignore custom delay",accessibilityLabel:"Custom delay in seconds",style:[V.customField,d&&V.customFieldActive],children:W(f,{style:[V.customValue,d&&V.customInputActive],children:d?`${k/1e3}s`:"Custom"})})]})]}),Ce(u,{style:V.field,children:[W(f,{style:V.subLabel,children:"Fires"}),W(f,{style:V.subHint,children:"A limited rule switches itself off once it's used up. Every other alternates forever \u2014 the first request through, the next overridden."}),Ce(u,{style:V.chipRow,children:[W(tr,{label:"Always",active:!t.alternate&&t.times==null,onPress:()=>l({alternate:!1,times:null})}),W(tr,{label:"Once",active:!t.alternate&&t.times===1,onPress:()=>l({alternate:!1,times:1})}),W(tr,{label:"Every other",active:t.alternate===!0,onPress:()=>l({alternate:!0,times:null})}),W(D,{onPress:()=>{l({alternate:!1}),w("times")},"sentry-label":"ignore custom times",accessibilityLabel:"Custom number of times",style:[V.customField,b&&V.customFieldActive],children:W(f,{style:[V.customValue,b&&V.customInputActive],children:b?`${t.times}\xD7`:"Custom"})})]})]})]}),N==="status"?W(ro,{title:"Custom status code",hint:`${gt}\u2013${mt}`,value:S?t.status:void 0,min:gt,max:mt,onSubmit:h=>{l({kind:"respond",status:h??void 0,statusText:void 0}),w(null)},onCancel:()=>w(null)}):null,N==="delay"?W(ro,{title:"Custom delay",hint:"Seconds",value:d?k/1e3:void 0,min:0,onSubmit:h=>{l({delayMs:h!=null?Math.round(h*1e3):0}),w(null)},onCancel:()=>w(null)}):null,N==="times"?W(ro,{title:"Fires how many times",hint:"Leave empty for always",value:b?t.times:void 0,min:1,onSubmit:h=>{l({alternate:!1,times:h&&h>0?h:null}),w(null)},onCancel:()=>w(null)}):null,Ce(u,{style:[V.footer,{paddingBottom:12+a}],children:[W(D,{onPress:o,"sentry-label":"ignore cancel override",testID:"buoy-network-editor-cancel",accessibilityRole:"button",accessibilityLabel:"Cancel",style:[V.footerButton,V.cancelButton],children:W(f,{style:V.cancelText,children:"Cancel"})}),W(D,{onPress:r,disabled:!t.urlPattern.trim(),"sentry-label":"ignore save override",testID:"buoy-network-editor-save",accessibilityRole:"button",accessibilityLabel:i,style:[V.footerButton,V.saveButton,!t.urlPattern.trim()&&V.saveButtonDisabled],children:W(f,{style:V.saveText,children:i})})]})]})}var V=K.create({root:{flex:1},scroll:{flex:1},scrollContent:{padding:12,paddingBottom:24,gap:4},field:{gap:8,paddingVertical:6},outcomeGrid:{flexDirection:"row",flexWrap:"wrap",gap:6,paddingVertical:10},outcome:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:10,paddingVertical:9,borderRadius:6,borderWidth:1,borderColor:j.border.default,backgroundColor:j.background.card},outcomeLabel:{fontSize:12,fontWeight:"600",color:j.text.primary},outcomeCode:{fontSize:10,fontWeight:"700",color:j.text.muted},disclosure:{borderRadius:6,borderWidth:1,borderColor:j.border.default,backgroundColor:j.background.card,overflow:"hidden"},disclosureHeader:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:10,paddingVertical:10},disclosureTitle:{fontSize:12,fontWeight:"600",color:j.text.primary},disclosureSummary:{flex:1,textAlign:"right",fontSize:11,color:j.text.muted},disclosureBody:{paddingHorizontal:10,paddingBottom:10,gap:8},input:{backgroundColor:j.background.input,borderWidth:1,borderColor:j.border.input,borderRadius:6,paddingHorizontal:10,paddingVertical:8,color:j.text.primary,fontSize:12,fontFamily:pc,minHeight:40},bodyInput:{minHeight:140,textAlignVertical:"top"},chipRow:{flexDirection:"row",flexWrap:"wrap",gap:6},chip:{paddingHorizontal:10,paddingVertical:6,borderRadius:5,borderWidth:1,borderColor:j.border.default,backgroundColor:j.background.base},chipActive:{borderColor:j.semantic.info,backgroundColor:`${j.semantic.info}1F`},chipText:{fontSize:11,fontWeight:"600",color:j.text.secondary},chipTextActive:{color:j.semantic.info},customField:{flexDirection:"row",alignItems:"center",paddingHorizontal:8,borderRadius:5,borderWidth:1,borderColor:j.border.default,backgroundColor:j.background.base},customFieldActive:{borderColor:j.semantic.info,backgroundColor:`${j.semantic.info}1F`},customValue:{paddingVertical:6,fontSize:11,fontWeight:"600",color:j.text.secondary},customInputActive:{color:j.semantic.info},subHint:{fontSize:10,lineHeight:14,color:j.text.muted,marginTop:-2},subLabel:{fontSize:10,fontWeight:"700",letterSpacing:.6,color:j.text.muted,textTransform:"uppercase"},textButton:{alignSelf:"flex-start",paddingVertical:4},textButtonLabel:{fontSize:11,fontWeight:"600",color:j.semantic.info},textButtonMuted:{fontSize:11,fontWeight:"600",color:j.text.secondary},textButtonDisabled:{opacity:.4},inlineActions:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},emptyBody:{fontSize:11,color:j.text.muted,paddingVertical:6},footer:{flexDirection:"row",gap:8,padding:12,borderTopWidth:1,borderTopColor:j.border.default,backgroundColor:j.background.base},footerButton:{flex:1,paddingVertical:11,borderRadius:6,alignItems:"center",borderWidth:1},cancelButton:{borderColor:j.border.default,backgroundColor:j.background.card},cancelText:{fontSize:12,fontWeight:"600",color:j.text.secondary},saveButton:{borderColor:j.semantic.info,backgroundColor:`${j.semantic.info}22`},saveButtonDisabled:{opacity:.4},saveText:{fontSize:12,fontWeight:"700",color:j.semantic.info}});import{jsx as me,jsxs as zt}from"react/jsx-runtime";function Ec(){return{enabled:!0,urlPattern:"",kind:"respond",status:500,body:"",times:null}}function Nc(t){let{id:e,hits:r,seen:o,createdAt:i,...n}=t;return n}function Oc(t){let e=t.urlPattern,r=e.indexOf("://");if(r===-1)return e;let o=e.indexOf("/",r+3);return o===-1?e.slice(r+3):e.slice(o)}function Ic(t){let e=[];return t.delayMs&&e.push(`${t.delayMs/1e3}s delay`),t.alternate?e.push("every other"):t.times===1?e.push("once"):typeof t.times=="number"&&e.push(`${t.times}\xD7`),e.join(" \xB7 ")}function Pc(t){if(t.kind==="fail")return te.semantic.error;if(t.kind==="delay")return te.semantic.info;let e=t.status??200;return e>=200&&e<300?te.semantic.success:e>=300&&e<400?te.semantic.info:te.semantic.error}function Lc({rule:t,spent:e,onEdit:r,onDelete:o}){let i=t.enabled&&!e,n=Pc(t),s=Ic(t),a=t.methods?.length?t.methods.join("/"):"ANY";return zt(vc,{onPress:r,style:ue.cardWrapper,contentStyle:[ue.card,{borderLeftColor:i?n:"transparent"}],children:[me(kc,{method:a,size:"small"}),zt(u,{style:ue.cardMiddle,children:[me(f,{style:[ue.urlText,!i&&ue.urlTextOff],numberOfLines:2,children:Oc(t)}),s?me(f,{style:ue.extrasText,children:s}):null]}),t.hits>0?me(f,{style:ue.rowHits,children:t.hits}):null,t.kind==="fail"?zt(u,{style:ue.failBadge,children:[me(bc,{size:10,color:te.semantic.error}),me(f,{style:ue.failText,children:t.failKind==="timeout"?"TIMEOUT":"OFFLINE"})]}):me(f,{style:[ue.statusText,{color:n}],children:t.kind==="delay"?"PASS":String(t.status??200)}),me(D,{onPress:o,"sentry-label":"ignore delete override rule",testID:"buoy-network-rule-delete",accessibilityRole:"button",accessibilityLabel:"Delete rule",hitSlop:{top:8,bottom:8,left:4,right:4},style:ue.rowDelete,children:me(Rc,{size:13,color:te.text.muted})})]})}function ys(t){return t.visible?me(Bc,{...t}):null}function Bc({isPro:t,onUpgradePress:e,pendingDraft:r,onPendingConsumed:o,backHandlerRef:i,applySafeAreaInset:n}){let s=Tc("network.overrideRules"),a=t?Ue:s,{enabled:l,autoPaused:p,rules:c,activeCount:x,setEnabled:O,upsertRule:E,setRuleEnabled:P,removeRule:N,isRuleSpent:w}=Tt(),[R,S]=yc(null);no(()=>{U.noteHealthyLaunch()},[]),no(()=>{if(i)return i.current=R?()=>(S(null),!0):null,()=>{i.current=null}},[i,R]);let v=hc(y=>{U.fetchRuleBody(y).then(k=>{k!=null&&S(d=>d?.id===y?{...d,draft:{...d.draft,body:k,bodyOmitted:void 0}}:d)})},[]);no(()=>{if(!r)return;let{id:y,...k}=r;S({id:y,draft:k}),y&&k.bodyOmitted&&v(y),o?.()},[r,o,v]),no(()=>{R?.id&&(c.some(y=>y.id===R.id)||S(null))},[R?.id,c]);let A=y=>{S({id:y.id,draft:Nc(y)}),y.bodyOmitted&&v(y.id)},H=y=>{c.filter(d=>d.enabled&&!w(d)).length<=a||c.filter(d=>d.enabled&&!w(d)&&d.id!==y).forEach(d=>P(d.id,!1))},L=()=>{if(!R)return;let y={...R.draft,enabled:!0,urlPattern:R.draft.urlPattern.trim()};if(!y.urlPattern)return;let k=E({...y,id:R.id});H(k?.id??R.id),O(!0),S(null)};if(R)return me(hs,{draft:R.draft,onChange:y=>S({...R,draft:y}),onSave:L,onCancel:()=>S(null),saveLabel:R.id?"Save":"Add",applySafeAreaInset:n});let m=c.length>0;return zt(u,{style:ue.root,children:[m?zt(u,{style:[ue.bar,l&&x>0&&ue.barOn],children:[l&&x>0?me(wc,{size:12,color:te.semantic.warning}):null,me(f,{style:[ue.barText,l&&x>0&&ue.barTextOn],numberOfLines:2,children:p?"Overrides paused \u2014 they'd been on for 3 launches":l&&x>0?`${x} override${x===1?" is":"s are"} on`:"Overrides are off"}),me(D,{onPress:()=>O(!(l&&x>0)),"sentry-label":"ignore toggle overrides master",testID:"buoy-network-overrides-master",accessibilityRole:"button",style:ue.barButton,children:me(f,{style:ue.barButtonText,children:l&&x>0?"Turn all off":p?"Turn back on":"Turn on"})})]}):null,zt(u,{style:ue.listHeader,children:[me(f,{style:ue.listHeaderText,children:m?`${c.length} rule${c.length===1?"":"s"}`:""}),me(D,{onPress:()=>S({draft:Ec()}),"sentry-label":"ignore new override rule",accessibilityLabel:"New override rule",style:ue.newButton,children:me(xc,{size:14,color:te.semantic.info})})]}),m?zt(Ge,{style:ue.list,contentContainerStyle:ue.listContent,keyboardShouldPersistTaps:"handled",children:[c.map(y=>me(Lc,{rule:y,spent:w(y),onEdit:()=>A(y),onDelete:()=>N(y.id)},y.id)),a<Ue?me(f,{style:ue.footNote,children:`Your plan: ${a} override at a time. Pro: up to ${Ue}.`}):null]}):me(u,{style:ue.emptyWrap,children:me(Sc,{otto:"empty",iconSize:32,title:"Nothing overridden",description:"Open any request and tap Override, or + to write a rule."})})]})}var ue=K.create({root:{flex:1},bar:{flexDirection:"row",alignItems:"center",gap:8,paddingHorizontal:12,paddingVertical:10,borderBottomWidth:1,borderBottomColor:te.border.default,backgroundColor:te.background.card},barOn:{borderBottomColor:te.semantic.warning+"44",backgroundColor:te.semantic.warningBackground},barText:{flex:1,fontSize:12,fontWeight:"600",color:te.text.secondary},barTextOn:{color:te.semantic.warning},barButton:{paddingHorizontal:10,paddingVertical:6,borderRadius:5,borderWidth:1,borderColor:te.border.hover,backgroundColor:te.background.base},barButtonText:{fontSize:11,fontWeight:"700",color:te.text.primary},listHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:12,paddingTop:10,paddingBottom:4},listHeaderText:{fontSize:10,fontWeight:"700",letterSpacing:.6,color:te.text.muted,textTransform:"uppercase"},newButton:{padding:6,borderRadius:5,borderWidth:1,borderColor:te.border.default,backgroundColor:te.background.card},emptyWrap:{flex:1,justifyContent:"center"},list:{flex:1},listContent:{padding:10,gap:6},cardWrapper:{marginHorizontal:0,marginVertical:0},card:{flexDirection:"row",alignItems:"center",gap:8,borderLeftWidth:3,borderLeftColor:"transparent"},cardMiddle:{flex:1},urlText:{fontSize:12,color:te.text.primary,lineHeight:16,fontFamily:Cc},urlTextOff:{color:te.text.muted},extrasText:{fontSize:10,color:te.text.secondary,marginTop:2},statusText:{fontSize:11,fontWeight:"600"},failBadge:{flexDirection:"row",alignItems:"center",gap:2,paddingHorizontal:4,paddingVertical:1,backgroundColor:te.semantic.error+"26",borderRadius:3},failText:{fontSize:10,color:te.semantic.error,fontWeight:"600"},rowHits:{fontSize:11,fontWeight:"700",color:te.semantic.warning},rowDelete:{padding:5,borderRadius:5,borderWidth:1,borderColor:te.border.default,backgroundColor:te.background.base},footNote:{fontSize:10,lineHeight:14,color:te.text.muted,paddingHorizontal:4,paddingTop:8}});g();he();import{FlaskConical as qc,night as Vt}from"@buoy-gg/shared-ui/web";import{jsx as pn,jsxs as Mc}from"react/jsx-runtime";function bs({onPress:t}){let{activeCount:e}=Tt(),r=e>0;return Mc(D,{onPress:t,"sentry-label":"ignore open overrides",testID:"buoy-network-overrides",accessibilityRole:"button",style:[io.button,r&&io.buttonActive],accessibilityLabel:r?`Response overrides \u2014 ${e} active`:"Response overrides",children:[pn(qc,{size:14,color:r?Vt.color.warning:Vt.color.textSecondary}),r?pn(u,{style:io.badge,children:pn(f,{style:io.badgeText,children:e})}):null]})}var io=K.create({button:{width:32,height:32,borderRadius:8,alignItems:"center",justifyContent:"center",backgroundColor:Vt.color.buttonSurface,borderWidth:1,borderColor:Vt.color.border},buttonActive:{backgroundColor:Vt.color.warningSoft,borderColor:Vt.color.warning+"77"},badge:{position:"absolute",top:1,right:1,minWidth:12,height:12,borderRadius:6,paddingHorizontal:3,alignItems:"center",justifyContent:"center",backgroundColor:Vt.color.warning},badgeText:{fontSize:8,fontWeight:"800",color:"#000000"}});g();he();import{night as rr}from"@buoy-gg/shared-ui/web";g();function Dc(t){let e=t.indexOf("?");return e===-1?t:`${t.slice(0,e)}*`}function Ac(t){if(t==null)return"";if(typeof t=="string")return t;try{return JSON.stringify(t,null,2)}catch{return""}}function Tr(t){return{enabled:!0,name:void 0,urlPattern:Dc(t.url),methods:[String(t.method||"GET").toUpperCase()],kind:"respond",status:t.status&&t.status>=200?t.status:200,statusText:t.statusText,body:Ac(t.responseData),times:null}}import{jsx as ws}from"react/jsx-runtime";function vs({onOpen:t}){let e=Yt(),{rules:r,isRuleSpent:o}=Tt(),i=e?$.getEvents().find(l=>l.id===e)??ee.getEventById(e):null,n=i?r.find(l=>l.enabled&&!o(l)&&Ut(l,i.url,String(i.method||"GET")))??null:null,s=n!==null;return ws(D,{onPress:()=>{if(i){if(n){let{id:l,hits:p,seen:c,createdAt:x,...O}=n;t(O,l);return}t(Tr(i))}},"sentry-label":"ignore open overrides",testID:"buoy-network-override-request",accessibilityRole:"button",accessibilityLabel:s?"Edit the override on this request":"Override this request",style:[so.button,s&&so.buttonActive],children:ws(f,{style:[so.label,s&&so.labelActive],children:"Override"})})}var so=K.create({button:{paddingHorizontal:10,paddingVertical:6,borderRadius:8,borderWidth:1,borderColor:rr.color.border,backgroundColor:rr.color.buttonSurface},buttonActive:{borderColor:rr.color.warning+"77",backgroundColor:rr.color.warningSoft},label:{fontSize:11,fontWeight:"700",color:rr.color.accent},labelActive:{color:rr.color.warning}});g();he();import{absoluteFill as Ss,night as Ot}from"@buoy-gg/shared-ui/web";import{jsx as ut,jsxs as ao}from"react/jsx-runtime";function ks({onPress:t,isOpen:e,hasIndicator:r}){return ao(D,{onPress:t,"sentry-label":"ignore toggle header menu",testID:"buoy-network-menu",accessibilityRole:"button",accessibilityLabel:e?"Close menu":"More actions",style:[xe.button,e&&xe.buttonOpen],children:[ao(u,{style:xe.dots,children:[ut(u,{style:[xe.dot,e&&xe.dotOpen]}),ut(u,{style:[xe.dot,e&&xe.dotOpen]}),ut(u,{style:[xe.dot,e&&xe.dotOpen]})]}),r?ut(u,{style:xe.indicator}):null]})}function xs({onClose:t,children:e}){return ao(u,{style:xe.overlay,children:[ut(D,{style:xe.backdrop,activeOpacity:1,onPress:t,"sentry-label":"ignore dismiss header menu"}),ut(u,{style:xe.panel,children:e})]})}function lo({icon:t,label:e,detail:r,testID:o,onPress:i}){return ao(D,{onPress:i,"sentry-label":"ignore header menu item",testID:o,accessibilityRole:"button",accessibilityLabel:e,style:xe.item,children:[ut(u,{style:xe.itemIcon,children:t}),ut(f,{style:xe.itemLabel,children:e}),r?ut(f,{style:xe.itemDetail,children:r}):null]})}var xe=K.create({button:{width:32,height:32,borderRadius:8,alignItems:"center",justifyContent:"center"},buttonOpen:{backgroundColor:Ot.color.surfaceElevated},dots:{flexDirection:"column",gap:2.5,alignItems:"center"},dot:{width:3,height:3,borderRadius:2,backgroundColor:Ot.color.textSecondary},dotOpen:{backgroundColor:Ot.color.text},indicator:{position:"absolute",top:6,right:8,width:6,height:6,borderRadius:3,backgroundColor:Ot.color.accent},overlay:{...Ss,zIndex:50},backdrop:{...Ss,backgroundColor:"rgba(0,0,0,0.5)"},panel:{position:"absolute",top:6,right:8,minWidth:196,paddingVertical:4,borderRadius:10,borderWidth:1,borderColor:Ot.color.border,backgroundColor:Ot.color.surface},item:{flexDirection:"row",alignItems:"center",gap:10,paddingHorizontal:12,paddingVertical:11},itemIcon:{width:16,alignItems:"center"},itemLabel:{flex:1,fontSize:13,fontWeight:"600",color:Ot.color.text},itemDetail:{fontSize:11,color:Ot.color.textTertiary}});g();import{memo as Hc,useEffect as zc,useMemo as Vc}from"react";import{EventStepperFooter as Fc,useLimit as _c}from"@buoy-gg/shared-ui/web";import{jsx as Uc}from"react/jsx-runtime";var Wc=()=>De.step(-1),$c=()=>De.step(1),Rs=Hc(function({paused:e,filter:r,ignoredPatterns:o,isPro:i,fromSaved:n,savedSearch:s,applySafeAreaInset:a}){let{visibleEvents:l}=Rt({filter:r,ignoredPatterns:o,paused:e,isPro:i}),{pinnedEvents:p,pinnedLiveIds:c,savedRecords:x}=tt(),O=_c("network.saved"),E=Vc(()=>{if(n)return Kr(x,O,s).events;let{pinned:w,rest:R}=vr(l,p,c);return w.length===0?R:[...w,...R]},[n,x,s,i,l,p,c]);zc(()=>{De.setIds(zi(E))},[E]);let{index:P,total:N}=_i();return P<0?null:Uc(Fc,{currentIndex:P,totalItems:N,itemLabel:"Request",applySafeAreaInset:a,onPrevious:Wc,onNext:$c,variant:"night"})});g();import{useEffect as jc,useState as Xc}from"react";function Jc(t){return $.getEvents().find(e=>e.id===t)??ee.getEventById(t)}function fn(t,e={}){let{paused:r=!1}=e,[o,i]=Xc(null);return jc(()=>{if(!(!t||r))return $.subscribeToEvents(n=>{let s=n.find(a=>a.id===t);s&&i(a=>a&&a.id===t&&a.event===s?a:{id:t,event:s})})},[t,r]),t?o&&o.id===t?o.event:Jc(t):null}import{Fragment as pp,jsx as F,jsxs as $e}from"react/jsx-runtime";function ap({visible:t,paused:e,ignoredPatternValues:r,onTogglePattern:o,isPro:i,filter:n,ignoredPatterns:s,fromSaved:a,savedSearch:l,applySafeAreaInset:p}){let c=Yt(),x=Fi(),O=c!=null&&c===x,E=fn(c,{paused:e||!t});return Ft(()=>{t&&E&&O&&De.reportRendered(E.id)},[t,E,O]),t?$e(u,{style:_t.detailRoot,children:[E?F(Xo,{event:E,ignoredPatterns:r,onTogglePattern:o,showBodies:O}):F(u,{style:_t.detailBodyFallback}),F(Rs,{paused:e,filter:n,ignoredPatterns:s,isPro:i,fromSaved:a,savedSearch:l,applySafeAreaInset:p})]}):null}function lp({visible:t,paused:e,isPro:r,filter:o,onFilterChange:i,ignoredPatterns:n,onRemovePattern:s,onAddPattern:a,onTogglePatternMode:l}){let{events:p}=Rt({filter:o,ignoredPatterns:n,paused:e,visible:t,isPro:r});return t?F(fi,{events:p,filter:o,onFilterChange:i,ignoredPatterns:n,onRemovePattern:s,onAddPattern:a,onTogglePatternMode:l}):null}function dp({visible:t,paused:e,isPro:r,filter:o,ignoredPatterns:i,settings:n,onSettingsChange:s}){let{events:a}=Rt({filter:o,ignoredPatterns:i,paused:e,visible:t,isPro:r});return t?F(Ii,{settings:n,onSettingsChange:s,events:a}):null}function Cs({visible:t,onClose:e,onBack:r,onMinimize:o,enableSharedModalDimensions:i=!1,inline:n=!1,paused:s,onPausedChange:a,remoteConditions:l}){let{isPro:p}=rp(),[c,x]=Re(!1),O=s!=null&&a!=null,E=O?s:c,P=oe=>{let Ne=typeof oe=="function"?oe(E):oe;O?a(Ne):x(Ne)},[N,w]=Re({}),R=Vi(),[S,v]=Re(!1),[A,H]=Re(!1),[L,m]=Re(!1),[y,k]=Re(!1),[d,b]=Re(0),[h]=Re(ai);Ft(()=>{h.update(l)},[h,l]),Ft(()=>()=>h.update(void 0),[h]);let M=!0,[ae,pe]=Re(null),[re,X]=Re("filters"),[ie,Q]=Re(""),[z,Z]=Re(!1),J=uo(!1),[Pe,Ee]=Re(""),It=uo(null),{patterns:ze,values:Ms,add:Ds,remove:As,toggle:Hs,toggleMode:zs}=ip(),[nr,Rn]=Re(Oi),ho=uo(!1),[yo,bo]=Re(!1),[Wt,Vs]=Re("export"),ir=oe=>{Vs(oe),bo(!0)};Ft(()=>{yo&&p&&bo(!1)},[yo,p]),Ft(()=>{if(!t||ho.current)return;(async()=>{try{let Ne=await Ts.getItem(co.network.copyOptions());if(Ne){let Gs=JSON.parse(Ne);Rn(Gs)}}catch{}finally{ho.current=!0}})()},[t]),Ft(()=>{if(!ho.current)return;(async()=>{try{await Ts.setItem(co.network.copyOptions(),JSON.stringify(nr))}catch{}})()},[nr]);let Fs=()=>{De.clear()},Tn=gn(oe=>{De.select(oe.id)},[]),_s=gn((oe,Ne)=>{pe(Ne?{...oe,id:Ne}:oe),m(!0),De.clear()},[]),Ws=gn(()=>pe(null),[]),Cn=uo(null),En=oe=>{Q(oe),w(Ne=>({...Ne,searchText:oe}))},$s=oe=>{w(Ne=>({...Ne,status:Ne.status===oe?void 0:oe}))},[Nn,Us]=Re("bottomSheet"),js=oe=>{Us(oe)};Ft(()=>{z&&requestAnimationFrame(()=>{It.current?.focus()})},[z]);let On=()=>S?$e(be,{children:[F(be.Navigation,{onBack:()=>v(!1)}),F(be.Content,{title:"",noMargin:!0,children:F(tp,{size:"sm",tabs:[{key:"filters",label:"Filters"},{key:"copy",label:"Copy"}],activeKey:re,onChange:oe=>X(oe)})})]}):R?$e(be,{children:[F(be.Navigation,{onBack:Fs}),F(be.Content,{title:"Request Details",centered:!0}),$e(be.Actions,{children:[M?F(vs,{onOpen:_s}):null,F(tn,{isPro:p,onUpgradePress:()=>ir("saved")})]})]}):L&&M?$e(be,{children:[F(be.Navigation,{onBack:()=>{Cn.current?.()||(m(!1),pe(null))}}),F(be.Content,{title:"Response Overrides",centered:!0})]}):A?$e(be,{children:[F(be.Navigation,{onBack:()=>H(!1)}),F(be.Content,{title:"Saved Requests",centered:!0})]}):$e(be,{children:[r&&F(be.Navigation,{onBack:r}),F(be.Content,{title:"",children:z?F(be.Search,{value:ie,onChangeText:En,onCancel:()=>{En(""),Z(!1)},onDismiss:()=>Z(!1),dismissOnBlur:!0,clearOnlyWhenText:!0,placeholder:"Search URL, method, operation, error...",accessibilityLabel:"Search network requests",iconSize:14,testID:"buoy-network-search-input",clearTestID:"buoy-network-search-clear",inputProps:{"sentry-label":"ignore network search header"}}):F(Ki,{activeStatus:N.status,onToggleStatus:$s,ignoredPatterns:ze,paused:E})}),$e(be.Actions,{children:[F(D,{"sentry-label":"ignore open search",testID:"buoy-network-search-open",accessibilityLabel:"Open search",accessibilityRole:"button",onPress:()=>Z(!0),style:_t.headerActionButton,children:F(Gc,{size:14,color:ct.color.textSecondary})}),M?F(bs,{onPress:()=>m(!0)}):null,F(np,{isEnabled:!E,onToggle:()=>P(oe=>!oe),accessibilityLabel:E?"Resume network capture":"Pause network capture",testID:"buoy-network-power"}),F(Qi,{paused:E}),F(ks,{onPress:()=>k(oe=>!oe),isOpen:y,hasIndicator:wo})]})]}),wo=!!(N.status||N.method||N.contentType),Xs=i?co.modal.root():co.network.modal();if(!t)return null;let Js=R||!S,In=$e(pp,{children:[$e(u,{style:_t.container,children:[F(ap,{visible:R,paused:E,ignoredPatternValues:Ms,onTogglePattern:Hs,isPro:p,filter:N,ignoredPatterns:ze,fromSaved:A,savedSearch:Pe,applySafeAreaInset:!n&&Nn==="bottomSheet"}),F(lp,{visible:S&&re==="filters"&&!R,paused:E,isPro:p,filter:N,onFilterChange:w,ignoredPatterns:ze,onRemovePattern:As,onAddPattern:Ds,onTogglePatternMode:zs}),F(dp,{visible:S&&re==="copy"&&!R,paused:E,isPro:p,filter:N,ignoredPatterns:ze,settings:nr,onSettingsChange:Rn}),F(ys,{visible:M&&L&&!R&&!S,isPro:p,onUpgradePress:()=>ir("overrides"),pendingDraft:ae,onPendingConsumed:Ws,backHandlerRef:Cn,applySafeAreaInset:!n&&Nn==="bottomSheet"}),F(sn,{visible:A&&!R&&!S&&!(L&&M),isPro:p,copySettings:nr,search:Pe,onSearchChange:Ee,onEventPress:Tn,onUpgradePress:()=>ir("saved")}),F(is,{visible:!R&&!S&&!A&&!(L&&M),paused:E,filter:N,ignoredPatterns:ze,isPro:p,searchText:ie,onEventPress:Tn,onUpgradePress:()=>ir("export")})]}),y?$e(xs,{onClose:()=>k(!1),children:[F(lo,{icon:F(Kc,{size:14,color:ct.color.textSecondary}),label:"Network throttling",testID:"buoy-network-menu-throttling",onPress:()=>{k(!1),li(l?h:void 0),n||b(oe=>oe+1)}}),F(lo,{icon:F(Yc,{size:14,color:wo?ct.color.accent:ct.color.textSecondary}),label:"Filters",detail:wo?"Active":void 0,onPress:()=>{k(!1),X("filters"),v(!0)}}),F(lo,{icon:F(Qc,{size:14,color:ct.color.textSecondary}),label:"Saved requests",onPress:()=>{k(!1),H(!0)}}),F(u,{style:_t.menuCopyRow,children:F(Zi,{isPro:p,filter:N,ignoredPatterns:ze,copySettings:nr,paused:E,onUpgradePress:()=>{k(!1),ir("export")},label:"Copy requests"})})]}):null,F(op,{visible:yo,onClose:()=>bo(!1),featureName:Wt==="saved"?"Saved Requests":Wt==="overrides"?"Response Overrides":"Network Export",description:Wt==="saved"?"Keep the requests that matter. Saved requests survive Clear, app restarts, and the 500-request history cap.":Wt==="overrides"?"Force any endpoint to fail, stall or return something else \u2014 no backend changes, no code changes. Free keeps one active rule.":"Export network requests to share with your team, debug APIs, or feed into AI tools.",benefits:Wt==="overrides"?[`Run ${Ue} rules at once (free keeps ${Oo})`,"Force a 500, a 401 or an empty list in one tap","Simulate offline, timeouts and slow connections","Rules survive an app reload, so you can test the boot path"]:Wt==="saved"?[`Save up to ${_e} requests (free keeps ${Yo})`,"Failed requests stay put through a Clear","Snapshots survive an app restart","Export saved requests to teammates or AI assistants"]:["Export to JSON, Markdown, or plain text","Customizable copy presets (URLs only, LLM-ready, full data)","Share request details with teammates","Feed network data directly to AI assistants"]})]});return n?$e(u,{style:_t.inlineRoot,children:[F(u,{style:_t.inlineHeader,...sp,children:On()}),In]}):F(Zc,{visible:t,onClose:e,onMinimize:o,minimizeRequest:d,persistenceKey:Xs,variant:"night",header:{showToggleButton:!0,customContent:On()},onModeChange:js,enablePersistence:!0,initialMode:"bottomSheet",enableGlitchEffects:!0,disableScrollWrapper:Js,styles:{},children:In})}var _t=K.create({container:{flex:1,backgroundColor:"transparent"},detailRoot:{flex:1,minHeight:0},detailBodyFallback:{flex:1},inlineRoot:{flex:1,minHeight:0,backgroundColor:"transparent"},inlineHeader:{paddingHorizontal:12,paddingVertical:8,borderBottomWidth:1,borderBottomColor:ep.border.default,backgroundColor:"transparent"},menuCopyRow:{paddingHorizontal:6},headerActionButton:{width:32,height:32,borderRadius:8,backgroundColor:ct.color.buttonSurface,borderWidth:1,borderColor:ct.color.border,alignItems:"center",justifyContent:"center"},activeFilterButton:{backgroundColor:ct.color.accentSoft,borderColor:ct.color.accentBorderStrong}});function mn(t){return F(Ar,{children:F(Cs,{...t})})}function up(t={}){return F(Ar,{children:F(Cs,{...t,inline:!0,visible:!0,onClose:cp})})}var cp=()=>{};import{jsx as hp}from"react/jsx-runtime";var Es=typeof navigator<"u"&&navigator.product==="ReactNative";Es&&U.ensureLoaded();Es&&typeof I<"u"&&I&&$.startBootCapture();var Ns=gp({id:"network",name:"NET",description:"Network request logger",slot:"both",icon:({size:t})=>hp(ri,{size:t}),component:mn,props:{enableSharedModalDimensions:!1}}),mp=fp(Ns,t=>({enableSharedModalDimensions:t.enableSharedModalDimensions??!1}));g();function yp(){if(!(typeof navigator<"u"&&navigator.product==="ReactNative")&&(typeof window>"u"||typeof document>"u"))return()=>{};U.ensureLoaded();let e=$.subscribeToEvents(()=>{}),r=!1;return()=>{r||(r=!0,e())}}g();import{useState as hn,useEffect as bp,useCallback as po,useMemo as pt,useRef as wp}from"react";import{useLimit as vp,TIER_LIMITS as Sp}from"@buoy-gg/shared-ui/web";var Tw=Sp["network.requests"].free;function kp(t={}){let{isPro:e=!1}=t,r=vp("network.requests"),o=e?1/0:r,[i,n]=hn([]),[s,a]=hn({}),[l,p]=hn(!0),c=wp(null);bp(()=>(l&&(c.current=$.subscribeToEvents(n)),()=>{c.current&&(c.current(),c.current=null)}),[l]);let x=po(()=>{$.clearEvents(),n([])},[]),O=po(()=>{p(!1)},[]),E=po(()=>{p(!0)},[]),P=pt(()=>s.searchText?s.searchText.toLowerCase():null,[s.searchText]),N=pt(()=>s.method&&s.method.length>0?new Set(s.method):null,[s.method]),w=pt(()=>s.contentType&&s.contentType.length>0?new Set(s.contentType):null,[s.contentType]),R=pt(()=>{let d=[...i];if(N&&(d=d.filter(b=>N.has(b.method))),s.status&&s.status!=="all")switch(s.status){case"success":d=d.filter(b=>b.status&&b.status>=200&&b.status<300);break;case"error":d=d.filter(b=>b.error||b.status&&b.status>=400);break;case"pending":d=d.filter(b=>!b.status&&!b.error);break}return P&&(d=d.filter(b=>b.url.toLowerCase().includes(P)||b.method.toLowerCase().includes(P)||b.path?.toLowerCase().includes(P)||b.host?.toLowerCase().includes(P)||b.error&&b.error.toLowerCase().includes(P)||b.operationName&&b.operationName.toLowerCase().includes(P)||zr(b.graphqlVariables,P))),s.host&&(d=d.filter(b=>b.host===s.host)),w&&(d=d.filter(b=>{let h=b.responseHeaders||b.requestHeaders,M=h?.["content-type"]||h?.["Content-Type"]||"";for(let ae of w)switch(ae){case"JSON":if(M.includes("json"))return!0;break;case"XML":if(M.includes("xml"))return!0;break;case"HTML":if(M.includes("html"))return!0;break;case"TEXT":if(M.includes("text"))return!0;break;case"IMAGE":if(M.includes("image"))return!0;break;case"VIDEO":if(M.includes("video"))return!0;break;case"AUDIO":if(M.includes("audio"))return!0;break;case"FORM":if(M.includes("form"))return!0;break;case"OTHER":if(!M||!M.includes("json")&&!M.includes("xml")&&!M.includes("html")&&!M.includes("text")&&!M.includes("image")&&!M.includes("video")&&!M.includes("audio")&&!M.includes("form"))return!0;break}return!1})),d},[i,s,P,N,w]),S=pt(()=>{let d=new Set;return i.slice(o).forEach(b=>{d.add(b.id)}),d},[i,o]),v=pt(()=>R.filter(d=>S.has(d.id)),[R,S]),A=v.length>0,H=v.length,L=po(d=>S.has(d),[S]),m=pt(()=>{let d=0,b=0,h=0,M=0,ae=0,pe=0,re=0;for(let ie of i)ie.status&&ie.status>=200&&ie.status<300?d++:ie.error||ie.status&&ie.status>=400?b++:!ie.status&&!ie.error&&h++,M+=ie.requestSize||0,ae+=ie.responseSize||0,ie.duration&&(pe+=ie.duration,re++);let X=re>0?pe/re:0;return{totalRequests:i.length,successfulRequests:d,failedRequests:b,pendingRequests:h,totalDataSent:M,totalDataReceived:ae,averageDuration:Math.round(X)}},[i]),y=pt(()=>{let d=new Set;for(let b of i)b.host&&d.add(b.host);return Array.from(d)},[i]),k=pt(()=>{let d=new Set;for(let b of i)d.add(b.method);return Array.from(d)},[i]);return{events:R,allEvents:i,stats:m,filter:s,setFilter:a,clearEvents:x,isCapturing:l,pauseCapturing:O,resumeCapturing:E,hosts:y,methods:k,hasLockedEvents:A,lockedEventCount:H,isEventLocked:L,requestLimit:o,getSubscriberCounts:()=>$.getSubscriberCounts()}}import{useIgnoredPatterns as dv,ignoredPatternsStore as uv,urlMatchesIgnoredPattern as cv,isUrlIgnored as pv}from"@buoy-gg/shared-ui/web";g();import{approxJsonSize as Sn,isOverWireBudget as xp}from"@buoy-gg/shared-ui/web";import{expandKeyedArrays as Rp,patchFromPath as Tp,refusalText as Cp,shapeKind as Os,suggestedPatch as Ep,typedEditViolations as Np}from"@buoy-gg/shared-ui/web";var wn=16*1024,mo=1.25*1024*1024;function vn(t,e){return t===void 0?!1:(e??0)>wn?!0:xp(t,wn)}var Is=new WeakMap,Ps=new WeakMap;function kn(t){let e=Is.get(t);if(e)return e;let r;try{r=Ip(t)}catch{r=Op(t)}return Is.set(t,r),r}function Op(t){let e={...t,requestData:void 0,responseData:void 0,graphqlVariables:void 0,requestBodyOmitted:t.requestData!==void 0?!0:void 0,responseBodyOmitted:t.responseData!==void 0?!0:void 0},r=1024;try{r=Sn(e,mo).bytes}catch{}return{event:e,bytes:r}}function Ip(t){let e=vn(t.requestData,t.requestSize),r=vn(t.responseData,t.responseSize),o=Bs(t.graphqlVariables),i=Ls(t.requestHeaders),n=Ls(t.responseHeaders),s=e||r||o!==t.graphqlVariables||i!==t.requestHeaders||n!==t.responseHeaders,a=t;return s&&(a={...t},e&&(a.requestData=void 0,a.requestBodyOmitted=!0),r&&(a.responseData=void 0,a.responseBodyOmitted=!0),o!==t.graphqlVariables&&(a.graphqlVariables=o),i!==t.requestHeaders&&(a.requestHeaders=i,a.headersOmitted=!0),n!==t.responseHeaders&&(a.responseHeaders=n,a.headersOmitted=!0)),{event:a,bytes:Sn(a,mo).bytes}}function Pp(t){let e=Ps.get(t);if(e)return e;let{event:r}=kn(t),o={...r};o.requestData!==void 0&&(o.requestData=void 0,o.requestBodyOmitted=!0),o.responseData!==void 0&&(o.responseData=void 0,o.responseBodyOmitted=!0),o.graphqlVariables!==void 0&&(o.graphqlVariables=Bs(o.graphqlVariables,!0));let i={event:o,bytes:Sn(o,mo).bytes};return Ps.set(t,i),i}function Lp(t){let e=new Array(t.length),r=0;for(let o=0;o<t.length;o++){let i=kn(t[o]);if(r+i.bytes<=mo)e[o]=i.event,r+=i.bytes;else{let n=Pp(t[o]);e[o]=n.event,r+=n.bytes}}return e}function Bs(t,e=!1){if(!t||!e&&!vn(t,void 0))return t;let r={};for(let[o,i]of Object.entries(t))(typeof i=="string"&&i.length<=64||typeof i=="number"||typeof i=="boolean")&&(r[o]=i);return Object.keys(r).length>0?r:void 0}var yn=64;function Ls(t){if(!t)return t;let e=!1,r={};for(let[o,i]of Object.entries(t))typeof i=="string"&&(i.length<=yn?r[o]=i:(r[o]=`${i.slice(0,yn)}\u2026 [${i.length-yn} more]`,e=!0));return e?r:t}var Bp=t=>{let e=!1,r=t.rules.map(o=>!o.body||o.body.length<=wn?o:(e=!0,{...o,body:void 0,bodyOmitted:!0}));return e?{...t,rules:r}:t},go=t=>$.getEventById(t)??ee.getEventById(t),or=t=>t&&typeof t=="object"?t.id:void 0,fo=(t,e)=>!!(t&&typeof t=="object"&&t[e]),bn=()=>Lo()?{}:{active:!1,inactiveReason:Wn},qp=["respond","fail","delay"];function Mp(t,e){if(!t||typeof t!="object")return null;let r=t.rule??t;if(!r||typeof r!="object")return null;let o=r,i=typeof o.urlPattern=="string"&&o.urlPattern.trim()?o.urlPattern.trim():e?.urlPattern??"";if(!i)return null;let n=qp.includes(o.kind)?o.kind:e?.kind??"respond";return{id:typeof o.id=="string"?o.id:void 0,enabled:o.enabled!==!1,name:typeof o.name=="string"?o.name:e?.name,urlPattern:i,methods:Array.isArray(o.methods)?o.methods.filter(s=>typeof s=="string").map(s=>s.toUpperCase()):e?.methods,kind:n,status:typeof o.status=="number"?o.status:e?.status,statusText:typeof o.statusText=="string"?o.statusText:e?.statusText,headers:o.headers&&typeof o.headers=="object"?o.headers:e?.headers,body:Ap(o,e),failKind:o.failKind==="timeout"?"timeout":void 0,delayMs:typeof o.delayMs=="number"?o.delayMs:void 0,times:typeof o.times=="number"?o.times:null,alternate:o.alternate===!0}}var Cr=t=>!!t&&typeof t=="object"&&!Array.isArray(t);function qs(t,e,r="",o={shrunk:[],breaks:[]}){if(Array.isArray(t)&&Array.isArray(e))return e.length>0&&e.length<t.length&&o.shrunk.push({path:r||"(root)",have:t.length,sent:e.length}),e;if(!Cr(t)||!Cr(e))return e;let i={...t};for(let[n,s]of Object.entries(e)){let a=r?`${r}.${n}`:n;if(n in t){let l=Os(t[n]),p=Os(s);(l==="array"||l==="object")&&l!==p&&o.breaks.push({path:a,from:l,to:p}),i[n]=qs(t[n],s,a,o)}else i[n]=s}return i}function Dp(t,e){if(t.body!=null||!Cr(t.bodyPatch)||typeof e!="string")return[];try{return Np(JSON.parse(e),t.bodyPatch,{noun:"response body"})}catch{return[]}}function Ap(t,e){if(typeof t.body=="string")return t.body;if(t.body!=null)return JSON.stringify(t.body,null,2);let r=e?.body??(typeof t.id=="string"?U.getState().rules.find(o=>o.id===t.id)?.body:void 0);if(Cr(t.bodyPatch)&&typeof r=="string")try{return JSON.stringify(qs(JSON.parse(r),t.bodyPatch),null,2)}catch{return r}return r}function Hp(t){if(!t||typeof t!="object")return null;let e=t.rule??t;if(!e||typeof e!="object")return null;let r=e.id;if(typeof r!="string")return null;let o=U.getState().rules.find(i=>i.id===r);return o?{...o}:null}function zp(t){if(!t||typeof t!="object")return null;let e=t.rule??t;if(!e||typeof e!="object")return null;let r=e;if(r.bodyOmitted!==!0||typeof r.id!="string")return null;let o=U.getState().rules.find(i=>i.id===r.id);return o?{body:o.body}:null}function Vp(t){if(!t||typeof t!="object")return null;let e=t.fromRequestId;if(typeof e!="string"||!e)return null;let r=go(e);return r?Tr(r):null}var Fp={dispose:()=>{U.setEnabled(!1)},version:6,getSnapshot:()=>($.ensureInterception(),{conditions:{version:1,runtimeId:qr,profile:Ye(),available:at()},events:Lp($.getEvents()),overrides:Bp(U.getState()),saved:ee.getRecords().map(t=>({...t,event:kn(t.event).event}))}),subscribe:t=>{let e=$.subscribeToEvents(t),r=vt(t),o=ee.subscribe(t),i=U.subscribe(t);return()=>{r(),e(),o(),i()}},actions:{getNetworkConditions:()=>({runtimeId:qr,profile:Ye(),available:at()}),setNetworkConditions:t=>{let e=t&&typeof t=="object"?t.profile:void 0;return{runtimeId:qr,profile:Xt(e),available:at()}},clearEvents:()=>{$.clearEvents()},getEventBody:t=>{let e=or(t);if(!e)return null;let r=go(e);return r?{url:r.url??null,method:r.method??null,status:r.status??null,override:r.override??null,requestData:r.requestData??null,responseData:r.responseData??null,requestHeaders:r.requestHeaders??null,responseHeaders:r.responseHeaders??null}:null},setPinned:t=>{let e=or(t);if(!e)return null;let r=go(e);if(!r)return null;let o=fo(t,"pinned");return Kt(ee.getState(),e).pinned===o?{ok:!0}:ee.togglePin(r)},setSaved:t=>{let e=or(t);if(!e)return null;let r=go(e);if(!r)return null;let o=fo(t,"saved");return Kt(ee.getState(),e).saved===o?{ok:!0}:ee.toggleSave(r)},removeSavedRecord:t=>{let e=t&&typeof t=="object"?t.key:void 0;return e?(ee.remove(e),{ok:!0}):null},clearSavedRequests:()=>(ee.clearSaved(),{ok:!0}),clearPinnedRequests:()=>(ee.clearPinned(),{ok:!0}),setOverridesEnabled:t=>(U.setEnabled(fo(t,"enabled")),{ok:!0,enabled:U.getState().enabled,...bn()}),upsertOverrideRule:t=>{let e=Vp(t)??zp(t)??Hp(t),r=t?.rule??t;if(r&&typeof r.bodyPath=="string"&&r.body==null){let n=e?.body??(typeof r.id=="string"?U.getState().rules.find(l=>l.id===r.id)?.body:void 0);if(typeof n!="string")return{ok:!1,error:"bodyPath needs something to patch: send fromRequestId (the captured request whose real response it addresses) or the id of an existing rule."};if(r.bodyValue===void 0)return{ok:!1,error:`Refused: sent \`bodyPath\` without \`bodyValue\`. Say what to set "${r.bodyPath}" to.`};let s;try{s=JSON.parse(n)}catch{return{ok:!1,error:"The captured response body is not JSON, so it cannot be addressed by path. Send a whole `body` instead."}}let a=Tp(s,r.bodyPath,r.bodyValue);if(!a.ok)return{ok:!1,error:`Refused: ${a.error}`};r.bodyPatch=a.patch,delete r.bodyPath,delete r.bodyValue}if(r&&Cr(r.bodyPatch)&&r.body==null){let n=e?.body??(typeof r.id=="string"?U.getState().rules.find(s=>s.id===r.id)?.body:void 0);if(typeof n!="string")return{ok:!1,error:"bodyPatch needs something to patch: send fromRequestId (the captured request whose real response the patch is merged into) or the id of an existing rule."};if(r.force!==!0){let s;try{let l=Rp(JSON.parse(n),r.bodyPatch);s=l.error,l.notes.length&&(r.bodyPatch=l.patch)}catch{}if(s)return{ok:!1,error:`Refused: ${s}`};let a=Dp(r,n);if(a.length>0)return{ok:!1,error:Cp(a,"response body",Ep(r.bodyPatch,a)),violations:a}}}let o=Mp(t,e);if(!o){let n=t?.fromRequestId;return{ok:!1,error:n?`No captured request \`${n}\` \u2014 it may have been cleared. Send a urlPattern instead.`:"A rule needs a non-empty urlPattern."}}let i=U.upsertRule(o);return i?(i.enabled&&U.setEnabled(!0),{ok:!0,rule:{id:i.id,urlPattern:i.urlPattern,enabled:i.enabled,kind:i.kind,status:i.status,times:i.times,bodySize:i.body?i.body.length:0},...i.times===void 0||i.times===null?{lingers:`This rule has no \`times\` budget, so it overrides EVERY matching request until it is disabled or deleted (id \`${i.id}\`). If you meant only the next one, set times:1.`}:{},...bn()}):{ok:!1,error:"Override rule limit reached."}},setOverrideRuleEnabled:t=>{let e=or(t);return e?(U.setRuleEnabled(e,fo(t,"enabled")),{ok:!0,...bn()}):{ok:!1,error:"Missing rule id."}},deleteOverrideRule:t=>{let e=or(t);return e?(U.removeRule(e),{ok:!0}):{ok:!1,error:"Missing rule id."}},clearOverrideRules:()=>(U.clearRules(),{ok:!0}),listOverrideRules:()=>U.getState(),getOverrideRuleBody:t=>{let e=or(t);if(!e)return null;let r=U.getState().rules.find(o=>o.id===e);return r?{body:r.body??null}:null},getCaptureStatus:()=>{let t=$.getSubscriberCounts().total,e=null,r=null;try{e=Ao(),r=je()}catch{}let o=null;try{o=Zn()}catch{}return{capturing:t>0,subscribers:t,interceptorInstalled:e,interceptorLive:o,listenerCount:r,eventCount:$.getEvents().length}},debugOverrides:t=>{let e=(t&&typeof t=="object"?t.url:void 0)??"https://example.com/";return{interceptorInstalled:Ao(),listenerCount:je(),engine:$n(e,"GET"),store:{enabled:U.getState().enabled,ruleCount:U.getState().rules.length,rulesVisibleToEngine:U.getRules().length}}}}};g();var _p=new Set(["content-length","host","connection","accept-encoding"]);function xn(t){return`'${t.replace(/'/g,"'\\''")}'`}function Wp(t){if(t==null)return null;if(typeof t=="string")return t;try{return JSON.stringify(t)}catch{return null}}function $p(t){let e=(t.method||"GET").toUpperCase(),r=Wp(t.requestData),o=[];e!=="GET"&&!(e==="POST"&&r!==null)&&o.push(`-X ${e}`);for(let[n,s]of Object.entries(t.requestHeaders||{}))_p.has(n.toLowerCase())||o.push(`-H ${xn(`${n}: ${s}`)}`);r!==null&&o.push(`--data-raw ${xn(r)}`);let i=`curl ${xn(t.url)}`;return o.length===0?i:`${i} \\
141
+ `+o}import{Fragment as du,jsx as he,jsxs as xt}from"react/jsx-runtime";function uu({activeStatus:e,onToggleStatus:t,ignoredPatterns:r,paused:o}){let n=wi({ignoredPatterns:r,paused:o});return he(Ri,{counts:n,activeStatus:e,onToggleStatus:t})}function Ri({counts:e,activeStatus:t,onToggleStatus:r}){return xt(c,{style:ee.headerChipRow,children:[xt(N,{style:[ee.headerChip,t==="success"&&ee.headerChipActive],onPress:()=>r("success"),children:[he(Ed,{size:12,color:ot.semantic.success}),he(g,{style:[ee.headerChipValue,{color:ot.semantic.success}],children:e.successful})]}),xt(N,{style:[ee.headerChip,t==="error"&&ee.headerChipActive],onPress:()=>r("error"),children:[he(Ld,{size:12,color:ot.semantic.error}),he(g,{style:[ee.headerChipValue,{color:ot.semantic.error}],children:e.failed})]}),xt(N,{style:[ee.headerChip,t==="pending"&&ee.headerChipActive],onPress:()=>r("pending"),children:[he(Pd,{size:12,color:ot.semantic.warning}),he(g,{style:[ee.headerChipValue,{color:ot.semantic.warning}],children:e.pending})]})]})}function cu({paused:e}){let t=au({paused:e});return he(N,{"sentry-label":"ignore clear events",testID:"buoy-network-clear",accessibilityLabel:"Clear network requests",accessibilityRole:"button",onPress:()=>K.clearEvents(),style:[ee.headerActionButton,!t&&ee.headerActionButtonDisabled],disabled:!t,children:he(Od,{size:14,color:t?re.color.textSecondary:re.color.textTertiary})})}function hu({onPress:e}){let{savedRecords:t}=Ot(),r=t.length;return xt(N,{"sentry-label":"ignore open saved",onPress:e,accessibilityLabel:"Saved requests",style:ee.headerActionButton,children:[he(li,{size:14,color:r>0?re.color.accent:re.color.textSecondary}),r>0?he(c,{style:ee.savedBadge,children:he(g,{style:ee.savedBadgeText,children:r>99?"99+":r})}):null]})}function ki({isPro:e,onUpgradePress:t}){let r=Ro(),o=Ot(),{pinned:n,saved:i}=Pr(o,r),s=zd("network.saved"),a=!n&&o.pinnedEvents.length>=Lr,l=!i&&o.savedRecords.length>=s,u=()=>r?K.getEvents().find(C=>C.id===r)??se.getEventById(r):null,b=()=>{let C=u();C&&o.togglePin(C)},E=()=>{if(l&&!e){t();return}let C=u();C&&o.toggleSave(C)};return xt(du,{children:[he(N,{"sentry-label":"ignore pin request",onPress:b,disabled:a,testID:"buoy-network-pin",accessibilityRole:"button",accessibilityLabel:n?"Unpin request":"Pin request",accessibilityHint:a?`Pin limit reached (${Lr})`:void 0,style:[ee.headerActionButton,n&&ee.headerActionButtonActive,a&&ee.headerActionButtonDisabled],children:he(Bd,{size:14,active:n,color:n?re.color.accent:a?re.color.textTertiary:re.color.textSecondary})}),he(N,{"sentry-label":"ignore save request",onPress:E,disabled:l&&e,testID:"buoy-network-save",accessibilityRole:"button",accessibilityLabel:i?"Remove from saved":"Save request",accessibilityHint:l&&e?`Saved limit reached (${nt})`:void 0,style:[ee.headerActionButton,i&&ee.headerActionButtonSaved,l&&e&&ee.headerActionButtonDisabled],children:he(li,{size:14,color:i?re.color.accent:l&&e?re.color.textTertiary:re.color.textSecondary})})]})}function pu({isPro:e,filter:t,ignoredPatterns:r,copySettings:o,paused:n,onUpgradePress:i,label:s}){let a=lu({filter:t,ignoredPatterns:r,paused:n});return e?he(Dd,{value:()=>Ci(rr(or(K.getEvents(),r),t),o),size:14,label:s,buttonStyle:s?ee.copyMenuRow:ee.headerActionButton,labelStyle:ee.copyMenuLabel,colors:{idle:a?re.color.textSecondary:re.color.textTertiary,success:ot.semantic.success,error:ot.semantic.error},disabled:!a}):xt(N,{"sentry-label":"ignore copy pro",onPress:i,style:[s?ee.copyMenuRow:ee.headerActionButton,!a&&ee.headerActionButtonDisabled],disabled:!a,children:[he(qd,{size:14,color:a?re.color.textSecondary:re.color.textTertiary}),s?he(g,{style:ee.copyMenuLabel,children:s}):null]})}var ee=fe.create({copyMenuRow:{flexDirection:"row",alignItems:"center",gap:10,paddingHorizontal:6,paddingVertical:11,justifyContent:"flex-start"},copyMenuLabel:{fontSize:13,fontWeight:"600",color:re.color.text},headerChipRow:{flexDirection:"row",alignItems:"center",gap:8},headerChip:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:re.color.buttonSurface,paddingHorizontal:10,paddingVertical:5,borderRadius:12,borderWidth:1,borderColor:re.color.border},headerChipActive:{backgroundColor:re.color.accentSoft,borderColor:re.color.accentBorderStrong},headerChipValue:{fontSize:12,fontWeight:"600",fontFamily:di},headerActionButton:{width:32,height:32,borderRadius:8,backgroundColor:re.color.buttonSurface,borderWidth:1,borderColor:re.color.border,alignItems:"center",justifyContent:"center"},headerActionButtonDisabled:{opacity:.55},headerActionButtonActive:{backgroundColor:re.color.accentSoft,borderColor:re.color.accentBorderStrong},headerActionButtonSaved:{backgroundColor:re.color.accentSoft,borderColor:re.color.accentBorderStrong},savedBadge:{position:"absolute",top:-3,right:-3,minWidth:14,height:14,paddingHorizontal:3,borderRadius:7,backgroundColor:re.color.accent,alignItems:"center",justifyContent:"center"},savedBadgeText:{color:re.color.onAccent,fontSize:9,fontWeight:"700",fontFamily:di}});D();ce();import{useCallback as fu}from"react";import{FlaskConical as gu,Pin as mu,Power as yu,macOSColors as be,ToolEmptyState as bu,resolveListEmptyState as vu,EVENT_LIST_PRESET as Su,monoFont as xu}from"@buoy-gg/shared-ui/web";D();ce();import{memo as wu}from"react";import{ChevronRight as Tu,Upload as Cu,Download as Ru,Clock as ku,AlertCircle as Iu,Bookmark as Eu,FlaskConical as Lu,Pin as Pu,DevToolsCard as qu,MethodBadge as Bu,TypeBadge as Ou,night as we,macOSColors as Dt,monoFont as ko}from"@buoy-gg/shared-ui/web";import{formatRelativeTime as Du}from"@buoy-gg/shared-ui/web";import{jsx as ne,jsxs as _e}from"react/jsx-runtime";function zu(e,t){return t?Dt.semantic.error:e?e>=200&&e<300?Dt.semantic.success:e>=300&&e<400?Dt.semantic.info:e>=400?Dt.semantic.error:Dt.text.muted:Dt.semantic.warning}function Au(e){let t=e?.["content-type"]||e?.["Content-Type"]||"";return t.includes("json")?"JSON":t.includes("xml")?"XML":t.includes("html")?"HTML":t.includes("text")?"TEXT":t.includes("image")?"IMG":t.includes("video")?"VIDEO":t.includes("audio")?"AUDIO":t.includes("form")?"FORM":null}function Ii(e){switch(e){case"fetch":return{backgroundColor:"rgba(74, 144, 226, 0.15)",color:"#4A90E2"};case"graphql":return{backgroundColor:"rgba(229, 53, 171, 0.15)",color:"#E535AB"};case"grpc-web":return{backgroundColor:"rgba(16, 185, 129, 0.15)",color:"#10B981"};case"xhr":return{backgroundColor:"rgba(245, 158, 11, 0.15)",color:"#F59E0B"};default:return{backgroundColor:"rgba(147, 51, 234, 0.15)",color:"#9333EA"}}}function Hu({event:e,isPending:t,statusColor:r}){return t?_e(c,{style:le.pendingBadge,children:[ne(ku,{size:10,color:we.color.warning}),ne(g,{style:le.pendingText,children:"..."})]}):e.error?_e(c,{style:le.errorBadge,children:[ne(Iu,{size:10,color:we.color.danger}),ne(g,{style:le.errorText,children:"ERR"})]}):ne(c,{style:le.statusBadge,children:ne(g,{style:[le.statusText,{color:r}],children:String(e.status)})})}function Mu({requestSize:e,responseSize:t}){return!e&&!t?null:_e(c,{style:le.sizeRow,children:[e?_e(c,{style:le.sizeItem,children:[ne(Cu,{size:8,color:we.color.info}),ne(g,{style:le.sizeText,children:Ye(e)})]}):null,t?_e(c,{style:le.sizeItem,children:[ne(Ru,{size:8,color:we.color.accent}),ne(g,{style:le.sizeText,children:Ye(t)})]}):null]})}function Nu({timestamp:e,duration:t}){let r=vo(),o=Du(e,r);return t?_e(g,{style:le.bottomRightText,children:[Ir(t)," ",o]}):ne(g,{style:le.bottomRightText,children:o})}var zt=wu(function({event:e,onPress:t,pinned:r=false,saved:o=false,overridden:n=false,onLongPress:i}){let s=zu(e.status,e.error),a=!e.status&&!e.error,l=Au(e.responseHeaders),u=e.path||e.url.replace(/^https?:\/\/[^/]+/,"");return e.requestClient==="graphql"?e.operationName?u=Zn(e.operationName,e.graphqlVariables):u=u.replace(/\/graphql[^?]*/,"/graphql"):e.operationName&&(u=`${u}
142
+ (${e.operationName})`),_e(qu,{onPress:()=>t(e),onLongPress:i?()=>i(e):void 0,style:le.cardWrapper,contentStyle:[le.container,{borderLeftColor:s}],testID:`buoy-network-row-${e.id}`,accessibilityLabel:`${e.method} ${e.path||e.url}`,children:[_e(c,{style:le.topRightContainer,children:[r?ne(Pu,{size:10,active:true,color:we.color.info}):null,o?ne(Eu,{size:10,color:we.color.accent}):null,n||e.override?ne(Lu,{size:10,color:we.color.warning}):null,ne(Hu,{event:e,isPending:a,statusColor:s}),e.requestClient?ne(c,{style:[le.topRightBadge,{backgroundColor:Ii(e.requestClient).backgroundColor}],children:ne(g,{style:[le.clientText,{color:Ii(e.requestClient).color}],children:e.requestClient==="graphql"?"GQL":e.requestClient==="grpc-web"?"gRPC":e.requestClient==="xhr"?"XHR":e.requestClient})}):null]}),_e(c,{style:le.leftSection,children:[ne(Bu,{method:e.method,size:"small"}),ne(Mu,{requestSize:e.requestSize,responseSize:e.responseSize})]}),ne(c,{style:le.middleSection,children:ne(g,{style:le.urlText,numberOfLines:2,children:u})}),_e(c,{style:le.rightSection,children:[l?ne(Ou,{type:l,size:"small"}):null,ne(Tu,{size:14,color:we.color.textTertiary})]}),ne(c,{style:le.bottomRightContainer,children:ne(Nu,{timestamp:e.timestamp,duration:e.duration})})]})});zt.displayName="NetworkEventItemCompact";var le=fe.create({cardWrapper:{marginHorizontal:8},container:{flexDirection:"row",alignItems:"center",backgroundColor:"rgba(12, 12, 12, 0.9)",borderLeftWidth:3,borderLeftColor:"transparent",borderBottomWidth:1},leftSection:{marginRight:8,alignItems:"flex-start"},topRightContainer:{position:"absolute",top:1,right:1,flexDirection:"row",alignItems:"center",gap:4},topRightBadge:{paddingHorizontal:4,paddingVertical:2,borderRadius:4},middleSection:{flex:1,justifyContent:"center",paddingRight:8},urlText:{fontSize:12,color:we.color.text,lineHeight:16,fontFamily:ko},rightSection:{flexDirection:"row",alignItems:"center",gap:6},bottomRightContainer:{position:"absolute",bottom:4,right:8},bottomRightText:{fontSize:9,color:we.color.textTertiary,fontFamily:ko},statusBadge:{paddingHorizontal:4,paddingVertical:1,borderRadius:3},statusText:{fontSize:10,fontWeight:"600"},pendingBadge:{flexDirection:"row",alignItems:"center",gap:2,paddingHorizontal:4,paddingVertical:1,backgroundColor:we.color.warningSoft,borderRadius:3},pendingText:{fontSize:10,color:we.color.warning,fontWeight:"600"},errorBadge:{flexDirection:"row",alignItems:"center",gap:2,paddingHorizontal:4,paddingVertical:1,backgroundColor:we.color.dangerSoft,borderRadius:3},errorText:{fontSize:10,color:we.color.danger,fontWeight:"600"},durationText:{fontSize:9,color:we.color.textSecondary},sizeRow:{flexDirection:"row",gap:4,marginTop:4},sizeItem:{flexDirection:"row",alignItems:"center",gap:2},sizeText:{fontSize:8,color:we.color.textSecondary,fontFamily:ko},clientText:{fontSize:8,fontWeight:"700",letterSpacing:.3,textTransform:"uppercase"}});D();ce();import{ProBadge as Fu,Zap as ju,buoyColors as nr}from"@buoy-gg/shared-ui/web";import{jsx as Dr,jsxs as Io}from"react/jsx-runtime";function Ei({title:e,subtitle:t,onPress:r}){return Io(N,{style:ir.banner,onPress:r,activeOpacity:.8,children:[Io(c,{style:ir.content,children:[Io(c,{style:ir.left,children:[Dr(ju,{size:16,color:nr.primary}),Dr(g,{style:ir.title,children:e})]}),Dr(Fu,{})]}),Dr(g,{style:ir.subtitle,children:t})]})}var ir=fe.create({banner:{backgroundColor:nr.card,borderRadius:10,borderWidth:1,borderColor:nr.primary+"40",padding:12,marginHorizontal:12,marginTop:12,marginBottom:34},content:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginBottom:4},left:{flexDirection:"row",alignItems:"center",gap:8},title:{color:nr.text,fontSize:13,fontWeight:"600"},subtitle:{color:nr.textMuted,fontSize:11}});D();import{useEffect as Li,useMemo as zr,useState as $u}from"react";import{useLimit as Wu}from"@buoy-gg/shared-ui/web";function sr(e){let{filter:t,ignoredPatterns:r,paused:o,visible:n=true,isPro:i}=e,s=Wu("network.requests"),a=i?1/0:s,[l,u]=$u(()=>K.getEvents());Li(()=>{if(!n)return;if(o){u(K.getEvents());return}let p=null,R=null,I=K.subscribeToEvents(h=>{R=h,p==null&&(p=requestAnimationFrame(()=>{p=null,R&&u(R),R=null}))});return()=>{I(),p!=null&&cancelAnimationFrame(p)}},[o,n]),Li(()=>K.onClear(()=>{u([])}),[]);let b=zr(()=>or(l,r),[l,r]),E=zr(()=>rr(b,t),[b,t]),C=zr(()=>{let p=new Set;return l.slice(a).forEach(R=>{p.add(R.id)}),p},[l,a]),S=zr(()=>C.size===0?E:E.filter(p=>!C.has(p.id)),[E,C]),O=E.length-S.length;return{events:E,visibleEvents:S,hasLockedEvents:O>0,lockedEventCount:O,totalEvents:b.length}}D();import{useCallback as At,useSyncExternalStore as Vu}from"react";D();import{devToolsStorageKeys as Pi,persistentStorage as qi}from"@buoy-gg/shared-ui/web";var Uu=800,_u=3,Xu=Object.freeze([]),Ju=250,Gu=["respond","fail","delay"];function Ku(e){if(!Array.isArray(e))return[];let t=[];for(let r of e){if(!r||typeof r!="object")continue;let o=r;if(typeof o.id!="string"||typeof o.urlPattern!="string"||!o.urlPattern)continue;let n=Gu.includes(o.kind)?o.kind:"respond";t.push({id:o.id,enabled:o.enabled!==false,name:typeof o.name=="string"?o.name:void 0,urlPattern:o.urlPattern,methods:Array.isArray(o.methods)?o.methods.filter(i=>typeof i=="string"):void 0,requireHeader:typeof o.requireHeader=="string"&&o.requireHeader?o.requireHeader:void 0,kind:n,status:typeof o.status=="number"?Math.min(_t,Math.max(Ut,o.status)):void 0,statusText:typeof o.statusText=="string"?o.statusText:void 0,headers:o.headers&&typeof o.headers=="object"?o.headers:void 0,body:typeof o.body=="string"?o.body:void 0,failKind:o.failKind==="timeout"?"timeout":void 0,delayMs:typeof o.delayMs=="number"?o.delayMs:void 0,times:typeof o.times=="number"?o.times:null,alternate:o.alternate===true,hits:0,seen:0,createdAt:typeof o.createdAt=="number"?o.createdAt:0})}return t.slice(0,tt)}var Yu=class{constructor(){this.rules=[];this.enabled=true;this.listeners=new Set;this.loaded=false;this.loadPromise=null;this.dirty=false;this.idCounter=0;this.state={enabled:true,rules:[],autoPaused:false};this.launchStreak=0;this.autoPaused=false;this.keepAlive=null;this.hitEmitTimer=null;this.engineDisabled=false;this.remote=null;this.remoteEchoUntil=0}enableRemoteMode(e){this.remote=e,this.disableEngine()}disableRemoteMode(){this.remote=null}replaceRules(e,t=false){this.remote&&(!t&&ue()<this.remoteEchoUntil||(this.enabled=e.enabled,this.rules=e.rules,this.rebuild(),this.emit()))}markLocalEdit(){this.remote&&(this.remoteEchoUntil=ue()+Uu)}disableEngine(){this.engineDisabled=true,this.keepAlive&&(this.keepAlive(),this.keepAlive=null,ht()===0&&Xt())}getState(){return this.state}getRules(){return this.engineDisabled||!this.enabled?Xu:this.rules}async fetchRuleBody(e){let t=this.rules.find(r=>r.id===e);if(!t)return null;if(!t.bodyOmitted)return t.body??null;if(!this.remote?.getRuleBody)return null;try{return await this.remote.getRuleBody(e)}catch{return null}}activeCount(){return this.enabled?this.rules.filter(e=>e.enabled&&!uo(e)).length:0}subscribe(e){return this.listeners.add(e),this.ensureLoaded(),()=>{this.listeners.delete(e)}}setEnabled(e){this.enabled!==e&&(this.remote?.setEnabled(e),this.markLocalEdit(),this.markTouched(),this.enabled=e,this.commit(this.rules))}addRule(e){if(this.rules.length>=tt)return null;let t={...e,id:`ovr_${Date.now().toString(36)}_${++this.idCounter}`,hits:0,seen:0,createdAt:Date.now()};return this.commit([t,...this.rules]),t}upsertRule(e){this.remote?.upsertRule(e),this.markLocalEdit(),this.markTouched();let{id:t,...r}=e;return t&&this.rules.some(o=>o.id===t)?(this.updateRule(t,r),this.rules.find(o=>o.id===t)??null):this.addRule(r)}updateRule(e,t){let r=this.rules.findIndex(n=>n.id===e);if(r===-1)return;let o=[...this.rules];o[r]={...o[r],...t,hits:0,seen:0},this.commit(o)}setRuleEnabled(e,t){let r=this.rules.findIndex(n=>n.id===e);if(r===-1||this.rules[r].enabled===t)return;this.remote?.setRuleEnabled(e,t),this.markLocalEdit(),this.markTouched();let o=[...this.rules];o[r]={...o[r],enabled:t,hits:t?0:o[r].hits,seen:t?0:o[r].seen},this.commit(o)}removeRule(e){let t=this.rules.filter(r=>r.id!==e);t.length!==this.rules.length&&(this.remote?.removeRule(e),this.markLocalEdit(),this.markTouched(),this.commit(t))}clearRules(){this.rules.length!==0&&(this.remote?.clearRules(),this.markLocalEdit(),this.markTouched(),this.commit([]))}recordMatch(e){let t=this.rules.findIndex(o=>o.id===e);if(t===-1)return;let r=[...this.rules];r[t]={...r[t],seen:r[t].seen+1},this.rules=r,this.rebuild()}recordHit(e){let t=this.rules.findIndex(s=>s.id===e);if(t===-1)return;let r=this.rules[t],o=r.hits+1,n=typeof r.times=="number"&&o>=r.times,i=[...this.rules];if(i[t]={...r,hits:o,enabled:n?false:r.enabled},n){this.commit(i);return}this.rules=i,this.rebuild(),this.scheduleHitEmit()}ensureLoaded(){return this.remote||this.loaded?Promise.resolve():this.loadPromise?this.loadPromise:(this.loadPromise=(async()=>{try{let e=await qi.getItem(Pi.network.overrides());if(e&&!this.dirty){let t=JSON.parse(e);this.enabled=t?.enabled!==false,this.rules=Ku(t?.rules),this.launchStreak=typeof t?.launchStreak=="number"?t.launchStreak:0,this.applyLaunchGuard(),this.rebuild()}}catch{}finally{this.loaded=true,this.syncKeepAlive(),this.emit()}})(),this.loadPromise)}applyLaunchGuard(){if(!this.enabled||this.activeCount()===0){this.launchStreak=0;return}this.launchStreak+=1,this.launchStreak>=_u&&(this.enabled=false,this.autoPaused=true,this.launchStreak=0),this.persist()}syncKeepAlive(){let e=!this.engineDisabled&&this.activeCount()>0;if(e&&!this.keepAlive){qn(),this.keepAlive=Jt(()=>{});return}!e&&this.keepAlive&&(this.keepAlive(),this.keepAlive=null,ht()===0&&Xt())}scheduleHitEmit(){this.hitEmitTimer===null&&(this.hitEmitTimer=setTimeout(()=>{this.hitEmitTimer=null,this.emit()},Ju))}commit(e){this.dirty=true,this.rules=e.slice(0,tt),this.rebuild(),this.syncKeepAlive(),this.emit(),this.persist()}rebuild(){this.state={enabled:this.enabled,rules:this.rules,autoPaused:this.autoPaused}}markTouched(){this.launchStreak=0,this.autoPaused=false}noteHealthyLaunch(){this.launchStreak===0&&!this.autoPaused||(this.markTouched(),this.persist(),this.rebuild(),this.emit())}persist(){this.remote||qi.setItem(Pi.network.overrides(),JSON.stringify({enabled:this.enabled,rules:this.rules,launchStreak:this.launchStreak})).catch(()=>{})}emit(){this.listeners.forEach(e=>e())}},_=new Yu;Na({getRules:()=>_.getRules(),recordHit:e=>_.recordHit(e),recordMatch:e=>_.recordMatch(e)});function Ar(){let e=Vu(At(s=>_.subscribe(s),[]),()=>_.getState(),()=>_.getState()),t=At(s=>_.setEnabled(s),[]),r=At(s=>_.upsertRule(s),[]),o=At((s,a)=>_.setRuleEnabled(s,a),[]),n=At(s=>_.removeRule(s),[]),i=At(()=>_.clearRules(),[]);return{enabled:e.enabled,rules:e.rules,autoPaused:e.autoPaused,activeCount:_.activeCount(),setEnabled:t,upsertRule:r,setRuleEnabled:o,removeRule:n,clearRules:i,isRuleSpent:uo}}D();function Zu(e,t){if(t.length===0)return[];let r=new Set(t.map(n=>n.id)),o=new Set;for(let n of t){let i;for(let s of e){if(s.override&&r.has(s.override.ruleId)){o.add(s.id);continue}lo(n,s.url,String(s.method||"GET"),s.requestHeaders)&&(s.timestamp>=n.createdAt?o.add(s.id):(!i||s.timestamp>i.timestamp)&&(i=s))}i&&o.add(i.id)}return e.filter(n=>o.has(n.id))}D();var Qu=[];function Eo(e,t,r){return t.length===0?{pinned:Qu,rest:e}:{pinned:t,rest:r.size===0?e:e.filter(o=>!r.has(o.id))}}import{jsx as ve,jsxs as wt}from"react/jsx-runtime";var ec=e=>e.id;function tc({events:e,onEventPress:t,onLongPress:r,savedLiveIds:o,onClearPinned:n}){return e.length===0?null:wt(c,{style:Se.pinnedSection,children:[wt(c,{style:Se.pinnedHeader,children:[ve(mu,{size:11,active:true,color:be.semantic.info}),wt(g,{style:Se.pinnedTitle,children:["PINNED \xB7 ",e.length]}),ve(N,{onPress:n,"sentry-label":"ignore unpin all",style:Se.pinnedClear,children:ve(g,{style:Se.pinnedClearText,children:"Unpin all"})})]}),e.map(i=>ve(zt,{event:i,onPress:t,onLongPress:r,pinned:true,saved:o.has(i.id)},i.id))]})}function rc({events:e,onEventPress:t,onLongPress:r,savedLiveIds:o,paused:n,onTogglePaused:i}){return e.length===0?null:wt(c,{style:[Se.overriddenSection,n&&Se.overriddenSectionOff],children:[wt(c,{style:Se.overriddenHeader,children:[ve(gu,{size:11,color:n?be.text.muted:be.semantic.warning}),ve(g,{testID:"buoy-network-overridden-strip",style:[Se.overriddenTitle,n&&Se.overriddenTitleOff],children:n?`PAUSED \xB7 ${e.length}`:`OVERRIDDEN \xB7 ${e.length}`}),ve(N,{onPress:i,"sentry-label":"ignore pause overrides",style:Se.overriddenManage,children:ve(g,{style:[Se.overriddenManageText,n&&Se.overriddenTitleOff],children:n?"Resume":"Pause"})})]}),e.map(s=>ve(zt,{event:s,onPress:t,onLongPress:r,overridden:true,saved:o.has(s.id)},s.id))]})}function oc({visible:e,paused:t,filter:r,ignoredPatterns:o,isPro:n,searchText:i,onEventPress:s,onUpgradePress:a}){let{visibleEvents:l,hasLockedEvents:u,lockedEventCount:b,totalEvents:E}=sr({filter:r,ignoredPatterns:o,paused:t,visible:e,isPro:n}),{pinnedEvents:C,pinnedLiveIds:S,savedLiveIds:O,togglePin:p,clearPinned:R}=Ot(),{rules:I,enabled:h,setEnabled:L,isRuleSpent:z}=Ar(),P=fu(G=>{p(G)},[p]);if(!e)return null;let{pinned:T,rest:x}=Eo(l,C,S),m=I.filter(G=>G.enabled&&!z(G)),v=Zu([...T,...x],m),d=new Set(v.map(G=>G.id)),f=T.filter(G=>!d.has(G.id)),y=d.size?x.filter(G=>!d.has(G.id)):x,A=!t,ae=({item:G})=>ve(zt,{event:G,onPress:s,onLongPress:P,saved:O.has(G.id)}),te=()=>f.length>0||v.length>0?null:ve(bu,{testID:"buoy-network-empty",...vu({subject:"requests",search:i,total:E,capturing:A,waiting:{otto:"fishing",title:"No network events",message:"Network requests will appear here"},paused:{title:"No network events",message:"Enable interception to start capturing"}})}),Q=()=>{if(!u)return null;let G=i.length>0,H=G?`${b} matching ${b===1?"request":"requests"} in locked history`:`${b} requests locked`;return ve(Ei,{title:H,subtitle:G?"Upgrade to Pro to search your full request history":"Upgrade to Pro to unlock full request history",onPress:a})};return wt(c,{style:Se.root,children:[A?null:wt(c,{style:Se.disabledBanner,children:[ve(yu,{size:14,color:be.semantic.warning}),ve(g,{style:Se.disabledText,children:"Network interception is disabled"})]}),ve(rc,{events:v,onEventPress:s,onLongPress:P,savedLiveIds:O,paused:!h,onTogglePaused:()=>L(!h)}),ve(tc,{events:f,onEventPress:s,onLongPress:P,savedLiveIds:O,onClearPinned:R}),y.length>0||u?ve(io,{testID:"buoy-network-list",data:y,renderItem:ae,keyExtractor:ec,contentContainerStyle:Se.listContent,showsVerticalScrollIndicator:true,onEndReachedThreshold:.8,scrollEnabled:true,...Su,extraData:O,"sentry-label":"ignore network events list",ListFooterComponent:Q}):te()]})}var Se=fe.create({root:{flex:1,minHeight:0},overriddenSection:{borderBottomWidth:1,borderBottomColor:be.semantic.warning+"44",backgroundColor:be.semantic.warningBackground},overriddenSectionOff:{borderBottomColor:be.border.default,backgroundColor:be.background.card},overriddenTitleOff:{color:be.text.muted},overriddenHeader:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:12,paddingTop:8,paddingBottom:4},overriddenTitle:{flex:1,fontSize:10,fontWeight:"700",letterSpacing:.8,color:be.semantic.warning},overriddenManage:{paddingHorizontal:6,paddingVertical:2},overriddenManageText:{fontSize:10,fontWeight:"600",color:be.semantic.warning},pinnedSection:{borderBottomWidth:1,borderBottomColor:be.border.default,paddingBottom:4},pinnedHeader:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:20,paddingTop:10,paddingBottom:6},pinnedTitle:{flex:1,color:be.semantic.info,fontSize:10,fontWeight:"700",letterSpacing:.6,fontFamily:xu},pinnedClear:{paddingHorizontal:6,paddingVertical:2},pinnedClearText:{color:be.text.muted,fontSize:10},disabledBanner:{flexDirection:"row",alignItems:"center",gap:8,padding:10,marginHorizontal:12,marginTop:8,backgroundColor:be.semantic.warningBackground,borderRadius:8,borderWidth:1,borderColor:be.semantic.warning+"20"},disabledText:{color:be.semantic.warning,fontSize:11,flex:1},listContent:{paddingTop:8}});D();ce();import{useState as nc}from"react";import{Bookmark as ic,CopyButton as sc,Search as ac,macOSColors as He,useLimit as lc,ToolEmptyState as dc,resolveListEmptyState as uc,EVENT_LIST_PRESET as cc,monoFont as hc}from"@buoy-gg/shared-ui/web";D();function Bi(e,t,r){let o=e.slice(0,Math.min(t,nt)),n=o.map(i=>i.event);return{events:r?rr(n,{searchText:r}):n,lockedCount:e.length-o.length}}import{jsx as Xe,jsxs as Hr}from"react/jsx-runtime";var pc=e=>e.id;function Oi({visible:e,isPro:t,copySettings:r,search:o,onSearchChange:n,onEventPress:i,onUpgradePress:s}){let{savedRecords:a,pinnedLiveIds:l,toggleSave:u,clearSaved:b}=Ot(),E=lc("network.saved"),[C,S]=nc(""),O=o!=null&&n!=null,p=O?o:C,R=O?n:S;if(!e)return null;let{events:I,lockedCount:h}=Bi(a,E,p),L=T=>{u(T)},z=({item:T})=>Xe(zt,{event:T,onPress:i,onLongPress:L,saved:true,pinned:l.has(T.id)}),P=()=>h===0?null:Xe(Ei,{title:`${h} saved ${h===1?"request":"requests"} locked`,subtitle:`Your plan keeps ${E}. Upgrade to Pro to unlock the rest.`,onPress:s});return Hr(c,{style:Je.root,children:[Hr(c,{style:Je.toolbar,children:[Xe(ic,{size:11,color:He.semantic.debug}),Hr(g,{style:Je.toolbarTitle,children:["SAVED \xB7 ",a.length,E>=nt?"":`/${E}`]}),t?Xe(sc,{value:()=>Ci(I,r),size:13,buttonStyle:Je.toolbarButton,colors:{idle:He.text.secondary,success:He.semantic.success,error:He.semantic.error},disabled:I.length===0}):null,Xe(N,{onPress:b,"sentry-label":"ignore clear saved",style:Je.toolbarClear,disabled:a.length===0,children:Xe(g,{style:[Je.toolbarClearText,a.length===0&&Je.toolbarClearTextDisabled],children:"Clear all"})})]}),a.length>0?Hr(c,{style:Je.searchRow,children:[Xe(ac,{size:13,color:He.text.secondary}),Xe(Pt,{style:Je.searchInput,placeholder:"Search saved requests\u2026",placeholderTextColor:He.text.muted,value:p,onChangeText:R,"sentry-label":"ignore saved search",accessibilityLabel:"Search saved requests",autoCapitalize:"none",autoCorrect:false,returnKeyType:"search"})]}):null,a.length===0||p.trim().length>0&&I.length===0&&h===0?Xe(dc,{testID:"buoy-network-saved-empty",...uc({subject:"saved requests",verb:"kept",search:a.length===0?"":p,total:a.length,waiting:{otto:"empty",title:"No saved requests",message:"Open a request and tap the bookmark to keep it here \u2014 saved requests survive Clear and app restarts."}})}):Xe(io,{data:I,renderItem:z,keyExtractor:pc,contentContainerStyle:Je.listContent,showsVerticalScrollIndicator:true,scrollEnabled:true,...cc,extraData:l,"sentry-label":"ignore saved requests list",ListFooterComponent:P})]})}var Je=fe.create({root:{flex:1,minHeight:0},toolbar:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:20,paddingTop:10,paddingBottom:6},toolbarTitle:{flex:1,color:He.semantic.debug,fontSize:10,fontWeight:"700",letterSpacing:.6,fontFamily:hc},toolbarButton:{width:26,height:26,borderRadius:6,alignItems:"center",justifyContent:"center"},toolbarClear:{paddingHorizontal:6,paddingVertical:2},toolbarClearText:{color:He.text.muted,fontSize:10},toolbarClearTextDisabled:{color:He.text.disabled},searchRow:{flexDirection:"row",alignItems:"center",gap:6,marginHorizontal:12,marginBottom:8,paddingHorizontal:10,paddingVertical:5,backgroundColor:He.background.input,borderRadius:10,borderWidth:1,borderColor:He.border.default},searchInput:{flex:1,color:He.text.primary,fontSize:13,paddingVertical:2},listContent:{paddingTop:4}});D();ce();import{useCallback as fc,useEffect as Mr,useState as gc}from"react";import{AlertCircle as mc,AlertTriangle as yc,DevToolsCard as bc,EmptyState as vc,MethodBadge as Sc,Plus as xc,Trash2 as wc,macOSColors as Y,useLimit as Tc,monoFont as Cc}from"@buoy-gg/shared-ui/web";D();ce();import{useMemo as Di,useState as Nr}from"react";import{ChevronDown as Rc,ChevronRight as kc,macOSColors as U,useSafeAreaInsets as Ic,monoFont as Ec}from"@buoy-gg/shared-ui/web";D();ce();import{useState as Fr,useMemo as jr,useCallback as ar,useRef as Lo,useEffect as Lc,memo as $r}from"react";import{displayValue as Pc,buoyColors as q,monoFont as Be}from"@buoy-gg/shared-ui/web";import{CopyButton as qc}from"@buoy-gg/shared-ui/web";import{ChevronRight as Bc,ChevronDown as Oc,Trash as zi}from"@buoy-gg/shared-ui/web";import{CyberpunkInput as Dc}from"@buoy-gg/shared-ui/web/dataViewer";D();var Tt=(e,t,r)=>{if(t.length===0)return r;if(e instanceof Map){let o=new Map(e);if(t.length===1)return o.set(t[0],r),o;let[n,...i]=t,s=o.get(n);return o.set(n,Tt(s??null,i,r)),o}if(e instanceof Set){let o=Tt(Array.from(e),t,r);return new Set(Array.isArray(o)?o:[])}if(Array.isArray(e)){let o=[...e];if(t.length===1)return o[t[0]]=r,o;let[n,...i]=t;return o[n]=Tt(o[n],i,r),o}if(e instanceof Object){let o={...e};if(t.length===1)return o[t[0]]=r,o;let[n,...i]=t;return o[n]=Tt(o[n],i,r),o}return e};D();var Ct=(e,t)=>{if(e instanceof Map){let r=new Map(e);if(t.length===1)return r.delete(t[0]),r;let[o,...n]=t;return r.set(o,Ct(r.get(o),n)),r}if(e instanceof Set){let r=Ct(Array.from(e),t);return new Set(r)}if(Array.isArray(e)){let r=[...e];if(t.length===1)return r.filter((i,s)=>s.toString()!==t[0]);let[o,...n]=t;return r[o]=Ct(r[o],n),r}if(e instanceof Object){let r={...e};if(t.length===1)return delete r[t[0]],r;let[o,...n]=t;return r[o]=Ct(r[o],n),r}return e};D();import{createContext as zc,useContext as Ac}from"react";var Ai=zc(null);function Wr(){return Ac(Ai)}import{Fragment as Vr,jsx as J,jsxs as Ie}from"react/jsx-runtime";var lr=100,Ht={top:8,bottom:8,left:8,right:8},Hi=12,Hc=(e,t=lr)=>{if(t<1||e.length===0)return[];let r=[];for(let o=0;o<e.length;o+=t)r.push(e.slice(o,o+t));return r},Po=$r(({expanded:e,isFocused:t=false,isMain:r=false})=>J(c,{style:[$.expanderIcon,r&&$.expanderIconMain,e?$.expanded:$.collapsed],children:e?J(Oc,{size:r?14:Hi,color:t?q.primary:r?q.text:q.textSecondary,strokeWidth:2.5}):J(Bc,{size:r?14:Hi,color:t?q.primary:r?q.text:q.textSecondary,strokeWidth:2.5})}));Po.displayName="Expander";var Mi=$r(({value:e,isFocused:t=false})=>J(qc,{value:e,isFocused:t,buttonStyle:t?{...$.buttonStyle,...$.buttonStyleFocused}:$.buttonStyle}));Mi.displayName="CopyButton";var qo=$r(({dataPath:e,isFocused:t=false})=>{let r=Wr(),o=ar(()=>{r&&r.onChange(Ct(r.root,e))},[r,e]);return r?J(N,{"sentry-label":"ignore devtools explorer delete button",onPress:o,style:[$.deleteButton,t&&$.deleteButtonFocused],accessibilityLabel:"Delete item",hitSlop:Ht,activeOpacity:.7,children:J(zi,{size:14,strokeWidth:2,color:t?q.error:q.error+"CC"})}):null});qo.displayName="DeleteItemButton";var Ni=$r(({dataPath:e,isFocused:t=false})=>{let r=Wr(),o=ar(()=>{r&&r.onChange(Tt(r.root,e,[]))},[r,e]);return r?J(N,{"sentry-label":"ignore devtools explorer clear button",style:[$.clearButton,t&&$.clearButtonFocused],"aria-label":"Remove all items",onPress:o,hitSlop:Ht,activeOpacity:.7,children:J(g,{style:[$.clearButtonText,{color:t?q.warning:q.warning+"CC"}],children:"[]"})}):null});Ni.displayName="ClearArrayButton";function Mc({dataPath:e,value:t,itemsDeletable:r}){let o=Wr(),n=ar(()=>{if(!o)return;let l=typeof t=="boolean"?t:false;o.onChange(Tt(o.root,e,!l))},[o,e,t]),i=ar(()=>{o&&o.onChange(Ct(o.root,e))},[o,e]);if(!o)return null;let s=t?$.toggleBadgeTrue:$.toggleBadgeFalse,a=t?$.toggleTextTrue:$.toggleTextFalse;return Ie(N,{"sentry-label":"ignore devtools explorer toggle button",style:$.modernToggleButton,onPress:n,hitSlop:Ht,activeOpacity:.8,children:[J(c,{style:[$.toggleBadge,s],children:J(g,{style:[$.toggleBadgeText,a],children:t?"TRUE":"FALSE"})}),r&&J(N,{"sentry-label":"ignore devtools explorer delete button in toggle",onPress:i,style:$.deleteButtonInToggle,accessibilityLabel:"Delete item",hitSlop:Ht,activeOpacity:.7,children:J(zi,{size:14,strokeWidth:2,color:q.error+"CC"})})]})}function Bo({editable:e,label:t,value:r,defaultExpanded:o,dataPath:n,itemsDeletable:i,dataVersion:s=0}){let a=Wr(),[l,u]=Fr(false),[b,E]=Fr("");Lc(()=>{if(r!=null&&(typeof r=="string"||typeof r=="number")){let d=r.toString();E(d)}},[r,t,s]);let C=jr(()=>{let d=t.toUpperCase();return["DATA","QUERY","QUERYKEY","TYPES","STATS","OPTIONS","OBSERVERS"].includes(d)},[t]),[S,O]=Fr((o||[]).includes(t)),p=()=>O(d=>!d),[R,I]=Fr([]),h=jr(()=>r==null||typeof r!="object"?[]:Array.isArray(r)?(r.length>1e3?r.slice(0,1e3):r).map((d,f)=>({label:f.toString(),value:d})):r instanceof Map?Array.from(r.entries()).slice(0,1e3).map(([d,f])=>({label:d.toString(),value:f})):r instanceof Set?Array.from(r).slice(0,1e3).map((d,f)=>({label:f.toString(),value:d})):Object.entries(r).slice(0,1e3).map(([d,f])=>({label:d,value:f})),[r]),L=jr(()=>Array.isArray(r)?"array":r===null||typeof r!="object"?typeof r:r instanceof Map||r instanceof Set?"Iterable":"object",[r]),z=jr(()=>Hc(h,lr),[h]),P=n??[],T=Lo(a),x=Lo(P),m=Lo(L);T.current=a,x.current=P,m.current=L;let v=ar((d,f)=>{E(f);let y=T.current;if(!y||d&&isNaN(Number(f)))return;let A=m.current==="number"?Number(f):f;y.onChange(Tt(y.root,x.current,A))},[E]);return J(c,{style:$.minWidthWrapper,children:Ie(c,{style:$.fullWidthMarginRight,children:[z.length>0&&Ie(Vr,{children:[Ie(c,{style:[$.flexRowItemsCenterGap,C&&$.flexRowItemsCenterGapMain],children:[Ie(N,{"sentry-label":"ignore devtools explorer expander button",style:$.expanderButton,onPress:p,hitSlop:Ht,activeOpacity:.6,children:[J(Po,{expanded:S,isFocused:l,isMain:C}),J(g,{style:[$.labelText,l&&$.labelTextFocused,C&&$.labelTextMain],children:t}),J(g,{style:$.textGray500,children:`${String(L).toLowerCase()==="iterable"?"(Iterable) ":""}${h.length} ${h.length>1?"items":"item"}`})]}),e&&Ie(c,{style:$.flexRowGapItemsCenter,children:[J(Mi,{value:r,isFocused:l}),i&&a!==null&&J(qo,{dataPath:P,isFocused:l}),L==="array"&&a!==null&&J(Ni,{dataPath:P,isFocused:l})]})]}),S&&Ie(Vr,{children:[z.length===1&&J(c,{style:[$.singleEntryContainer,C&&$.singleEntryContainerMain],children:h.map((d,f)=>J(Bo,{defaultExpanded:o,label:d.label,value:d.value,editable:e,dataPath:[...P,d.label],itemsDeletable:L==="array"||L==="Iterable"||L==="object",dataVersion:s},d.label+f))}),z.length>1&&J(c,{style:$.multiEntryContainer,children:z.map((d,f)=>J(c,{children:Ie(c,{style:$.relativeOutlineNone,children:[Ie(N,{"sentry-label":"ignore devtools explorer page toggle",onPress:()=>I(y=>y.includes(f)?y.filter(A=>A!==f):[...y,f]),style:$.pageExpanderButton,hitSlop:Ht,children:[J(Po,{expanded:R.includes(f)}),Ie(g,{style:$.pageRangeText,children:["[",f*lr,"...",f*lr+lr-1,"]"]})]}),R.includes(f)&&J(c,{style:$.entriesContainer,children:d.map(y=>J(Bo,{defaultExpanded:o,label:y.label,value:y.value,editable:e,dataPath:[...P,y.label],dataVersion:s},y.label))})]})},f))})]})]}),z.length===0&&Ie(c,{style:$.flexRowGapFullWidth,children:[e&&a!==null&&(L==="string"||L==="number"||L==="boolean")?Ie(Vr,{children:[e&&a&&(L==="string"||L==="number")&&J(c,{style:$.nebulaInputWrapper,children:J(Dc,{label:t,accessibilityLabel:"Data input field for editing values",style:[L==="number"?$.textNumber:$.textString],keyboardType:L==="number"?"numeric":"default",value:b,onChangeText:d=>v(L==="number",d),onFocus:()=>u(true),onBlur:()=>u(false),showNumberControls:L==="number",onIncrement:()=>{let d=Number(b)||0;v(true,String(d+1))},onDecrement:()=>{let d=Number(b)||0;v(true,String(d-1))},showDeleteButton:i,onDelete:()=>{a.onChange(Ct(a.root,P))}})}),L==="boolean"&&Ie(c,{style:$.booleanRowContainer,children:[J(g,{style:$.booleanLabel,children:t}),J(c,{style:$.booleanToggleWrapper,children:J(Mc,{dataPath:P,value:r,itemsDeletable:i})})]})]}):Ie(Vr,{children:[J(g,{style:$.text344054,children:t}),J(g,{style:$.displayValueText,children:Pc(r)})]}),e&&i&&a!==null&&L!=="string"&&L!=="number"&&L!=="boolean"&&J(qo,{dataPath:P,isFocused:l})]})]})})}var $=fe.create({buttonStyle:{backgroundColor:q.card+"E6",borderWidth:1,borderColor:q.textSecondary+"33",borderRadius:6,flexDirection:"row",alignItems:"center",justifyContent:"center",width:28,height:28,position:"relative",shadowColor:"#000",shadowOffset:{width:0,height:1},shadowOpacity:.2,shadowRadius:2},buttonStyleFocused:{borderColor:q.primary+"CC",backgroundColor:q.primary+"26",shadowColor:q.primary,shadowOpacity:.3,shadowRadius:4},deleteButton:{backgroundColor:q.error+"1A",borderColor:q.error+"4D",borderWidth:1,borderRadius:6,padding:0,alignItems:"center",justifyContent:"center",width:28,height:28,position:"relative",shadowColor:q.error,shadowOffset:{width:0,height:0},shadowOpacity:.15,shadowRadius:3},deleteButtonFocused:{borderColor:q.error+"CC",backgroundColor:q.error+"33",shadowOpacity:.3,shadowRadius:5},deleteButtonInToggle:{backgroundColor:q.error+"1A",borderColor:q.error+"4D",borderWidth:1,borderRadius:6,padding:0,alignItems:"center",justifyContent:"center",width:28,height:28,shadowColor:q.error,shadowOffset:{width:0,height:0},shadowOpacity:.15,shadowRadius:3},clearButton:{backgroundColor:q.warning+"1A",borderWidth:1,borderColor:q.warning+"4D",borderRadius:6,flexDirection:"row",padding:0,alignItems:"center",justifyContent:"center",width:28,height:28,position:"relative",zIndex:10,shadowColor:q.warning,shadowOffset:{width:0,height:0},shadowOpacity:.15,shadowRadius:3},clearButtonFocused:{borderColor:q.warning+"CC",backgroundColor:q.warning+"33",shadowOpacity:.3,shadowRadius:5},clearButtonText:{fontSize:12,fontWeight:"700",fontFamily:Be},expanderIcon:{width:18,height:18,alignItems:"center",justifyContent:"center",marginRight:1,backgroundColor:q.textSecondary+"14",borderRadius:3},expanderIconMain:{backgroundColor:q.textSecondary+"1A",width:20,height:20,borderRadius:4,borderWidth:.5,borderColor:q.textSecondary+"33"},expanded:{transform:[{rotate:"0deg"}]},collapsed:{transform:[{rotate:"0deg"}]},minWidthWrapper:{minWidth:180,fontSize:11,flexDirection:"row",flexWrap:"wrap",width:"100%",marginVertical:.5},fullWidthMarginRight:{position:"relative",width:"100%",marginRight:1},flexRowItemsCenterGap:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:3,paddingHorizontal:6,marginVertical:1,borderRadius:4,backgroundColor:q.card+"66",borderWidth:.5,borderColor:q.textSecondary+"1A"},flexRowItemsCenterGapMain:{backgroundColor:q.card+"E6",borderLeftWidth:2.5,borderLeftColor:q.textSecondary+"80",borderColor:q.textSecondary+"26",paddingVertical:5,paddingHorizontal:8,marginBottom:3,borderWidth:1,shadowColor:"#000",shadowOffset:{width:0,height:0},shadowOpacity:.08,shadowRadius:3},expanderButton:{flexDirection:"row",alignItems:"center",backgroundColor:"transparent",paddingVertical:1,paddingHorizontal:2,gap:6,borderWidth:0,minHeight:24,flex:1},labelText:{color:q.textSecondary,fontSize:10,fontWeight:"600",marginRight:4,fontFamily:Be,letterSpacing:.4},labelTextFocused:{color:q.text},labelTextMain:{color:q.text,fontSize:11,fontWeight:"700",letterSpacing:.6},textGray500:{color:q.textMuted,fontSize:10,fontWeight:"400",fontFamily:Be,opacity:.7},pageRangeText:{color:q.textSecondary,fontSize:10,fontWeight:"600",fontFamily:Be},flexRowGapItemsCenter:{flexDirection:"row",alignItems:"center",gap:4,paddingLeft:2},singleEntryContainer:{marginLeft:2,marginTop:2,paddingLeft:8,borderLeftWidth:1.5,borderLeftColor:q.textSecondary+"40"},singleEntryContainerMain:{borderLeftColor:q.textSecondary+"4D",marginLeft:4,paddingLeft:10},multiEntryContainer:{marginLeft:2,marginTop:2,paddingLeft:8,borderLeftWidth:1.5,borderLeftColor:q.textSecondary+"40"},multiEntryContainerMain:{borderLeftColor:q.textSecondary+"4D",marginLeft:4,paddingLeft:10},relativeOutlineNone:{position:"relative"},pageExpanderButton:{flexDirection:"row",alignItems:"center",backgroundColor:q.card+"66",paddingVertical:3,paddingHorizontal:6,gap:6,borderRadius:4,borderWidth:.5,borderColor:q.textSecondary+"1A",marginBottom:2,minHeight:24},entriesContainer:{marginLeft:2,paddingLeft:8,marginTop:2,borderLeftWidth:1.5,borderLeftColor:q.textSecondary+"40"},textNumber:{color:q.text,fontWeight:"600",fontFamily:Be},textString:{color:q.text,fontFamily:Be},flexRowGapFullWidth:{flexDirection:"row",width:"100%",alignItems:"center",marginVertical:1,gap:6,paddingHorizontal:4,paddingVertical:2,borderRadius:3},text344054:{color:q.textSecondary,fontWeight:"600",fontSize:9,minWidth:50,fontFamily:Be,letterSpacing:.4,opacity:.8},numberInputButtons:{position:"absolute",right:8,top:"50%",transform:[{translateY:-18}],flexDirection:"row",gap:4,zIndex:10},touchableButton:{width:32,height:32,borderRadius:6,backgroundColor:q.card+"E6",borderWidth:1,borderColor:q.textSecondary+"33",alignItems:"center",justifyContent:"center",marginLeft:2,shadowColor:"#000",shadowOffset:{width:0,height:1},shadowOpacity:.2,shadowRadius:2},touchableButtonFocused:{borderColor:q.primary+"CC",backgroundColor:q.primary+"26",shadowColor:q.primary,shadowOffset:{width:0,height:0},shadowOpacity:.3,shadowRadius:4,elevation:3},nebulaInputWrapper:{flex:1,width:"100%",position:"relative"},displayValueText:{flex:1,color:q.text,fontWeight:"400",fontFamily:Be,fontSize:12,paddingVertical:6,paddingHorizontal:10,borderRadius:6,borderWidth:1,borderColor:q.textMuted+"66",minHeight:34},dataRow:{flexDirection:"row",alignItems:"center",paddingVertical:4,paddingHorizontal:8,minHeight:44,gap:12},dataLabel:{color:q.textSecondary,fontSize:13,fontWeight:"500",minWidth:80,flexShrink:0},dataValueContainer:{flex:1,flexDirection:"row",alignItems:"center"},inputWithActions:{flex:1,position:"relative"},numberControls:{position:"absolute",right:8,top:"50%",transform:[{translateY:-16}],flexDirection:"column",gap:2},numberButton:{width:32,height:16,borderRadius:4,alignItems:"center",justifyContent:"center",borderWidth:1,borderColor:q.primary+"0F"},readOnlyValue:{color:q.text,fontSize:13,fontFamily:Be,paddingVertical:8,paddingHorizontal:12,borderRadius:6,borderWidth:1,borderColor:q.textMuted+"33",flex:1},actionButtons:{flexDirection:"row",gap:6,paddingLeft:8},booleanContainer:{flexDirection:"row",alignItems:"center",padding:8,borderRadius:6,borderWidth:1,borderColor:q.textMuted+"4D",flex:1},booleanText:{marginLeft:8,color:q.warning,fontWeight:"500",fontFamily:Be},modernToggleButton:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",borderRadius:6,borderWidth:1,borderColor:q.textMuted+"99",paddingHorizontal:8,paddingVertical:6,marginVertical:2,minHeight:34,gap:8},toggleIconContainer:{marginRight:6},toggleIcon:{padding:8,borderRadius:8,alignItems:"center",justifyContent:"center",width:32,height:32},toggleIconSmall:{width:8,height:8,borderRadius:4},toggleContent:{flex:1,minWidth:0},toggleLabel:{color:"#E5E7EB",fontSize:11,fontWeight:"600",fontFamily:Be,letterSpacing:.3},toggleStatus:{color:"#9CA3AF",fontSize:11},toggleBadge:{marginLeft:6,paddingHorizontal:6,paddingVertical:3,borderRadius:4,borderWidth:1},toggleBadgeText:{fontSize:9,fontWeight:"700",textTransform:"uppercase",letterSpacing:.8,fontFamily:Be},toggleIconTrue:{backgroundColor:q.primary},toggleIconFalse:{backgroundColor:q.textMuted},toggleBadgeTrue:{backgroundColor:q.primary+"1A",borderColor:q.primary+"4D"},toggleBadgeFalse:{backgroundColor:q.textMuted+"1A",borderColor:q.textMuted+"4D"},toggleTextTrue:{color:q.primary,fontWeight:"600"},toggleTextFalse:{color:q.textSecondary,fontWeight:"500"},booleanRowContainer:{flexDirection:"row",alignItems:"center",width:"100%",gap:8,paddingVertical:2},booleanLabel:{color:q.textSecondary,fontSize:10,fontWeight:"600",fontFamily:Be,letterSpacing:.4,minWidth:60,flexShrink:0},booleanToggleWrapper:{flex:1}});D();ce();import{useState as Nc}from"react";import{absoluteFill as Fi,macOSColors as Ee}from"@buoy-gg/shared-ui/web";import{jsx as st,jsxs as Oo}from"react/jsx-runtime";function Do({title:e,hint:t,value:r,placeholder:o="Number",min:n,max:i,onSubmit:s,onCancel:a}){let[l,u]=Nc(r!=null?String(r):""),b=()=>{let E=l.trim();if(!E){s(null);return}let C=Number(E);if(!Number.isFinite(C)){s(null);return}let S=C;n!=null&&(S=Math.max(n,S)),i!=null&&(S=Math.min(i,S)),s(S)};return Oo(c,{style:Oe.overlay,children:[st(N,{style:Oe.backdrop,activeOpacity:1,onPress:a,"sentry-label":"ignore dismiss number prompt"}),Oo(c,{style:Oe.panel,children:[st(g,{style:Oe.title,children:e}),st(Pt,{style:Oe.input,value:l,onChangeText:u,placeholder:o,placeholderTextColor:Ee.text.muted,keyboardType:"number-pad",autoFocus:true,selectTextOnFocus:true,onSubmitEditing:b,returnKeyType:"done","sentry-label":"ignore number prompt input",accessibilityLabel:e}),t?st(g,{style:Oe.hint,children:t}):null,Oo(c,{style:Oe.actions,children:[st(N,{onPress:a,"sentry-label":"ignore cancel number prompt",style:[Oe.button,Oe.cancelButton],children:st(g,{style:Oe.cancelText,children:"Cancel"})}),st(N,{onPress:b,"sentry-label":"ignore save number prompt",style:[Oe.button,Oe.saveButton],children:st(g,{style:Oe.saveText,children:"Set"})})]})]})]})}var Oe=fe.create({overlay:{...Fi,zIndex:40},backdrop:{...Fi,backgroundColor:"rgba(0,0,0,0.6)"},panel:{marginHorizontal:12,marginTop:12,padding:14,borderRadius:10,borderWidth:1,borderColor:Ee.border.hover,backgroundColor:Ee.background.card,gap:10},title:{fontSize:13,fontWeight:"700",color:Ee.text.primary},input:{backgroundColor:Ee.background.input,borderWidth:1,borderColor:Ee.border.input,borderRadius:6,paddingHorizontal:12,paddingVertical:10,fontSize:16,fontWeight:"700",color:Ee.text.primary},hint:{fontSize:10,color:Ee.text.muted},actions:{flexDirection:"row",gap:8},button:{flex:1,paddingVertical:10,borderRadius:6,alignItems:"center",borderWidth:1},cancelButton:{borderColor:Ee.border.default,backgroundColor:Ee.background.base},cancelText:{fontSize:12,fontWeight:"600",color:Ee.text.secondary},saveButton:{borderColor:Ee.semantic.info,backgroundColor:`${Ee.semantic.info}22`},saveText:{fontSize:12,fontWeight:"700",color:Ee.semantic.info}});import{Fragment as ji,jsx as V,jsxs as Te}from"react/jsx-runtime";var Fc=["GET","POST","PUT","PATCH","DELETE"],$i=[0,500,1e3,3e3,1e4],Wi=[{id:"500",label:"Server error",code:"500",danger:true,patch:{kind:"respond",status:500,statusText:"Internal Server Error"}},{id:"401",label:"Unauthorized",code:"401",danger:true,patch:{kind:"respond",status:401,statusText:"Unauthorized"}},{id:"404",label:"Not found",code:"404",danger:true,patch:{kind:"respond",status:404,statusText:"Not Found"}},{id:"403",label:"Forbidden",code:"403",danger:true,patch:{kind:"respond",status:403,statusText:"Forbidden"}},{id:"429",label:"Rate limited",code:"429",danger:true,patch:{kind:"respond",status:429,statusText:"Too Many Requests"}},{id:"503",label:"Unavailable",code:"503",danger:true,patch:{kind:"respond",status:503,statusText:"Service Unavailable"}},{id:"400",label:"Bad request",code:"400",danger:true,patch:{kind:"respond",status:400,statusText:"Bad Request"}},{id:"200",label:"Success",code:"200",patch:{kind:"respond",status:200,statusText:"OK"}},{id:"offline",label:"Offline",danger:true,patch:{kind:"fail",failKind:"network"}},{id:"timeout",label:"Timeout",danger:true,patch:{kind:"fail",failKind:"timeout"}},{id:"passthrough",label:"Real response",patch:{kind:"delay"}}];function jc(e){return e.kind==="delay"?"passthrough":e.kind==="fail"?e.failKind==="timeout"?"timeout":"offline":String(e.status??200)}function $c({outcome:e,active:t,onPress:r}){let o=e.danger?U.semantic.error:U.semantic.info;return Te(N,{onPress:r,"sentry-label":"ignore override outcome",testID:`buoy-network-outcome-${e.label.toLowerCase().replace(/\s+/g,"-")}${e.code?`-${e.code}`:""}`,accessibilityRole:"button",accessibilityLabel:`${e.label}${e.code?` ${e.code}`:""}`,style:[M.outcome,t&&{borderColor:o,backgroundColor:`${o}1F`}],children:[V(g,{style:[M.outcomeLabel,t&&{color:o}],children:e.label}),e.code?V(g,{style:[M.outcomeCode,t&&{color:o}],children:e.code}):null]})}function Vi({title:e,summary:t,open:r,onToggle:o,children:n}){return Te(c,{style:M.disclosure,children:[Te(N,{onPress:o,"sentry-label":"ignore override disclosure",testID:`buoy-network-disclosure-${e.toLowerCase().replace(/\s+/g,"-")}`,accessibilityRole:"button",accessibilityLabel:e,style:M.disclosureHeader,children:[r?V(Rc,{size:12,color:U.text.muted}):V(kc,{size:12,color:U.text.muted}),V(g,{style:M.disclosureTitle,children:e}),t&&!r?V(g,{style:M.disclosureSummary,numberOfLines:1,children:t}):null]}),r?V(c,{style:M.disclosureBody,children:n}):null]})}function Mt({label:e,active:t,onPress:r}){return V(N,{onPress:r,"sentry-label":"ignore override chip",testID:`buoy-network-chip-${e.toLowerCase().replace(/\s+/g,"-")}`,accessibilityRole:"button",accessibilityLabel:e,style:[M.chip,t&&M.chipActive],children:V(g,{style:[M.chipText,t&&M.chipTextActive],children:e})})}function Wc({draft:e,onChange:t,onSave:r,onCancel:o,saveLabel:n="Save",applySafeAreaInset:i=false}){let s=Ic({minBottom:16}),a=i?s.bottom:0,l=y=>t({...e,...y}),[u,b]=Nr(!e.urlPattern.trim()),[E,C]=Nr(false),[S,O]=Nr(null),[p,R]=Nr(null),I=jc(e),h=e.kind==="respond"&&typeof e.status=="number"&&!Wi.some(y=>y.code===String(e.status)),L=e.kind==="respond",z=e.methods?.[0],P=`${z??"Any"} ${e.urlPattern||"No URL yet"}`,T=Di(()=>{let y=(e.body??"").trim();if(!y)return"Empty";let A=y.split(`
143
+ `).length;return`${A} line${A===1?"":"s"}`},[e.body]),x=Di(()=>{let y=(e.body??"").trim();if(!y)return null;try{return JSON.parse(y)}catch{return null}},[e.body]),m=(e.body??"").trim().length>0&&!x,v=e.delayMs??0,d=v>0&&!$i.includes(v),f=!e.alternate&&typeof e.times=="number"&&e.times!==1;return Te(c,{style:M.root,children:[Te(dt,{testID:"buoy-network-editor-scroll",style:M.scroll,contentContainerStyle:M.scrollContent,keyboardShouldPersistTaps:"handled",children:[Te(Vi,{title:"Applies to",summary:P,open:u,onToggle:()=>b(y=>!y),children:[V(Pt,{style:M.input,value:e.urlPattern,onChangeText:y=>l({urlPattern:y}),testID:"buoy-network-override-pattern",accessibilityLabel:"Override URL pattern",placeholder:"https://api.example.com/v1/users*",placeholderTextColor:U.text.muted,autoCapitalize:"none",autoCorrect:false,multiline:true,"sentry-label":"ignore override url pattern"}),Te(c,{style:M.chipRow,children:[V(Mt,{label:"Any",active:!z,onPress:()=>l({methods:void 0})}),Fc.map(y=>V(Mt,{label:y,active:z===y,onPress:()=>l({methods:[y]})},y))]})]}),Te(c,{style:M.outcomeGrid,children:[Wi.map(y=>V($c,{outcome:y,active:I===y.id,onPress:()=>l(y.patch)},y.id)),V(N,{onPress:()=>R("status"),"sentry-label":"ignore custom status",accessibilityLabel:"Custom status code",style:[M.customField,h&&M.customFieldActive],children:V(g,{style:[M.customValue,h&&M.customInputActive],children:h?String(e.status):"Custom"})})]}),L?V(Vi,{title:"Response body",summary:T,open:E,onToggle:()=>C(y=>!y),children:S!==null?Te(ji,{children:[V(Pt,{style:[M.input,M.bodyInput],value:S,onChangeText:O,placeholder:"Paste a new body\u2026",placeholderTextColor:U.text.muted,autoCapitalize:"none",autoCorrect:false,autoFocus:true,multiline:true,"sentry-label":"ignore override body paste"}),Te(c,{style:M.inlineActions,children:[V(N,{onPress:()=>O(null),"sentry-label":"ignore cancel body paste",style:M.textButton,children:V(g,{style:M.textButtonMuted,children:"Cancel"})}),V(N,{onPress:()=>{let y=S.trim();try{l({body:JSON.stringify(JSON.parse(y),null,2)})}catch{l({body:y})}O(null)},disabled:!S.trim(),"sentry-label":"ignore apply body paste",style:M.textButton,children:V(g,{style:[M.textButtonLabel,!S.trim()&&M.textButtonDisabled],children:"Replace"})})]})]}):Te(ji,{children:[x!==null?V(Ai.Provider,{value:{root:x,onChange:y=>l({body:JSON.stringify(y,null,2)})},children:V(Bo,{editable:true,label:"",value:x,defaultExpanded:[""]})}):V(g,{style:M.emptyBody,children:m?"This body isn't JSON, so there's no tree to show.":"No body yet."}),V(N,{onPress:()=>O(""),"sentry-label":"ignore edit all body",style:M.textButton,children:V(g,{style:M.textButtonLabel,children:"Edit all"})})]})}):null,Te(c,{style:M.field,children:[V(g,{style:M.subLabel,children:"Delay"}),Te(c,{style:M.chipRow,children:[$i.map(y=>V(Mt,{label:y===0?"None":`${y/1e3}s`,active:v===y,onPress:()=>l({delayMs:y})},y)),V(N,{onPress:()=>R("delay"),"sentry-label":"ignore custom delay",accessibilityLabel:"Custom delay in seconds",style:[M.customField,d&&M.customFieldActive],children:V(g,{style:[M.customValue,d&&M.customInputActive],children:d?`${v/1e3}s`:"Custom"})})]})]}),Te(c,{style:M.field,children:[V(g,{style:M.subLabel,children:"Fires"}),V(g,{style:M.subHint,children:"A limited rule switches itself off once it's used up. Every other alternates forever \u2014 the first request through, the next overridden."}),Te(c,{style:M.chipRow,children:[V(Mt,{label:"Always",active:!e.alternate&&e.times==null,onPress:()=>l({alternate:false,times:null})}),V(Mt,{label:"Once",active:!e.alternate&&e.times===1,onPress:()=>l({alternate:false,times:1})}),V(Mt,{label:"Every other",active:e.alternate===true,onPress:()=>l({alternate:true,times:null})}),V(N,{onPress:()=>{l({alternate:false}),R("times")},"sentry-label":"ignore custom times",accessibilityLabel:"Custom number of times",style:[M.customField,f&&M.customFieldActive],children:V(g,{style:[M.customValue,f&&M.customInputActive],children:f?`${e.times}\xD7`:"Custom"})})]})]})]}),p==="status"?V(Do,{title:"Custom status code",hint:`${Ut}\u2013${_t}`,value:h?e.status:void 0,min:Ut,max:_t,onSubmit:y=>{l({kind:"respond",status:y??void 0,statusText:void 0}),R(null)},onCancel:()=>R(null)}):null,p==="delay"?V(Do,{title:"Custom delay",hint:"Seconds",value:d?v/1e3:void 0,min:0,onSubmit:y=>{l({delayMs:y!=null?Math.round(y*1e3):0}),R(null)},onCancel:()=>R(null)}):null,p==="times"?V(Do,{title:"Fires how many times",hint:"Leave empty for always",value:f?e.times:void 0,min:1,onSubmit:y=>{l({alternate:false,times:y&&y>0?y:null}),R(null)},onCancel:()=>R(null)}):null,Te(c,{style:[M.footer,{paddingBottom:12+a}],children:[V(N,{onPress:o,"sentry-label":"ignore cancel override",testID:"buoy-network-editor-cancel",accessibilityRole:"button",accessibilityLabel:"Cancel",style:[M.footerButton,M.cancelButton],children:V(g,{style:M.cancelText,children:"Cancel"})}),V(N,{onPress:r,disabled:!e.urlPattern.trim(),"sentry-label":"ignore save override",testID:"buoy-network-editor-save",accessibilityRole:"button",accessibilityLabel:n,style:[M.footerButton,M.saveButton,!e.urlPattern.trim()&&M.saveButtonDisabled],children:V(g,{style:M.saveText,children:n})})]})]})}var M=fe.create({root:{flex:1},scroll:{flex:1},scrollContent:{padding:12,paddingBottom:24,gap:4},field:{gap:8,paddingVertical:6},outcomeGrid:{flexDirection:"row",flexWrap:"wrap",gap:6,paddingVertical:10},outcome:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:10,paddingVertical:9,borderRadius:6,borderWidth:1,borderColor:U.border.default,backgroundColor:U.background.card},outcomeLabel:{fontSize:12,fontWeight:"600",color:U.text.primary},outcomeCode:{fontSize:10,fontWeight:"700",color:U.text.muted},disclosure:{borderRadius:6,borderWidth:1,borderColor:U.border.default,backgroundColor:U.background.card,overflow:"hidden"},disclosureHeader:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:10,paddingVertical:10},disclosureTitle:{fontSize:12,fontWeight:"600",color:U.text.primary},disclosureSummary:{flex:1,textAlign:"right",fontSize:11,color:U.text.muted},disclosureBody:{paddingHorizontal:10,paddingBottom:10,gap:8},input:{backgroundColor:U.background.input,borderWidth:1,borderColor:U.border.input,borderRadius:6,paddingHorizontal:10,paddingVertical:8,color:U.text.primary,fontSize:12,fontFamily:Ec,minHeight:40},bodyInput:{minHeight:140,textAlignVertical:"top"},chipRow:{flexDirection:"row",flexWrap:"wrap",gap:6},chip:{paddingHorizontal:10,paddingVertical:6,borderRadius:5,borderWidth:1,borderColor:U.border.default,backgroundColor:U.background.base},chipActive:{borderColor:U.semantic.info,backgroundColor:`${U.semantic.info}1F`},chipText:{fontSize:11,fontWeight:"600",color:U.text.secondary},chipTextActive:{color:U.semantic.info},customField:{flexDirection:"row",alignItems:"center",paddingHorizontal:8,borderRadius:5,borderWidth:1,borderColor:U.border.default,backgroundColor:U.background.base},customFieldActive:{borderColor:U.semantic.info,backgroundColor:`${U.semantic.info}1F`},customValue:{paddingVertical:6,fontSize:11,fontWeight:"600",color:U.text.secondary},customInputActive:{color:U.semantic.info},subHint:{fontSize:10,lineHeight:14,color:U.text.muted,marginTop:-2},subLabel:{fontSize:10,fontWeight:"700",letterSpacing:.6,color:U.text.muted,textTransform:"uppercase"},textButton:{alignSelf:"flex-start",paddingVertical:4},textButtonLabel:{fontSize:11,fontWeight:"600",color:U.semantic.info},textButtonMuted:{fontSize:11,fontWeight:"600",color:U.text.secondary},textButtonDisabled:{opacity:.4},inlineActions:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},emptyBody:{fontSize:11,color:U.text.muted,paddingVertical:6},footer:{flexDirection:"row",gap:8,padding:12,borderTopWidth:1,borderTopColor:U.border.default,backgroundColor:U.background.base},footerButton:{flex:1,paddingVertical:11,borderRadius:6,alignItems:"center",borderWidth:1},cancelButton:{borderColor:U.border.default,backgroundColor:U.background.card},cancelText:{fontSize:12,fontWeight:"600",color:U.text.secondary},saveButton:{borderColor:U.semantic.info,backgroundColor:`${U.semantic.info}22`},saveButtonDisabled:{opacity:.4},saveText:{fontSize:12,fontWeight:"700",color:U.semantic.info}});import{jsx as de,jsxs as Rt}from"react/jsx-runtime";function Vc(){return{enabled:true,urlPattern:"",kind:"respond",status:500,body:"",times:null}}function Uc(e){let{id:t,hits:r,seen:o,createdAt:n,...i}=e;return i}function _c(e){let t=e.urlPattern,r=t.indexOf("://");if(r===-1)return t;let o=t.indexOf("/",r+3);return o===-1?t.slice(r+3):t.slice(o)}function Xc(e){let t=[];return e.delayMs&&t.push(`${e.delayMs/1e3}s delay`),e.alternate?t.push("every other"):e.times===1?t.push("once"):typeof e.times=="number"&&t.push(`${e.times}\xD7`),t.join(" \xB7 ")}function Jc(e){if(e.kind==="fail")return Y.semantic.error;if(e.kind==="delay")return Y.semantic.info;let t=e.status??200;return t>=200&&t<300?Y.semantic.success:t>=300&&t<400?Y.semantic.info:Y.semantic.error}function Gc({rule:e,spent:t,onEdit:r,onDelete:o}){let n=e.enabled&&!t,i=Jc(e),s=Xc(e),a=e.methods?.length?e.methods.join("/"):"ANY";return Rt(bc,{onPress:r,style:ie.cardWrapper,contentStyle:[ie.card,{borderLeftColor:n?i:"transparent"}],children:[de(Sc,{method:a,size:"small"}),Rt(c,{style:ie.cardMiddle,children:[de(g,{style:[ie.urlText,!n&&ie.urlTextOff],numberOfLines:2,children:_c(e)}),s?de(g,{style:ie.extrasText,children:s}):null]}),e.hits>0?de(g,{style:ie.rowHits,children:e.hits}):null,e.kind==="fail"?Rt(c,{style:ie.failBadge,children:[de(mc,{size:10,color:Y.semantic.error}),de(g,{style:ie.failText,children:e.failKind==="timeout"?"TIMEOUT":"OFFLINE"})]}):de(g,{style:[ie.statusText,{color:i}],children:e.kind==="delay"?"PASS":String(e.status??200)}),de(N,{onPress:o,"sentry-label":"ignore delete override rule",testID:"buoy-network-rule-delete",accessibilityRole:"button",accessibilityLabel:"Delete rule",hitSlop:{top:8,bottom:8,left:4,right:4},style:ie.rowDelete,children:de(wc,{size:13,color:Y.text.muted})})]})}function Kc(e){return e.visible?de(Yc,{...e}):null}function Yc({isPro:e,onUpgradePress:t,pendingDraft:r,onPendingConsumed:o,backHandlerRef:n,applySafeAreaInset:i}){let s=Tc("network.overrideRules"),a=e?tt:s,{enabled:l,autoPaused:u,rules:b,activeCount:E,setEnabled:C,upsertRule:S,setRuleEnabled:O,removeRule:p,isRuleSpent:R}=Ar(),[I,h]=gc(null);Mr(()=>{_.noteHealthyLaunch()},[]),Mr(()=>{if(n)return n.current=I?()=>(h(null),true):null,()=>{n.current=null}},[n,I]);let L=fc(m=>{_.fetchRuleBody(m).then(v=>{v!=null&&h(d=>d?.id===m?{...d,draft:{...d.draft,body:v,bodyOmitted:void 0}}:d)})},[]);Mr(()=>{if(!r)return;let{id:m,...v}=r;h({id:m,draft:v}),m&&v.bodyOmitted&&L(m),o?.()},[r,o,L]),Mr(()=>{I?.id&&(b.some(m=>m.id===I.id)||h(null))},[I?.id,b]);let z=m=>{h({id:m.id,draft:Uc(m)}),m.bodyOmitted&&L(m.id)},P=m=>{b.filter(v=>v.enabled&&!R(v)).length<=a||b.filter(v=>v.enabled&&!R(v)&&v.id!==m).forEach(v=>O(v.id,false))},T=()=>{if(!I)return;let m={...I.draft,enabled:true,urlPattern:I.draft.urlPattern.trim()};if(!m.urlPattern)return;let v=S({...m,id:I.id});P(v?.id??I.id),C(true),h(null)};if(I)return de(Wc,{draft:I.draft,onChange:m=>h({...I,draft:m}),onSave:T,onCancel:()=>h(null),saveLabel:I.id?"Save":"Add",applySafeAreaInset:i});let x=b.length>0;return Rt(c,{style:ie.root,children:[x?Rt(c,{style:[ie.bar,l&&E>0&&ie.barOn],children:[l&&E>0?de(yc,{size:12,color:Y.semantic.warning}):null,de(g,{style:[ie.barText,l&&E>0&&ie.barTextOn],numberOfLines:2,children:u?"Overrides paused \u2014 they'd been on for 3 launches":l&&E>0?`${E} override${E===1?" is":"s are"} on`:"Overrides are off"}),de(N,{onPress:()=>C(!(l&&E>0)),"sentry-label":"ignore toggle overrides master",testID:"buoy-network-overrides-master",accessibilityRole:"button",style:ie.barButton,children:de(g,{style:ie.barButtonText,children:l&&E>0?"Turn all off":u?"Turn back on":"Turn on"})})]}):null,Rt(c,{style:ie.listHeader,children:[de(g,{style:ie.listHeaderText,children:x?`${b.length} rule${b.length===1?"":"s"}`:""}),de(N,{onPress:()=>h({draft:Vc()}),"sentry-label":"ignore new override rule",accessibilityLabel:"New override rule",style:ie.newButton,children:de(xc,{size:14,color:Y.semantic.info})})]}),x?Rt(dt,{style:ie.list,contentContainerStyle:ie.listContent,keyboardShouldPersistTaps:"handled",children:[b.map(m=>de(Gc,{rule:m,spent:R(m),onEdit:()=>z(m),onDelete:()=>p(m.id)},m.id)),a<tt?de(g,{style:ie.footNote,children:`Your plan: ${a} override at a time. Pro: up to ${tt}.`}):null]}):de(c,{style:ie.emptyWrap,children:de(vc,{otto:"empty",iconSize:32,title:"Nothing overridden",description:"Open any request and tap Override, or + to write a rule."})})]})}var ie=fe.create({root:{flex:1},bar:{flexDirection:"row",alignItems:"center",gap:8,paddingHorizontal:12,paddingVertical:10,borderBottomWidth:1,borderBottomColor:Y.border.default,backgroundColor:Y.background.card},barOn:{borderBottomColor:Y.semantic.warning+"44",backgroundColor:Y.semantic.warningBackground},barText:{flex:1,fontSize:12,fontWeight:"600",color:Y.text.secondary},barTextOn:{color:Y.semantic.warning},barButton:{paddingHorizontal:10,paddingVertical:6,borderRadius:5,borderWidth:1,borderColor:Y.border.hover,backgroundColor:Y.background.base},barButtonText:{fontSize:11,fontWeight:"700",color:Y.text.primary},listHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:12,paddingTop:10,paddingBottom:4},listHeaderText:{fontSize:10,fontWeight:"700",letterSpacing:.6,color:Y.text.muted,textTransform:"uppercase"},newButton:{padding:6,borderRadius:5,borderWidth:1,borderColor:Y.border.default,backgroundColor:Y.background.card},emptyWrap:{flex:1,justifyContent:"center"},list:{flex:1},listContent:{padding:10,gap:6},cardWrapper:{marginHorizontal:0,marginVertical:0},card:{flexDirection:"row",alignItems:"center",gap:8,borderLeftWidth:3,borderLeftColor:"transparent"},cardMiddle:{flex:1},urlText:{fontSize:12,color:Y.text.primary,lineHeight:16,fontFamily:Cc},urlTextOff:{color:Y.text.muted},extrasText:{fontSize:10,color:Y.text.secondary,marginTop:2},statusText:{fontSize:11,fontWeight:"600"},failBadge:{flexDirection:"row",alignItems:"center",gap:2,paddingHorizontal:4,paddingVertical:1,backgroundColor:Y.semantic.error+"26",borderRadius:3},failText:{fontSize:10,color:Y.semantic.error,fontWeight:"600"},rowHits:{fontSize:11,fontWeight:"700",color:Y.semantic.warning},rowDelete:{padding:5,borderRadius:5,borderWidth:1,borderColor:Y.border.default,backgroundColor:Y.background.base},footNote:{fontSize:10,lineHeight:14,color:Y.text.muted,paddingHorizontal:4,paddingTop:8}});D();ce();import{FlaskConical as Zc,night as kt}from"@buoy-gg/shared-ui/web";import{jsx as zo,jsxs as Qc}from"react/jsx-runtime";function eh({onPress:e}){let{activeCount:t}=Ar(),r=t>0;return Qc(N,{onPress:e,"sentry-label":"ignore open overrides",testID:"buoy-network-overrides",accessibilityRole:"button",style:[Ur.button,r&&Ur.buttonActive],accessibilityLabel:r?`Response overrides \u2014 ${t} active`:"Response overrides",children:[zo(Zc,{size:14,color:r?kt.color.warning:kt.color.textSecondary}),r?zo(c,{style:Ur.badge,children:zo(g,{style:Ur.badgeText,children:t})}):null]})}var Ur=fe.create({button:{width:32,height:32,borderRadius:8,alignItems:"center",justifyContent:"center",backgroundColor:kt.color.buttonSurface,borderWidth:1,borderColor:kt.color.border},buttonActive:{backgroundColor:kt.color.warningSoft,borderColor:kt.color.warning+"77"},badge:{position:"absolute",top:1,right:1,minWidth:12,height:12,borderRadius:6,paddingHorizontal:3,alignItems:"center",justifyContent:"center",backgroundColor:kt.color.warning},badgeText:{fontSize:8,fontWeight:"800",color:"#000000"}});D();ce();import{night as Nt}from"@buoy-gg/shared-ui/web";D();function th(e){let t=e.indexOf("?");return t===-1?e:`${e.slice(0,t)}*`}function rh(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return""}}function Ao(e){return{enabled:true,name:void 0,urlPattern:th(e.url),methods:[String(e.method||"GET").toUpperCase()],kind:"respond",status:e.status&&e.status>=200?e.status:200,statusText:e.statusText,body:rh(e.responseData),times:null}}import{jsx as Ui}from"react/jsx-runtime";function oh({onOpen:e}){let t=Ro(),{rules:r,isRuleSpent:o}=Ar(),n=t?K.getEvents().find(a=>a.id===t)??se.getEventById(t):null,i=n?r.find(a=>a.enabled&&!o(a)&&lo(a,n.url,String(n.method||"GET")))??null:null,s=i!==null;return Ui(N,{onPress:()=>{if(n){if(i){let{id:a,hits:l,seen:u,createdAt:b,...E}=i;e(E,a);return}e(Ao(n))}},"sentry-label":"ignore open overrides",testID:"buoy-network-override-request",accessibilityRole:"button",accessibilityLabel:s?"Edit the override on this request":"Override this request",style:[_r.button,s&&_r.buttonActive],children:Ui(g,{style:[_r.label,s&&_r.labelActive],children:"Override"})})}var _r=fe.create({button:{paddingHorizontal:10,paddingVertical:6,borderRadius:8,borderWidth:1,borderColor:Nt.color.border,backgroundColor:Nt.color.buttonSurface},buttonActive:{borderColor:Nt.color.warning+"77",backgroundColor:Nt.color.warningSoft},label:{fontSize:11,fontWeight:"700",color:Nt.color.accent},labelActive:{color:Nt.color.warning}});D();ce();import{absoluteFill as _i,night as at}from"@buoy-gg/shared-ui/web";import{jsx as Ze,jsxs as Xr}from"react/jsx-runtime";function nh({onPress:e,isOpen:t,hasIndicator:r}){return Xr(N,{onPress:e,"sentry-label":"ignore toggle header menu",testID:"buoy-network-menu",accessibilityRole:"button",accessibilityLabel:t?"Close menu":"More actions",style:[xe.button,t&&xe.buttonOpen],children:[Xr(c,{style:xe.dots,children:[Ze(c,{style:[xe.dot,t&&xe.dotOpen]}),Ze(c,{style:[xe.dot,t&&xe.dotOpen]}),Ze(c,{style:[xe.dot,t&&xe.dotOpen]})]}),r?Ze(c,{style:xe.indicator}):null]})}function ih({onClose:e,children:t}){return Xr(c,{style:xe.overlay,children:[Ze(N,{style:xe.backdrop,activeOpacity:1,onPress:e,"sentry-label":"ignore dismiss header menu"}),Ze(c,{style:xe.panel,children:t})]})}function Ho({icon:e,label:t,detail:r,testID:o,onPress:n}){return Xr(N,{onPress:n,"sentry-label":"ignore header menu item",testID:o,accessibilityRole:"button",accessibilityLabel:t,style:xe.item,children:[Ze(c,{style:xe.itemIcon,children:e}),Ze(g,{style:xe.itemLabel,children:t}),r?Ze(g,{style:xe.itemDetail,children:r}):null]})}var xe=fe.create({button:{width:32,height:32,borderRadius:8,alignItems:"center",justifyContent:"center"},buttonOpen:{backgroundColor:at.color.surfaceElevated},dots:{flexDirection:"column",gap:2.5,alignItems:"center"},dot:{width:3,height:3,borderRadius:2,backgroundColor:at.color.textSecondary},dotOpen:{backgroundColor:at.color.text},indicator:{position:"absolute",top:6,right:8,width:6,height:6,borderRadius:3,backgroundColor:at.color.accent},overlay:{..._i,zIndex:50},backdrop:{..._i,backgroundColor:"rgba(0,0,0,0.5)"},panel:{position:"absolute",top:6,right:8,minWidth:196,paddingVertical:4,borderRadius:10,borderWidth:1,borderColor:at.color.border,backgroundColor:at.color.surface},item:{flexDirection:"row",alignItems:"center",gap:10,paddingHorizontal:12,paddingVertical:11},itemIcon:{width:16,alignItems:"center"},itemLabel:{flex:1,fontSize:13,fontWeight:"600",color:at.color.text},itemDetail:{fontSize:11,color:at.color.textTertiary}});D();import{memo as sh,useEffect as ah,useMemo as lh}from"react";import{EventStepperFooter as dh,useLimit as uh}from"@buoy-gg/shared-ui/web";import{jsx as ch}from"react/jsx-runtime";var hh=()=>Ve.step(-1),ph=()=>Ve.step(1),fh=sh(function({paused:e,filter:t,ignoredPatterns:r,isPro:o,fromSaved:n,savedSearch:i,applySafeAreaInset:s}){let{visibleEvents:a}=sr({filter:t,ignoredPatterns:r,paused:e,isPro:o}),{pinnedEvents:l,pinnedLiveIds:u,savedRecords:b}=Ot(),E=uh("network.saved"),C=lh(()=>{if(n)return Bi(b,E,i).events;let{pinned:p,rest:R}=Eo(a,l,u);return p.length===0?R:[...p,...R]},[n,b,i,o,a,l,u]);ah(()=>{Ve.setIds(eu(C))},[C]);let{index:S,total:O}=ou();return S<0?null:ch(dh,{currentIndex:S,totalItems:O,itemLabel:"Request",applySafeAreaInset:s,onPrevious:hh,onNext:ph,variant:"night"})});D();import{useEffect as gh,useState as mh}from"react";function yh(e){return K.getEvents().find(t=>t.id===e)??se.getEventById(e)}function Xi(e,t={}){let{paused:r=false}=t,[o,n]=mh(null);return gh(()=>{if(!(!e||r))return K.subscribeToEvents(i=>{let s=i.find(a=>a.id===e);s&&n(a=>a&&a.id===e&&a.event===s?a:{id:e,event:s})})},[e,r]),e?o&&o.id===e?o.event:yh(e):null}import{Fragment as bh,jsx as j,jsxs as Me}from"react/jsx-runtime";function vh({visible:e,paused:t,ignoredPatternValues:r,onTogglePattern:o,isPro:n,filter:i,ignoredPatterns:s,fromSaved:a,savedSearch:l,applySafeAreaInset:u}){let b=Ro(),E=ru(),C=b!=null&&b===E,S=Xi(b,{paused:t||!e});return mt(()=>{e&&S&&C&&Ve.reportRendered(S.id)},[e,S,C]),e?Me(c,{style:It.detailRoot,children:[S?j(ri,{event:S,ignoredPatterns:r,onTogglePattern:o,showBodies:C}):j(c,{style:It.detailBodyFallback}),j(fh,{paused:t,filter:i,ignoredPatterns:s,isPro:n,fromSaved:a,savedSearch:l,applySafeAreaInset:u})]}):null}function Sh({visible:e,paused:t,isPro:r,filter:o,onFilterChange:n,ignoredPatterns:i,onRemovePattern:s,onAddPattern:a,onTogglePatternMode:l}){let{events:u}=sr({filter:o,ignoredPatterns:i,paused:t,visible:e,isPro:r});return e?j(Nl,{events:u,filter:o,onFilterChange:n,ignoredPatterns:i,onRemovePattern:s,onAddPattern:a,onTogglePatternMode:l}):null}function xh({visible:e,paused:t,isPro:r,filter:o,ignoredPatterns:n,settings:i,onSettingsChange:s}){let{events:a}=sr({filter:o,ignoredPatterns:n,paused:t,visible:e,isPro:r});return e?j(Id,{settings:i,onSettingsChange:s,events:a}):null}function Ji({visible:e,onClose:t,onBack:r,onMinimize:o,enableSharedModalDimensions:n=false,inline:i=false,paused:s,onPausedChange:a,remoteConditions:l}){let{isPro:u}=wl(),[b,E]=me(false),C=s!=null&&a!=null,S=C?s:b,O=Z=>{let De=typeof Z=="function"?Z(S):Z;C?a(De):E(De)},[p,R]=me({}),I=tu(),[h,L]=me(false),[z,P]=me(false),[T,x]=me(false),[m,v]=me(false),[d,f]=me(0),[y]=me(cl);mt(()=>{y.update(l)},[y,l]),mt(()=>()=>y.update(void 0),[y]);let A=true,[ae,te]=me(null),[Q,G]=me("filters"),[H,W]=me(""),[F,oe]=me(false),pe=wr(false),[et,lt]=me(""),ns=wr(null),{patterns:Et,values:is,add:ss,remove:as,toggle:ls,toggleMode:ds}=Rl(),[jt,_o]=me(wd),Zr=wr(false),[Qr,eo]=me(false),[Lt,us]=me("export"),$t=Z=>{us(Z),eo(true)};mt(()=>{Qr&&u&&eo(false)},[Qr,u]),mt(()=>{if(!e||Zr.current)return;(async()=>{try{let Z=await Fn.getItem(Tr.network.copyOptions());if(Z){let De=JSON.parse(Z);_o(De)}}catch{}finally{Zr.current=true}})()},[e]),mt(()=>{if(!Zr.current)return;(async()=>{try{await Fn.setItem(Tr.network.copyOptions(),JSON.stringify(jt))}catch{}})()},[jt]);let cs=()=>{Ve.clear()},Xo=go(Z=>{Ve.select(Z.id)},[]),hs=go((Z,De)=>{te(De?{...Z,id:De}:Z),x(true),Ve.clear()},[]),ps=go(()=>te(null),[]),Jo=wr(null),Go=Z=>{W(Z),R(De=>({...De,searchText:Z}))},fs=Z=>{R(De=>({...De,status:De.status===Z?void 0:Z}))},[Ko,gs]=me("bottomSheet"),ms=Z=>{gs(Z)};mt(()=>{F&&requestAnimationFrame(()=>{ns.current?.focus()})},[F]);let Yo=()=>h?Me(ge,{children:[j(ge.Navigation,{onBack:()=>L(false)}),j(ge.Content,{title:"",noMargin:true,children:j(xl,{size:"sm",tabs:[{key:"filters",label:"Filters"},{key:"copy",label:"Copy"}],activeKey:Q,onChange:Z=>G(Z)})})]}):I?Me(ge,{children:[j(ge.Navigation,{onBack:cs}),j(ge.Content,{title:"Request Details",centered:true}),Me(ge.Actions,{children:[A?j(oh,{onOpen:hs}):null,j(ki,{isPro:u,onUpgradePress:()=>$t("saved")})]})]}):T&&A?Me(ge,{children:[j(ge.Navigation,{onBack:()=>{Jo.current?.()||(x(false),te(null))}}),j(ge.Content,{title:"Response Overrides",centered:true})]}):z?Me(ge,{children:[j(ge.Navigation,{onBack:()=>P(false)}),j(ge.Content,{title:"Saved Requests",centered:true})]}):Me(ge,{children:[r&&j(ge.Navigation,{onBack:r}),j(ge.Content,{title:"",children:F?j(ge.Search,{value:H,onChangeText:Go,onCancel:()=>{Go(""),oe(false)},onDismiss:()=>oe(false),dismissOnBlur:true,clearOnlyWhenText:true,placeholder:"Search URL, method, operation, error...",accessibilityLabel:"Search network requests",iconSize:14,testID:"buoy-network-search-input",clearTestID:"buoy-network-search-clear",inputProps:{"sentry-label":"ignore network search header"}}):j(uu,{activeStatus:p.status,onToggleStatus:fs,ignoredPatterns:Et,paused:S})}),Me(ge.Actions,{children:[j(N,{"sentry-label":"ignore open search",testID:"buoy-network-search-open",accessibilityLabel:"Open search",accessibilityRole:"button",onPress:()=>oe(true),style:It.headerActionButton,children:j(gl,{size:14,color:Ke.color.textSecondary})}),A?j(eh,{onPress:()=>x(true)}):null,j(Cl,{isEnabled:!S,onToggle:()=>O(Z=>!Z),accessibilityLabel:S?"Resume network capture":"Pause network capture",testID:"buoy-network-power"}),j(cu,{paused:S}),j(nh,{onPress:()=>v(Z=>!Z),isOpen:m,hasIndicator:to})]})]}),to=!!(p.status||p.method||p.contentType),ys=n?Tr.modal.root():Tr.network.modal();if(!e)return null;let bs=I||!h,Zo=Me(bh,{children:[Me(c,{style:It.container,children:[j(vh,{visible:I,paused:S,ignoredPatternValues:is,onTogglePattern:ls,isPro:u,filter:p,ignoredPatterns:Et,fromSaved:z,savedSearch:et,applySafeAreaInset:!i&&Ko==="bottomSheet"}),j(Sh,{visible:h&&Q==="filters"&&!I,paused:S,isPro:u,filter:p,onFilterChange:R,ignoredPatterns:Et,onRemovePattern:as,onAddPattern:ss,onTogglePatternMode:ds}),j(xh,{visible:h&&Q==="copy"&&!I,paused:S,isPro:u,filter:p,ignoredPatterns:Et,settings:jt,onSettingsChange:_o}),j(Kc,{visible:A&&T&&!I&&!h,isPro:u,onUpgradePress:()=>$t("overrides"),pendingDraft:ae,onPendingConsumed:ps,backHandlerRef:Jo,applySafeAreaInset:!i&&Ko==="bottomSheet"}),j(Oi,{visible:z&&!I&&!h&&!(T&&A),isPro:u,copySettings:jt,search:et,onSearchChange:lt,onEventPress:Xo,onUpgradePress:()=>$t("saved")}),j(oc,{visible:!I&&!h&&!z&&!(T&&A),paused:S,filter:p,ignoredPatterns:Et,isPro:u,searchText:H,onEventPress:Xo,onUpgradePress:()=>$t("export")})]}),m?Me(ih,{onClose:()=>v(false),children:[j(Ho,{icon:j(ml,{size:14,color:Ke.color.textSecondary}),label:"Network throttling",testID:"buoy-network-menu-throttling",onPress:()=>{v(false),fl(l?y:void 0),i||f(Z=>Z+1)}}),j(Ho,{icon:j(yl,{size:14,color:to?Ke.color.accent:Ke.color.textSecondary}),label:"Filters",detail:to?"Active":void 0,onPress:()=>{v(false),G("filters"),L(true)}}),j(Ho,{icon:j(bl,{size:14,color:Ke.color.textSecondary}),label:"Saved requests",onPress:()=>{v(false),P(true)}}),j(c,{style:It.menuCopyRow,children:j(pu,{isPro:u,filter:p,ignoredPatterns:Et,copySettings:jt,paused:S,onUpgradePress:()=>{v(false),$t("export")},label:"Copy requests"})})]}):null,j(Tl,{visible:Qr,onClose:()=>eo(false),featureName:Lt==="saved"?"Saved Requests":Lt==="overrides"?"Response Overrides":"Network Export",description:Lt==="saved"?"Keep the requests that matter. Saved requests survive Clear, app restarts, and the 500-request history cap.":Lt==="overrides"?"Force any endpoint to fail, stall or return something else \u2014 no backend changes, no code changes. Free keeps one active rule.":"Export network requests to share with your team, debug APIs, or feed into AI tools.",benefits:Lt==="overrides"?[`Run ${tt} rules at once (free keeps ${wn})`,"Force a 500, a 401 or an empty list in one tap","Simulate offline, timeouts and slow connections","Rules survive an app reload, so you can test the boot path"]:Lt==="saved"?[`Save up to ${nt} requests (free keeps ${fi})`,"Failed requests stay put through a Clear","Snapshots survive an app restart","Export saved requests to teammates or AI assistants"]:["Export to JSON, Markdown, or plain text","Customizable copy presets (URLs only, LLM-ready, full data)","Share request details with teammates","Feed network data directly to AI assistants"]})]});return i?Me(c,{style:It.inlineRoot,children:[j(c,{style:It.inlineHeader,...kl,children:Yo()}),Zo]}):j(vl,{visible:e,onClose:t,onMinimize:o,minimizeRequest:d,persistenceKey:ys,variant:"night",header:{showToggleButton:true,customContent:Yo()},onModeChange:ms,enablePersistence:true,initialMode:"bottomSheet",enableGlitchEffects:true,disableScrollWrapper:bs,styles:{},children:Zo})}var It=fe.create({container:{flex:1,backgroundColor:"transparent"},detailRoot:{flex:1,minHeight:0},detailBodyFallback:{flex:1},inlineRoot:{flex:1,minHeight:0,backgroundColor:"transparent"},inlineHeader:{paddingHorizontal:12,paddingVertical:8,borderBottomWidth:1,borderBottomColor:Sl.border.default,backgroundColor:"transparent"},menuCopyRow:{paddingHorizontal:6},headerActionButton:{width:32,height:32,borderRadius:8,backgroundColor:Ke.color.buttonSurface,borderWidth:1,borderColor:Ke.color.border,alignItems:"center",justifyContent:"center"},activeFilterButton:{backgroundColor:Ke.color.accentSoft,borderColor:Ke.color.accentBorderStrong}});function Gi(e){return j(bo,{children:j(Ji,{...e})})}function wh(e={}){return j(bo,{children:j(Ji,{...e,inline:true,visible:true,onClose:Th})})}var Th=()=>{};import{jsx as Ch}from"react/jsx-runtime";var Ki=typeof navigator<"u"&&navigator.product==="ReactNative";Ki&&_.ensureLoaded();Ki&&typeof Ce<"u"&&Ce&&K.startBootCapture();var Yi=sl({id:"network",name:"NET",description:"Network request logger",slot:"both",icon:({size:e})=>Ch(nl,{size:e}),component:Gi,props:{enableSharedModalDimensions:false}}),Rh=il(Yi,e=>({enableSharedModalDimensions:e.enableSharedModalDimensions??false}));D();function kh(){if(!(typeof navigator<"u"&&navigator.product==="ReactNative")&&(typeof window>"u"||typeof document>"u"))return()=>{};_.ensureLoaded();let e=K.subscribeToEvents(()=>{}),t=false;return()=>{t||(t=true,e())}}D();import{useState as Mo,useEffect as Ih,useCallback as Jr,useMemo as Qe,useRef as Eh}from"react";import{useLimit as Lh,TIER_LIMITS as Ph}from"@buoy-gg/shared-ui/web";var Ff=Ph["network.requests"].free;function qh(e={}){let{isPro:t=false}=e,r=Lh("network.requests"),o=t?1/0:r,[n,i]=Mo([]),[s,a]=Mo({}),[l,u]=Mo(true),b=Eh(null);Ih(()=>(l&&(b.current=K.subscribeToEvents(i)),()=>{b.current&&(b.current(),b.current=null)}),[l]);let E=Jr(()=>{K.clearEvents(),i([])},[]),C=Jr(()=>{u(false)},[]),S=Jr(()=>{u(true)},[]),O=Qe(()=>s.searchText?s.searchText.toLowerCase():null,[s.searchText]),p=Qe(()=>s.method&&s.method.length>0?new Set(s.method):null,[s.method]),R=Qe(()=>s.contentType&&s.contentType.length>0?new Set(s.contentType):null,[s.contentType]),I=Qe(()=>{let d=[...n];if(p&&(d=d.filter(f=>p.has(f.method))),s.status&&s.status!=="all")switch(s.status){case"success":d=d.filter(f=>f.status&&f.status>=200&&f.status<300);break;case"error":d=d.filter(f=>f.error||f.status&&f.status>=400);break;case"pending":d=d.filter(f=>!f.status&&!f.error);break}return O&&(d=d.filter(f=>f.url.toLowerCase().includes(O)||f.method.toLowerCase().includes(O)||f.path?.toLowerCase().includes(O)||f.host?.toLowerCase().includes(O)||f.error&&f.error.toLowerCase().includes(O)||f.operationName&&f.operationName.toLowerCase().includes(O)||Qn(f.graphqlVariables,O))),s.host&&(d=d.filter(f=>f.host===s.host)),R&&(d=d.filter(f=>{let y=f.responseHeaders||f.requestHeaders,A=y?.["content-type"]||y?.["Content-Type"]||"";for(let ae of R)switch(ae){case"JSON":if(A.includes("json"))return true;break;case"XML":if(A.includes("xml"))return true;break;case"HTML":if(A.includes("html"))return true;break;case"TEXT":if(A.includes("text"))return true;break;case"IMAGE":if(A.includes("image"))return true;break;case"VIDEO":if(A.includes("video"))return true;break;case"AUDIO":if(A.includes("audio"))return true;break;case"FORM":if(A.includes("form"))return true;break;case"OTHER":if(!A||!A.includes("json")&&!A.includes("xml")&&!A.includes("html")&&!A.includes("text")&&!A.includes("image")&&!A.includes("video")&&!A.includes("audio")&&!A.includes("form"))return true;break}return false})),d},[n,s,O,p,R]),h=Qe(()=>{let d=new Set;return n.slice(o).forEach(f=>{d.add(f.id)}),d},[n,o]),L=Qe(()=>I.filter(d=>h.has(d.id)),[I,h]),z=L.length>0,P=L.length,T=Jr(d=>h.has(d),[h]),x=Qe(()=>{let d=0,f=0,y=0,A=0,ae=0,te=0,Q=0;for(let H of n)H.status&&H.status>=200&&H.status<300?d++:H.error||H.status&&H.status>=400?f++:!H.status&&!H.error&&y++,A+=H.requestSize||0,ae+=H.responseSize||0,H.duration&&(te+=H.duration,Q++);let G=Q>0?te/Q:0;return{totalRequests:n.length,successfulRequests:d,failedRequests:f,pendingRequests:y,totalDataSent:A,totalDataReceived:ae,averageDuration:Math.round(G)}},[n]),m=Qe(()=>{let d=new Set;for(let f of n)f.host&&d.add(f.host);return Array.from(d)},[n]),v=Qe(()=>{let d=new Set;for(let f of n)d.add(f.method);return Array.from(d)},[n]);return{events:I,allEvents:n,stats:x,filter:s,setFilter:a,clearEvents:E,isCapturing:l,pauseCapturing:C,resumeCapturing:S,hosts:m,methods:v,hasLockedEvents:z,lockedEventCount:P,isEventLocked:T,requestLimit:o,getSubscriberCounts:()=>K.getSubscriberCounts()}}import{useIgnoredPatterns as Bh,ignoredPatternsStore as Oh,urlMatchesIgnoredPattern as Dh,isUrlIgnored as zh}from"@buoy-gg/shared-ui/web";D();import{approxJsonSize as No,isOverWireBudget as Ah}from"@buoy-gg/shared-ui/web";import{expandKeyedArrays as Hh,patchFromPath as Mh,refusalText as Nh,shapeKind as Zi,suggestedPatch as Fh,typedEditViolations as jh}from"@buoy-gg/shared-ui/web";var Fo=16*1024,Gr=1.25*1024*1024;function jo(e,t){return e===void 0?false:(t??0)>Fo?true:Ah(e,Fo)}var Qi=new WeakMap,es=new WeakMap;function $o(e){let t=Qi.get(e);if(t)return t;let r;try{r=Wh(e)}catch{r=$h(e)}return Qi.set(e,r),r}function $h(e){let t={...e,requestData:void 0,responseData:void 0,graphqlVariables:void 0,requestBodyOmitted:e.requestData!==void 0?true:void 0,responseBodyOmitted:e.responseData!==void 0?true:void 0},r=1024;try{r=No(t,Gr).bytes}catch{}return{event:t,bytes:r}}function Wh(e){let t=jo(e.requestData,e.requestSize),r=jo(e.responseData,e.responseSize),o=ts(e.graphqlVariables),n=rs(e.requestHeaders),i=rs(e.responseHeaders),s=t||r||o!==e.graphqlVariables||n!==e.requestHeaders||i!==e.responseHeaders,a=e;return s&&(a={...e},t&&(a.requestData=void 0,a.requestBodyOmitted=true),r&&(a.responseData=void 0,a.responseBodyOmitted=true),o!==e.graphqlVariables&&(a.graphqlVariables=o),n!==e.requestHeaders&&(a.requestHeaders=n,a.headersOmitted=true),i!==e.responseHeaders&&(a.responseHeaders=i,a.headersOmitted=true)),{event:a,bytes:No(a,Gr).bytes}}function Vh(e){let t=es.get(e);if(t)return t;let{event:r}=$o(e),o={...r};o.requestData!==void 0&&(o.requestData=void 0,o.requestBodyOmitted=true),o.responseData!==void 0&&(o.responseData=void 0,o.responseBodyOmitted=true),o.graphqlVariables!==void 0&&(o.graphqlVariables=ts(o.graphqlVariables,true));let n={event:o,bytes:No(o,Gr).bytes};return es.set(e,n),n}function Uh(e){let t=new Array(e.length),r=0;for(let o=0;o<e.length;o++){let n=$o(e[o]);if(r+n.bytes<=Gr)t[o]=n.event,r+=n.bytes;else{let i=Vh(e[o]);t[o]=i.event,r+=i.bytes}}return t}function ts(e,t=false){if(!e||!t&&!jo(e,void 0))return e;let r={};for(let[o,n]of Object.entries(e))(typeof n=="string"&&n.length<=64||typeof n=="number"||typeof n=="boolean")&&(r[o]=n);return Object.keys(r).length>0?r:void 0}var Wo=64;function rs(e){if(!e)return e;let t=false,r={};for(let[o,n]of Object.entries(e))typeof n=="string"&&(n.length<=Wo?r[o]=n:(r[o]=`${n.slice(0,Wo)}\u2026 [${n.length-Wo} more]`,t=true));return t?r:e}var _h=e=>{let t=false,r=e.rules.map(o=>!o.body||o.body.length<=Fo?o:(t=true,{...o,body:void 0,bodyOmitted:true}));return t?{...e,rules:r}:e},Kr=e=>K.getEventById(e)??se.getEventById(e),Ft=e=>e&&typeof e=="object"?e.id:void 0,Yr=(e,t)=>!!(e&&typeof e=="object"&&e[t]),Vo=()=>Rn()?{}:{active:false,inactiveReason:Fa},Xh=["respond","fail","delay"];function Jh(e,t){if(!e||typeof e!="object")return null;let r=e.rule??e;if(!r||typeof r!="object")return null;let o=r,n=typeof o.urlPattern=="string"&&o.urlPattern.trim()?o.urlPattern.trim():t?.urlPattern??"";if(!n)return null;let i=Xh.includes(o.kind)?o.kind:t?.kind??"respond";return{id:typeof o.id=="string"?o.id:void 0,enabled:o.enabled!==false,name:typeof o.name=="string"?o.name:t?.name,urlPattern:n,methods:Array.isArray(o.methods)?o.methods.filter(s=>typeof s=="string").map(s=>s.toUpperCase()):t?.methods,requireHeader:typeof o.requireHeader=="string"&&o.requireHeader.trim()?o.requireHeader.trim():void 0,kind:i,status:typeof o.status=="number"?o.status:t?.status,statusText:typeof o.statusText=="string"?o.statusText:t?.statusText,headers:o.headers&&typeof o.headers=="object"?o.headers:t?.headers,body:Kh(o,t),failKind:o.failKind==="timeout"?"timeout":void 0,delayMs:typeof o.delayMs=="number"?o.delayMs:void 0,times:typeof o.times=="number"?o.times:null,alternate:o.alternate===true}}var dr=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function os(e,t,r="",o={shrunk:[],breaks:[]}){if(Array.isArray(e)&&Array.isArray(t))return t.length>0&&t.length<e.length&&o.shrunk.push({path:r||"(root)",have:e.length,sent:t.length}),t;if(!dr(e)||!dr(t))return t;let n={...e};for(let[i,s]of Object.entries(t)){let a=r?`${r}.${i}`:i;if(i in e){let l=Zi(e[i]),u=Zi(s);(l==="array"||l==="object")&&l!==u&&o.breaks.push({path:a,from:l,to:u}),n[i]=os(e[i],s,a,o)}else n[i]=s}return n}function Gh(e,t){if(e.body!=null||!dr(e.bodyPatch)||typeof t!="string")return[];try{return jh(JSON.parse(t),e.bodyPatch,{noun:"response body"})}catch{return[]}}function Kh(e,t){if(typeof e.body=="string")return e.body;if(e.body!=null)return JSON.stringify(e.body,null,2);let r=t?.body??(typeof e.id=="string"?_.getState().rules.find(o=>o.id===e.id)?.body:void 0);if(dr(e.bodyPatch)&&typeof r=="string")try{return JSON.stringify(os(JSON.parse(r),e.bodyPatch),null,2)}catch{return r}return r}function Yh(e){if(!e||typeof e!="object")return null;let t=e.rule??e;if(!t||typeof t!="object")return null;let r=t.id;if(typeof r!="string")return null;let o=_.getState().rules.find(n=>n.id===r);return o?{...o}:null}function Zh(e){if(!e||typeof e!="object")return null;let t=e.rule??e;if(!t||typeof t!="object")return null;let r=t;if(r.bodyOmitted!==true||typeof r.id!="string")return null;let o=_.getState().rules.find(n=>n.id===r.id);return o?{body:o.body}:null}function Qh(e){if(!e||typeof e!="object")return null;let t=e.fromRequestId;if(typeof t!="string"||!t)return null;let r=Kr(t);return r?Ao(r):null}var ep={dispose:()=>{_.setEnabled(false)},version:6,getSnapshot:()=>(K.ensureInterception(),{conditions:{version:1,runtimeId:ho,profile:gt(),available:ft()},events:Uh(K.getEvents()),overrides:_h(_.getState()),saved:se.getRecords().map(e=>({...e,event:$o(e.event).event}))}),subscribe:e=>{let t=K.subscribeToEvents(e),r=Kt(e),o=se.subscribe(e),n=_.subscribe(e);return()=>{r(),t(),o(),n()}},actions:{getNetworkConditions:()=>({runtimeId:ho,profile:gt(),available:ft()}),setNetworkConditions:e=>{let t=e&&typeof e=="object"?e.profile:void 0;return{runtimeId:ho,profile:Sr(t),available:ft()}},clearEvents:()=>{K.clearEvents()},getEventBody:e=>{let t=Ft(e);if(!t)return null;let r=Kr(t);return r?{url:r.url??null,method:r.method??null,status:r.status??null,override:r.override??null,requestData:r.requestData??null,responseData:r.responseData??null,requestHeaders:r.requestHeaders??null,responseHeaders:r.responseHeaders??null}:null},setPinned:e=>{let t=Ft(e);if(!t)return null;let r=Kr(t);if(!r)return null;let o=Yr(e,"pinned");return Pr(se.getState(),t).pinned===o?{ok:true}:se.togglePin(r)},setSaved:e=>{let t=Ft(e);if(!t)return null;let r=Kr(t);if(!r)return null;let o=Yr(e,"saved");return Pr(se.getState(),t).saved===o?{ok:true}:se.toggleSave(r)},removeSavedRecord:e=>{let t=e&&typeof e=="object"?e.key:void 0;return t?(se.remove(t),{ok:true}):null},clearSavedRequests:()=>(se.clearSaved(),{ok:true}),clearPinnedRequests:()=>(se.clearPinned(),{ok:true}),setOverridesEnabled:e=>(_.setEnabled(Yr(e,"enabled")),{ok:true,enabled:_.getState().enabled,...Vo()}),upsertOverrideRule:e=>{let t=Qh(e)??Zh(e)??Yh(e),r=e?.rule??e;if(r&&typeof r.bodyPath=="string"&&r.body==null){let i=t?.body??(typeof r.id=="string"?_.getState().rules.find(l=>l.id===r.id)?.body:void 0);if(typeof i!="string")return{ok:false,error:"bodyPath needs something to patch: send fromRequestId (the captured request whose real response it addresses) or the id of an existing rule."};if(r.bodyValue===void 0)return{ok:false,error:`Refused: sent \`bodyPath\` without \`bodyValue\`. Say what to set "${r.bodyPath}" to.`};let s;try{s=JSON.parse(i)}catch{return{ok:false,error:"The captured response body is not JSON, so it cannot be addressed by path. Send a whole `body` instead."}}let a=Mh(s,r.bodyPath,r.bodyValue);if(!a.ok)return{ok:false,error:`Refused: ${a.error}`};r.bodyPatch=a.patch,delete r.bodyPath,delete r.bodyValue}if(r&&dr(r.bodyPatch)&&r.body==null){let i=t?.body??(typeof r.id=="string"?_.getState().rules.find(s=>s.id===r.id)?.body:void 0);if(typeof i!="string")return{ok:false,error:"bodyPatch needs something to patch: send fromRequestId (the captured request whose real response the patch is merged into) or the id of an existing rule."};if(r.force!==true){let s;try{let l=Hh(JSON.parse(i),r.bodyPatch);s=l.error,l.notes.length&&(r.bodyPatch=l.patch)}catch{}if(s)return{ok:false,error:`Refused: ${s}`};let a=Gh(r,i);if(a.length>0)return{ok:false,error:Nh(a,"response body",Fh(r.bodyPatch,a)),violations:a}}}let o=Jh(e,t);if(!o){let i=e?.fromRequestId;return{ok:false,error:i?`No captured request \`${i}\` \u2014 it may have been cleared. Send a urlPattern instead.`:"A rule needs a non-empty urlPattern."}}let n=_.upsertRule(o);return n?(n.enabled&&_.setEnabled(true),{ok:true,rule:{id:n.id,urlPattern:n.urlPattern,enabled:n.enabled,kind:n.kind,status:n.status,times:n.times,bodySize:n.body?n.body.length:0},...n.times===void 0||n.times===null?{lingers:`This rule has no \`times\` budget, so it overrides EVERY matching request until it is disabled or deleted (id \`${n.id}\`). If you meant only the next one, set times:1.`}:{},...Vo()}):{ok:false,error:"Override rule limit reached."}},setOverrideRuleEnabled:e=>{let t=Ft(e);return t?(_.setRuleEnabled(t,Yr(e,"enabled")),{ok:true,...Vo()}):{ok:false,error:"Missing rule id."}},deleteOverrideRule:e=>{let t=Ft(e);return t?(_.removeRule(t),{ok:true}):{ok:false,error:"Missing rule id."}},clearOverrideRules:()=>(_.clearRules(),{ok:true}),listOverrideRules:()=>_.getState(),getOverrideRuleBody:e=>{let t=Ft(e);if(!t)return null;let r=_.getState().rules.find(o=>o.id===t);return r?{body:r.body??null}:null},getCaptureStatus:()=>{let e=K.getSubscriberCounts().total,t=null,r=null;try{t=Bn(),r=ht()}catch{}let o=null;try{o=rl()}catch{}return{capturing:e>0,subscribers:e,interceptorInstalled:t,interceptorLive:o,listenerCount:r,eventCount:K.getEvents().length}},debugOverrides:e=>{let t=(e&&typeof e=="object"?e.url:void 0)??"https://example.com/";return{interceptorInstalled:Bn(),listenerCount:ht(),engine:ja(t,"GET"),store:{enabled:_.getState().enabled,ruleCount:_.getState().rules.length,rulesVisibleToEngine:_.getRules().length}}}}};D();var tp=new Set(["content-length","host","connection","accept-encoding"]);function Uo(e){return`'${e.replace(/'/g,"'\\''")}'`}function rp(e){if(e==null)return null;if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return null}}function op(e){let t=(e.method||"GET").toUpperCase(),r=rp(e.requestData),o=[];t!=="GET"&&!(t==="POST"&&r!==null)&&o.push(`-X ${t}`);for(let[i,s]of Object.entries(e.requestHeaders||{}))tp.has(i.toLowerCase())||o.push(`-H ${Uo(`${i}: ${s}`)}`);r!==null&&o.push(`--data-raw ${Uo(r)}`);let n=`curl ${Uo(e.url)}`;return o.length===0?n:`${n} \\
145
144
  ${o.join(` \\
146
- `)}`}export{Fd as DEFAULT_SETTLE_MS,Oo as FREE_TIER_OVERRIDE_LIMIT,Yo as FREE_TIER_SAVED_LIMIT,Ue as MAX_OVERRIDE_RULES,mr as MAX_PINNED,_e as MAX_SAVED,jt as NETWORK_CONDITIONS,jl as NetworkBodyResolverProvider,tn as NetworkDetailPinActions,Xo as NetworkEventDetailView,xt as NetworkEventItemCompact,Yi as NetworkHeaderBadgesView,mn as NetworkModal,Zd as NetworkSavedButton,sn as NetworkSavedScreen,up as NetworkToolView,mt as OVERRIDE_STATUS_MAX,gt as OVERRIDE_STATUS_MIN,Ar as TickProvider,bt as addNetworkListener,mp as createNetworkTool,Tr as draftFromEvent,Kt as flagsForEventId,Xe as formatBytes,Jt as formatDuration,_o as formatHttpStatus,$p as generateCurl,Ye as getNetworkCondition,uv as ignoredPatternsStore,pv as isUrlIgnored,$ as networkEventStore,ur as networkListener,ee as networkSavedStore,De as networkSelectionStore,Fp as networkSyncAdapter,Ns as networkToolPreset,U as overrideRulesStore,wl as removeAllNetworkListeners,Xt as setNetworkCondition,vr as splitPinned,yp as startNetworkCapture,vt as subscribeNetworkConditions,cv as urlMatchesIgnoredPattern,dv as useIgnoredPatterns,fn as useLiveNetworkEvent,en as useNetworkBadgeCounts,Rt as useNetworkEventList,kp as useNetworkEvents,tt as useNetworkSaved,cr as useTickEveryMinute};
145
+ `)}`}export{Zd as DEFAULT_SETTLE_MS,wn as FREE_TIER_OVERRIDE_LIMIT,fi as FREE_TIER_SAVED_LIMIT,tt as MAX_OVERRIDE_RULES,Lr as MAX_PINNED,nt as MAX_SAVED,Gt as NETWORK_CONDITIONS,od as NetworkBodyResolverProvider,ki as NetworkDetailPinActions,ri as NetworkEventDetailView,zt as NetworkEventItemCompact,Ri as NetworkHeaderBadgesView,Gi as NetworkModal,hu as NetworkSavedButton,Oi as NetworkSavedScreen,wh as NetworkToolView,_t as OVERRIDE_STATUS_MAX,Ut as OVERRIDE_STATUS_MIN,bo as TickProvider,Jt as addNetworkListener,Rh as createNetworkTool,Ao as draftFromEvent,Pr as flagsForEventId,Ye as formatBytes,Ir as formatDuration,Yn as formatHttpStatus,op as generateCurl,gt as getNetworkCondition,Oh as ignoredPatternsStore,zh as isUrlIgnored,K as networkEventStore,yr as networkListener,se as networkSavedStore,Ve as networkSelectionStore,ep as networkSyncAdapter,Yi as networkToolPreset,_ as overrideRulesStore,tl as removeAllNetworkListeners,Sr as setNetworkCondition,Eo as splitPinned,kh as startNetworkCapture,Kt as subscribeNetworkConditions,Dh as urlMatchesIgnoredPattern,Bh as useIgnoredPatterns,Xi as useLiveNetworkEvent,wi as useNetworkBadgeCounts,sr as useNetworkEventList,qh as useNetworkEvents,Ot as useNetworkSaved,vo as useTickEveryMinute};