weixin-devtools-mcp 0.0.1 → 0.1.1

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 (183) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +127 -128
  3. package/build/MiniProgramContext.d.ts +317 -0
  4. package/build/MiniProgramContext.d.ts.map +1 -0
  5. package/build/MiniProgramContext.js +696 -0
  6. package/build/MiniProgramContext.js.map +1 -0
  7. package/build/collectors/Collector.d.ts +127 -0
  8. package/build/collectors/Collector.d.ts.map +1 -0
  9. package/build/collectors/Collector.js +252 -0
  10. package/build/collectors/Collector.js.map +1 -0
  11. package/build/collectors/ConsoleCollector.d.ts +104 -0
  12. package/build/collectors/ConsoleCollector.d.ts.map +1 -0
  13. package/build/collectors/ConsoleCollector.js +157 -0
  14. package/build/collectors/ConsoleCollector.js.map +1 -0
  15. package/build/collectors/NetworkCollector.d.ts +167 -0
  16. package/build/collectors/NetworkCollector.d.ts.map +1 -0
  17. package/build/collectors/NetworkCollector.js +265 -0
  18. package/build/collectors/NetworkCollector.js.map +1 -0
  19. package/build/collectors/index.d.ts +13 -0
  20. package/build/collectors/index.d.ts.map +1 -0
  21. package/build/collectors/index.js +17 -0
  22. package/build/collectors/index.js.map +1 -0
  23. package/build/config/tool-profile.d.ts +30 -0
  24. package/build/config/tool-profile.d.ts.map +1 -0
  25. package/build/config/tool-profile.js +138 -0
  26. package/build/config/tool-profile.js.map +1 -0
  27. package/build/connection/adapters.d.ts +3 -0
  28. package/build/connection/adapters.d.ts.map +1 -0
  29. package/build/connection/adapters.js +134 -0
  30. package/build/connection/adapters.js.map +1 -0
  31. package/build/connection/errors.d.ts +34 -0
  32. package/build/connection/errors.d.ts.map +1 -0
  33. package/build/connection/errors.js +101 -0
  34. package/build/connection/errors.js.map +1 -0
  35. package/build/connection/health-probe.d.ts +4 -0
  36. package/build/connection/health-probe.d.ts.map +1 -0
  37. package/build/connection/health-probe.js +60 -0
  38. package/build/connection/health-probe.js.map +1 -0
  39. package/build/connection/index.d.ts +6 -0
  40. package/build/connection/index.d.ts.map +1 -0
  41. package/build/connection/index.js +6 -0
  42. package/build/connection/index.js.map +1 -0
  43. package/build/connection/manager.d.ts +19 -0
  44. package/build/connection/manager.d.ts.map +1 -0
  45. package/build/connection/manager.js +227 -0
  46. package/build/connection/manager.js.map +1 -0
  47. package/build/connection/resolver.d.ts +3 -0
  48. package/build/connection/resolver.d.ts.map +1 -0
  49. package/build/connection/resolver.js +99 -0
  50. package/build/connection/resolver.js.map +1 -0
  51. package/build/connection/types.d.ts +95 -0
  52. package/build/connection/types.d.ts.map +1 -0
  53. package/build/connection/types.js +16 -0
  54. package/build/connection/types.js.map +1 -0
  55. package/build/core/assertion.d.ts +22 -0
  56. package/build/core/assertion.d.ts.map +1 -0
  57. package/build/core/assertion.js +318 -0
  58. package/build/core/assertion.js.map +1 -0
  59. package/build/core/connection.d.ts +37 -0
  60. package/build/core/connection.d.ts.map +1 -0
  61. package/build/core/connection.js +745 -0
  62. package/build/core/connection.js.map +1 -0
  63. package/build/core/index.d.ts +13 -0
  64. package/build/core/index.d.ts.map +1 -0
  65. package/build/core/index.js +19 -0
  66. package/build/core/index.js.map +1 -0
  67. package/build/core/interaction.d.ts +22 -0
  68. package/build/core/interaction.d.ts.map +1 -0
  69. package/build/core/interaction.js +185 -0
  70. package/build/core/interaction.js.map +1 -0
  71. package/build/core/navigation.d.ts +26 -0
  72. package/build/core/navigation.d.ts.map +1 -0
  73. package/build/core/navigation.js +210 -0
  74. package/build/core/navigation.js.map +1 -0
  75. package/build/core/query.d.ts +14 -0
  76. package/build/core/query.d.ts.map +1 -0
  77. package/build/core/query.js +191 -0
  78. package/build/core/query.js.map +1 -0
  79. package/build/core/screenshot.d.ts +10 -0
  80. package/build/core/screenshot.d.ts.map +1 -0
  81. package/build/core/screenshot.js +93 -0
  82. package/build/core/screenshot.js.map +1 -0
  83. package/build/core/snapshot.d.ts +17 -0
  84. package/build/core/snapshot.d.ts.map +1 -0
  85. package/build/core/snapshot.js +225 -0
  86. package/build/core/snapshot.js.map +1 -0
  87. package/build/core/types.d.ts +250 -0
  88. package/build/core/types.d.ts.map +1 -0
  89. package/build/core/types.js +6 -0
  90. package/build/core/types.js.map +1 -0
  91. package/build/formatters/consoleFormatter.d.ts +50 -0
  92. package/build/formatters/consoleFormatter.d.ts.map +1 -0
  93. package/build/formatters/consoleFormatter.js +116 -0
  94. package/build/formatters/consoleFormatter.js.map +1 -0
  95. package/build/formatters/snapshotFormatter.d.ts +41 -0
  96. package/build/formatters/snapshotFormatter.d.ts.map +1 -0
  97. package/build/formatters/snapshotFormatter.js +156 -0
  98. package/build/formatters/snapshotFormatter.js.map +1 -0
  99. package/build/index.d.ts +11 -0
  100. package/build/index.d.ts.map +1 -0
  101. package/build/index.js +45 -9
  102. package/build/index.js.map +1 -0
  103. package/build/server.d.ts +7 -0
  104. package/build/server.d.ts.map +1 -0
  105. package/build/server.js +88 -32
  106. package/build/server.js.map +1 -0
  107. package/build/tools/ToolDefinition.d.ts +265 -0
  108. package/build/tools/ToolDefinition.d.ts.map +1 -0
  109. package/build/tools/ToolDefinition.js +16 -7
  110. package/build/tools/ToolDefinition.js.map +1 -0
  111. package/build/tools/assert.d.ts +17 -0
  112. package/build/tools/assert.d.ts.map +1 -0
  113. package/build/tools/assert.js +63 -103
  114. package/build/tools/assert.js.map +1 -0
  115. package/build/tools/connection.d.ts +13 -0
  116. package/build/tools/connection.d.ts.map +1 -0
  117. package/build/tools/connection.js +338 -611
  118. package/build/tools/connection.js.map +1 -0
  119. package/build/tools/console.d.ts +20 -0
  120. package/build/tools/console.d.ts.map +1 -0
  121. package/build/tools/console.js +162 -152
  122. package/build/tools/console.js.map +1 -0
  123. package/build/tools/diagnose.d.ts +22 -0
  124. package/build/tools/diagnose.d.ts.map +1 -0
  125. package/build/tools/diagnose.js +406 -13
  126. package/build/tools/diagnose.js.map +1 -0
  127. package/build/tools/index.d.ts +6 -0
  128. package/build/tools/index.d.ts.map +1 -0
  129. package/build/tools/index.js +3 -77
  130. package/build/tools/index.js.map +1 -0
  131. package/build/tools/input.d.ts +21 -0
  132. package/build/tools/input.d.ts.map +1 -0
  133. package/build/tools/input.js +73 -139
  134. package/build/tools/input.js.map +1 -0
  135. package/build/tools/navigate.d.ts +21 -0
  136. package/build/tools/navigate.d.ts.map +1 -0
  137. package/build/tools/navigate.js +63 -126
  138. package/build/tools/navigate.js.map +1 -0
  139. package/build/tools/network.d.ts +21 -0
  140. package/build/tools/network.d.ts.map +1 -0
  141. package/build/tools/network.js +214 -1044
  142. package/build/tools/network.js.map +1 -0
  143. package/build/tools/page.d.ts +13 -0
  144. package/build/tools/page.d.ts.map +1 -0
  145. package/build/tools/page.js +6 -3
  146. package/build/tools/page.js.map +1 -0
  147. package/build/tools/screenshot.d.ts +9 -0
  148. package/build/tools/screenshot.d.ts.map +1 -0
  149. package/build/tools/screenshot.js +3 -1
  150. package/build/tools/screenshot.js.map +1 -0
  151. package/build/tools/script.d.ts +6 -0
  152. package/build/tools/script.d.ts.map +1 -0
  153. package/build/tools/script.js +92 -0
  154. package/build/tools/script.js.map +1 -0
  155. package/build/tools/snapshot.d.ts +9 -0
  156. package/build/tools/snapshot.d.ts.map +1 -0
  157. package/build/tools/snapshot.js +78 -12
  158. package/build/tools/snapshot.js.map +1 -0
  159. package/build/tools/tools.d.ts +15 -0
  160. package/build/tools/tools.d.ts.map +1 -0
  161. package/build/tools/tools.js +63 -0
  162. package/build/tools/tools.js.map +1 -0
  163. package/build/tools.d.ts +431 -0
  164. package/build/tools.d.ts.map +1 -0
  165. package/build/tools.js +258 -118
  166. package/build/tools.js.map +1 -0
  167. package/build/types/errors.d.ts +189 -0
  168. package/build/types/errors.d.ts.map +1 -0
  169. package/build/types/errors.js +257 -0
  170. package/build/types/errors.js.map +1 -0
  171. package/build/utils/error.d.ts +6 -0
  172. package/build/utils/error.d.ts.map +1 -0
  173. package/build/utils/error.js +11 -0
  174. package/build/utils/error.js.map +1 -0
  175. package/build/utils/idGenerator.d.ts +21 -0
  176. package/build/utils/idGenerator.d.ts.map +1 -0
  177. package/build/utils/idGenerator.js +23 -0
  178. package/build/utils/idGenerator.js.map +1 -0
  179. package/build/version.d.ts +7 -0
  180. package/build/version.d.ts.map +1 -0
  181. package/build/version.js +10 -0
  182. package/build/version.js.map +1 -0
  183. package/package.json +31 -9
@@ -0,0 +1,157 @@
1
+ /**
2
+ * ConsoleCollector - Console 消息收集器
3
+ *
4
+ * 专门用于收集和管理 Console 消息和异常
5
+ * 继承自通用 Collector 基类
6
+ */
7
+ import { Collector } from './Collector.js';
8
+ /**
9
+ * 检查是否为 ConsoleMessage
10
+ */
11
+ export function isConsoleMessage(entry) {
12
+ return 'type' in entry;
13
+ }
14
+ /**
15
+ * 检查是否为 ExceptionMessage
16
+ */
17
+ export function isExceptionMessage(entry) {
18
+ return !('type' in entry) && 'message' in entry;
19
+ }
20
+ /**
21
+ * Console 消息收集器
22
+ */
23
+ export class ConsoleCollector extends Collector {
24
+ constructor(options) {
25
+ super(options);
26
+ }
27
+ /**
28
+ * 添加 Console 消息
29
+ * @returns 分配的 msgid
30
+ */
31
+ addMessage(message) {
32
+ const id = this.collect(message);
33
+ // 同步 msgid 到消息对象
34
+ const storedMessage = this.getById(id);
35
+ if (storedMessage) {
36
+ storedMessage.msgid = id;
37
+ }
38
+ return id;
39
+ }
40
+ /**
41
+ * 添加异常信息
42
+ * @returns 分配的 msgid
43
+ */
44
+ addException(exception) {
45
+ const id = this.collect(exception);
46
+ // 同步 msgid 到异常对象
47
+ const storedException = this.getById(id);
48
+ if (storedException) {
49
+ storedException.msgid = id;
50
+ }
51
+ return id;
52
+ }
53
+ /**
54
+ * 通过 msgid 获取消息
55
+ */
56
+ getMessageById(msgid) {
57
+ return this.getById(msgid);
58
+ }
59
+ /**
60
+ * 获取 Console 消息(支持类型过滤)
61
+ */
62
+ getMessages(options = {}) {
63
+ const { types, ...baseOptions } = options;
64
+ // 构建过滤函数
65
+ let filter = baseOptions.filter;
66
+ if (types && types.length > 0) {
67
+ const typeSet = new Set(types);
68
+ const originalFilter = filter;
69
+ filter = (entry) => {
70
+ // 类型过滤
71
+ const typeMatch = isConsoleMessage(entry)
72
+ ? typeSet.has(entry.type)
73
+ : typeSet.has('error'); // ExceptionMessage 视为 error 类型
74
+ // 如果有原始过滤器,还需要满足原始过滤条件
75
+ if (originalFilter) {
76
+ return typeMatch && originalFilter(entry);
77
+ }
78
+ return typeMatch;
79
+ };
80
+ }
81
+ return this.getData({ ...baseOptions, filter });
82
+ }
83
+ /**
84
+ * 只获取 Console 消息(不包括异常)
85
+ */
86
+ getConsoleMessagesOnly(options = {}) {
87
+ const entries = this.getMessages(options);
88
+ return entries.filter(isConsoleMessage);
89
+ }
90
+ /**
91
+ * 只获取异常信息
92
+ */
93
+ getExceptionsOnly(options = {}) {
94
+ const entries = this.getData(options);
95
+ return entries.filter(isExceptionMessage);
96
+ }
97
+ /**
98
+ * 获取错误数量(包括 error 类型消息和异常)
99
+ */
100
+ getErrorCount() {
101
+ let count = 0;
102
+ const entries = this.getData({ includePreserved: false });
103
+ for (const entry of entries) {
104
+ if (isExceptionMessage(entry) || (isConsoleMessage(entry) && entry.type === 'error')) {
105
+ count++;
106
+ }
107
+ }
108
+ return count;
109
+ }
110
+ /**
111
+ * 获取警告数量
112
+ */
113
+ getWarningCount() {
114
+ let count = 0;
115
+ const entries = this.getData({ includePreserved: false });
116
+ for (const entry of entries) {
117
+ if (isConsoleMessage(entry) && entry.type === 'warn') {
118
+ count++;
119
+ }
120
+ }
121
+ return count;
122
+ }
123
+ /**
124
+ * 格式化消息预览(用于列表显示)
125
+ */
126
+ formatPreview(entry, maxLength = 100) {
127
+ let text;
128
+ if (isConsoleMessage(entry)) {
129
+ if (entry.message) {
130
+ text = entry.message;
131
+ }
132
+ else if (entry.args.length > 0) {
133
+ text = entry.args
134
+ .map(arg => {
135
+ if (typeof arg === 'string')
136
+ return arg;
137
+ if (typeof arg === 'object')
138
+ return JSON.stringify(arg);
139
+ return String(arg);
140
+ })
141
+ .join(' ');
142
+ }
143
+ else {
144
+ text = '';
145
+ }
146
+ }
147
+ else {
148
+ text = entry.message;
149
+ }
150
+ // 截断长文本
151
+ if (text.length > maxLength) {
152
+ return text.slice(0, maxLength) + '...';
153
+ }
154
+ return text;
155
+ }
156
+ }
157
+ //# sourceMappingURL=ConsoleCollector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsoleCollector.js","sourceRoot":"","sources":["../../src/collectors/ConsoleCollector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * NetworkCollector - 网络请求收集器
3
+ *
4
+ * 专门用于收集和管理网络请求
5
+ * 继承自通用 Collector 基类
6
+ */
7
+ import { Collector, type CollectorOptions, type QueryOptions } from './Collector.js';
8
+ /**
9
+ * 网络请求类型
10
+ */
11
+ export type NetworkRequestType = 'request' | 'uploadFile' | 'downloadFile';
12
+ /**
13
+ * 网络请求信息接口
14
+ */
15
+ export interface NetworkRequest {
16
+ /** 请求 ID(由应用层分配) */
17
+ id: string;
18
+ /** 请求类型 */
19
+ type: NetworkRequestType;
20
+ /** 请求 URL */
21
+ url: string;
22
+ /** HTTP 方法 */
23
+ method?: string;
24
+ /** 请求头 */
25
+ headers?: Record<string, string>;
26
+ /** 请求体数据 */
27
+ data?: unknown;
28
+ /** 查询参数(Mpx 框架等) */
29
+ params?: Record<string, unknown>;
30
+ /** 响应状态码 */
31
+ statusCode?: number;
32
+ /** 响应数据 */
33
+ response?: unknown;
34
+ /** 响应头 */
35
+ responseHeaders?: Record<string, string>;
36
+ /** 错误信息 */
37
+ error?: string;
38
+ /** 请求耗时(毫秒) */
39
+ duration?: number;
40
+ /** 请求开始时间 */
41
+ timestamp: string;
42
+ /** 请求完成时间 */
43
+ completedAt?: string;
44
+ /** 是否成功 */
45
+ success: boolean;
46
+ /** 是否等待响应中 */
47
+ pending?: boolean;
48
+ /** 请求来源 */
49
+ source?: string;
50
+ }
51
+ /**
52
+ * 网络请求查询选项
53
+ */
54
+ export interface NetworkQueryOptions extends QueryOptions<NetworkRequest> {
55
+ /** 请求类型过滤 */
56
+ type?: NetworkRequestType | 'all';
57
+ /** URL 匹配模式(正则表达式) */
58
+ urlPattern?: string;
59
+ /** 仅返回成功的请求 */
60
+ successOnly?: boolean;
61
+ /** 仅返回失败的请求 */
62
+ failedOnly?: boolean;
63
+ /** 仅返回已完成的请求 */
64
+ completedOnly?: boolean;
65
+ /** 指定时间之后的请求(ISO 8601 格式) */
66
+ since?: string;
67
+ }
68
+ /**
69
+ * wx 网络方法类型(用于存储原始方法以便恢复)
70
+ */
71
+ export type WxNetworkMethod = ((options: Record<string, unknown>) => unknown) | undefined;
72
+ /**
73
+ * 原始方法存储
74
+ */
75
+ export interface OriginalMethods {
76
+ request?: WxNetworkMethod;
77
+ uploadFile?: WxNetworkMethod;
78
+ downloadFile?: WxNetworkMethod;
79
+ }
80
+ /**
81
+ * 网络请求收集器
82
+ */
83
+ export declare class NetworkCollector extends Collector<NetworkRequest> {
84
+ #private;
85
+ constructor(options?: CollectorOptions);
86
+ /**
87
+ * 设置 MiniProgram 引用(用于远程同步)
88
+ */
89
+ setMiniProgram(miniProgram: {
90
+ evaluate: (fn: () => unknown) => Promise<unknown>;
91
+ } | null): void;
92
+ /**
93
+ * 从远程同步数据(带节流)
94
+ * @param force 是否强制同步(跳过节流)
95
+ * @returns 同步的请求数量
96
+ */
97
+ syncFromRemote(force?: boolean): Promise<number>;
98
+ /**
99
+ * 设置同步间隔
100
+ */
101
+ setSyncInterval(intervalMs: number): void;
102
+ /**
103
+ * 设置原始方法(用于恢复)
104
+ */
105
+ setOriginalMethods(methods: OriginalMethods): void;
106
+ /**
107
+ * 获取原始方法
108
+ */
109
+ getOriginalMethods(): OriginalMethods;
110
+ /**
111
+ * 清除原始方法引用
112
+ */
113
+ clearOriginalMethods(): void;
114
+ /**
115
+ * 添加网络请求
116
+ * @returns Stable ID
117
+ */
118
+ addRequest(request: NetworkRequest): number;
119
+ /**
120
+ * 更新请求状态(当响应到达时)
121
+ */
122
+ updateRequest(id: string, updates: Partial<Pick<NetworkRequest, 'statusCode' | 'response' | 'responseHeaders' | 'error' | 'duration' | 'completedAt' | 'success' | 'pending'>>): boolean;
123
+ /**
124
+ * 标记请求完成
125
+ */
126
+ completeRequest(id: string, response: {
127
+ statusCode?: number;
128
+ data?: unknown;
129
+ headers?: Record<string, string>;
130
+ error?: string;
131
+ }): boolean;
132
+ /**
133
+ * 获取网络请求(支持多种过滤条件)
134
+ */
135
+ getRequests(options?: NetworkQueryOptions): NetworkRequest[];
136
+ /**
137
+ * 通过请求 ID 获取请求
138
+ */
139
+ getRequestById(id: string): NetworkRequest | undefined;
140
+ /**
141
+ * 获取待处理的请求
142
+ */
143
+ getPendingRequests(): NetworkRequest[];
144
+ /**
145
+ * 获取失败的请求
146
+ */
147
+ getFailedRequests(): NetworkRequest[];
148
+ /**
149
+ * 获取请求统计
150
+ */
151
+ getStats(): {
152
+ total: number;
153
+ pending: number;
154
+ success: number;
155
+ failed: number;
156
+ byType: Record<NetworkRequestType, number>;
157
+ };
158
+ /**
159
+ * 获取平均响应时间(毫秒)
160
+ */
161
+ getAverageResponseTime(): number;
162
+ /**
163
+ * 完全重置(包括原始方法引用)
164
+ */
165
+ reset(): void;
166
+ }
167
+ //# sourceMappingURL=NetworkCollector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkCollector.d.ts","sourceRoot":"","sources":["../../src/collectors/NetworkCollector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,265 @@
1
+ /**
2
+ * NetworkCollector - 网络请求收集器
3
+ *
4
+ * 专门用于收集和管理网络请求
5
+ * 继承自通用 Collector 基类
6
+ */
7
+ import { Collector } from './Collector.js';
8
+ /**
9
+ * 网络请求收集器
10
+ */
11
+ export class NetworkCollector extends Collector {
12
+ /** 存储原始的 wx 网络方法 */
13
+ #originalMethods = {};
14
+ /** 上次同步时间戳 */
15
+ #lastSyncTimestamp = 0;
16
+ /** 同步间隔(毫秒) */
17
+ #syncIntervalMs = 5000;
18
+ /** MiniProgram 引用(用于同步) */
19
+ #miniProgram = null;
20
+ constructor(options) {
21
+ super(options);
22
+ }
23
+ // ============ MiniProgram 引用管理 ============
24
+ /**
25
+ * 设置 MiniProgram 引用(用于远程同步)
26
+ */
27
+ setMiniProgram(miniProgram) {
28
+ this.#miniProgram = miniProgram;
29
+ }
30
+ /**
31
+ * 从远程同步数据(带节流)
32
+ * @param force 是否强制同步(跳过节流)
33
+ * @returns 同步的请求数量
34
+ */
35
+ async syncFromRemote(force = false) {
36
+ const now = Date.now();
37
+ // 节流:非强制且未到同步时间
38
+ if (!force && now - this.#lastSyncTimestamp < this.#syncIntervalMs) {
39
+ return 0;
40
+ }
41
+ if (!this.#miniProgram) {
42
+ return 0;
43
+ }
44
+ try {
45
+ // 从小程序环境拉取并清空远程日志
46
+ const remoteLogs = await this.#miniProgram.evaluate(function () {
47
+ // @ts-ignore
48
+ const wxObj = typeof wx !== 'undefined' ? wx : null;
49
+ if (!wxObj || !wxObj.__networkLogs)
50
+ return [];
51
+ // 返回并清空(避免重复处理)
52
+ // @ts-ignore
53
+ const logs = [...wxObj.__networkLogs];
54
+ // @ts-ignore
55
+ wxObj.__networkLogs = [];
56
+ return logs;
57
+ });
58
+ this.#lastSyncTimestamp = now;
59
+ // 批量添加到本地存储
60
+ let addedCount = 0;
61
+ for (const log of remoteLogs) {
62
+ if (log && typeof log === 'object' && log.url) {
63
+ this.addRequest(log);
64
+ addedCount++;
65
+ }
66
+ }
67
+ return addedCount;
68
+ }
69
+ catch (error) {
70
+ console.warn('[NetworkCollector] 同步失败:', error);
71
+ return 0;
72
+ }
73
+ }
74
+ /**
75
+ * 设置同步间隔
76
+ */
77
+ setSyncInterval(intervalMs) {
78
+ this.#syncIntervalMs = Math.max(1000, intervalMs); // 最少 1 秒
79
+ }
80
+ // ============ 原始方法管理 ============
81
+ /**
82
+ * 设置原始方法(用于恢复)
83
+ */
84
+ setOriginalMethods(methods) {
85
+ this.#originalMethods = { ...methods };
86
+ }
87
+ /**
88
+ * 获取原始方法
89
+ */
90
+ getOriginalMethods() {
91
+ return { ...this.#originalMethods };
92
+ }
93
+ /**
94
+ * 清除原始方法引用
95
+ */
96
+ clearOriginalMethods() {
97
+ this.#originalMethods = {};
98
+ }
99
+ // ============ 请求收集 ============
100
+ /**
101
+ * 添加网络请求
102
+ * @returns Stable ID
103
+ */
104
+ addRequest(request) {
105
+ return this.collect(request);
106
+ }
107
+ /**
108
+ * 更新请求状态(当响应到达时)
109
+ */
110
+ updateRequest(id, updates) {
111
+ const request = this.find(req => req.id === id);
112
+ if (request) {
113
+ Object.assign(request, updates);
114
+ return true;
115
+ }
116
+ return false;
117
+ }
118
+ /**
119
+ * 标记请求完成
120
+ */
121
+ completeRequest(id, response) {
122
+ const request = this.find(req => req.id === id);
123
+ if (!request) {
124
+ return false;
125
+ }
126
+ const now = new Date().toISOString();
127
+ const startTime = new Date(request.timestamp).getTime();
128
+ const endTime = new Date(now).getTime();
129
+ request.statusCode = response.statusCode;
130
+ request.response = response.data;
131
+ request.responseHeaders = response.headers;
132
+ request.error = response.error;
133
+ request.duration = endTime - startTime;
134
+ request.completedAt = now;
135
+ request.success = !response.error && (response.statusCode === undefined || (response.statusCode >= 200 && response.statusCode < 400));
136
+ request.pending = false;
137
+ return true;
138
+ }
139
+ // ============ 请求查询 ============
140
+ /**
141
+ * 获取网络请求(支持多种过滤条件)
142
+ */
143
+ getRequests(options = {}) {
144
+ const { type = 'all', urlPattern, successOnly, failedOnly, completedOnly, since, ...baseOptions } = options;
145
+ // 构建复合过滤函数
146
+ const originalFilter = baseOptions.filter;
147
+ const filter = (request) => {
148
+ // 类型过滤
149
+ if (type !== 'all' && request.type !== type) {
150
+ return false;
151
+ }
152
+ // URL 模式过滤
153
+ if (urlPattern) {
154
+ try {
155
+ const regex = new RegExp(urlPattern);
156
+ if (!regex.test(request.url)) {
157
+ return false;
158
+ }
159
+ }
160
+ catch {
161
+ // 正则表达式无效,作为普通字符串匹配
162
+ if (!request.url.includes(urlPattern)) {
163
+ return false;
164
+ }
165
+ }
166
+ }
167
+ // 成功/失败过滤
168
+ if (successOnly && !request.success) {
169
+ return false;
170
+ }
171
+ if (failedOnly && request.success) {
172
+ return false;
173
+ }
174
+ // 完成状态过滤
175
+ if (completedOnly && request.pending) {
176
+ return false;
177
+ }
178
+ // 时间过滤
179
+ if (since) {
180
+ const sinceTime = new Date(since).getTime();
181
+ const requestTime = new Date(request.timestamp).getTime();
182
+ if (requestTime < sinceTime) {
183
+ return false;
184
+ }
185
+ }
186
+ // 应用原始过滤器
187
+ if (originalFilter && !originalFilter(request)) {
188
+ return false;
189
+ }
190
+ return true;
191
+ };
192
+ return this.getData({ ...baseOptions, filter });
193
+ }
194
+ /**
195
+ * 通过请求 ID 获取请求
196
+ */
197
+ getRequestById(id) {
198
+ return this.find(req => req.id === id);
199
+ }
200
+ /**
201
+ * 获取待处理的请求
202
+ */
203
+ getPendingRequests() {
204
+ return this.findAll(req => req.pending === true);
205
+ }
206
+ /**
207
+ * 获取失败的请求
208
+ */
209
+ getFailedRequests() {
210
+ return this.findAll(req => !req.success && !req.pending);
211
+ }
212
+ // ============ 统计信息 ============
213
+ /**
214
+ * 获取请求统计
215
+ */
216
+ getStats() {
217
+ const requests = this.getData({ includePreserved: false });
218
+ const stats = {
219
+ total: requests.length,
220
+ pending: 0,
221
+ success: 0,
222
+ failed: 0,
223
+ byType: {
224
+ request: 0,
225
+ uploadFile: 0,
226
+ downloadFile: 0,
227
+ },
228
+ };
229
+ for (const request of requests) {
230
+ stats.byType[request.type]++;
231
+ if (request.pending) {
232
+ stats.pending++;
233
+ }
234
+ else if (request.success) {
235
+ stats.success++;
236
+ }
237
+ else {
238
+ stats.failed++;
239
+ }
240
+ }
241
+ return stats;
242
+ }
243
+ /**
244
+ * 获取平均响应时间(毫秒)
245
+ */
246
+ getAverageResponseTime() {
247
+ const requests = this.getData({ includePreserved: false });
248
+ const completedRequests = requests.filter(req => req.duration !== undefined);
249
+ if (completedRequests.length === 0) {
250
+ return 0;
251
+ }
252
+ const totalTime = completedRequests.reduce((sum, req) => sum + (req.duration ?? 0), 0);
253
+ return Math.round(totalTime / completedRequests.length);
254
+ }
255
+ // ============ 重置 ============
256
+ /**
257
+ * 完全重置(包括原始方法引用)
258
+ */
259
+ reset() {
260
+ this.clear();
261
+ this.clearOriginalMethods();
262
+ this.stopMonitoring();
263
+ }
264
+ }
265
+ //# sourceMappingURL=NetworkCollector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkCollector.js","sourceRoot":"","sources":["../../src/collectors/NetworkCollector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Collectors 模块导出
3
+ *
4
+ * 提供通用的数据收集器模式:
5
+ * - Collector: 通用基类
6
+ * - ConsoleCollector: Console 消息收集
7
+ * - NetworkCollector: 网络请求收集
8
+ */
9
+ export { Collector, type CollectorOptions, type NavigationSession, type QueryOptions, } from './Collector.js';
10
+ export { ConsoleCollector, type ConsoleMessage, type ExceptionMessage, type ConsoleEntry, type ConsoleQueryOptions, isConsoleMessage, isExceptionMessage, } from './ConsoleCollector.js';
11
+ export { NetworkCollector, type NetworkRequest, type NetworkRequestType, type NetworkQueryOptions, type WxNetworkMethod, type OriginalMethods, } from './NetworkCollector.js';
12
+ export { createIdGenerator, stableIdSymbol, type WithStableId, } from '../utils/idGenerator.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collectors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,KAAK,YAAY,GAClB,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Collectors 模块导出
3
+ *
4
+ * 提供通用的数据收集器模式:
5
+ * - Collector: 通用基类
6
+ * - ConsoleCollector: Console 消息收集
7
+ * - NetworkCollector: 网络请求收集
8
+ */
9
+ // 基类和通用类型
10
+ export { Collector, } from './Collector.js';
11
+ // Console 收集器
12
+ export { ConsoleCollector, isConsoleMessage, isExceptionMessage, } from './ConsoleCollector.js';
13
+ // Network 收集器
14
+ export { NetworkCollector, } from './NetworkCollector.js';
15
+ // ID 工具(重新导出)
16
+ export { createIdGenerator, stableIdSymbol, } from '../utils/idGenerator.js';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/collectors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,UAAU;AACV,OAAO,EACL,SAAS,GAIV,MAAM,gBAAgB,CAAC;AAExB,cAAc;AACd,OAAO,EACL,gBAAgB,EAKhB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,cAAc;AACd,OAAO,EACL,gBAAgB,GAMjB,MAAM,uBAAuB,CAAC;AAE/B,cAAc;AACd,OAAO,EACL,iBAAiB,EACjB,cAAc,GAEf,MAAM,yBAAyB,CAAC"}