@buoy-gg/network 7.0.35 → 7.0.38
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 +45 -12
- package/lib/commonjs/index.js +26 -1
- package/lib/commonjs/index.web.js +26 -1
- package/lib/commonjs/network/components/NetworkEventDetailView.js +6 -1
- package/lib/commonjs/network/components/NetworkHeaderMenu.js +4 -0
- package/lib/commonjs/network/components/NetworkModal.js +24 -8
- package/lib/commonjs/network/conditions/NetworkConditionsControl.js +235 -0
- package/lib/commonjs/network/conditions/NetworkConditionsControl.test.js +136 -0
- package/lib/commonjs/network/conditions/NetworkConditionsIcon.js +33 -0
- package/lib/commonjs/network/conditions/NetworkFloatingTool.js +310 -0
- package/lib/commonjs/network/conditions/NetworkFloatingTool.test.js +219 -0
- package/lib/commonjs/network/conditions/store.js +75 -0
- package/lib/commonjs/network/conditions/wait.js +43 -0
- package/lib/commonjs/network/conditions/xhr.js +110 -0
- package/lib/commonjs/network/hooks/useNetworkEvents.js +1 -1
- package/lib/commonjs/network/overrides/applyToXhr.js +10 -8
- package/lib/commonjs/network/overrides/engine.js +2 -1
- package/lib/commonjs/network/sync/networkSyncAdapter.js +224 -3
- package/lib/commonjs/network/utils/generateNetworkCopyText.js +2 -0
- package/lib/commonjs/network/utils/networkEventStore.js +5 -77
- package/lib/commonjs/network/utils/networkListener.js +245 -46
- package/lib/commonjs/network/utils/networkSavedStore.js +2 -2
- package/lib/commonjs/network/utils/selectSavedEvents.js +2 -2
- package/lib/commonjs/preset.js +2 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.web.js +2 -1
- package/lib/module/network/components/NetworkEventDetailView.js +6 -1
- package/lib/module/network/components/NetworkHeaderMenu.js +4 -0
- package/lib/module/network/components/NetworkModal.js +25 -9
- package/lib/module/network/conditions/NetworkConditionsControl.js +231 -0
- package/lib/module/network/conditions/NetworkConditionsControl.test.js +135 -0
- package/lib/module/network/conditions/NetworkConditionsIcon.js +29 -0
- package/lib/module/network/conditions/NetworkFloatingTool.js +304 -0
- package/lib/module/network/conditions/NetworkFloatingTool.test.js +218 -0
- package/lib/module/network/conditions/store.js +65 -0
- package/lib/module/network/conditions/wait.js +38 -0
- package/lib/module/network/conditions/xhr.js +106 -0
- package/lib/module/network/hooks/useNetworkEvents.js +1 -1
- package/lib/module/network/overrides/applyToXhr.js +9 -8
- package/lib/module/network/overrides/engine.js +2 -1
- package/lib/module/network/sync/networkSyncAdapter.js +225 -3
- package/lib/module/network/utils/generateNetworkCopyText.js +2 -0
- package/lib/module/network/utils/networkEventStore.js +6 -77
- package/lib/module/network/utils/networkListener.js +246 -47
- package/lib/module/network/utils/networkSavedStore.js +2 -2
- package/lib/module/network/utils/selectSavedEvents.js +2 -2
- package/lib/module/preset.js +3 -2
- package/lib/typescript/index.d.ts +2 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/index.web.d.ts +2 -0
- package/lib/typescript/index.web.d.ts.map +1 -1
- package/lib/typescript/network/components/NetworkEventDetailView.d.ts.map +1 -1
- package/lib/typescript/network/components/NetworkHeaderMenu.d.ts +2 -1
- package/lib/typescript/network/components/NetworkHeaderMenu.d.ts.map +1 -1
- package/lib/typescript/network/components/NetworkModal.d.ts +3 -0
- package/lib/typescript/network/components/NetworkModal.d.ts.map +1 -1
- package/lib/typescript/network/conditions/NetworkConditionsControl.d.ts +12 -0
- package/lib/typescript/network/conditions/NetworkConditionsControl.d.ts.map +1 -0
- package/lib/typescript/network/conditions/NetworkConditionsControl.test.d.ts +2 -0
- package/lib/typescript/network/conditions/NetworkConditionsControl.test.d.ts.map +1 -0
- package/lib/typescript/network/conditions/NetworkConditionsIcon.d.ts +4 -0
- package/lib/typescript/network/conditions/NetworkConditionsIcon.d.ts.map +1 -0
- package/lib/typescript/network/conditions/NetworkFloatingTool.d.ts +15 -0
- package/lib/typescript/network/conditions/NetworkFloatingTool.d.ts.map +1 -0
- package/lib/typescript/network/conditions/NetworkFloatingTool.test.d.ts +2 -0
- package/lib/typescript/network/conditions/NetworkFloatingTool.test.d.ts.map +1 -0
- package/lib/typescript/network/conditions/store.d.ts +30 -0
- package/lib/typescript/network/conditions/store.d.ts.map +1 -0
- package/lib/typescript/network/conditions/wait.d.ts +4 -0
- package/lib/typescript/network/conditions/wait.d.ts.map +1 -0
- package/lib/typescript/network/conditions/xhr.d.ts +5 -0
- package/lib/typescript/network/conditions/xhr.d.ts.map +1 -0
- package/lib/typescript/network/hooks/useNetworkEvents.d.ts +1 -1
- package/lib/typescript/network/overrides/applyToXhr.d.ts +2 -0
- package/lib/typescript/network/overrides/applyToXhr.d.ts.map +1 -1
- package/lib/typescript/network/overrides/engine.d.ts +0 -10
- package/lib/typescript/network/overrides/engine.d.ts.map +1 -1
- package/lib/typescript/network/sync/networkSyncAdapter.d.ts +29 -0
- package/lib/typescript/network/sync/networkSyncAdapter.d.ts.map +1 -1
- package/lib/typescript/network/types/index.d.ts +1 -0
- package/lib/typescript/network/types/index.d.ts.map +1 -1
- package/lib/typescript/network/utils/generateNetworkCopyText.d.ts.map +1 -1
- package/lib/typescript/network/utils/networkEventStore.d.ts +0 -15
- package/lib/typescript/network/utils/networkEventStore.d.ts.map +1 -1
- package/lib/typescript/network/utils/networkListener.d.ts +13 -28
- package/lib/typescript/network/utils/networkListener.d.ts.map +1 -1
- package/lib/typescript/network/utils/networkSavedStore.d.ts +2 -2
- package/lib/typescript/network/utils/selectSavedEvents.d.ts +2 -2
- package/lib/typescript/preset.d.ts +0 -16
- package/lib/typescript/preset.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { type RemoteNetworkConditions } from "../conditions/NetworkConditionsControl";
|
|
1
2
|
interface NetworkModalProps {
|
|
3
|
+
remoteConditions?: RemoteNetworkConditions;
|
|
2
4
|
visible: boolean;
|
|
3
5
|
onClose: () => void;
|
|
4
6
|
onBack?: () => void;
|
|
@@ -29,6 +31,7 @@ interface NetworkModalProps {
|
|
|
29
31
|
*/
|
|
30
32
|
export declare function NetworkModal(props: NetworkModalProps): import("react").JSX.Element;
|
|
31
33
|
export interface NetworkToolViewProps {
|
|
34
|
+
remoteConditions?: RemoteNetworkConditions;
|
|
32
35
|
/** Controlled pause — pass both halves or neither. See `NetworkModalProps`. */
|
|
33
36
|
paused?: boolean;
|
|
34
37
|
onPausedChange?: (paused: boolean) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkModal.d.ts","sourceRoot":"","sources":["../../../../src/network/components/NetworkModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NetworkModal.d.ts","sourceRoot":"","sources":["../../../../src/network/components/NetworkModal.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AA0EtF,UAAU,iBAAiB;IACzB,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAo2BD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,+BAMpD;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,+EAA+E;IAC/E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,KAAK,GAAE,oBAAyB,+BAa/D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type NetworkConditionProfile } from "./store";
|
|
2
|
+
export interface RemoteNetworkConditions {
|
|
3
|
+
/** Identity of the connected device session, used to ignore stale UI completions. */
|
|
4
|
+
targetId?: string;
|
|
5
|
+
profile: NetworkConditionProfile | null;
|
|
6
|
+
available: boolean;
|
|
7
|
+
onChange(profile: NetworkConditionProfile): Promise<unknown>;
|
|
8
|
+
}
|
|
9
|
+
export declare function NetworkConditionsControl({ remote }: {
|
|
10
|
+
remote?: RemoteNetworkConditions;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=NetworkConditionsControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkConditionsControl.d.ts","sourceRoot":"","sources":["../../../../src/network/conditions/NetworkConditionsControl.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA4F,KAAK,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEjJ,MAAM,WAAW,uBAAuB;IACtC,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9D;AAeD,wBAAgB,wBAAwB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,uBAAuB,CAAA;CAAE,+BAmExF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkConditionsControl.test.d.ts","sourceRoot":"","sources":["../../../../src/network/conditions/NetworkConditionsControl.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkConditionsIcon.d.ts","sourceRoot":"","sources":["../../../../src/network/conditions/NetworkConditionsIcon.tsx"],"names":[],"mappings":"AAIA,wBAAgB,qBAAqB,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,+BAM/D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type FloatingToolRenderContext } from "@buoy-gg/shared-ui";
|
|
2
|
+
import type { RemoteNetworkConditions } from "./NetworkConditionsControl";
|
|
3
|
+
/** A live source keeps the desktop strip current after its launching panel closes. */
|
|
4
|
+
export declare function createRemoteConditionsSource(): {
|
|
5
|
+
getSnapshot: () => RemoteNetworkConditions | undefined;
|
|
6
|
+
subscribe: (listener: () => void) => () => void;
|
|
7
|
+
update(next: RemoteNetworkConditions | undefined): void;
|
|
8
|
+
};
|
|
9
|
+
type RemoteSource = ReturnType<typeof createRemoteConditionsSource>;
|
|
10
|
+
export declare function openNetworkFloatingTool(source?: RemoteSource): void;
|
|
11
|
+
export declare function NetworkFloatingTool({ id, revealToken, dismiss, source }: FloatingToolRenderContext & {
|
|
12
|
+
source?: RemoteSource;
|
|
13
|
+
}): import("react").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=NetworkFloatingTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkFloatingTool.d.ts","sourceRoot":"","sources":["../../../../src/network/conditions/NetworkFloatingTool.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA4F,KAAK,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE9J,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAE1E,sFAAsF;AACtF,wBAAgB,4BAA4B;;0BAKlB,MAAM,IAAI;iBACnB,uBAAuB,GAAG,SAAS;EAEnD;AACD,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAkBpE,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,YAAY,QAE5D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,yBAAyB,GAAG;IAAE,MAAM,CAAC,EAAE,YAAY,CAAA;CAAE,+BAuE9H"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkFloatingTool.test.d.ts","sourceRoot":"","sources":["../../../../src/network/conditions/NetworkFloatingTool.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare const NETWORK_CONDITIONS: {
|
|
2
|
+
readonly normal: {
|
|
3
|
+
readonly label: "Normal";
|
|
4
|
+
readonly delayMs: 0;
|
|
5
|
+
};
|
|
6
|
+
readonly offline: {
|
|
7
|
+
readonly label: "Offline (requests)";
|
|
8
|
+
readonly delayMs: 0;
|
|
9
|
+
};
|
|
10
|
+
readonly slow: {
|
|
11
|
+
readonly label: "Slow (+500 ms)";
|
|
12
|
+
readonly delayMs: 500;
|
|
13
|
+
};
|
|
14
|
+
readonly verySlow: {
|
|
15
|
+
readonly label: "Very slow (+2000 ms)";
|
|
16
|
+
readonly delayMs: 2000;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export type NetworkConditionProfile = keyof typeof NETWORK_CONDITIONS;
|
|
20
|
+
export interface NetworkConditionStamp {
|
|
21
|
+
readonly profile: NetworkConditionProfile;
|
|
22
|
+
readonly delayMs: number;
|
|
23
|
+
}
|
|
24
|
+
export declare const networkConditionsRuntimeId: string;
|
|
25
|
+
export declare const conditionsCanApply: () => boolean;
|
|
26
|
+
export declare const getNetworkCondition: () => NetworkConditionProfile;
|
|
27
|
+
export declare const subscribeNetworkConditions: (listener: () => void) => () => void;
|
|
28
|
+
export declare function setNetworkCondition(value: unknown): NetworkConditionProfile;
|
|
29
|
+
export declare function snapshotNetworkCondition(url: string): NetworkConditionStamp | undefined;
|
|
30
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/network/conditions/store.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;CAKrB,CAAC;AACX,MAAM,MAAM,uBAAuB,GAAG,MAAM,OAAO,kBAAkB,CAAC;AACtE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AACD,eAAO,MAAM,0BAA0B,QAAyD,CAAC;AAIjG,eAAO,MAAM,kBAAkB,eACkC,CAAC;AAClE,eAAO,MAAM,mBAAmB,QAAO,uBAAkC,CAAC;AAC1E,eAAO,MAAM,0BAA0B,GAAI,UAAU,MAAM,IAAI,eAG9D,CAAC;AACF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAmB3E;AACD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAGvF"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function throwIfAborted(signal?: AbortSignal | null): void;
|
|
2
|
+
/** Wait before dispatch, releasing the timer and listener on cancellation. */
|
|
3
|
+
export declare function waitBeforeDispatch(ms: number, signal?: AbortSignal | null): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=wait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../../../src/network/conditions/wait.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAMhE;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAYzF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { OverrideOutcome } from "../overrides/types";
|
|
2
|
+
import type { NetworkConditionStamp } from "./store";
|
|
3
|
+
/** Active simulation uses a send-to-completion deadline, including the wait. */
|
|
4
|
+
export declare function runConditionXhr(target: XMLHttpRequest, url: string, condition: NetworkConditionStamp, outcome: OverrideOutcome | null, dispatch: () => void): void;
|
|
5
|
+
//# sourceMappingURL=xhr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xhr.d.ts","sourceRoot":"","sources":["../../../../src/network/conditions/xhr.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAYrD,gFAAgF;AAChF,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,qBAAqB,EAChC,OAAO,EAAE,eAAe,GAAG,IAAI,EAC/B,QAAQ,EAAE,MAAM,IAAI,GACnB,IAAI,CAiFN"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import type { NetworkEvent, NetworkStats, NetworkFilter } from "../types";
|
|
8
8
|
/**
|
|
9
9
|
* @deprecated Read the live limit with `useLimit("network.requests")` — this
|
|
10
|
-
* only reports the FREE tier's value and
|
|
10
|
+
* only reports the FREE tier's value and ignores the Weekend Pass. Kept
|
|
11
11
|
* because it is part of the package's public exports.
|
|
12
12
|
*/
|
|
13
13
|
export declare const FREE_TIER_REQUEST_LIMIT: number;
|
|
@@ -66,4 +66,6 @@ export declare function canSynthesizeStandard(xhr: XMLHttpRequest): boolean;
|
|
|
66
66
|
* @param passThrough Sends the real request. Only used by `kind: "delay"`.
|
|
67
67
|
*/
|
|
68
68
|
export declare function runOverride(xhr: XMLHttpRequest, url: string, outcome: OverrideOutcome, passThrough: () => void): boolean;
|
|
69
|
+
/** Complete an already scheduled native outcome without adding another timer. */
|
|
70
|
+
export declare function completeNativeOverride(xhr: XMLHttpRequest, url: string, outcome: OverrideOutcome): void;
|
|
69
71
|
//# sourceMappingURL=applyToXhr.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyToXhr.d.ts","sourceRoot":"","sources":["../../../../src/network/overrides/applyToXhr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAkC/C;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAM1D;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAMlE;AAwUD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,MAAM,IAAI,GACtB,OAAO,
|
|
1
|
+
{"version":3,"file":"applyToXhr.d.ts","sourceRoot":"","sources":["../../../../src/network/overrides/applyToXhr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAkC/C;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAM1D;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAMlE;AAwUD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,MAAM,IAAI,GACtB,OAAO,CAmET;AAED,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CAGvG"}
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The seam between the interceptor and the rule store.
|
|
3
|
-
*
|
|
4
|
-
* It exists to keep the import graph acyclic: `networkListener` needs rules,
|
|
5
|
-
* and the rule store needs the listener (to keep the swizzle installed while a
|
|
6
|
-
* rule is active). Rather than have them import each other, the store REGISTERS
|
|
7
|
-
* itself here and the listener asks here. Both sides import only this leaf.
|
|
8
|
-
*
|
|
9
|
-
* It's also the single place the production gate lives — see `overrideForRequest`.
|
|
10
|
-
*/
|
|
11
1
|
import type { OverrideOutcome, OverrideRule } from "./types";
|
|
12
2
|
export interface OverrideHooks {
|
|
13
3
|
getRules: () => readonly OverrideRule[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../src/network/overrides/engine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../src/network/overrides/engine.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,SAAS,YAAY,EAAE,CAAC;IACxC,qCAAqC;IACrC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;;;;;OAKG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAID,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAEjE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAI3C;AAED,gFAAgF;AAChF,eAAO,MAAM,yBAAyB,gHACoE,CAAC;AAE3G;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;EAWxD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACb,eAAe,GAAG,IAAI,CAkBxB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { OverrideRulesState } from "../overrides/overrideRulesStore";
|
|
2
2
|
import type { OverrideRuleKind } from "../overrides/types";
|
|
3
3
|
import type { NetworkEvent } from "../types";
|
|
4
|
+
import { type EditViolation } from "@buoy-gg/shared-ui";
|
|
4
5
|
/**
|
|
5
6
|
* Request/response bodies larger than this are NOT streamed in the list
|
|
6
7
|
* snapshot. Prefer the cached size proxy already on the event (free); if that
|
|
@@ -49,8 +50,15 @@ export declare const SNAPSHOT_HEADER_VALUE_LIMIT = 64;
|
|
|
49
50
|
* `NetworkPanel`/`NetworkInline` accept either shape.
|
|
50
51
|
*/
|
|
51
52
|
export declare const networkSyncAdapter: {
|
|
53
|
+
dispose: () => void;
|
|
52
54
|
version: number;
|
|
53
55
|
getSnapshot: () => {
|
|
56
|
+
conditions: {
|
|
57
|
+
version: number;
|
|
58
|
+
runtimeId: string;
|
|
59
|
+
profile: "normal" | "offline" | "slow" | "verySlow";
|
|
60
|
+
available: boolean;
|
|
61
|
+
};
|
|
54
62
|
events: NetworkEvent[];
|
|
55
63
|
/**
|
|
56
64
|
* Response-override rules live on the DEVICE — that's the only place they
|
|
@@ -71,6 +79,16 @@ export declare const networkSyncAdapter: {
|
|
|
71
79
|
};
|
|
72
80
|
subscribe: (onChange: () => void) => () => void;
|
|
73
81
|
actions: {
|
|
82
|
+
getNetworkConditions: () => {
|
|
83
|
+
runtimeId: string;
|
|
84
|
+
profile: "normal" | "offline" | "slow" | "verySlow";
|
|
85
|
+
available: boolean;
|
|
86
|
+
};
|
|
87
|
+
setNetworkConditions: (params?: unknown) => {
|
|
88
|
+
runtimeId: string;
|
|
89
|
+
profile: "normal" | "offline" | "slow" | "verySlow";
|
|
90
|
+
available: boolean;
|
|
91
|
+
};
|
|
74
92
|
clearEvents: () => void;
|
|
75
93
|
/**
|
|
76
94
|
* Return the full (un-stripped) request/response bodies for one event,
|
|
@@ -132,9 +150,15 @@ export declare const networkSyncAdapter: {
|
|
|
132
150
|
upsertOverrideRule: (params?: unknown) => {
|
|
133
151
|
ok: boolean;
|
|
134
152
|
error: string;
|
|
153
|
+
violations?: undefined;
|
|
154
|
+
} | {
|
|
155
|
+
ok: boolean;
|
|
156
|
+
error: string;
|
|
157
|
+
violations: EditViolation[];
|
|
135
158
|
} | {
|
|
136
159
|
active: false;
|
|
137
160
|
inactiveReason: string;
|
|
161
|
+
lingers?: string | undefined;
|
|
138
162
|
ok: boolean;
|
|
139
163
|
rule: {
|
|
140
164
|
id: string;
|
|
@@ -142,10 +166,13 @@ export declare const networkSyncAdapter: {
|
|
|
142
166
|
enabled: boolean;
|
|
143
167
|
kind: OverrideRuleKind;
|
|
144
168
|
status: number | undefined;
|
|
169
|
+
times: number | null | undefined;
|
|
145
170
|
bodySize: number;
|
|
146
171
|
};
|
|
147
172
|
error?: undefined;
|
|
173
|
+
violations?: undefined;
|
|
148
174
|
} | {
|
|
175
|
+
lingers?: string | undefined;
|
|
149
176
|
ok: boolean;
|
|
150
177
|
rule: {
|
|
151
178
|
id: string;
|
|
@@ -153,9 +180,11 @@ export declare const networkSyncAdapter: {
|
|
|
153
180
|
enabled: boolean;
|
|
154
181
|
kind: OverrideRuleKind;
|
|
155
182
|
status: number | undefined;
|
|
183
|
+
times: number | null | undefined;
|
|
156
184
|
bodySize: number;
|
|
157
185
|
};
|
|
158
186
|
error?: undefined;
|
|
187
|
+
violations?: undefined;
|
|
159
188
|
};
|
|
160
189
|
setOverrideRuleEnabled: (params?: unknown) => {
|
|
161
190
|
ok: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networkSyncAdapter.d.ts","sourceRoot":"","sources":["../../../../src/network/sync/networkSyncAdapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"networkSyncAdapter.d.ts","sourceRoot":"","sources":["../../../../src/network/sync/networkSyncAdapter.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAEV,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,EAAiG,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEvJ;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,QAAY,CAAC;AAEpD;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,QAAqB,CAAC;AA2LzD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,2BAA2B,KAAK,CAAC;AA0R9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;QAgBzB;;;;WAIG;;;;;;;;;;;;;0BAWe,MAAM,IAAI;;;;;;;wCAkBE,OAAO;;;;;;QAOvC;;;;;WAKG;gCACqB,OAAO;;;;;;;;;;QAoB/B,8CAA8C;6BACzB,OAAO;;;;;;;;;QAY5B,gDAAgD;4BAC5B,OAAO;;;;;;;;;QAU3B,sDAAsD;qCACzB,OAAO;;;;;;;;;QAsBpC,uEAAuE;uCACxC,OAAO;oBA5W5B,KAAK;4BAAkB,MAAM;;;;;;;QAuXvC,2CAA2C;sCACb,OAAO;;;;;;;;;oBAxX3B,KAAK;4BAAkB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAyfL,OAAO;;;;oBAzf/B,KAAK;4BAAkB,MAAM;;;;;;;sCAggBT,OAAO;;;;;;;;;;QAYrC,+EAA+E;;QAG/E;;;;WAIG;uCAC4B,OAAO;;;QAYtC,4EAA4E;QAC5E;;;;;;;WAOG;;;;;;;;;kCA2CuB,OAAO;;;;;;;;;;;;;;;;CAiBpC,CAAC"}
|
|
@@ -30,6 +30,7 @@ export interface NetworkTimings {
|
|
|
30
30
|
* Canonical shape for network activity captured by the dev tools interceptor.
|
|
31
31
|
*/
|
|
32
32
|
export interface NetworkEvent {
|
|
33
|
+
condition?: import("../conditions/store").NetworkConditionStamp;
|
|
33
34
|
id: string;
|
|
34
35
|
method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS" | string;
|
|
35
36
|
url: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/network/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/network/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateNetworkCopyText.d.ts","sourceRoot":"","sources":["../../../../src/network/utils/generateNetworkCopyText.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAE3B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IAGvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,OAAO,CAAC;IAGhC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;IAGtC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC;IAG1C,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC1C;AA4BD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,YAAY,EAAE,EACtB,YAAY,EAAE,YAAY,GACzB,MAAM,
|
|
1
|
+
{"version":3,"file":"generateNetworkCopyText.d.ts","sourceRoot":"","sources":["../../../../src/network/utils/generateNetworkCopyText.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAE3B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IAGvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,OAAO,CAAC;IAGhC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;IAGtC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC;IAG1C,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC1C;AA4BD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,YAAY,EAAE,EACtB,YAAY,EAAE,YAAY,GACzB,MAAM,CA2KR"}
|
|
@@ -31,14 +31,6 @@ export type NetworkEventCallback = (event: NetworkEvent) => void;
|
|
|
31
31
|
export type NetworkEventsArrayCallback = (events: NetworkEvent[]) => void;
|
|
32
32
|
declare class NetworkEventStore extends BaseEventStore<NetworkEvent> {
|
|
33
33
|
private pendingRequests;
|
|
34
|
-
/**
|
|
35
|
-
* Recently seen `METHOD:url` keys → when, and which event id we kept.
|
|
36
|
-
*
|
|
37
|
-
* The timestamp powers the dual-interception dedup below. The id is what lets
|
|
38
|
-
* a DROPPED duplicate still contribute something the kept event doesn't know
|
|
39
|
-
* — see `applyOverrideMark`.
|
|
40
|
-
*/
|
|
41
|
-
private recentRequests;
|
|
42
34
|
private rawListenerUnsubscribe;
|
|
43
35
|
/** Raw events captured before the first consumer subscribed — see startBootCapture. */
|
|
44
36
|
private bootBuffer;
|
|
@@ -106,13 +98,6 @@ declare class NetworkEventStore extends BaseEventStore<NetworkEvent> {
|
|
|
106
98
|
* Process a network listener event
|
|
107
99
|
*/
|
|
108
100
|
processNetworkEvent(event: NetworkingEvent): void;
|
|
109
|
-
/**
|
|
110
|
-
* Stamp an override mark onto an already-recorded event.
|
|
111
|
-
*
|
|
112
|
-
* Only ever moves a mark from a dropped duplicate onto the event that was
|
|
113
|
-
* kept, so it never overwrites one that is already there.
|
|
114
|
-
*/
|
|
115
|
-
private applyOverrideMark;
|
|
116
101
|
private extractHost;
|
|
117
102
|
private extractPath;
|
|
118
103
|
private getDataSize;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networkEventStore.d.ts","sourceRoot":"","sources":["../../../../src/network/utils/networkEventStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"networkEventStore.d.ts","sourceRoot":"","sources":["../../../../src/network/utils/networkEventStore.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAQzD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;AAU1E,cAAM,iBAAkB,SAAQ,cAAc,CAAC,YAAY,CAAC;IAC1D,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,sBAAsB,CAA6B;IAC3D,uFAAuF;IACvF,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,qBAAqB,CAA6B;IAC1D,sFAAsF;IACtF,OAAO,CAAC,UAAU,CAAS;;IAS3B;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,IAAI,IAAI;IAexB,4EAA4E;IAC5E,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;IAuBhC;;OAEG;IACH,SAAS,CAAC,aAAa,IAAI,IAAI;IAe/B;;;;;OAKG;IACH,cAAc,IAAI,IAAI;IAUtB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;;;;;;OAOG;IACH,kBAAkB,IAAI,IAAI;IAK1B;;;;;;OAMG;IACH,iBAAiB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAMzE;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAmGjD,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,WAAW;IAUnB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIlD;;OAEG;IACH,WAAW,IAAI,IAAI;IAKnB;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,oBAAoB,EAAE,cAAc,UAAO,GAAG,MAAM,IAAI;IAkB1E,QAAQ;;;;;;;;;IAuCR,YAAY,CAAC,MAAM,EAAE;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;QACzC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,YAAY,EAAE;CAyCnB;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type NetworkConditionStamp } from "../conditions/store";
|
|
1
2
|
/**
|
|
2
3
|
* Network listener using Reactotron-style event pattern
|
|
3
4
|
* Simple and reliable network interception for React Native
|
|
@@ -33,6 +34,7 @@ export interface NetworkingEvent {
|
|
|
33
34
|
};
|
|
34
35
|
/** Set when a response-override rule affected this request. */
|
|
35
36
|
override?: NetworkOverrideMark;
|
|
37
|
+
condition?: NetworkConditionStamp;
|
|
36
38
|
}
|
|
37
39
|
export type NetworkingEventListener = (event: NetworkingEvent) => void;
|
|
38
40
|
/**
|
|
@@ -47,38 +49,10 @@ export type NetworkingEventListener = (event: NetworkingEvent) => void;
|
|
|
47
49
|
*/
|
|
48
50
|
export declare const BUOY_FETCH_INTERCEPTOR_FLAG = "__buoyNetworkFetchIntercepted";
|
|
49
51
|
export declare const BUOY_XHR_INTERCEPTOR_FLAG = "__buoyNetworkXhrIntercepted";
|
|
50
|
-
/**
|
|
51
|
-
* Network traffic interceptor for React Native applications
|
|
52
|
-
*
|
|
53
|
-
* This class intercepts both fetch and XMLHttpRequest operations to provide
|
|
54
|
-
* comprehensive network monitoring capabilities. It uses method swizzling to
|
|
55
|
-
* wrap native networking APIs while preserving their original functionality.
|
|
56
|
-
*
|
|
57
|
-
* @example
|
|
58
|
-
* ```typescript
|
|
59
|
-
* // Start monitoring network traffic
|
|
60
|
-
* startNetworkListener();
|
|
61
|
-
*
|
|
62
|
-
* // Add a listener for network events
|
|
63
|
-
* const unsubscribe = addNetworkListener((event) => {
|
|
64
|
-
* if (event.type === 'response') {
|
|
65
|
-
* console.log(`${event.request.method} ${event.request.url}: ${event.response?.status}`);
|
|
66
|
-
* }
|
|
67
|
-
* });
|
|
68
|
-
*
|
|
69
|
-
* // Stop monitoring and cleanup
|
|
70
|
-
* unsubscribe();
|
|
71
|
-
* stopNetworkListener();
|
|
72
|
-
* ```
|
|
73
|
-
*
|
|
74
|
-
* @performance Uses lazy singleton pattern to minimize memory footprint
|
|
75
|
-
* @performance Includes URL filtering to ignore development traffic
|
|
76
|
-
*/
|
|
77
52
|
declare class NetworkListener {
|
|
78
53
|
private listeners;
|
|
79
54
|
private isListening;
|
|
80
55
|
private requestCounter;
|
|
81
|
-
private ignoredUrls;
|
|
82
56
|
private originalFetch;
|
|
83
57
|
private originalXHROpen;
|
|
84
58
|
private originalXHRSend;
|
|
@@ -128,6 +102,17 @@ declare class NetworkListener {
|
|
|
128
102
|
* @param maxSize - Maximum body size in bytes (default: 1MB)
|
|
129
103
|
* @returns Object containing body, size, and truncation status
|
|
130
104
|
*/
|
|
105
|
+
/**
|
|
106
|
+
* Read a streamed body in the background, with a hard ceiling.
|
|
107
|
+
*
|
|
108
|
+
* Deliberately not `processResponseBody`: that one calls `.text()`, which
|
|
109
|
+
* accumulates the WHOLE body before it checks the size, so a long-lived SSE
|
|
110
|
+
* stream would grow unbounded in memory with nothing to stop it. This stops
|
|
111
|
+
* at the cap and cancels the reader, and a runtime with no `body` (React
|
|
112
|
+
* Native's own fetch) falls back to `.text()` — that response was never
|
|
113
|
+
* streaming there in the first place.
|
|
114
|
+
*/
|
|
115
|
+
private readStreamedBody;
|
|
131
116
|
private processResponseBody;
|
|
132
117
|
/**
|
|
133
118
|
* Format bytes into human-readable format
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networkListener.d.ts","sourceRoot":"","sources":["../../../../src/network/utils/networkListener.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"networkListener.d.ts","sourceRoot":"","sources":["../../../../src/network/utils/networkListener.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,8 +34,8 @@ export declare const MAX_PINNED = 25;
|
|
|
34
34
|
export declare const MAX_SAVED = 50;
|
|
35
35
|
/**
|
|
36
36
|
* @deprecated Read the live limit with `useLimit("network.saved")` — this only
|
|
37
|
-
* reports the FREE tier's value and
|
|
38
|
-
*
|
|
37
|
+
* reports the FREE tier's value and ignores the Weekend Pass. Kept because it
|
|
38
|
+
* is part of the package's public exports.
|
|
39
39
|
*/
|
|
40
40
|
export declare const FREE_TIER_SAVED_LIMIT: number;
|
|
41
41
|
export interface SavedNetworkRecord {
|
|
@@ -18,8 +18,8 @@ export interface SavedEventSelection {
|
|
|
18
18
|
export declare function selectSavedEvents(savedRecords: readonly SavedNetworkRecord[],
|
|
19
19
|
/**
|
|
20
20
|
* How many saves this tier may see — `useLimit("network.saved")`. Takes a
|
|
21
|
-
* number rather than `isPro` because
|
|
22
|
-
* boolean cannot express
|
|
21
|
+
* number rather than `isPro` because Pro's cap is 50, not unlimited, and a
|
|
22
|
+
* boolean cannot express that.
|
|
23
23
|
*/
|
|
24
24
|
limit: number, search: string): SavedEventSelection;
|
|
25
25
|
//# sourceMappingURL=selectSavedEvents.d.ts.map
|
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pre-configured network monitoring tool for FloatingDevTools
|
|
3
|
-
*
|
|
4
|
-
* This preset provides a zero-config way to add network request monitoring to your dev tools.
|
|
5
|
-
* Just import and add it to your apps array!
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```tsx
|
|
9
|
-
* import { networkToolPreset } from '@buoy-gg/network';
|
|
10
|
-
*
|
|
11
|
-
* const installedApps = [
|
|
12
|
-
* networkToolPreset, // That's it!
|
|
13
|
-
* // ...other tools
|
|
14
|
-
* ];
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
1
|
import { NetworkModal } from "./network/components/NetworkModal";
|
|
18
2
|
/**
|
|
19
3
|
* Pre-configured network monitoring tool for FloatingDevTools.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../src/preset.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../src/preset.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAqCjE;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB;;;;;qBAKX;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;CAKjC,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB;IAG1B,qCAAqC;kCACP,OAAO;;;;;;qBA1BtB;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;CA8BlC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/network",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.38",
|
|
4
4
|
"description": "In-app network inspector for React Native — requests, responses, timing & errors live, with GraphQL operation parsing. Part of Buoy devtools.",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
],
|
|
27
27
|
"sideEffects": false,
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@buoy-gg/shared-ui": "^7.0.
|
|
29
|
+
"@buoy-gg/shared-ui": "^7.0.38"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"react": "*",
|