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,318 @@
1
+ /**
2
+ * 断言验证核心逻辑
3
+ * 从 src/tools.ts 提取
4
+ */
5
+ import { extractErrorMessage } from '../utils/error.js';
6
+ /**
7
+ * 断言元素存在性
8
+ */
9
+ export async function assertElementExists(page, options) {
10
+ const { selector, uid, timeout = 5000, shouldExist } = options;
11
+ if (!selector && !uid) {
12
+ throw new Error("必须提供selector或uid参数");
13
+ }
14
+ if (!page) {
15
+ throw new Error("页面对象是必需的");
16
+ }
17
+ const startTime = Date.now();
18
+ let element = null;
19
+ let actualExists = false;
20
+ try {
21
+ while (Date.now() - startTime < timeout) {
22
+ try {
23
+ if (selector) {
24
+ element = await page.$(selector);
25
+ }
26
+ else if (uid) {
27
+ element = await page.$(uid);
28
+ }
29
+ actualExists = !!element;
30
+ if (actualExists === shouldExist) {
31
+ return {
32
+ passed: true,
33
+ message: `断言通过: 元素${shouldExist ? '存在' : '不存在'}`,
34
+ actual: actualExists,
35
+ expected: shouldExist,
36
+ timestamp: Date.now()
37
+ };
38
+ }
39
+ await new Promise(resolve => setTimeout(resolve, 100));
40
+ }
41
+ catch (error) {
42
+ // 继续检查直到超时
43
+ }
44
+ }
45
+ return {
46
+ passed: false,
47
+ message: `断言失败: 期望元素${shouldExist ? '存在' : '不存在'},实际${actualExists ? '存在' : '不存在'}`,
48
+ actual: actualExists,
49
+ expected: shouldExist,
50
+ timestamp: Date.now()
51
+ };
52
+ }
53
+ catch (error) {
54
+ const errorMessage = extractErrorMessage(error);
55
+ return {
56
+ passed: false,
57
+ message: `断言执行失败: ${errorMessage}`,
58
+ actual: null,
59
+ expected: shouldExist,
60
+ timestamp: Date.now()
61
+ };
62
+ }
63
+ }
64
+ /**
65
+ * 断言元素可见性
66
+ */
67
+ export async function assertElementVisible(page, elementMap, options) {
68
+ const { uid, visible } = options;
69
+ if (visible === undefined) {
70
+ throw new Error("必须指定visible参数");
71
+ }
72
+ if (!uid) {
73
+ throw new Error("元素uid是必需的");
74
+ }
75
+ if (!page) {
76
+ throw new Error("页面对象是必需的");
77
+ }
78
+ try {
79
+ const mapInfo = elementMap.get(uid);
80
+ if (!mapInfo) {
81
+ return {
82
+ passed: false,
83
+ message: `断言失败: 找不到uid为 ${uid} 的元素`,
84
+ actual: null,
85
+ expected: visible,
86
+ timestamp: Date.now()
87
+ };
88
+ }
89
+ const elements = await page.$$(mapInfo.selector);
90
+ if (!elements || elements.length === 0) {
91
+ return {
92
+ passed: false,
93
+ message: `断言失败: 无法找到选择器为 ${mapInfo.selector} 的元素`,
94
+ actual: false,
95
+ expected: visible,
96
+ timestamp: Date.now()
97
+ };
98
+ }
99
+ if (mapInfo.index >= elements.length) {
100
+ return {
101
+ passed: false,
102
+ message: `断言失败: 元素索引 ${mapInfo.index} 超出范围,共找到 ${elements.length} 个元素`,
103
+ actual: false,
104
+ expected: visible,
105
+ timestamp: Date.now()
106
+ };
107
+ }
108
+ const element = elements[mapInfo.index];
109
+ if (!element) {
110
+ return {
111
+ passed: false,
112
+ message: `断言失败: 无法获取索引为 ${mapInfo.index} 的元素`,
113
+ actual: false,
114
+ expected: visible,
115
+ timestamp: Date.now()
116
+ };
117
+ }
118
+ const size = await element.size();
119
+ const actualVisible = size.width > 0 && size.height > 0;
120
+ const passed = actualVisible === visible;
121
+ return {
122
+ passed,
123
+ message: passed
124
+ ? `断言通过: 元素${visible ? '可见' : '不可见'}`
125
+ : `断言失败: 期望元素${visible ? '可见' : '不可见'},实际${actualVisible ? '可见' : '不可见'}`,
126
+ actual: actualVisible,
127
+ expected: visible,
128
+ timestamp: Date.now()
129
+ };
130
+ }
131
+ catch (error) {
132
+ const errorMessage = extractErrorMessage(error);
133
+ return {
134
+ passed: false,
135
+ message: `断言执行失败: ${errorMessage}`,
136
+ actual: null,
137
+ expected: visible,
138
+ timestamp: Date.now()
139
+ };
140
+ }
141
+ }
142
+ /**
143
+ * 断言元素文本内容
144
+ */
145
+ export async function assertElementText(page, elementMap, options) {
146
+ const { uid, text, textContains, textMatches } = options;
147
+ if (!text && !textContains && !textMatches) {
148
+ throw new Error("必须指定text、textContains或textMatches参数之一");
149
+ }
150
+ if (!uid) {
151
+ throw new Error("元素uid是必需的");
152
+ }
153
+ if (!page) {
154
+ throw new Error("页面对象是必需的");
155
+ }
156
+ try {
157
+ const mapInfo = elementMap.get(uid);
158
+ if (!mapInfo) {
159
+ return {
160
+ passed: false,
161
+ message: `断言失败: 找不到uid为 ${uid} 的元素`,
162
+ actual: null,
163
+ expected: text || textContains || textMatches,
164
+ timestamp: Date.now()
165
+ };
166
+ }
167
+ const elements = await page.$$(mapInfo.selector);
168
+ if (!elements || elements.length === 0) {
169
+ return {
170
+ passed: false,
171
+ message: `断言失败: 无法找到选择器为 ${mapInfo.selector} 的元素`,
172
+ actual: null,
173
+ expected: text || textContains || textMatches,
174
+ timestamp: Date.now()
175
+ };
176
+ }
177
+ if (mapInfo.index >= elements.length) {
178
+ return {
179
+ passed: false,
180
+ message: `断言失败: 元素索引 ${mapInfo.index} 超出范围,共找到 ${elements.length} 个元素`,
181
+ actual: null,
182
+ expected: text || textContains || textMatches,
183
+ timestamp: Date.now()
184
+ };
185
+ }
186
+ const element = elements[mapInfo.index];
187
+ if (!element) {
188
+ return {
189
+ passed: false,
190
+ message: `断言失败: 无法获取索引为 ${mapInfo.index} 的元素`,
191
+ actual: null,
192
+ expected: text || textContains || textMatches,
193
+ timestamp: Date.now()
194
+ };
195
+ }
196
+ const actualText = await element.text();
197
+ let passed = false;
198
+ let expectedValue = '';
199
+ let message = '';
200
+ if (text) {
201
+ passed = actualText === text;
202
+ expectedValue = text;
203
+ message = passed
204
+ ? `断言通过: 文本精确匹配`
205
+ : `断言失败: 期望文本 "${text}",实际 "${actualText}"`;
206
+ }
207
+ else if (textContains) {
208
+ passed = actualText.includes(textContains);
209
+ expectedValue = textContains;
210
+ message = passed
211
+ ? `断言通过: 文本包含 "${textContains}"`
212
+ : `断言失败: 期望包含 "${textContains}",实际文本 "${actualText}"`;
213
+ }
214
+ else if (textMatches) {
215
+ const regex = new RegExp(textMatches);
216
+ passed = regex.test(actualText);
217
+ expectedValue = textMatches;
218
+ message = passed
219
+ ? `断言通过: 文本匹配正则 ${textMatches}`
220
+ : `断言失败: 期望匹配正则 ${textMatches},实际文本 "${actualText}"`;
221
+ }
222
+ return {
223
+ passed,
224
+ message,
225
+ actual: actualText,
226
+ expected: expectedValue,
227
+ timestamp: Date.now()
228
+ };
229
+ }
230
+ catch (error) {
231
+ const errorMessage = extractErrorMessage(error);
232
+ return {
233
+ passed: false,
234
+ message: `断言执行失败: ${errorMessage}`,
235
+ actual: null,
236
+ expected: text || textContains || textMatches,
237
+ timestamp: Date.now()
238
+ };
239
+ }
240
+ }
241
+ /**
242
+ * 断言元素属性
243
+ */
244
+ export async function assertElementAttribute(page, elementMap, options) {
245
+ const { uid, attribute } = options;
246
+ if (!attribute) {
247
+ throw new Error("必须指定attribute参数");
248
+ }
249
+ if (!uid) {
250
+ throw new Error("元素uid是必需的");
251
+ }
252
+ if (!page) {
253
+ throw new Error("页面对象是必需的");
254
+ }
255
+ try {
256
+ const mapInfo = elementMap.get(uid);
257
+ if (!mapInfo) {
258
+ return {
259
+ passed: false,
260
+ message: `断言失败: 找不到uid为 ${uid} 的元素`,
261
+ actual: null,
262
+ expected: attribute.value,
263
+ timestamp: Date.now()
264
+ };
265
+ }
266
+ const elements = await page.$$(mapInfo.selector);
267
+ if (!elements || elements.length === 0) {
268
+ return {
269
+ passed: false,
270
+ message: `断言失败: 无法找到选择器为 ${mapInfo.selector} 的元素`,
271
+ actual: null,
272
+ expected: attribute.value,
273
+ timestamp: Date.now()
274
+ };
275
+ }
276
+ if (mapInfo.index >= elements.length) {
277
+ return {
278
+ passed: false,
279
+ message: `断言失败: 元素索引 ${mapInfo.index} 超出范围,共找到 ${elements.length} 个元素`,
280
+ actual: null,
281
+ expected: attribute.value,
282
+ timestamp: Date.now()
283
+ };
284
+ }
285
+ const element = elements[mapInfo.index];
286
+ if (!element) {
287
+ return {
288
+ passed: false,
289
+ message: `断言失败: 无法获取索引为 ${mapInfo.index} 的元素`,
290
+ actual: null,
291
+ expected: attribute.value,
292
+ timestamp: Date.now()
293
+ };
294
+ }
295
+ const actualValue = await element.attribute(attribute.key);
296
+ const passed = actualValue === attribute.value;
297
+ return {
298
+ passed,
299
+ message: passed
300
+ ? `断言通过: 属性 ${attribute.key} 值为 "${attribute.value}"`
301
+ : `断言失败: 期望属性 ${attribute.key} 值为 "${attribute.value}",实际 "${actualValue}"`,
302
+ actual: actualValue,
303
+ expected: attribute.value,
304
+ timestamp: Date.now()
305
+ };
306
+ }
307
+ catch (error) {
308
+ const errorMessage = extractErrorMessage(error);
309
+ return {
310
+ passed: false,
311
+ message: `断言执行失败: ${errorMessage}`,
312
+ actual: null,
313
+ expected: attribute.value,
314
+ timestamp: Date.now()
315
+ };
316
+ }
317
+ }
318
+ //# sourceMappingURL=assertion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertion.js","sourceRoot":"","sources":["../../src/core/assertion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * 连接管理核心逻辑
3
+ * 从 src/tools.ts 提取的连接相关函数
4
+ */
5
+ import { DevToolsError } from '../types/errors.js';
6
+ import type { ConnectOptions, ConnectResult, DetailedConnectResult, EnhancedConnectOptions } from './types.js';
7
+ /**
8
+ * @deprecated 使用 DevToolsError 替代
9
+ * 保留此类以保持向后兼容性
10
+ */
11
+ export declare class DevToolsConnectionError extends DevToolsError {
12
+ phase: 'startup' | 'connection' | 'health_check';
13
+ originalError?: Error | undefined;
14
+ details?: Record<string, unknown> | undefined;
15
+ constructor(message: string, phase: 'startup' | 'connection' | 'health_check', originalError?: Error | undefined, details?: Record<string, unknown> | undefined);
16
+ }
17
+ /**
18
+ * 连接到微信开发者工具
19
+ */
20
+ export declare function connectDevtools(options: ConnectOptions): Promise<ConnectResult>;
21
+ /**
22
+ * 智能连接到微信开发者工具(优化版)
23
+ */
24
+ export declare function connectDevtoolsEnhanced(options: EnhancedConnectOptions): Promise<DetailedConnectResult>;
25
+ /**
26
+ * 等待WebSocket服务就绪
27
+ */
28
+ export declare function waitForWebSocketReady(port: number, timeout: number, verbose?: boolean): Promise<void>;
29
+ /**
30
+ * 检查开发者工具是否运行
31
+ */
32
+ export declare function checkDevToolsRunning(port: number): Promise<boolean>;
33
+ /**
34
+ * 自动检测当前IDE运行的端口
35
+ */
36
+ export declare function detectIDEPort(verbose?: boolean): Promise<number | null>;
37
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/core/connection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,OAAO,EACL,aAAa,EAId,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EAGvB,MAAM,YAAY,CAAC;AAMpB;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,aAAa;IAG/C,KAAK,EAAE,SAAS,GAAG,YAAY,GAAG,cAAc;IAChD,aAAa,CAAC,EAAE,KAAK;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAHxC,OAAO,EAAE,MAAM,EACR,KAAK,EAAE,SAAS,GAAG,YAAY,GAAG,cAAc,EAChD,aAAa,CAAC,EAAE,KAAK,YAAA,EACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAqB3C;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CA+RrF;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CA8ChC;AA2TD;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAgClH;AA8BD;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASzE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0DpF"}