react-native-debug-toolkit 2.2.0 → 3.0.0
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 +5 -8
- package/README.zh-CN.md +5 -8
- package/bin/debug-toolkit.js +114 -0
- package/lib/commonjs/features/network/index.js +32 -12
- package/lib/commonjs/features/network/index.js.map +1 -1
- package/lib/commonjs/features/network/networkInterceptor.js +164 -201
- package/lib/commonjs/features/network/networkInterceptor.js.map +1 -1
- package/lib/commonjs/index.js +59 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/panel/DebugPanel.js +25 -0
- package/lib/commonjs/ui/panel/DebugPanel.js.map +1 -1
- package/lib/commonjs/ui/panel/FloatPanelView.js +15 -62
- package/lib/commonjs/ui/panel/FloatPanelView.js.map +1 -1
- package/lib/commonjs/ui/panel/StreamingSettingsModal.js +529 -0
- package/lib/commonjs/ui/panel/StreamingSettingsModal.js.map +1 -0
- package/lib/commonjs/ui/panel/useTabAnimation.js +71 -0
- package/lib/commonjs/ui/panel/useTabAnimation.js.map +1 -0
- package/lib/commonjs/utils/autoDetectDaemon.js +141 -0
- package/lib/commonjs/utils/autoDetectDaemon.js.map +1 -0
- package/lib/commonjs/utils/createPersistedObservableStore.js +23 -3
- package/lib/commonjs/utils/createPersistedObservableStore.js.map +1 -1
- package/lib/commonjs/utils/daemonConnection.js +81 -0
- package/lib/commonjs/utils/daemonConnection.js.map +1 -0
- package/lib/commonjs/utils/daemonSettings.js +110 -0
- package/lib/commonjs/utils/daemonSettings.js.map +1 -0
- package/lib/commonjs/utils/reportToDaemon.js +112 -0
- package/lib/commonjs/utils/reportToDaemon.js.map +1 -0
- package/lib/commonjs/utils/sessionReport.js +132 -0
- package/lib/commonjs/utils/sessionReport.js.map +1 -0
- package/lib/commonjs/utils/streamToDaemon.js +334 -0
- package/lib/commonjs/utils/streamToDaemon.js.map +1 -0
- package/lib/module/features/network/index.js +30 -12
- package/lib/module/features/network/index.js.map +1 -1
- package/lib/module/features/network/networkInterceptor.js +163 -200
- package/lib/module/features/network/networkInterceptor.js.map +1 -1
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/panel/DebugPanel.js +26 -1
- package/lib/module/ui/panel/DebugPanel.js.map +1 -1
- package/lib/module/ui/panel/FloatPanelView.js +16 -63
- package/lib/module/ui/panel/FloatPanelView.js.map +1 -1
- package/lib/module/ui/panel/StreamingSettingsModal.js +524 -0
- package/lib/module/ui/panel/StreamingSettingsModal.js.map +1 -0
- package/lib/module/ui/panel/useTabAnimation.js +67 -0
- package/lib/module/ui/panel/useTabAnimation.js.map +1 -0
- package/lib/module/utils/autoDetectDaemon.js +136 -0
- package/lib/module/utils/autoDetectDaemon.js.map +1 -0
- package/lib/module/utils/createPersistedObservableStore.js +23 -3
- package/lib/module/utils/createPersistedObservableStore.js.map +1 -1
- package/lib/module/utils/daemonConnection.js +77 -0
- package/lib/module/utils/daemonConnection.js.map +1 -0
- package/lib/module/utils/daemonSettings.js +102 -0
- package/lib/module/utils/daemonSettings.js.map +1 -0
- package/lib/module/utils/reportToDaemon.js +105 -0
- package/lib/module/utils/reportToDaemon.js.map +1 -0
- package/lib/module/utils/sessionReport.js +128 -0
- package/lib/module/utils/sessionReport.js.map +1 -0
- package/lib/module/utils/streamToDaemon.js +328 -0
- package/lib/module/utils/streamToDaemon.js.map +1 -0
- package/lib/typescript/src/features/network/index.d.ts +2 -4
- package/lib/typescript/src/features/network/index.d.ts.map +1 -1
- package/lib/typescript/src/features/network/networkInterceptor.d.ts +2 -15
- package/lib/typescript/src/features/network/networkInterceptor.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +11 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/ui/panel/DebugPanel.d.ts.map +1 -1
- package/lib/typescript/src/ui/panel/FloatPanelView.d.ts.map +1 -1
- package/lib/typescript/src/ui/panel/StreamingSettingsModal.d.ts +8 -0
- package/lib/typescript/src/ui/panel/StreamingSettingsModal.d.ts.map +1 -0
- package/lib/typescript/src/ui/panel/useTabAnimation.d.ts +14 -0
- package/lib/typescript/src/ui/panel/useTabAnimation.d.ts.map +1 -0
- package/lib/typescript/src/utils/autoDetectDaemon.d.ts +15 -0
- package/lib/typescript/src/utils/autoDetectDaemon.d.ts.map +1 -0
- package/lib/typescript/src/utils/createPersistedObservableStore.d.ts +2 -1
- package/lib/typescript/src/utils/createPersistedObservableStore.d.ts.map +1 -1
- package/lib/typescript/src/utils/daemonConnection.d.ts +18 -0
- package/lib/typescript/src/utils/daemonConnection.d.ts.map +1 -0
- package/lib/typescript/src/utils/daemonSettings.d.ts +19 -0
- package/lib/typescript/src/utils/daemonSettings.d.ts.map +1 -0
- package/lib/typescript/src/utils/reportToDaemon.d.ts +34 -0
- package/lib/typescript/src/utils/reportToDaemon.d.ts.map +1 -0
- package/lib/typescript/src/utils/sessionReport.d.ts +18 -0
- package/lib/typescript/src/utils/sessionReport.d.ts.map +1 -0
- package/lib/typescript/src/utils/streamToDaemon.d.ts +23 -0
- package/lib/typescript/src/utils/streamToDaemon.d.ts.map +1 -0
- package/node/daemon/src/cli.js +75 -0
- package/node/daemon/src/console/console.html +936 -0
- package/node/daemon/src/console/index.js +47 -0
- package/node/daemon/src/constants.js +32 -0
- package/node/daemon/src/index.js +11 -0
- package/node/daemon/src/server.js +365 -0
- package/node/daemon/src/store.js +110 -0
- package/node/mcp/src/cli.js +31 -0
- package/node/mcp/src/constants.js +13 -0
- package/node/mcp/src/daemonClient.js +132 -0
- package/node/mcp/src/httpClient.js +49 -0
- package/node/mcp/src/index.js +15 -0
- package/node/mcp/src/logs.js +95 -0
- package/node/mcp/src/server.js +144 -0
- package/node/mcp/src/tools.js +84 -0
- package/package.json +10 -5
- package/src/features/network/index.ts +35 -19
- package/src/features/network/networkInterceptor.ts +224 -236
- package/src/index.ts +15 -1
- package/src/ui/panel/DebugPanel.tsx +23 -1
- package/src/ui/panel/FloatPanelView.tsx +10 -68
- package/src/ui/panel/StreamingSettingsModal.tsx +566 -0
- package/src/ui/panel/useTabAnimation.ts +77 -0
- package/src/utils/autoDetectDaemon.ts +175 -0
- package/src/utils/createPersistedObservableStore.ts +16 -3
- package/src/utils/daemonConnection.ts +133 -0
- package/src/utils/daemonSettings.ts +134 -0
- package/src/utils/reportToDaemon.ts +172 -0
- package/src/utils/sessionReport.ts +203 -0
- package/src/utils/streamToDaemon.ts +419 -0
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ A dev-only floating debug panel for React Native — inspect network, console, s
|
|
|
11
11
|

|
|
12
12
|
## Features
|
|
13
13
|
|
|
14
|
-
- **Network** — Auto-intercepts fetch
|
|
14
|
+
- **Network** — Auto-intercepts React Native XHR transport, including fetch and axios in the default adapter, inspect requests & responses, copy as cURL
|
|
15
15
|
- **Console** — Capture `console.log / info / warn / error`
|
|
16
16
|
- **Zustand** — Log state transitions via middleware
|
|
17
17
|
- **Navigation** — Track route changes
|
|
@@ -56,7 +56,7 @@ function App() {
|
|
|
56
56
|
|
|
57
57
|
A floating debug button appears in dev mode. Tap to open the panel, tap × or swipe down to close.
|
|
58
58
|
|
|
59
|
-
Network
|
|
59
|
+
Network, console, navigation, zustand, track, and clipboard are enabled by default. Network capture hooks React Native's XHR transport, so fetch and axios requests using the default adapter are captured automatically.
|
|
60
60
|
|
|
61
61
|
Disable specific features:
|
|
62
62
|
|
|
@@ -122,19 +122,16 @@ import { addTrackLog } from 'react-native-debug-toolkit';
|
|
|
122
122
|
addTrackLog({ eventName: 'button_click', buttonId: 'submit' });
|
|
123
123
|
```
|
|
124
124
|
|
|
125
|
-
### Network
|
|
125
|
+
### Network Options
|
|
126
126
|
|
|
127
|
-
|
|
128
|
-
import axios from 'axios';
|
|
129
|
-
|
|
130
|
-
const api = axios.create({ baseURL: 'https://api.example.com' });
|
|
127
|
+
React Native fetch and axios traffic is captured automatically through the XHR transport layer.
|
|
131
128
|
|
|
129
|
+
```tsx
|
|
132
130
|
<DebugView
|
|
133
131
|
features={{
|
|
134
132
|
network: {
|
|
135
133
|
maxLogs: 100,
|
|
136
134
|
blacklist: ['/analytics', /\/healthcheck$/],
|
|
137
|
-
axiosInstance: api,
|
|
138
135
|
},
|
|
139
136
|
}}
|
|
140
137
|
>
|
package/README.zh-CN.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|

|
|
12
12
|
## 功能
|
|
13
13
|
|
|
14
|
-
- **Network** — 自动拦截 fetch
|
|
14
|
+
- **Network** — 自动拦截 React Native XHR 传输层,默认覆盖 fetch 和使用默认 adapter 的 axios,可查看请求与响应并复制为 cURL
|
|
15
15
|
- **Console** — 捕获 `console.log / info / warn / error`
|
|
16
16
|
- **Zustand** — 通过中间件记录状态变化
|
|
17
17
|
- **Navigation** — 追踪路由切换
|
|
@@ -56,7 +56,7 @@ function App() {
|
|
|
56
56
|
|
|
57
57
|
开发模式下出现浮动调试按钮。点击打开面板,点击 × 或下滑关闭。
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
网络、控制台、导航、Zustand、埋点和剪贴板默认启用。Network 会拦截 React Native 的 XHR 传输层,因此使用默认 adapter 的 fetch 和 axios 请求会自动被捕获。
|
|
60
60
|
|
|
61
61
|
禁用特定功能:
|
|
62
62
|
|
|
@@ -122,19 +122,16 @@ import { addTrackLog } from 'react-native-debug-toolkit';
|
|
|
122
122
|
addTrackLog({ eventName: 'button_click', buttonId: 'submit' });
|
|
123
123
|
```
|
|
124
124
|
|
|
125
|
-
###
|
|
125
|
+
### 网络配置
|
|
126
126
|
|
|
127
|
-
|
|
128
|
-
import axios from 'axios';
|
|
129
|
-
|
|
130
|
-
const api = axios.create({ baseURL: 'https://api.example.com' });
|
|
127
|
+
React Native fetch 和 axios 流量会通过 XHR 传输层自动捕获。
|
|
131
128
|
|
|
129
|
+
```tsx
|
|
132
130
|
<DebugView
|
|
133
131
|
features={{
|
|
134
132
|
network: {
|
|
135
133
|
maxLogs: 100,
|
|
136
134
|
blacklist: ['/analytics', /\/healthcheck$/],
|
|
137
|
-
axiosInstance: api,
|
|
138
135
|
},
|
|
139
136
|
}}
|
|
140
137
|
>
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
const {
|
|
6
|
+
DAEMON_NAME,
|
|
7
|
+
DEFAULT_HOST,
|
|
8
|
+
DEFAULT_PORT,
|
|
9
|
+
getLanIPs,
|
|
10
|
+
} = require('../node/daemon/src/constants');
|
|
11
|
+
const { createDaemonServer } = require('../node/daemon/src/server');
|
|
12
|
+
const { startStdioServer } = require('../node/mcp/src/server');
|
|
13
|
+
|
|
14
|
+
function readOption(args, name, fallback) {
|
|
15
|
+
const index = args.indexOf(name);
|
|
16
|
+
if (index < 0) {
|
|
17
|
+
return fallback;
|
|
18
|
+
}
|
|
19
|
+
return args[index + 1] || fallback;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function hasHelpFlag(args) {
|
|
23
|
+
return args.includes('--help') || args.includes('-h');
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function printHelp() {
|
|
27
|
+
process.stderr.write(
|
|
28
|
+
'Usage: debug-toolkit [--host 0.0.0.0] [--port 3799] [--token dev-token] [--daemon-only]\n'
|
|
29
|
+
+ '\n'
|
|
30
|
+
+ 'Starts the debug toolkit: daemon (HTTP + Web Console) and MCP stdio server.\n'
|
|
31
|
+
+ '\n'
|
|
32
|
+
+ 'Options:\n'
|
|
33
|
+
+ ' --host <addr> Host to bind (default: 0.0.0.0)\n'
|
|
34
|
+
+ ' --port <port> Port to bind (default: 3799)\n'
|
|
35
|
+
+ ' --token <str> Auth token for daemon endpoints\n'
|
|
36
|
+
+ ' --daemon-only Start only the HTTP daemon and Web Console\n'
|
|
37
|
+
+ ' -h, --help Show this help\n',
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function hasDaemonOnlyFlag(args) {
|
|
42
|
+
return args.includes('--daemon-only');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function getLocalOrigin(host, port) {
|
|
46
|
+
const localHost = host === '0.0.0.0' || host === '::' ? '127.0.0.1' : host;
|
|
47
|
+
return `http://${localHost}:${port}`;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async function main() {
|
|
51
|
+
const args = process.argv.slice(2);
|
|
52
|
+
|
|
53
|
+
if (hasHelpFlag(args)) {
|
|
54
|
+
printHelp();
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const host = readOption(args, '--host', process.env.DEBUG_TOOLKIT_DAEMON_HOST || DEFAULT_HOST);
|
|
59
|
+
const port = Number(readOption(args, '--port', process.env.DEBUG_TOOLKIT_DAEMON_PORT || DEFAULT_PORT));
|
|
60
|
+
const token = readOption(args, '--token', process.env.DEBUG_TOOLKIT_DAEMON_TOKEN || '');
|
|
61
|
+
const daemonOnly = hasDaemonOnlyFlag(args);
|
|
62
|
+
|
|
63
|
+
if (!Number.isFinite(port) || port <= 0) {
|
|
64
|
+
process.stderr.write('Invalid --port value\n');
|
|
65
|
+
process.exitCode = 1;
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Start daemon HTTP server in-process
|
|
70
|
+
const { server } = createDaemonServer({ token });
|
|
71
|
+
|
|
72
|
+
server.on('error', (error) => {
|
|
73
|
+
process.stderr.write(`${DAEMON_NAME} failed to start: ${error.message}\n`);
|
|
74
|
+
process.exitCode = 1;
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
await new Promise((resolve) => {
|
|
78
|
+
server.listen(port, host, () => {
|
|
79
|
+
const consolePath = token ? `/console?token=${encodeURIComponent(token)}` : '/console';
|
|
80
|
+
process.stderr.write(`${DAEMON_NAME} listening on http://${host}:${port}\n`);
|
|
81
|
+
process.stderr.write(`Web Console: ${getLocalOrigin(host, port)}${consolePath}\n`);
|
|
82
|
+
const lanIPs = getLanIPs();
|
|
83
|
+
if (lanIPs.length > 0) {
|
|
84
|
+
process.stderr.write(`LAN IPs: ${lanIPs.join(', ')}\n`);
|
|
85
|
+
}
|
|
86
|
+
resolve();
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
const close = () => {
|
|
91
|
+
server.close(() => process.exit(0));
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
process.on('SIGINT', close);
|
|
95
|
+
process.on('SIGTERM', close);
|
|
96
|
+
|
|
97
|
+
if (daemonOnly) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const origin = getLocalOrigin(host, port);
|
|
102
|
+
|
|
103
|
+
// MCP stdio — daemon is in-process, skip HTTP health check
|
|
104
|
+
startStdioServer({
|
|
105
|
+
context: {
|
|
106
|
+
ensureDaemon: async () => ({ ok: true, origin, spawned: false }),
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
main().catch((error) => {
|
|
112
|
+
process.stderr.write(`Fatal: ${error.message}\n`);
|
|
113
|
+
process.exitCode = 1;
|
|
114
|
+
});
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports._addDaemonEndpointToNetworkBlacklist = _addDaemonEndpointToNetworkBlacklist;
|
|
7
|
+
exports._isNetworkUrlBlacklistedForTesting = _isNetworkUrlBlacklistedForTesting;
|
|
6
8
|
exports._resetNetworkForTesting = _resetNetworkForTesting;
|
|
7
9
|
exports.createNetworkFeature = void 0;
|
|
8
10
|
var _NetworkLogTab = require("./NetworkLogTab");
|
|
@@ -30,6 +32,7 @@ function emitNetworkLog(entry) {
|
|
|
30
32
|
// ─── Feature factory ──────────────────────────────────
|
|
31
33
|
|
|
32
34
|
const DEFAULT_MAX_LOGS = 200;
|
|
35
|
+
const daemonEndpointBlacklist = [];
|
|
33
36
|
const createNetworkFeature = config => {
|
|
34
37
|
const maxLogs = config?.maxLogs ?? DEFAULT_MAX_LOGS;
|
|
35
38
|
const blacklist = config?.blacklist ? [...config.blacklist] : [];
|
|
@@ -39,10 +42,9 @@ const createNetworkFeature = config => {
|
|
|
39
42
|
});
|
|
40
43
|
let initialized = false;
|
|
41
44
|
let unsubscribeLogs = null;
|
|
42
|
-
let
|
|
43
|
-
let stopAxiosFn = null;
|
|
45
|
+
let stopXhrFn = null;
|
|
44
46
|
const handleLog = entry => {
|
|
45
|
-
if (isUrlBlacklisted(entry.request.url, blacklist)) {
|
|
47
|
+
if (isUrlBlacklisted(entry.request.url, [...blacklist, ...daemonEndpointBlacklist])) {
|
|
46
48
|
return;
|
|
47
49
|
}
|
|
48
50
|
logStore.push({
|
|
@@ -59,10 +61,7 @@ const createNetworkFeature = config => {
|
|
|
59
61
|
return;
|
|
60
62
|
}
|
|
61
63
|
unsubscribeLogs = networkChannel.subscribe(handleLog);
|
|
62
|
-
|
|
63
|
-
if (config?.axiosInstance) {
|
|
64
|
-
stopAxiosFn = (0, _networkInterceptor.startAxios)(config.axiosInstance, emitNetworkLog);
|
|
65
|
-
}
|
|
64
|
+
stopXhrFn = (0, _networkInterceptor.startXMLHttpRequest)(emitNetworkLog);
|
|
66
65
|
initialized = true;
|
|
67
66
|
},
|
|
68
67
|
getSnapshot: () => logStore.getData(),
|
|
@@ -76,21 +75,42 @@ const createNetworkFeature = config => {
|
|
|
76
75
|
_urlRewriterRegistry.urlRewriter.set(null);
|
|
77
76
|
unsubscribeLogs?.();
|
|
78
77
|
unsubscribeLogs = null;
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
stopAxiosFn?.();
|
|
82
|
-
stopAxiosFn = null;
|
|
78
|
+
stopXhrFn?.();
|
|
79
|
+
stopXhrFn = null;
|
|
83
80
|
logStore.clear();
|
|
84
81
|
initialized = false;
|
|
85
82
|
},
|
|
86
83
|
subscribe: listener => logStore.subscribe(listener)
|
|
87
84
|
};
|
|
88
85
|
};
|
|
86
|
+
exports.createNetworkFeature = createNetworkFeature;
|
|
87
|
+
function normalizeDaemonEndpoint(endpoint) {
|
|
88
|
+
const trimmed = endpoint.trim().replace(/\/+$/, '');
|
|
89
|
+
if (!trimmed) {
|
|
90
|
+
return trimmed;
|
|
91
|
+
}
|
|
92
|
+
try {
|
|
93
|
+
const url = new URL(trimmed);
|
|
94
|
+
return `${url.origin}${url.pathname === '/' ? '' : url.pathname}`;
|
|
95
|
+
} catch {
|
|
96
|
+
return trimmed;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function _addDaemonEndpointToNetworkBlacklist(endpoint) {
|
|
100
|
+
const normalized = normalizeDaemonEndpoint(endpoint);
|
|
101
|
+
if (!normalized || daemonEndpointBlacklist.includes(normalized)) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
daemonEndpointBlacklist.push(normalized);
|
|
105
|
+
}
|
|
106
|
+
function _isNetworkUrlBlacklistedForTesting(url) {
|
|
107
|
+
return isUrlBlacklisted(url, daemonEndpointBlacklist);
|
|
108
|
+
}
|
|
89
109
|
|
|
90
110
|
/** Reset module-level state for testing */
|
|
91
|
-
exports.createNetworkFeature = createNetworkFeature;
|
|
92
111
|
function _resetNetworkForTesting() {
|
|
93
112
|
networkChannel = (0, _createEventChannel.createEventChannel)();
|
|
113
|
+
daemonEndpointBlacklist.splice(0, daemonEndpointBlacklist.length);
|
|
94
114
|
(0, _networkInterceptor.resetInterceptors)();
|
|
95
115
|
}
|
|
96
116
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_NetworkLogTab","require","_createEventChannel","_createPersistedObservableStore","_debugPreferences","_urlRewriterRegistry","_networkInterceptor","isUrlBlacklisted","url","blacklist","some","pattern","RegExp","test","includes","networkChannel","createEventChannel","emitNetworkLog","entry","emit","DEFAULT_MAX_LOGS","createNetworkFeature","config","maxLogs","logStore","createPersistedObservableStore","storageKey","KEYS","networkLogs","maxPersist","initialized","unsubscribeLogs","
|
|
1
|
+
{"version":3,"names":["_NetworkLogTab","require","_createEventChannel","_createPersistedObservableStore","_debugPreferences","_urlRewriterRegistry","_networkInterceptor","isUrlBlacklisted","url","blacklist","some","pattern","RegExp","test","includes","networkChannel","createEventChannel","emitNetworkLog","entry","emit","DEFAULT_MAX_LOGS","daemonEndpointBlacklist","createNetworkFeature","config","maxLogs","logStore","createPersistedObservableStore","storageKey","KEYS","networkLogs","maxPersist","initialized","unsubscribeLogs","stopXhrFn","handleLog","request","push","id","nextId","name","label","renderContent","NetworkLogTab","setup","subscribe","startXMLHttpRequest","getSnapshot","getData","clear","cleanup","urlRewriter","set","listener","exports","normalizeDaemonEndpoint","endpoint","trimmed","trim","replace","URL","origin","pathname","_addDaemonEndpointToNetworkBlacklist","normalized","_isNetworkUrlBlacklistedForTesting","_resetNetworkForTesting","splice","length","resetInterceptors"],"sourceRoot":"../../../../src","sources":["features/network/index.ts"],"mappings":"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","ignoreList":[]}
|