@buoy-gg/network 7.0.79 → 7.0.80

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 (91) hide show
  1. package/README.md +8 -0
  2. package/lib/commonjs/index.js +1 -1
  3. package/lib/commonjs/index.web.js +1 -1
  4. package/lib/commonjs/network/components/NetworkEventDetailView.js +1 -1
  5. package/lib/commonjs/network/components/NetworkEventDetailView.web.js +1 -1
  6. package/lib/commonjs/network/components/NetworkModal.js +1 -1
  7. package/lib/commonjs/network/components/sockets/NetworkSocketsButton.js +1 -0
  8. package/lib/commonjs/network/components/sockets/NetworkSocketsScreen.js +1 -0
  9. package/lib/commonjs/network/components/sockets/SocketFrameView.js +1 -0
  10. package/lib/commonjs/network/components/sockets/SocketListView.js +1 -0
  11. package/lib/commonjs/network/components/sockets/SocketRows.js +1 -0
  12. package/lib/commonjs/network/components/sockets/SocketTricksView.js +1 -0
  13. package/lib/commonjs/network/conditions/NetworkConditionsControl.js +1 -1
  14. package/lib/commonjs/network/conditions/profiles.js +1 -1
  15. package/lib/commonjs/network/conditions/store.js +1 -1
  16. package/lib/commonjs/network/hooks/useSocketsState.js +1 -0
  17. package/lib/commonjs/network/overrides/engine.js +1 -1
  18. package/lib/commonjs/network/overrides/matchRule.js +1 -1
  19. package/lib/commonjs/network/overrides/overrideRulesStore.js +1 -1
  20. package/lib/commonjs/network/sockets/findProblems.js +1 -0
  21. package/lib/commonjs/network/sockets/foldFrames.js +1 -0
  22. package/lib/commonjs/network/sockets/format.js +1 -0
  23. package/lib/commonjs/network/sockets/readMessage.js +1 -0
  24. package/lib/commonjs/network/sockets/socketMoments.js +1 -0
  25. package/lib/commonjs/network/sockets/socketStore.js +1 -0
  26. package/lib/commonjs/network/sockets/socketsSyncAdapter.js +1 -0
  27. package/lib/commonjs/network/sockets/types.js +1 -0
  28. package/lib/commonjs/network/sockets/webSocketPatch.js +1 -0
  29. package/lib/commonjs/network/sync/networkSyncAdapter.js +1 -1
  30. package/lib/commonjs/network/utils/networkEventStore.js +1 -1
  31. package/lib/commonjs/network/utils/networkListener.js +4 -4
  32. package/lib/commonjs/network/utils/startNetworkCapture.js +1 -1
  33. package/lib/commonjs/preset.js +1 -1
  34. package/lib/module/index.js +1 -1
  35. package/lib/module/index.web.js +1 -1
  36. package/lib/module/network/components/NetworkEventDetailView.js +1 -1
  37. package/lib/module/network/components/NetworkEventDetailView.web.js +1 -1
  38. package/lib/module/network/components/NetworkModal.js +1 -1
  39. package/lib/module/network/components/sockets/NetworkSocketsButton.js +1 -0
  40. package/lib/module/network/components/sockets/NetworkSocketsScreen.js +1 -0
  41. package/lib/module/network/components/sockets/SocketFrameView.js +1 -0
  42. package/lib/module/network/components/sockets/SocketListView.js +1 -0
  43. package/lib/module/network/components/sockets/SocketRows.js +1 -0
  44. package/lib/module/network/components/sockets/SocketTricksView.js +1 -0
  45. package/lib/module/network/conditions/NetworkConditionsControl.js +1 -1
  46. package/lib/module/network/conditions/profiles.js +1 -1
  47. package/lib/module/network/conditions/store.js +1 -1
  48. package/lib/module/network/hooks/useSocketsState.js +1 -0
  49. package/lib/module/network/overrides/engine.js +1 -1
  50. package/lib/module/network/overrides/matchRule.js +1 -1
  51. package/lib/module/network/overrides/overrideRulesStore.js +1 -1
  52. package/lib/module/network/sockets/findProblems.js +1 -0
  53. package/lib/module/network/sockets/foldFrames.js +1 -0
  54. package/lib/module/network/sockets/format.js +1 -0
  55. package/lib/module/network/sockets/readMessage.js +1 -0
  56. package/lib/module/network/sockets/socketMoments.js +1 -0
  57. package/lib/module/network/sockets/socketStore.js +1 -0
  58. package/lib/module/network/sockets/socketsSyncAdapter.js +1 -0
  59. package/lib/module/network/sockets/types.js +1 -0
  60. package/lib/module/network/sockets/webSocketPatch.js +1 -0
  61. package/lib/module/network/sync/networkSyncAdapter.js +1 -1
  62. package/lib/module/network/utils/networkEventStore.js +1 -1
  63. package/lib/module/network/utils/networkListener.js +4 -4
  64. package/lib/module/network/utils/startNetworkCapture.js +1 -1
  65. package/lib/module/preset.js +1 -1
  66. package/lib/typescript/index.d.ts +11 -0
  67. package/lib/typescript/index.web.d.ts +4 -0
  68. package/lib/typescript/network/components/sockets/NetworkSocketsButton.d.ts +17 -0
  69. package/lib/typescript/network/components/sockets/NetworkSocketsScreen.d.ts +19 -0
  70. package/lib/typescript/network/components/sockets/SocketFrameView.d.ts +9 -0
  71. package/lib/typescript/network/components/sockets/SocketListView.d.ts +9 -0
  72. package/lib/typescript/network/components/sockets/SocketRows.d.ts +19 -0
  73. package/lib/typescript/network/components/sockets/SocketTricksView.d.ts +23 -0
  74. package/lib/typescript/network/conditions/store.d.ts +1 -1
  75. package/lib/typescript/network/hooks/useSocketsState.d.ts +3 -0
  76. package/lib/typescript/network/overrides/overrideRulesStore.d.ts +19 -0
  77. package/lib/typescript/network/overrides/types.d.ts +14 -0
  78. package/lib/typescript/network/sockets/findProblems.d.ts +31 -0
  79. package/lib/typescript/network/sockets/foldFrames.d.ts +50 -0
  80. package/lib/typescript/network/sockets/format.d.ts +19 -0
  81. package/lib/typescript/network/sockets/readMessage.d.ts +41 -0
  82. package/lib/typescript/network/sockets/socketMoments.d.ts +24 -0
  83. package/lib/typescript/network/sockets/socketStore.d.ts +94 -0
  84. package/lib/typescript/network/sockets/socketsSyncAdapter.d.ts +66 -0
  85. package/lib/typescript/network/sockets/types.d.ts +139 -0
  86. package/lib/typescript/network/sockets/webSocketPatch.d.ts +57 -0
  87. package/lib/typescript/network/sync/networkSyncAdapter.d.ts +3 -1
  88. package/lib/typescript/network/types/index.d.ts +6 -0
  89. package/lib/typescript/network/utils/networkListener.d.ts +6 -0
  90. package/lib/web/index.mjs +58 -58
  91. package/package.json +2 -2
package/README.md CHANGED
@@ -24,6 +24,14 @@ Render `<FloatingDevTools />` once in your app root and Network appears in the m
24
24
 
25
25
  Buoy keeps its own web calls out of this view. App calls still show when they use the same files.
26
26
 
27
+ ## Sockets
28
+
29
+ Open **⋯ → Sockets** to see each WebSocket your app opens. You see each message, sent and got, newest first. A request shows its reply and how long it took. A row turns red when Buoy finds a problem. One example is a request with no reply. Another is a socket that drops again and again.
30
+
31
+ **Tricks** need Pro. They push a fake server message into your app. They can also drop, freeze or block the socket. Your app's real code handles each one. Buoy hides tokens and passwords. It does this before it keeps a message.
32
+
33
+ The MCP tools are `get_sockets` and `socket_action`. See the [Sockets guide](https://buoy.gg/buoy/latest/docs/tools/network#sockets).
34
+
27
35
  ## Slow links in dev builds
28
36
 
29
37
  Open **⋯ → Speed and link state** in Network.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"DEFAULT_SETTLE_MS",{enumerable:true,get:function(){return _networkSelectionStore.DEFAULT_SETTLE_MS}});Object.defineProperty(exports,"FREE_TIER_OVERRIDE_LIMIT",{enumerable:true,get:function(){return _types.FREE_TIER_RULE_LIMIT}});Object.defineProperty(exports,"FREE_TIER_SAVED_LIMIT",{enumerable:true,get:function(){return _networkSavedStore.FREE_TIER_SAVED_LIMIT}});Object.defineProperty(exports,"MAX_OVERRIDE_RULES",{enumerable:true,get:function(){return _types.MAX_RULES}});Object.defineProperty(exports,"MAX_PINNED",{enumerable:true,get:function(){return _networkSavedStore.MAX_PINNED}});Object.defineProperty(exports,"MAX_SAVED",{enumerable:true,get:function(){return _networkSavedStore.MAX_SAVED}});Object.defineProperty(exports,"NETWORK_CONDITIONS",{enumerable:true,get:function(){return _store.NETWORK_CONDITIONS}});Object.defineProperty(exports,"NetworkBodyResolverProvider",{enumerable:true,get:function(){return _networkBodyResolver.NetworkBodyResolverProvider}});Object.defineProperty(exports,"NetworkDetailPinActions",{enumerable:true,get:function(){return _NetworkHeaderLive.NetworkDetailPinActions}});Object.defineProperty(exports,"NetworkEventDetailView",{enumerable:true,get:function(){return _NetworkEventDetailView.NetworkEventDetailView}});Object.defineProperty(exports,"NetworkEventItemCompact",{enumerable:true,get:function(){return _NetworkEventItemCompact.NetworkEventItemCompact}});Object.defineProperty(exports,"NetworkHeaderBadgesView",{enumerable:true,get:function(){return _NetworkHeaderLive.NetworkHeaderBadgesView}});Object.defineProperty(exports,"NetworkModal",{enumerable:true,get:function(){return _NetworkModal.NetworkModal}});Object.defineProperty(exports,"NetworkSavedButton",{enumerable:true,get:function(){return _NetworkHeaderLive.NetworkSavedButton}});Object.defineProperty(exports,"NetworkSavedScreen",{enumerable:true,get:function(){return _NetworkSavedScreen.NetworkSavedScreen}});Object.defineProperty(exports,"NetworkToolView",{enumerable:true,get:function(){return _NetworkModal.NetworkToolView}});Object.defineProperty(exports,"OVERRIDE_STATUS_MAX",{enumerable:true,get:function(){return _types.STATUS_MAX}});Object.defineProperty(exports,"OVERRIDE_STATUS_MIN",{enumerable:true,get:function(){return _types.STATUS_MIN}});Object.defineProperty(exports,"TickProvider",{enumerable:true,get:function(){return _useTickEveryMinute.TickProvider}});Object.defineProperty(exports,"addNetworkListener",{enumerable:true,get:function(){return _networkListener.addNetworkListener}});Object.defineProperty(exports,"chooseConditionsSnapshot",{enumerable:true,get:function(){return _remoteState.chooseConditionsSnapshot}});Object.defineProperty(exports,"createNetworkTool",{enumerable:true,get:function(){return _preset.createNetworkTool}});Object.defineProperty(exports,"draftFromEvent",{enumerable:true,get:function(){return _presets.draftFromEvent}});Object.defineProperty(exports,"flagsForEventId",{enumerable:true,get:function(){return _networkSavedStore.flagsForEventId}});Object.defineProperty(exports,"formatBytes",{enumerable:true,get:function(){return _formatting.formatBytes}});Object.defineProperty(exports,"formatDuration",{enumerable:true,get:function(){return _formatting.formatDuration}});Object.defineProperty(exports,"formatHttpStatus",{enumerable:true,get:function(){return _formatting.formatHttpStatus}});Object.defineProperty(exports,"generateCurl",{enumerable:true,get:function(){return _generateCurl.generateCurl}});Object.defineProperty(exports,"getConditionsRevision",{enumerable:true,get:function(){return _store.getConditionsRevision}});Object.defineProperty(exports,"getNetworkCondition",{enumerable:true,get:function(){return _store.getNetworkCondition}});Object.defineProperty(exports,"getNetworkConditions",{enumerable:true,get:function(){return _store.getNetworkConditions}});Object.defineProperty(exports,"getNetworkConnection",{enumerable:true,get:function(){return _store.getNetworkConnection}});Object.defineProperty(exports,"ignoredPatternsStore",{enumerable:true,get:function(){return _sharedUi.ignoredPatternsStore}});Object.defineProperty(exports,"isUrlIgnored",{enumerable:true,get:function(){return _sharedUi.isUrlIgnored}});Object.defineProperty(exports,"networkConditionsActive",{enumerable:true,get:function(){return _store.networkConditionsActive}});Object.defineProperty(exports,"networkEventStore",{enumerable:true,get:function(){return _networkEventStore.networkEventStore}});Object.defineProperty(exports,"networkListener",{enumerable:true,get:function(){return _networkListener.networkListener}});Object.defineProperty(exports,"networkSavedStore",{enumerable:true,get:function(){return _networkSavedStore.networkSavedStore}});Object.defineProperty(exports,"networkSelectionStore",{enumerable:true,get:function(){return _networkSelectionStore.networkSelectionStore}});Object.defineProperty(exports,"networkSyncAdapter",{enumerable:true,get:function(){return _networkSyncAdapter.networkSyncAdapter}});Object.defineProperty(exports,"networkToolPreset",{enumerable:true,get:function(){return _preset.networkToolPreset}});Object.defineProperty(exports,"overrideRulesStore",{enumerable:true,get:function(){return _overrideRulesStore.overrideRulesStore}});Object.defineProperty(exports,"removeAllNetworkListeners",{enumerable:true,get:function(){return _networkListener.removeAllNetworkListeners}});Object.defineProperty(exports,"setNetworkCondition",{enumerable:true,get:function(){return _store.setNetworkCondition}});Object.defineProperty(exports,"setNetworkConditions",{enumerable:true,get:function(){return _store.setNetworkConditions}});Object.defineProperty(exports,"splitPinned",{enumerable:true,get:function(){return _withPinnedFirst.splitPinned}});Object.defineProperty(exports,"startNetworkCapture",{enumerable:true,get:function(){return _startNetworkCapture.startNetworkCapture}});Object.defineProperty(exports,"subscribeNetworkConditions",{enumerable:true,get:function(){return _store.subscribeNetworkConditions}});Object.defineProperty(exports,"urlMatchesIgnoredPattern",{enumerable:true,get:function(){return _sharedUi.urlMatchesIgnoredPattern}});Object.defineProperty(exports,"useIgnoredPatterns",{enumerable:true,get:function(){return _sharedUi.useIgnoredPatterns}});Object.defineProperty(exports,"useLiveNetworkEvent",{enumerable:true,get:function(){return _useLiveNetworkEvent.useLiveNetworkEvent}});Object.defineProperty(exports,"useNetworkBadgeCounts",{enumerable:true,get:function(){return _useNetworkBadgeCounts.useNetworkBadgeCounts}});Object.defineProperty(exports,"useNetworkEventList",{enumerable:true,get:function(){return _useNetworkEventList.useNetworkEventList}});Object.defineProperty(exports,"useNetworkEvents",{enumerable:true,get:function(){return _useNetworkEvents.useNetworkEvents}});Object.defineProperty(exports,"useNetworkSaved",{enumerable:true,get:function(){return _useNetworkSaved.useNetworkSaved}});Object.defineProperty(exports,"useTickEveryMinute",{enumerable:true,get:function(){return _useTickEveryMinute.useTickEveryMinute}});var _preset=require("./preset");var _startNetworkCapture=require("./network/utils/startNetworkCapture");var _NetworkModal=require("./network/components/NetworkModal");var _NetworkEventDetailView=require("./network/components/NetworkEventDetailView");var _NetworkEventItemCompact=require("./network/components/NetworkEventItemCompact");var _NetworkSavedScreen=require("./network/components/NetworkSavedScreen");var _NetworkHeaderLive=require("./network/components/NetworkHeaderLive");var _useNetworkEvents=require("./network/hooks/useNetworkEvents");var _useNetworkEventList=require("./network/hooks/useNetworkEventList");var _useLiveNetworkEvent=require("./network/hooks/useLiveNetworkEvent");var _useNetworkBadgeCounts=require("./network/hooks/useNetworkBadgeCounts");var _useNetworkSaved=require("./network/hooks/useNetworkSaved");var _withPinnedFirst=require("./network/utils/withPinnedFirst");var _networkSelectionStore=require("./network/utils/networkSelectionStore");var _useTickEveryMinute=require("./network/hooks/useTickEveryMinute");var _formatting=require("./network/utils/formatting");var _overrideRulesStore=require("./network/overrides/overrideRulesStore");var _presets=require("./network/overrides/presets");var _types=require("./network/overrides/types");var _sharedUi=require("@buoy-gg/shared-ui");var _networkSyncAdapter=require("./network/sync/networkSyncAdapter");var _networkBodyResolver=require("./network/sync/networkBodyResolver");var _networkEventStore=require("./network/utils/networkEventStore");var _networkSavedStore=require("./network/utils/networkSavedStore");var _generateCurl=require("./network/utils/generateCurl");var _networkListener=require("./network/utils/networkListener");var _store=require("./network/conditions/store");var _remoteState=require("./network/conditions/remoteState");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"DEFAULT_SETTLE_MS",{enumerable:true,get:function(){return _networkSelectionStore.DEFAULT_SETTLE_MS}});Object.defineProperty(exports,"FREE_TIER_OVERRIDE_LIMIT",{enumerable:true,get:function(){return _types.FREE_TIER_RULE_LIMIT}});Object.defineProperty(exports,"FREE_TIER_SAVED_LIMIT",{enumerable:true,get:function(){return _networkSavedStore.FREE_TIER_SAVED_LIMIT}});Object.defineProperty(exports,"MAX_OVERRIDE_RULES",{enumerable:true,get:function(){return _types.MAX_RULES}});Object.defineProperty(exports,"MAX_PINNED",{enumerable:true,get:function(){return _networkSavedStore.MAX_PINNED}});Object.defineProperty(exports,"MAX_SAVED",{enumerable:true,get:function(){return _networkSavedStore.MAX_SAVED}});Object.defineProperty(exports,"NETWORK_CONDITIONS",{enumerable:true,get:function(){return _store.NETWORK_CONDITIONS}});Object.defineProperty(exports,"NetworkBodyResolverProvider",{enumerable:true,get:function(){return _networkBodyResolver.NetworkBodyResolverProvider}});Object.defineProperty(exports,"NetworkDetailPinActions",{enumerable:true,get:function(){return _NetworkHeaderLive.NetworkDetailPinActions}});Object.defineProperty(exports,"NetworkEventDetailView",{enumerable:true,get:function(){return _NetworkEventDetailView.NetworkEventDetailView}});Object.defineProperty(exports,"NetworkEventItemCompact",{enumerable:true,get:function(){return _NetworkEventItemCompact.NetworkEventItemCompact}});Object.defineProperty(exports,"NetworkHeaderBadgesView",{enumerable:true,get:function(){return _NetworkHeaderLive.NetworkHeaderBadgesView}});Object.defineProperty(exports,"NetworkModal",{enumerable:true,get:function(){return _NetworkModal.NetworkModal}});Object.defineProperty(exports,"NetworkSavedButton",{enumerable:true,get:function(){return _NetworkHeaderLive.NetworkSavedButton}});Object.defineProperty(exports,"NetworkSavedScreen",{enumerable:true,get:function(){return _NetworkSavedScreen.NetworkSavedScreen}});Object.defineProperty(exports,"NetworkSocketsScreen",{enumerable:true,get:function(){return _NetworkSocketsScreen.NetworkSocketsScreen}});Object.defineProperty(exports,"NetworkToolView",{enumerable:true,get:function(){return _NetworkModal.NetworkToolView}});Object.defineProperty(exports,"OVERRIDE_STATUS_MAX",{enumerable:true,get:function(){return _types.STATUS_MAX}});Object.defineProperty(exports,"OVERRIDE_STATUS_MIN",{enumerable:true,get:function(){return _types.STATUS_MIN}});Object.defineProperty(exports,"TickProvider",{enumerable:true,get:function(){return _useTickEveryMinute.TickProvider}});Object.defineProperty(exports,"addNetworkListener",{enumerable:true,get:function(){return _networkListener.addNetworkListener}});Object.defineProperty(exports,"chooseConditionsSnapshot",{enumerable:true,get:function(){return _remoteState.chooseConditionsSnapshot}});Object.defineProperty(exports,"createNetworkTool",{enumerable:true,get:function(){return _preset.createNetworkTool}});Object.defineProperty(exports,"draftFromEvent",{enumerable:true,get:function(){return _presets.draftFromEvent}});Object.defineProperty(exports,"flagsForEventId",{enumerable:true,get:function(){return _networkSavedStore.flagsForEventId}});Object.defineProperty(exports,"formatBytes",{enumerable:true,get:function(){return _formatting.formatBytes}});Object.defineProperty(exports,"formatDuration",{enumerable:true,get:function(){return _formatting.formatDuration}});Object.defineProperty(exports,"formatHttpStatus",{enumerable:true,get:function(){return _formatting.formatHttpStatus}});Object.defineProperty(exports,"generateCurl",{enumerable:true,get:function(){return _generateCurl.generateCurl}});Object.defineProperty(exports,"getConditionsRevision",{enumerable:true,get:function(){return _store.getConditionsRevision}});Object.defineProperty(exports,"getNetworkCondition",{enumerable:true,get:function(){return _store.getNetworkCondition}});Object.defineProperty(exports,"getNetworkConditions",{enumerable:true,get:function(){return _store.getNetworkConditions}});Object.defineProperty(exports,"getNetworkConnection",{enumerable:true,get:function(){return _store.getNetworkConnection}});Object.defineProperty(exports,"ignoredPatternsStore",{enumerable:true,get:function(){return _sharedUi.ignoredPatternsStore}});Object.defineProperty(exports,"isUrlIgnored",{enumerable:true,get:function(){return _sharedUi.isUrlIgnored}});Object.defineProperty(exports,"networkConditionsActive",{enumerable:true,get:function(){return _store.networkConditionsActive}});Object.defineProperty(exports,"networkEventStore",{enumerable:true,get:function(){return _networkEventStore.networkEventStore}});Object.defineProperty(exports,"networkListener",{enumerable:true,get:function(){return _networkListener.networkListener}});Object.defineProperty(exports,"networkSavedStore",{enumerable:true,get:function(){return _networkSavedStore.networkSavedStore}});Object.defineProperty(exports,"networkSelectionStore",{enumerable:true,get:function(){return _networkSelectionStore.networkSelectionStore}});Object.defineProperty(exports,"networkSyncAdapter",{enumerable:true,get:function(){return _networkSyncAdapter.networkSyncAdapter}});Object.defineProperty(exports,"networkToolPreset",{enumerable:true,get:function(){return _preset.networkToolPreset}});Object.defineProperty(exports,"onSocketMoment",{enumerable:true,get:function(){return _socketMoments.onSocketMoment}});Object.defineProperty(exports,"overrideRulesStore",{enumerable:true,get:function(){return _overrideRulesStore.overrideRulesStore}});Object.defineProperty(exports,"querySockets",{enumerable:true,get:function(){return _socketsSyncAdapter.querySockets}});Object.defineProperty(exports,"removeAllNetworkListeners",{enumerable:true,get:function(){return _networkListener.removeAllNetworkListeners}});Object.defineProperty(exports,"setNetworkCondition",{enumerable:true,get:function(){return _store.setNetworkCondition}});Object.defineProperty(exports,"setNetworkConditions",{enumerable:true,get:function(){return _store.setNetworkConditions}});Object.defineProperty(exports,"socketStore",{enumerable:true,get:function(){return _socketStore.socketStore}});Object.defineProperty(exports,"socketsSyncAdapter",{enumerable:true,get:function(){return _socketsSyncAdapter.socketsSyncAdapter}});Object.defineProperty(exports,"splitPinned",{enumerable:true,get:function(){return _withPinnedFirst.splitPinned}});Object.defineProperty(exports,"startNetworkCapture",{enumerable:true,get:function(){return _startNetworkCapture.startNetworkCapture}});Object.defineProperty(exports,"subscribeNetworkConditions",{enumerable:true,get:function(){return _store.subscribeNetworkConditions}});Object.defineProperty(exports,"urlMatchesIgnoredPattern",{enumerable:true,get:function(){return _sharedUi.urlMatchesIgnoredPattern}});Object.defineProperty(exports,"useIgnoredPatterns",{enumerable:true,get:function(){return _sharedUi.useIgnoredPatterns}});Object.defineProperty(exports,"useLiveNetworkEvent",{enumerable:true,get:function(){return _useLiveNetworkEvent.useLiveNetworkEvent}});Object.defineProperty(exports,"useNetworkBadgeCounts",{enumerable:true,get:function(){return _useNetworkBadgeCounts.useNetworkBadgeCounts}});Object.defineProperty(exports,"useNetworkEventList",{enumerable:true,get:function(){return _useNetworkEventList.useNetworkEventList}});Object.defineProperty(exports,"useNetworkEvents",{enumerable:true,get:function(){return _useNetworkEvents.useNetworkEvents}});Object.defineProperty(exports,"useNetworkSaved",{enumerable:true,get:function(){return _useNetworkSaved.useNetworkSaved}});Object.defineProperty(exports,"useSocketsState",{enumerable:true,get:function(){return _useSocketsState.useSocketsState}});Object.defineProperty(exports,"useTickEveryMinute",{enumerable:true,get:function(){return _useTickEveryMinute.useTickEveryMinute}});var _preset=require("./preset");var _startNetworkCapture=require("./network/utils/startNetworkCapture");var _NetworkModal=require("./network/components/NetworkModal");var _NetworkEventDetailView=require("./network/components/NetworkEventDetailView");var _NetworkEventItemCompact=require("./network/components/NetworkEventItemCompact");var _NetworkSavedScreen=require("./network/components/NetworkSavedScreen");var _NetworkHeaderLive=require("./network/components/NetworkHeaderLive");var _useNetworkEvents=require("./network/hooks/useNetworkEvents");var _useNetworkEventList=require("./network/hooks/useNetworkEventList");var _useLiveNetworkEvent=require("./network/hooks/useLiveNetworkEvent");var _useNetworkBadgeCounts=require("./network/hooks/useNetworkBadgeCounts");var _useNetworkSaved=require("./network/hooks/useNetworkSaved");var _withPinnedFirst=require("./network/utils/withPinnedFirst");var _networkSelectionStore=require("./network/utils/networkSelectionStore");var _useTickEveryMinute=require("./network/hooks/useTickEveryMinute");var _formatting=require("./network/utils/formatting");var _overrideRulesStore=require("./network/overrides/overrideRulesStore");var _presets=require("./network/overrides/presets");var _types=require("./network/overrides/types");var _sharedUi=require("@buoy-gg/shared-ui");var _NetworkSocketsScreen=require("./network/components/sockets/NetworkSocketsScreen");var _useSocketsState=require("./network/hooks/useSocketsState");var _socketsSyncAdapter=require("./network/sockets/socketsSyncAdapter");var _socketStore=require("./network/sockets/socketStore");var _socketMoments=require("./network/sockets/socketMoments");var _networkSyncAdapter=require("./network/sync/networkSyncAdapter");var _networkBodyResolver=require("./network/sync/networkBodyResolver");var _networkEventStore=require("./network/utils/networkEventStore");var _networkSavedStore=require("./network/utils/networkSavedStore");var _generateCurl=require("./network/utils/generateCurl");var _networkListener=require("./network/utils/networkListener");var _store=require("./network/conditions/store");var _remoteState=require("./network/conditions/remoteState");
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"DEFAULT_COPY_SETTINGS",{enumerable:true,get:function(){return _NetworkCopySettingsView.DEFAULT_COPY_SETTINGS}});Object.defineProperty(exports,"FREE_TIER_REQUEST_LIMIT",{enumerable:true,get:function(){return _useNetworkEvents.FREE_TIER_REQUEST_LIMIT}});Object.defineProperty(exports,"FREE_TIER_RULE_LIMIT",{enumerable:true,get:function(){return _types.FREE_TIER_RULE_LIMIT}});Object.defineProperty(exports,"FREE_TIER_SAVED_LIMIT",{enumerable:true,get:function(){return _networkSavedStore.FREE_TIER_SAVED_LIMIT}});Object.defineProperty(exports,"MAX_RULES",{enumerable:true,get:function(){return _types.MAX_RULES}});Object.defineProperty(exports,"MAX_SAVED",{enumerable:true,get:function(){return _networkSavedStore.MAX_SAVED}});Object.defineProperty(exports,"NETWORK_CONDITIONS",{enumerable:true,get:function(){return _store.NETWORK_CONDITIONS}});Object.defineProperty(exports,"NetworkClearButton",{enumerable:true,get:function(){return _NetworkHeaderLive.NetworkClearButton}});Object.defineProperty(exports,"NetworkCopyScreen",{enumerable:true,get:function(){return _NetworkCopyScreen.NetworkCopyScreen}});Object.defineProperty(exports,"NetworkCopySettingsView",{enumerable:true,get:function(){return _NetworkCopySettingsView.NetworkCopySettingsView}});Object.defineProperty(exports,"NetworkDetailPinActions",{enumerable:true,get:function(){return _NetworkHeaderLive.NetworkDetailPinActions}});Object.defineProperty(exports,"NetworkDetailScreen",{enumerable:true,get:function(){return _NetworkDetailScreen.NetworkDetailScreen}});Object.defineProperty(exports,"NetworkDetailStepper",{enumerable:true,get:function(){return _NetworkDetailStepper.NetworkDetailStepper}});Object.defineProperty(exports,"NetworkEventDetailView",{enumerable:true,get:function(){return _NetworkEventDetailView.NetworkEventDetailView}});Object.defineProperty(exports,"NetworkEventItemCompact",{enumerable:true,get:function(){return _NetworkEventItemCompact.NetworkEventItemCompact}});Object.defineProperty(exports,"NetworkFilterScreen",{enumerable:true,get:function(){return _NetworkFilterScreen.NetworkFilterScreen}});Object.defineProperty(exports,"NetworkFilterViewV3",{enumerable:true,get:function(){return _NetworkFilterViewV.NetworkFilterViewV3}});Object.defineProperty(exports,"NetworkHeaderBadges",{enumerable:true,get:function(){return _NetworkHeaderLive.NetworkHeaderBadges}});Object.defineProperty(exports,"NetworkHeaderCopyButton",{enumerable:true,get:function(){return _NetworkHeaderLive.NetworkHeaderCopyButton}});Object.defineProperty(exports,"NetworkListScreen",{enumerable:true,get:function(){return _NetworkListScreen.NetworkListScreen}});Object.defineProperty(exports,"NetworkNumberPrompt",{enumerable:true,get:function(){return _NetworkNumberPrompt.NetworkNumberPrompt}});Object.defineProperty(exports,"NetworkOverrideEditor",{enumerable:true,get:function(){return _NetworkOverrideEditor.NetworkOverrideEditor}});Object.defineProperty(exports,"NetworkOverrideHeaderButton",{enumerable:true,get:function(){return _NetworkOverrideHeaderButton.NetworkOverrideHeaderButton}});Object.defineProperty(exports,"NetworkOverridesButton",{enumerable:true,get:function(){return _NetworkOverridesButton.NetworkOverridesButton}});Object.defineProperty(exports,"NetworkOverridesScreen",{enumerable:true,get:function(){return _NetworkOverridesScreen.NetworkOverridesScreen}});Object.defineProperty(exports,"NetworkSavedButton",{enumerable:true,get:function(){return _NetworkHeaderLive.NetworkSavedButton}});Object.defineProperty(exports,"NetworkSavedScreen",{enumerable:true,get:function(){return _NetworkSavedScreen.NetworkSavedScreen}});Object.defineProperty(exports,"STATUS_MAX",{enumerable:true,get:function(){return _types.STATUS_MAX}});Object.defineProperty(exports,"STATUS_MIN",{enumerable:true,get:function(){return _types.STATUS_MIN}});Object.defineProperty(exports,"addNetworkListener",{enumerable:true,get:function(){return _networkListener.addNetworkListener}});Object.defineProperty(exports,"applyIgnoredPatterns",{enumerable:true,get:function(){return _filterNetworkEvents.applyIgnoredPatterns}});Object.defineProperty(exports,"chooseConditionsSnapshot",{enumerable:true,get:function(){return _remoteState.chooseConditionsSnapshot}});Object.defineProperty(exports,"draftFromEvent",{enumerable:true,get:function(){return _presets.draftFromEvent}});Object.defineProperty(exports,"extractOperationName",{enumerable:true,get:function(){return _extractOperationName.extractOperationName}});Object.defineProperty(exports,"filterNetworkEvents",{enumerable:true,get:function(){return _filterNetworkEvents.filterNetworkEvents}});Object.defineProperty(exports,"flagsForEventId",{enumerable:true,get:function(){return _networkSavedStore.flagsForEventId}});Object.defineProperty(exports,"generateCurl",{enumerable:true,get:function(){return _generateCurl.generateCurl}});Object.defineProperty(exports,"generateNetworkCopyText",{enumerable:true,get:function(){return _generateNetworkCopyText.generateNetworkCopyText}});Object.defineProperty(exports,"getConditionsRevision",{enumerable:true,get:function(){return _store.getConditionsRevision}});Object.defineProperty(exports,"getNetworkCondition",{enumerable:true,get:function(){return _store.getNetworkCondition}});Object.defineProperty(exports,"getNetworkConditions",{enumerable:true,get:function(){return _store.getNetworkConditions}});Object.defineProperty(exports,"getNetworkConnection",{enumerable:true,get:function(){return _store.getNetworkConnection}});Object.defineProperty(exports,"isNetworkListening",{enumerable:true,get:function(){return _networkListener.isNetworkListening}});Object.defineProperty(exports,"networkConditionsActive",{enumerable:true,get:function(){return _store.networkConditionsActive}});Object.defineProperty(exports,"networkEventStore",{enumerable:true,get:function(){return _networkEventStore.networkEventStore}});Object.defineProperty(exports,"networkListener",{enumerable:true,get:function(){return _networkListener.networkListener}});Object.defineProperty(exports,"networkSavedStore",{enumerable:true,get:function(){return _networkSavedStore.networkSavedStore}});Object.defineProperty(exports,"networkSelectionStore",{enumerable:true,get:function(){return _networkSelectionStore.networkSelectionStore}});Object.defineProperty(exports,"overrideRulesStore",{enumerable:true,get:function(){return _overrideRulesStore.overrideRulesStore}});Object.defineProperty(exports,"patternForUrl",{enumerable:true,get:function(){return _presets.patternForUrl}});Object.defineProperty(exports,"removeAllNetworkListeners",{enumerable:true,get:function(){return _networkListener.removeAllNetworkListeners}});Object.defineProperty(exports,"ruleMatches",{enumerable:true,get:function(){return _matchRule.ruleMatches}});Object.defineProperty(exports,"selectSavedEvents",{enumerable:true,get:function(){return _selectSavedEvents.selectSavedEvents}});Object.defineProperty(exports,"setNetworkCondition",{enumerable:true,get:function(){return _store.setNetworkCondition}});Object.defineProperty(exports,"setNetworkConditions",{enumerable:true,get:function(){return _store.setNetworkConditions}});Object.defineProperty(exports,"splitPinned",{enumerable:true,get:function(){return _withPinnedFirst.splitPinned}});Object.defineProperty(exports,"startNetworkListener",{enumerable:true,get:function(){return _networkListener.startNetworkListener}});Object.defineProperty(exports,"stopNetworkListener",{enumerable:true,get:function(){return _networkListener.stopNetworkListener}});Object.defineProperty(exports,"subscribeNetworkConditions",{enumerable:true,get:function(){return _store.subscribeNetworkConditions}});Object.defineProperty(exports,"toSelectionIds",{enumerable:true,get:function(){return _networkSelectionStore.toSelectionIds}});Object.defineProperty(exports,"useHasNetworkSelection",{enumerable:true,get:function(){return _useNetworkSelection.useHasNetworkSelection}});Object.defineProperty(exports,"useLiveNetworkEvent",{enumerable:true,get:function(){return _useLiveNetworkEvent.useLiveNetworkEvent}});Object.defineProperty(exports,"useNetworkBadgeCounts",{enumerable:true,get:function(){return _useNetworkBadgeCounts.useNetworkBadgeCounts}});Object.defineProperty(exports,"useNetworkBodyEventId",{enumerable:true,get:function(){return _useNetworkSelection.useNetworkBodyEventId}});Object.defineProperty(exports,"useNetworkCursor",{enumerable:true,get:function(){return _useNetworkSelection.useNetworkCursor}});Object.defineProperty(exports,"useNetworkEventList",{enumerable:true,get:function(){return _useNetworkEventList.useNetworkEventList}});Object.defineProperty(exports,"useNetworkEvents",{enumerable:true,get:function(){return _useNetworkEvents.useNetworkEvents}});Object.defineProperty(exports,"useOverrideRules",{enumerable:true,get:function(){return _useOverrideRules.useOverrideRules}});Object.defineProperty(exports,"useSelectedNetworkEventId",{enumerable:true,get:function(){return _useNetworkSelection.useSelectedNetworkEventId}});var _networkListener=require("./network/utils/networkListener");var _networkEventStore=require("./network/utils/networkEventStore");var _networkSavedStore=require("./network/utils/networkSavedStore");var _useNetworkEvents=require("./network/hooks/useNetworkEvents");var _useNetworkEventList=require("./network/hooks/useNetworkEventList");var _useLiveNetworkEvent=require("./network/hooks/useLiveNetworkEvent");var _useNetworkBadgeCounts=require("./network/hooks/useNetworkBadgeCounts");var _useNetworkSelection=require("./network/hooks/useNetworkSelection");var _networkSelectionStore=require("./network/utils/networkSelectionStore");var _NetworkListScreen=require("./network/components/NetworkListScreen.web");var _NetworkEventItemCompact=require("./network/components/NetworkEventItemCompact.web");var _NetworkHeaderLive=require("./network/components/NetworkHeaderLive.web");var _NetworkEventDetailView=require("./network/components/NetworkEventDetailView.web");var _NetworkDetailStepper=require("./network/components/NetworkDetailStepper.web");var _NetworkDetailScreen=require("./network/components/NetworkDetailScreen.web");var _NetworkFilterViewV=require("./network/components/NetworkFilterViewV3.web");var _NetworkFilterScreen=require("./network/components/NetworkFilterScreen.web");var _NetworkSavedScreen=require("./network/components/NetworkSavedScreen.web");var _NetworkCopySettingsView=require("./network/components/NetworkCopySettingsView.web");var _NetworkCopyScreen=require("./network/components/NetworkCopyScreen.web");var _generateNetworkCopyText=require("./network/utils/generateNetworkCopyText");var _selectSavedEvents=require("./network/utils/selectSavedEvents");var _NetworkOverridesScreen=require("./network/components/NetworkOverridesScreen.web");var _NetworkOverrideEditor=require("./network/components/NetworkOverrideEditor.web");var _NetworkNumberPrompt=require("./network/components/NetworkNumberPrompt.web");var _NetworkOverridesButton=require("./network/components/NetworkOverridesButton.web");var _NetworkOverrideHeaderButton=require("./network/components/NetworkOverrideHeaderButton.web");var _useOverrideRules=require("./network/hooks/useOverrideRules");var _overrideRulesStore=require("./network/overrides/overrideRulesStore");var _presets=require("./network/overrides/presets");var _types=require("./network/overrides/types");var _matchRule=require("./network/overrides/matchRule");var _filterNetworkEvents=require("./network/utils/filterNetworkEvents");var _withPinnedFirst=require("./network/utils/withPinnedFirst");var _extractOperationName=require("./network/utils/extractOperationName");var _generateCurl=require("./network/utils/generateCurl");var _store=require("./network/conditions/store");var _remoteState=require("./network/conditions/remoteState");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"DEFAULT_COPY_SETTINGS",{enumerable:true,get:function(){return _NetworkCopySettingsView.DEFAULT_COPY_SETTINGS}});Object.defineProperty(exports,"FREE_TIER_REQUEST_LIMIT",{enumerable:true,get:function(){return _useNetworkEvents.FREE_TIER_REQUEST_LIMIT}});Object.defineProperty(exports,"FREE_TIER_RULE_LIMIT",{enumerable:true,get:function(){return _types.FREE_TIER_RULE_LIMIT}});Object.defineProperty(exports,"FREE_TIER_SAVED_LIMIT",{enumerable:true,get:function(){return _networkSavedStore.FREE_TIER_SAVED_LIMIT}});Object.defineProperty(exports,"MAX_RULES",{enumerable:true,get:function(){return _types.MAX_RULES}});Object.defineProperty(exports,"MAX_SAVED",{enumerable:true,get:function(){return _networkSavedStore.MAX_SAVED}});Object.defineProperty(exports,"NETWORK_CONDITIONS",{enumerable:true,get:function(){return _store.NETWORK_CONDITIONS}});Object.defineProperty(exports,"NetworkClearButton",{enumerable:true,get:function(){return _NetworkHeaderLive.NetworkClearButton}});Object.defineProperty(exports,"NetworkCopyScreen",{enumerable:true,get:function(){return _NetworkCopyScreen.NetworkCopyScreen}});Object.defineProperty(exports,"NetworkCopySettingsView",{enumerable:true,get:function(){return _NetworkCopySettingsView.NetworkCopySettingsView}});Object.defineProperty(exports,"NetworkDetailPinActions",{enumerable:true,get:function(){return _NetworkHeaderLive.NetworkDetailPinActions}});Object.defineProperty(exports,"NetworkDetailScreen",{enumerable:true,get:function(){return _NetworkDetailScreen.NetworkDetailScreen}});Object.defineProperty(exports,"NetworkDetailStepper",{enumerable:true,get:function(){return _NetworkDetailStepper.NetworkDetailStepper}});Object.defineProperty(exports,"NetworkEventDetailView",{enumerable:true,get:function(){return _NetworkEventDetailView.NetworkEventDetailView}});Object.defineProperty(exports,"NetworkEventItemCompact",{enumerable:true,get:function(){return _NetworkEventItemCompact.NetworkEventItemCompact}});Object.defineProperty(exports,"NetworkFilterScreen",{enumerable:true,get:function(){return _NetworkFilterScreen.NetworkFilterScreen}});Object.defineProperty(exports,"NetworkFilterViewV3",{enumerable:true,get:function(){return _NetworkFilterViewV.NetworkFilterViewV3}});Object.defineProperty(exports,"NetworkHeaderBadges",{enumerable:true,get:function(){return _NetworkHeaderLive.NetworkHeaderBadges}});Object.defineProperty(exports,"NetworkHeaderCopyButton",{enumerable:true,get:function(){return _NetworkHeaderLive.NetworkHeaderCopyButton}});Object.defineProperty(exports,"NetworkListScreen",{enumerable:true,get:function(){return _NetworkListScreen.NetworkListScreen}});Object.defineProperty(exports,"NetworkNumberPrompt",{enumerable:true,get:function(){return _NetworkNumberPrompt.NetworkNumberPrompt}});Object.defineProperty(exports,"NetworkOverrideEditor",{enumerable:true,get:function(){return _NetworkOverrideEditor.NetworkOverrideEditor}});Object.defineProperty(exports,"NetworkOverrideHeaderButton",{enumerable:true,get:function(){return _NetworkOverrideHeaderButton.NetworkOverrideHeaderButton}});Object.defineProperty(exports,"NetworkOverridesButton",{enumerable:true,get:function(){return _NetworkOverridesButton.NetworkOverridesButton}});Object.defineProperty(exports,"NetworkOverridesScreen",{enumerable:true,get:function(){return _NetworkOverridesScreen.NetworkOverridesScreen}});Object.defineProperty(exports,"NetworkSavedButton",{enumerable:true,get:function(){return _NetworkHeaderLive.NetworkSavedButton}});Object.defineProperty(exports,"NetworkSavedScreen",{enumerable:true,get:function(){return _NetworkSavedScreen.NetworkSavedScreen}});Object.defineProperty(exports,"STATUS_MAX",{enumerable:true,get:function(){return _types.STATUS_MAX}});Object.defineProperty(exports,"STATUS_MIN",{enumerable:true,get:function(){return _types.STATUS_MIN}});Object.defineProperty(exports,"addNetworkListener",{enumerable:true,get:function(){return _networkListener.addNetworkListener}});Object.defineProperty(exports,"applyIgnoredPatterns",{enumerable:true,get:function(){return _filterNetworkEvents.applyIgnoredPatterns}});Object.defineProperty(exports,"chooseConditionsSnapshot",{enumerable:true,get:function(){return _remoteState.chooseConditionsSnapshot}});Object.defineProperty(exports,"draftFromEvent",{enumerable:true,get:function(){return _presets.draftFromEvent}});Object.defineProperty(exports,"extractOperationName",{enumerable:true,get:function(){return _extractOperationName.extractOperationName}});Object.defineProperty(exports,"filterNetworkEvents",{enumerable:true,get:function(){return _filterNetworkEvents.filterNetworkEvents}});Object.defineProperty(exports,"flagsForEventId",{enumerable:true,get:function(){return _networkSavedStore.flagsForEventId}});Object.defineProperty(exports,"generateCurl",{enumerable:true,get:function(){return _generateCurl.generateCurl}});Object.defineProperty(exports,"generateNetworkCopyText",{enumerable:true,get:function(){return _generateNetworkCopyText.generateNetworkCopyText}});Object.defineProperty(exports,"getConditionsRevision",{enumerable:true,get:function(){return _store.getConditionsRevision}});Object.defineProperty(exports,"getNetworkCondition",{enumerable:true,get:function(){return _store.getNetworkCondition}});Object.defineProperty(exports,"getNetworkConditions",{enumerable:true,get:function(){return _store.getNetworkConditions}});Object.defineProperty(exports,"getNetworkConnection",{enumerable:true,get:function(){return _store.getNetworkConnection}});Object.defineProperty(exports,"isNetworkListening",{enumerable:true,get:function(){return _networkListener.isNetworkListening}});Object.defineProperty(exports,"networkConditionsActive",{enumerable:true,get:function(){return _store.networkConditionsActive}});Object.defineProperty(exports,"networkEventStore",{enumerable:true,get:function(){return _networkEventStore.networkEventStore}});Object.defineProperty(exports,"networkListener",{enumerable:true,get:function(){return _networkListener.networkListener}});Object.defineProperty(exports,"networkSavedStore",{enumerable:true,get:function(){return _networkSavedStore.networkSavedStore}});Object.defineProperty(exports,"networkSelectionStore",{enumerable:true,get:function(){return _networkSelectionStore.networkSelectionStore}});Object.defineProperty(exports,"onSocketMoment",{enumerable:true,get:function(){return _socketMoments.onSocketMoment}});Object.defineProperty(exports,"overrideRulesStore",{enumerable:true,get:function(){return _overrideRulesStore.overrideRulesStore}});Object.defineProperty(exports,"patternForUrl",{enumerable:true,get:function(){return _presets.patternForUrl}});Object.defineProperty(exports,"querySockets",{enumerable:true,get:function(){return _socketsSyncAdapter.querySockets}});Object.defineProperty(exports,"removeAllNetworkListeners",{enumerable:true,get:function(){return _networkListener.removeAllNetworkListeners}});Object.defineProperty(exports,"ruleMatches",{enumerable:true,get:function(){return _matchRule.ruleMatches}});Object.defineProperty(exports,"selectSavedEvents",{enumerable:true,get:function(){return _selectSavedEvents.selectSavedEvents}});Object.defineProperty(exports,"setNetworkCondition",{enumerable:true,get:function(){return _store.setNetworkCondition}});Object.defineProperty(exports,"setNetworkConditions",{enumerable:true,get:function(){return _store.setNetworkConditions}});Object.defineProperty(exports,"socketStore",{enumerable:true,get:function(){return _socketStore.socketStore}});Object.defineProperty(exports,"socketsSyncAdapter",{enumerable:true,get:function(){return _socketsSyncAdapter.socketsSyncAdapter}});Object.defineProperty(exports,"splitPinned",{enumerable:true,get:function(){return _withPinnedFirst.splitPinned}});Object.defineProperty(exports,"startNetworkListener",{enumerable:true,get:function(){return _networkListener.startNetworkListener}});Object.defineProperty(exports,"stopNetworkListener",{enumerable:true,get:function(){return _networkListener.stopNetworkListener}});Object.defineProperty(exports,"subscribeNetworkConditions",{enumerable:true,get:function(){return _store.subscribeNetworkConditions}});Object.defineProperty(exports,"toSelectionIds",{enumerable:true,get:function(){return _networkSelectionStore.toSelectionIds}});Object.defineProperty(exports,"useHasNetworkSelection",{enumerable:true,get:function(){return _useNetworkSelection.useHasNetworkSelection}});Object.defineProperty(exports,"useLiveNetworkEvent",{enumerable:true,get:function(){return _useLiveNetworkEvent.useLiveNetworkEvent}});Object.defineProperty(exports,"useNetworkBadgeCounts",{enumerable:true,get:function(){return _useNetworkBadgeCounts.useNetworkBadgeCounts}});Object.defineProperty(exports,"useNetworkBodyEventId",{enumerable:true,get:function(){return _useNetworkSelection.useNetworkBodyEventId}});Object.defineProperty(exports,"useNetworkCursor",{enumerable:true,get:function(){return _useNetworkSelection.useNetworkCursor}});Object.defineProperty(exports,"useNetworkEventList",{enumerable:true,get:function(){return _useNetworkEventList.useNetworkEventList}});Object.defineProperty(exports,"useNetworkEvents",{enumerable:true,get:function(){return _useNetworkEvents.useNetworkEvents}});Object.defineProperty(exports,"useOverrideRules",{enumerable:true,get:function(){return _useOverrideRules.useOverrideRules}});Object.defineProperty(exports,"useSelectedNetworkEventId",{enumerable:true,get:function(){return _useNetworkSelection.useSelectedNetworkEventId}});var _networkListener=require("./network/utils/networkListener");var _networkEventStore=require("./network/utils/networkEventStore");var _networkSavedStore=require("./network/utils/networkSavedStore");var _socketStore=require("./network/sockets/socketStore");var _socketsSyncAdapter=require("./network/sockets/socketsSyncAdapter");var _socketMoments=require("./network/sockets/socketMoments");var _useNetworkEvents=require("./network/hooks/useNetworkEvents");var _useNetworkEventList=require("./network/hooks/useNetworkEventList");var _useLiveNetworkEvent=require("./network/hooks/useLiveNetworkEvent");var _useNetworkBadgeCounts=require("./network/hooks/useNetworkBadgeCounts");var _useNetworkSelection=require("./network/hooks/useNetworkSelection");var _networkSelectionStore=require("./network/utils/networkSelectionStore");var _NetworkListScreen=require("./network/components/NetworkListScreen.web");var _NetworkEventItemCompact=require("./network/components/NetworkEventItemCompact.web");var _NetworkHeaderLive=require("./network/components/NetworkHeaderLive.web");var _NetworkEventDetailView=require("./network/components/NetworkEventDetailView.web");var _NetworkDetailStepper=require("./network/components/NetworkDetailStepper.web");var _NetworkDetailScreen=require("./network/components/NetworkDetailScreen.web");var _NetworkFilterViewV=require("./network/components/NetworkFilterViewV3.web");var _NetworkFilterScreen=require("./network/components/NetworkFilterScreen.web");var _NetworkSavedScreen=require("./network/components/NetworkSavedScreen.web");var _NetworkCopySettingsView=require("./network/components/NetworkCopySettingsView.web");var _NetworkCopyScreen=require("./network/components/NetworkCopyScreen.web");var _generateNetworkCopyText=require("./network/utils/generateNetworkCopyText");var _selectSavedEvents=require("./network/utils/selectSavedEvents");var _NetworkOverridesScreen=require("./network/components/NetworkOverridesScreen.web");var _NetworkOverrideEditor=require("./network/components/NetworkOverrideEditor.web");var _NetworkNumberPrompt=require("./network/components/NetworkNumberPrompt.web");var _NetworkOverridesButton=require("./network/components/NetworkOverridesButton.web");var _NetworkOverrideHeaderButton=require("./network/components/NetworkOverrideHeaderButton.web");var _useOverrideRules=require("./network/hooks/useOverrideRules");var _overrideRulesStore=require("./network/overrides/overrideRulesStore");var _presets=require("./network/overrides/presets");var _types=require("./network/overrides/types");var _matchRule=require("./network/overrides/matchRule");var _filterNetworkEvents=require("./network/utils/filterNetworkEvents");var _withPinnedFirst=require("./network/utils/withPinnedFirst");var _extractOperationName=require("./network/utils/extractOperationName");var _generateCurl=require("./network/utils/generateCurl");var _store=require("./network/conditions/store");var _remoteState=require("./network/conditions/remoteState");
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.NetworkEventDetailView=void 0;var _react=require("react");var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _formatting=require("../utils/formatting");var _dataViewer=require("@buoy-gg/shared-ui/dataViewer");var _formatGraphQLVariables=require("../utils/formatGraphQLVariables");var _networkBodyResolver=require("../sync/networkBodyResolver");var _jsxRuntime=require("react/jsx-runtime");const NEUTRAL_ICON=_sharedUi.night.color.accent;const EMPTY_PATTERNS=new Set;const noop=()=>{};const TimingPhases=({timings:i,total:e})=>{const l=Math.max(1,e);const a=[{label:"Waiting (TTFB)",hint:"incl. queue, DNS, TLS",value:i.ttfb,color:_sharedUi.macOSColors.semantic.warning},{label:"Content download",hint:void 0,value:i.download,color:_sharedUi.macOSColors.semantic.success}];return(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.phaseList,children:a.map(o=>(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.phaseRow,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.phaseLabelGroup,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.phaseLabel,children:o.label}),o.hint?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.phaseHint,children:o.hint}):null]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.phaseTrack,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.phaseBar,{backgroundColor:o.color,width:`${Math.min(100,Math.max(1,o.value/l*100))}%`}]})}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.phaseValue,children:(0,_formatting.formatDuration)(o.value)})]},o.label))})};const BodyDeferred=()=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.bodyDeferred});const CollapsibleSection=({title:i,icon:e,children:l,defaultOpen:a=false,count:o})=>{const[n,w]=(0,_react.useState)(a);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.collapsibleSection,children:[(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:styles.collapsibleHeader,onPress:()=>w(!n),testID:`buoy-network-section-${i.toLowerCase().replace(/\s+/g,"-")}`,accessibilityRole:"button",accessibilityLabel:i,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.collapsibleTitle,children:[e,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.collapsibleTitleText,children:i}),o!==void 0?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.collapsibleCount,children:o}):null]}),n?(0,_jsxRuntime.jsx)(_sharedUi.ChevronUp,{size:16,color:_sharedUi.night.color.textSecondary}):(0,_jsxRuntime.jsx)(_sharedUi.ChevronDown,{size:16,color:_sharedUi.night.color.textSecondary})]}),n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.collapsibleContent,children:l}):null]})};const UrlBreakdown=({url:i,requestData:e,operationName:l,graphqlVariables:a,requestClient:o,isPro:n=false,onUpgradePress:w})=>{const s=j=>{try{const d=new URL(j);const x=String(d.protocol||"");const y=String(d.host||"");const z=x==="https:";let u=String(d.pathname||"");if(o==="graphql"&&l){const f=(0,_formatGraphQLVariables.formatGraphQLDisplay)(l,a);u=`${u} (${f})`}else if(l){u=`${u} (${l})`}const p={};const g=d.searchParams;if(g&&typeof g.forEach==="function"){g.forEach((f,m)=>{p[m]=f})}return{protocol:x.replace(":",""),host:y,pathname:u,params:Object.keys(p).length>0?p:null,isSecure:z}}catch{return{protocol:"",host:i,pathname:"",params:null,isSecure:false}}};const r=(0,_react.useMemo)(()=>s(i),[i,o,l,a]);const[c,b]=(0,_react.useState)(false);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.urlBreakdown,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.urlRow,children:[r.isSecure?(0,_jsxRuntime.jsx)(_sharedUi.Lock,{size:12,color:_sharedUi.macOSColors.semantic.success}):(0,_jsxRuntime.jsx)(_sharedUi.Unlock,{size:12,color:_sharedUi.macOSColors.semantic.warning}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.urlDomain,children:r.host}),(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.urlProtocol,children:["(",r.protocol.toUpperCase(),")"]}),n?(0,_jsxRuntime.jsx)(_sharedUi.InlineCopyButton,{value:i,buttonStyle:styles.copyButton}):(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{style:styles.copyButton,onPress:w,activeOpacity:.7,children:(0,_jsxRuntime.jsx)(_sharedUi.Copy,{size:14,color:_sharedUi.night.color.textSecondary})})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.urlPathRow,children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.urlPath,numberOfLines:2,children:[r.pathname,r.params?(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.urlQueryString,children:["?",new URLSearchParams(r.params).toString()]}):null]})}),r.params?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.queryParamsCollapsible,children:[(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:styles.queryParamsToggle,onPress:()=>b(!c),activeOpacity:.7,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.queryParamsToggleText,children:"Query Parameters"}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.collapsibleCount,children:Object.keys(r.params).length}),c?(0,_jsxRuntime.jsx)(_sharedUi.ChevronUp,{size:14,color:_sharedUi.night.color.textSecondary}):(0,_jsxRuntime.jsx)(_sharedUi.ChevronDown,{size:14,color:_sharedUi.night.color.textSecondary})]}),c?(0,_jsxRuntime.jsx)(_dataViewer.DataViewer,{title:"",data:r.params,showTypeFilter:true,rawMode:true,initialExpanded:true}):null]}):null]})};const NetworkEventDetailView=exports.NetworkEventDetailView=(0,_react.memo)(function i({event:e,ignoredPatterns:l=EMPTY_PATTERNS,onTogglePattern:a=noop,showBodies:o=true}){const n=e.status?(0,_formatting.formatHttpStatus)(e.status):null;const w=!e.status&&!e.error;const{isPro:s}=(0,_sharedUi.useFeatureGate)();const[r,c]=(0,_react.useState)(false);(0,_react.useEffect)(()=>{if(r&&s){c(false)}},[r,s]);const b=(0,_networkBodyResolver.useNetworkBodyResolver)();const j=e.requestData===void 0&&(e.requestBodyOmitted===true||(e.requestSize??0)>0);const d=e.responseData===void 0&&(e.responseBodyOmitted===true||(e.responseSize??0)>0);const x=e.headersOmitted===true;const[y,z]=(0,_react.useState)(null);const[u,p]=(0,_react.useState)(false);(0,_react.useEffect)(()=>{z(null);if(!b||!j&&!d&&!x){p(false);return}let t=false;p(true);b(e.id).then(h=>{if(!t)z(h)}).catch(()=>{}).finally(()=>{if(!t)p(false)});return()=>{t=true}},[e.id,b,j,d,x]);const g=e.requestData??y?.requestData??void 0;const f=e.responseData??y?.responseData??void 0;const m=(x?y?.requestHeaders:void 0)??e.requestHeaders;const C=(x?y?.responseHeaders:void 0)??e.responseHeaders;const V=()=>{const 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:m,requestData:g,responseHeaders:C,responseData:f,requestSize:e.requestSize?(0,_formatting.formatBytes)(e.requestSize):"N/A",responseSize:e.responseSize?(0,_formatting.formatBytes)(e.responseSize):"N/A",error:e.error,client:e.requestClient};return`# Network Request Details
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.NetworkEventDetailView=void 0;var _react=require("react");var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _formatting=require("../utils/formatting");var _dataViewer=require("@buoy-gg/shared-ui/dataViewer");var _formatGraphQLVariables=require("../utils/formatGraphQLVariables");var _networkBodyResolver=require("../sync/networkBodyResolver");var _jsxRuntime=require("react/jsx-runtime");const NEUTRAL_ICON=_sharedUi.night.color.accent;const EMPTY_PATTERNS=new Set;const noop=()=>{};const TimingPhases=({timings:i,total:e})=>{const l=Math.max(1,e);const a=[{label:"Waiting (TTFB)",hint:"incl. queue, DNS, TLS",value:i.ttfb,color:_sharedUi.macOSColors.semantic.warning},{label:"Content download",hint:void 0,value:i.download,color:_sharedUi.macOSColors.semantic.success}];return(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.phaseList,children:a.map(o=>(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.phaseRow,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.phaseLabelGroup,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.phaseLabel,children:o.label}),o.hint?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.phaseHint,children:o.hint}):null]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.phaseTrack,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.phaseBar,{backgroundColor:o.color,width:`${Math.min(100,Math.max(1,o.value/l*100))}%`}]})}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.phaseValue,children:(0,_formatting.formatDuration)(o.value)})]},o.label))})};const BodyDeferred=()=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.bodyDeferred});const CollapsibleSection=({title:i,icon:e,children:l,defaultOpen:a=false,count:o})=>{const[n,w]=(0,_react.useState)(a);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.collapsibleSection,children:[(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:styles.collapsibleHeader,onPress:()=>w(!n),testID:`buoy-network-section-${i.toLowerCase().replace(/\s+/g,"-")}`,accessibilityRole:"button",accessibilityLabel:i,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.collapsibleTitle,children:[e,(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.collapsibleTitleText,children:i}),o!==void 0?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.collapsibleCount,children:o}):null]}),n?(0,_jsxRuntime.jsx)(_sharedUi.ChevronUp,{size:16,color:_sharedUi.night.color.textSecondary}):(0,_jsxRuntime.jsx)(_sharedUi.ChevronDown,{size:16,color:_sharedUi.night.color.textSecondary})]}),n?(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.collapsibleContent,children:l}):null]})};const UrlBreakdown=({url:i,requestData:e,operationName:l,graphqlVariables:a,requestClient:o,isPro:n=false,onUpgradePress:w})=>{const s=j=>{try{const d=new URL(j);const x=String(d.protocol||"");const y=String(d.host||"");const z=x==="https:";let u=String(d.pathname||"");if(o==="graphql"&&l){const f=(0,_formatGraphQLVariables.formatGraphQLDisplay)(l,a);u=`${u} (${f})`}else if(l){u=`${u} (${l})`}const p={};const g=d.searchParams;if(g&&typeof g.forEach==="function"){g.forEach((f,m)=>{p[m]=f})}return{protocol:x.replace(":",""),host:y,pathname:u,params:Object.keys(p).length>0?p:null,isSecure:z}}catch{return{protocol:"",host:i,pathname:"",params:null,isSecure:false}}};const r=(0,_react.useMemo)(()=>s(i),[i,o,l,a]);const[c,b]=(0,_react.useState)(false);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.urlBreakdown,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.urlRow,children:[r.isSecure?(0,_jsxRuntime.jsx)(_sharedUi.Lock,{size:12,color:_sharedUi.macOSColors.semantic.success}):(0,_jsxRuntime.jsx)(_sharedUi.Unlock,{size:12,color:_sharedUi.macOSColors.semantic.warning}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.urlDomain,children:r.host}),(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.urlProtocol,children:["(",r.protocol.toUpperCase(),")"]}),n?(0,_jsxRuntime.jsx)(_sharedUi.InlineCopyButton,{value:i,buttonStyle:styles.copyButton}):(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{style:styles.copyButton,onPress:w,activeOpacity:.7,children:(0,_jsxRuntime.jsx)(_sharedUi.Copy,{size:14,color:_sharedUi.night.color.textSecondary})})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.urlPathRow,children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.urlPath,numberOfLines:2,children:[r.pathname,r.params?(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.urlQueryString,children:["?",new URLSearchParams(r.params).toString()]}):null]})}),r.params?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.queryParamsCollapsible,children:[(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:styles.queryParamsToggle,onPress:()=>b(!c),activeOpacity:.7,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.queryParamsToggleText,children:"Query Parameters"}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.collapsibleCount,children:Object.keys(r.params).length}),c?(0,_jsxRuntime.jsx)(_sharedUi.ChevronUp,{size:14,color:_sharedUi.night.color.textSecondary}):(0,_jsxRuntime.jsx)(_sharedUi.ChevronDown,{size:14,color:_sharedUi.night.color.textSecondary})]}),c?(0,_jsxRuntime.jsx)(_dataViewer.DataViewer,{title:"",data:r.params,showTypeFilter:true,rawMode:true,initialExpanded:true}):null]}):null]})};const NetworkEventDetailView=exports.NetworkEventDetailView=(0,_react.memo)(function i({event:e,ignoredPatterns:l=EMPTY_PATTERNS,onTogglePattern:a=noop,showBodies:o=true}){const n=e.status?(0,_formatting.formatHttpStatus)(e.status):null;const w=!e.status&&!e.error;const{isPro:s}=(0,_sharedUi.useFeatureGate)();const[r,c]=(0,_react.useState)(false);(0,_react.useEffect)(()=>{if(r&&s){c(false)}},[r,s]);const b=(0,_networkBodyResolver.useNetworkBodyResolver)();const j=e.requestData===void 0&&(e.requestBodyOmitted===true||(e.requestSize??0)>0);const d=e.responseData===void 0&&(e.responseBodyOmitted===true||(e.responseSize??0)>0);const x=e.headersOmitted===true;const[y,z]=(0,_react.useState)(null);const[u,p]=(0,_react.useState)(false);(0,_react.useEffect)(()=>{z(null);if(!b||!j&&!d&&!x){p(false);return}let t=false;p(true);b(e.id).then(h=>{if(!t)z(h)}).catch(()=>{}).finally(()=>{if(!t)p(false)});return()=>{t=true}},[e.id,b,j,d,x]);const g=e.requestData??y?.requestData??void 0;const f=e.responseData!==void 0?e.responseData:y?.responseData;const m=(x?y?.requestHeaders:void 0)??e.requestHeaders;const C=(x?y?.responseHeaders:void 0)??e.responseHeaders;const V=()=>{const 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:m,requestData:g,responseHeaders:C,responseData:f,requestSize:e.requestSize?(0,_formatting.formatBytes)(e.requestSize):"N/A",responseSize:e.responseSize?(0,_formatting.formatBytes)(e.responseSize):"N/A",error:e.error,client:e.requestClient};return`# Network Request Details
2
2
 
3
3
  ## Request
4
4
  - **Method:** ${t.method}
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.NetworkEventDetailView=void 0;var _react=require("react");var _formatGraphQLVariables=require("../utils/formatGraphQLVariables");var _networkBodyResolver=require("../sync/networkBodyResolver");var _DataViewer=require("./DataViewer.web");var _jsxRuntime=require("react/jsx-runtime");const macOSColors={background:{base:"#0A0A0C",card:"#1A1A1C",hover:"#1D1D1F",input:"#26262A"},border:{default:"#2D2D2F"},text:{primary:"#F5F5F7",secondary:"#A1A1A6",muted:"#8E8E93"},semantic:{success:"#34C759",error:"#FF453A",errorBackground:"rgba(255, 69, 58, 0.15)",warning:"#FFEB3B",warningBackground:"rgba(255, 235, 59, 0.15)",info:"#00B8E6",infoBackground:"rgba(0, 184, 230, 0.1)"}};const NEUTRAL_ICON=macOSColors.semantic.success;function formatBytes(t){if(t===void 0||t===null)return"N/A";if(t===0)return"0 B";const e=1024;const s=["B","KB","MB","GB","TB"];const o=Math.floor(Math.log(t)/Math.log(e));return`${(t/Math.pow(e,o)).toFixed(1)} ${s[o]}`}function formatDuration(t){if(t===void 0||t===null)return"N/A";if(t<1e3)return`${t}ms`;if(t<6e4)return`${(t/1e3).toFixed(1)}s`;if(t<36e5){const o=Math.floor(t/6e4);const i=Math.floor(t%6e4/1e3);return i>0?`${o}m ${i}s`:`${o}m`}const e=Math.floor(t/36e5);const s=Math.floor(t%36e5/6e4);return s>0?`${e}h ${s}m`:`${e}h`}function formatRelativeTime(t,e=Date.now()){const s=t instanceof Date?t.getTime():t;const o=Math.floor((e-s)/1e3);if(o<0)return"just now";if(o<60)return o===0?"just now":`${o}s ago`;const i=Math.floor(o/60);if(i<60)return`${i}m ago`;const n=Math.floor(i/60);if(n<24)return`${n}h ago`;const l=Math.floor(n/24);return`${l}d ago`}function formatHttpStatus(t){if(t>=100&&t<200){return{text:String(t),color:macOSColors.semantic.info,meaning:"Informational"}}if(t>=200&&t<300){const e={200:"OK",201:"Created",202:"Accepted",204:"No Content",206:"Partial Content"};return{text:String(t),color:macOSColors.semantic.success,meaning:e[t]||"Success"}}if(t>=300&&t<400){const e={301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",307:"Temporary Redirect",308:"Permanent Redirect"};return{text:String(t),color:macOSColors.semantic.warning,meaning:e[t]||"Redirect"}}if(t>=400&&t<500){const e={400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",408:"Request Timeout",409:"Conflict",410:"Gone",422:"Unprocessable Entity",429:"Too Many Requests"};return{text:String(t),color:macOSColors.semantic.error,meaning:e[t]||"Client Error"}}if(t>=500){const e={500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported"};return{text:String(t),color:macOSColors.semantic.error,meaning:e[t]||"Server Error"}}return{text:String(t),color:macOSColors.text.muted,meaning:"Unknown"}}function Svg({size:t=14,color:e="currentColor",children:s}){return(0,_jsxRuntime.jsx)("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:e,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,display:"block"},children:s})}const Clock=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,_jsxRuntime.jsx)("polyline",{points:"12 6 12 12 16 14"})]});const Upload=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,_jsxRuntime.jsx)("polyline",{points:"17 8 12 3 7 8"}),(0,_jsxRuntime.jsx)("line",{x1:"12",x2:"12",y1:"3",y2:"15"})]});const Download=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,_jsxRuntime.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,_jsxRuntime.jsx)("line",{x1:"12",x2:"12",y1:"15",y2:"3"})]});const AlertCircle=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,_jsxRuntime.jsx)("line",{x1:"12",x2:"12",y1:"8",y2:"12"}),(0,_jsxRuntime.jsx)("line",{x1:"12",x2:"12.01",y1:"16",y2:"16"})]});const ChevronDown=t=>(0,_jsxRuntime.jsx)(Svg,{...t,children:(0,_jsxRuntime.jsx)("path",{d:"m6 9 6 6 6-6"})});const ChevronUp=t=>(0,_jsxRuntime.jsx)(Svg,{...t,children:(0,_jsxRuntime.jsx)("path",{d:"m18 15-6-6-6 6"})});const Lock=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2"}),(0,_jsxRuntime.jsx)("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]});const Unlock=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2"}),(0,_jsxRuntime.jsx)("path",{d:"M7 11V7a5 5 0 0 1 9.9-1"})]});const FileJson=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"}),(0,_jsxRuntime.jsx)("path",{d:"M14 2v4a2 2 0 0 0 2 2h4"}),(0,_jsxRuntime.jsx)("path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1"}),(0,_jsxRuntime.jsx)("path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1"})]});const Filter=t=>(0,_jsxRuntime.jsx)(Svg,{...t,children:(0,_jsxRuntime.jsx)("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"})});const Globe=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,_jsxRuntime.jsx)("path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"}),(0,_jsxRuntime.jsx)("path",{d:"M2 12h20"})]});const Link=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}),(0,_jsxRuntime.jsx)("path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"})]});const FlaskConical=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("path",{d:"M10 2v7.527a2 2 0 0 1-.211.896L4.72 20.55a1 1 0 0 0 .9 1.45h12.76a1 1 0 0 0 .9-1.45l-5.069-10.127A2 2 0 0 1 14 9.527V2"}),(0,_jsxRuntime.jsx)("path",{d:"M8.5 2h7"}),(0,_jsxRuntime.jsx)("path",{d:"M7 16h10"})]});const EMPTY_PATTERNS=new Set;const noop=()=>{};const TimingPhases=({timings:t,total:e})=>{const s=Math.max(1,e);const o=[{label:"Waiting (TTFB)",hint:"incl. queue, DNS, TLS",value:t.ttfb,color:macOSColors.semantic.warning},{label:"Content download",hint:void 0,value:t.download,color:macOSColors.semantic.success}];return(0,_jsxRuntime.jsx)("div",{style:styles.phaseList,children:o.map(i=>(0,_jsxRuntime.jsxs)("div",{style:styles.phaseRow,children:[(0,_jsxRuntime.jsxs)("div",{style:styles.phaseLabelGroup,children:[(0,_jsxRuntime.jsx)("div",{style:styles.phaseLabel,children:i.label}),i.hint?(0,_jsxRuntime.jsx)("div",{style:styles.phaseHint,children:i.hint}):null]}),(0,_jsxRuntime.jsx)("div",{style:styles.phaseTrack,children:(0,_jsxRuntime.jsx)("div",{style:{...styles.phaseBar,backgroundColor:i.color,width:`${Math.min(100,Math.max(1,i.value/s*100))}%`}})}),(0,_jsxRuntime.jsx)("span",{style:styles.phaseValue,children:formatDuration(i.value)})]},i.label))})};const BodyDeferred=()=>(0,_jsxRuntime.jsx)("div",{style:styles.bodyDeferred});const CollapsibleSection=({title:t,icon:e,children:s,defaultOpen:o=false,count:i})=>{const[n,l]=(0,_react.useState)(o);return(0,_jsxRuntime.jsxs)("div",{style:styles.collapsibleSection,children:[(0,_jsxRuntime.jsxs)("button",{type:"button",style:styles.collapsibleHeader,onClick:()=>l(!n),"aria-expanded":n,children:[(0,_jsxRuntime.jsxs)("span",{style:styles.collapsibleTitle,children:[e,(0,_jsxRuntime.jsx)("span",{style:styles.collapsibleTitleText,children:t}),i!==void 0?(0,_jsxRuntime.jsx)("span",{style:styles.collapsibleCount,children:i}):null]}),n?(0,_jsxRuntime.jsx)(ChevronUp,{size:16,color:macOSColors.text.secondary}):(0,_jsxRuntime.jsx)(ChevronDown,{size:16,color:macOSColors.text.secondary})]}),n?(0,_jsxRuntime.jsx)("div",{style:styles.collapsibleContent,children:s}):null]})};const UrlBreakdown=({url:t,operationName:e,graphqlVariables:s,requestClient:o})=>{const i=y=>{try{const a=new URL(y);const u=String(a.protocol||"");const f=String(a.host||"");const w=u==="https:";let d=String(a.pathname||"");if(o==="graphql"&&e){const h=(0,_formatGraphQLVariables.formatGraphQLDisplay)(e,s);d=`${d} (${h})`}else if(e){d=`${d} (${e})`}const x={};const c=a.searchParams;if(c&&typeof c.forEach==="function"){c.forEach((h,g)=>{x[g]=h})}return{protocol:u.replace(":",""),host:f,pathname:d,params:Object.keys(x).length>0?x:null,isSecure:w}}catch{return{protocol:"",host:t,pathname:"",params:null,isSecure:false}}};const n=(0,_react.useMemo)(()=>i(t),[t,o,e,s]);const[l,m]=(0,_react.useState)(false);return(0,_jsxRuntime.jsxs)("div",{style:styles.urlBreakdown,children:[(0,_jsxRuntime.jsxs)("div",{style:styles.urlRow,children:[n.isSecure?(0,_jsxRuntime.jsx)(Lock,{size:12,color:macOSColors.semantic.success}):(0,_jsxRuntime.jsx)(Unlock,{size:12,color:macOSColors.semantic.warning}),(0,_jsxRuntime.jsx)("span",{style:styles.urlDomain,children:n.host}),(0,_jsxRuntime.jsxs)("span",{style:styles.urlProtocol,children:["(",n.protocol.toUpperCase(),")"]}),(0,_jsxRuntime.jsx)(_DataViewer.InlineCopyButton,{value:t,buttonStyle:styles.copyButton})]}),(0,_jsxRuntime.jsx)("div",{style:styles.urlPathRow,children:(0,_jsxRuntime.jsxs)("span",{style:styles.urlPath,children:[n.pathname,n.params?(0,_jsxRuntime.jsxs)("span",{style:styles.urlQueryString,children:["?",new URLSearchParams(n.params).toString()]}):null]})}),n.params?(0,_jsxRuntime.jsxs)("div",{style:styles.queryParamsCollapsible,children:[(0,_jsxRuntime.jsxs)("button",{type:"button",style:styles.queryParamsToggle,onClick:()=>m(!l),"aria-expanded":l,children:[(0,_jsxRuntime.jsx)("span",{style:styles.queryParamsToggleText,children:"Query Parameters"}),(0,_jsxRuntime.jsx)("span",{style:{...styles.collapsibleCount,flex:1,textAlign:"left"},children:Object.keys(n.params).length}),l?(0,_jsxRuntime.jsx)(ChevronUp,{size:14,color:macOSColors.text.secondary}):(0,_jsxRuntime.jsx)(ChevronDown,{size:14,color:macOSColors.text.secondary})]}),l?(0,_jsxRuntime.jsx)(_DataViewer.DataViewer,{title:"",data:n.params,showTypeFilter:true,rawMode:true,initialExpanded:true}):null]}):null]})};const NetworkEventDetailView=exports.NetworkEventDetailView=(0,_react.memo)(function t({event:e,ignoredPatterns:s=EMPTY_PATTERNS,onTogglePattern:o=noop,showBodies:i=true}){const n=e.status?formatHttpStatus(e.status):null;const l=!e.status&&!e.error;const m=(0,_networkBodyResolver.useNetworkBodyResolver)();const y=e.requestData===void 0&&(e.requestBodyOmitted===true||(e.requestSize??0)>0);const a=e.responseData===void 0&&(e.responseBodyOmitted===true||(e.responseSize??0)>0);const u=e.headersOmitted===true;const[f,w]=(0,_react.useState)(null);const[d,x]=(0,_react.useState)(false);(0,_react.useEffect)(()=>{w(null);if(!m||!y&&!a&&!u){x(false);return}let r=false;x(true);m(e.id).then(p=>{if(!r)w(p)}).catch(()=>{}).finally(()=>{if(!r)x(false)});return()=>{r=true}},[e.id,m,y,a,u]);const c=e.requestData??f?.requestData??void 0;const h=e.responseData??f?.responseData??void 0;const g=(u?f?.requestHeaders:void 0)??e.requestHeaders;const S=(u?f?.responseHeaders:void 0)??e.responseHeaders;const z=()=>{const r={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:g,requestData:c,responseHeaders:S,responseData:h,requestSize:e.requestSize?formatBytes(e.requestSize):"N/A",responseSize:e.responseSize?formatBytes(e.responseSize):"N/A",error:e.error,client:e.requestClient};return`# Network Request Details
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.NetworkEventDetailView=void 0;var _react=require("react");var _formatGraphQLVariables=require("../utils/formatGraphQLVariables");var _networkBodyResolver=require("../sync/networkBodyResolver");var _DataViewer=require("./DataViewer.web");var _jsxRuntime=require("react/jsx-runtime");const macOSColors={background:{base:"#0A0A0C",card:"#1A1A1C",hover:"#1D1D1F",input:"#26262A"},border:{default:"#2D2D2F"},text:{primary:"#F5F5F7",secondary:"#A1A1A6",muted:"#8E8E93"},semantic:{success:"#34C759",error:"#FF453A",errorBackground:"rgba(255, 69, 58, 0.15)",warning:"#FFEB3B",warningBackground:"rgba(255, 235, 59, 0.15)",info:"#00B8E6",infoBackground:"rgba(0, 184, 230, 0.1)"}};const NEUTRAL_ICON=macOSColors.semantic.success;function formatBytes(t){if(t===void 0||t===null)return"N/A";if(t===0)return"0 B";const e=1024;const s=["B","KB","MB","GB","TB"];const o=Math.floor(Math.log(t)/Math.log(e));return`${(t/Math.pow(e,o)).toFixed(1)} ${s[o]}`}function formatDuration(t){if(t===void 0||t===null)return"N/A";if(t<1e3)return`${t}ms`;if(t<6e4)return`${(t/1e3).toFixed(1)}s`;if(t<36e5){const o=Math.floor(t/6e4);const i=Math.floor(t%6e4/1e3);return i>0?`${o}m ${i}s`:`${o}m`}const e=Math.floor(t/36e5);const s=Math.floor(t%36e5/6e4);return s>0?`${e}h ${s}m`:`${e}h`}function formatRelativeTime(t,e=Date.now()){const s=t instanceof Date?t.getTime():t;const o=Math.floor((e-s)/1e3);if(o<0)return"just now";if(o<60)return o===0?"just now":`${o}s ago`;const i=Math.floor(o/60);if(i<60)return`${i}m ago`;const n=Math.floor(i/60);if(n<24)return`${n}h ago`;const l=Math.floor(n/24);return`${l}d ago`}function formatHttpStatus(t){if(t>=100&&t<200){return{text:String(t),color:macOSColors.semantic.info,meaning:"Informational"}}if(t>=200&&t<300){const e={200:"OK",201:"Created",202:"Accepted",204:"No Content",206:"Partial Content"};return{text:String(t),color:macOSColors.semantic.success,meaning:e[t]||"Success"}}if(t>=300&&t<400){const e={301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",307:"Temporary Redirect",308:"Permanent Redirect"};return{text:String(t),color:macOSColors.semantic.warning,meaning:e[t]||"Redirect"}}if(t>=400&&t<500){const e={400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",408:"Request Timeout",409:"Conflict",410:"Gone",422:"Unprocessable Entity",429:"Too Many Requests"};return{text:String(t),color:macOSColors.semantic.error,meaning:e[t]||"Client Error"}}if(t>=500){const e={500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported"};return{text:String(t),color:macOSColors.semantic.error,meaning:e[t]||"Server Error"}}return{text:String(t),color:macOSColors.text.muted,meaning:"Unknown"}}function Svg({size:t=14,color:e="currentColor",children:s}){return(0,_jsxRuntime.jsx)("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:e,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,display:"block"},children:s})}const Clock=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,_jsxRuntime.jsx)("polyline",{points:"12 6 12 12 16 14"})]});const Upload=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,_jsxRuntime.jsx)("polyline",{points:"17 8 12 3 7 8"}),(0,_jsxRuntime.jsx)("line",{x1:"12",x2:"12",y1:"3",y2:"15"})]});const Download=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,_jsxRuntime.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,_jsxRuntime.jsx)("line",{x1:"12",x2:"12",y1:"15",y2:"3"})]});const AlertCircle=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,_jsxRuntime.jsx)("line",{x1:"12",x2:"12",y1:"8",y2:"12"}),(0,_jsxRuntime.jsx)("line",{x1:"12",x2:"12.01",y1:"16",y2:"16"})]});const ChevronDown=t=>(0,_jsxRuntime.jsx)(Svg,{...t,children:(0,_jsxRuntime.jsx)("path",{d:"m6 9 6 6 6-6"})});const ChevronUp=t=>(0,_jsxRuntime.jsx)(Svg,{...t,children:(0,_jsxRuntime.jsx)("path",{d:"m18 15-6-6-6 6"})});const Lock=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2"}),(0,_jsxRuntime.jsx)("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]});const Unlock=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2"}),(0,_jsxRuntime.jsx)("path",{d:"M7 11V7a5 5 0 0 1 9.9-1"})]});const FileJson=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"}),(0,_jsxRuntime.jsx)("path",{d:"M14 2v4a2 2 0 0 0 2 2h4"}),(0,_jsxRuntime.jsx)("path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1"}),(0,_jsxRuntime.jsx)("path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1"})]});const Filter=t=>(0,_jsxRuntime.jsx)(Svg,{...t,children:(0,_jsxRuntime.jsx)("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"})});const Globe=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,_jsxRuntime.jsx)("path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"}),(0,_jsxRuntime.jsx)("path",{d:"M2 12h20"})]});const Link=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}),(0,_jsxRuntime.jsx)("path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"})]});const FlaskConical=t=>(0,_jsxRuntime.jsxs)(Svg,{...t,children:[(0,_jsxRuntime.jsx)("path",{d:"M10 2v7.527a2 2 0 0 1-.211.896L4.72 20.55a1 1 0 0 0 .9 1.45h12.76a1 1 0 0 0 .9-1.45l-5.069-10.127A2 2 0 0 1 14 9.527V2"}),(0,_jsxRuntime.jsx)("path",{d:"M8.5 2h7"}),(0,_jsxRuntime.jsx)("path",{d:"M7 16h10"})]});const EMPTY_PATTERNS=new Set;const noop=()=>{};const TimingPhases=({timings:t,total:e})=>{const s=Math.max(1,e);const o=[{label:"Waiting (TTFB)",hint:"incl. queue, DNS, TLS",value:t.ttfb,color:macOSColors.semantic.warning},{label:"Content download",hint:void 0,value:t.download,color:macOSColors.semantic.success}];return(0,_jsxRuntime.jsx)("div",{style:styles.phaseList,children:o.map(i=>(0,_jsxRuntime.jsxs)("div",{style:styles.phaseRow,children:[(0,_jsxRuntime.jsxs)("div",{style:styles.phaseLabelGroup,children:[(0,_jsxRuntime.jsx)("div",{style:styles.phaseLabel,children:i.label}),i.hint?(0,_jsxRuntime.jsx)("div",{style:styles.phaseHint,children:i.hint}):null]}),(0,_jsxRuntime.jsx)("div",{style:styles.phaseTrack,children:(0,_jsxRuntime.jsx)("div",{style:{...styles.phaseBar,backgroundColor:i.color,width:`${Math.min(100,Math.max(1,i.value/s*100))}%`}})}),(0,_jsxRuntime.jsx)("span",{style:styles.phaseValue,children:formatDuration(i.value)})]},i.label))})};const BodyDeferred=()=>(0,_jsxRuntime.jsx)("div",{style:styles.bodyDeferred});const CollapsibleSection=({title:t,icon:e,children:s,defaultOpen:o=false,count:i})=>{const[n,l]=(0,_react.useState)(o);return(0,_jsxRuntime.jsxs)("div",{style:styles.collapsibleSection,children:[(0,_jsxRuntime.jsxs)("button",{type:"button",style:styles.collapsibleHeader,onClick:()=>l(!n),"aria-expanded":n,children:[(0,_jsxRuntime.jsxs)("span",{style:styles.collapsibleTitle,children:[e,(0,_jsxRuntime.jsx)("span",{style:styles.collapsibleTitleText,children:t}),i!==void 0?(0,_jsxRuntime.jsx)("span",{style:styles.collapsibleCount,children:i}):null]}),n?(0,_jsxRuntime.jsx)(ChevronUp,{size:16,color:macOSColors.text.secondary}):(0,_jsxRuntime.jsx)(ChevronDown,{size:16,color:macOSColors.text.secondary})]}),n?(0,_jsxRuntime.jsx)("div",{style:styles.collapsibleContent,children:s}):null]})};const UrlBreakdown=({url:t,operationName:e,graphqlVariables:s,requestClient:o})=>{const i=y=>{try{const a=new URL(y);const u=String(a.protocol||"");const f=String(a.host||"");const w=u==="https:";let d=String(a.pathname||"");if(o==="graphql"&&e){const h=(0,_formatGraphQLVariables.formatGraphQLDisplay)(e,s);d=`${d} (${h})`}else if(e){d=`${d} (${e})`}const x={};const c=a.searchParams;if(c&&typeof c.forEach==="function"){c.forEach((h,g)=>{x[g]=h})}return{protocol:u.replace(":",""),host:f,pathname:d,params:Object.keys(x).length>0?x:null,isSecure:w}}catch{return{protocol:"",host:t,pathname:"",params:null,isSecure:false}}};const n=(0,_react.useMemo)(()=>i(t),[t,o,e,s]);const[l,m]=(0,_react.useState)(false);return(0,_jsxRuntime.jsxs)("div",{style:styles.urlBreakdown,children:[(0,_jsxRuntime.jsxs)("div",{style:styles.urlRow,children:[n.isSecure?(0,_jsxRuntime.jsx)(Lock,{size:12,color:macOSColors.semantic.success}):(0,_jsxRuntime.jsx)(Unlock,{size:12,color:macOSColors.semantic.warning}),(0,_jsxRuntime.jsx)("span",{style:styles.urlDomain,children:n.host}),(0,_jsxRuntime.jsxs)("span",{style:styles.urlProtocol,children:["(",n.protocol.toUpperCase(),")"]}),(0,_jsxRuntime.jsx)(_DataViewer.InlineCopyButton,{value:t,buttonStyle:styles.copyButton})]}),(0,_jsxRuntime.jsx)("div",{style:styles.urlPathRow,children:(0,_jsxRuntime.jsxs)("span",{style:styles.urlPath,children:[n.pathname,n.params?(0,_jsxRuntime.jsxs)("span",{style:styles.urlQueryString,children:["?",new URLSearchParams(n.params).toString()]}):null]})}),n.params?(0,_jsxRuntime.jsxs)("div",{style:styles.queryParamsCollapsible,children:[(0,_jsxRuntime.jsxs)("button",{type:"button",style:styles.queryParamsToggle,onClick:()=>m(!l),"aria-expanded":l,children:[(0,_jsxRuntime.jsx)("span",{style:styles.queryParamsToggleText,children:"Query Parameters"}),(0,_jsxRuntime.jsx)("span",{style:{...styles.collapsibleCount,flex:1,textAlign:"left"},children:Object.keys(n.params).length}),l?(0,_jsxRuntime.jsx)(ChevronUp,{size:14,color:macOSColors.text.secondary}):(0,_jsxRuntime.jsx)(ChevronDown,{size:14,color:macOSColors.text.secondary})]}),l?(0,_jsxRuntime.jsx)(_DataViewer.DataViewer,{title:"",data:n.params,showTypeFilter:true,rawMode:true,initialExpanded:true}):null]}):null]})};const NetworkEventDetailView=exports.NetworkEventDetailView=(0,_react.memo)(function t({event:e,ignoredPatterns:s=EMPTY_PATTERNS,onTogglePattern:o=noop,showBodies:i=true}){const n=e.status?formatHttpStatus(e.status):null;const l=!e.status&&!e.error;const m=(0,_networkBodyResolver.useNetworkBodyResolver)();const y=e.requestData===void 0&&(e.requestBodyOmitted===true||(e.requestSize??0)>0);const a=e.responseData===void 0&&(e.responseBodyOmitted===true||(e.responseSize??0)>0);const u=e.headersOmitted===true;const[f,w]=(0,_react.useState)(null);const[d,x]=(0,_react.useState)(false);(0,_react.useEffect)(()=>{w(null);if(!m||!y&&!a&&!u){x(false);return}let r=false;x(true);m(e.id).then(p=>{if(!r)w(p)}).catch(()=>{}).finally(()=>{if(!r)x(false)});return()=>{r=true}},[e.id,m,y,a,u]);const c=e.requestData??f?.requestData??void 0;const h=e.responseData!==void 0?e.responseData:f?.responseData;const g=(u?f?.requestHeaders:void 0)??e.requestHeaders;const S=(u?f?.responseHeaders:void 0)??e.responseHeaders;const z=()=>{const r={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:g,requestData:c,responseHeaders:S,responseData:h,requestSize:e.requestSize?formatBytes(e.requestSize):"N/A",responseSize:e.responseSize?formatBytes(e.responseSize):"N/A",error:e.error,client:e.requestClient};return`# Network Request Details
2
2
 
3
3
  ## Request
4
4
  - **Method:** ${r.method}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.NetworkModal=NetworkModal;exports.NetworkToolView=NetworkToolView;var _NetworkFloatingTool=require("../conditions/NetworkFloatingTool");var _react=require("react");var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _NetworkFilterViewV=require("./NetworkFilterViewV3");var _useTickEveryMinute=require("../hooks/useTickEveryMinute");var _NetworkEventDetailView=require("./NetworkEventDetailView");var _NetworkCopySettingsView=require("./NetworkCopySettingsView");var _NetworkHeaderLive=require("./NetworkHeaderLive");var _NetworkListScreen=require("./NetworkListScreen");var _NetworkSavedScreen=require("./NetworkSavedScreen");var _NetworkOverridesScreen=require("./NetworkOverridesScreen");var _NetworkOverridesButton=require("./NetworkOverridesButton");var _NetworkOverrideHeaderButton=require("./NetworkOverrideHeaderButton");var _NetworkHeaderMenu=require("./NetworkHeaderMenu");var _NetworkDetailStepper=require("./NetworkDetailStepper");var _useNetworkEventList=require("../hooks/useNetworkEventList");var _useLiveNetworkEvent=require("../hooks/useLiveNetworkEvent");var _useNetworkSelection=require("../hooks/useNetworkSelection");var _networkSelectionStore=require("../utils/networkSelectionStore");var _networkSavedStore=require("../utils/networkSavedStore");var _types=require("../overrides/types");var _jsxRuntime=require("react/jsx-runtime");function NetworkDetailScreen({visible:t,paused:i,ignoredPatternValues:l,onTogglePattern:d,isPro:g,filter:n,ignoredPatterns:c,fromSaved:u,savedSearch:S,applySafeAreaInset:s}){const w=(0,_useNetworkSelection.useSelectedNetworkEventId)();const M=(0,_useNetworkSelection.useNetworkBodyEventId)();const k=w!=null&&w===M;const r=(0,_useLiveNetworkEvent.useLiveNetworkEvent)(w,{paused:i||!t});(0,_react.useEffect)(()=>{if(t&&r&&k){_networkSelectionStore.networkSelectionStore.reportRendered(r.id)}},[t,r,k]);if(!t)return null;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.detailRoot,children:[r?(0,_jsxRuntime.jsx)(_NetworkEventDetailView.NetworkEventDetailView,{event:r,ignoredPatterns:l,onTogglePattern:d,showBodies:k}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.detailBodyFallback}),(0,_jsxRuntime.jsx)(_NetworkDetailStepper.NetworkDetailStepper,{paused:i,filter:n,ignoredPatterns:c,isPro:g,fromSaved:u,savedSearch:S,applySafeAreaInset:s})]})}function NetworkFilterScreen({visible:t,paused:i,isPro:l,filter:d,onFilterChange:g,ignoredPatterns:n,onRemovePattern:c,onAddPattern:u,onTogglePatternMode:S,isTeamPattern:s}){const{events:w}=(0,_useNetworkEventList.useNetworkEventList)({filter:d,ignoredPatterns:n,paused:i,visible:t,isPro:l});if(!t)return null;return(0,_jsxRuntime.jsx)(_NetworkFilterViewV.NetworkFilterViewV3,{events:w,filter:d,onFilterChange:g,ignoredPatterns:n,onRemovePattern:c,onAddPattern:u,onTogglePatternMode:S,isTeamPattern:s})}function NetworkCopyScreen({visible:t,paused:i,isPro:l,filter:d,ignoredPatterns:g,settings:n,onSettingsChange:c}){const{events:u}=(0,_useNetworkEventList.useNetworkEventList)({filter:d,ignoredPatterns:g,paused:i,visible:t,isPro:l});if(!t)return null;return(0,_jsxRuntime.jsx)(_NetworkCopySettingsView.NetworkCopySettingsView,{settings:n,onSettingsChange:c,events:u})}function NetworkModalInner({visible:t,onClose:i,onBack:l,onMinimize:d,enableSharedModalDimensions:g=false,inline:n=false,paused:c,onPausedChange:u,remoteConditions:S}){const{isPro:s}=(0,_sharedUi.useFeatureGate)();const[w,M]=(0,_react.useState)(false);const k=c!=null&&u!=null;const r=k?c:w;const Q=e=>{const o=typeof e==="function"?e(r):e;if(k)u(o);else M(o)};const[a,C]=(0,_react.useState)({});const v=(0,_useNetworkSelection.useHasNetworkSelection)();const[h,V]=(0,_react.useState)(false);const[m,B]=(0,_react.useState)(false);const[j,H]=(0,_react.useState)(false);const[A,p]=(0,_react.useState)(false);const[Z,L]=(0,_react.useState)(0);const[f]=(0,_react.useState)(_NetworkFloatingTool.createRemoteConditionsSource);(0,_react.useEffect)(()=>{f.update(S)},[f,S]);(0,_react.useEffect)(()=>()=>f.update(void 0),[f]);const y=true;const[ee,T]=(0,_react.useState)(null);const[R,D]=(0,_react.useState)("filters");const[U,te]=(0,_react.useState)("");const[E,q]=(0,_react.useState)(false);const ye=(0,_react.useRef)(false);const[z,re]=(0,_react.useState)("");const oe=(0,_react.useRef)(null);const{patterns:x,values:se,add:ne,remove:ae,toggle:ie,toggleMode:le,isTeamOnly:de}=(0,_sharedUi.useIgnoredPatterns)();const[P,K]=(0,_react.useState)(_NetworkCopySettingsView.DEFAULT_COPY_SETTINGS);const I=(0,_react.useRef)(false);const[_,O]=(0,_react.useState)(false);const[N,ce]=(0,_react.useState)("export");const b=e=>{ce(e);O(true)};(0,_react.useEffect)(()=>{if(_&&s){O(false)}},[_,s]);(0,_react.useEffect)(()=>{if(!t||I.current)return;const e=async()=>{try{const o=await _sharedUi.persistentStorage.getItem(_sharedUi.devToolsStorageKeys.network.copyOptions());if(o){const fe=JSON.parse(o);K(fe)}}catch(o){}finally{I.current=true}};e()},[t]);(0,_react.useEffect)(()=>{if(!I.current)return;const e=async()=>{try{await _sharedUi.persistentStorage.setItem(_sharedUi.devToolsStorageKeys.network.copyOptions(),JSON.stringify(P))}catch(o){}};e()},[P]);const ue=()=>{_networkSelectionStore.networkSelectionStore.clear()};const W=(0,_react.useCallback)(e=>{_networkSelectionStore.networkSelectionStore.select(e.id)},[]);const Se=(0,_react.useCallback)((e,o)=>{T(o?{...e,id:o}:e);H(true);_networkSelectionStore.networkSelectionStore.clear()},[]);const ve=(0,_react.useCallback)(()=>T(null),[]);const J=(0,_react.useRef)(null);const $=e=>{te(e);C(o=>({...o,searchText:e}))};const ge=e=>{C(o=>({...o,status:o.status===e?void 0:e}))};const[G,we]=(0,_react.useState)("bottomSheet");const he=e=>{we(e)};(0,_react.useEffect)(()=>{if(E){requestAnimationFrame(()=>{oe.current?.focus()})}},[E]);const X=()=>{if(h){return(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader,{children:[(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation,{onBack:()=>V(false)}),(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Content,{title:"",noMargin:true,children:(0,_jsxRuntime.jsx)(_sharedUi.NightSegmented,{size:"sm",tabs:[{key:"filters",label:"Filters"},{key:"copy",label:"Copy"}],activeKey:R,onChange:e=>D(e)})})]})}if(v){return(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader,{children:[(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation,{onBack:ue}),(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Content,{title:"Request Details",centered:true}),(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader.Actions,{children:[y?(0,_jsxRuntime.jsx)(_NetworkOverrideHeaderButton.NetworkOverrideHeaderButton,{onOpen:Se}):null,(0,_jsxRuntime.jsx)(_NetworkHeaderLive.NetworkDetailPinActions,{isPro:s,onUpgradePress:()=>b("saved")})]})]})}if(j&&y){return(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader,{children:[(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation,{onBack:()=>{if(J.current?.())return;H(false);T(null)}}),(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Content,{title:"Response Overrides",centered:true})]})}if(m){return(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader,{children:[(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation,{onBack:()=>B(false)}),(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Content,{title:"Saved Requests",centered:true})]})}return(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader,{children:[l&&(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation,{onBack:l}),(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Content,{title:"",children:E?(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Search,{value:U,onChangeText:$,onCancel:()=>{$("");q(false)},onDismiss:()=>q(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"}}):(0,_jsxRuntime.jsx)(_NetworkHeaderLive.NetworkHeaderBadges,{activeStatus:a.status,onToggleStatus:ge,ignoredPatterns:x,paused:r})}),(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader.Actions,{children:[(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{"sentry-label":"ignore open search",testID:"buoy-network-search-open",accessibilityLabel:"Open search",accessibilityRole:"button",onPress:()=>q(true),style:styles.headerActionButton,children:(0,_jsxRuntime.jsx)(_sharedUi.Search,{size:14,color:_sharedUi.night.color.textSecondary})}),y?(0,_jsxRuntime.jsx)(_NetworkOverridesButton.NetworkOverridesButton,{onPress:()=>H(true)}):null,(0,_jsxRuntime.jsx)(_sharedUi.PowerToggleButton,{isEnabled:!r,onToggle:()=>Q(e=>!e),accessibilityLabel:r?"Resume network capture":"Pause network capture",testID:"buoy-network-power"}),(0,_jsxRuntime.jsx)(_NetworkHeaderLive.NetworkClearButton,{paused:r}),(0,_jsxRuntime.jsx)(_NetworkHeaderMenu.NetworkHeaderMenuButton,{onPress:()=>p(e=>!e),isOpen:A,hasIndicator:F})]})]})};const F=!!(a.status||a.method||a.contentType);const pe=g?_sharedUi.devToolsStorageKeys.modal.root():_sharedUi.devToolsStorageKeys.network.modal();if(!t)return null;const ke=v||!h;const Y=(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.container,children:[(0,_jsxRuntime.jsx)(NetworkDetailScreen,{visible:v,paused:r,ignoredPatternValues:se,onTogglePattern:ie,isPro:s,filter:a,ignoredPatterns:x,fromSaved:m,savedSearch:z,applySafeAreaInset:!n&&G==="bottomSheet"}),(0,_jsxRuntime.jsx)(NetworkFilterScreen,{visible:h&&R==="filters"&&!v,paused:r,isPro:s,filter:a,onFilterChange:C,ignoredPatterns:x,onRemovePattern:ae,onAddPattern:ne,onTogglePatternMode:le,isTeamPattern:de}),(0,_jsxRuntime.jsx)(NetworkCopyScreen,{visible:h&&R==="copy"&&!v,paused:r,isPro:s,filter:a,ignoredPatterns:x,settings:P,onSettingsChange:K}),(0,_jsxRuntime.jsx)(_NetworkOverridesScreen.NetworkOverridesScreen,{visible:y&&j&&!v&&!h,isPro:s,onUpgradePress:()=>b("overrides"),pendingDraft:ee,onPendingConsumed:ve,backHandlerRef:J,applySafeAreaInset:!n&&G==="bottomSheet"}),(0,_jsxRuntime.jsx)(_NetworkSavedScreen.NetworkSavedScreen,{visible:m&&!v&&!h&&!(j&&y),isPro:s,copySettings:P,search:z,onSearchChange:re,onEventPress:W,onUpgradePress:()=>b("saved")}),(0,_jsxRuntime.jsx)(_NetworkListScreen.NetworkListScreen,{visible:!v&&!h&&!m&&!(j&&y),paused:r,filter:a,ignoredPatterns:x,isPro:s,searchText:U,onEventPress:W,onUpgradePress:()=>b("export")})]}),A?(0,_jsxRuntime.jsxs)(_NetworkHeaderMenu.NetworkHeaderMenu,{onClose:()=>p(false),children:[(0,_jsxRuntime.jsx)(_NetworkHeaderMenu.NetworkHeaderMenuItem,{icon:(0,_jsxRuntime.jsx)(_sharedUi.Wifi,{size:14,color:_sharedUi.night.color.textSecondary}),label:"Network throttling",testID:"buoy-network-menu-throttling",onPress:()=>{p(false);(0,_NetworkFloatingTool.openNetworkFloatingTool)(S?f:void 0);if(!n)L(e=>e+1)}}),(0,_jsxRuntime.jsx)(_NetworkHeaderMenu.NetworkHeaderMenuItem,{icon:(0,_jsxRuntime.jsx)(_sharedUi.Wifi,{size:14,color:_sharedUi.night.color.textSecondary}),label:"Speed and link state",testID:"buoy-network-menu-conditions",onPress:()=>{p(false);(0,_NetworkFloatingTool.openNetworkFloatingTool)(S?f:void 0,true);if(!n)L(e=>e+1)}}),(0,_jsxRuntime.jsx)(_NetworkHeaderMenu.NetworkHeaderMenuItem,{icon:(0,_jsxRuntime.jsx)(_sharedUi.Filter,{size:14,color:F?_sharedUi.night.color.accent:_sharedUi.night.color.textSecondary}),label:"Filters",detail:F?"Active":void 0,onPress:()=>{p(false);D("filters");V(true)}}),(0,_jsxRuntime.jsx)(_NetworkHeaderMenu.NetworkHeaderMenuItem,{icon:(0,_jsxRuntime.jsx)(_sharedUi.Bookmark,{size:14,color:_sharedUi.night.color.textSecondary}),label:"Saved requests",onPress:()=>{p(false);B(true)}}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.menuCopyRow,children:(0,_jsxRuntime.jsx)(_NetworkHeaderLive.NetworkHeaderCopyButton,{isPro:s,filter:a,ignoredPatterns:x,copySettings:P,paused:r,onUpgradePress:()=>{p(false);b("export")},label:"Copy requests"})})]}):null,(0,_jsxRuntime.jsx)(_sharedUi.UpgradeModal,{visible:_,onClose:()=>O(false),featureName:N==="saved"?"Saved Requests":N==="overrides"?"Response Overrides":"Network Export",description:N==="saved"?"Keep the requests that matter. Saved requests survive Clear, app restarts, and the 500-request history cap.":N==="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:N==="overrides"?[`Run ${_types.MAX_RULES} rules at once (free keeps ${_types.FREE_TIER_RULE_LIMIT})`,"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"]:N==="saved"?[`Save up to ${_networkSavedStore.MAX_SAVED} requests (free keeps ${_networkSavedStore.FREE_TIER_SAVED_LIMIT})`,"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"]})]});if(n){return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.inlineRoot,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.inlineHeader,..._sharedUi.windowDragProps,children:X()}),Y]})}return(0,_jsxRuntime.jsx)(_sharedUi.JsModal,{visible:t,onClose:i,onMinimize:d,minimizeRequest:Z,persistenceKey:pe,variant:"night",header:{showToggleButton:true,customContent:X()},onModeChange:he,enablePersistence:true,initialMode:"bottomSheet",enableGlitchEffects:true,disableScrollWrapper:ke,styles:{},children:Y})}const styles=_reactNative.StyleSheet.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:_sharedUi.macOSColors.border.default,backgroundColor:"transparent"},menuCopyRow:{paddingHorizontal:6},headerActionButton:{width:32,height:32,borderRadius:8,backgroundColor:_sharedUi.night.color.buttonSurface,borderWidth:1,borderColor:_sharedUi.night.color.border,alignItems:"center",justifyContent:"center"},activeFilterButton:{backgroundColor:_sharedUi.night.color.accentSoft,borderColor:_sharedUi.night.color.accentBorderStrong}});function NetworkModal(t){return(0,_jsxRuntime.jsx)(_useTickEveryMinute.TickProvider,{children:(0,_jsxRuntime.jsx)(NetworkModalInner,{...t})})}function NetworkToolView(t={}){return(0,_jsxRuntime.jsx)(_useTickEveryMinute.TickProvider,{children:(0,_jsxRuntime.jsx)(NetworkModalInner,{...t,inline:true,visible:true,onClose:noop})})}const noop=()=>{};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.NetworkModal=NetworkModal;exports.NetworkToolView=NetworkToolView;var _NetworkFloatingTool=require("../conditions/NetworkFloatingTool");var _react=require("react");var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _NetworkFilterViewV=require("./NetworkFilterViewV3");var _useTickEveryMinute=require("../hooks/useTickEveryMinute");var _NetworkEventDetailView=require("./NetworkEventDetailView");var _NetworkCopySettingsView=require("./NetworkCopySettingsView");var _NetworkHeaderLive=require("./NetworkHeaderLive");var _NetworkListScreen=require("./NetworkListScreen");var _NetworkSavedScreen=require("./NetworkSavedScreen");var _NetworkOverridesScreen=require("./NetworkOverridesScreen");var _NetworkOverridesButton=require("./NetworkOverridesButton");var _NetworkOverrideHeaderButton=require("./NetworkOverrideHeaderButton");var _NetworkSocketsButton=require("./sockets/NetworkSocketsButton");var _NetworkSocketsScreen=require("./sockets/NetworkSocketsScreen");var _NetworkHeaderMenu=require("./NetworkHeaderMenu");var _NetworkDetailStepper=require("./NetworkDetailStepper");var _useNetworkEventList=require("../hooks/useNetworkEventList");var _useLiveNetworkEvent=require("../hooks/useLiveNetworkEvent");var _useNetworkSelection=require("../hooks/useNetworkSelection");var _networkSelectionStore=require("../utils/networkSelectionStore");var _networkSavedStore=require("../utils/networkSavedStore");var _types=require("../overrides/types");var _jsxRuntime=require("react/jsx-runtime");function NetworkDetailScreen({visible:t,paused:c,ignoredPatternValues:d,onTogglePattern:u,isPro:g,filter:n,ignoredPatterns:k,fromSaved:S,savedSearch:w,applySafeAreaInset:o}){const p=(0,_useNetworkSelection.useSelectedNetworkEventId)();const C=(0,_useNetworkSelection.useNetworkBodyEventId)();const f=p!=null&&p===C;const r=(0,_useLiveNetworkEvent.useLiveNetworkEvent)(p,{paused:c||!t});(0,_react.useEffect)(()=>{if(t&&r&&f){_networkSelectionStore.networkSelectionStore.reportRendered(r.id)}},[t,r,f]);if(!t)return null;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.detailRoot,children:[r?(0,_jsxRuntime.jsx)(_NetworkEventDetailView.NetworkEventDetailView,{event:r,ignoredPatterns:d,onTogglePattern:u,showBodies:f}):(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.detailBodyFallback}),(0,_jsxRuntime.jsx)(_NetworkDetailStepper.NetworkDetailStepper,{paused:c,filter:n,ignoredPatterns:k,isPro:g,fromSaved:S,savedSearch:w,applySafeAreaInset:o})]})}function NetworkFilterScreen({visible:t,paused:c,isPro:d,filter:u,onFilterChange:g,ignoredPatterns:n,onRemovePattern:k,onAddPattern:S,onTogglePatternMode:w,isTeamPattern:o}){const{events:p}=(0,_useNetworkEventList.useNetworkEventList)({filter:u,ignoredPatterns:n,paused:c,visible:t,isPro:d});if(!t)return null;return(0,_jsxRuntime.jsx)(_NetworkFilterViewV.NetworkFilterViewV3,{events:p,filter:u,onFilterChange:g,ignoredPatterns:n,onRemovePattern:k,onAddPattern:S,onTogglePatternMode:w,isTeamPattern:o})}function NetworkCopyScreen({visible:t,paused:c,isPro:d,filter:u,ignoredPatterns:g,settings:n,onSettingsChange:k}){const{events:S}=(0,_useNetworkEventList.useNetworkEventList)({filter:u,ignoredPatterns:g,paused:c,visible:t,isPro:d});if(!t)return null;return(0,_jsxRuntime.jsx)(_NetworkCopySettingsView.NetworkCopySettingsView,{settings:n,onSettingsChange:k,events:S})}function NetworkModalInner({visible:t,onClose:c,onBack:d,onMinimize:u,enableSharedModalDimensions:g=false,inline:n=false,paused:k,onPausedChange:S,remoteConditions:w}){const{isPro:o}=(0,_sharedUi.useFeatureGate)();const[p,C]=(0,_react.useState)(false);const f=k!=null&&S!=null;const r=f?k:p;const te=e=>{const s=typeof e==="function"?e(r):e;if(f)S(s);else C(s)};const[a,H]=(0,_react.useState)({});const i=(0,_useNetworkSelection.useHasNetworkSelection)();const[h,A]=(0,_react.useState)(false);const[m,D]=(0,_react.useState)(false);const[M,T]=(0,_react.useState)(false);const[b,R]=(0,_react.useState)(false);const[re,oe]=(0,_react.useState)("Sockets");const[L,v]=(0,_react.useState)(false);const[se,z]=(0,_react.useState)(0);const[y]=(0,_react.useState)(_NetworkFloatingTool.createRemoteConditionsSource);(0,_react.useEffect)(()=>{y.update(w)},[y,w]);(0,_react.useEffect)(()=>()=>y.update(void 0),[y]);const x=true;const[ne,q]=(0,_react.useState)(null);const[E,U]=(0,_react.useState)("filters");const[K,ae]=(0,_react.useState)("");const[I,_]=(0,_react.useState)(false);const je=(0,_react.useRef)(false);const[W,ie]=(0,_react.useState)("");const le=(0,_react.useRef)(null);const{patterns:N,values:ce,add:de,remove:ue,toggle:ke,toggleMode:Se,isTeamOnly:we}=(0,_sharedUi.useIgnoredPatterns)();const[j,J]=(0,_react.useState)(_NetworkCopySettingsView.DEFAULT_COPY_SETTINGS);const B=(0,_react.useRef)(false);const[F,O]=(0,_react.useState)(false);const[l,he]=(0,_react.useState)("export");const P=e=>{he(e);O(true)};(0,_react.useEffect)(()=>{if(F&&o){O(false)}},[F,o]);(0,_react.useEffect)(()=>{if(!t||B.current)return;const e=async()=>{try{const s=await _sharedUi.persistentStorage.getItem(_sharedUi.devToolsStorageKeys.network.copyOptions());if(s){const be=JSON.parse(s);J(be)}}catch(s){}finally{B.current=true}};e()},[t]);(0,_react.useEffect)(()=>{if(!B.current)return;const e=async()=>{try{await _sharedUi.persistentStorage.setItem(_sharedUi.devToolsStorageKeys.network.copyOptions(),JSON.stringify(j))}catch(s){}};e()},[j]);const ve=()=>{_networkSelectionStore.networkSelectionStore.clear()};const $=(0,_react.useCallback)(e=>{_networkSelectionStore.networkSelectionStore.select(e.id)},[]);const ge=(0,_react.useCallback)((e,s)=>{q(s?{...e,id:s}:e);T(true);_networkSelectionStore.networkSelectionStore.clear()},[]);const pe=(0,_react.useCallback)(()=>q(null),[]);const G=(0,_react.useRef)(null);const X=(0,_react.useRef)(null);const Y=e=>{ae(e);H(s=>({...s,searchText:e}))};const fe=e=>{H(s=>({...s,status:s.status===e?void 0:e}))};const[Q,ye]=(0,_react.useState)("bottomSheet");const xe=e=>{ye(e)};(0,_react.useEffect)(()=>{if(I){requestAnimationFrame(()=>{le.current?.focus()})}},[I]);const Z=()=>{if(h){return(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader,{children:[(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation,{onBack:()=>A(false)}),(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Content,{title:"",noMargin:true,children:(0,_jsxRuntime.jsx)(_sharedUi.NightSegmented,{size:"sm",tabs:[{key:"filters",label:"Filters"},{key:"copy",label:"Copy"}],activeKey:E,onChange:e=>U(e)})})]})}if(i){return(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader,{children:[(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation,{onBack:ve}),(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Content,{title:"Request Details",centered:true}),(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader.Actions,{children:[x?(0,_jsxRuntime.jsx)(_NetworkOverrideHeaderButton.NetworkOverrideHeaderButton,{onOpen:ge}):null,(0,_jsxRuntime.jsx)(_NetworkHeaderLive.NetworkDetailPinActions,{isPro:o,onUpgradePress:()=>P("saved")})]})]})}if(b){return(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader,{children:[(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation,{onBack:()=>{if(X.current?.())return;R(false)}}),(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Content,{title:re,centered:true})]})}if(M&&x){return(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader,{children:[(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation,{onBack:()=>{if(G.current?.())return;T(false);q(null)}}),(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Content,{title:"Response Overrides",centered:true})]})}if(m){return(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader,{children:[(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation,{onBack:()=>D(false)}),(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Content,{title:"Saved Requests",centered:true})]})}return(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader,{children:[d&&(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation,{onBack:d}),(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Content,{title:"",children:I?(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Search,{value:K,onChangeText:Y,onCancel:()=>{Y("");_(false)},onDismiss:()=>_(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"}}):(0,_jsxRuntime.jsx)(_NetworkHeaderLive.NetworkHeaderBadges,{activeStatus:a.status,onToggleStatus:fe,ignoredPatterns:N,paused:r})}),(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader.Actions,{children:[(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{"sentry-label":"ignore open search",testID:"buoy-network-search-open",accessibilityLabel:"Open search",accessibilityRole:"button",onPress:()=>_(true),style:styles.headerActionButton,children:(0,_jsxRuntime.jsx)(_sharedUi.Search,{size:14,color:_sharedUi.night.color.textSecondary})}),(0,_jsxRuntime.jsx)(_NetworkSocketsButton.NetworkSocketsButton,{paused:r,onPress:()=>R(true)}),x?(0,_jsxRuntime.jsx)(_NetworkOverridesButton.NetworkOverridesButton,{onPress:()=>T(true)}):null,(0,_jsxRuntime.jsx)(_sharedUi.PowerToggleButton,{isEnabled:!r,onToggle:()=>te(e=>!e),accessibilityLabel:r?"Resume network capture":"Pause network capture",testID:"buoy-network-power"}),(0,_jsxRuntime.jsx)(_NetworkHeaderLive.NetworkClearButton,{paused:r}),(0,_jsxRuntime.jsx)(_NetworkHeaderMenu.NetworkHeaderMenuButton,{onPress:()=>v(e=>!e),isOpen:L,hasIndicator:V})]})]})};const V=!!(a.status||a.method||a.contentType);const Ne=g?_sharedUi.devToolsStorageKeys.modal.root():_sharedUi.devToolsStorageKeys.network.modal();if(!t)return null;const Pe=i||!h;const ee=(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.container,children:[(0,_jsxRuntime.jsx)(NetworkDetailScreen,{visible:i,paused:r,ignoredPatternValues:ce,onTogglePattern:ke,isPro:o,filter:a,ignoredPatterns:N,fromSaved:m,savedSearch:W,applySafeAreaInset:!n&&Q==="bottomSheet"}),(0,_jsxRuntime.jsx)(NetworkFilterScreen,{visible:h&&E==="filters"&&!i,paused:r,isPro:o,filter:a,onFilterChange:H,ignoredPatterns:N,onRemovePattern:ue,onAddPattern:de,onTogglePatternMode:Se,isTeamPattern:we}),(0,_jsxRuntime.jsx)(NetworkCopyScreen,{visible:h&&E==="copy"&&!i,paused:r,isPro:o,filter:a,ignoredPatterns:N,settings:j,onSettingsChange:J}),(0,_jsxRuntime.jsx)(_NetworkOverridesScreen.NetworkOverridesScreen,{visible:x&&M&&!i&&!h&&!b,isPro:o,onUpgradePress:()=>P("overrides"),pendingDraft:ne,onPendingConsumed:pe,backHandlerRef:G,applySafeAreaInset:!n&&Q==="bottomSheet"}),(0,_jsxRuntime.jsx)(_NetworkSocketsScreen.NetworkSocketsScreen,{visible:b&&!i&&!h,paused:r,isPro:o,onUpgradePress:()=>P("sockets"),backHandlerRef:X,onTitleChange:oe}),(0,_jsxRuntime.jsx)(_NetworkSavedScreen.NetworkSavedScreen,{visible:m&&!i&&!h&&!b&&!(M&&x),isPro:o,copySettings:j,search:W,onSearchChange:ie,onEventPress:$,onUpgradePress:()=>P("saved")}),(0,_jsxRuntime.jsx)(_NetworkListScreen.NetworkListScreen,{visible:!i&&!h&&!m&&!b&&!(M&&x),paused:r,filter:a,ignoredPatterns:N,isPro:o,searchText:K,onEventPress:$,onUpgradePress:()=>P("export")})]}),L?(0,_jsxRuntime.jsxs)(_NetworkHeaderMenu.NetworkHeaderMenu,{onClose:()=>v(false),children:[(0,_jsxRuntime.jsx)(_NetworkHeaderMenu.NetworkHeaderMenuItem,{icon:(0,_jsxRuntime.jsx)(_sharedUi.Wifi,{size:14,color:_sharedUi.night.color.textSecondary}),label:"Network throttling",testID:"buoy-network-menu-throttling",onPress:()=>{v(false);(0,_NetworkFloatingTool.openNetworkFloatingTool)(w?y:void 0);if(!n)z(e=>e+1)}}),(0,_jsxRuntime.jsx)(_NetworkHeaderMenu.NetworkHeaderMenuItem,{icon:(0,_jsxRuntime.jsx)(_sharedUi.Wifi,{size:14,color:_sharedUi.night.color.textSecondary}),label:"Speed and link state",testID:"buoy-network-menu-conditions",onPress:()=>{v(false);(0,_NetworkFloatingTool.openNetworkFloatingTool)(w?y:void 0,true);if(!n)z(e=>e+1)}}),(0,_jsxRuntime.jsx)(_NetworkHeaderMenu.NetworkHeaderMenuItem,{icon:(0,_jsxRuntime.jsx)(_sharedUi.Filter,{size:14,color:V?_sharedUi.night.color.accent:_sharedUi.night.color.textSecondary}),label:"Filters",detail:V?"Active":void 0,onPress:()=>{v(false);U("filters");A(true)}}),(0,_jsxRuntime.jsx)(_NetworkHeaderMenu.NetworkHeaderMenuItem,{icon:(0,_jsxRuntime.jsx)(_sharedUi.Bookmark,{size:14,color:_sharedUi.night.color.textSecondary}),label:"Saved requests",onPress:()=>{v(false);D(true)}}),(0,_jsxRuntime.jsx)(_NetworkHeaderMenu.NetworkHeaderMenuItem,{icon:(0,_jsxRuntime.jsx)(_sharedUi.Activity,{size:14,color:_sharedUi.night.color.textSecondary}),label:"Sockets",testID:"buoy-network-menu-sockets",onPress:()=>{v(false);R(true)}}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.menuCopyRow,children:(0,_jsxRuntime.jsx)(_NetworkHeaderLive.NetworkHeaderCopyButton,{isPro:o,filter:a,ignoredPatterns:N,copySettings:j,paused:r,onUpgradePress:()=>{v(false);P("export")},label:"Copy requests"})})]}):null,(0,_jsxRuntime.jsx)(_sharedUi.UpgradeModal,{visible:F,onClose:()=>O(false),featureName:l==="saved"?"Saved Requests":l==="overrides"?"Response Overrides":l==="sockets"?"Socket Tricks":"Network Export",description:l==="saved"?"Keep the requests that matter. Saved requests survive Clear, app restarts, and the 500-request history cap.":l==="overrides"?"Force any endpoint to fail, stall or return something else \u2014 no backend changes, no code changes. Free keeps one active rule.":l==="sockets"?"Push fake server messages into your app, and drop, freeze or block its sockets. Your app's real code handles each one.":"Export network requests to share with your team, debug APIs, or feed into AI tools.",benefits:l==="sockets"?["Push a fake message, like auth.expired, in one tap","Drop a socket with 1006 or kick it out with 1008","Freeze a socket to test your ping check","Block every reconnect to test your backoff"]:l==="overrides"?[`Run ${_types.MAX_RULES} rules at once (free keeps ${_types.FREE_TIER_RULE_LIMIT})`,"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"]:l==="saved"?[`Save up to ${_networkSavedStore.MAX_SAVED} requests (free keeps ${_networkSavedStore.FREE_TIER_SAVED_LIMIT})`,"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"]})]});if(n){return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.inlineRoot,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.inlineHeader,..._sharedUi.windowDragProps,children:Z()}),ee]})}return(0,_jsxRuntime.jsx)(_sharedUi.JsModal,{visible:t,onClose:c,onMinimize:u,minimizeRequest:se,persistenceKey:Ne,variant:"night",header:{showToggleButton:true,customContent:Z()},onModeChange:xe,enablePersistence:true,initialMode:"bottomSheet",enableGlitchEffects:true,disableScrollWrapper:Pe,styles:{},children:ee})}const styles=_reactNative.StyleSheet.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:_sharedUi.macOSColors.border.default,backgroundColor:"transparent"},menuCopyRow:{paddingHorizontal:6},headerActionButton:{width:32,height:32,borderRadius:8,backgroundColor:_sharedUi.night.color.buttonSurface,borderWidth:1,borderColor:_sharedUi.night.color.border,alignItems:"center",justifyContent:"center"},activeFilterButton:{backgroundColor:_sharedUi.night.color.accentSoft,borderColor:_sharedUi.night.color.accentBorderStrong}});function NetworkModal(t){return(0,_jsxRuntime.jsx)(_useTickEveryMinute.TickProvider,{children:(0,_jsxRuntime.jsx)(NetworkModalInner,{...t})})}function NetworkToolView(t={}){return(0,_jsxRuntime.jsx)(_useTickEveryMinute.TickProvider,{children:(0,_jsxRuntime.jsx)(NetworkModalInner,{...t,inline:true,visible:true,onClose:noop})})}const noop=()=>{};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.NetworkSocketsButton=NetworkSocketsButton;var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _useSocketsState=require("../../hooks/useSocketsState");var _jsxRuntime=require("react/jsx-runtime");function NetworkSocketsButton({onPress:n,paused:s}){const e=(0,_useSocketsState.useSocketsState)(s);if(e.connections.length===0)return null;const o=e.connections.some(c=>c.state==="open");const r=e.tests.blocked||e.tests.offline||e.tests.frozen.length>0;const t=e.problems.length;const i=r?_sharedUi.night.color.warning:o?_sharedUi.night.color.accent:_sharedUi.night.color.textSecondary;return(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{onPress:n,"sentry-label":"ignore open sockets",testID:"buoy-network-sockets",accessibilityRole:"button",accessibilityLabel:`Sockets${o?", one open":""}${t?`, ${t} ${t===1?"problem":"problems"}`:""}${r?", a trick is on":""}`,style:[styles.button,r?styles.testing:o?styles.open:null],children:[(0,_jsxRuntime.jsx)(_sharedUi.Activity,{size:14,color:i}),t>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.badge,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.badgeText,children:t})}):null]})}const styles=_reactNative.StyleSheet.create({button:{width:32,height:32,borderRadius:8,alignItems:"center",justifyContent:"center",backgroundColor:_sharedUi.night.color.buttonSurface,borderWidth:1,borderColor:_sharedUi.night.color.border},open:{backgroundColor:_sharedUi.night.color.accentSoft,borderColor:_sharedUi.night.color.accentBorder},testing:{backgroundColor:_sharedUi.night.color.warningSoft,borderColor:_sharedUi.night.color.warning+"77"},badge:{position:"absolute",top:1,right:1,minWidth:12,height:12,borderRadius:6,paddingHorizontal:3,alignItems:"center",justifyContent:"center",backgroundColor:_sharedUi.night.color.danger},badgeText:{fontSize:8,fontWeight:"800",color:"#FFFFFF"}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.NetworkSocketsScreen=NetworkSocketsScreen;var _react=require("react");var _reactNative=require("react-native");var _SocketFrameView=require("./SocketFrameView");var _SocketListView=require("./SocketListView");var _SocketTricksView=require("./SocketTricksView");var _jsxRuntime=require("react/jsx-runtime");function NetworkSocketsScreen({visible:c,paused:k,isPro:n,onUpgradePress:u,backHandlerRef:s,onTitleChange:a}){const[t,o]=(0,_react.useState)(null);const[e,i]=(0,_react.useState)(null);const l=e?"Tricks":t?"Message":"Sockets";(0,_react.useEffect)(()=>{a?.(l)},[a,l]);(0,_react.useEffect)(()=>{if(!s)return;s.current=e||t?()=>{if(e)i(null);else o(null);return true}:null;return()=>{s.current=null}},[s,e,t]);(0,_react.useEffect)(()=>{if(c)return;o(null);i(null)},[c]);const S=r=>{if(!n)return u();i({socketId:r,data:""})};const d=r=>i({socketId:r.socketId,data:r.data??""});if(!c)return null;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.container,children:[(0,_jsxRuntime.jsx)(_SocketListView.SocketListView,{visible:!e&&!t,paused:k,search:"",onOpenFrame:r=>o(r.id),onOpenTricks:S}),(0,_jsxRuntime.jsx)(_SocketFrameView.SocketFrameView,{visible:!e&&!!t,frameId:t,isPro:n,onUpgradePress:u,onEdit:d}),(0,_jsxRuntime.jsx)(_SocketTricksView.SocketTricksView,{visible:!!e,draft:e,isPro:n,onUpgradePress:u})]})}const styles=_reactNative.StyleSheet.create({container:{flex:1}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.SocketFrameView=SocketFrameView;var _react=require("react");var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _format=require("../../sockets/format");var _socketStore=require("../../sockets/socketStore");var _jsxRuntime=require("react/jsx-runtime");function MessageBox({frame:t,label:o}){const l=(0,_format.prettyData)(t);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.box,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.boxHead,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.boxLabel,children:o}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.boxTime,children:(0,_format.clockTime)(t.timestamp)}),(0,_jsxRuntime.jsx)(_sharedUi.InlineCopyButton,{value:l})]}),(0,_jsxRuntime.jsx)(_reactNative.Text,{selectable:true,style:styles.code,testID:`buoy-socket-data-${t.id}`,children:l||"(empty)"}),t.truncated?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.boxNote,children:"Cut at 64 KB. The rest was not kept."}):null]})}function SocketFrameMissing({visible:t}){if(!t)return null;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.missing,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.note,children:"This message is gone. It was cleared or pushed out by newer ones."})})}function SocketFrameBody({loaded:t,isPro:o,onUpgradePress:l,onEdit:g}){const[c,d]=(0,_react.useState)(null);const e=t?.frame;(0,_react.useEffect)(()=>d(null),[e?.id]);if(!e)return null;const s=e.direction==="out";const a=t?.partner??null;const n=e.replyTo?a:e;const r=e.replyTo?e:a;const i=_socketStore.socketStore.getState().problems.find(u=>u.frameIds.includes(e.id));const x=async()=>{if(!o)return l();const u=e.data??"";const h=await _socketStore.socketStore.act(s?{action:"send",socketId:e.socketId,data:u}:{action:"inject",socketId:e.socketId,data:u});d(h.message)};return(0,_jsxRuntime.jsxs)(_reactNative.ScrollView,{contentContainerStyle:styles.content,testID:"buoy-socket-detail",children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.titleRow,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.dir,s?styles.up:styles.down],children:s?"\u2191":"\u2193"}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.title,numberOfLines:2,children:e.type??"message"})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.badges,children:[i?(0,_jsxRuntime.jsx)(_sharedUi.NightBadge,{label:i.kind==="no-reply"?"No reply":"Problem",tone:"danger"}):null,n?.replyMs!==void 0?(0,_jsxRuntime.jsx)(_sharedUi.NightBadge,{label:`Reply in ${(0,_format.shortDuration)(n.replyMs)}`,tone:"accent"}):null,e.correlationId?(0,_jsxRuntime.jsx)(_sharedUi.NightBadge,{label:`id ${e.correlationId}`,tone:"info"}):null,(0,_jsxRuntime.jsx)(_sharedUi.NightBadge,{label:`Socket ${e.socketId}`}),e.size!==void 0?(0,_jsxRuntime.jsx)(_sharedUi.NightBadge,{label:`${e.size} B`}):null,e.fake==="inject"?(0,_jsxRuntime.jsx)(_sharedUi.NightBadge,{label:"Fake: pushed by Buoy",tone:"info"}):null,e.fake==="send"?(0,_jsxRuntime.jsx)(_sharedUi.NightBadge,{label:"Sent by Buoy",tone:"info"}):null,e.held?(0,_jsxRuntime.jsx)(_sharedUi.NightBadge,{label:"Held back",tone:"warning"}):null,e.sentWhileClosed?(0,_jsxRuntime.jsx)(_sharedUi.NightBadge,{label:"Sent while closed",tone:"danger"}):null]}),n?(0,_jsxRuntime.jsx)(MessageBox,{frame:n,label:n.direction==="out"?"\u2191 Sent":"\u2193 Got"}):null,n&&r?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.gap,children:(0,_format.shortDuration)(r.timestamp-n.timestamp)}):null,r?(0,_jsxRuntime.jsx)(MessageBox,{frame:r,label:"\u2193 Reply"}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.buttons,children:[(0,_jsxRuntime.jsx)(_sharedUi.NightButton,{label:s?"Send again":"Push to app again",variant:"primary",onPress:x,testID:"buoy-socket-replay"}),(0,_jsxRuntime.jsx)(_sharedUi.NightButton,{label:"Edit in Tricks",onPress:()=>o?g(e):l(),testID:"buoy-socket-edit"})]}),i?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.problem,children:i.message}):null,c?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.result,children:c}):null,e.data?.includes("[hidden]")?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.note,children:"Buoy hid secrets in this message. Sending it again sends the word [hidden] in their place."}):null]})}function SocketFrameView({visible:t,frameId:o,isPro:l,onUpgradePress:g,onEdit:c}){const[d,e]=(0,_react.useState)(null);const[s,a]=(0,_react.useState)(false);(0,_react.useEffect)(()=>{e(null);a(false);if(!t||!o)return;let i=true;void _socketStore.socketStore.loadFrame(o).then(x=>{if(!i)return;e(x);a(true)});return()=>{i=false}},[t,o]);if(!t)return null;const n=o?_socketStore.socketStore.getFrame(o):void 0;const r=d??(n?{frame:n,partner:null}:null);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.fill,children:[(0,_jsxRuntime.jsx)(SocketFrameMissing,{visible:s&&!r}),(0,_jsxRuntime.jsx)(SocketFrameBody,{loaded:r,isPro:l,onUpgradePress:g,onEdit:c})]})}const styles=_reactNative.StyleSheet.create({fill:{flex:1},content:{padding:12,gap:10,paddingBottom:32},missing:{padding:24},titleRow:{flexDirection:"row",alignItems:"center",gap:8},dir:{fontSize:16,fontWeight:"700",fontFamily:_sharedUi.monoFont},up:{color:"#6EA1FF"},down:{color:_sharedUi.night.color.accent},title:{flexShrink:1,fontSize:15,fontWeight:"600",color:_sharedUi.night.color.text,fontFamily:_sharedUi.monoFont},badges:{flexDirection:"row",flexWrap:"wrap",gap:6},box:{borderWidth:1,borderColor:_sharedUi.night.color.border,borderRadius:8,backgroundColor:_sharedUi.night.color.surface,overflow:"hidden"},boxHead:{flexDirection:"row",alignItems:"center",gap:8,paddingHorizontal:9,paddingVertical:6,borderBottomWidth:1,borderBottomColor:_sharedUi.night.color.separator},boxLabel:{flex:1,fontSize:10,fontWeight:"700",color:_sharedUi.night.color.textSecondary,letterSpacing:.4},boxTime:{fontSize:10,color:_sharedUi.night.color.textTertiary,fontFamily:_sharedUi.monoFont},boxNote:{paddingHorizontal:9,paddingBottom:8,fontSize:11,color:_sharedUi.night.color.textTertiary},code:{padding:9,fontSize:11,lineHeight:16,color:_sharedUi.night.color.text,fontFamily:_sharedUi.monoFont},gap:{textAlign:"center",fontSize:11,color:_sharedUi.night.color.textSecondary,fontFamily:_sharedUi.monoFont},buttons:{flexDirection:"row",flexWrap:"wrap",gap:8},result:{fontSize:12,color:_sharedUi.night.color.textSecondary},problem:{fontSize:12,color:_sharedUi.night.color.danger,fontWeight:"600"},note:{fontSize:11,color:_sharedUi.night.color.textTertiary}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.SocketListView=SocketListView;var _react=require("react");var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _useSocketsState=require("../../hooks/useSocketsState");var _foldFrames=require("../../sockets/foldFrames");var _format=require("../../sockets/format");var _SocketRows=require("./SocketRows");var _jsxRuntime=require("react/jsx-runtime");const MAX_CARDS=2;const BANNER_MS=2*6e4;const keyExtractor=t=>t.frame.id;function useNow(t){const[i,l]=(0,_react.useState)(Date.now);(0,_react.useEffect)(()=>{if(!t)return;l(Date.now());const s=setInterval(()=>l(Date.now()),1e3);return()=>clearInterval(s)},[t]);return i}function ConnectionCard({conn:t,selected:i,onPress:l,showPings:s,onTogglePings:d}){const o=t.state==="open";const n=useNow(o);const p=o?styles.pillOk:t.state==="closed"?styles.pillWarn:styles.pillPlain;const r=o?styles.pillOkText:t.state==="closed"?styles.pillWarnText:styles.pillPlainText;return(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{activeOpacity:.8,onPress:l,"sentry-label":"ignore pick socket",testID:`buoy-socket-card-${t.id}`,accessibilityRole:"button",accessibilityLabel:`Socket ${t.id}, ${(0,_format.connectionStatus)(t,n)}`,style:[styles.card,i?styles.cardSelected:null],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.cardUrl,numberOfLines:1,children:(0,_format.shortUrl)(t.url)}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.pills,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.pill,p],children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:[styles.pillText,r],children:[o?"\u25CF ":"",(0,_format.connectionStatus)(t,n)]})}),t.frozen?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.pill,styles.pillWarn],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.pillText,styles.pillWarnText],children:"Frozen"})}):null,t.attempt>1?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.pill,styles.pillPlain],children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:[styles.pillText,styles.pillPlainText],children:["Try #",t.attempt]})}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.pill,styles.pillPlain],children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:[styles.pillText,styles.pillPlainText],children:["\u2191",t.sent," \u2193",t.received]})}),t.pings>0?(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:d,"sentry-label":"ignore toggle socket pings",testID:`buoy-socket-pings-${t.id}`,style:[styles.pill,styles.pillPlain],children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:[styles.pillText,styles.pillPlainText],children:["\u2665 ",t.pings," ",t.pings===1?"heartbeat":"heartbeats"," ",s?"shown":"hidden"]})}):null]})]})}function ProblemBanner({problems:t}){const i=Date.now();const l=t.filter(s=>i-s.at<BANNER_MS&&(s.frameIds.length===0||s.kind==="reconnect-storm"||s.kind==="auth-loop"||s.kind==="cant-connect"));if(l.length===0)return null;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.banner,testID:"buoy-socket-problems",children:l.slice(0,3).map(s=>(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.bannerText,numberOfLines:2,children:["\u26A0 ",s.message," \xB7 ",(0,_format.clockTime)(s.at)]},`${s.kind}-${s.at}`))})}function SocketListView({visible:t,paused:i,search:l,onOpenFrame:s,onOpenTricks:d}){const o=(0,_useSocketsState.useSocketsState)(i||!t);const[n,p]=(0,_react.useState)(null);const[r,g]=(0,_react.useState)({kind:"all"});const[u,m]=(0,_react.useState)(false);const[k,f]=(0,_react.useState)(()=>new Set);if(!t)return null;const b=o.connections.filter(e=>e.state!=="closed");const h=o.connections.find(e=>e.id===n&&e.state==="closed");const x=b.length?b:o.connections.filter(e=>e.state==="closed").slice(0,1);const S=[...h&&!x.includes(h)?[h]:[],...x].slice(0,MAX_CARDS);const w=(0,_foldFrames.foldFrames)(o,{socketId:n,filter:r,showPings:u,search:l,expanded:k});const T=e=>f(new Set(k).add(e));const j=new Map(o.connections.map(e=>[e.id,e.attempt]));const P=(0,_foldFrames.topTypePrefixes)(o.frames);const y=new Set(o.problems.flatMap(e=>e.frameIds)).size;const a=e=>JSON.stringify(e)===JSON.stringify(r);const c=e=>g(a(e)?{kind:"all"}:e);const C=({item:e})=>e.frame.kind==="message"?(0,_jsxRuntime.jsx)(_SocketRows.SocketMessageRow,{row:e,onOpen:s,onExpand:T}):(0,_jsxRuntime.jsx)(_SocketRows.SocketLifecycleRow,{row:e,attempt:j.get(e.frame.socketId)});const I=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.header,children:[S.map(e=>(0,_jsxRuntime.jsx)(ConnectionCard,{conn:e,selected:n===e.id,onPress:()=>p(n===e.id?null:e.id),showPings:u,onTogglePings:()=>m(!u)},e.id)),(0,_jsxRuntime.jsx)(ProblemBanner,{problems:o.problems}),(0,_jsxRuntime.jsxs)(_reactNative.ScrollView,{horizontal:true,showsHorizontalScrollIndicator:false,contentContainerStyle:styles.chips,children:[(0,_jsxRuntime.jsx)(_sharedUi.NightChip,{label:"Tricks",icon:(0,_jsxRuntime.jsx)(_sharedUi.Zap,{size:11,color:_sharedUi.night.color.warning}),onPress:()=>d(n??o.connections.find(e=>e.state==="open")?.id??null),testID:"buoy-socket-tricks"}),(0,_jsxRuntime.jsx)(_sharedUi.NightChip,{label:`All ${o.frames.length}`,selected:r.kind==="all",onPress:()=>g({kind:"all"}),testID:"buoy-socket-chip-all"}),y>0?(0,_jsxRuntime.jsx)(_sharedUi.NightChip,{label:`Problems ${y}`,selected:r.kind==="problems",onPress:()=>c({kind:"problems"}),testID:"buoy-socket-chip-problems"}):null,(0,_jsxRuntime.jsx)(_sharedUi.NightChip,{label:"\u2191 Sent",selected:a({kind:"direction",direction:"out"}),onPress:()=>c({kind:"direction",direction:"out"}),testID:"buoy-socket-chip-sent"}),(0,_jsxRuntime.jsx)(_sharedUi.NightChip,{label:"\u2193 Got",selected:a({kind:"direction",direction:"in"}),onPress:()=>c({kind:"direction",direction:"in"}),testID:"buoy-socket-chip-got"}),P.map(e=>(0,_jsxRuntime.jsx)(_sharedUi.NightChip,{label:e.match(/[.:/]$/)?`${e}*`:e,selected:a({kind:"type",prefix:e}),onPress:()=>c({kind:"type",prefix:e}),testID:`buoy-socket-chip-type-${e}`},e))]}),o.tests.blocked||o.tests.offline||o.tests.frozen.length>0?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.testNote,numberOfLines:1,children:o.tests.offline?"Offline mode is on":o.tests.blocked?"New sockets are blocked":"A socket is frozen"}):null]});return(0,_jsxRuntime.jsx)(_reactNative.FlatList,{..._sharedUi.EVENT_LIST_PRESET,testID:"buoy-socket-list",accessibilityLabel:"Socket messages",data:w,renderItem:C,keyExtractor,ListHeaderComponent:I,ListEmptyComponent:(0,_jsxRuntime.jsx)(_sharedUi.ToolEmptyState,{testID:"buoy-socket-empty",...(0,_sharedUi.resolveListEmptyState)({subject:"messages",search:l,total:o.frames.length,capturing:o.capturingSince!==null||o.connections.length>0,waiting:{otto:"fishing",title:"No socket messages",message:"Messages show here when your app opens a WebSocket."},paused:{title:"Not watching sockets",message:"Buoy watches sockets in dev builds once the Network tool loads."}})}),contentContainerStyle:styles.listContent,keyboardShouldPersistTaps:"handled",showsVerticalScrollIndicator:true})}const styles=_reactNative.StyleSheet.create({listContent:{paddingBottom:24},header:{gap:6,paddingTop:8,paddingBottom:4},card:{marginHorizontal:10,padding:9,gap:6,borderRadius:10,borderWidth:1,borderColor:_sharedUi.night.color.border,backgroundColor:_sharedUi.night.color.surface},cardSelected:{borderColor:_sharedUi.night.color.accentBorderStrong,backgroundColor:_sharedUi.night.color.accentSoft},cardUrl:{fontSize:11,color:_sharedUi.night.color.text,fontFamily:_sharedUi.monoFont},pills:{flexDirection:"row",flexWrap:"wrap",gap:5},pill:{paddingHorizontal:6,paddingVertical:2,borderRadius:5},pillText:{fontSize:10,fontWeight:"600"},pillOk:{backgroundColor:_sharedUi.night.color.accentSoft},pillOkText:{color:_sharedUi.night.color.accent},pillWarn:{backgroundColor:_sharedUi.night.color.warningSoft},pillWarnText:{color:_sharedUi.night.color.warning},pillPlain:{backgroundColor:_sharedUi.night.color.fill},pillPlainText:{color:_sharedUi.night.color.textSecondary},banner:{marginHorizontal:10,padding:8,gap:3,borderRadius:8,backgroundColor:_sharedUi.night.color.dangerSoft,borderWidth:1,borderColor:"rgba(255,59,48,0.3)"},bannerText:{fontSize:11,color:_sharedUi.night.color.danger,fontWeight:"600"},chips:{gap:6,paddingHorizontal:10},testNote:{paddingHorizontal:12,fontSize:11,color:_sharedUi.night.color.warning,fontWeight:"600"}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.SocketLifecycleRow=SocketLifecycleRow;exports.SocketMessageRow=SocketMessageRow;var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _format=require("../../sockets/format");var _jsxRuntime=require("react/jsx-runtime");const UP="#6EA1FF";function Tag({label:o,tone:t}){return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.tag,tagTone[t].box],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.tagText,tagTone[t].text],numberOfLines:1,children:o})})}function messageTags(o){const t=o.frame;const e=[];if(o.problem)e.push({label:PROBLEM_TAG[o.problem.kind],tone:"bad"});if(t.replyMs!==void 0)e.push({label:`\u2713 ${(0,_format.shortDuration)(t.replyMs)}`,tone:"ok"});if(t.fake==="inject")e.push({label:"Fake",tone:"info"});if(t.fake==="send")e.push({label:"Buoy sent",tone:"info"});if(t.held)e.push({label:"Held",tone:"warn"});if(t.sentWhileClosed)e.push({label:"Closed",tone:"bad"});return e}const PROBLEM_TAG={"no-reply":"No reply","reconnect-storm":"Storm","auth-loop":"Sign-in loop","cant-connect":"Can't connect","two-sockets":"Two sockets","sent-while-closed":"Sent while closed"};function SocketMessageRow({row:o,onOpen:t,onExpand:e}){const n=o.frame;const r=n.direction==="out";const l=n.type??(n.binary?"binary":"message");const i=o.count>1&&o.foldKey!==void 0;return(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{activeOpacity:.7,onPress:()=>i?e(o.foldKey):t(n),"sentry-label":"ignore open socket message",testID:`buoy-socket-row-${n.id}`,accessibilityRole:"button",accessibilityLabel:i?`${o.count} ${l} messages, tap to show each`:`${r?"Sent":"Got"} ${l}`,style:[styles.row,o.problem?styles.rowProblem:null],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.dir,{color:r?UP:_sharedUi.night.color.accent}],children:r?"\u2191":"\u2193"}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.middle,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.titleLine,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.type,numberOfLines:1,children:l}),o.count>1?(0,_jsxRuntime.jsx)(Tag,{label:`\xD7${o.count}`,tone:"plain"}):null]}),(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.preview,numberOfLines:1,children:[n.correlationId?`${n.correlationId} \xB7 `:"",(0,_format.previewText)(n)]})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.right,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.tags,children:messageTags(o).slice(0,2).map(c=>(0,_jsxRuntime.jsx)(Tag,{label:c.label,tone:c.tone},c.label))}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.time,children:(0,_format.clockTime)(n.timestamp)})]})]})}function SocketLifecycleRow({row:o,attempt:t}){const e=o.frame;const n=e.kind==="open"?`Open${t&&t>1?` #${t}`:""}`:e.kind==="error"?"Error":(0,_format.closeLabel)(e.code,e.neverOpened);const r=e.byBuoy&&!/buoy/i.test(e.reason??"")?"by Buoy":null;const l=[o.problem?`\u26A0 ${PROBLEM_TAG[o.problem.kind]}`:null,e.kind==="close"?e.reason:null,e.kind==="close"?r:null].filter(Boolean).join(" \xB7 ");const i=o.problem||e.kind==="error"?_sharedUi.night.color.danger:e.kind==="open"?_sharedUi.night.color.accent:_sharedUi.night.color.warning;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.life,testID:`buoy-socket-life-${e.id}`,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.lifeLine}),(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.lifeText,numberOfLines:1,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.lifeLabel,{color:i}],children:n}),l?` \xB7 ${l}`:""," \xB7 ",(0,_format.clockTime)(e.timestamp)]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.lifeLine})]})}const tagTone={ok:_reactNative.StyleSheet.create({box:{backgroundColor:_sharedUi.night.color.accentSoft},text:{color:_sharedUi.night.color.accent}}),bad:_reactNative.StyleSheet.create({box:{backgroundColor:_sharedUi.night.color.dangerSoft},text:{color:_sharedUi.night.color.danger}}),warn:_reactNative.StyleSheet.create({box:{backgroundColor:_sharedUi.night.color.warningSoft},text:{color:_sharedUi.night.color.warning}}),info:_reactNative.StyleSheet.create({box:{backgroundColor:_sharedUi.night.color.infoSoft},text:{color:UP}}),plain:_reactNative.StyleSheet.create({box:{backgroundColor:_sharedUi.night.color.fill},text:{color:_sharedUi.night.color.textSecondary}})};const styles=_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center",gap:8,paddingVertical:7,paddingHorizontal:10,marginHorizontal:8,backgroundColor:"rgba(12, 12, 12, 0.9)",borderBottomWidth:1,borderBottomColor:_sharedUi.night.color.separator,borderLeftWidth:3,borderLeftColor:"transparent"},rowProblem:{borderLeftColor:_sharedUi.night.color.danger,backgroundColor:"rgba(40, 12, 12, 0.9)"},dir:{width:14,fontSize:13,fontWeight:"700",fontFamily:_sharedUi.monoFont,textAlign:"center"},middle:{flex:1,minWidth:0,gap:1},titleLine:{flexDirection:"row",alignItems:"center",gap:6},type:{flexShrink:1,fontSize:12,fontWeight:"600",color:_sharedUi.night.color.text,fontFamily:_sharedUi.monoFont},preview:{fontSize:10,color:_sharedUi.night.color.textTertiary,fontFamily:_sharedUi.monoFont},right:{alignItems:"flex-end",gap:3},tags:{flexDirection:"row",gap:4},tag:{paddingHorizontal:5,paddingVertical:1,borderRadius:4},tagText:{fontSize:9.5,fontWeight:"700"},time:{fontSize:9,color:_sharedUi.night.color.textTertiary,fontFamily:_sharedUi.monoFont},life:{flexDirection:"row",alignItems:"center",gap:8,paddingVertical:6,paddingHorizontal:12},lifeLine:{flex:1,height:1,backgroundColor:_sharedUi.night.color.separator},lifeText:{fontSize:10.5,color:_sharedUi.night.color.textSecondary,flexShrink:1},lifeLabel:{fontWeight:"700"}});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.SocketTricksView=SocketTricksView;var _react=require("react");var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _useSocketsState=require("../../hooks/useSocketsState");var _format=require("../../sockets/format");var _socketStore=require("../../sockets/socketStore");var _jsxRuntime=require("react/jsx-runtime");const BREAKS=[{code:1006,title:"Drop it",detail:"1006 \xB7 like lost signal",testID:"buoy-socket-drop"},{code:1008,title:"Kick out",detail:"1008 \xB7 like a bad token",testID:"buoy-socket-kick"},{code:1001,title:"Server going away",detail:"1001 \xB7 like a deploy",testID:"buoy-socket-going-away"}];function SocketTricksView({visible:r,draft:n,isPro:u,onUpgradePress:x}){const s=(0,_useSocketsState.useSocketsState)(!r);const[g,a]=(0,_react.useState)(null);const[l,d]=(0,_react.useState)("");const[c,h]=(0,_react.useState)(null);(0,_react.useEffect)(()=>{if(!r||!n)return;a(n.socketId);d(n.data);h(null)},[r,n]);if(!r)return null;const i=s.connections.filter(e=>e.state==="open"||e.state==="connecting");const t=i.find(e=>e.id===g)??i[0]??null;const o=async e=>{if(!u)return x();h(await _socketStore.socketStore.act(e))};const k=s.tests.blocked||s.tests.frozen.length>0;return(0,_jsxRuntime.jsxs)(_reactNative.ScrollView,{contentContainerStyle:styles.content,keyboardShouldPersistTaps:"handled",testID:"buoy-socket-tricks-screen",children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.lede,children:"Make the socket misbehave on purpose. Your app's real code handles each one."}),(0,_jsxRuntime.jsx)(_sharedUi.NightSectionLabel,{children:"Socket"}),i.length===0?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.note,children:"No socket is open. Open one in your app, or turn Block off."}):null,i.length>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.chips,children:i.map(e=>(0,_jsxRuntime.jsx)(_sharedUi.NightChip,{label:`${e.id} \xB7 ${(0,_format.shortUrl)(e.url)}`,selected:t?.id===e.id,onPress:()=>a(e.id),testID:`buoy-socket-target-${e.id}`},e.id))}):null,(0,_jsxRuntime.jsx)(_sharedUi.NightSectionLabel,{children:"Message"}),(0,_jsxRuntime.jsx)(_reactNative.TextInput,{value:l,onChangeText:d,multiline:true,autoCapitalize:"none",autoCorrect:false,placeholder:'{"type":"chat.message","payload":{"text":"hi"}}',placeholderTextColor:_sharedUi.night.color.placeholder,style:styles.input,testID:"buoy-socket-message-input",accessibilityLabel:"Message to push or send"}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.row,children:[(0,_jsxRuntime.jsx)(_sharedUi.NightButton,{label:"Push to app",variant:"primary",disabled:!t||!l.trim(),onPress:()=>t&&o({action:"inject",socketId:t.id,data:l}),testID:"buoy-socket-inject"}),(0,_jsxRuntime.jsx)(_sharedUi.NightButton,{label:"Send to server",disabled:!t||!l.trim(),onPress:()=>t&&o({action:"send",socketId:t.id,data:l}),testID:"buoy-socket-send"})]}),(0,_jsxRuntime.jsx)(_sharedUi.NightSectionLabel,{children:"Break the socket"}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.grid,children:BREAKS.map(e=>(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{disabled:!t,onPress:()=>t&&o({action:"close",socketId:t.id,code:e.code}),"sentry-label":"ignore socket break",testID:e.testID,accessibilityRole:"button",style:[styles.cell,!t?styles.cellOff:null],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.cellTitle,children:e.title}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.cellDetail,children:e.detail})]},e.code))}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.note,children:'On iOS, a real lost link often closes as 1001 "Stream end encountered", not 1006. Check for both.'}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.switchRow,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.switchText,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.switchTitle,children:"Freeze"}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.cellDetail,children:"Looks open, but nothing gets through. Tests your app's ping check."})]}),(0,_jsxRuntime.jsx)(_sharedUi.NightSwitch,{value:!!t?.frozen,disabled:!t,onValueChange:e=>t&&o({action:"freeze",socketId:t.id,frozen:e}),testID:"buoy-socket-freeze"})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.switchRow,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.switchText,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.switchTitle,children:"Block"}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.cellDetail,children:"Drops open sockets, and every new one fails. Tests your backoff."})]}),(0,_jsxRuntime.jsx)(_sharedUi.NightSwitch,{value:s.tests.blocked,onValueChange:e=>o({action:"block",blocked:e}),testID:"buoy-socket-block"})]}),s.tests.offline?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.warn,children:"Network's offline mode is on, so sockets act offline too."}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.row,children:(0,_jsxRuntime.jsx)(_sharedUi.NightButton,{label:"Reset all",variant:"tertiary",disabled:!k,onPress:()=>o({action:"reset"}),testID:"buoy-socket-reset"})}),c?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.result,c.ok?null:styles.warn],testID:"buoy-socket-result",children:c.message}):null]})}const styles=_reactNative.StyleSheet.create({content:{padding:12,gap:10,paddingBottom:40},lede:{fontSize:12,color:_sharedUi.night.color.textSecondary},note:{fontSize:12,color:_sharedUi.night.color.textTertiary},chips:{flexDirection:"row",flexWrap:"wrap",gap:6},input:{minHeight:96,padding:10,borderRadius:8,borderWidth:1,borderColor:_sharedUi.night.color.border,backgroundColor:_sharedUi.night.color.surface,color:_sharedUi.night.color.text,fontFamily:_sharedUi.monoFont,fontSize:12,textAlignVertical:"top"},row:{flexDirection:"row",flexWrap:"wrap",gap:8},grid:{flexDirection:"row",flexWrap:"wrap",gap:8},cell:{flexGrow:1,flexBasis:"45%",padding:9,gap:2,borderRadius:8,borderWidth:1,borderColor:_sharedUi.night.color.border,backgroundColor:_sharedUi.night.color.surface},cellOff:{opacity:.4},cellTitle:{fontSize:12,fontWeight:"700",color:_sharedUi.night.color.text},cellDetail:{fontSize:10.5,color:_sharedUi.night.color.textTertiary},switchRow:{flexDirection:"row",alignItems:"center",gap:10},switchText:{flex:1,gap:2},switchTitle:{fontSize:13,fontWeight:"600",color:_sharedUi.night.color.text},warn:{fontSize:12,color:_sharedUi.night.color.warning,fontWeight:"600"},result:{fontSize:12,color:_sharedUi.night.color.textSecondary}});
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.NetworkConditionsControl=NetworkConditionsControl;var _react=require("react");var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _store=require("./store");var _jsxRuntime=require("react/jsx-runtime");const options=[{profile:"normal",label:"No throttling"},{profile:"slow",label:"Slow"},{profile:"verySlow",label:"Very slow"},{profile:"offline",label:"Offline"},{profile:"slow3g",label:"Slow 3G"},{profile:"slow4g",label:"Slow 4G"},{profile:"fast4g",label:"Fast 4G"}];const summaries={normal:"No added delay",slow:"+500 ms before each new request",verySlow:"+2 seconds before each new request",offline:"New requests fail before sending",slow3g:"50 KB/s down, 50 KB/s up; +2000 ms",slow4g:"180 KB/s down, 84.375 KB/s up; +562.5 ms",fast4g:"1012.5 KB/s down, 168.75 KB/s up; +165 ms"};function NetworkConditionsControl({remote:t,compact:v=false}){(0,_react.useSyncExternalStore)(_store.subscribeNetworkConditions,_store.getConditionsRevision,_store.getConditionsRevision);const o=t?t.state:(0,_store.getNetworkConditions)();const[j,y]=(0,_react.useState)(false);const T=(0,_react.useSyncExternalStore)(_store.subscribeNetworkConditions,_store.getNetworkCondition,_store.getNetworkCondition);const N=(0,_react.useSyncExternalStore)(_store.subscribeNetworkConditions,_store.conditionsCanApply,_store.conditionsCanApply);const[f,h]=(0,_react.useState)(false);const[w,p]=(0,_react.useState)();const[r,u]=(0,_react.useState)(false);const c=(0,_react.useRef)(false);const l=(0,_react.useRef)(true);const s=(0,_react.useRef)(0);(0,_react.useEffect)(()=>{s.current++;c.current=false;u(false);p(void 0)},[t?.targetId]);(0,_react.useEffect)(()=>{l.current=true;return()=>{l.current=false}},[]);const a=t?t.profile:T;const n=t?t.available:N;const x=o?.active??(a!==null&&a!=="normal");const g=a==="offline"?_sharedUi.night.color.danger:x?_sharedUi.night.color.warning:_sharedUi.night.color.accent;async function R(e){if(!n||c.current)return;if(e===a&&(e!=="normal"||!o?.active)){h(false);return}const i=++s.current;c.current=true;u(true);p(void 0);try{if(t)await t.onChange(e);else(0,_store.setNetworkCondition)(e);if(l.current&&s.current===i)h(false)}catch(d){if(l.current&&s.current===i)p(d instanceof Error?d.message:String(d))}finally{if(s.current===i){c.current=false;if(l.current)u(false)}}}const k=[["auto","Follow speed"],["real","Real link"],["offline","Offline"],["wifi","Wi-Fi"],["cellular","Cellular"],["noInternet","No internet"]];const S=(!t||!!t.onConnectionChange)&&(o?.capabilities.netInfo.supported||o?.capabilities.expoNetwork.supported);const C=options.find(e=>e.profile===a)?.label??"Unavailable";return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.container,testID:"buoy-network-throttling-screen",children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.heading,children:"Connection profile"}),(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{testID:"buoy-network-conditions",accessibilityRole:"button",accessibilityLabel:`Network throttling: ${C}`,accessibilityState:{expanded:f,disabled:!n||r},disabled:!n||r,onPress:()=>h(e=>!e),style:[styles.dropdown,f&&styles.dropdownOpen,!n&&styles.disabled],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.value,x&&{color:g}],children:C}),r?(0,_jsxRuntime.jsx)(_reactNative.ActivityIndicator,{size:"small",color:_sharedUi.night.color.textSecondary}):(0,_jsxRuntime.jsx)(_sharedUi.ChevronDown,{size:16,color:_sharedUi.night.color.textSecondary})]}),f&&(0,_jsxRuntime.jsx)(_reactNative.View,{accessibilityRole:"radiogroup",accessibilityLabel:"Connection profile",style:styles.options,children:options.map(e=>{const i=a===e.profile;return(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{testID:`buoy-network-condition-${e.profile}`,accessibilityRole:"radio",accessibilityLabel:e.label,accessibilityState:{checked:i,disabled:!n||r},disabled:!n||r,onPress:()=>void R(e.profile),style:[styles.option,i&&styles.selected],children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.optionBody,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.optionTitle,i&&{color:g}],children:e.label}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.caption,children:summaries[e.profile]})]}),i&&(0,_jsxRuntime.jsx)(_sharedUi.Check,{size:16,color:g})]},e.profile)})}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.caption,accessibilityLiveRegion:"polite",children:r?"Applying to device\u2026":!n?t?"Conditions unavailable on this device":"Requires a signed-in account and a development build":a?summaries[a]:"Waiting for device status"}),!!w&&(0,_jsxRuntime.jsx)(_reactNative.Text,{accessibilityRole:"alert",style:styles.error,children:w}),(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{testID:"buoy-network-link-state",accessibilityRole:"button",accessibilityLabel:"App link state",disabled:!n||r||!S,onPress:()=>y(e=>!e),style:styles.dropdown,children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.value,children:["App link: ",k.find(([e])=>e===o?.connection)?.[1]??"Unavailable"]})}),j&&k.map(([e,i])=>(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{testID:`buoy-network-link-${e}`,accessibilityRole:"radio",accessibilityState:{checked:o?.connection===e,disabled:r||!n},disabled:r||!n,style:styles.option,onPress:async()=>{if(c.current)return;const d=++s.current;c.current=true;u(true);p(void 0);try{if(t)await t.onConnectionChange?.(e);else(0,_store.setNetworkConditions)({connection:e});if(l.current&&s.current===d)y(false)}catch(b){if(l.current&&s.current===d)p(b instanceof Error?b.message:String(b))}finally{if(s.current===d){c.current=false;if(l.current)u(false)}}},children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.optionTitle,children:i})},e)),!S&&(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.caption,children:o?.capabilities.netInfo.reason??"This device has no link hook."}),!v&&(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.help,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.heading,children:"How it works"}),o&&(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.caption,children:["NetInfo: ",o.capabilities.netInfo.supported?"Hook on":o.capabilities.netInfo.reason??"No hook",". Expo Network: ",o.capabilities.expoNetwork.supported?"Hook on":o.capabilities.expoNetwork.reason??"No hook","."]}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.caption,children:"Down caps pace bytes to the app in JS. The socket stays at its real speed."}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.caption,children:"Up caps wait before send for known bytes. Upload time is simulated. The socket is not paced. Unknown sizes pass through with latency only. Each call shows any cap gap."}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.caption,children:"Caps apply per call through global fetch and RN XHR. WebSocket, native images, native SDKs and file transfers are not affected."}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.caption,children:"Link state changes what NetInfo and Expo Network report. It does not change the radio or web calls."}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.caption,children:"Stays on when this tool closes or capture pauses. No throttling clears both controls. App reload clears them too."})]})]})}const styles=_reactNative.StyleSheet.create({container:{padding:_sharedUi.night.gutter,gap:10},heading:{fontSize:_sharedUi.night.font.caption,fontWeight:"600",color:_sharedUi.night.color.textSecondary},dropdown:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:12,minHeight:44,paddingHorizontal:12,paddingVertical:10,borderRadius:_sharedUi.night.radius.segment,borderWidth:1,borderColor:_sharedUi.night.color.separator,backgroundColor:_sharedUi.night.color.surfaceElevated},dropdownOpen:{borderColor:_sharedUi.night.color.accentBorderStrong},value:{flex:1,fontSize:_sharedUi.night.font.body,color:_sharedUi.night.color.text},options:{padding:4,borderRadius:_sharedUi.night.radius.row,borderWidth:1,borderColor:_sharedUi.night.color.border,backgroundColor:_sharedUi.night.color.surface},option:{flexDirection:"row",alignItems:"center",gap:12,minHeight:54,padding:10,borderRadius:_sharedUi.night.radius.segment},optionBody:{flex:1,gap:4},optionTitle:{fontSize:_sharedUi.night.font.caption,fontWeight:"600",color:_sharedUi.night.color.text},selected:{backgroundColor:_sharedUi.night.color.surfaceElevated},disabled:{opacity:.45},caption:{fontSize:_sharedUi.night.font.caption,lineHeight:19,color:_sharedUi.night.color.textSecondary},help:{marginTop:14,paddingTop:16,gap:10,borderTopWidth:1,borderTopColor:_sharedUi.night.color.separator},error:{fontSize:_sharedUi.night.font.caption,lineHeight:18,color:_sharedUi.night.color.danger}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.NetworkConditionsControl=NetworkConditionsControl;var _react=require("react");var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _store=require("./store");var _jsxRuntime=require("react/jsx-runtime");const options=[{profile:"normal",label:"No throttling"},{profile:"slow",label:"Slow"},{profile:"verySlow",label:"Very slow"},{profile:"offline",label:"Offline"},{profile:"slow3g",label:"Slow 3G"},{profile:"slow4g",label:"Slow 4G"},{profile:"fast4g",label:"Fast 4G"}];const summaries={normal:"No added delay",slow:"+500 ms before each new request",verySlow:"+2 seconds before each new request",offline:"New requests fail before sending",slow3g:"50 KB/s down, 50 KB/s up; +2000 ms",slow4g:"180 KB/s down, 84.375 KB/s up; +562.5 ms",fast4g:"1012.5 KB/s down, 168.75 KB/s up; +165 ms"};function NetworkConditionsControl({remote:t,compact:v=false}){(0,_react.useSyncExternalStore)(_store.subscribeNetworkConditions,_store.getConditionsRevision,_store.getConditionsRevision);const o=t?t.state:(0,_store.getNetworkConditions)();const[j,y]=(0,_react.useState)(false);const T=(0,_react.useSyncExternalStore)(_store.subscribeNetworkConditions,_store.getNetworkCondition,_store.getNetworkCondition);const N=(0,_react.useSyncExternalStore)(_store.subscribeNetworkConditions,_store.conditionsCanApply,_store.conditionsCanApply);const[f,h]=(0,_react.useState)(false);const[w,p]=(0,_react.useState)();const[r,u]=(0,_react.useState)(false);const c=(0,_react.useRef)(false);const l=(0,_react.useRef)(true);const s=(0,_react.useRef)(0);(0,_react.useEffect)(()=>{s.current++;c.current=false;u(false);p(void 0)},[t?.targetId]);(0,_react.useEffect)(()=>{l.current=true;return()=>{l.current=false}},[]);const a=t?t.profile:T;const n=t?t.available:N;const x=o?.active??(a!==null&&a!=="normal");const g=a==="offline"?_sharedUi.night.color.danger:x?_sharedUi.night.color.warning:_sharedUi.night.color.accent;async function R(e){if(!n||c.current)return;if(e===a&&(e!=="normal"||!o?.active)){h(false);return}const i=++s.current;c.current=true;u(true);p(void 0);try{if(t)await t.onChange(e);else(0,_store.setNetworkCondition)(e);if(l.current&&s.current===i)h(false)}catch(d){if(l.current&&s.current===i)p(d instanceof Error?d.message:String(d))}finally{if(s.current===i){c.current=false;if(l.current)u(false)}}}const k=[["auto","Follow speed"],["real","Real link"],["offline","Offline"],["wifi","Wi-Fi"],["cellular","Cellular"],["noInternet","No internet"]];const S=(!t||!!t.onConnectionChange)&&(o?.capabilities.netInfo.supported||o?.capabilities.expoNetwork.supported);const C=options.find(e=>e.profile===a)?.label??"Unavailable";return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.container,testID:"buoy-network-throttling-screen",children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.heading,children:"Connection profile"}),(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{testID:"buoy-network-conditions",accessibilityRole:"button",accessibilityLabel:`Network throttling: ${C}`,accessibilityState:{expanded:f,disabled:!n||r},disabled:!n||r,onPress:()=>h(e=>!e),style:[styles.dropdown,f&&styles.dropdownOpen,!n&&styles.disabled],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.value,x&&{color:g}],children:C}),r?(0,_jsxRuntime.jsx)(_reactNative.ActivityIndicator,{size:"small",color:_sharedUi.night.color.textSecondary}):(0,_jsxRuntime.jsx)(_sharedUi.ChevronDown,{size:16,color:_sharedUi.night.color.textSecondary})]}),f&&(0,_jsxRuntime.jsx)(_reactNative.View,{accessibilityRole:"radiogroup",accessibilityLabel:"Connection profile",style:styles.options,children:options.map(e=>{const i=a===e.profile;return(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{testID:`buoy-network-condition-${e.profile}`,accessibilityRole:"radio",accessibilityLabel:e.label,accessibilityState:{checked:i,disabled:!n||r},disabled:!n||r,onPress:()=>void R(e.profile),style:[styles.option,i&&styles.selected],children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.optionBody,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.optionTitle,i&&{color:g}],children:e.label}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.caption,children:summaries[e.profile]})]}),i&&(0,_jsxRuntime.jsx)(_sharedUi.Check,{size:16,color:g})]},e.profile)})}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.caption,accessibilityLiveRegion:"polite",children:r?"Applying to device\u2026":!n?t?"Conditions unavailable on this device":"Requires a signed-in account and a development build":a?summaries[a]:"Waiting for device status"}),!!w&&(0,_jsxRuntime.jsx)(_reactNative.Text,{accessibilityRole:"alert",style:styles.error,children:w}),(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{testID:"buoy-network-link-state",accessibilityRole:"button",accessibilityLabel:"App link state",disabled:!n||r||!S,onPress:()=>y(e=>!e),style:styles.dropdown,children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.value,children:["App link: ",k.find(([e])=>e===o?.connection)?.[1]??"Unavailable"]})}),j&&k.map(([e,i])=>(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{testID:`buoy-network-link-${e}`,accessibilityRole:"radio",accessibilityState:{checked:o?.connection===e,disabled:r||!n},disabled:r||!n,style:styles.option,onPress:async()=>{if(c.current)return;const d=++s.current;c.current=true;u(true);p(void 0);try{if(t)await t.onConnectionChange?.(e);else(0,_store.setNetworkConditions)({connection:e});if(l.current&&s.current===d)y(false)}catch(b){if(l.current&&s.current===d)p(b instanceof Error?b.message:String(b))}finally{if(s.current===d){c.current=false;if(l.current)u(false)}}},children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.optionTitle,children:i})},e)),!S&&(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.caption,children:o?.capabilities.netInfo.reason??"This device has no link hook."}),!v&&(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.help,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.heading,children:"How it works"}),o&&(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.caption,children:["NetInfo: ",o.capabilities.netInfo.supported?"Hook on":o.capabilities.netInfo.reason??"No hook",". Expo Network: ",o.capabilities.expoNetwork.supported?"Hook on":o.capabilities.expoNetwork.reason??"No hook","."]}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.caption,children:"Down caps pace bytes to the app in JS. The socket stays at its real speed."}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.caption,children:"Up caps wait before send for known bytes. Upload time is simulated. The socket is not paced. Unknown sizes pass through with latency only. Each call shows any cap gap."}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.caption,children:"Caps apply per call through global fetch and RN XHR. Offline also drops WebSockets; speeds don't slow them. Native images, native SDKs and file transfers are not affected."}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.caption,children:"Link state changes what NetInfo and Expo Network report. It does not change the radio or web calls."}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.caption,children:"Stays on when this tool closes or capture pauses. No throttling clears both controls. App reload clears them too."})]})]})}const styles=_reactNative.StyleSheet.create({container:{padding:_sharedUi.night.gutter,gap:10},heading:{fontSize:_sharedUi.night.font.caption,fontWeight:"600",color:_sharedUi.night.color.textSecondary},dropdown:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:12,minHeight:44,paddingHorizontal:12,paddingVertical:10,borderRadius:_sharedUi.night.radius.segment,borderWidth:1,borderColor:_sharedUi.night.color.separator,backgroundColor:_sharedUi.night.color.surfaceElevated},dropdownOpen:{borderColor:_sharedUi.night.color.accentBorderStrong},value:{flex:1,fontSize:_sharedUi.night.font.body,color:_sharedUi.night.color.text},options:{padding:4,borderRadius:_sharedUi.night.radius.row,borderWidth:1,borderColor:_sharedUi.night.color.border,backgroundColor:_sharedUi.night.color.surface},option:{flexDirection:"row",alignItems:"center",gap:12,minHeight:54,padding:10,borderRadius:_sharedUi.night.radius.segment},optionBody:{flex:1,gap:4},optionTitle:{fontSize:_sharedUi.night.font.caption,fontWeight:"600",color:_sharedUi.night.color.text},selected:{backgroundColor:_sharedUi.night.color.surfaceElevated},disabled:{opacity:.45},caption:{fontSize:_sharedUi.night.font.caption,lineHeight:19,color:_sharedUi.night.color.textSecondary},help:{marginTop:14,paddingTop:16,gap:10,borderTopWidth:1,borderTopColor:_sharedUi.night.color.separator},error:{fontSize:_sharedUi.night.font.caption,lineHeight:18,color:_sharedUi.night.color.danger}});
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.NETWORK_CONDITIONS=exports.CONNECTIONS=exports.CONDITIONS_SCOPE=void 0;const NETWORK_CONDITIONS=exports.NETWORK_CONDITIONS={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},slow3g:{label:"Slow 3G",delayMs:2e3,downloadBytesPerSecond:5e4,uploadBytesPerSecond:5e4},slow4g:{label:"Slow 4G",delayMs:562.5,downloadBytesPerSecond:18e4,uploadBytesPerSecond:84375},fast4g:{label:"Fast 4G",delayMs:165,downloadBytesPerSecond:1012500,uploadBytesPerSecond:168750}};const CONNECTIONS=exports.CONNECTIONS=["auto","real","offline","wifi","cellular","noInternet"];const CONDITIONS_SCOPE=exports.CONDITIONS_SCOPE={download:"Paces bytes to the app in JS. The socket stays at its real speed.",upload:"Waits before send for known body bytes. Unknown sizes pass through with latency only. Multipart overhead is not counted. Each call marks a partial or skipped cap. Upload time is simulated; the socket is not paced.",transports:"Affects global fetch and RN XHR. WebSocket, native images, native SDKs and file transfers are not affected."};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.NETWORK_CONDITIONS=exports.CONNECTIONS=exports.CONDITIONS_SCOPE=void 0;const NETWORK_CONDITIONS=exports.NETWORK_CONDITIONS={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},slow3g:{label:"Slow 3G",delayMs:2e3,downloadBytesPerSecond:5e4,uploadBytesPerSecond:5e4},slow4g:{label:"Slow 4G",delayMs:562.5,downloadBytesPerSecond:18e4,uploadBytesPerSecond:84375},fast4g:{label:"Fast 4G",delayMs:165,downloadBytesPerSecond:1012500,uploadBytesPerSecond:168750}};const CONNECTIONS=exports.CONNECTIONS=["auto","real","offline","wifi","cellular","noInternet"];const CONDITIONS_SCOPE=exports.CONDITIONS_SCOPE={download:"Paces bytes to the app in JS. The socket stays at its real speed.",upload:"Waits before send for known body bytes. Unknown sizes pass through with latency only. Multipart overhead is not counted. Each call marks a partial or skipped cap. Upload time is simulated; the socket is not paced.",transports:"Affects global fetch and RN XHR. Offline also drops WebSockets; speeds don't slow them. Native images, native SDKs and file transfers are not affected."};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"CONDITIONS_SCOPE",{enumerable:true,get:function(){return _profiles.CONDITIONS_SCOPE}});Object.defineProperty(exports,"NETWORK_CONDITIONS",{enumerable:true,get:function(){return _profiles.NETWORK_CONDITIONS}});exports.getNetworkCondition=exports.getEffectiveNetworkConnection=exports.getConditionsRevision=exports.conditionsCanApply=void 0;exports.getNetworkConditions=getNetworkConditions;exports.networkConditionsRuntimeId=exports.networkConditionsActive=exports.getNetworkConnection=void 0;exports.setConnectionSupport=setConnectionSupport;exports.setNetworkCondition=setNetworkCondition;exports.setNetworkConditions=setNetworkConditions;exports.snapshotNetworkCondition=snapshotNetworkCondition;exports.subscribeNetworkConditions=void 0;var _sharedUi=require("@buoy-gg/shared-ui");var _networkListener=require("../utils/networkListener");var _profiles=require("./profiles");const connectionSupport={netInfo:{supported:false,reason:"Load the NetInfo hook before app code."},expoNetwork:{supported:false,reason:"Load the Expo Network hook before app code."}};let connection="auto";let revision=0;const getNetworkConnection=()=>connection;exports.getNetworkConnection=getNetworkConnection;const getConditionsRevision=()=>revision;exports.getConditionsRevision=getConditionsRevision;const getEffectiveNetworkConnection=()=>!conditionsCanApply()?"real":connection==="auto"?profile==="offline"?"offline":"real":connection;exports.getEffectiveNetworkConnection=getEffectiveNetworkConnection;const networkConditionsActive=()=>profile!=="normal"||!["auto","real"].includes(connection);exports.networkConditionsActive=networkConditionsActive;function setConnectionSupport(e,o){connectionSupport[e]=o;revision++;listeners.forEach(t=>t())}function getNetworkConditions(){const e=_profiles.NETWORK_CONDITIONS[profile];return{version:2,runtimeId:networkConditionsRuntimeId,revision,profile,connection,available:conditionsCanApply(),active:networkConditionsActive(),delayMs:e.delayMs,downloadBytesPerSecond:e.downloadBytesPerSecond??null,uploadBytesPerSecond:e.uploadBytesPerSecond??null,capabilities:{...connectionSupport,fetch:"JS body delivery",xhr:"RN progress and body delivery",upload:"time-simulated",webSocket:false,nativeImages:false,nativeModules:false},scope:_profiles.CONDITIONS_SCOPE}}function setNetworkConditions(e){if(!e||typeof e!=="object"||Array.isArray(e))throw new Error("Choose a speed or link state.");const o=e;if(Object.keys(o).some(r=>r!=="profile"&&r!=="connection")||!("profile"in o)&&!("connection"in o))throw new Error("Choose a speed or link state.");const t="profile"in o?o.profile:profile;const n="connection"in o?o.connection:t==="normal"&&"profile"in o?"auto":connection;if(typeof t!=="string"||!Object.prototype.hasOwnProperty.call(_profiles.NETWORK_CONDITIONS,t))throw new Error("Choose a valid speed profile.");if(!_profiles.CONNECTIONS.includes(n))throw new Error("Choose a valid link state.");if((t!=="normal"||!["auto","real"].includes(n))&&!conditionsCanApply())throw new Error("Use a signed-in account and a dev build.");if(!["auto","real"].includes(n)&&!connectionSupport.netInfo.supported&&!connectionSupport.expoNetwork.supported)throw new Error("Load a link hook before app code.");if(t===profile&&n===connection)return getNetworkConditions();const i=t!=="normal";if(i&&!keepAlive){(0,_networkListener.startNetworkListener)();keepAlive=(0,_networkListener.addNetworkListener)(()=>{})}if(!i){keepAlive?.();keepAlive=void 0;if((0,_networkListener.getNetworkListenerCount)()===0)(0,_networkListener.stopNetworkListener)()}profile=t;connection=n;revision++;listeners.forEach(r=>r());return getNetworkConditions()}const networkConditionsRuntimeId=exports.networkConditionsRuntimeId=`${Date.now()}-${Math.random().toString(36).slice(2)}`;let profile="normal";let keepAlive;const listeners=new Set;const conditionsCanApply=()=>typeof __DEV__!=="undefined"&&__DEV__&&(0,_sharedUi.hasAccountAccess)();exports.conditionsCanApply=conditionsCanApply;const getNetworkCondition=()=>profile;exports.getNetworkCondition=getNetworkCondition;const subscribeNetworkConditions=e=>{listeners.add(e);return()=>{listeners.delete(e)}};exports.subscribeNetworkConditions=subscribeNetworkConditions;function setNetworkCondition(e){return setNetworkConditions({profile:e}).profile}function snapshotNetworkCondition(e){if(profile==="normal"||!conditionsCanApply()||!/^https?:\/\//i.test(e))return;const{label:o,...t}=_profiles.NETWORK_CONDITIONS[profile];return Object.freeze({profile,...t})}(0,_sharedUi.subscribeAccountAccess)(()=>{if(!(0,_sharedUi.hasAccountAccess)())setNetworkCondition("normal");listeners.forEach(e=>e())});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"CONDITIONS_SCOPE",{enumerable:true,get:function(){return _profiles.CONDITIONS_SCOPE}});Object.defineProperty(exports,"NETWORK_CONDITIONS",{enumerable:true,get:function(){return _profiles.NETWORK_CONDITIONS}});exports.getNetworkCondition=exports.getEffectiveNetworkConnection=exports.getConditionsRevision=exports.conditionsCanApply=void 0;exports.getNetworkConditions=getNetworkConditions;exports.networkConditionsRuntimeId=exports.networkConditionsActive=exports.getNetworkConnection=void 0;exports.setConnectionSupport=setConnectionSupport;exports.setNetworkCondition=setNetworkCondition;exports.setNetworkConditions=setNetworkConditions;exports.snapshotNetworkCondition=snapshotNetworkCondition;exports.subscribeNetworkConditions=void 0;var _sharedUi=require("@buoy-gg/shared-ui");var _networkListener=require("../utils/networkListener");var _profiles=require("./profiles");const connectionSupport={netInfo:{supported:false,reason:"Load the NetInfo hook before app code."},expoNetwork:{supported:false,reason:"Load the Expo Network hook before app code."}};let connection="auto";let revision=0;const getNetworkConnection=()=>connection;exports.getNetworkConnection=getNetworkConnection;const getConditionsRevision=()=>revision;exports.getConditionsRevision=getConditionsRevision;const getEffectiveNetworkConnection=()=>!conditionsCanApply()?"real":connection==="auto"?profile==="offline"?"offline":"real":connection;exports.getEffectiveNetworkConnection=getEffectiveNetworkConnection;const networkConditionsActive=()=>profile!=="normal"||!["auto","real"].includes(connection);exports.networkConditionsActive=networkConditionsActive;function setConnectionSupport(e,o){connectionSupport[e]=o;revision++;listeners.forEach(t=>t())}function getNetworkConditions(){const e=_profiles.NETWORK_CONDITIONS[profile];return{version:2,runtimeId:networkConditionsRuntimeId,revision,profile,connection,available:conditionsCanApply(),active:networkConditionsActive(),delayMs:e.delayMs,downloadBytesPerSecond:e.downloadBytesPerSecond??null,uploadBytesPerSecond:e.uploadBytesPerSecond??null,capabilities:{...connectionSupport,fetch:"JS body delivery",xhr:"RN progress and body delivery",upload:"time-simulated",webSocket:"offline only",nativeImages:false,nativeModules:false},scope:_profiles.CONDITIONS_SCOPE}}function setNetworkConditions(e){if(!e||typeof e!=="object"||Array.isArray(e))throw new Error("Choose a speed or link state.");const o=e;if(Object.keys(o).some(r=>r!=="profile"&&r!=="connection")||!("profile"in o)&&!("connection"in o))throw new Error("Choose a speed or link state.");const t="profile"in o?o.profile:profile;const n="connection"in o?o.connection:t==="normal"&&"profile"in o?"auto":connection;if(typeof t!=="string"||!Object.prototype.hasOwnProperty.call(_profiles.NETWORK_CONDITIONS,t))throw new Error("Choose a valid speed profile.");if(!_profiles.CONNECTIONS.includes(n))throw new Error("Choose a valid link state.");if((t!=="normal"||!["auto","real"].includes(n))&&!conditionsCanApply())throw new Error("Use a signed-in account and a dev build.");if(!["auto","real"].includes(n)&&!connectionSupport.netInfo.supported&&!connectionSupport.expoNetwork.supported)throw new Error("Load a link hook before app code.");if(t===profile&&n===connection)return getNetworkConditions();const i=t!=="normal";if(i&&!keepAlive){(0,_networkListener.startNetworkListener)();keepAlive=(0,_networkListener.addNetworkListener)(()=>{})}if(!i){keepAlive?.();keepAlive=void 0;if((0,_networkListener.getNetworkListenerCount)()===0)(0,_networkListener.stopNetworkListener)()}profile=t;connection=n;revision++;listeners.forEach(r=>r());return getNetworkConditions()}const networkConditionsRuntimeId=exports.networkConditionsRuntimeId=`${Date.now()}-${Math.random().toString(36).slice(2)}`;let profile="normal";let keepAlive;const listeners=new Set;const conditionsCanApply=()=>typeof __DEV__!=="undefined"&&__DEV__&&(0,_sharedUi.hasAccountAccess)();exports.conditionsCanApply=conditionsCanApply;const getNetworkCondition=()=>profile;exports.getNetworkCondition=getNetworkCondition;const subscribeNetworkConditions=e=>{listeners.add(e);return()=>{listeners.delete(e)}};exports.subscribeNetworkConditions=subscribeNetworkConditions;function setNetworkCondition(e){return setNetworkConditions({profile:e}).profile}function snapshotNetworkCondition(e){if(profile==="normal"||!conditionsCanApply()||!/^https?:\/\//i.test(e))return;const{label:o,...t}=_profiles.NETWORK_CONDITIONS[profile];return Object.freeze({profile,...t})}(0,_sharedUi.subscribeAccountAccess)(()=>{if(!(0,_sharedUi.hasAccountAccess)())setNetworkCondition("normal");listeners.forEach(e=>e())});
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.useSocketsState=useSocketsState;var _react=require("react");var _socketStore=require("../sockets/socketStore");const THROTTLE_MS=100;function useSocketsState(e=false){const[o,r]=(0,_react.useState)(()=>_socketStore.socketStore.getState());(0,_react.useEffect)(()=>{if(e)return;r(_socketStore.socketStore.getState());let t=null;let s=0;const c=()=>{t=null;s=Date.now();r(_socketStore.socketStore.getState())};const a=_socketStore.socketStore.subscribeState(()=>{if(t)return;const u=Math.max(0,THROTTLE_MS-(Date.now()-s));t=setTimeout(c,u)});return()=>{a();if(t)clearTimeout(t)}},[e]);return o}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.OVERRIDES_INACTIVE_REASON=void 0;exports.accountCheckFor=accountCheckFor;exports.inspectEngine=inspectEngine;exports.overrideForRequest=overrideForRequest;exports.overrideRulesLoaded=overrideRulesLoaded;exports.overrideRulesNeedBody=overrideRulesNeedBody;exports.overrideRulesReady=overrideRulesReady;exports.overridesCanApply=overridesCanApply;exports.setOverrideHooks=setOverrideHooks;var _sharedUi=require("@buoy-gg/shared-ui");var _resolveOverride=require("./resolveOverride");var _realNow=require("../utils/realNow");let hooks=null;function setOverrideHooks(e){hooks=e}function overrideRulesReady(){return hooks?.ready?.()??Promise.resolve()}function overrideRulesLoaded(){return hooks?.isReady?.()??true}function overrideRulesNeedBody(){return!!hooks?.getRules().some(e=>e.enabled&&(e.bodyIncludes||e.graphqlOperation))}function overridesCanApply(){return(0,_sharedUi.hasAccountAccess)()&&!(typeof __DEV__!=="undefined"&&!__DEV__)}const OVERRIDES_INACTIVE_REASON=exports.OVERRIDES_INACTIVE_REASON="Response overrides never apply in a release build \u2014 the rule is saved but will not affect any request.";function inspectEngine(e,n){return{hooksInstalled:hooks!==null,devFlag:typeof __DEV__==="undefined"?"undefined":__DEV__,ruleCount:hooks?hooks.getRules().length:0,matches:hooks?(0,_resolveOverride.findMatchingRule)(e,n,hooks.getRules())!==null:false}}const ACCOUNT_WAIT_MS=3e3;function accountCheckFor(e,n,o,s){if(!hooks||(0,_sharedUi.hasAccountAccess)())return null;if(typeof __DEV__!=="undefined"&&!__DEV__)return null;if((0,_sharedUi.getAccountAccess)().status!=="initializing")return null;if(!(0,_resolveOverride.findMatchingRule)(e,n,hooks.getRules(),o,s))return null;return new Promise(t=>{let r=()=>{};const u=()=>{(0,_realNow.realClearTimeout)(i);r();t()};const i=(0,_realNow.realSetTimeout)(u,ACCOUNT_WAIT_MS);r=(0,_sharedUi.subscribeAccountAccess)(()=>{if((0,_sharedUi.getAccountAccess)().status!=="initializing")u()})})}function overrideForRequest(e,n,o,s){if(!hooks)return null;if(typeof __DEV__!=="undefined"&&!__DEV__)return null;let t=hooks.getRules();if(t.length===0)return null;if(!(0,_sharedUi.hasAccountAccess)()){t=t.filter(i=>i.sandbox===true);if(t.length===0)return null}const r=(0,_resolveOverride.findMatchingRule)(e,n,t,o,s);if(!r)return null;const u=(0,_resolveOverride.shouldApply)(r);hooks.recordMatch(r.id);if(!u)return null;hooks.recordHit(r.id);return(0,_resolveOverride.toOutcome)(r)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.OVERRIDES_INACTIVE_REASON=void 0;exports.accountCheckFor=accountCheckFor;exports.inspectEngine=inspectEngine;exports.overrideForRequest=overrideForRequest;exports.overrideRulesLoaded=overrideRulesLoaded;exports.overrideRulesNeedBody=overrideRulesNeedBody;exports.overrideRulesReady=overrideRulesReady;exports.overridesCanApply=overridesCanApply;exports.setOverrideHooks=setOverrideHooks;var _sharedUi=require("@buoy-gg/shared-ui");var _resolveOverride=require("./resolveOverride");var _realNow=require("../utils/realNow");let hooks=null;function setOverrideHooks(e){hooks=e}function overrideRulesReady(){return hooks?.ready?.()??Promise.resolve()}function overrideRulesLoaded(){return hooks?.isReady?.()??true}function overrideRulesNeedBody(){return!!hooks?.getRules().some(e=>e.enabled&&(e.bodyIncludes||e.graphqlOperation||e.bodyJson!==void 0))}function overridesCanApply(){return(0,_sharedUi.hasAccountAccess)()&&!(typeof __DEV__!=="undefined"&&!__DEV__)}const OVERRIDES_INACTIVE_REASON=exports.OVERRIDES_INACTIVE_REASON="Response overrides never apply in a release build \u2014 the rule is saved but will not affect any request.";function inspectEngine(e,n){return{hooksInstalled:hooks!==null,devFlag:typeof __DEV__==="undefined"?"undefined":__DEV__,ruleCount:hooks?hooks.getRules().length:0,matches:hooks?(0,_resolveOverride.findMatchingRule)(e,n,hooks.getRules())!==null:false}}const ACCOUNT_WAIT_MS=3e3;function accountCheckFor(e,n,u,s){if(!hooks||(0,_sharedUi.hasAccountAccess)())return null;if(typeof __DEV__!=="undefined"&&!__DEV__)return null;if((0,_sharedUi.getAccountAccess)().status!=="initializing")return null;if(!(0,_resolveOverride.findMatchingRule)(e,n,hooks.getRules(),u,s))return null;return new Promise(t=>{let r=()=>{};const o=()=>{(0,_realNow.realClearTimeout)(i);r();t()};const i=(0,_realNow.realSetTimeout)(o,ACCOUNT_WAIT_MS);r=(0,_sharedUi.subscribeAccountAccess)(()=>{if((0,_sharedUi.getAccountAccess)().status!=="initializing")o()})})}function overrideForRequest(e,n,u,s){if(!hooks)return null;if(typeof __DEV__!=="undefined"&&!__DEV__)return null;let t=hooks.getRules();if(t.length===0)return null;if(!(0,_sharedUi.hasAccountAccess)()){t=t.filter(i=>i.sandbox===true);if(t.length===0)return null}const r=(0,_resolveOverride.findMatchingRule)(e,n,t,u,s);if(!r)return null;const o=(0,_resolveOverride.shouldApply)(r);hooks.recordMatch(r.id);if(!o)return null;hooks.recordHit(r.id);return(0,_resolveOverride.toOutcome)(r)}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.canonicalJson=canonicalJson;exports.compilePattern=compilePattern;exports.escapeRegex=escapeRegex;exports.ruleMatches=ruleMatches;const SPECIAL_CHARACTERS="[]{}()\\.^$+|-,?";function escapeRegex(e){let n="";for(let t=0;t<e.length;t++){const r=e.charAt(t);if(SPECIAL_CHARACTERS.indexOf(r)!==-1){n+="\\"}n+=r}return n.split("*").join(".*")}const compiled=new Map;function compilePattern(e){const n=compiled.get(e);if(n)return n;const t=e.startsWith("/")?`[a-zA-Z][a-zA-Z0-9+.-]*://[^/]*${escapeRegex(e)}`:escapeRegex(e);const r=new RegExp(`^${t}$`);if(compiled.size>200)compiled.clear();compiled.set(e,r);return r}function hasHeader(e,n){if(!e)return false;const t=n.toLowerCase();for(const r of Object.keys(e)){if(r.toLowerCase()===t&&e[r]!==void 0&&e[r]!=="")return true}return false}function canonicalJson(e){const n=t=>Array.isArray(t)?t.map(n):t&&typeof t==="object"?Object.fromEntries(Object.keys(t).sort().map(r=>[r,n(t[r])])):t;return JSON.stringify(n(e))??"null"}function hasGraphqlOperation(e,n,t){if(typeof e!=="string"||!e.includes(n))return false;try{const r=JSON.parse(e);const s=Array.isArray(r)?r:[r];return s.some(o=>{if(!o||typeof o!=="object"||o.operationName!==n)return false;return t===void 0||canonicalJson(o.variables??{})===t})}catch{return false}}function ruleMatches(e,n,t,r,s){if(e.methods&&e.methods.length>0){if(!e.methods.includes(t.toUpperCase()))return false}if(e.requireHeader&&!hasHeader(r,e.requireHeader))return false;if(e.bodyIncludes&&(typeof s!=="string"||!s.includes(e.bodyIncludes)))return false;if(e.graphqlOperation&&!hasGraphqlOperation(s,e.graphqlOperation,e.graphqlVariables))return false;try{return compilePattern(e.urlPattern).test(n)}catch{return false}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.canonicalJson=canonicalJson;exports.compilePattern=compilePattern;exports.escapeRegex=escapeRegex;exports.ruleMatches=ruleMatches;const SPECIAL_CHARACTERS="[]{}()\\.^$+|-,?";function escapeRegex(e){let t="";for(let r=0;r<e.length;r++){const n=e.charAt(r);if(SPECIAL_CHARACTERS.indexOf(n)!==-1){t+="\\"}t+=n}return t.split("*").join(".*")}const compiled=new Map;function compilePattern(e){const t=compiled.get(e);if(t)return t;const r=e.startsWith("/")?`[a-zA-Z][a-zA-Z0-9+.-]*://[^/]*${escapeRegex(e)}`:escapeRegex(e);const n=new RegExp(`^${r}$`);if(compiled.size>200)compiled.clear();compiled.set(e,n);return n}function hasHeader(e,t){if(!e)return false;const r=t.toLowerCase();for(const n of Object.keys(e)){if(n.toLowerCase()===r&&e[n]!==void 0&&e[n]!=="")return true}return false}function canonicalJson(e){const t=r=>Array.isArray(r)?r.map(t):r&&typeof r==="object"?Object.fromEntries(Object.keys(r).sort().map(n=>[n,t(r[n])])):r;return JSON.stringify(t(e))??"null"}function hasGraphqlOperation(e,t,r,n){if(typeof e!=="string"||!e.includes(t))return false;try{const s=JSON.parse(e);if(n&&Array.isArray(s))return false;const i=Array.isArray(s)?s:[s];return i.some(a=>{if(!a||typeof a!=="object"||a.operationName!==t)return false;return r===void 0||canonicalJson(a.variables??{})===r})}catch{return false}}function hasJsonBody(e,t){if(typeof e!=="string")return false;try{return canonicalJson(JSON.parse(e))===t}catch{return JSON.stringify(e)===t}}function ruleMatches(e,t,r,n,s){if(e.methods&&e.methods.length>0){if(!e.methods.includes(r.toUpperCase()))return false}if(e.requireHeader&&!hasHeader(n,e.requireHeader))return false;if(e.bodyIncludes&&(typeof s!=="string"||!s.includes(e.bodyIncludes)))return false;if(e.graphqlOperation&&!hasGraphqlOperation(s,e.graphqlOperation,e.graphqlVariables,e.graphqlSingle))return false;if(e.bodyJson!==void 0&&!hasJsonBody(s,e.bodyJson))return false;try{return compilePattern(e.urlPattern).test(t)}catch{return false}}