@creatoria/miniapp-mcp 0.1.2 → 0.2.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/README.md +14 -3
- package/dist/app/cli/index.d.ts +6 -0
- package/dist/app/cli/index.d.ts.map +1 -0
- package/dist/app/cli/index.js +6 -0
- package/dist/app/cli/index.js.map +1 -0
- package/dist/app/index.d.ts +6 -0
- package/dist/app/index.d.ts.map +1 -0
- package/dist/app/index.js +6 -0
- package/dist/app/index.js.map +1 -0
- package/dist/app/server/index.d.ts +7 -0
- package/dist/app/server/index.d.ts.map +1 -0
- package/dist/app/server/index.js +6 -0
- package/dist/app/server/index.js.map +1 -0
- package/dist/capabilities/assert/index.d.ts +5 -0
- package/dist/capabilities/assert/index.d.ts.map +1 -0
- package/dist/capabilities/assert/index.js +5 -0
- package/dist/capabilities/assert/index.js.map +1 -0
- package/dist/capabilities/automator/index.d.ts +6 -0
- package/dist/capabilities/automator/index.d.ts.map +1 -0
- package/dist/capabilities/automator/index.js +6 -0
- package/dist/capabilities/automator/index.js.map +1 -0
- package/dist/capabilities/automator/schemas/close.d.ts +5 -0
- package/dist/capabilities/automator/schemas/close.d.ts.map +1 -0
- package/dist/capabilities/automator/schemas/close.js +11 -0
- package/dist/capabilities/automator/schemas/close.js.map +1 -0
- package/dist/capabilities/automator/schemas/connect.d.ts +11 -0
- package/dist/capabilities/automator/schemas/connect.d.ts.map +1 -0
- package/dist/capabilities/automator/schemas/connect.js +19 -0
- package/dist/capabilities/automator/schemas/connect.js.map +1 -0
- package/dist/capabilities/automator/schemas/disconnect.d.ts +5 -0
- package/dist/capabilities/automator/schemas/disconnect.d.ts.map +1 -0
- package/dist/capabilities/automator/schemas/disconnect.js +11 -0
- package/dist/capabilities/automator/schemas/disconnect.js.map +1 -0
- package/dist/capabilities/automator/schemas/index.d.ts +4 -0
- package/dist/capabilities/automator/schemas/index.d.ts.map +1 -0
- package/dist/capabilities/automator/schemas/index.js +12 -0
- package/dist/capabilities/automator/schemas/index.js.map +1 -0
- package/dist/capabilities/automator/schemas/launch.d.ts +17 -0
- package/dist/capabilities/automator/schemas/launch.d.ts.map +1 -0
- package/dist/capabilities/automator/schemas/launch.js +26 -0
- package/dist/capabilities/automator/schemas/launch.js.map +1 -0
- package/dist/capabilities/element/index.d.ts +5 -0
- package/dist/capabilities/element/index.d.ts.map +1 -0
- package/dist/capabilities/element/index.js +5 -0
- package/dist/capabilities/element/index.js.map +1 -0
- package/dist/capabilities/index.d.ts +15 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +14 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/miniprogram/index.d.ts +5 -0
- package/dist/capabilities/miniprogram/index.d.ts.map +1 -0
- package/dist/capabilities/miniprogram/index.js +5 -0
- package/dist/capabilities/miniprogram/index.js.map +1 -0
- package/dist/capabilities/network/index.d.ts +5 -0
- package/dist/capabilities/network/index.d.ts.map +1 -0
- package/dist/capabilities/network/index.js +5 -0
- package/dist/capabilities/network/index.js.map +1 -0
- package/dist/capabilities/page/index.d.ts +5 -0
- package/dist/capabilities/page/index.d.ts.map +1 -0
- package/dist/capabilities/page/index.js +5 -0
- package/dist/capabilities/page/index.js.map +1 -0
- package/dist/capabilities/record/index.d.ts +5 -0
- package/dist/capabilities/record/index.d.ts.map +1 -0
- package/dist/capabilities/record/index.js +5 -0
- package/dist/capabilities/record/index.js.map +1 -0
- package/dist/capabilities/schema-registry.d.ts +4 -0
- package/dist/capabilities/schema-registry.d.ts.map +1 -0
- package/dist/capabilities/schema-registry.js +18 -0
- package/dist/capabilities/schema-registry.js.map +1 -0
- package/dist/capabilities/schema-types.d.ts +22 -0
- package/dist/capabilities/schema-types.d.ts.map +1 -0
- package/dist/capabilities/schema-types.js +2 -0
- package/dist/capabilities/schema-types.js.map +1 -0
- package/dist/capabilities/snapshot/index.d.ts +5 -0
- package/dist/capabilities/snapshot/index.d.ts.map +1 -0
- package/dist/capabilities/snapshot/index.js +5 -0
- package/dist/capabilities/snapshot/index.js.map +1 -0
- package/dist/config/loader.js +1 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/core/element-ref.d.ts +1 -43
- package/dist/core/element-ref.d.ts.map +1 -1
- package/dist/core/element-ref.js +1 -212
- package/dist/core/element-ref.js.map +1 -1
- package/dist/core/logger.d.ts +1 -54
- package/dist/core/logger.d.ts.map +1 -1
- package/dist/core/logger.js +1 -377
- package/dist/core/logger.js.map +1 -1
- package/dist/core/output.d.ts +1 -20
- package/dist/core/output.d.ts.map +1 -1
- package/dist/core/output.js +1 -55
- package/dist/core/output.js.map +1 -1
- package/dist/core/report-generator.d.ts +1 -23
- package/dist/core/report-generator.d.ts.map +1 -1
- package/dist/core/report-generator.js +1 -211
- package/dist/core/report-generator.js.map +1 -1
- package/dist/core/session.d.ts +2 -82
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +2 -305
- package/dist/core/session.js.map +1 -1
- package/dist/core/timeout.d.ts +1 -48
- package/dist/core/timeout.d.ts.map +1 -1
- package/dist/core/timeout.js +1 -66
- package/dist/core/timeout.js.map +1 -1
- package/dist/core/tool-logger.d.ts +1 -82
- package/dist/core/tool-logger.d.ts.map +1 -1
- package/dist/core/tool-logger.js +1 -452
- package/dist/core/tool-logger.js.map +1 -1
- package/dist/core/validation.d.ts +1 -38
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +1 -92
- package/dist/core/validation.js.map +1 -1
- package/dist/runtime/element/element-ref.d.ts +44 -0
- package/dist/runtime/element/element-ref.d.ts.map +1 -0
- package/dist/runtime/element/element-ref.js +214 -0
- package/dist/runtime/element/element-ref.js.map +1 -0
- package/dist/runtime/element/index.d.ts +2 -0
- package/dist/runtime/element/index.d.ts.map +1 -0
- package/dist/runtime/element/index.js +2 -0
- package/dist/runtime/element/index.js.map +1 -0
- package/dist/runtime/index.d.ts +10 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +10 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/logging/index.d.ts +3 -0
- package/dist/runtime/logging/index.d.ts.map +1 -0
- package/dist/runtime/logging/index.js +3 -0
- package/dist/runtime/logging/index.js.map +1 -0
- package/dist/runtime/logging/logger.d.ts +55 -0
- package/dist/runtime/logging/logger.d.ts.map +1 -0
- package/dist/runtime/logging/logger.js +379 -0
- package/dist/runtime/logging/logger.js.map +1 -0
- package/dist/runtime/logging/tool-logger.d.ts +83 -0
- package/dist/runtime/logging/tool-logger.d.ts.map +1 -0
- package/dist/runtime/logging/tool-logger.js +454 -0
- package/dist/runtime/logging/tool-logger.js.map +1 -0
- package/dist/runtime/outputs/index.d.ts +3 -0
- package/dist/runtime/outputs/index.d.ts.map +1 -0
- package/dist/runtime/outputs/index.js +3 -0
- package/dist/runtime/outputs/index.js.map +1 -0
- package/dist/runtime/outputs/output-manager.d.ts +12 -0
- package/dist/runtime/outputs/output-manager.d.ts.map +1 -0
- package/dist/runtime/outputs/output-manager.js +39 -0
- package/dist/runtime/outputs/output-manager.js.map +1 -0
- package/dist/runtime/outputs/report-generator.d.ts +5 -0
- package/dist/runtime/outputs/report-generator.d.ts.map +1 -0
- package/dist/runtime/outputs/report-generator.js +175 -0
- package/dist/runtime/outputs/report-generator.js.map +1 -0
- package/dist/runtime/session/index.d.ts +3 -0
- package/dist/runtime/session/index.d.ts.map +1 -0
- package/dist/runtime/session/index.js +3 -0
- package/dist/runtime/session/index.js.map +1 -0
- package/dist/runtime/session/store.d.ts +28 -0
- package/dist/runtime/session/store.d.ts.map +1 -0
- package/dist/runtime/session/store.js +154 -0
- package/dist/runtime/session/store.js.map +1 -0
- package/dist/runtime/session/utils/cleanup.d.ts +3 -0
- package/dist/runtime/session/utils/cleanup.d.ts.map +1 -0
- package/dist/runtime/session/utils/cleanup.js +78 -0
- package/dist/runtime/session/utils/cleanup.js.map +1 -0
- package/dist/runtime/timeout/index.d.ts +2 -0
- package/dist/runtime/timeout/index.d.ts.map +1 -0
- package/dist/runtime/timeout/index.js +2 -0
- package/dist/runtime/timeout/index.js.map +1 -0
- package/dist/runtime/timeout/timeout.d.ts +49 -0
- package/dist/runtime/timeout/timeout.d.ts.map +1 -0
- package/dist/runtime/timeout/timeout.js +67 -0
- package/dist/runtime/timeout/timeout.js.map +1 -0
- package/dist/runtime/validation/index.d.ts +2 -0
- package/dist/runtime/validation/index.d.ts.map +1 -0
- package/dist/runtime/validation/index.js +2 -0
- package/dist/runtime/validation/index.js.map +1 -0
- package/dist/runtime/validation/validation.d.ts +39 -0
- package/dist/runtime/validation/validation.d.ts.map +1 -0
- package/dist/runtime/validation/validation.js +93 -0
- package/dist/runtime/validation/validation.js.map +1 -0
- package/dist/schemas/automator/miniprogram_close.json +12 -0
- package/dist/schemas/automator/miniprogram_connect.json +19 -0
- package/dist/schemas/automator/miniprogram_disconnect.json +12 -0
- package/dist/schemas/automator/miniprogram_launch.json +30 -0
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -3
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/miniprogram.d.ts +2 -1
- package/dist/tools/miniprogram.d.ts.map +1 -1
- package/dist/tools/miniprogram.js +19 -24
- package/dist/tools/miniprogram.js.map +1 -1
- package/dist/tools/page.js +2 -2
- package/dist/tools/page.js.map +1 -1
- package/docs/directory-structure-and-code-style-best-practices.md +91 -0
- package/docs/migration/README.md +34 -0
- package/docs/migration/TC-ALIGN-01-notes.md +35 -0
- package/docs/migration/runtime-skeleton.md +50 -0
- package/docs/migration/tool-schema-strategy.md +75 -0
- package/docs//345/256/214/346/225/264/345/256/236/347/216/260/346/226/271/346/241/210.md +14 -14
- package/docs//347/254/254/344/270/200/347/211/210/346/234/254/346/226/271/346/241/210.md +7 -7
- package/package.json +4 -2
- package/docs/SIMPLE_USAGE.md +0 -210
- package/docs/architecture.E-Docs.md +0 -1359
- package/docs/architecture.F1.md +0 -720
- package/docs/architecture.F2.md +0 -871
- package/docs/architecture.F3.md +0 -905
- package/docs/architecture.md +0 -90
- package/docs/charter.A1.align.yaml +0 -170
- package/docs/charter.A2.align.yaml +0 -199
- package/docs/charter.A3.align.yaml +0 -242
- package/docs/charter.A4.align.yaml +0 -227
- package/docs/charter.B1.align.yaml +0 -179
- package/docs/charter.B2.align.yaml +0 -200
- package/docs/charter.B3.align.yaml +0 -200
- package/docs/charter.B4.align.yaml +0 -188
- package/docs/charter.C1.align.yaml +0 -190
- package/docs/charter.C2.align.yaml +0 -202
- package/docs/charter.C3.align.yaml +0 -211
- package/docs/charter.C4.align.yaml +0 -263
- package/docs/charter.C5.align.yaml +0 -220
- package/docs/charter.D1.align.yaml +0 -190
- package/docs/charter.D2.align.yaml +0 -234
- package/docs/charter.D3.align.yaml +0 -206
- package/docs/charter.E-Docs.align.yaml +0 -294
- package/docs/charter.F1.align.yaml +0 -193
- package/docs/charter.F2.align.yaml +0 -248
- package/docs/charter.F3.align.yaml +0 -287
- package/docs/charter.G.align.yaml +0 -174
- package/docs/charter.align.yaml +0 -111
- package/docs/maintenance.md +0 -682
- package/docs/playwright-mcp/350/260/203/347/240/224.md +0 -53
- package/docs/setup-guide.md +0 -775
- package/docs/tasks.A1.atomize.md +0 -296
- package/docs/tasks.A2.atomize.md +0 -408
- package/docs/tasks.A3.atomize.md +0 -564
- package/docs/tasks.A4.atomize.md +0 -496
- package/docs/tasks.B1.atomize.md +0 -352
- package/docs/tasks.B2.atomize.md +0 -561
- package/docs/tasks.B3.atomize.md +0 -508
- package/docs/tasks.B4.atomize.md +0 -504
- package/docs/tasks.C1.atomize.md +0 -540
- package/docs/tasks.C2.atomize.md +0 -665
- package/docs/tasks.C3.atomize.md +0 -745
- package/docs/tasks.C4.atomize.md +0 -908
- package/docs/tasks.C5.atomize.md +0 -755
- package/docs/tasks.D1.atomize.md +0 -547
- package/docs/tasks.D2.atomize.md +0 -619
- package/docs/tasks.D3.atomize.md +0 -790
- package/docs/tasks.E-Docs.atomize.md +0 -1204
- package/docs/tasks.atomize.md +0 -189
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-logger.js","sourceRoot":"","sources":["../../src/core/tool-logger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-logger.js","sourceRoot":"","sources":["../../src/core/tool-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA"}
|
|
@@ -1,39 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* Input validation utilities
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Validates a filename to prevent path traversal attacks
|
|
6
|
-
*
|
|
7
|
-
* Rules:
|
|
8
|
-
* - No path separators (/ or \)
|
|
9
|
-
* - No parent directory references (..)
|
|
10
|
-
* - Only alphanumeric, underscore, hyphen, and dot
|
|
11
|
-
* - Must have a valid extension
|
|
12
|
-
*
|
|
13
|
-
* @param filename - The filename to validate
|
|
14
|
-
* @param allowedExtensions - Array of allowed extensions (without dot)
|
|
15
|
-
* @throws Error if filename is invalid
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* validateFilename('screenshot.png', ['png', 'jpg']) // OK
|
|
20
|
-
* validateFilename('../etc/passwd', ['png']) // throws
|
|
21
|
-
* validateFilename('file/path.png', ['png']) // throws
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
export declare function validateFilename(filename: string, allowedExtensions?: string[]): void;
|
|
25
|
-
/**
|
|
26
|
-
* Sanitizes a filename by removing or replacing invalid characters
|
|
27
|
-
*
|
|
28
|
-
* @param filename - The filename to sanitize
|
|
29
|
-
* @param defaultExtension - Default extension if none provided
|
|
30
|
-
* @returns A safe filename
|
|
31
|
-
*
|
|
32
|
-
* @example
|
|
33
|
-
* ```typescript
|
|
34
|
-
* sanitizeFilename('my file!.png') // 'my-file.png'
|
|
35
|
-
* sanitizeFilename('test', 'json') // 'test.json'
|
|
36
|
-
* ```
|
|
37
|
-
*/
|
|
38
|
-
export declare function sanitizeFilename(filename: string, defaultExtension?: string): string;
|
|
1
|
+
export * from '../runtime/validation/validation.js';
|
|
39
2
|
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/core/validation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/core/validation.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAA"}
|
package/dist/core/validation.js
CHANGED
|
@@ -1,93 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* Input validation utilities
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Validates a filename to prevent path traversal attacks
|
|
6
|
-
*
|
|
7
|
-
* Rules:
|
|
8
|
-
* - No path separators (/ or \)
|
|
9
|
-
* - No parent directory references (..)
|
|
10
|
-
* - Only alphanumeric, underscore, hyphen, and dot
|
|
11
|
-
* - Must have a valid extension
|
|
12
|
-
*
|
|
13
|
-
* @param filename - The filename to validate
|
|
14
|
-
* @param allowedExtensions - Array of allowed extensions (without dot)
|
|
15
|
-
* @throws Error if filename is invalid
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* validateFilename('screenshot.png', ['png', 'jpg']) // OK
|
|
20
|
-
* validateFilename('../etc/passwd', ['png']) // throws
|
|
21
|
-
* validateFilename('file/path.png', ['png']) // throws
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
export function validateFilename(filename, allowedExtensions = ['png', 'jpg', 'jpeg', 'json', 'txt']) {
|
|
25
|
-
if (!filename || filename.trim() === '') {
|
|
26
|
-
throw new Error('Filename cannot be empty');
|
|
27
|
-
}
|
|
28
|
-
// Check for path traversal attempts
|
|
29
|
-
if (filename.includes('..')) {
|
|
30
|
-
throw new Error('Filename must not contain ".." sequences (path traversal attempt)');
|
|
31
|
-
}
|
|
32
|
-
// Check for path separators
|
|
33
|
-
if (filename.includes('/') || filename.includes('\\')) {
|
|
34
|
-
throw new Error('Filename must not contain path separators');
|
|
35
|
-
}
|
|
36
|
-
// Check for null bytes (security)
|
|
37
|
-
if (filename.includes('\0')) {
|
|
38
|
-
throw new Error('Filename must not contain null bytes');
|
|
39
|
-
}
|
|
40
|
-
// Validate format: alphanumeric, underscore, hyphen, and dot
|
|
41
|
-
if (!/^[a-zA-Z0-9_.-]+$/.test(filename)) {
|
|
42
|
-
throw new Error('Filename must only contain alphanumeric characters, underscores, hyphens, and dots');
|
|
43
|
-
}
|
|
44
|
-
// Check extension
|
|
45
|
-
const parts = filename.split('.');
|
|
46
|
-
if (parts.length < 2) {
|
|
47
|
-
throw new Error('Filename must have an extension');
|
|
48
|
-
}
|
|
49
|
-
const extension = parts[parts.length - 1].toLowerCase();
|
|
50
|
-
if (!allowedExtensions.includes(extension)) {
|
|
51
|
-
throw new Error(`Invalid file extension. Allowed extensions: ${allowedExtensions.join(', ')}`);
|
|
52
|
-
}
|
|
53
|
-
// Check length (防止过长文件名)
|
|
54
|
-
if (filename.length > 255) {
|
|
55
|
-
throw new Error('Filename is too long (max 255 characters)');
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Sanitizes a filename by removing or replacing invalid characters
|
|
60
|
-
*
|
|
61
|
-
* @param filename - The filename to sanitize
|
|
62
|
-
* @param defaultExtension - Default extension if none provided
|
|
63
|
-
* @returns A safe filename
|
|
64
|
-
*
|
|
65
|
-
* @example
|
|
66
|
-
* ```typescript
|
|
67
|
-
* sanitizeFilename('my file!.png') // 'my-file.png'
|
|
68
|
-
* sanitizeFilename('test', 'json') // 'test.json'
|
|
69
|
-
* ```
|
|
70
|
-
*/
|
|
71
|
-
export function sanitizeFilename(filename, defaultExtension) {
|
|
72
|
-
// Remove path components
|
|
73
|
-
filename = filename.split('/').pop();
|
|
74
|
-
filename = filename.split('\\').pop();
|
|
75
|
-
// Remove or replace invalid characters
|
|
76
|
-
filename = filename.replace(/[^a-zA-Z0-9_.-]/g, '-');
|
|
77
|
-
// Remove multiple consecutive hyphens or dots
|
|
78
|
-
filename = filename.replace(/[-]{2,}/g, '-');
|
|
79
|
-
filename = filename.replace(/[.]{2,}/g, '.');
|
|
80
|
-
// Ensure extension
|
|
81
|
-
if (defaultExtension && !filename.includes('.')) {
|
|
82
|
-
filename = `${filename}.${defaultExtension}`;
|
|
83
|
-
}
|
|
84
|
-
// Limit length
|
|
85
|
-
if (filename.length > 255) {
|
|
86
|
-
const parts = filename.split('.');
|
|
87
|
-
const ext = parts.pop();
|
|
88
|
-
const name = parts.join('.').substring(0, 255 - ext.length - 1);
|
|
89
|
-
filename = `${name}.${ext}`;
|
|
90
|
-
}
|
|
91
|
-
return filename;
|
|
92
|
-
}
|
|
1
|
+
export * from '../runtime/validation/validation.js';
|
|
93
2
|
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/core/validation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/core/validation.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ElementRef resolver for locating elements in miniProgram pages
|
|
3
|
+
* Supports multiple location strategies: refId, selector, xpath, index
|
|
4
|
+
*
|
|
5
|
+
* Cache Invalidation:
|
|
6
|
+
* - Element cache is automatically cleared when page navigation is detected
|
|
7
|
+
* - Cached elements are validated against current page before use
|
|
8
|
+
* - Stale elements (from different pages) are removed automatically
|
|
9
|
+
*/
|
|
10
|
+
import type { SessionState, ElementRefInput, ResolvedElement } from '../../types.js';
|
|
11
|
+
import type { Page } from '../../types/miniprogram-automator.js';
|
|
12
|
+
/**
|
|
13
|
+
* Generate a unique reference ID for caching elements
|
|
14
|
+
*/
|
|
15
|
+
export declare function generateRefId(): string;
|
|
16
|
+
/**
|
|
17
|
+
* Check if page has changed and clear stale element cache
|
|
18
|
+
* Called before each element resolution to ensure cache validity
|
|
19
|
+
*
|
|
20
|
+
* @param state - Session state with element cache
|
|
21
|
+
* @param currentPagePath - Current page path
|
|
22
|
+
*/
|
|
23
|
+
export declare function invalidateStaleCacheEntries(state: SessionState, currentPagePath: string): void;
|
|
24
|
+
/**
|
|
25
|
+
* Resolve page object from sessionState
|
|
26
|
+
* @param state - Session state containing miniProgram instance
|
|
27
|
+
* @param pagePath - Optional page path. If not provided, uses currentPage
|
|
28
|
+
* @returns Page object
|
|
29
|
+
* @throws Error if miniProgram not connected or page not found
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolvePage(state: SessionState, pagePath?: string): Promise<Page>;
|
|
32
|
+
/**
|
|
33
|
+
* Resolve element using various location strategies
|
|
34
|
+
* @param state - Session state containing element cache
|
|
35
|
+
* @param ref - Element reference input with location strategy
|
|
36
|
+
* @returns Resolved element with page, element object, and optional refId
|
|
37
|
+
* @throws Error if element not found or invalid reference
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolveElement(state: SessionState, ref: ElementRefInput): Promise<ResolvedElement>;
|
|
40
|
+
/**
|
|
41
|
+
* Validate ElementRefInput and provide helpful error messages
|
|
42
|
+
*/
|
|
43
|
+
export declare function validateElementRef(ref: ElementRefInput): void;
|
|
44
|
+
//# sourceMappingURL=element-ref.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element-ref.d.ts","sourceRoot":"","sources":["../../../src/runtime/element/element-ref.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACpF,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,sCAAsC,CAAA;AAEzE;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAgB9F;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCvF;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,eAAe,GACnB,OAAO,CAAC,eAAe,CAAC,CAoI1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAwB7D"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
/**
|
|
3
|
+
* ElementRef resolver for locating elements in miniProgram pages
|
|
4
|
+
* Supports multiple location strategies: refId, selector, xpath, index
|
|
5
|
+
*
|
|
6
|
+
* Cache Invalidation:
|
|
7
|
+
* - Element cache is automatically cleared when page navigation is detected
|
|
8
|
+
* - Cached elements are validated against current page before use
|
|
9
|
+
* - Stale elements (from different pages) are removed automatically
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Generate a unique reference ID for caching elements
|
|
13
|
+
*/
|
|
14
|
+
export function generateRefId() {
|
|
15
|
+
return Math.random().toString(36).slice(2) + Date.now().toString(36);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Check if page has changed and clear stale element cache
|
|
19
|
+
* Called before each element resolution to ensure cache validity
|
|
20
|
+
*
|
|
21
|
+
* @param state - Session state with element cache
|
|
22
|
+
* @param currentPagePath - Current page path
|
|
23
|
+
*/
|
|
24
|
+
export function invalidateStaleCacheEntries(state, currentPagePath) {
|
|
25
|
+
// If page has changed, clear entire cache (safe approach)
|
|
26
|
+
if (state.currentPagePath && state.currentPagePath !== currentPagePath) {
|
|
27
|
+
const previousPath = state.currentPagePath;
|
|
28
|
+
const clearedCount = state.elements.size;
|
|
29
|
+
state.elements.clear();
|
|
30
|
+
state.logger?.info('Element cache cleared due to page navigation', {
|
|
31
|
+
previousPage: previousPath,
|
|
32
|
+
currentPage: currentPagePath,
|
|
33
|
+
clearedElements: clearedCount,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
// Update current page path
|
|
37
|
+
state.currentPagePath = currentPagePath;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Resolve page object from sessionState
|
|
41
|
+
* @param state - Session state containing miniProgram instance
|
|
42
|
+
* @param pagePath - Optional page path. If not provided, uses currentPage
|
|
43
|
+
* @returns Page object
|
|
44
|
+
* @throws Error if miniProgram not connected or page not found
|
|
45
|
+
*/
|
|
46
|
+
export async function resolvePage(state, pagePath) {
|
|
47
|
+
if (!state.miniProgram) {
|
|
48
|
+
throw new Error('MiniProgram not launched or connected. Call miniprogram_launch or miniprogram_connect first.');
|
|
49
|
+
}
|
|
50
|
+
// If no pagePath specified, use current page
|
|
51
|
+
if (!pagePath) {
|
|
52
|
+
const currentPage = await state.miniProgram.currentPage();
|
|
53
|
+
if (!currentPage) {
|
|
54
|
+
throw new Error('No current page found. Ensure the miniProgram has navigated to a page.');
|
|
55
|
+
}
|
|
56
|
+
return currentPage;
|
|
57
|
+
}
|
|
58
|
+
// Find page in pageStack by path
|
|
59
|
+
const pageStack = await state.miniProgram.pageStack();
|
|
60
|
+
if (!Array.isArray(pageStack) || pageStack.length === 0) {
|
|
61
|
+
throw new Error('Page stack is empty. Ensure miniProgram has navigated to pages.');
|
|
62
|
+
}
|
|
63
|
+
// Normalize pagePath (support both '/path' and 'path')
|
|
64
|
+
const normalizedPath = pagePath.startsWith('/') ? pagePath.slice(1) : pagePath;
|
|
65
|
+
const found = pageStack.find((p) => p.path === normalizedPath || p.path === pagePath);
|
|
66
|
+
if (!found) {
|
|
67
|
+
const availablePaths = pageStack.map((p) => p.path).join(', ');
|
|
68
|
+
throw new Error(`Page not found in stack: ${pagePath}. Available pages: ${availablePaths}`);
|
|
69
|
+
}
|
|
70
|
+
return found;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Resolve element using various location strategies
|
|
74
|
+
* @param state - Session state containing element cache
|
|
75
|
+
* @param ref - Element reference input with location strategy
|
|
76
|
+
* @returns Resolved element with page, element object, and optional refId
|
|
77
|
+
* @throws Error if element not found or invalid reference
|
|
78
|
+
*/
|
|
79
|
+
export async function resolveElement(state, ref) {
|
|
80
|
+
// Get the page first
|
|
81
|
+
const page = await resolvePage(state, ref.pagePath);
|
|
82
|
+
// Get current page path for cache validation
|
|
83
|
+
const currentPagePath = page.path || (await state.miniProgram?.currentPage())?.path;
|
|
84
|
+
// Invalidate stale cache entries if page has changed
|
|
85
|
+
if (currentPagePath) {
|
|
86
|
+
invalidateStaleCacheEntries(state, currentPagePath);
|
|
87
|
+
}
|
|
88
|
+
let element = null;
|
|
89
|
+
// Strategy 1: Use cached refId
|
|
90
|
+
if (ref.refId) {
|
|
91
|
+
const cached = state.elements.get(ref.refId);
|
|
92
|
+
if (!cached) {
|
|
93
|
+
const availableRefs = Array.from(state.elements.keys()).join(', ');
|
|
94
|
+
throw new Error(`Invalid refId: ${ref.refId}. ` +
|
|
95
|
+
`Available refIds: ${availableRefs || '(none)'}. ` +
|
|
96
|
+
`The element may have been removed or the page has changed.`);
|
|
97
|
+
}
|
|
98
|
+
// Validate that cached element is from current page
|
|
99
|
+
if (currentPagePath && cached.pagePath !== currentPagePath) {
|
|
100
|
+
// Remove stale entry
|
|
101
|
+
state.elements.delete(ref.refId);
|
|
102
|
+
throw new Error(`Cached element refId ${ref.refId} is stale. ` +
|
|
103
|
+
`Element was cached on page '${cached.pagePath}' but current page is '${currentPagePath}'. ` +
|
|
104
|
+
`Please re-query the element on the current page.`);
|
|
105
|
+
}
|
|
106
|
+
element = cached.element;
|
|
107
|
+
}
|
|
108
|
+
// Strategy 2: Use XPath (requires SDK 0.11.0+)
|
|
109
|
+
else if (ref.xpath) {
|
|
110
|
+
const anyPage = page;
|
|
111
|
+
// Check if xpath is supported
|
|
112
|
+
if (typeof anyPage.xpath !== 'function' && typeof anyPage.getElementByXpath !== 'function') {
|
|
113
|
+
throw new Error('XPath is not supported by current miniprogram-automator SDK version. ' +
|
|
114
|
+
'Please upgrade to SDK 0.11.0 or later, or use selector instead.');
|
|
115
|
+
}
|
|
116
|
+
// If index is specified, use getElementsByXpath
|
|
117
|
+
if (typeof ref.index === 'number') {
|
|
118
|
+
if (typeof anyPage.getElementsByXpath === 'function') {
|
|
119
|
+
const elements = await anyPage.getElementsByXpath(ref.xpath);
|
|
120
|
+
if (!Array.isArray(elements) || elements.length === 0) {
|
|
121
|
+
throw new Error(`No elements found with XPath: ${ref.xpath}`);
|
|
122
|
+
}
|
|
123
|
+
if (ref.index < 0 || ref.index >= elements.length) {
|
|
124
|
+
throw new Error(`Index ${ref.index} out of range. Found ${elements.length} elements with XPath: ${ref.xpath}`);
|
|
125
|
+
}
|
|
126
|
+
element = elements[ref.index];
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
throw new Error('getElementsByXpath is not supported. Cannot use index with xpath in this SDK version.');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// Use getElementByXpath or xpath (fallback)
|
|
134
|
+
if (typeof anyPage.getElementByXpath === 'function') {
|
|
135
|
+
element = await anyPage.getElementByXpath(ref.xpath);
|
|
136
|
+
}
|
|
137
|
+
else if (typeof anyPage.xpath === 'function') {
|
|
138
|
+
element = await anyPage.xpath(ref.xpath);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (!element) {
|
|
142
|
+
throw new Error(`Element not found with XPath: ${ref.xpath}`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Strategy 3: Use CSS selector
|
|
146
|
+
else if (ref.selector) {
|
|
147
|
+
// If index is specified, use $$
|
|
148
|
+
if (typeof ref.index === 'number') {
|
|
149
|
+
const elements = await page.$$(ref.selector);
|
|
150
|
+
if (!Array.isArray(elements) || elements.length === 0) {
|
|
151
|
+
throw new Error(`No elements found with selector: ${ref.selector}`);
|
|
152
|
+
}
|
|
153
|
+
if (ref.index < 0 || ref.index >= elements.length) {
|
|
154
|
+
throw new Error(`Index ${ref.index} out of range. Found ${elements.length} elements with selector: ${ref.selector}`);
|
|
155
|
+
}
|
|
156
|
+
element = elements[ref.index];
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Use $ for single element
|
|
160
|
+
element = await page.$(ref.selector);
|
|
161
|
+
if (!element) {
|
|
162
|
+
throw new Error(`Element not found with selector: ${ref.selector}`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// No valid location strategy provided
|
|
167
|
+
else {
|
|
168
|
+
throw new Error('Invalid ElementRef: must provide one of: refId, selector, or xpath');
|
|
169
|
+
}
|
|
170
|
+
// Cache element if save=true
|
|
171
|
+
let newRefId;
|
|
172
|
+
if (ref.save && element) {
|
|
173
|
+
newRefId = generateRefId();
|
|
174
|
+
// Store element with page metadata for cache invalidation
|
|
175
|
+
state.elements.set(newRefId, {
|
|
176
|
+
element,
|
|
177
|
+
pagePath: currentPagePath || page.path || 'unknown',
|
|
178
|
+
cachedAt: new Date(),
|
|
179
|
+
});
|
|
180
|
+
state.logger?.info('Element cached with refId', {
|
|
181
|
+
refId: newRefId,
|
|
182
|
+
pagePath: currentPagePath || page.path,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
return {
|
|
186
|
+
page,
|
|
187
|
+
element,
|
|
188
|
+
refId: newRefId,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Validate ElementRefInput and provide helpful error messages
|
|
193
|
+
*/
|
|
194
|
+
export function validateElementRef(ref) {
|
|
195
|
+
if (!ref || typeof ref !== 'object') {
|
|
196
|
+
throw new Error('ElementRef must be an object');
|
|
197
|
+
}
|
|
198
|
+
const hasRefId = typeof ref.refId === 'string' && ref.refId.length > 0;
|
|
199
|
+
const hasSelector = typeof ref.selector === 'string' && ref.selector.length > 0;
|
|
200
|
+
const hasXpath = typeof ref.xpath === 'string' && ref.xpath.length > 0;
|
|
201
|
+
if (!hasRefId && !hasSelector && !hasXpath) {
|
|
202
|
+
throw new Error('ElementRef must provide one of: refId, selector, or xpath');
|
|
203
|
+
}
|
|
204
|
+
if (ref.index !== undefined && typeof ref.index !== 'number') {
|
|
205
|
+
throw new Error('ElementRef.index must be a number');
|
|
206
|
+
}
|
|
207
|
+
if (ref.pagePath !== undefined && typeof ref.pagePath !== 'string') {
|
|
208
|
+
throw new Error('ElementRef.pagePath must be a string');
|
|
209
|
+
}
|
|
210
|
+
if (ref.save !== undefined && typeof ref.save !== 'boolean') {
|
|
211
|
+
throw new Error('ElementRef.save must be a boolean');
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=element-ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element-ref.js","sourceRoot":"","sources":["../../../src/runtime/element/element-ref.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/element/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/element/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime facade aggregating session, logging, output, timeout, and validation helpers.
|
|
3
|
+
*/
|
|
4
|
+
export * from './session/index.js';
|
|
5
|
+
export * from './logging/index.js';
|
|
6
|
+
export * from './outputs/index.js';
|
|
7
|
+
export * from './timeout/index.js';
|
|
8
|
+
export * from './validation/index.js';
|
|
9
|
+
export * from './element/index.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime facade aggregating session, logging, output, timeout, and validation helpers.
|
|
3
|
+
*/
|
|
4
|
+
export * from './session/index.js';
|
|
5
|
+
export * from './logging/index.js';
|
|
6
|
+
export * from './outputs/index.js';
|
|
7
|
+
export * from './timeout/index.js';
|
|
8
|
+
export * from './validation/index.js';
|
|
9
|
+
export * from './element/index.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/logging/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/logging/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger implementation for structured logging with file support
|
|
3
|
+
*/
|
|
4
|
+
import type { Logger, LoggerConfig } from '../../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Console-based logger implementation
|
|
7
|
+
*/
|
|
8
|
+
export declare class ConsoleLogger implements Logger {
|
|
9
|
+
private sessionId?;
|
|
10
|
+
private toolName?;
|
|
11
|
+
private config;
|
|
12
|
+
private fileWriter?;
|
|
13
|
+
constructor(sessionId?: string, toolName?: string, config?: LoggerConfig);
|
|
14
|
+
/**
|
|
15
|
+
* Merge user config with defaults and validate values (Issue #7)
|
|
16
|
+
*/
|
|
17
|
+
private mergeConfig;
|
|
18
|
+
/**
|
|
19
|
+
* Check if log level should be output
|
|
20
|
+
*/
|
|
21
|
+
private shouldLog;
|
|
22
|
+
/**
|
|
23
|
+
* Create log entry with metadata
|
|
24
|
+
*/
|
|
25
|
+
private createEntry;
|
|
26
|
+
/**
|
|
27
|
+
* Format log entry for console output
|
|
28
|
+
*/
|
|
29
|
+
private format;
|
|
30
|
+
info(message: string, context?: Record<string, any>): void;
|
|
31
|
+
warn(message: string, context?: Record<string, any>): void;
|
|
32
|
+
error(message: string, context?: Record<string, any>): void;
|
|
33
|
+
debug(message: string, context?: Record<string, any>): void;
|
|
34
|
+
/**
|
|
35
|
+
* Log entry to console and optionally to file
|
|
36
|
+
*/
|
|
37
|
+
private log;
|
|
38
|
+
/**
|
|
39
|
+
* Flush log buffer to file
|
|
40
|
+
*/
|
|
41
|
+
flush(): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Dispose logger and flush buffer
|
|
44
|
+
*/
|
|
45
|
+
dispose(): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Create a child logger with specific tool name
|
|
48
|
+
*/
|
|
49
|
+
child(toolName: string): Logger;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create a logger for a session
|
|
53
|
+
*/
|
|
54
|
+
export declare function createLogger(sessionId: string, config?: LoggerConfig): Logger;
|
|
55
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/runtime/logging/logger.ts"],"names":[],"mappings":"AACA;;GAEG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AA8P9E;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,OAAO,CAAC,SAAS,CAAC,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAQ;IACzB,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,UAAU,CAAC,CAAY;gBAEnB,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY;IAgBxE;;OAEG;IACH,OAAO,CAAC,WAAW;IA2CnB;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;OAEG;IACH,OAAO,CAAC,MAAM;IAUd,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAM1D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAM1D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAM3D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAM3D;;OAEG;IACH,OAAO,CAAC,GAAG;IAQX;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CAGhC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAE7E"}
|