tunli 0.5.1 → 0.6.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/CHANGELOG.md +21 -0
- package/dist/cli-app/AppEventEmitter.d.ts +15 -1
- package/dist/cli-app/AppEventEmitter.d.ts.map +1 -1
- package/dist/cli-app/AppEventEmitter.js.map +1 -1
- package/dist/cli-app/Dashboard.d.ts.map +1 -1
- package/dist/cli-app/Dashboard.js +68 -15
- package/dist/cli-app/Dashboard.js.map +1 -1
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -1
- package/dist/commands/CommandReplay/CommandReplay.d.ts +4 -0
- package/dist/commands/CommandReplay/CommandReplay.d.ts.map +1 -0
- package/dist/commands/CommandReplay/CommandReplay.js +126 -0
- package/dist/commands/CommandReplay/CommandReplay.js.map +1 -0
- package/dist/daemon/DaemonServer.d.ts.map +1 -1
- package/dist/daemon/DaemonServer.js +117 -2
- package/dist/daemon/DaemonServer.js.map +1 -1
- package/dist/daemon/ReplayBuffer.d.ts +12 -0
- package/dist/daemon/ReplayBuffer.d.ts.map +1 -0
- package/dist/daemon/ReplayBuffer.js +28 -0
- package/dist/daemon/ReplayBuffer.js.map +1 -0
- package/dist/daemon/protocol.d.ts +33 -0
- package/dist/daemon/protocol.d.ts.map +1 -1
- package/dist/lib/defs.d.ts +4 -0
- package/dist/lib/defs.d.ts.map +1 -1
- package/dist/lib/defs.js +4 -0
- package/dist/lib/defs.js.map +1 -1
- package/dist/proxy/Proxy.d.ts.map +1 -1
- package/dist/proxy/Proxy.js +17 -1
- package/dist/proxy/Proxy.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.6.0] - 2026-03-27
|
|
4
|
+
|
|
5
|
+
### Request Replay
|
|
6
|
+
- Requests are stored per tunnel in an in-memory ring buffer (capacity 200, configurable)
|
|
7
|
+
- `tunli replay [profile]` — interactive picker to replay past requests; `--last` replays the most recent one directly; `--id <id>` for scripting
|
|
8
|
+
- Dashboard: `[r]` in the detail modal replays the request and shows the new status/duration inline; replayed entries get a `↺` marker in the log list
|
|
9
|
+
- Bodies are excluded for multipart/form-data, application/octet-stream, and payloads > 1 MB
|
|
10
|
+
- On daemon shutdown, request metadata (without bodies) is persisted to `~/.tunli/replay-meta.json` and restored on next start (TTL 24 h); entries with unavailable bodies are shown but replay is disabled
|
|
11
|
+
|
|
12
|
+
### Daemon version check
|
|
13
|
+
- On every command (except `--help`, `--version`, and `tunli daemon …`), the CLI checks the running daemon version against the binary version
|
|
14
|
+
- On mismatch: `Daemon version mismatch: binary is X, daemon is Y. Run \`tunli daemon restart\` to apply the update.`
|
|
15
|
+
- The daemon captures its version at startup so the check stays accurate after a binary swap
|
|
16
|
+
|
|
17
|
+
### Dashboard fixes
|
|
18
|
+
- Log list is now limited to available terminal rows — info rows at the top no longer get squished when many requests arrive
|
|
19
|
+
- Path column is capped to available terminal width and truncated with `…`; each row uses `wrap="truncate"` to prevent horizontal overflow and garbled output
|
|
20
|
+
- Log updates are throttled to 50 ms — batches concurrent requests into a single render, eliminating most header flicker
|
|
21
|
+
- Log container is remounted on each update flush, forcing a clean redraw and preventing leftover characters from shorter entries
|
|
22
|
+
- Fixed: closing the dashboard while a request was in-flight could crash the daemon (EPIPE on the attach socket with no error handler)
|
|
23
|
+
|
|
3
24
|
## [0.5.1] - 2026-03-26
|
|
4
25
|
|
|
5
26
|
### Fixes
|
|
@@ -30,7 +30,19 @@ export type ReqErrorMeta = {
|
|
|
30
30
|
export type ReadyInfo = ProxyConfig & {
|
|
31
31
|
target: TargetConfig;
|
|
32
32
|
};
|
|
33
|
-
type
|
|
33
|
+
export type CapturedRequestEvent = {
|
|
34
|
+
requestId: string;
|
|
35
|
+
method: string;
|
|
36
|
+
path: string;
|
|
37
|
+
headers: Record<string, string>;
|
|
38
|
+
body: string | null;
|
|
39
|
+
bodyUnavailable: boolean;
|
|
40
|
+
response: {
|
|
41
|
+
status: number;
|
|
42
|
+
durationMs: number;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
type AppEvents = "connect" | "disconnect" | "connect_error" | "ready" | "response" | "client-blocked" | "request" | "request-error" | "latency" | "request-count" | "captured-request";
|
|
34
46
|
export declare class AppEventEmitter extends EventEmitter {
|
|
35
47
|
on(eventName: 'ready', listener: (info: ReadyInfo) => void): this;
|
|
36
48
|
on(eventName: 'request', listener: (req: ReqMeta) => void): this;
|
|
@@ -41,6 +53,7 @@ export declare class AppEventEmitter extends EventEmitter {
|
|
|
41
53
|
on(eventName: 'connect_error', listener: (e: Error) => void): this;
|
|
42
54
|
on(eventName: 'latency', listener: (ms: number) => void): this;
|
|
43
55
|
on(eventName: 'request-count', listener: (count: number) => void): this;
|
|
56
|
+
on(eventName: 'captured-request', listener: (data: CapturedRequestEvent) => void): this;
|
|
44
57
|
on(eventName: AppEvents, listener: (...args: any[]) => unknown): this;
|
|
45
58
|
emit(eventName: 'ready', info: ReadyInfo): boolean;
|
|
46
59
|
emit(eventName: 'response', req: Req, res: Res): boolean;
|
|
@@ -52,6 +65,7 @@ export declare class AppEventEmitter extends EventEmitter {
|
|
|
52
65
|
emit(eventName: 'disconnect', reason: Socket.DisconnectReason): boolean;
|
|
53
66
|
emit(eventName: 'latency', ms: number): boolean;
|
|
54
67
|
emit(eventName: 'request-count', count: number): boolean;
|
|
68
|
+
emit(eventName: 'captured-request', data: CapturedRequestEvent): boolean;
|
|
55
69
|
}
|
|
56
70
|
export {};
|
|
57
71
|
//# sourceMappingURL=AppEventEmitter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppEventEmitter.d.ts","sourceRoot":"","sources":["../../src/cli-app/AppEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAC,WAAW,EAAE,YAAY,EAAC,MAAM,cAAc,CAAC;AAE5D,MAAM,MAAM,GAAG,GAAG;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,mBAAmB,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AACD,MAAM,MAAM,GAAG,GAAG;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,mBAAmB,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,mBAAmB,CAAA;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,CAAA;AAE9D,KAAK,SAAS,GACZ,SAAS,GACP,YAAY,GACZ,eAAe,GACf,OAAO,GACP,UAAU,GACV,gBAAgB,GAChB,SAAS,GACT,eAAe,GACf,SAAS,GACT,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"AppEventEmitter.d.ts","sourceRoot":"","sources":["../../src/cli-app/AppEventEmitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppEventEmitter.js","sourceRoot":"","sources":["../../src/cli-app/AppEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"AppEventEmitter.js","sourceRoot":"","sources":["../../src/cli-app/AppEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AA0DvC,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAa/C,EAAE,CAAC,SAAoB,EAAE,QAAqC;QAC5D,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;IAaD,IAAI,CAAC,SAAoB,EAAE,GAAG,IAAW;QACvC,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAA;IACvC,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../src/cli-app/Dashboard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAChD,OAAO,KAAK,EAAC,eAAe,EAAW,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../src/cli-app/Dashboard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAChD,OAAO,KAAK,EAAC,eAAe,EAAW,MAAM,0BAA0B,CAAA;AA4evE,eAAO,MAAM,aAAa,GACxB,QAAQ,aAAa,EACrB,iBAAiB,eAAe,EAChC,YAAY,UAAU,EAAE,EACxB,gBAAgB,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,KAC3C;IAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,CAAA;CAqB9F,CAAA"}
|
|
@@ -7,6 +7,7 @@ import { readPackageJson } from '#package-json/packageJson';
|
|
|
7
7
|
import { setCursorVisibility } from '#utils/cliFunctions';
|
|
8
8
|
import { getAvailableUpdate, performUpdate } from '#cli-app/versionCheck';
|
|
9
9
|
import { CHECK_FOR_UPDATES } from "#lib/defs";
|
|
10
|
+
import { DaemonClient } from '#daemon/DaemonClient';
|
|
10
11
|
const stripAnsi = (s) => s.replace(/\x1b\[[0-9;]*m/g, '');
|
|
11
12
|
const SPINNER_CHARS = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
12
13
|
const Spinner = ({ spinning }) => {
|
|
@@ -49,15 +50,17 @@ const TunnelSwitcherModal = ({ tunnels, current, onSelect, onClose }) => {
|
|
|
49
50
|
});
|
|
50
51
|
return (_jsx(Box, { width: "100%", height: stdout.rows, flexDirection: "column", alignItems: "center", justifyContent: "center", children: _jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 2, paddingY: 1, minWidth: 50, children: [_jsxs(Box, { justifyContent: "space-between", children: [_jsx(Text, { bold: true, children: "Switch Tunnel" }), _jsx(Text, { dimColor: true, children: "q / Esc to close" })] }), _jsx(Text, { children: " " }), tunnels.map((t, i) => (_jsxs(Box, { children: [_jsx(Box, { minWidth: 2, children: _jsx(Text, { color: "cyan", children: i === index ? '›' : ' ' }) }), _jsx(Box, { minWidth: 24, children: _jsx(Text, { bold: i === index, children: t.profileName }) }), _jsx(Text, { dimColor: true, children: t.proxyURL })] }, t.profileName))), _jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "\u2191\u2193 navigate \u00B7 Enter select" })] }) }));
|
|
51
52
|
};
|
|
52
|
-
const DetailModal = ({ entry, onClose }) => {
|
|
53
|
+
const DetailModal = ({ entry, onClose, onReplay, replayState }) => {
|
|
53
54
|
const { stdout } = useStdout();
|
|
54
55
|
useInput((input, key) => {
|
|
55
56
|
if (key.escape || input === 'q')
|
|
56
57
|
onClose();
|
|
58
|
+
if (input === 'r' && entry.replayable)
|
|
59
|
+
onReplay(entry.req.requestId);
|
|
57
60
|
});
|
|
58
61
|
const reqHeaders = Object.entries(entry.req.headers);
|
|
59
62
|
const resHeaders = Object.entries(entry.res.headers);
|
|
60
|
-
return (_jsx(Box, { width: "100%", height: stdout.rows, flexDirection: "column", alignItems: "center", justifyContent: "center", children: _jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 2, paddingY: 1, width: Math.min(stdout.columns - 4, 100), children: [_jsxs(Box, { justifyContent: "space-between", children: [_jsxs(Text, { bold: true, children: [entry.method, " ", entry.path] }), _jsx(Text, { dimColor: true, children: "q / Esc to close" })] }), _jsxs(Box, { marginTop: 1, gap: 4, children: [_jsx(Text, { children: entry.status }), entry.runtime ? _jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "Duration " }), _jsx(Text, { children: entry.runtime })] }) : null, _jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "Time " }), _jsx(Text, { children: new Date(entry.id).toLocaleTimeString() })] })] }), _jsx(Text, { children: " " }), _jsx(Text, { bold: true, children: "Request Headers" }), _jsx(Text, { children: '─'.repeat(40) }), reqHeaders.length === 0
|
|
63
|
+
return (_jsx(Box, { width: "100%", height: stdout.rows, flexDirection: "column", alignItems: "center", justifyContent: "center", children: _jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 2, paddingY: 1, width: Math.min(stdout.columns - 4, 100), children: [_jsxs(Box, { justifyContent: "space-between", children: [_jsxs(Text, { bold: true, children: [entry.method, " ", entry.path] }), _jsx(Text, { dimColor: true, children: "q / Esc to close" })] }), _jsxs(Box, { marginTop: 1, gap: 4, children: [_jsx(Text, { children: entry.status }), entry.runtime ? _jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "Duration " }), _jsx(Text, { children: entry.runtime })] }) : null, _jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "Time " }), _jsx(Text, { children: new Date(entry.id).toLocaleTimeString() })] })] }), entry.replayable && (_jsxs(Box, { marginTop: 1, gap: 2, children: [_jsx(Text, { dimColor: true, children: "[r] Replay" }), replayState?.status === 'replaying' && _jsx(Text, { color: "yellow", children: "Replaying\u2026" }), replayState?.status === 'done' && replayState.result && (_jsxs(Text, { color: replayState.result.status >= 500 ? 'red' : replayState.result.status >= 400 ? 'yellow' : 'green', children: ["\u2192 ", replayState.result.status, " ", replayState.result.durationMs, "ms"] })), replayState?.status === 'error' && _jsx(Text, { color: "red", children: replayState.error })] })), _jsx(Text, { children: " " }), _jsx(Text, { bold: true, children: "Request Headers" }), _jsx(Text, { children: '─'.repeat(40) }), reqHeaders.length === 0
|
|
61
64
|
? _jsx(Text, { dimColor: true, children: "\u2014" })
|
|
62
65
|
: reqHeaders.map(([k, v]) => (_jsxs(Box, { children: [_jsx(Box, { minWidth: 30, children: _jsx(Text, { color: "cyan", children: k }) }), _jsx(Text, { children: String(v) })] }, k))), _jsx(Text, { children: " " }), _jsx(Text, { bold: true, children: "Response Headers" }), _jsx(Text, { children: '─'.repeat(40) }), resHeaders.length === 0
|
|
63
66
|
? _jsx(Text, { dimColor: true, children: "\u2014" })
|
|
@@ -76,16 +79,21 @@ const DashboardApp = ({ config, appEventEmitter, allTunnels, onSwitchTunnel }) =
|
|
|
76
79
|
const [blockedCount, setBlockedCount] = useState(0);
|
|
77
80
|
const [lastBlockedIp, setLastBlockedIp] = useState('');
|
|
78
81
|
const [accessLog, setAccessLog] = useState([]);
|
|
82
|
+
const [logGeneration, setLogGeneration] = useState(0);
|
|
79
83
|
const [qrText, setQrText] = useState(null);
|
|
80
84
|
const [latency, setLatency] = useState(null);
|
|
81
85
|
const [paused, setPaused] = useState(false);
|
|
82
86
|
const [cursorIndex, setCursorIndex] = useState(null);
|
|
83
87
|
const [detailEntry, setDetailEntry] = useState(null);
|
|
84
88
|
const [switcherOpen, setSwitcherOpen] = useState(false);
|
|
89
|
+
const [replayedIds, setReplayedIds] = useState(new Set());
|
|
90
|
+
const [replayState, setReplayState] = useState(null);
|
|
85
91
|
const runtimeStack = useRef(new Map());
|
|
86
92
|
const pendingLog = useRef([]);
|
|
87
93
|
const accessLogRef = useRef([]);
|
|
88
94
|
const pausedRef = useRef(false);
|
|
95
|
+
const batchRef = useRef([]);
|
|
96
|
+
const batchTimerRef = useRef(null);
|
|
89
97
|
const forwardingUrl = `${config.proxy.proxyURL} -> http://${config.target.host}:${config.target.port}/`;
|
|
90
98
|
useEffect(() => {
|
|
91
99
|
if (!CHECK_FOR_UPDATES)
|
|
@@ -136,17 +144,26 @@ const DashboardApp = ({ config, appEventEmitter, allTunnels, onSwitchTunnel }) =
|
|
|
136
144
|
: runtimeMs < 500 ? chalk.yellow(label)
|
|
137
145
|
: chalk.red(label);
|
|
138
146
|
}
|
|
139
|
-
const entry = { method: req.method, path: req.path, status: rspMsg, runtime, id: now, req, res };
|
|
140
|
-
setRequestCount(c => c + 1);
|
|
147
|
+
const entry = { method: req.method, path: req.path, status: rspMsg, runtime, id: now, req, res, replayable: true };
|
|
141
148
|
if (pausedRef.current) {
|
|
142
149
|
pendingLog.current.push(entry);
|
|
150
|
+
setRequestCount(c => c + 1);
|
|
143
151
|
}
|
|
144
152
|
else {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
153
|
+
batchRef.current.push(entry);
|
|
154
|
+
if (batchTimerRef.current === null) {
|
|
155
|
+
batchTimerRef.current = setTimeout(() => {
|
|
156
|
+
batchTimerRef.current = null;
|
|
157
|
+
const toFlush = batchRef.current.splice(0);
|
|
158
|
+
setRequestCount(c => c + toFlush.length);
|
|
159
|
+
setLogGeneration(g => g + 1);
|
|
160
|
+
setAccessLog(log => {
|
|
161
|
+
const next = [...log, ...toFlush].slice(-30);
|
|
162
|
+
accessLogRef.current = next;
|
|
163
|
+
return next;
|
|
164
|
+
});
|
|
165
|
+
}, 50);
|
|
166
|
+
}
|
|
150
167
|
}
|
|
151
168
|
})
|
|
152
169
|
.on('client-blocked', (ip) => {
|
|
@@ -155,7 +172,25 @@ const DashboardApp = ({ config, appEventEmitter, allTunnels, onSwitchTunnel }) =
|
|
|
155
172
|
})
|
|
156
173
|
.on('latency', (ms) => setLatency(ms))
|
|
157
174
|
.on('request-count', (count) => setRequestCount(count));
|
|
175
|
+
return () => {
|
|
176
|
+
if (batchTimerRef.current !== null)
|
|
177
|
+
clearTimeout(batchTimerRef.current);
|
|
178
|
+
};
|
|
158
179
|
}, []);
|
|
180
|
+
const handleReplay = (requestId) => {
|
|
181
|
+
setReplayState({ requestId, status: 'replaying' });
|
|
182
|
+
new DaemonClient().send({ type: 'replay', profileName: config.profileName, requestId })
|
|
183
|
+
.then(res => {
|
|
184
|
+
if (res.type === 'replay-done') {
|
|
185
|
+
setReplayedIds(prev => new Set([...prev, requestId]));
|
|
186
|
+
setReplayState({ requestId, status: 'done', result: { status: res.status, durationMs: res.durationMs } });
|
|
187
|
+
}
|
|
188
|
+
else if (res.type === 'error') {
|
|
189
|
+
setReplayState({ requestId, status: 'error', error: res.message });
|
|
190
|
+
}
|
|
191
|
+
})
|
|
192
|
+
.catch(e => setReplayState({ requestId, status: 'error', error: e instanceof Error ? e.message : String(e) }));
|
|
193
|
+
};
|
|
159
194
|
// Ctrl+C always active
|
|
160
195
|
useInput((input, key) => {
|
|
161
196
|
if (key.ctrl && input === 'c') {
|
|
@@ -241,20 +276,38 @@ const DashboardApp = ({ config, appEventEmitter, allTunnels, onSwitchTunnel }) =
|
|
|
241
276
|
return _jsx(QRModal, { text: qrText, onClose: () => setQrText(null) });
|
|
242
277
|
}
|
|
243
278
|
if (detailEntry !== null) {
|
|
244
|
-
return _jsx(DetailModal, { entry: detailEntry, onClose: () => setDetailEntry(null) });
|
|
279
|
+
return _jsx(DetailModal, { entry: detailEntry, onClose: () => { setDetailEntry(null); setReplayState(null); }, onReplay: handleReplay, replayState: replayState?.requestId === detailEntry.req.requestId ? replayState : null });
|
|
245
280
|
}
|
|
246
281
|
if (switcherOpen) {
|
|
247
282
|
return _jsx(TunnelSwitcherModal, { tunnels: allTunnels, current: config.profileName, onSelect: onSwitchTunnel, onClose: () => setSwitcherOpen(false) });
|
|
248
283
|
}
|
|
249
|
-
|
|
250
|
-
|
|
284
|
+
// Fixed rows: 1 (header) + 1 (marginTop gap) + Tunnel + Profile + Config + QR-Code
|
|
285
|
+
// + 1 (empty) + Latency + Forwarding + Connections
|
|
286
|
+
// + 1 (empty) + 1 (HTTP Requests header) + 1 (separator)
|
|
287
|
+
let fixedRows = 13;
|
|
288
|
+
if (packageJson)
|
|
289
|
+
fixedRows++;
|
|
290
|
+
if (availableUpdate)
|
|
291
|
+
fixedRows++;
|
|
292
|
+
if (allowedCidr ?? deniedCidr)
|
|
293
|
+
fixedRows += 2; // empty separator + Blocked row
|
|
294
|
+
if (allowedCidr)
|
|
295
|
+
fixedRows++;
|
|
296
|
+
if (deniedCidr)
|
|
297
|
+
fixedRows++;
|
|
298
|
+
const maxLogEntries = Math.max(1, stdout.rows - fixedRows);
|
|
299
|
+
const displayedLog = [...accessLog].reverse().slice(0, maxLogEntries);
|
|
251
300
|
const statusColWidth = Math.max(20, ...accessLog.map(e => stripAnsi(e.status).length + 3));
|
|
252
|
-
|
|
301
|
+
const availableForPath = stdout.columns - 2 - 8 - statusColWidth - 12;
|
|
302
|
+
const pathColWidth = Math.min(Math.max(20, availableForPath), Math.max(40, ...accessLog.map(e => e.path.length + 3)));
|
|
303
|
+
return (_jsxs(Box, { flexDirection: "column", height: stdout.rows, children: [_jsxs(Box, { flexShrink: 0, flexDirection: "column", children: [_jsxs(Box, { width: "100%", justifyContent: "space-between", children: [_jsxs(Box, { children: [_jsx(Text, { children: "tunli " }), _jsx(Spinner, { spinning: spinning })] }), _jsx(Text, { children: allTunnels.length > 1 ? '(Ctrl+T switch · Ctrl+C quit)' : '(Ctrl+C to quit)' })] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(InfoRow, { label: "Tunnel", value: connectionStatus }), packageJson ? _jsx(InfoRow, { label: "Version", value: packageJson.version }) : null, availableUpdate ? _jsx(InfoRow, { label: chalk.yellow('Update'), value: availableUpdate }) : null, _jsx(InfoRow, { label: "Profile", value: config.profileName }), _jsx(InfoRow, { label: "Config", value: config.filepath }), _jsx(InfoRow, { label: "QR-Code", value: "Ctrl-Q" }), (allowedCidr ?? deniedCidr) ? _jsx(Text, { children: " " }) : null, allowedCidr ? _jsx(InfoRow, { label: "Allowed", value: allowedCidr.join(', ') }) : null, deniedCidr ? _jsx(InfoRow, { label: "Denied", value: deniedCidr.join(', ') }) : null, (allowedCidr ?? deniedCidr) ? (_jsx(InfoRow, { label: "Blocked", value: `${blockedCount}${lastBlockedIp ? ` (${lastBlockedIp})` : ''}` })) : null, _jsx(Text, { children: " " }), _jsx(InfoRow, { label: "Latency", value: latency !== null ? `${latency}ms` : '—' }), _jsx(InfoRow, { label: "Forwarding", value: forwardingUrl }), _jsx(InfoRow, { label: "Connections", value: String(requestCount) })] }), _jsx(Text, { children: " " }), _jsxs(Box, { justifyContent: "space-between", children: [_jsxs(Text, { children: ["HTTP Requests", cursorIndex !== null ? chalk.dim(' ↑↓ navigate · Enter detail · Esc exit') : chalk.dim(' ↑↓ navigate · Ctrl+P pause')] }), paused ? _jsxs(Text, { children: [chalk.yellow('PAUSED'), " ", pendingLog.current.length > 0 ? chalk.dim(`+${pendingLog.current.length}`) : ''] }) : null] }), _jsx(Text, { children: '─'.repeat(stdout.columns) })] }), _jsx(Box, { flexDirection: "column", children: displayedLog.map((entry, i) => {
|
|
253
304
|
const selected = cursorIndex === i;
|
|
254
305
|
const dim = cursorIndex !== null && !selected;
|
|
255
306
|
const prefix = selected ? '›' : ' ';
|
|
256
|
-
return (_jsxs(Box, { children: [_jsx(Box, { minWidth: 2, children: _jsx(Text, { color: "cyan", children: prefix }) }), _jsx(Box, { minWidth: 8, children: _jsx(Text, { dimColor: dim, children: entry.method }) }), _jsx(Box, { minWidth: pathColWidth,
|
|
257
|
-
|
|
307
|
+
return (_jsxs(Box, { children: [_jsx(Box, { minWidth: 2, children: _jsx(Text, { color: "cyan", children: prefix }) }), _jsx(Box, { minWidth: 8, children: _jsx(Text, { dimColor: dim, wrap: "truncate", children: entry.method }) }), _jsx(Box, { minWidth: pathColWidth, width: pathColWidth, children: _jsx(Text, { dimColor: dim, wrap: "truncate", children: entry.path.length > pathColWidth - 1
|
|
308
|
+
? entry.path.slice(0, pathColWidth - 2) + '…'
|
|
309
|
+
: entry.path }) }), _jsx(Box, { minWidth: statusColWidth, width: statusColWidth, children: _jsx(Text, { dimColor: dim, wrap: "truncate", children: entry.status }) }), entry.runtime ? _jsx(Text, { dimColor: dim, children: entry.runtime }) : null, replayedIds.has(entry.req.requestId) ? _jsx(Text, { dimColor: true, children: " \u21BA" }) : null] }, entry.id));
|
|
310
|
+
}) }, logGeneration)] }));
|
|
258
311
|
};
|
|
259
312
|
export const initDashboard = (config, appEventEmitter, allTunnels, onSwitchTunnel) => {
|
|
260
313
|
process.stdout.write('\x1b[?1049h'); // enter alternate screen buffer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dashboard.js","sourceRoot":"","sources":["../../src/cli-app/Dashboard.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dashboard.js","sourceRoot":"","sources":["../../src/cli-app/Dashboard.tsx"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -32,6 +32,7 @@ import { createCommandShare } from "#commands/CommandShare/CommandShare";
|
|
|
32
32
|
import { createCommandConnect } from "#commands/CommandConnect/CommandConnect";
|
|
33
33
|
import { createCommandUp } from "#commands/CommandUp/CommandUp";
|
|
34
34
|
import { createCommandDown } from "#commands/CommandDown/CommandDown";
|
|
35
|
+
import { createCommandReplay } from "#commands/CommandReplay/CommandReplay";
|
|
35
36
|
import { ApiClient } from "#api-client/ApiClient";
|
|
36
37
|
import { readPackageJson } from "#package-json/packageJson";
|
|
37
38
|
import { DaemonClient } from "#daemon/DaemonClient";
|
|
@@ -80,6 +81,7 @@ program.addCommand(createCommandShare(ctx, program));
|
|
|
80
81
|
program.addCommand(createCommandConnect(ctx, program));
|
|
81
82
|
program.addCommand(createCommandUp(ctx, program));
|
|
82
83
|
program.addCommand(createCommandDown(ctx, program));
|
|
84
|
+
program.addCommand(createCommandReplay(ctx, program));
|
|
83
85
|
program.action(({ options }) => {
|
|
84
86
|
if (options.version) {
|
|
85
87
|
ctx.logger.info(`tunli: ${packageJson?.version}`);
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,8FAA8F;AAC9F,+FAA+F;AAC/F,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;AACrC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAA4B,EAAE,EAAE;IACrD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,IAAI,CAAC,CAAA;AAC3E,CAAC,CAAC,CAAA;AAEF,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAoB,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAC,2BAA2B,EAAE,sBAAsB,EAAE,qBAAqB,EAAC,MAAM,WAAW,CAAC;AACrG,OAAO,EAAC,mBAAmB,EAAC,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAC,iBAAiB,EAAC,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAC,yBAAyB,EAAC,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAC,qBAAqB,EAAC,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAC,iBAAiB,EAAC,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAC,mBAAmB,EAAC,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAC,oBAAoB,EAAC,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAC,mBAAmB,EAAC,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAC,iBAAiB,EAAC,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAC,sBAAsB,EAAC,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAC,iBAAiB,EAAC,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAC,iBAAiB,EAAC,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAC,oBAAoB,EAAC,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAC,mBAAmB,EAAC,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAC,qBAAqB,EAAC,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAC,oBAAoB,EAAC,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAC,iBAAiB,EAAC,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAElD,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,YAAY,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC,CAAA;AACvG,MAAM,SAAS,GAAG,2BAA2B,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,YAAY,CAAC,2BAA2B,CAAC,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACzJ,MAAM,WAAW,GAAG,eAAe,EAAE,CAAA;AACrC,MAAM,GAAG,GAAY;IACnB,MAAM,EAAE;QACN,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,SAAS;QAChB,iBAAiB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,qBAAqB,CAAC;KAClE;IACD,IAAI,CAAC,IAAa;QAChB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;IACzB,CAAC;IACD,SAAS,EAAE,IAAI,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/C,MAAM,EAAE;QACN,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB;CACF,CAAA;AAED,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,oBAAoB,CAAC;KACjC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;AAE9C,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACnD,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACrD,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAA;AACtE,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACvD,wDAAwD;AACxD,uDAAuD;AACvD,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACnD,OAAO,CAAC,UAAU,CAAC,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AAC3D,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACrD,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACtD,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACrD,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACnD,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACxD,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACnD,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACnD,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACtD,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACrD,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACvD,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACpD,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACtD,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;AACjD,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandReplay.d.ts","sourceRoot":"","sources":["../../../src/commands/CommandReplay/CommandReplay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAS,MAAM,kBAAkB,CAAA;AAC1D,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA;AA0EzC,eAAO,MAAM,mBAAmB,GAAI,KAAK,OAAO,EAAE,UAAU,OAAO,YA4ElE,CAAA"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Argument, Command, Option } from '#commander/index';
|
|
3
|
+
import { DaemonClient } from '#daemon/DaemonClient';
|
|
4
|
+
import { render } from 'ink';
|
|
5
|
+
import { Box, Text, useApp, useInput } from 'ink';
|
|
6
|
+
import { useState } from 'react';
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
const statusColor = (status) => {
|
|
9
|
+
if (!status)
|
|
10
|
+
return '—';
|
|
11
|
+
if (status >= 500)
|
|
12
|
+
return chalk.red(String(status));
|
|
13
|
+
if (status >= 400)
|
|
14
|
+
return chalk.yellow(String(status));
|
|
15
|
+
return chalk.green(String(status));
|
|
16
|
+
};
|
|
17
|
+
const RequestPickerApp = ({ requests, onSelect }) => {
|
|
18
|
+
const { exit } = useApp();
|
|
19
|
+
const [index, setIndex] = useState(0);
|
|
20
|
+
useInput((input, key) => {
|
|
21
|
+
if (input === 'q' || key.escape) {
|
|
22
|
+
exit();
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (key.upArrow)
|
|
26
|
+
setIndex(i => Math.max(0, i - 1));
|
|
27
|
+
if (key.downArrow)
|
|
28
|
+
setIndex(i => Math.min(requests.length - 1, i + 1));
|
|
29
|
+
if (key.return) {
|
|
30
|
+
const r = requests[index];
|
|
31
|
+
if (r)
|
|
32
|
+
onSelect(r);
|
|
33
|
+
exit();
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
const pathW = Math.max(40, ...requests.map(r => r.path.length + 2));
|
|
37
|
+
const methodW = 8;
|
|
38
|
+
return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsx(Text, { bold: true, children: "Recent requests" }), _jsx(Text, { children: '─'.repeat(60) }), requests.map((r, i) => {
|
|
39
|
+
const selected = i === index;
|
|
40
|
+
const time = new Date(r.timestamp).toLocaleTimeString();
|
|
41
|
+
const status = statusColor(r.response?.status ?? null);
|
|
42
|
+
const unavail = r.bodyUnavailable ? chalk.dim(' [!]') : '';
|
|
43
|
+
const replayed = r.replayOf ? chalk.dim(' ↺') : '';
|
|
44
|
+
return (_jsxs(Box, { children: [_jsx(Box, { minWidth: 2, children: _jsx(Text, { color: "cyan", children: selected ? '›' : ' ' }) }), _jsx(Box, { minWidth: methodW, children: _jsx(Text, { bold: selected, children: r.method }) }), _jsx(Box, { minWidth: pathW, children: _jsx(Text, { bold: selected, children: r.path }) }), _jsx(Box, { minWidth: 8, children: _jsx(Text, { children: status }) }), _jsxs(Text, { dimColor: true, children: [time, unavail, replayed] })] }, r.id));
|
|
45
|
+
}), _jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "\u2191\u2193 navigate \u00B7 Enter replay \u00B7 q quit" })] }));
|
|
46
|
+
};
|
|
47
|
+
const pickRequest = (requests) => new Promise(resolve => {
|
|
48
|
+
let selected = null;
|
|
49
|
+
const { waitUntilExit } = render(_jsx(RequestPickerApp, { requests: requests, onSelect: r => { selected = r; } }), { exitOnCtrlC: true });
|
|
50
|
+
void waitUntilExit().then(() => resolve(selected)).catch(() => resolve(null));
|
|
51
|
+
});
|
|
52
|
+
export const createCommandReplay = (ctx, _program) => {
|
|
53
|
+
return new Command('replay')
|
|
54
|
+
.description('Replay a captured HTTP request')
|
|
55
|
+
.addArgument(new Argument('profile', 'Profile name'))
|
|
56
|
+
.addOption(new Option('last', 'Replay the most recent request without prompting'))
|
|
57
|
+
.addOption(new Option('id', 'Replay a specific request by ID').argument('requestId'))
|
|
58
|
+
.action(async ({ args, options }) => {
|
|
59
|
+
const opt = options;
|
|
60
|
+
let profileName = args.profile;
|
|
61
|
+
// If no profile given, pick from running tunnels
|
|
62
|
+
if (!profileName) {
|
|
63
|
+
const res = await new DaemonClient().send({ type: 'list' }).catch(() => null);
|
|
64
|
+
if (!res || res.type !== 'list' || res.tunnels.length === 0) {
|
|
65
|
+
ctx.logger.error('No active tunnels.');
|
|
66
|
+
return ctx.exit(1);
|
|
67
|
+
}
|
|
68
|
+
if (res.tunnels.length === 1) {
|
|
69
|
+
profileName = res.tunnels[0].profileName;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
// pick tunnel first — reuse same pattern as dashboard
|
|
73
|
+
const { pickTunnel } = await import('#cli-app/TunnelPicker');
|
|
74
|
+
const tunnel = await pickTunnel(res.tunnels);
|
|
75
|
+
if (!tunnel)
|
|
76
|
+
return;
|
|
77
|
+
profileName = tunnel.profileName;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const listRes = await new DaemonClient().send({ type: 'list-requests', profileName }).catch(() => null);
|
|
81
|
+
if (!listRes || listRes.type !== 'request-list') {
|
|
82
|
+
ctx.logger.error('Failed to fetch request history.');
|
|
83
|
+
return ctx.exit(1);
|
|
84
|
+
}
|
|
85
|
+
if (listRes.requests.length === 0) {
|
|
86
|
+
ctx.logger.info('No requests captured yet for this tunnel.');
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
let target = null;
|
|
90
|
+
if (opt.id) {
|
|
91
|
+
target = listRes.requests.find(r => r.id === opt.id) ?? null;
|
|
92
|
+
if (!target) {
|
|
93
|
+
ctx.logger.error(`Request not found: ${opt.id}`);
|
|
94
|
+
return ctx.exit(1);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else if (opt.last) {
|
|
98
|
+
target = listRes.requests[0] ?? null;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
target = await pickRequest(listRes.requests);
|
|
102
|
+
}
|
|
103
|
+
if (!target)
|
|
104
|
+
return;
|
|
105
|
+
if (target.bodyUnavailable) {
|
|
106
|
+
ctx.logger.error('Cannot replay: body not available (captured before last restart).');
|
|
107
|
+
return ctx.exit(1);
|
|
108
|
+
}
|
|
109
|
+
ctx.logger.info(`Replaying ${target.method} ${target.path}…`);
|
|
110
|
+
const res = await new DaemonClient().send({ type: 'replay', profileName, requestId: target.id }).catch(e => {
|
|
111
|
+
ctx.logger.error(e instanceof Error ? e.message : String(e));
|
|
112
|
+
return null;
|
|
113
|
+
});
|
|
114
|
+
if (!res)
|
|
115
|
+
return ctx.exit(1);
|
|
116
|
+
if (res.type === 'error') {
|
|
117
|
+
ctx.logger.error(res.message);
|
|
118
|
+
return ctx.exit(1);
|
|
119
|
+
}
|
|
120
|
+
if (res.type === 'replay-done') {
|
|
121
|
+
const color = res.status >= 500 ? chalk.red : res.status >= 400 ? chalk.yellow : chalk.green;
|
|
122
|
+
ctx.logger.info(`→ ${color(String(res.status))} ${res.durationMs}ms`);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=CommandReplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandReplay.js","sourceRoot":"","sources":["../../../src/commands/CommandReplay/CommandReplay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DaemonServer.d.ts","sourceRoot":"","sources":["../../src/daemon/DaemonServer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DaemonServer.d.ts","sourceRoot":"","sources":["../../src/daemon/DaemonServer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,MAAM,EAA8B,MAAM,cAAc,CAAA;AAGrE,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAA;AAc7D,qBAAa,YAAY;;gBASX,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM;IAMpD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CA0T9B"}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import net from 'net';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
2
|
+
import http from 'http';
|
|
3
|
+
import { readFileSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
4
|
+
import { DAEMON_SOCKET_PATH, REPLAY_META_FILEPATH, REPLAY_BUFFER_CAPACITY, REPLAY_META_TTL_MS, RESTART_DUMP_FILEPATH } from '#lib/defs';
|
|
4
5
|
import { AppEventEmitter } from '#cli-app/AppEventEmitter';
|
|
5
6
|
import { ApiClient } from '#api-client/ApiClient';
|
|
6
7
|
import { ParsedGlobalConfig } from '#config/ParsedGlobalConfig';
|
|
7
8
|
import { createProxy } from '#proxy/Proxy';
|
|
8
9
|
import { readPackageJson } from '#package-json/packageJson';
|
|
10
|
+
import { ReplayBuffer } from '#daemon/ReplayBuffer';
|
|
9
11
|
export class DaemonServer {
|
|
10
12
|
#logger;
|
|
11
13
|
#apiClient;
|
|
12
14
|
#version;
|
|
13
15
|
#tunnels = new Map();
|
|
16
|
+
#replayBuffers = new Map();
|
|
14
17
|
#server;
|
|
15
18
|
constructor(globalConf, logger) {
|
|
16
19
|
this.#logger = logger;
|
|
@@ -24,6 +27,7 @@ export class DaemonServer {
|
|
|
24
27
|
catch { /* stale socket */
|
|
25
28
|
}
|
|
26
29
|
this.#server = net.createServer((socket) => {
|
|
30
|
+
socket.on('error', () => { });
|
|
27
31
|
let buffer = '';
|
|
28
32
|
socket.on('data', (chunk) => {
|
|
29
33
|
buffer += chunk.toString();
|
|
@@ -40,6 +44,7 @@ export class DaemonServer {
|
|
|
40
44
|
}
|
|
41
45
|
});
|
|
42
46
|
});
|
|
47
|
+
this.#loadReplayMeta();
|
|
43
48
|
await this.#restoreFromDump();
|
|
44
49
|
await new Promise((resolve) => this.#server.listen(DAEMON_SOCKET_PATH, resolve));
|
|
45
50
|
this.#logger.info('Daemon listening');
|
|
@@ -65,6 +70,10 @@ export class DaemonServer {
|
|
|
65
70
|
case 'version':
|
|
66
71
|
this.#respond(socket, { type: 'version', version: this.#version });
|
|
67
72
|
return;
|
|
73
|
+
case 'list-requests':
|
|
74
|
+
return this.#handleListRequests(req, socket);
|
|
75
|
+
case 'replay':
|
|
76
|
+
return this.#handleReplay(req, socket);
|
|
68
77
|
}
|
|
69
78
|
}
|
|
70
79
|
async #handleStart(req, socket) {
|
|
@@ -108,6 +117,25 @@ export class DaemonServer {
|
|
|
108
117
|
const proxy = await createProxy(profileConfig, appEmitter);
|
|
109
118
|
handle.disconnect = proxy.disconnect;
|
|
110
119
|
this.#tunnels.set(req.profileName, handle);
|
|
120
|
+
// Create or reuse replay buffer for this tunnel
|
|
121
|
+
let replayBuf = this.#replayBuffers.get(req.profileName);
|
|
122
|
+
if (!replayBuf) {
|
|
123
|
+
replayBuf = new ReplayBuffer(REPLAY_BUFFER_CAPACITY);
|
|
124
|
+
this.#replayBuffers.set(req.profileName, replayBuf);
|
|
125
|
+
}
|
|
126
|
+
const buf = replayBuf;
|
|
127
|
+
appEmitter.on('captured-request', (data) => {
|
|
128
|
+
buf.push({
|
|
129
|
+
id: data.requestId,
|
|
130
|
+
timestamp: Date.now(),
|
|
131
|
+
method: data.method,
|
|
132
|
+
path: data.path,
|
|
133
|
+
headers: data.headers,
|
|
134
|
+
body: data.body,
|
|
135
|
+
bodyUnavailable: data.bodyUnavailable,
|
|
136
|
+
response: data.response,
|
|
137
|
+
});
|
|
138
|
+
});
|
|
111
139
|
this.#logger.info(`Tunnel started: ${req.profileName} → ${req.proxyURL}`);
|
|
112
140
|
}
|
|
113
141
|
async #restoreFromDump() {
|
|
@@ -132,6 +160,92 @@ export class DaemonServer {
|
|
|
132
160
|
this.#logger.error(`Failed to parse restart dump: ${e instanceof Error ? e.message : String(e)}`);
|
|
133
161
|
}
|
|
134
162
|
}
|
|
163
|
+
#loadReplayMeta() {
|
|
164
|
+
try {
|
|
165
|
+
const raw = readFileSync(REPLAY_META_FILEPATH, 'utf-8');
|
|
166
|
+
const entries = JSON.parse(raw);
|
|
167
|
+
const cutoff = Date.now() - REPLAY_META_TTL_MS;
|
|
168
|
+
for (const [profile, metas] of Object.entries(entries)) {
|
|
169
|
+
const fresh = metas.filter(m => m.timestamp > cutoff);
|
|
170
|
+
if (fresh.length === 0)
|
|
171
|
+
continue;
|
|
172
|
+
const buf = new ReplayBuffer(REPLAY_BUFFER_CAPACITY);
|
|
173
|
+
buf.restoreFromMeta(fresh);
|
|
174
|
+
this.#replayBuffers.set(profile, buf);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
catch { /* no file or parse error */ }
|
|
178
|
+
}
|
|
179
|
+
#handleListRequests(req, socket) {
|
|
180
|
+
const buf = this.#replayBuffers.get(req.profileName);
|
|
181
|
+
if (!buf)
|
|
182
|
+
return this.#respond(socket, { type: 'request-list', requests: [] });
|
|
183
|
+
this.#respond(socket, { type: 'request-list', requests: buf.getAll(req.limit) });
|
|
184
|
+
}
|
|
185
|
+
async #handleReplay(req, socket) {
|
|
186
|
+
const handle = this.#tunnels.get(req.profileName);
|
|
187
|
+
const buf = this.#replayBuffers.get(req.profileName);
|
|
188
|
+
if (!handle || !buf) {
|
|
189
|
+
return this.#respond(socket, { type: 'error', message: `No active tunnel for profile "${req.profileName}"` });
|
|
190
|
+
}
|
|
191
|
+
const stored = buf.getById(req.requestId);
|
|
192
|
+
if (!stored) {
|
|
193
|
+
return this.#respond(socket, { type: 'error', message: `Request not found: ${req.requestId}` });
|
|
194
|
+
}
|
|
195
|
+
if (stored.bodyUnavailable) {
|
|
196
|
+
return this.#respond(socket, { type: 'error', message: 'Cannot replay: body not available after restart' });
|
|
197
|
+
}
|
|
198
|
+
const { target } = handle.startRequest;
|
|
199
|
+
const start = Date.now();
|
|
200
|
+
try {
|
|
201
|
+
const result = await new Promise((resolve, reject) => {
|
|
202
|
+
const localReq = http.request({
|
|
203
|
+
host: target.host,
|
|
204
|
+
port: target.port,
|
|
205
|
+
method: stored.method,
|
|
206
|
+
path: stored.path,
|
|
207
|
+
headers: stored.headers,
|
|
208
|
+
}, (res) => {
|
|
209
|
+
const durationMs = Date.now() - start;
|
|
210
|
+
res.resume();
|
|
211
|
+
res.on('end', () => resolve({ status: res.statusCode ?? 200, durationMs }));
|
|
212
|
+
res.on('error', reject);
|
|
213
|
+
});
|
|
214
|
+
localReq.on('error', reject);
|
|
215
|
+
if (stored.body)
|
|
216
|
+
localReq.write(stored.body);
|
|
217
|
+
localReq.end();
|
|
218
|
+
});
|
|
219
|
+
const replayId = `r-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 6)}`;
|
|
220
|
+
buf.push({
|
|
221
|
+
id: replayId,
|
|
222
|
+
timestamp: Date.now(),
|
|
223
|
+
method: stored.method,
|
|
224
|
+
path: stored.path,
|
|
225
|
+
headers: stored.headers,
|
|
226
|
+
body: stored.body,
|
|
227
|
+
bodyUnavailable: false,
|
|
228
|
+
replayOf: stored.id,
|
|
229
|
+
response: result,
|
|
230
|
+
});
|
|
231
|
+
this.#respond(socket, { type: 'replay-done', requestId: req.requestId, replayId, ...result });
|
|
232
|
+
}
|
|
233
|
+
catch (e) {
|
|
234
|
+
this.#respond(socket, { type: 'error', message: e instanceof Error ? e.message : String(e) });
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
#persistReplayMeta() {
|
|
238
|
+
try {
|
|
239
|
+
const data = {};
|
|
240
|
+
for (const [profile, buf] of this.#replayBuffers) {
|
|
241
|
+
const meta = buf.toMeta();
|
|
242
|
+
if (meta.length > 0)
|
|
243
|
+
data[profile] = meta;
|
|
244
|
+
}
|
|
245
|
+
writeFileSync(REPLAY_META_FILEPATH, JSON.stringify(data));
|
|
246
|
+
}
|
|
247
|
+
catch { /* best-effort */ }
|
|
248
|
+
}
|
|
135
249
|
#handleAttach(req, socket) {
|
|
136
250
|
const handle = this.#tunnels.get(req.profileName);
|
|
137
251
|
if (!handle) {
|
|
@@ -201,6 +315,7 @@ export class DaemonServer {
|
|
|
201
315
|
}
|
|
202
316
|
catch { /* already gone */
|
|
203
317
|
}
|
|
318
|
+
this.#persistReplayMeta();
|
|
204
319
|
process.exit(0);
|
|
205
320
|
}
|
|
206
321
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DaemonServer.js","sourceRoot":"","sources":["../../src/daemon/DaemonServer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DaemonServer.js","sourceRoot":"","sources":["../../src/daemon/DaemonServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { StoredRequest, StoredRequestMeta } from '#daemon/protocol';
|
|
2
|
+
export declare class ReplayBuffer {
|
|
3
|
+
#private;
|
|
4
|
+
constructor(capacity: number);
|
|
5
|
+
push(req: StoredRequest): void;
|
|
6
|
+
getAll(limit?: number): StoredRequestMeta[];
|
|
7
|
+
getById(id: string): StoredRequest | undefined;
|
|
8
|
+
toMeta(): StoredRequestMeta[];
|
|
9
|
+
restoreFromMeta(entries: StoredRequestMeta[]): void;
|
|
10
|
+
get size(): number;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=ReplayBuffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReplayBuffer.d.ts","sourceRoot":"","sources":["../../src/daemon/ReplayBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAA;AAEtE,qBAAa,YAAY;;gBAIX,QAAQ,EAAE,MAAM;IAI5B,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAK9B,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAM3C,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI9C,MAAM,IAAI,iBAAiB,EAAE;IAI7B,eAAe,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAInD,IAAI,IAAI,IAAI,MAAM,CAAgC;CACnD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export class ReplayBuffer {
|
|
2
|
+
#capacity;
|
|
3
|
+
#entries = [];
|
|
4
|
+
constructor(capacity) {
|
|
5
|
+
this.#capacity = capacity;
|
|
6
|
+
}
|
|
7
|
+
push(req) {
|
|
8
|
+
this.#entries.push(req);
|
|
9
|
+
if (this.#entries.length > this.#capacity)
|
|
10
|
+
this.#entries.shift();
|
|
11
|
+
}
|
|
12
|
+
getAll(limit) {
|
|
13
|
+
const entries = [...this.#entries].reverse();
|
|
14
|
+
const sliced = limit ? entries.slice(0, limit) : entries;
|
|
15
|
+
return sliced.map(({ body: _body, ...rest }) => rest);
|
|
16
|
+
}
|
|
17
|
+
getById(id) {
|
|
18
|
+
return this.#entries.find(e => e.id === id);
|
|
19
|
+
}
|
|
20
|
+
toMeta() {
|
|
21
|
+
return this.#entries.map(({ body: _body, ...rest }) => ({ ...rest, bodyUnavailable: true }));
|
|
22
|
+
}
|
|
23
|
+
restoreFromMeta(entries) {
|
|
24
|
+
this.#entries = entries.map(e => ({ ...e, body: null }));
|
|
25
|
+
}
|
|
26
|
+
get size() { return this.#entries.length; }
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=ReplayBuffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReplayBuffer.js","sourceRoot":"","sources":["../../src/daemon/ReplayBuffer.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IACd,SAAS,CAAQ;IAC1B,QAAQ,GAAoB,EAAE,CAAA;IAE9B,YAAY,QAAgB;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;IAC3B,CAAC;IAED,IAAI,CAAC,GAAkB;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IAClE,CAAC;IAED,MAAM,CAAC,KAAc;QACnB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAA;QAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QACxD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;IACrD,CAAC;IAED,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,IAAI,EAAE,eAAe,EAAE,IAAI,EAAC,CAAC,CAAC,CAAA;IAC1F,CAAC;IAED,eAAe,CAAC,OAA4B;QAC1C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,IAAI,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA,CAAC,CAAC;CACnD"}
|
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
import type { TargetConfig } from '#types/types';
|
|
2
2
|
import type { Req, Res, ReqMeta, ReqErrorMeta } from '#cli-app/AppEventEmitter';
|
|
3
|
+
export type StoredRequestMeta = {
|
|
4
|
+
id: string;
|
|
5
|
+
timestamp: number;
|
|
6
|
+
method: string;
|
|
7
|
+
path: string;
|
|
8
|
+
headers: Record<string, string>;
|
|
9
|
+
bodyUnavailable: boolean;
|
|
10
|
+
replayOf?: string;
|
|
11
|
+
response: {
|
|
12
|
+
status: number;
|
|
13
|
+
durationMs: number;
|
|
14
|
+
} | null;
|
|
15
|
+
};
|
|
16
|
+
export type StoredRequest = StoredRequestMeta & {
|
|
17
|
+
body: string | null;
|
|
18
|
+
};
|
|
3
19
|
export type TunnelInfo = {
|
|
4
20
|
profileName: string;
|
|
5
21
|
proxyURL: string;
|
|
@@ -33,6 +49,14 @@ export type DaemonRequest = StartRequest | {
|
|
|
33
49
|
type: 'shutdown';
|
|
34
50
|
} | {
|
|
35
51
|
type: 'version';
|
|
52
|
+
} | {
|
|
53
|
+
type: 'list-requests';
|
|
54
|
+
profileName: string;
|
|
55
|
+
limit?: number;
|
|
56
|
+
} | {
|
|
57
|
+
type: 'replay';
|
|
58
|
+
profileName: string;
|
|
59
|
+
requestId: string;
|
|
36
60
|
};
|
|
37
61
|
export type EventMessage = {
|
|
38
62
|
type: 'event';
|
|
@@ -98,6 +122,15 @@ export type DaemonResponse = {
|
|
|
98
122
|
} | {
|
|
99
123
|
type: 'version';
|
|
100
124
|
version: string;
|
|
125
|
+
} | {
|
|
126
|
+
type: 'request-list';
|
|
127
|
+
requests: StoredRequestMeta[];
|
|
128
|
+
} | {
|
|
129
|
+
type: 'replay-done';
|
|
130
|
+
requestId: string;
|
|
131
|
+
replayId: string;
|
|
132
|
+
status: number;
|
|
133
|
+
durationMs: number;
|
|
101
134
|
} | EventMessage | {
|
|
102
135
|
type: 'error';
|
|
103
136
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/daemon/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAC,MAAM,0BAA0B,CAAA;AAE7E,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,OAAO,CAAA;CAC9D,CAAA;AAID,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAA;AAErD,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/daemon/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/defs.d.ts
CHANGED
|
@@ -17,4 +17,8 @@ export declare const TUNLI_BIN_NEW_PATH: string;
|
|
|
17
17
|
export declare const RESTART_DUMP_FILEPATH: string;
|
|
18
18
|
export declare const IDENTITY_KEY_PATH: string;
|
|
19
19
|
export declare const IDENTITY_PUB_PATH: string;
|
|
20
|
+
export declare const REPLAY_META_FILEPATH: string;
|
|
21
|
+
export declare const REPLAY_BODY_LIMIT: number;
|
|
22
|
+
export declare const REPLAY_BUFFER_CAPACITY = 200;
|
|
23
|
+
export declare const REPLAY_META_TTL_MS: number;
|
|
20
24
|
//# sourceMappingURL=defs.d.ts.map
|
package/dist/lib/defs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../src/lib/defs.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,OAAO,CAAA;AAEjC,eAAO,MAAM,iBAAiB,OAAO,CAAA;AAErC,eAAO,MAAM,sBAAsB,0BAA0B,CAAA;AAE7D,eAAO,MAAM,yBAAyB,qEAAqE,CAAA;AAE3G,eAAO,MAAM,eAAe,WAAW,CAAA;AAEvC,eAAO,MAAM,iBAAiB,QAAsC,CAAC;AAErE,eAAO,MAAM,sBAAsB,QAA4C,CAAA;AAE/E,eAAO,MAAM,qBAAqB,QAAyD,CAAA;AAE3F,eAAO,MAAM,mBAAmB,cAAc,CAAA;AAC9C,eAAO,MAAM,oBAAoB,YAAY,CAAA;AAE7C,eAAO,MAAM,yBAAyB,UAalC,CAAC;AAEL,eAAO,MAAM,2BAA2B,oBAA2D,CAAA;AAEnG,eAAO,MAAM,kBAAkB,QAA4C,CAAA;AAE3E,eAAO,MAAM,aAAa,QAAoC,CAAA;AAC9D,eAAO,MAAM,cAAc,QAAuC,CAAA;AAClE,eAAO,MAAM,kBAAkB,QAA8C,CAAA;AAC7E,eAAO,MAAM,qBAAqB,QAA0C,CAAA;AAE5E,eAAO,MAAM,iBAAiB,QAA6C,CAAA;AAC3E,eAAO,MAAM,iBAAiB,QAA6C,CAAA"}
|
|
1
|
+
{"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../src/lib/defs.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,OAAO,CAAA;AAEjC,eAAO,MAAM,iBAAiB,OAAO,CAAA;AAErC,eAAO,MAAM,sBAAsB,0BAA0B,CAAA;AAE7D,eAAO,MAAM,yBAAyB,qEAAqE,CAAA;AAE3G,eAAO,MAAM,eAAe,WAAW,CAAA;AAEvC,eAAO,MAAM,iBAAiB,QAAsC,CAAC;AAErE,eAAO,MAAM,sBAAsB,QAA4C,CAAA;AAE/E,eAAO,MAAM,qBAAqB,QAAyD,CAAA;AAE3F,eAAO,MAAM,mBAAmB,cAAc,CAAA;AAC9C,eAAO,MAAM,oBAAoB,YAAY,CAAA;AAE7C,eAAO,MAAM,yBAAyB,UAalC,CAAC;AAEL,eAAO,MAAM,2BAA2B,oBAA2D,CAAA;AAEnG,eAAO,MAAM,kBAAkB,QAA4C,CAAA;AAE3E,eAAO,MAAM,aAAa,QAAoC,CAAA;AAC9D,eAAO,MAAM,cAAc,QAAuC,CAAA;AAClE,eAAO,MAAM,kBAAkB,QAA8C,CAAA;AAC7E,eAAO,MAAM,qBAAqB,QAA0C,CAAA;AAE5E,eAAO,MAAM,iBAAiB,QAA6C,CAAA;AAC3E,eAAO,MAAM,iBAAiB,QAA6C,CAAA;AAE3E,eAAO,MAAM,oBAAoB,QAAiD,CAAA;AAClF,eAAO,MAAM,iBAAiB,QAAc,CAAA;AAC5C,eAAO,MAAM,sBAAsB,MAAM,CAAA;AACzC,eAAO,MAAM,kBAAkB,QAAsB,CAAA"}
|
package/dist/lib/defs.js
CHANGED
|
@@ -32,4 +32,8 @@ export const TUNLI_BIN_NEW_PATH = resolve(TUNLI_BIN_DIR, 'tunli-main.update');
|
|
|
32
32
|
export const RESTART_DUMP_FILEPATH = resolve(GLOBAL_CONFIG_DIR, 'dump.json');
|
|
33
33
|
export const IDENTITY_KEY_PATH = resolve(GLOBAL_CONFIG_DIR, 'identity.key');
|
|
34
34
|
export const IDENTITY_PUB_PATH = resolve(GLOBAL_CONFIG_DIR, 'identity.pub');
|
|
35
|
+
export const REPLAY_META_FILEPATH = resolve(GLOBAL_CONFIG_DIR, 'replay-meta.json');
|
|
36
|
+
export const REPLAY_BODY_LIMIT = 1024 * 1024; // 1 MB
|
|
37
|
+
export const REPLAY_BUFFER_CAPACITY = 200;
|
|
38
|
+
export const REPLAY_META_TTL_MS = 24 * 60 * 60 * 1000; // 24h
|
|
35
39
|
//# sourceMappingURL=defs.js.map
|
package/dist/lib/defs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.js","sourceRoot":"","sources":["../../src/lib/defs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AACvC,OAAO,EAAC,OAAO,EAAC,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAC,UAAU,EAAC,MAAM,IAAI,CAAC;AAE9B,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAA;AAEjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAErC,MAAM,CAAC,MAAM,sBAAsB,GAAG,uBAAuB,CAAA;AAE7D,MAAM,CAAC,MAAM,yBAAyB,GAAG,kEAAkE,CAAA;AAE3G,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAA;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;AAE/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,EAAE,aAAa,CAAC,CAAA;AAE3F,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAA;AAC9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAA;AAE7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE;IAC7C,MAAM,YAAY,GAAa,EAAE,CAAA;IACjC,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACpD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IAEtB,GAAG,CAAC;QACF,MAAM,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACjG,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QACrC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,MAAK;QACvC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC,CAAA;IACvE,CAAC,QAAQ,mBAAmB,CAAC,GAAG,EAAE,KAAK,SAAS,IAAI,mBAAmB,CAAC,MAAM,EAAC;IAE/E,OAAO,YAAY,CAAA;AACrB,CAAC,CAAC,EAAE,CAAC;AAEL,MAAM,CAAC,MAAM,2BAA2B,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;AAEnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;AAE3E,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;AAClE,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAA;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAA;AAE5E,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAA;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"defs.js","sourceRoot":"","sources":["../../src/lib/defs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/Proxy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AASzD,eAAO,MAAM,WAAW,GACtB,QAAQ,aAAa,EACrB,iBAAiB,eAAe,KAC/B,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,IAAI,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"Proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/Proxy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AASzD,eAAO,MAAM,WAAW,GACtB,QAAQ,aAAa,EACrB,iBAAiB,eAAe,KAC/B,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,IAAI,CAAA;CAAE,CA6OpC,CAAA"}
|
package/dist/proxy/Proxy.js
CHANGED
|
@@ -2,7 +2,7 @@ import http from 'http';
|
|
|
2
2
|
import net from 'net';
|
|
3
3
|
import { io } from 'socket.io-client';
|
|
4
4
|
import { AppEventEmitter } from "#cli-app/AppEventEmitter";
|
|
5
|
-
import { PING_INTERVAL } from "#lib/defs";
|
|
5
|
+
import { PING_INTERVAL, REPLAY_BODY_LIMIT } from "#lib/defs";
|
|
6
6
|
export const createProxy = async (config, appEventEmitter) => {
|
|
7
7
|
const apiClient = config.apiClient;
|
|
8
8
|
const connectInfoResult = await apiClient.connectInfo();
|
|
@@ -91,6 +91,7 @@ export const createProxy = async (config, appEventEmitter) => {
|
|
|
91
91
|
socket.on('request-pipe-end', onPipeEnd);
|
|
92
92
|
socket.on('request-pipe-error', onPipeError);
|
|
93
93
|
const forward = () => {
|
|
94
|
+
const forwardStart = Date.now();
|
|
94
95
|
const localReq = http.request({
|
|
95
96
|
host: config.target.host,
|
|
96
97
|
port: config.target.port,
|
|
@@ -117,6 +118,21 @@ export const createProxy = async (config, appEventEmitter) => {
|
|
|
117
118
|
headers: localRes.headers,
|
|
118
119
|
httpVersion: localRes.httpVersion,
|
|
119
120
|
});
|
|
121
|
+
const contentType = (meta.headers['content-type'] ?? '').toLowerCase();
|
|
122
|
+
const isExcluded = contentType.includes('multipart/form-data') || contentType.includes('application/octet-stream');
|
|
123
|
+
const bodySize = bodyChunks.reduce((sum, c) => sum + c.length, 0);
|
|
124
|
+
const body = (!isExcluded && bodySize > 0 && bodySize <= REPLAY_BODY_LIMIT)
|
|
125
|
+
? Buffer.concat(bodyChunks).toString('utf-8')
|
|
126
|
+
: null;
|
|
127
|
+
appEventEmitter.emit('captured-request', {
|
|
128
|
+
requestId,
|
|
129
|
+
method: meta.method,
|
|
130
|
+
path: meta.path,
|
|
131
|
+
headers: meta.headers,
|
|
132
|
+
body,
|
|
133
|
+
bodyUnavailable: isExcluded || (bodySize > REPLAY_BODY_LIMIT),
|
|
134
|
+
response: { status: localRes.statusCode ?? 200, durationMs: Date.now() - forwardStart },
|
|
135
|
+
});
|
|
120
136
|
localRes.on('data', (chunk) => socket.emit('response-pipe', requestId, chunk));
|
|
121
137
|
localRes.on('end', () => socket.emit('response-pipe-end', requestId));
|
|
122
138
|
localRes.on('error', (e) => socket.emit('response-pipe-error', requestId, e.message));
|
package/dist/proxy/Proxy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Proxy.js","sourceRoot":"","sources":["../../src/proxy/Proxy.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAC,EAAE,EAAc,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"Proxy.js","sourceRoot":"","sources":["../../src/proxy/Proxy.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED