retestkit 1.13.0 → 1.14.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 +96 -16
- package/dist/config.d.ts +2 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +47 -51
- package/dist/config.js.map +1 -1
- package/dist/schemas/config.d.ts +1 -1
- package/dist/schemas/config.d.ts.map +1 -1
- package/dist/schemas/config.js +8 -11
- package/dist/schemas/config.js.map +1 -1
- package/dist/schemas/file-config.d.ts +27 -2
- package/dist/schemas/file-config.d.ts.map +1 -1
- package/dist/schemas/file-config.js +34 -3
- package/dist/schemas/file-config.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -75,24 +75,104 @@ npm run test:e2e
|
|
|
75
75
|
|
|
76
76
|
E2E tests have extended timeouts (5 minutes per test) and run serially to avoid resource contention. They create isolated temporary workspaces that are cleaned up after each test.
|
|
77
77
|
|
|
78
|
+
## Quick Start
|
|
79
|
+
|
|
80
|
+
RetestKit is designed for **zero-configuration installation**. Just add the server to your MCP client and run `/init` to configure.
|
|
81
|
+
|
|
82
|
+
### Adding to MCP Clients
|
|
83
|
+
|
|
84
|
+
**VS Code / GitHub Copilot** (`.vscode/mcp.json`):
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"servers": {
|
|
88
|
+
"retestkit": {
|
|
89
|
+
"type": "stdio",
|
|
90
|
+
"command": "npx",
|
|
91
|
+
"args": ["retestkit"]
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Claude Desktop** (`claude_desktop_config.json`):
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"mcpServers": {
|
|
101
|
+
"retestkit": {
|
|
102
|
+
"command": "npx",
|
|
103
|
+
"args": ["retestkit"]
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Cursor / Cline** (settings):
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"mcpServers": {
|
|
113
|
+
"retestkit": {
|
|
114
|
+
"command": "npx",
|
|
115
|
+
"args": ["retestkit"]
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
> **Note:** No `env` or `inputs` sections needed. All configuration happens via the `/init` prompt after the server starts.
|
|
122
|
+
|
|
123
|
+
### First-Time Setup
|
|
124
|
+
|
|
125
|
+
After adding the server to your MCP client:
|
|
126
|
+
|
|
127
|
+
1. **Run `/init`** - The init prompt guides you through configuration
|
|
128
|
+
2. **Provide target URL** - The URL of the web application to test
|
|
129
|
+
3. **Configuration saved** - Settings are stored in `.mcp/retestkit.json`
|
|
130
|
+
|
|
131
|
+
The `/init` prompt handles:
|
|
132
|
+
- Creating the config file (`.mcp/retestkit.json`)
|
|
133
|
+
- Setting up shortcuts (e.g., `/retest` command)
|
|
134
|
+
- Guiding you to start testing with `/cover`
|
|
135
|
+
|
|
78
136
|
## Configuration
|
|
79
137
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
138
|
+
RetestKit uses `.mcp/retestkit.json` for all configuration. This file is created automatically when you run `/init`.
|
|
139
|
+
|
|
140
|
+
**Example `.mcp/retestkit.json`:**
|
|
141
|
+
```json
|
|
142
|
+
{
|
|
143
|
+
"version": 1,
|
|
144
|
+
"targetUrl": "https://myapp.com",
|
|
145
|
+
"specsPath": "./specs",
|
|
146
|
+
"allowedDomains": ["myapp.com", "*.myapp.com"],
|
|
147
|
+
"transport": "stdio",
|
|
148
|
+
"port": 3000,
|
|
149
|
+
"workspaceDir": "./retest",
|
|
150
|
+
"limits": {
|
|
151
|
+
"maxSteps": 50,
|
|
152
|
+
"maxMinutes": 30,
|
|
153
|
+
"maxPages": 20
|
|
154
|
+
},
|
|
155
|
+
"logging": {
|
|
156
|
+
"level": "info"
|
|
157
|
+
},
|
|
158
|
+
"playwright": {
|
|
159
|
+
"command": "npx",
|
|
160
|
+
"args": ["@playwright/mcp@latest"]
|
|
161
|
+
},
|
|
162
|
+
"checkpointInterval": 5,
|
|
163
|
+
"screenshotFormat": "png",
|
|
164
|
+
"screenshotQuality": 80
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Config file discovery order:**
|
|
169
|
+
1. CLI flag: `--config /path/to/config.json`
|
|
170
|
+
2. Environment: `RETESTKIT_CONFIG=/path/to/config.json`
|
|
171
|
+
3. Workspace: `./.mcp/retestkit.json`
|
|
172
|
+
4. User-level: `~/.config/retestkit/config.json`
|
|
173
|
+
5. Built-in defaults
|
|
174
|
+
|
|
175
|
+
> **Note:** Environment variables are **not supported** for configuration values. Only `RETESTKIT_CONFIG` is recognized (to specify the config file path for CI/CD pipelines).
|
|
96
176
|
|
|
97
177
|
## Available Tools
|
|
98
178
|
|
package/dist/config.d.ts
CHANGED
|
@@ -52,7 +52,8 @@ export declare function loadConfigFile(configPath: string): LoadConfigFileResult
|
|
|
52
52
|
* 4. User-level: ~/.config/retestkit/config.json
|
|
53
53
|
* 5. Built-in defaults
|
|
54
54
|
*
|
|
55
|
-
*
|
|
55
|
+
* All configuration comes from the config file. Environment variables
|
|
56
|
+
* are NOT supported except for RETESTKIT_CONFIG to specify the file path.
|
|
56
57
|
*
|
|
57
58
|
* @param cliConfigPath Optional path from --config CLI flag
|
|
58
59
|
* @returns Validated Config object
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,0BAA0B,CAAC;AAElC;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,iBAAiB,CA+BxE;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,CA8CvE;AAyDD
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,0BAA0B,CAAC;AAElC;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,iBAAiB,CA+BxE;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,CA8CvE;AAyDD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CA2BzD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAO5E;AAED,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -91,57 +91,52 @@ export function loadConfigFile(configPath) {
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
/**
|
|
94
|
-
*
|
|
95
|
-
*
|
|
94
|
+
* Maps file-based config to runtime config format.
|
|
95
|
+
* No environment variable overrides - all config comes from the file.
|
|
96
|
+
* Only RETESTKIT_CONFIG env var is supported (for config file path).
|
|
96
97
|
*/
|
|
97
|
-
function
|
|
98
|
+
function mapFileConfigToRuntime(fileConfig) {
|
|
98
99
|
const rawConfig = {};
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
100
|
+
if (!fileConfig) {
|
|
101
|
+
return rawConfig;
|
|
102
|
+
}
|
|
103
|
+
// Map file config values to runtime config schema
|
|
104
|
+
if (fileConfig.transport) {
|
|
105
|
+
rawConfig.transport = fileConfig.transport;
|
|
106
|
+
}
|
|
107
|
+
if (fileConfig.port !== undefined) {
|
|
108
|
+
rawConfig.port = fileConfig.port;
|
|
109
|
+
}
|
|
110
|
+
if (fileConfig.workspaceDir) {
|
|
111
|
+
rawConfig.workspaceDir = fileConfig.workspaceDir;
|
|
112
|
+
}
|
|
113
|
+
if (fileConfig.logging?.level) {
|
|
114
|
+
rawConfig.logLevel = fileConfig.logging.level;
|
|
115
|
+
}
|
|
116
|
+
if (fileConfig.limits?.maxSteps) {
|
|
117
|
+
rawConfig.defaultMaxSteps = fileConfig.limits.maxSteps;
|
|
118
|
+
}
|
|
119
|
+
if (fileConfig.limits?.maxMinutes) {
|
|
120
|
+
rawConfig.defaultMaxMinutes = fileConfig.limits.maxMinutes;
|
|
121
|
+
}
|
|
122
|
+
if (fileConfig.limits?.maxPages) {
|
|
123
|
+
rawConfig.defaultMaxPages = fileConfig.limits.maxPages;
|
|
124
|
+
}
|
|
125
|
+
if (fileConfig.playwright?.command) {
|
|
126
|
+
rawConfig.playwrightMcpCommand = fileConfig.playwright.command;
|
|
127
|
+
}
|
|
128
|
+
if (fileConfig.playwright?.args) {
|
|
129
|
+
rawConfig.playwrightMcpArgs = fileConfig.playwright.args;
|
|
130
|
+
}
|
|
131
|
+
if (fileConfig.checkpointInterval !== undefined) {
|
|
132
|
+
rawConfig.checkpointInterval = fileConfig.checkpointInterval;
|
|
133
|
+
}
|
|
134
|
+
if (fileConfig.screenshotFormat) {
|
|
135
|
+
rawConfig.screenshotFormat = fileConfig.screenshotFormat;
|
|
136
|
+
}
|
|
137
|
+
if (fileConfig.screenshotQuality !== undefined) {
|
|
138
|
+
rawConfig.screenshotQuality = fileConfig.screenshotQuality;
|
|
119
139
|
}
|
|
120
|
-
// Environment variables override file config
|
|
121
|
-
if (process.env.TRANSPORT)
|
|
122
|
-
rawConfig.transport = process.env.TRANSPORT;
|
|
123
|
-
if (process.env.PORT)
|
|
124
|
-
rawConfig.port = process.env.PORT;
|
|
125
|
-
if (process.env.LOG_LEVEL)
|
|
126
|
-
rawConfig.logLevel = process.env.LOG_LEVEL;
|
|
127
|
-
if (process.env.RETEST_WORKSPACE_DIR)
|
|
128
|
-
rawConfig.workspaceDir = process.env.RETEST_WORKSPACE_DIR;
|
|
129
|
-
if (process.env.PLAYWRIGHT_MCP_COMMAND)
|
|
130
|
-
rawConfig.playwrightMcpCommand = process.env.PLAYWRIGHT_MCP_COMMAND;
|
|
131
|
-
if (process.env.PLAYWRIGHT_MCP_ARGS)
|
|
132
|
-
rawConfig.playwrightMcpArgs = process.env.PLAYWRIGHT_MCP_ARGS;
|
|
133
|
-
if (process.env.RETEST_CHECKPOINT_INTERVAL)
|
|
134
|
-
rawConfig.checkpointInterval = process.env.RETEST_CHECKPOINT_INTERVAL;
|
|
135
|
-
if (process.env.RETEST_SCREENSHOT_FORMAT)
|
|
136
|
-
rawConfig.screenshotFormat = process.env.RETEST_SCREENSHOT_FORMAT;
|
|
137
|
-
if (process.env.RETEST_SCREENSHOT_QUALITY)
|
|
138
|
-
rawConfig.screenshotQuality = process.env.RETEST_SCREENSHOT_QUALITY;
|
|
139
|
-
if (process.env.RETEST_DEFAULT_MAX_STEPS)
|
|
140
|
-
rawConfig.defaultMaxSteps = process.env.RETEST_DEFAULT_MAX_STEPS;
|
|
141
|
-
if (process.env.RETEST_DEFAULT_MAX_MINUTES)
|
|
142
|
-
rawConfig.defaultMaxMinutes = process.env.RETEST_DEFAULT_MAX_MINUTES;
|
|
143
|
-
if (process.env.RETEST_DEFAULT_MAX_PAGES)
|
|
144
|
-
rawConfig.defaultMaxPages = process.env.RETEST_DEFAULT_MAX_PAGES;
|
|
145
140
|
return rawConfig;
|
|
146
141
|
}
|
|
147
142
|
/**
|
|
@@ -152,7 +147,8 @@ function mergeConfigWithEnv(fileConfig) {
|
|
|
152
147
|
* 4. User-level: ~/.config/retestkit/config.json
|
|
153
148
|
* 5. Built-in defaults
|
|
154
149
|
*
|
|
155
|
-
*
|
|
150
|
+
* All configuration comes from the config file. Environment variables
|
|
151
|
+
* are NOT supported except for RETESTKIT_CONFIG to specify the file path.
|
|
156
152
|
*
|
|
157
153
|
* @param cliConfigPath Optional path from --config CLI flag
|
|
158
154
|
* @returns Validated Config object
|
|
@@ -170,8 +166,8 @@ export function loadConfig(cliConfigPath) {
|
|
|
170
166
|
}
|
|
171
167
|
fileConfig = fileResult.config;
|
|
172
168
|
}
|
|
173
|
-
//
|
|
174
|
-
const rawConfig =
|
|
169
|
+
// Map file config to runtime format (no env var overrides)
|
|
170
|
+
const rawConfig = mapFileConfigToRuntime(fileConfig);
|
|
175
171
|
const result = ConfigSchema.safeParse(rawConfig);
|
|
176
172
|
if (!result.success) {
|
|
177
173
|
const errors = result.error.issues
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAe,MAAM,qBAAqB,CAAC;AAChE,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GAEvB,MAAM,0BAA0B,CAAC;AAmBlC;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,aAAsB;IACnD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAE/D,0CAA0C;IAC1C,MAAM,QAAQ,GACZ,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC1B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC;QAClE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IAErE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAE7C,MAAM,MAAM,GAAsB;QAChC,OAAO,EAAE,aAAa;QACtB,OAAO;QACP,aAAa;QACb,QAAQ;KACT,CAAC;IAEF,8BAA8B;IAC9B,IAAI,aAAa,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,YAAY,GAAG,aAAa,CAAC;IACtC,CAAC;SAAM,IAAI,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC;IAChC,CAAC;SAAM,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,YAAY,GAAG,aAAa,CAAC;IACtC,CAAC;SAAM,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC;IACjC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAaD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjC,gCAAgC;QAChC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,sBAAsB,EAAE,CAAC;YAC1D,OAAO,CAAC,IAAI,CACV,wBAAwB,UAAU,4BAA4B,IAAI,CAAC,OAAO,IAAI;gBAC5E,gCAAgC,sBAAsB,qCAAqC,CAC9F,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;iBAC/B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;iBAC3D,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,uBAAuB,UAAU,KAAK,MAAM,EAAE;gBACrD,IAAI,EAAE,UAAU;aACjB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,MAAM,CAAC,IAAI;YACnB,IAAI,EAAE,UAAU;SACjB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;YAC/B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,+BAA+B,UAAU,KAAK,GAAG,CAAC,OAAO,EAAE;gBAClE,IAAI,EAAE,UAAU;aACjB,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,8BAA8B,UAAU,KAAK,OAAO,EAAE;YAC7D,IAAI,EAAE,UAAU;SACjB,CAAC;IACJ,CAAC;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas/config.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
25
25
|
}>>;
|
|
26
26
|
workspaceDir: z.ZodDefault<z.ZodString>;
|
|
27
27
|
playwrightMcpCommand: z.ZodDefault<z.ZodString>;
|
|
28
|
-
playwrightMcpArgs: z.ZodPipe<z.ZodDefault<z.ZodOptional<z.ZodString
|
|
28
|
+
playwrightMcpArgs: z.ZodPipe<z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>, z.ZodTransform<string[], string | string[]>>;
|
|
29
29
|
checkpointInterval: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
30
30
|
screenshotFormat: z.ZodDefault<z.ZodEnum<{
|
|
31
31
|
png: "png";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/schemas/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,aAAa;;;EAA4B,CAAC;AACvD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,QAAQ;;;;;EAA6C,CAAC;AACnE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/schemas/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,aAAa;;;EAA4B,CAAC;AACvD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,QAAQ;;;;;EAA6C,CAAC;AACnE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;iBAqBvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
package/dist/schemas/config.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export const TransportType = z.enum(["stdio", "http"]);
|
|
3
3
|
export const LogLevel = z.enum(["debug", "info", "warn", "error"]);
|
|
4
|
-
export const ConfigSchema = z
|
|
5
|
-
.object({
|
|
4
|
+
export const ConfigSchema = z.object({
|
|
6
5
|
transport: TransportType.default("stdio"),
|
|
7
6
|
port: z.coerce.number().int().min(1).max(65535).default(3000),
|
|
8
7
|
logLevel: LogLevel.default("info"),
|
|
@@ -10,21 +9,19 @@ export const ConfigSchema = z
|
|
|
10
9
|
workspaceDir: z.string().default("./retest"),
|
|
11
10
|
playwrightMcpCommand: z.string().default("npx"),
|
|
12
11
|
playwrightMcpArgs: z
|
|
13
|
-
.string()
|
|
12
|
+
.union([z.string(), z.array(z.string())])
|
|
14
13
|
.optional()
|
|
15
14
|
.default("@playwright/mcp@latest")
|
|
16
|
-
.transform((val) =>
|
|
15
|
+
.transform((val) => {
|
|
16
|
+
if (Array.isArray(val))
|
|
17
|
+
return val;
|
|
18
|
+
return val ? val.split(",") : ["@playwright/mcp@latest"];
|
|
19
|
+
}),
|
|
17
20
|
checkpointInterval: z.coerce.number().int().min(1).default(5),
|
|
18
21
|
screenshotFormat: z.enum(["png", "jpeg"]).default("png"),
|
|
19
22
|
screenshotQuality: z.coerce.number().int().min(1).max(100).default(80),
|
|
20
23
|
defaultMaxSteps: z.coerce.number().int().min(1).default(50),
|
|
21
24
|
defaultMaxMinutes: z.coerce.number().int().min(1).default(30),
|
|
22
25
|
defaultMaxPages: z.coerce.number().int().min(1).default(20),
|
|
23
|
-
})
|
|
24
|
-
.refine((config) => {
|
|
25
|
-
if (config.transport === "http" && !process.env.PORT) {
|
|
26
|
-
return true; // Use default port
|
|
27
|
-
}
|
|
28
|
-
return true;
|
|
29
|
-
}, { message: "PORT is required when TRANSPORT=http" });
|
|
26
|
+
});
|
|
30
27
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/schemas/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAGvD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAGnE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/schemas/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAGvD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAGnE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7D,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;IAClC,uBAAuB;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;IAC5C,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/C,iBAAiB,EAAE,CAAC;SACjB,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SACxC,QAAQ,EAAE;SACV,OAAO,CAAC,wBAAwB,CAAC;SACjC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;QACjB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QACnC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;IAC3D,CAAC,CAAC;IACJ,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7D,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACxD,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtE,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3D,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7D,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC5D,CAAC,CAAC"}
|
|
@@ -2,13 +2,20 @@ import { z } from "zod";
|
|
|
2
2
|
/**
|
|
3
3
|
* Schema for .mcp/retestkit.json configuration file.
|
|
4
4
|
*
|
|
5
|
-
* This is the file-based configuration format
|
|
6
|
-
*
|
|
5
|
+
* This is the file-based configuration format. All configuration
|
|
6
|
+
* is done via this file; environment variables are not supported
|
|
7
|
+
* except for RETESTKIT_CONFIG to specify the config file path.
|
|
7
8
|
*/
|
|
8
9
|
export declare const FileConfigSchema: z.ZodObject<{
|
|
9
10
|
version: z.ZodLiteral<1>;
|
|
11
|
+
transport: z.ZodOptional<z.ZodEnum<{
|
|
12
|
+
stdio: "stdio";
|
|
13
|
+
http: "http";
|
|
14
|
+
}>>;
|
|
15
|
+
port: z.ZodOptional<z.ZodNumber>;
|
|
10
16
|
targetUrl: z.ZodOptional<z.ZodString>;
|
|
11
17
|
specsPath: z.ZodOptional<z.ZodString>;
|
|
18
|
+
workspaceDir: z.ZodOptional<z.ZodString>;
|
|
12
19
|
allowedDomains: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
13
20
|
limits: z.ZodOptional<z.ZodObject<{
|
|
14
21
|
maxSteps: z.ZodOptional<z.ZodNumber>;
|
|
@@ -27,6 +34,12 @@ export declare const FileConfigSchema: z.ZodObject<{
|
|
|
27
34
|
error: "error";
|
|
28
35
|
}>>;
|
|
29
36
|
}, z.core.$strip>>;
|
|
37
|
+
checkpointInterval: z.ZodOptional<z.ZodNumber>;
|
|
38
|
+
screenshotFormat: z.ZodOptional<z.ZodEnum<{
|
|
39
|
+
png: "png";
|
|
40
|
+
jpeg: "jpeg";
|
|
41
|
+
}>>;
|
|
42
|
+
screenshotQuality: z.ZodOptional<z.ZodNumber>;
|
|
30
43
|
}, z.core.$strip>;
|
|
31
44
|
export type FileConfig = z.infer<typeof FileConfigSchema>;
|
|
32
45
|
/**
|
|
@@ -34,8 +47,14 @@ export type FileConfig = z.infer<typeof FileConfigSchema>;
|
|
|
34
47
|
* All fields optional to allow incremental configuration.
|
|
35
48
|
*/
|
|
36
49
|
export declare const PartialFileConfigSchema: z.ZodObject<{
|
|
50
|
+
transport: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
|
|
51
|
+
stdio: "stdio";
|
|
52
|
+
http: "http";
|
|
53
|
+
}>>>;
|
|
54
|
+
port: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
37
55
|
targetUrl: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
38
56
|
specsPath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
57
|
+
workspaceDir: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
39
58
|
allowedDomains: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
40
59
|
limits: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
41
60
|
maxSteps: z.ZodOptional<z.ZodNumber>;
|
|
@@ -54,6 +73,12 @@ export declare const PartialFileConfigSchema: z.ZodObject<{
|
|
|
54
73
|
error: "error";
|
|
55
74
|
}>>;
|
|
56
75
|
}, z.core.$strip>>>;
|
|
76
|
+
checkpointInterval: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
77
|
+
screenshotFormat: z.ZodOptional<z.ZodOptional<z.ZodEnum<{
|
|
78
|
+
png: "png";
|
|
79
|
+
jpeg: "jpeg";
|
|
80
|
+
}>>>;
|
|
81
|
+
screenshotQuality: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
57
82
|
version: z.ZodOptional<z.ZodLiteral<1>>;
|
|
58
83
|
}, z.core.$strip>;
|
|
59
84
|
export type PartialFileConfig = z.infer<typeof PartialFileConfigSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-config.d.ts","sourceRoot":"","sources":["../../src/schemas/file-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB
|
|
1
|
+
{"version":3,"file":"file-config.d.ts","sourceRoot":"","sources":["../../src/schemas/file-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;GAMG;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyF3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAElC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { LogLevel } from "./config.js";
|
|
2
|
+
import { LogLevel, TransportType } from "./config.js";
|
|
3
3
|
/**
|
|
4
4
|
* Schema for .mcp/retestkit.json configuration file.
|
|
5
5
|
*
|
|
6
|
-
* This is the file-based configuration format
|
|
7
|
-
*
|
|
6
|
+
* This is the file-based configuration format. All configuration
|
|
7
|
+
* is done via this file; environment variables are not supported
|
|
8
|
+
* except for RETESTKIT_CONFIG to specify the config file path.
|
|
8
9
|
*/
|
|
9
10
|
export const FileConfigSchema = z.object({
|
|
10
11
|
/**
|
|
@@ -12,6 +13,16 @@ export const FileConfigSchema = z.object({
|
|
|
12
13
|
* Current version is 1.
|
|
13
14
|
*/
|
|
14
15
|
version: z.literal(1),
|
|
16
|
+
/**
|
|
17
|
+
* Transport type for MCP communication.
|
|
18
|
+
* Default: "stdio"
|
|
19
|
+
*/
|
|
20
|
+
transport: TransportType.optional(),
|
|
21
|
+
/**
|
|
22
|
+
* HTTP port when transport is "http".
|
|
23
|
+
* Default: 3000
|
|
24
|
+
*/
|
|
25
|
+
port: z.number().int().min(1).max(65535).optional(),
|
|
15
26
|
/**
|
|
16
27
|
* Default target URL for testing operations.
|
|
17
28
|
* Can be overridden per-operation via tool input.
|
|
@@ -21,6 +32,11 @@ export const FileConfigSchema = z.object({
|
|
|
21
32
|
* Path where test specs are stored, relative to workspace.
|
|
22
33
|
*/
|
|
23
34
|
specsPath: z.string().optional(),
|
|
35
|
+
/**
|
|
36
|
+
* Directory for analysis workspaces.
|
|
37
|
+
* Default: "./retest"
|
|
38
|
+
*/
|
|
39
|
+
workspaceDir: z.string().optional(),
|
|
24
40
|
/**
|
|
25
41
|
* Allowed domains for crawling. If specified, crawler will
|
|
26
42
|
* only visit URLs matching these domains.
|
|
@@ -53,6 +69,21 @@ export const FileConfigSchema = z.object({
|
|
|
53
69
|
level: LogLevel.optional(),
|
|
54
70
|
})
|
|
55
71
|
.optional(),
|
|
72
|
+
/**
|
|
73
|
+
* Steps between crawl checkpoints.
|
|
74
|
+
* Default: 5
|
|
75
|
+
*/
|
|
76
|
+
checkpointInterval: z.number().int().min(1).optional(),
|
|
77
|
+
/**
|
|
78
|
+
* Screenshot format for captured images.
|
|
79
|
+
* Default: "png"
|
|
80
|
+
*/
|
|
81
|
+
screenshotFormat: z.enum(["png", "jpeg"]).optional(),
|
|
82
|
+
/**
|
|
83
|
+
* JPEG quality for screenshots (1-100).
|
|
84
|
+
* Default: 80
|
|
85
|
+
*/
|
|
86
|
+
screenshotQuality: z.number().int().min(1).max(100).optional(),
|
|
56
87
|
});
|
|
57
88
|
/**
|
|
58
89
|
* Schema for validating partial config during init questionnaire.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-config.js","sourceRoot":"","sources":["../../src/schemas/file-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"file-config.js","sourceRoot":"","sources":["../../src/schemas/file-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtD;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC;;;OAGG;IACH,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAErB;;;OAGG;IACH,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE;IAEnC;;;OAGG;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IAEnD;;;OAGG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAEtC;;OAEG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEhC;;;OAGG;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEnC;;;OAGG;IACH,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAE9C;;OAEG;IACH,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC9C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC7C,CAAC;SACD,QAAQ,EAAE;IAEb;;OAEG;IACH,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KACrC,CAAC;SACD,QAAQ,EAAE;IAEb;;OAEG;IACH,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;KAC3B,CAAC;SACD,QAAQ,EAAE;IAEb;;;OAGG;IACH,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAEtD;;;OAGG;IACH,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAEpD;;;OAGG;IACH,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CAC/D,CAAC,CAAC;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;IACvE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC"}
|