@mt0926/node-network-devtools 0.1.1 → 0.1.3
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 +91 -19
- package/README.zh-CN.md +95 -23
- package/dist/esm/adapters/axios.js +2 -0
- package/dist/esm/adapters/axios.js.map +1 -0
- package/dist/esm/config.js +14 -6
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/gui/browser-detector.js +256 -0
- package/dist/esm/gui/browser-detector.js.map +1 -0
- package/dist/esm/gui/browser-launcher.js +265 -78
- package/dist/esm/gui/browser-launcher.js.map +1 -1
- package/dist/esm/gui/server.js.map +1 -1
- package/dist/esm/index.js +6 -10
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interceptors/http-patcher.js +68 -3
- package/dist/esm/interceptors/http-patcher.js.map +1 -1
- package/dist/esm/interceptors/undici-patcher.js +20 -0
- package/dist/esm/interceptors/undici-patcher.js.map +1 -1
- package/dist/esm/register.js +5 -47
- package/dist/esm/register.js.map +1 -1
- package/dist/types/adapters/axios.d.ts +2 -0
- package/dist/types/adapters/axios.d.ts.map +1 -0
- package/dist/types/config.d.ts +15 -6
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/gui/browser-detector.d.ts +68 -0
- package/dist/types/gui/browser-detector.d.ts.map +1 -0
- package/dist/types/gui/browser-launcher.d.ts +58 -13
- package/dist/types/gui/browser-launcher.d.ts.map +1 -1
- package/dist/types/gui/server.d.ts +0 -1
- package/dist/types/gui/server.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/interceptors/http-patcher.d.ts.map +1 -1
- package/dist/types/interceptors/undici-patcher.d.ts.map +1 -1
- package/dist/types/register.d.ts +2 -6
- package/dist/types/register.d.ts.map +1 -1
- package/package.json +1 -5
- package/BUILD.md +0 -204
- package/dist/esm/cdp/cdp-bridge.js +0 -312
- package/dist/esm/cdp/cdp-bridge.js.map +0 -1
- package/dist/types/cdp/cdp-bridge.d.ts +0 -86
- package/dist/types/cdp/cdp-bridge.d.ts.map +0 -1
|
@@ -1,14 +1,44 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 浏览器启动器模块
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* 使用原生浏览器检测和启动机制打开 GUI
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* 浏览器未检测到错误
|
|
8
|
+
*
|
|
9
|
+
* 当系统中未检测到任何支持的浏览器时抛出此错误
|
|
10
|
+
*/
|
|
11
|
+
export declare class BrowserNotFoundError extends Error {
|
|
12
|
+
constructor();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 浏览器启动失败错误
|
|
16
|
+
*
|
|
17
|
+
* 当浏览器启动过程中发生错误时抛出此错误
|
|
18
|
+
*/
|
|
19
|
+
export declare class BrowserLaunchError extends Error {
|
|
20
|
+
readonly cause?: Error | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* @param message 错误消息
|
|
23
|
+
* @param cause 原始错误(可选)
|
|
24
|
+
*/
|
|
25
|
+
constructor(message: string, cause?: Error | undefined);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 浏览器窗口配置
|
|
29
|
+
*/
|
|
30
|
+
export interface BrowserWindowConfig {
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
title: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 浏览器启动选项
|
|
8
37
|
*/
|
|
9
|
-
export interface
|
|
10
|
-
|
|
11
|
-
|
|
38
|
+
export interface BrowserLaunchOptions {
|
|
39
|
+
url: string;
|
|
40
|
+
windowConfig: BrowserWindowConfig;
|
|
41
|
+
userDataDir?: string;
|
|
12
42
|
}
|
|
13
43
|
/**
|
|
14
44
|
* 浏览器启动器接口
|
|
@@ -34,19 +64,34 @@ export declare function createBrowserLauncher(): IBrowserLauncher;
|
|
|
34
64
|
* 构建带 WebSocket 端口参数的 GUI URL
|
|
35
65
|
*/
|
|
36
66
|
export declare function buildGUIUrl(host: string, guiPort: number, wsPort: number): string;
|
|
37
|
-
/**
|
|
38
|
-
* 浏览器启动选项
|
|
39
|
-
*/
|
|
40
|
-
export interface BrowserLauncherOptions {
|
|
41
|
-
/** 是否使用 Puppeteer */
|
|
42
|
-
usePuppeteer?: boolean;
|
|
43
|
-
}
|
|
44
67
|
/**
|
|
45
68
|
* 打开浏览器(便捷函数)
|
|
46
69
|
*/
|
|
47
|
-
export declare function openBrowser(url: string
|
|
70
|
+
export declare function openBrowser(url: string): Promise<void>;
|
|
48
71
|
/**
|
|
49
72
|
* 关闭浏览器(便捷函数)
|
|
50
73
|
*/
|
|
51
74
|
export declare function closeBrowser(): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* 构建浏览器启动参数(导出用于测试)
|
|
77
|
+
*
|
|
78
|
+
* @param options 启动选项
|
|
79
|
+
* @returns Chrome 命令行参数数组
|
|
80
|
+
*/
|
|
81
|
+
export declare function buildLaunchArgs(options: BrowserLaunchOptions): string[];
|
|
82
|
+
/**
|
|
83
|
+
* 创建用户数据目录路径
|
|
84
|
+
*
|
|
85
|
+
* 生成一个唯一的临时目录路径用于浏览器用户数据。
|
|
86
|
+
* 使用 nanoid 生成 8 位随机 ID 确保每次启动都使用独立的会话。
|
|
87
|
+
*
|
|
88
|
+
* @returns 用户数据目录的完整路径,格式:`{tmpdir}/nnd-browser-{sessionId}`
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* const userDataDir = createUserDataDir();
|
|
93
|
+
* // 返回类似:/tmp/nnd-browser-a1b2c3d4
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare function createUserDataDir(): string;
|
|
52
97
|
//# sourceMappingURL=browser-launcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-launcher.d.ts","sourceRoot":"","sources":["../../../src/gui/browser-launcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"browser-launcher.d.ts","sourceRoot":"","sources":["../../../src/gui/browser-launcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;;CAO9C;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAKE,KAAK,CAAC,EAAE,KAAK;IAJ1D;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAkB,KAAK,CAAC,EAAE,KAAK,YAAA;CAM3D;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,mBAAmB,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,IAAI,OAAO,CAAC;CACnB;AAuPD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,gBAAgB,CAKrD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAK1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CAExD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5D;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAGlD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,EAAE,CAuCvE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/gui/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMtE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/gui/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMtE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,OAAO,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,SAAS,IAAI,OAAO,CAAC;IACrB,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,IAAI,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,IAAI,MAAM,GAAG,IAAI,CAAC;CAC5B;AAkOD;;GAEG;AACH,wBAAgB,YAAY,IAAI,UAAU,CAKzC;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAKpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,CAAC,EAAE,aAAa,EACrB,WAAW,CAAC,EAAE,YAAY,EAC1B,IAAI,CAAC,EAAE,MAAM,GACZ,UAAU,CAEZ"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -8,17 +8,16 @@ export { getRequestStore, resetRequestStore, createRequestStore, type IRequestSt
|
|
|
8
8
|
export { generateTraceId, getCurrentTraceId, getCurrentContext, startTrace, runWithContext, runWithTrace, runWithTraceAsync, updateContextMetadata, getTraceDuration, createTraceIdGetter, ContextManager, type TraceContext, } from './context/context-manager.js';
|
|
9
9
|
export { HttpPatcher } from './interceptors/http-patcher.js';
|
|
10
10
|
export { UndiciPatcher } from './interceptors/undici-patcher.js';
|
|
11
|
-
export { getCDPBridge, resetCDPBridge, createCDPBridge, isInspectorEnabled, getInspectorUrl, type ICDPBridge, type CDPCallFrame, type CDPStackTrace, type CDPRequest, type CDPResponse, } from './cdp/cdp-bridge.js';
|
|
12
11
|
export { NextJsAdapter, isNextJsEnvironment, getCurrentRoute, runWithRoute, runWithRouteAsync, extractNextJsOptions, extractNextJsMetadata, createInstrumentationConfig, type NextJsMetadata, type NextJsFetchOptions, } from './adapters/nextjs.js';
|
|
13
12
|
export { getGUIServer, resetGUIServer, createGUIServer, type IGUIServer, type GUIServerConfig, } from './gui/server.js';
|
|
14
13
|
export { getWebSocketHub, resetWebSocketHub, createWebSocketHub, createRequestStartMessage, createRequestCompleteMessage, createRequestErrorMessage, createInitialDataMessage, createClearMessage, type IWebSocketHub, type WSMessage, type WSMessageType, } from './gui/websocket-hub.js';
|
|
15
14
|
export { getEventBridge, resetEventBridge, createEventBridge, type IEventBridge, } from './gui/event-bridge.js';
|
|
16
|
-
export { openBrowser, closeBrowser,
|
|
15
|
+
export { openBrowser, closeBrowser, } from './gui/browser-launcher.js';
|
|
17
16
|
export { getAvailablePort, isPortAvailable, } from './gui/port-utils.js';
|
|
18
17
|
/**
|
|
19
18
|
* 快速初始化函数
|
|
20
19
|
*
|
|
21
|
-
*
|
|
20
|
+
* 一键安装所有拦截器
|
|
22
21
|
*/
|
|
23
22
|
export declare function install(): Promise<void>;
|
|
24
23
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,KAAK,MAAM,EACZ,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,KAAK,YAAY,GAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGjE,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,KAAK,MAAM,EACZ,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,KAAK,YAAY,GAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGjE,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,EACf,KAAK,UAAU,EACf,KAAK,eAAe,GACrB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,aAAa,GACnB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,WAAW,EACX,YAAY,GACb,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,gBAAgB,EAChB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B;;;;GAIG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAc7C;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,OAAO,CAAC,EAAE;IACvC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAyB5D;AAED;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAY7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-patcher.d.ts","sourceRoot":"","sources":["../../../src/interceptors/http-patcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI,CAEvE;AAkDD;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"http-patcher.d.ts","sourceRoot":"","sources":["../../../src/interceptors/http-patcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI,CAEvE;AAkDD;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CA0M9B;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAOhC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;CAKvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"undici-patcher.d.ts","sourceRoot":"","sources":["../../../src/interceptors/undici-patcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+BH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI,CAEvE;
|
|
1
|
+
{"version":3,"file":"undici-patcher.d.ts","sourceRoot":"","sources":["../../../src/interceptors/undici-patcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+BH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI,CAEvE;AA0SD;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CA8B9B;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAQhC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAK3C;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;CAMzB,CAAC"}
|
package/dist/types/register.d.ts
CHANGED
|
@@ -4,15 +4,11 @@
|
|
|
4
4
|
* 使用方式:node -r node-network-devtools/register your-script.js
|
|
5
5
|
* 或:node --import node-network-devtools/register your-script.js
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
* - Node.js 20.18.0+ 版本
|
|
9
|
-
* - --experimental-network-inspection 标志
|
|
10
|
-
* - Chrome DevTools 目前还不支持显示 Network 事件(功能待实现)
|
|
7
|
+
* 注意:此工具仅用于开发环境,不推荐在生产环境中使用。
|
|
11
8
|
*/
|
|
12
9
|
import { getConfig } from './config.js';
|
|
13
|
-
import { getCDPBridge } from './cdp/cdp-bridge.js';
|
|
14
10
|
import { getRequestStore } from './store/ring-buffer.js';
|
|
15
11
|
import { getGUIServer } from './gui/server.js';
|
|
16
12
|
import { getEventBridge } from './gui/event-bridge.js';
|
|
17
|
-
export { getConfig, getRequestStore,
|
|
13
|
+
export { getConfig, getRequestStore, getGUIServer, getEventBridge };
|
|
18
14
|
//# sourceMappingURL=register.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAmFvD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mt0926/node-network-devtools",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "🔍 Node.js network request monitoring tool with Chrome DevTools integration and built-in Web GUI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/esm/index.js",
|
|
@@ -93,11 +93,7 @@
|
|
|
93
93
|
"dependencies": {
|
|
94
94
|
"@mswjs/interceptors": "^0.40.0",
|
|
95
95
|
"nanoid": "^5.0.4",
|
|
96
|
-
"open": "^10.1.0",
|
|
97
96
|
"undici": "^7.18.2",
|
|
98
97
|
"ws": "^8.18.0"
|
|
99
|
-
},
|
|
100
|
-
"optionalDependencies": {
|
|
101
|
-
"puppeteer": "^23.0.0"
|
|
102
98
|
}
|
|
103
99
|
}
|
package/BUILD.md
DELETED
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
# 构建说明
|
|
2
|
-
|
|
3
|
-
## 完整构建
|
|
4
|
-
|
|
5
|
-
构建整个项目(包括 GUI):
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
pnpm build
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
这会执行以下步骤:
|
|
12
|
-
1. `pnpm build:esm` - 构建 ESM 模块
|
|
13
|
-
2. `pnpm build:types` - 生成 TypeScript 类型定义
|
|
14
|
-
3. `pnpm build:gui` - 构建 Web GUI 前端
|
|
15
|
-
|
|
16
|
-
## 分步构建
|
|
17
|
-
|
|
18
|
-
### 1. 构建核心模块
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
pnpm build:esm
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
生成 ESM 格式的 JavaScript 文件到 `dist/esm/`
|
|
25
|
-
|
|
26
|
-
### 2. 生成类型定义
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
pnpm build:types
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
生成 TypeScript 类型定义文件到 `dist/types/`
|
|
33
|
-
|
|
34
|
-
### 3. 构建 GUI
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
pnpm build:gui
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
或者直接在 GUI 目录构建:
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
cd packages/gui
|
|
44
|
-
pnpm build
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
生成 GUI 静态资源到 `dist/gui/`
|
|
48
|
-
|
|
49
|
-
## 构建产物
|
|
50
|
-
|
|
51
|
-
构建完成后,`dist` 目录结构如下:
|
|
52
|
-
|
|
53
|
-
```
|
|
54
|
-
dist/
|
|
55
|
-
├── esm/ # ESM 模块
|
|
56
|
-
│ ├── index.js
|
|
57
|
-
│ ├── cli.js
|
|
58
|
-
│ ├── register.js
|
|
59
|
-
│ └── ...
|
|
60
|
-
├── types/ # TypeScript 类型定义
|
|
61
|
-
│ ├── index.d.ts
|
|
62
|
-
│ └── ...
|
|
63
|
-
└── gui/ # Web GUI 静态资源
|
|
64
|
-
├── index.html
|
|
65
|
-
└── assets/
|
|
66
|
-
├── index.css
|
|
67
|
-
└── index.js
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## 开发模式
|
|
71
|
-
|
|
72
|
-
### 开发核心模块
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
# 监听模式(需要手动添加)
|
|
76
|
-
pnpm build:esm --watch
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### 开发 GUI
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
cd packages/gui
|
|
83
|
-
pnpm dev
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
这会启动 Vite 开发服务器,支持热更新。
|
|
87
|
-
|
|
88
|
-
## 清理构建产物
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
pnpm clean
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
这会删除整个 `dist` 目录。
|
|
95
|
-
|
|
96
|
-
## 常见问题
|
|
97
|
-
|
|
98
|
-
### Q: GUI 页面显示 404 错误?
|
|
99
|
-
|
|
100
|
-
A: 确保已经构建了 GUI:
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
pnpm build:gui
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### Q: 修改了 GUI 代码但没有生效?
|
|
107
|
-
|
|
108
|
-
A: 需要重新构建 GUI:
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
|
-
cd packages/gui
|
|
112
|
-
pnpm build
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### Q: 如何只构建核心模块而不构建 GUI?
|
|
116
|
-
|
|
117
|
-
A: 使用分步构建:
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
pnpm build:esm
|
|
121
|
-
pnpm build:types
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
### Q: 构建失败怎么办?
|
|
125
|
-
|
|
126
|
-
A: 检查以下几点:
|
|
127
|
-
1. 确保安装了所有依赖:`pnpm install`
|
|
128
|
-
2. 确保 Node.js 版本 >= 18.0.0
|
|
129
|
-
3. 清理后重新构建:`pnpm clean && pnpm build`
|
|
130
|
-
|
|
131
|
-
## CI/CD 集成
|
|
132
|
-
|
|
133
|
-
在 CI/CD 流程中,建议使用完整构建:
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
# 安装依赖
|
|
137
|
-
pnpm install
|
|
138
|
-
|
|
139
|
-
# 完整构建
|
|
140
|
-
pnpm build
|
|
141
|
-
|
|
142
|
-
# 运行测试
|
|
143
|
-
pnpm test:all
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
## 发布前检查
|
|
147
|
-
|
|
148
|
-
发布前确保:
|
|
149
|
-
|
|
150
|
-
1. ✅ 所有代码已提交
|
|
151
|
-
2. ✅ 运行完整构建:`pnpm build`
|
|
152
|
-
3. ✅ 运行所有测试:`pnpm test:all`
|
|
153
|
-
4. ✅ 检查 `dist` 目录包含所有必要文件
|
|
154
|
-
5. ✅ 更新版本号
|
|
155
|
-
6. ✅ 更新 CHANGELOG
|
|
156
|
-
|
|
157
|
-
## 性能优化
|
|
158
|
-
|
|
159
|
-
### 并行构建
|
|
160
|
-
|
|
161
|
-
如果需要加速构建,可以并行执行:
|
|
162
|
-
|
|
163
|
-
```bash
|
|
164
|
-
# 使用 npm-run-all(需要安装)
|
|
165
|
-
npm-run-all --parallel build:esm build:types build:gui
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### 增量构建
|
|
169
|
-
|
|
170
|
-
TypeScript 支持增量构建,可以加快重复构建速度:
|
|
171
|
-
|
|
172
|
-
```bash
|
|
173
|
-
# 已在 tsconfig 中启用 incremental: true
|
|
174
|
-
pnpm build:esm
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
## 故障排查
|
|
178
|
-
|
|
179
|
-
### GUI 构建失败
|
|
180
|
-
|
|
181
|
-
```bash
|
|
182
|
-
# 清理 GUI 缓存
|
|
183
|
-
cd packages/gui
|
|
184
|
-
rm -rf node_modules .vite dist
|
|
185
|
-
pnpm install
|
|
186
|
-
pnpm build
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
### TypeScript 编译错误
|
|
190
|
-
|
|
191
|
-
```bash
|
|
192
|
-
# 清理 TypeScript 缓存
|
|
193
|
-
rm -rf dist
|
|
194
|
-
rm -f tsconfig.tsbuildinfo
|
|
195
|
-
pnpm build
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
### 依赖问题
|
|
199
|
-
|
|
200
|
-
```bash
|
|
201
|
-
# 清理所有依赖并重新安装
|
|
202
|
-
rm -rf node_modules packages/gui/node_modules
|
|
203
|
-
pnpm install
|
|
204
|
-
```
|