@mt0926/node-network-devtools 0.2.0 → 0.3.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.
Files changed (51) hide show
  1. package/README.md +96 -1
  2. package/dist/cjs/adapters/axios.js +2 -0
  3. package/dist/cjs/adapters/axios.js.map +1 -0
  4. package/dist/cjs/adapters/nextjs.js +133 -0
  5. package/dist/cjs/adapters/nextjs.js.map +1 -0
  6. package/dist/cjs/cli.js +223 -0
  7. package/dist/cjs/cli.js.map +1 -0
  8. package/dist/cjs/config.js +150 -0
  9. package/dist/cjs/config.js.map +1 -0
  10. package/dist/cjs/context/context-manager.js +139 -0
  11. package/dist/cjs/context/context-manager.js.map +1 -0
  12. package/dist/cjs/gui/browser-detector.js +263 -0
  13. package/dist/cjs/gui/browser-detector.js.map +1 -0
  14. package/dist/cjs/gui/browser-launcher.js +365 -0
  15. package/dist/cjs/gui/browser-launcher.js.map +1 -0
  16. package/dist/cjs/gui/event-bridge.js +197 -0
  17. package/dist/cjs/gui/event-bridge.js.map +1 -0
  18. package/dist/cjs/gui/port-utils.js +85 -0
  19. package/dist/cjs/gui/port-utils.js.map +1 -0
  20. package/dist/cjs/gui/server.js +251 -0
  21. package/dist/cjs/gui/server.js.map +1 -0
  22. package/dist/cjs/gui/websocket-hub.js +336 -0
  23. package/dist/cjs/gui/websocket-hub.js.map +1 -0
  24. package/dist/cjs/index.js +170 -0
  25. package/dist/cjs/index.js.map +1 -0
  26. package/dist/cjs/interceptors/http-patcher.js +275 -0
  27. package/dist/cjs/interceptors/http-patcher.js.map +1 -0
  28. package/dist/cjs/interceptors/undici-patcher.js +362 -0
  29. package/dist/cjs/interceptors/undici-patcher.js.map +1 -0
  30. package/dist/cjs/package.json +3 -0
  31. package/dist/cjs/register.js +95 -0
  32. package/dist/cjs/register.js.map +1 -0
  33. package/dist/cjs/store/ring-buffer.js +241 -0
  34. package/dist/cjs/store/ring-buffer.js.map +1 -0
  35. package/dist/cjs/test-setup.js +8 -0
  36. package/dist/cjs/test-setup.js.map +1 -0
  37. package/dist/cjs/utils/module-compat.js +83 -0
  38. package/dist/cjs/utils/module-compat.js.map +1 -0
  39. package/dist/esm/cli.js +22 -4
  40. package/dist/esm/cli.js.map +1 -1
  41. package/dist/esm/gui/server.js +25 -6
  42. package/dist/esm/gui/server.js.map +1 -1
  43. package/dist/esm/interceptors/undici-patcher.js +9 -4
  44. package/dist/esm/interceptors/undici-patcher.js.map +1 -1
  45. package/dist/esm/utils/module-compat.js +78 -0
  46. package/dist/esm/utils/module-compat.js.map +1 -0
  47. package/dist/types/gui/server.d.ts.map +1 -1
  48. package/dist/types/interceptors/undici-patcher.d.ts.map +1 -1
  49. package/dist/types/utils/module-compat.d.ts +34 -0
  50. package/dist/types/utils/module-compat.d.ts.map +1 -0
  51. package/package.json +22 -8
@@ -0,0 +1,78 @@
1
+ /**
2
+ * 模块兼容性辅助工具
3
+ *
4
+ * 提供 ESM 和 CommonJS 之间的兼容性支持
5
+ *
6
+ * 注意:这个模块使用运行时检测来确定当前的模块系统
7
+ * 在 CommonJS 构建中,全局变量 __filename、__dirname 和 require 会自动可用
8
+ * 在 ESM 构建中,需要使用 import.meta.url 和 createRequire
9
+ */
10
+ import { fileURLToPath } from 'node:url';
11
+ import { dirname } from 'node:path';
12
+ import { createRequire } from 'node:module';
13
+ /**
14
+ * 检测当前是否在 CommonJS 环境中
15
+ */
16
+ function isCommonJS() {
17
+ // 在 CommonJS 中,__filename 是全局可用的
18
+ // @ts-ignore - __filename 在 CommonJS 中可用
19
+ return typeof __filename !== 'undefined';
20
+ }
21
+ /**
22
+ * 获取当前文件的 __filename
23
+ *
24
+ * 自动检测模块系统:
25
+ * - 在 CommonJS 中使用全局 __filename
26
+ * - 在 ESM 中需要通过其他方式获取(调用者需要提供 import.meta.url)
27
+ */
28
+ export function getFilename(importMetaUrl) {
29
+ // 如果在 CommonJS 环境中,直接使用全局 __filename
30
+ if (isCommonJS()) {
31
+ // @ts-ignore - __filename 在 CommonJS 中可用
32
+ return __filename;
33
+ }
34
+ // 在 ESM 环境中,需要 import.meta.url
35
+ if (importMetaUrl) {
36
+ return fileURLToPath(importMetaUrl);
37
+ }
38
+ throw new Error('在 ESM 环境中必须提供 import.meta.url 参数');
39
+ }
40
+ /**
41
+ * 获取当前文件的 __dirname
42
+ *
43
+ * 自动检测模块系统:
44
+ * - 在 CommonJS 中使用全局 __dirname
45
+ * - 在 ESM 中需要通过其他方式获取(调用者需要提供 import.meta.url)
46
+ */
47
+ export function getDirname(importMetaUrl) {
48
+ // 如果在 CommonJS 环境中,直接使用全局 __dirname
49
+ if (isCommonJS()) {
50
+ // @ts-ignore - __dirname 在 CommonJS 中可用
51
+ return __dirname;
52
+ }
53
+ // 在 ESM 环境中,需要 import.meta.url
54
+ if (importMetaUrl) {
55
+ return dirname(fileURLToPath(importMetaUrl));
56
+ }
57
+ throw new Error('在 ESM 环境中必须提供 import.meta.url 参数');
58
+ }
59
+ /**
60
+ * 创建 require 函数
61
+ *
62
+ * 自动检测模块系统:
63
+ * - 在 CommonJS 中使用全局 require
64
+ * - 在 ESM 中使用 createRequire(调用者需要提供 import.meta.url)
65
+ */
66
+ export function getRequire(importMetaUrl) {
67
+ // 如果在 CommonJS 环境中,直接使用全局 require
68
+ if (isCommonJS()) {
69
+ // @ts-ignore - require 在 CommonJS 中可用
70
+ return require;
71
+ }
72
+ // 在 ESM 环境中,需要 import.meta.url
73
+ if (importMetaUrl) {
74
+ return createRequire(importMetaUrl);
75
+ }
76
+ throw new Error('在 ESM 环境中必须提供 import.meta.url 参数');
77
+ }
78
+ //# sourceMappingURL=module-compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-compat.js","sourceRoot":"","sources":["../../../src/utils/module-compat.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;GAEG;AACH,SAAS,UAAU;IACjB,iCAAiC;IACjC,yCAAyC;IACzC,OAAO,OAAO,UAAU,KAAK,WAAW,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,aAAsB;IAChD,qCAAqC;IACrC,IAAI,UAAU,EAAE,EAAE,CAAC;QACjB,yCAAyC;QACzC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,+BAA+B;IAC/B,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,aAAsB;IAC/C,oCAAoC;IACpC,IAAI,UAAU,EAAE,EAAE,CAAC;QACjB,wCAAwC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,+BAA+B;IAC/B,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,aAAsB;IAC/C,kCAAkC;IAClC,IAAI,UAAU,EAAE,EAAE,CAAC;QACjB,sCAAsC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,+BAA+B;IAC/B,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;AACtD,CAAC"}
@@ -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;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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/gui/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAyBtE;;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"}
@@ -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;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"}
1
+ {"version":3,"file":"undici-patcher.d.ts","sourceRoot":"","sources":["../../../src/interceptors/undici-patcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2BH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI,CAEvE;AAmTD;;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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * 模块兼容性辅助工具
3
+ *
4
+ * 提供 ESM 和 CommonJS 之间的兼容性支持
5
+ *
6
+ * 注意:这个模块使用运行时检测来确定当前的模块系统
7
+ * 在 CommonJS 构建中,全局变量 __filename、__dirname 和 require 会自动可用
8
+ * 在 ESM 构建中,需要使用 import.meta.url 和 createRequire
9
+ */
10
+ /**
11
+ * 获取当前文件的 __filename
12
+ *
13
+ * 自动检测模块系统:
14
+ * - 在 CommonJS 中使用全局 __filename
15
+ * - 在 ESM 中需要通过其他方式获取(调用者需要提供 import.meta.url)
16
+ */
17
+ export declare function getFilename(importMetaUrl?: string): string;
18
+ /**
19
+ * 获取当前文件的 __dirname
20
+ *
21
+ * 自动检测模块系统:
22
+ * - 在 CommonJS 中使用全局 __dirname
23
+ * - 在 ESM 中需要通过其他方式获取(调用者需要提供 import.meta.url)
24
+ */
25
+ export declare function getDirname(importMetaUrl?: string): string;
26
+ /**
27
+ * 创建 require 函数
28
+ *
29
+ * 自动检测模块系统:
30
+ * - 在 CommonJS 中使用全局 require
31
+ * - 在 ESM 中使用 createRequire(调用者需要提供 import.meta.url)
32
+ */
33
+ export declare function getRequire(importMetaUrl?: string): NodeRequire;
34
+ //# sourceMappingURL=module-compat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-compat.d.ts","sourceRoot":"","sources":["../../../src/utils/module-compat.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAeH;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAa1D;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAazD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,WAAW,CAa9D"}
package/package.json CHANGED
@@ -1,18 +1,31 @@
1
1
  {
2
2
  "name": "@mt0926/node-network-devtools",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "🔍 Node.js network request monitoring tool with Chrome DevTools integration and built-in Web GUI",
5
5
  "type": "module",
6
- "main": "./dist/esm/index.js",
6
+ "main": "./dist/cjs/index.js",
7
7
  "module": "./dist/esm/index.js",
8
8
  "types": "./dist/types/index.d.ts",
9
9
  "exports": {
10
10
  ".": {
11
- "import": "./dist/esm/index.js",
12
- "types": "./dist/types/index.d.ts"
11
+ "import": {
12
+ "types": "./dist/types/index.d.ts",
13
+ "default": "./dist/esm/index.js"
14
+ },
15
+ "require": {
16
+ "types": "./dist/types/index.d.ts",
17
+ "default": "./dist/cjs/index.js"
18
+ }
13
19
  },
14
20
  "./register": {
15
- "import": "./dist/esm/register.js"
21
+ "import": {
22
+ "types": "./dist/types/register.d.ts",
23
+ "default": "./dist/esm/register.js"
24
+ },
25
+ "require": {
26
+ "types": "./dist/types/register.d.ts",
27
+ "default": "./dist/cjs/register.js"
28
+ }
16
29
  }
17
30
  },
18
31
  "bin": {
@@ -23,12 +36,13 @@
23
36
  "dist",
24
37
  "templates",
25
38
  "README.md",
26
- "LICENSE",
27
- "BUILD.md"
39
+ "LICENSE"
28
40
  ],
29
41
  "scripts": {
30
- "build": "pnpm build:esm && pnpm build:types && pnpm build:gui",
42
+ "build": "pnpm build:esm && pnpm build:cjs && pnpm build:types && pnpm build:gui && pnpm build:cjs-package",
31
43
  "build:esm": "tsc -p tsconfig.esm.json",
44
+ "build:cjs": "tsc -p tsconfig.cjs.json",
45
+ "build:cjs-package": "node scripts/create-cjs-package.js",
32
46
  "build:types": "tsc -p tsconfig.types.json",
33
47
  "build:gui": "cd packages/gui && pnpm build",
34
48
  "test": "vitest run",