@buoy-gg/network 7.0.40 → 7.0.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -79
- package/lib/commonjs/index.js +1 -325
- package/lib/commonjs/index.web.js +1 -420
- package/lib/commonjs/network/components/DataViewer.web.js +1 -879
- package/lib/commonjs/network/components/NetworkCopyScreen.web.js +1 -48
- package/lib/commonjs/network/components/NetworkCopySettingsView.js +27 -755
- package/lib/commonjs/network/components/NetworkCopySettingsView.web.js +14 -1242
- package/lib/commonjs/network/components/NetworkDetailScreen.web.js +1 -101
- package/lib/commonjs/network/components/NetworkDetailStepper.js +1 -108
- package/lib/commonjs/network/components/NetworkDetailStepper.web.js +1 -298
- package/lib/commonjs/network/components/NetworkEventDetailView.js +15 -1130
- package/lib/commonjs/network/components/NetworkEventDetailView.web.js +15 -1484
- package/lib/commonjs/network/components/NetworkEventItemCompact.js +2 -401
- package/lib/commonjs/network/components/NetworkEventItemCompact.web.js +2 -820
- package/lib/commonjs/network/components/NetworkFilterScreen.web.js +1 -55
- package/lib/commonjs/network/components/NetworkFilterViewV3.js +1 -442
- package/lib/commonjs/network/components/NetworkFilterViewV3.web.js +1 -1310
- package/lib/commonjs/network/components/NetworkHeaderLive.js +1 -375
- package/lib/commonjs/network/components/NetworkHeaderLive.web.js +1 -623
- package/lib/commonjs/network/components/NetworkHeaderMenu.js +1 -190
- package/lib/commonjs/network/components/NetworkListScreen.js +1 -404
- package/lib/commonjs/network/components/NetworkListScreen.web.js +1 -625
- package/lib/commonjs/network/components/NetworkModal.js +1 -786
- package/lib/commonjs/network/components/NetworkNumberPrompt.js +1 -178
- package/lib/commonjs/network/components/NetworkNumberPrompt.web.js +1 -232
- package/lib/commonjs/network/components/NetworkOverrideEditor.js +1 -814
- package/lib/commonjs/network/components/NetworkOverrideEditor.web.js +1 -942
- package/lib/commonjs/network/components/NetworkOverrideHeaderButton.js +1 -107
- package/lib/commonjs/network/components/NetworkOverrideHeaderButton.web.js +1 -133
- package/lib/commonjs/network/components/NetworkOverridesButton.js +1 -90
- package/lib/commonjs/network/components/NetworkOverridesButton.web.js +1 -143
- package/lib/commonjs/network/components/NetworkOverridesScreen.js +1 -543
- package/lib/commonjs/network/components/NetworkOverridesScreen.web.js +1 -830
- package/lib/commonjs/network/components/NetworkSavedScreen.js +1 -226
- package/lib/commonjs/network/components/NetworkSavedScreen.web.js +1 -463
- package/lib/commonjs/network/components/NetworkUpgradeBanner.js +1 -76
- package/lib/commonjs/network/components/response-editor/Explorer.js +1 -973
- package/lib/commonjs/network/components/response-editor/Explorer.web.js +1 -1136
- package/lib/commonjs/network/components/response-editor/deleteNestedDataByPath.js +1 -56
- package/lib/commonjs/network/components/response-editor/editorContext.js +1 -33
- package/lib/commonjs/network/components/response-editor/updateNestedDataByPath.js +1 -61
- package/lib/commonjs/network/conditions/NetworkConditionsControl.js +1 -235
- package/lib/commonjs/network/conditions/NetworkConditionsControl.test.js +1 -136
- package/lib/commonjs/network/conditions/NetworkConditionsIcon.js +1 -33
- package/lib/commonjs/network/conditions/NetworkFloatingTool.js +1 -310
- package/lib/commonjs/network/conditions/NetworkFloatingTool.test.js +1 -219
- package/lib/commonjs/network/conditions/store.js +1 -75
- package/lib/commonjs/network/conditions/wait.js +1 -43
- package/lib/commonjs/network/conditions/xhr.js +1 -110
- package/lib/commonjs/network/hooks/useLiveNetworkEvent.js +1 -62
- package/lib/commonjs/network/hooks/useNetworkBadgeCounts.js +1 -83
- package/lib/commonjs/network/hooks/useNetworkEventList.js +1 -108
- package/lib/commonjs/network/hooks/useNetworkEvents.js +1 -318
- package/lib/commonjs/network/hooks/useNetworkHasMatches.js +1 -56
- package/lib/commonjs/network/hooks/useNetworkSaved.js +1 -38
- package/lib/commonjs/network/hooks/useNetworkSelection.js +1 -53
- package/lib/commonjs/network/hooks/useOverrideRules.js +1 -36
- package/lib/commonjs/network/hooks/useTickEveryMinute.js +1 -21
- package/lib/commonjs/network/overrides/applyToFetch.js +1 -80
- package/lib/commonjs/network/overrides/applyToXhr.js +2 -453
- package/lib/commonjs/network/overrides/engine.js +1 -93
- package/lib/commonjs/network/overrides/matchRule.js +1 -81
- package/lib/commonjs/network/overrides/overriddenRows.js +1 -0
- package/lib/commonjs/network/overrides/overrideRulesStore.js +1 -550
- package/lib/commonjs/network/overrides/presets.js +1 -70
- package/lib/commonjs/network/overrides/resolveOverride.js +1 -158
- package/lib/commonjs/network/overrides/types.js +1 -90
- package/lib/commonjs/network/sync/networkBodyResolver.js +1 -39
- package/lib/commonjs/network/sync/networkSyncAdapter.js +1 -882
- package/lib/commonjs/network/sync/overrideHonesty.release.test.js +1 -36
- package/lib/commonjs/network/types/index.js +1 -5
- package/lib/commonjs/network/utils/extractOperationName.js +1 -80
- package/lib/commonjs/network/utils/filterNetworkEvents.js +1 -96
- package/lib/commonjs/network/utils/formatGraphQLVariables.js +1 -219
- package/lib/commonjs/network/utils/formatting.js +1 -30
- package/lib/commonjs/network/utils/generateCurl.js +2 -71
- package/lib/commonjs/network/utils/generateNetworkCopyText.js +37 -166
- package/lib/commonjs/network/utils/httpCompletion.js +1 -37
- package/lib/commonjs/network/utils/networkEventStore.js +1 -393
- package/lib/commonjs/network/utils/networkListener.js +4 -1259
- package/lib/commonjs/network/utils/networkSavedStore.js +3 -577
- package/lib/commonjs/network/utils/networkSelectionStore.js +1 -193
- package/lib/commonjs/network/utils/realNow.js +1 -0
- package/lib/commonjs/network/utils/requestId.js +1 -0
- package/lib/commonjs/network/utils/resolveRequestUrl.js +1 -0
- package/lib/commonjs/network/utils/selectSavedEvents.js +1 -39
- package/lib/commonjs/network/utils/startNetworkCapture.js +1 -0
- package/lib/commonjs/network/utils/withPinnedFirst.js +1 -32
- package/lib/commonjs/preset.js +1 -102
- package/lib/module/index.js +1 -103
- package/lib/module/index.web.js +1 -82
- package/lib/module/network/components/DataViewer.web.js +1 -875
- package/lib/module/network/components/NetworkCopyScreen.web.js +1 -44
- package/lib/module/network/components/NetworkCopySettingsView.js +27 -750
- package/lib/module/network/components/NetworkCopySettingsView.web.js +14 -1237
- package/lib/module/network/components/NetworkDetailScreen.web.js +1 -97
- package/lib/module/network/components/NetworkDetailStepper.js +1 -104
- package/lib/module/network/components/NetworkDetailStepper.web.js +1 -296
- package/lib/module/network/components/NetworkEventDetailView.js +15 -1129
- package/lib/module/network/components/NetworkEventDetailView.web.js +15 -1482
- package/lib/module/network/components/NetworkEventItemCompact.js +2 -398
- package/lib/module/network/components/NetworkEventItemCompact.web.js +2 -818
- package/lib/module/network/components/NetworkFilterScreen.web.js +1 -51
- package/lib/module/network/components/NetworkFilterViewV3.js +1 -438
- package/lib/module/network/components/NetworkFilterViewV3.web.js +1 -1306
- package/lib/module/network/components/NetworkHeaderLive.js +1 -366
- package/lib/module/network/components/NetworkHeaderLive.web.js +1 -617
- package/lib/module/network/components/NetworkHeaderMenu.js +1 -184
- package/lib/module/network/components/NetworkListScreen.js +1 -400
- package/lib/module/network/components/NetworkListScreen.web.js +1 -623
- package/lib/module/network/components/NetworkModal.js +1 -781
- package/lib/module/network/components/NetworkNumberPrompt.js +1 -174
- package/lib/module/network/components/NetworkNumberPrompt.web.js +1 -230
- package/lib/module/network/components/NetworkOverrideEditor.js +1 -811
- package/lib/module/network/components/NetworkOverrideEditor.web.js +1 -939
- package/lib/module/network/components/NetworkOverrideHeaderButton.js +1 -104
- package/lib/module/network/components/NetworkOverrideHeaderButton.web.js +1 -131
- package/lib/module/network/components/NetworkOverridesButton.js +1 -87
- package/lib/module/network/components/NetworkOverridesButton.web.js +1 -141
- package/lib/module/network/components/NetworkOverridesScreen.js +1 -539
- package/lib/module/network/components/NetworkOverridesScreen.web.js +1 -826
- package/lib/module/network/components/NetworkSavedScreen.js +1 -222
- package/lib/module/network/components/NetworkSavedScreen.web.js +1 -461
- package/lib/module/network/components/NetworkUpgradeBanner.js +1 -72
- package/lib/module/network/components/response-editor/Explorer.js +1 -972
- package/lib/module/network/components/response-editor/Explorer.web.js +1 -1133
- package/lib/module/network/components/response-editor/deleteNestedDataByPath.js +1 -51
- package/lib/module/network/components/response-editor/editorContext.js +1 -29
- package/lib/module/network/components/response-editor/updateNestedDataByPath.js +1 -56
- package/lib/module/network/conditions/NetworkConditionsControl.js +1 -231
- package/lib/module/network/conditions/NetworkConditionsControl.test.js +1 -135
- package/lib/module/network/conditions/NetworkConditionsIcon.js +1 -29
- package/lib/module/network/conditions/NetworkFloatingTool.js +1 -304
- package/lib/module/network/conditions/NetworkFloatingTool.test.js +1 -218
- package/lib/module/network/conditions/store.js +1 -65
- package/lib/module/network/conditions/wait.js +1 -38
- package/lib/module/network/conditions/xhr.js +1 -106
- package/lib/module/network/hooks/useLiveNetworkEvent.js +1 -58
- package/lib/module/network/hooks/useNetworkBadgeCounts.js +1 -79
- package/lib/module/network/hooks/useNetworkEventList.js +1 -104
- package/lib/module/network/hooks/useNetworkEvents.js +1 -314
- package/lib/module/network/hooks/useNetworkHasMatches.js +1 -52
- package/lib/module/network/hooks/useNetworkSaved.js +1 -34
- package/lib/module/network/hooks/useNetworkSelection.js +1 -46
- package/lib/module/network/hooks/useOverrideRules.js +1 -32
- package/lib/module/network/hooks/useTickEveryMinute.js +1 -11
- package/lib/module/network/overrides/applyToFetch.js +1 -72
- package/lib/module/network/overrides/applyToXhr.js +2 -446
- package/lib/module/network/overrides/engine.js +1 -85
- package/lib/module/network/overrides/matchRule.js +1 -75
- package/lib/module/network/overrides/overriddenRows.js +1 -0
- package/lib/module/network/overrides/overrideRulesStore.js +1 -547
- package/lib/module/network/overrides/presets.js +1 -65
- package/lib/module/network/overrides/resolveOverride.js +1 -152
- package/lib/module/network/overrides/types.js +1 -86
- package/lib/module/network/sync/networkBodyResolver.js +1 -34
- package/lib/module/network/sync/networkSyncAdapter.js +1 -880
- package/lib/module/network/sync/overrideHonesty.release.test.js +1 -35
- package/lib/module/network/types/index.js +1 -3
- package/lib/module/network/utils/extractOperationName.js +1 -76
- package/lib/module/network/utils/filterNetworkEvents.js +1 -92
- package/lib/module/network/utils/formatGraphQLVariables.js +1 -213
- package/lib/module/network/utils/formatting.js +1 -9
- package/lib/module/network/utils/generateCurl.js +2 -67
- package/lib/module/network/utils/generateNetworkCopyText.js +37 -162
- package/lib/module/network/utils/httpCompletion.js +1 -32
- package/lib/module/network/utils/networkEventStore.js +1 -391
- package/lib/module/network/utils/networkListener.js +4 -1249
- package/lib/module/network/utils/networkSavedStore.js +3 -572
- package/lib/module/network/utils/networkSelectionStore.js +1 -188
- package/lib/module/network/utils/realNow.js +1 -0
- package/lib/module/network/utils/requestId.js +1 -0
- package/lib/module/network/utils/resolveRequestUrl.js +1 -0
- package/lib/module/network/utils/selectSavedEvents.js +1 -35
- package/lib/module/network/utils/startNetworkCapture.js +1 -0
- package/lib/module/network/utils/withPinnedFirst.js +1 -28
- package/lib/module/preset.js +1 -100
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/network/overrides/applyToXhr.d.ts +1 -0
- package/lib/typescript/network/overrides/engine.d.ts +1 -1
- package/lib/typescript/network/overrides/matchRule.d.ts +1 -1
- package/lib/typescript/network/overrides/overriddenRows.d.ts +16 -0
- package/lib/typescript/network/overrides/resolveOverride.d.ts +2 -2
- package/lib/typescript/network/overrides/types.d.ts +9 -0
- package/lib/typescript/network/utils/networkListener.d.ts +14 -4
- package/lib/typescript/network/utils/networkSavedStore.d.ts +4 -4
- package/lib/typescript/network/utils/realNow.d.ts +18 -0
- package/lib/typescript/network/utils/requestId.d.ts +2 -0
- package/lib/typescript/network/utils/resolveRequestUrl.d.ts +3 -0
- package/lib/typescript/network/utils/startNetworkCapture.d.ts +6 -0
- package/lib/web/index.mjs +145 -0
- package/package.json +32 -10
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/index.web.d.ts.map +0 -1
- package/lib/typescript/network/components/DataViewer.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkCopyScreen.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkCopySettingsView.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkCopySettingsView.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkDetailScreen.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkDetailStepper.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkDetailStepper.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkEventDetailView.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkEventDetailView.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkEventItemCompact.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkEventItemCompact.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkFilterScreen.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkFilterViewV3.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkFilterViewV3.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkHeaderLive.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkHeaderLive.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkHeaderMenu.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkListScreen.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkListScreen.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkModal.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkNumberPrompt.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkNumberPrompt.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkOverrideEditor.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkOverrideEditor.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkOverrideHeaderButton.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkOverrideHeaderButton.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkOverridesButton.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkOverridesButton.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkOverridesScreen.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkOverridesScreen.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkSavedScreen.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkSavedScreen.web.d.ts.map +0 -1
- package/lib/typescript/network/components/NetworkUpgradeBanner.d.ts.map +0 -1
- package/lib/typescript/network/components/response-editor/Explorer.d.ts.map +0 -1
- package/lib/typescript/network/components/response-editor/Explorer.web.d.ts.map +0 -1
- package/lib/typescript/network/components/response-editor/deleteNestedDataByPath.d.ts.map +0 -1
- package/lib/typescript/network/components/response-editor/editorContext.d.ts.map +0 -1
- package/lib/typescript/network/components/response-editor/updateNestedDataByPath.d.ts.map +0 -1
- package/lib/typescript/network/conditions/NetworkConditionsControl.d.ts.map +0 -1
- package/lib/typescript/network/conditions/NetworkConditionsControl.test.d.ts.map +0 -1
- package/lib/typescript/network/conditions/NetworkConditionsIcon.d.ts.map +0 -1
- package/lib/typescript/network/conditions/NetworkFloatingTool.d.ts.map +0 -1
- package/lib/typescript/network/conditions/NetworkFloatingTool.test.d.ts.map +0 -1
- package/lib/typescript/network/conditions/store.d.ts.map +0 -1
- package/lib/typescript/network/conditions/wait.d.ts.map +0 -1
- package/lib/typescript/network/conditions/xhr.d.ts.map +0 -1
- package/lib/typescript/network/hooks/useLiveNetworkEvent.d.ts.map +0 -1
- package/lib/typescript/network/hooks/useNetworkBadgeCounts.d.ts.map +0 -1
- package/lib/typescript/network/hooks/useNetworkEventList.d.ts.map +0 -1
- package/lib/typescript/network/hooks/useNetworkEvents.d.ts.map +0 -1
- package/lib/typescript/network/hooks/useNetworkHasMatches.d.ts.map +0 -1
- package/lib/typescript/network/hooks/useNetworkSaved.d.ts.map +0 -1
- package/lib/typescript/network/hooks/useNetworkSelection.d.ts.map +0 -1
- package/lib/typescript/network/hooks/useOverrideRules.d.ts.map +0 -1
- package/lib/typescript/network/hooks/useTickEveryMinute.d.ts.map +0 -1
- package/lib/typescript/network/overrides/applyToFetch.d.ts.map +0 -1
- package/lib/typescript/network/overrides/applyToXhr.d.ts.map +0 -1
- package/lib/typescript/network/overrides/engine.d.ts.map +0 -1
- package/lib/typescript/network/overrides/matchRule.d.ts.map +0 -1
- package/lib/typescript/network/overrides/overrideRulesStore.d.ts.map +0 -1
- package/lib/typescript/network/overrides/presets.d.ts.map +0 -1
- package/lib/typescript/network/overrides/resolveOverride.d.ts.map +0 -1
- package/lib/typescript/network/overrides/types.d.ts.map +0 -1
- package/lib/typescript/network/sync/networkBodyResolver.d.ts.map +0 -1
- package/lib/typescript/network/sync/networkSyncAdapter.d.ts.map +0 -1
- package/lib/typescript/network/sync/overrideHonesty.release.test.d.ts.map +0 -1
- package/lib/typescript/network/types/index.d.ts.map +0 -1
- package/lib/typescript/network/utils/extractOperationName.d.ts.map +0 -1
- package/lib/typescript/network/utils/filterNetworkEvents.d.ts.map +0 -1
- package/lib/typescript/network/utils/formatGraphQLVariables.d.ts.map +0 -1
- package/lib/typescript/network/utils/formatting.d.ts.map +0 -1
- package/lib/typescript/network/utils/generateCurl.d.ts.map +0 -1
- package/lib/typescript/network/utils/generateNetworkCopyText.d.ts.map +0 -1
- package/lib/typescript/network/utils/httpCompletion.d.ts.map +0 -1
- package/lib/typescript/network/utils/networkEventStore.d.ts.map +0 -1
- package/lib/typescript/network/utils/networkListener.d.ts.map +0 -1
- package/lib/typescript/network/utils/networkSavedStore.d.ts.map +0 -1
- package/lib/typescript/network/utils/networkSelectionStore.d.ts.map +0 -1
- package/lib/typescript/network/utils/selectSavedEvents.d.ts.map +0 -1
- package/lib/typescript/network/utils/withPinnedFirst.d.ts.map +0 -1
- package/lib/typescript/preset.d.ts.map +0 -1
|
@@ -1,52 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Narrowest possible subscription: a BOOLEAN that flips when the store
|
|
5
|
-
* goes between "has events matching this filter" and "empty". Used by
|
|
6
|
-
* header buttons (clear/copy) whose only live dependency is their
|
|
7
|
-
* enabled state — with the full counts hook they re-rendered on every
|
|
8
|
-
* count change (32× in a 25-request run, tool-bench 2026-07-06); with a
|
|
9
|
-
* flip-guarded boolean they render ~twice per session.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
import { useEffect, useState } from "react";
|
|
13
|
-
import { networkEventStore } from "../utils/networkEventStore";
|
|
14
|
-
import { applyIgnoredPatterns, filterNetworkEvents } from "../utils/filterNetworkEvents";
|
|
15
|
-
|
|
16
|
-
/** True while the store has ANY events (clear button's enabled state). */
|
|
17
|
-
export function useNetworkHasEvents(options) {
|
|
18
|
-
const {
|
|
19
|
-
paused
|
|
20
|
-
} = options;
|
|
21
|
-
const [hasEvents, setHasEvents] = useState(() => networkEventStore.getEvents().length > 0);
|
|
22
|
-
useEffect(() => {
|
|
23
|
-
if (paused) return undefined;
|
|
24
|
-
return networkEventStore.subscribeToEvents(events => {
|
|
25
|
-
const next = events.length > 0;
|
|
26
|
-
setHasEvents(prev => prev === next ? prev : next);
|
|
27
|
-
});
|
|
28
|
-
}, [paused]);
|
|
29
|
-
useEffect(() => networkEventStore.onClear(() => setHasEvents(false)), []);
|
|
30
|
-
return hasEvents;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/** True while the store has events matching the current filter (copy
|
|
34
|
-
* button's enabled state). The filter pass runs per emission but a
|
|
35
|
-
* re-render only happens when the boolean flips. */
|
|
36
|
-
export function useNetworkHasMatches(options) {
|
|
37
|
-
const {
|
|
38
|
-
filter,
|
|
39
|
-
ignoredPatterns,
|
|
40
|
-
paused
|
|
41
|
-
} = options;
|
|
42
|
-
const [hasMatches, setHasMatches] = useState(() => filterNetworkEvents(applyIgnoredPatterns(networkEventStore.getEvents(), ignoredPatterns), filter).length > 0);
|
|
43
|
-
useEffect(() => {
|
|
44
|
-
if (paused) return undefined;
|
|
45
|
-
return networkEventStore.subscribeToEvents(events => {
|
|
46
|
-
const next = filterNetworkEvents(applyIgnoredPatterns(events, ignoredPatterns), filter).length > 0;
|
|
47
|
-
setHasMatches(prev => prev === next ? prev : next);
|
|
48
|
-
});
|
|
49
|
-
}, [paused, filter, ignoredPatterns]);
|
|
50
|
-
useEffect(() => networkEventStore.onClear(() => setHasMatches(false)), []);
|
|
51
|
-
return hasMatches;
|
|
52
|
-
}
|
|
1
|
+
"use strict";import{useEffect as a,useState as l}from"react";import{networkEventStore as t}from"../utils/networkEventStore";import{applyIgnoredPatterns as E,filterNetworkEvents as h}from"../utils/filterNetworkEvents";export function useNetworkHasEvents(u){const{paused:e}=u;const[n,s]=l(()=>t.getEvents().length>0);a(()=>{if(e)return void 0;return t.subscribeToEvents(c=>{const r=c.length>0;s(o=>o===r?o:r)})},[e]);a(()=>t.onClear(()=>s(false)),[]);return n}export function useNetworkHasMatches(u){const{filter:e,ignoredPatterns:n,paused:s}=u;const[c,r]=l(()=>h(E(t.getEvents(),n),e).length>0);a(()=>{if(s)return void 0;return t.subscribeToEvents(o=>{const f=h(E(o,n),e).length>0;r(i=>i===f?i:f)})},[s,e,n]);a(()=>t.onClear(()=>r(false)),[]);return c}
|
|
@@ -1,34 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Narrow subscription to the pinned/saved store.
|
|
5
|
-
*
|
|
6
|
-
* The store rebuilds its derived view once per mutation, so the object this
|
|
7
|
-
* returns keeps a stable identity between pins — memoized rows don't re-render
|
|
8
|
-
* because a network event arrived, only because the user pinned something.
|
|
9
|
-
*
|
|
10
|
-
* Mutations happen through module-scope callbacks (stable identities), so
|
|
11
|
-
* passing them into memoized rows costs nothing.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import { useEffect, useState } from "react";
|
|
15
|
-
import { networkSavedStore } from "../utils/networkSavedStore";
|
|
16
|
-
const togglePin = event => networkSavedStore.togglePin(event);
|
|
17
|
-
const toggleSave = event => networkSavedStore.toggleSave(event);
|
|
18
|
-
const remove = key => networkSavedStore.remove(key);
|
|
19
|
-
const clearSaved = () => networkSavedStore.clearSaved();
|
|
20
|
-
const clearPinned = () => networkSavedStore.clearPinned();
|
|
21
|
-
export function useNetworkSaved() {
|
|
22
|
-
const [state, setState] = useState(() => networkSavedStore.getState());
|
|
23
|
-
useEffect(() => networkSavedStore.subscribe(() => {
|
|
24
|
-
setState(networkSavedStore.getState());
|
|
25
|
-
}), []);
|
|
26
|
-
return {
|
|
27
|
-
...state,
|
|
28
|
-
togglePin,
|
|
29
|
-
toggleSave,
|
|
30
|
-
remove,
|
|
31
|
-
clearSaved,
|
|
32
|
-
clearPinned
|
|
33
|
-
};
|
|
34
|
-
}
|
|
1
|
+
"use strict";import{useEffect as r,useState as n}from"react";import{networkSavedStore as e}from"../utils/networkSavedStore";const a=t=>e.togglePin(t);const s=t=>e.toggleSave(t);const c=t=>e.remove(t);const S=()=>e.clearSaved();const g=()=>e.clearPinned();export function useNetworkSaved(){const[t,o]=n(()=>e.getState());r(()=>e.subscribe(()=>{o(e.getState())}),[]);return{...t,togglePin:a,toggleSave:s,remove:c,clearSaved:S,clearPinned:g}}
|
|
@@ -1,46 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Narrow subscriptions to the prev/next cursor (`networkSelectionStore`).
|
|
5
|
-
*
|
|
6
|
-
* One hook per consumer, each returning the SMALLEST value that consumer
|
|
7
|
-
* renders — that is the whole point of moving the cursor into a store. The
|
|
8
|
-
* modal root takes `useHasNetworkSelection()` (a boolean that flips twice a
|
|
9
|
-
* session), so a step no longer re-renders `JsModal`, the header and all five
|
|
10
|
-
* screens; the footer and the body take the parts that actually change.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import { useSyncExternalStore } from "react";
|
|
14
|
-
import { networkSelectionStore } from "../utils/networkSelectionStore";
|
|
15
|
-
const subscribe = onChange => networkSelectionStore.subscribe(onChange);
|
|
16
|
-
const getState = () => networkSelectionStore.getState();
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Is ANYTHING selected — i.e. is the detail screen up?
|
|
20
|
-
*
|
|
21
|
-
* `useSyncExternalStore` compares the selector's result, so the root only
|
|
22
|
-
* re-renders when this boolean flips, not on every step.
|
|
23
|
-
*/
|
|
24
|
-
export function useHasNetworkSelection() {
|
|
25
|
-
return useSyncExternalStore(subscribe, () => getState().selectedId != null, () => getState().selectedId != null);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/** Where the USER is. Moves synchronously on tap — footer, header pin actions. */
|
|
29
|
-
export function useSelectedNetworkEventId() {
|
|
30
|
-
return useSyncExternalStore(subscribe, () => getState().selectedId, () => getState().selectedId);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/** What the BODY may render. Lags `selectedId` — see networkSelectionStore. */
|
|
34
|
-
export function useNetworkBodyEventId() {
|
|
35
|
-
return useSyncExternalStore(subscribe, () => getState().bodyId, () => getState().bodyId);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/** Cursor position + list length, for the "REQUEST n OF m" counter. */
|
|
39
|
-
export function useNetworkCursor() {
|
|
40
|
-
const index = useSyncExternalStore(subscribe, () => getState().index, () => getState().index);
|
|
41
|
-
const total = useSyncExternalStore(subscribe, () => getState().ids.length, () => getState().ids.length);
|
|
42
|
-
return {
|
|
43
|
-
index,
|
|
44
|
-
total
|
|
45
|
-
};
|
|
46
|
-
}
|
|
1
|
+
"use strict";import{useSyncExternalStore as t}from"react";import{networkSelectionStore as r}from"../utils/networkSelectionStore";const n=o=>r.subscribe(o);const e=()=>r.getState();export function useHasNetworkSelection(){return t(n,()=>e().selectedId!=null,()=>e().selectedId!=null)}export function useSelectedNetworkEventId(){return t(n,()=>e().selectedId,()=>e().selectedId)}export function useNetworkBodyEventId(){return t(n,()=>e().bodyId,()=>e().bodyId)}export function useNetworkCursor(){const o=t(n,()=>e().index,()=>e().index);const s=t(n,()=>e().ids.length,()=>e().ids.length);return{index:o,total:s}}
|
|
@@ -1,32 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { useCallback, useSyncExternalStore } from "react";
|
|
4
|
-
import { overrideRulesStore } from "../overrides/overrideRulesStore";
|
|
5
|
-
import { isSpent } from "../overrides/resolveOverride";
|
|
6
|
-
/**
|
|
7
|
-
* Read + mutate the override rule list.
|
|
8
|
-
*
|
|
9
|
-
* `useSyncExternalStore` over the store's own subscribe/getState, which already
|
|
10
|
-
* hands out a stable state object per mutation (see `rebuild`) — so this can't
|
|
11
|
-
* tear and doesn't need a selector to stay cheap.
|
|
12
|
-
*/
|
|
13
|
-
export function useOverrideRules() {
|
|
14
|
-
const state = useSyncExternalStore(useCallback(listener => overrideRulesStore.subscribe(listener), []), () => overrideRulesStore.getState(), () => overrideRulesStore.getState());
|
|
15
|
-
const setEnabled = useCallback(enabled => overrideRulesStore.setEnabled(enabled), []);
|
|
16
|
-
const upsertRule = useCallback(draft => overrideRulesStore.upsertRule(draft), []);
|
|
17
|
-
const setRuleEnabled = useCallback((id, enabled) => overrideRulesStore.setRuleEnabled(id, enabled), []);
|
|
18
|
-
const removeRule = useCallback(id => overrideRulesStore.removeRule(id), []);
|
|
19
|
-
const clearRules = useCallback(() => overrideRulesStore.clearRules(), []);
|
|
20
|
-
return {
|
|
21
|
-
enabled: state.enabled,
|
|
22
|
-
rules: state.rules,
|
|
23
|
-
autoPaused: state.autoPaused,
|
|
24
|
-
activeCount: overrideRulesStore.activeCount(),
|
|
25
|
-
setEnabled,
|
|
26
|
-
upsertRule,
|
|
27
|
-
setRuleEnabled,
|
|
28
|
-
removeRule,
|
|
29
|
-
clearRules,
|
|
30
|
-
isRuleSpent: isSpent
|
|
31
|
-
};
|
|
32
|
-
}
|
|
1
|
+
"use strict";import{useCallback as s,useSyncExternalStore as i}from"react";import{overrideRulesStore as t}from"../overrides/overrideRulesStore";import{isSpent as R}from"../overrides/resolveOverride";export function useOverrideRules(){const u=i(s(e=>t.subscribe(e),[]),()=>t.getState(),()=>t.getState());const r=s(e=>t.setEnabled(e),[]);const l=s(e=>t.upsertRule(e),[]);const o=s((e,c)=>t.setRuleEnabled(e,c),[]);const n=s(e=>t.removeRule(e),[]);const a=s(()=>t.clearRules(),[]);return{enabled:u.enabled,rules:u.rules,autoPaused:u.autoPaused,activeCount:t.activeCount(),setEnabled:r,upsertRule:l,setRuleEnabled:o,removeRule:n,clearRules:a,isRuleSpent:R}}
|
|
@@ -1,11 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
// Re-export TickProvider from shared package
|
|
4
|
-
export { TickProvider } from "@buoy-gg/shared-ui";
|
|
5
|
-
|
|
6
|
-
// Re-export useTick as useTickEveryMinute for backward compatibility.
|
|
7
|
-
// Falls back to Date.now() when no provider is present (matches original behavior).
|
|
8
|
-
import { useTick } from "@buoy-gg/shared-ui";
|
|
9
|
-
export function useTickEveryMinute() {
|
|
10
|
-
return useTick() ?? Date.now();
|
|
11
|
-
}
|
|
1
|
+
"use strict";export{TickProvider}from"@buoy-gg/shared-ui";import{useTick as r}from"@buoy-gg/shared-ui";export function useTickEveryMinute(){return r()??Date.now()}
|
|
@@ -1,72 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Perform an override outcome against `fetch`.
|
|
5
|
-
*
|
|
6
|
-
* WHY THIS EXISTS — and why "XHR is the single choke point" is WRONG:
|
|
7
|
-
*
|
|
8
|
-
* In bare React Native, `Libraries/Network/fetch.js` is `require('whatwg-fetch')`,
|
|
9
|
-
* so `fetch` really is a polyfill over XMLHttpRequest and hooking XHR alone
|
|
10
|
-
* would cover everything. But **Expo replaces it**: `expo/src/winter/runtime.native.ts`
|
|
11
|
-
* installs `expo/fetch` — a NATIVE fetch over `ExpoFetchModule` — as
|
|
12
|
-
* `globalThis.fetch` unless `EXPO_PUBLIC_USE_RN_FETCH=1`. Those requests never
|
|
13
|
-
* construct an XMLHttpRequest, so an XHR-only override silently does nothing on
|
|
14
|
-
* the majority of real apps.
|
|
15
|
-
*
|
|
16
|
-
* Verified the hard way on Expo SDK 56 / RN 0.85.3: rule matched, engine
|
|
17
|
-
* healthy, interceptor installed, and the request still came back a real 200.
|
|
18
|
-
*
|
|
19
|
-
* So overrides hook BOTH layers. `axios` still needs the XHR path (it uses
|
|
20
|
-
* XMLHttpRequest on every platform), and this covers `fetch` on both flavours.
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
export const sleep = ms => ms > 0 ? new Promise(resolve => setTimeout(resolve, ms)) : Promise.resolve();
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Can we build a `Response` in this runtime?
|
|
27
|
-
*
|
|
28
|
-
* React Native installs the whatwg-fetch `Response` global via `setUpXHR`, and
|
|
29
|
-
* Expo deliberately keeps it (it only swaps `fetch`). Feature-detected anyway:
|
|
30
|
-
* without it, the honest thing is to let the request run for real.
|
|
31
|
-
*/
|
|
32
|
-
export function canSynthesizeResponse() {
|
|
33
|
-
return typeof Response === "function";
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Build the fake `Response` an overridden `fetch` resolves with.
|
|
38
|
-
*
|
|
39
|
-
* Note the status range: whatwg-fetch's `Response` constructor THROWS
|
|
40
|
-
* `RangeError` outside [200, 599], which would crash the caller instead of
|
|
41
|
-
* overriding it. `resolveOverride` clamps before we ever get here.
|
|
42
|
-
*/
|
|
43
|
-
export function synthesizeResponse(url, outcome) {
|
|
44
|
-
const response = new Response(outcome.body, {
|
|
45
|
-
status: outcome.status,
|
|
46
|
-
statusText: outcome.statusText,
|
|
47
|
-
headers: outcome.headers
|
|
48
|
-
});
|
|
49
|
-
// `Response.url` is not settable through the constructor, and consumers do
|
|
50
|
-
// read it (redirect checks, cache keys). whatwg-fetch stores it as a plain
|
|
51
|
-
// property, so assigning is both possible and correct.
|
|
52
|
-
try {
|
|
53
|
-
Object.defineProperty(response, "url", {
|
|
54
|
-
value: url,
|
|
55
|
-
configurable: true
|
|
56
|
-
});
|
|
57
|
-
} catch {
|
|
58
|
-
// Sealed implementation — an empty url is cosmetic, not worth failing over.
|
|
59
|
-
}
|
|
60
|
-
return response;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* The error a failed `fetch` rejects with.
|
|
65
|
-
*
|
|
66
|
-
* These are the exact messages whatwg-fetch produces for a dead connection and
|
|
67
|
-
* a timeout, so app code that string-matches on them (plenty does) behaves the
|
|
68
|
-
* same way it would against a real failure.
|
|
69
|
-
*/
|
|
70
|
-
export function synthesizeFetchError(outcome) {
|
|
71
|
-
return new TypeError(outcome.failKind === "timeout" ? "Network request timed out" : "Network request failed");
|
|
72
|
-
}
|
|
1
|
+
"use strict";export const sleep=e=>e>0?new Promise(t=>setTimeout(t,e)):Promise.resolve();export function canSynthesizeResponse(){return typeof Response==="function"}export function synthesizeResponse(e,t){const s=new Response(t.body,{status:t.status,statusText:t.statusText,headers:t.headers});try{Object.defineProperty(s,"url",{value:e,configurable:true})}catch{}return s}export function synthesizeFetchError(e){return new TypeError(e.failKind==="timeout"?"Network request timed out":"Network request failed")}
|