@testingbot/cli 1.0.6 → 1.0.8
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 +25 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +79 -50
- package/dist/config/constants.d.ts +15 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +17 -0
- package/dist/index.js +2 -0
- package/dist/models/espresso_options.d.ts +11 -4
- package/dist/models/espresso_options.d.ts.map +1 -1
- package/dist/models/espresso_options.js +24 -7
- package/dist/models/maestro_options.d.ts +13 -3
- package/dist/models/maestro_options.d.ts.map +1 -1
- package/dist/models/maestro_options.js +25 -2
- package/dist/models/xcuitest_options.d.ts +11 -4
- package/dist/models/xcuitest_options.d.ts.map +1 -1
- package/dist/models/xcuitest_options.js +24 -7
- package/dist/providers/base_provider.d.ts +28 -2
- package/dist/providers/base_provider.d.ts.map +1 -1
- package/dist/providers/base_provider.js +70 -2
- package/dist/providers/espresso.d.ts +1 -0
- package/dist/providers/espresso.d.ts.map +1 -1
- package/dist/providers/espresso.js +82 -35
- package/dist/providers/maestro.d.ts +21 -0
- package/dist/providers/maestro.d.ts.map +1 -1
- package/dist/providers/maestro.js +320 -72
- package/dist/providers/xcuitest.d.ts +1 -0
- package/dist/providers/xcuitest.d.ts.map +1 -1
- package/dist/providers/xcuitest.js +79 -35
- package/dist/ui/banner.d.ts +3 -0
- package/dist/ui/banner.d.ts.map +1 -0
- package/dist/ui/banner.js +82 -0
- package/dist/ui/spinner.d.ts +32 -0
- package/dist/ui/spinner.d.ts.map +1 -0
- package/dist/ui/spinner.js +92 -0
- package/dist/ui/terminal-title.d.ts +8 -0
- package/dist/ui/terminal-title.d.ts.map +1 -0
- package/dist/ui/terminal-title.js +57 -0
- package/dist/upload.d.ts +4 -0
- package/dist/upload.d.ts.map +1 -1
- package/dist/upload.js +70 -12
- package/dist/utils/connectivity.js +5 -3
- package/dist/utils.d.ts +6 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +10 -0
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -113,6 +113,7 @@ testingbot maestro <app> <flows...> [options]
|
|
|
113
113
|
| `--include-tags <tags>` | Only run flows with these tags (comma-separated) |
|
|
114
114
|
| `--exclude-tags <tags>` | Exclude flows with these tags (comma-separated) |
|
|
115
115
|
| `-e, --env <KEY=VALUE>` | Environment variable for flows (can be repeated) |
|
|
116
|
+
| `--config <path>` | Path to a custom Maestro config file (default: config.yaml in project root) |
|
|
116
117
|
| `--maestro-version <version>` | Maestro version to use (e.g., "2.0.10") |
|
|
117
118
|
|
|
118
119
|
**Network & Location:**
|
|
@@ -122,6 +123,13 @@ testingbot maestro <app> <flows...> [options]
|
|
|
122
123
|
| `--throttle-network <speed>` | Network throttling: 4G, 3G, Edge, airplane, or disable |
|
|
123
124
|
| `--geo-country-code <code>` | Geographic IP location (ISO country code, e.g., "US", "DE") |
|
|
124
125
|
|
|
126
|
+
**Tunnel:**
|
|
127
|
+
|
|
128
|
+
| Option | Description |
|
|
129
|
+
|--------|-------------|
|
|
130
|
+
| `-t, --tunnel` | Start a TestingBot tunnel for this test run (cannot be combined with `--async`) |
|
|
131
|
+
| `--tunnel-identifier <id>` | Identifier for the tunnel, allowing multiple tunnels in parallel |
|
|
132
|
+
|
|
125
133
|
**Output Options:**
|
|
126
134
|
|
|
127
135
|
| Option | Description |
|
|
@@ -176,6 +184,9 @@ testingbot maestro app.apk ./flows --download-artifacts --build "build-123"
|
|
|
176
184
|
# Download artifacts only for failed tests
|
|
177
185
|
testingbot maestro app.apk ./flows --download-artifacts failed --artifacts-output-dir ./artifacts
|
|
178
186
|
|
|
187
|
+
# Use a custom config file
|
|
188
|
+
testingbot maestro app.apk ./flows --config .maestro/ci-config.yaml
|
|
189
|
+
|
|
179
190
|
# Run in background (async)
|
|
180
191
|
testingbot maestro app.apk ./flows --async
|
|
181
192
|
|
|
@@ -246,6 +257,13 @@ testingbot espresso [appFile] [testAppFile] [options]
|
|
|
246
257
|
| `--throttle-network <speed>` | Network throttling: 4G, 3G, Edge, or airplane |
|
|
247
258
|
| `--geo-location <code>` | Geographic IP location (ISO country code, e.g., "US", "DE") |
|
|
248
259
|
|
|
260
|
+
**Tunnel:**
|
|
261
|
+
|
|
262
|
+
| Option | Description |
|
|
263
|
+
|--------|-------------|
|
|
264
|
+
| `-t, --tunnel` | Start a TestingBot tunnel for this test run (cannot be combined with `--async`) |
|
|
265
|
+
| `--tunnel-identifier <id>` | Identifier for the tunnel, allowing multiple tunnels in parallel |
|
|
266
|
+
|
|
249
267
|
**Output Options:**
|
|
250
268
|
|
|
251
269
|
| Option | Description |
|
|
@@ -339,6 +357,13 @@ testingbot xcuitest [appFile] [testAppFile] [options]
|
|
|
339
357
|
| `--throttle-network <speed>` | Network throttling: 4G, 3G, Edge, or airplane |
|
|
340
358
|
| `--geo-location <code>` | Geographic IP location (ISO country code, e.g., "US", "DE") |
|
|
341
359
|
|
|
360
|
+
**Tunnel:**
|
|
361
|
+
|
|
362
|
+
| Option | Description |
|
|
363
|
+
|--------|-------------|
|
|
364
|
+
| `-t, --tunnel` | Start a TestingBot tunnel for this test run (cannot be combined with `--async`) |
|
|
365
|
+
| `--tunnel-identifier <id>` | Identifier for the tunnel, allowing multiple tunnels in parallel |
|
|
366
|
+
|
|
342
367
|
**Output Options:**
|
|
343
368
|
|
|
344
369
|
| Option | Description |
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0BpC,QAAA,MAAM,OAAO,SAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0BpC,QAAA,MAAM,OAAO,SAAgB,CAAC;AA2oB9B,eAAe,OAAO,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -53,7 +53,7 @@ program
|
|
|
53
53
|
.name('testingbot')
|
|
54
54
|
.version(package_json_1.default.version, '-v, --version', 'Show version number')
|
|
55
55
|
.description('CLI tool to run Espresso, XCUITest and Maestro tests on TestingBot cloud');
|
|
56
|
-
|
|
56
|
+
program
|
|
57
57
|
.command('espresso')
|
|
58
58
|
.description('Run Espresso tests on TestingBot.')
|
|
59
59
|
.argument('[appFile]', 'Path to application APK file')
|
|
@@ -84,13 +84,16 @@ const espressoCommand = program
|
|
|
84
84
|
// Localization
|
|
85
85
|
.option('--language <lang>', 'App language (ISO 639-1 code, e.g., "en", "fr", "de").')
|
|
86
86
|
// Geolocation
|
|
87
|
-
.option('--geo-
|
|
87
|
+
.option('--geo-country-code <code>', 'Geographic IP location (ISO country code, e.g., "US", "DE").')
|
|
88
88
|
// Network throttling
|
|
89
89
|
.option('--throttle-network <speed>', 'Network throttling: 4G, 3G, Edge, or airplane.', (val) => val)
|
|
90
90
|
// Execution mode
|
|
91
91
|
.option('-q, --quiet', 'Quieter console output without progress updates.')
|
|
92
92
|
.option('--async', 'Start tests and exit immediately without waiting for results.')
|
|
93
93
|
.option('--dry-run', 'Validate and prepare everything but skip HTTP calls. Shows what would be sent.')
|
|
94
|
+
// Tunnel
|
|
95
|
+
.option('-t, --tunnel', 'Start a TestingBot tunnel for this test run.')
|
|
96
|
+
.option('--tunnel-identifier <id>', 'Identifier for the tunnel (allows multiple tunnels).')
|
|
94
97
|
// Report options
|
|
95
98
|
.option('--report <format>', 'Download test report after completion: html or junit.', (val) => val.toLowerCase())
|
|
96
99
|
.option('--report-output-dir <path>', 'Directory to save test reports (required when --report is used).')
|
|
@@ -107,9 +110,24 @@ const espressoCommand = program
|
|
|
107
110
|
// Positional arguments take precedence, fall back to options
|
|
108
111
|
const app = appFileArg || args.app;
|
|
109
112
|
const testApp = testAppFileArg || args.testApp;
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
+
const missing = [];
|
|
114
|
+
if (!app)
|
|
115
|
+
missing.push('<appFile> or --app');
|
|
116
|
+
if (!testApp)
|
|
117
|
+
missing.push('<testAppFile> or --test-app');
|
|
118
|
+
if (missing.length > 0) {
|
|
119
|
+
throw new testingbot_error_1.default(`Missing required argument: ${missing.join(', ')}. Run "testingbot espresso --help" for usage.`);
|
|
120
|
+
}
|
|
121
|
+
const credentials = await auth_1.default.getCredentials({
|
|
122
|
+
apiKey: args.apiKey,
|
|
123
|
+
apiSecret: args.apiSecret,
|
|
124
|
+
});
|
|
125
|
+
if (credentials === null) {
|
|
126
|
+
throw new testingbot_error_1.default('No TestingBot credentials found. Please authenticate using one of these methods:\n' +
|
|
127
|
+
' 1. Run "testingbot login" to authenticate via browser (recommended)\n' +
|
|
128
|
+
' 2. Use --api-key and --api-secret options\n' +
|
|
129
|
+
' 3. Set TB_KEY and TB_SECRET environment variables\n' +
|
|
130
|
+
' 4. Create ~/.testingbot file with content: key:secret');
|
|
113
131
|
}
|
|
114
132
|
const metadata = args.commitSha || args.pullRequestId || args.repoName || args.repoOwner
|
|
115
133
|
? {
|
|
@@ -137,8 +155,10 @@ const espressoCommand = program
|
|
|
137
155
|
language: args.language,
|
|
138
156
|
locale: args.locale,
|
|
139
157
|
timeZone: args.timezone,
|
|
140
|
-
|
|
158
|
+
geoCountryCode: args.geoCountryCode,
|
|
141
159
|
throttleNetwork: args.throttleNetwork,
|
|
160
|
+
tunnel: args.tunnel,
|
|
161
|
+
tunnelIdentifier: args.tunnelIdentifier,
|
|
142
162
|
quiet: args.quiet,
|
|
143
163
|
async: args.async,
|
|
144
164
|
dryRun: args.dryRun,
|
|
@@ -146,17 +166,6 @@ const espressoCommand = program
|
|
|
146
166
|
reportOutputDir: args.reportOutputDir,
|
|
147
167
|
metadata,
|
|
148
168
|
});
|
|
149
|
-
const credentials = await auth_1.default.getCredentials({
|
|
150
|
-
apiKey: args.apiKey,
|
|
151
|
-
apiSecret: args.apiSecret,
|
|
152
|
-
});
|
|
153
|
-
if (credentials === null) {
|
|
154
|
-
throw new testingbot_error_1.default('No TestingBot credentials found. Please authenticate using one of these methods:\n' +
|
|
155
|
-
' 1. Run "testingbot login" to authenticate via browser (recommended)\n' +
|
|
156
|
-
' 2. Use --api-key and --api-secret options\n' +
|
|
157
|
-
' 3. Set TB_KEY and TB_SECRET environment variables\n' +
|
|
158
|
-
' 4. Create ~/.testingbot file with content: key:secret');
|
|
159
|
-
}
|
|
160
169
|
const espresso = new espresso_1.default(credentials, options);
|
|
161
170
|
const result = await espresso.run();
|
|
162
171
|
if (!result.success) {
|
|
@@ -169,7 +178,7 @@ const espressoCommand = program
|
|
|
169
178
|
}
|
|
170
179
|
})
|
|
171
180
|
.showHelpAfterError(true);
|
|
172
|
-
|
|
181
|
+
program
|
|
173
182
|
.command('maestro')
|
|
174
183
|
.description('Run Maestro flows on TestingBot.')
|
|
175
184
|
.argument('[appFile]', 'Path to application under test (.apk, .ipa, .app or .zip)')
|
|
@@ -198,13 +207,17 @@ const maestroCommand = program
|
|
|
198
207
|
return acc;
|
|
199
208
|
}, [])
|
|
200
209
|
// Maestro configuration
|
|
210
|
+
.option('--config <path>', 'Path to a custom Maestro config file (default: config.yaml in project root).')
|
|
201
211
|
.option('--maestro-version <version>', 'Maestro version to use (e.g., "2.0.10").')
|
|
202
212
|
// Execution mode
|
|
203
213
|
.option('-q, --quiet', 'Quieter console output without progress updates.')
|
|
204
214
|
.option('--async', 'Start tests and exit immediately without waiting for results.')
|
|
205
215
|
.option('--dry-run', 'Validate and prepare everything but skip HTTP calls. Shows what would be sent.')
|
|
216
|
+
// Tunnel
|
|
217
|
+
.option('-t, --tunnel', 'Start a TestingBot tunnel for this test run.')
|
|
218
|
+
.option('--tunnel-identifier <id>', 'Identifier for the tunnel (allows multiple tunnels).')
|
|
206
219
|
// Report options
|
|
207
|
-
.option('--report <format>', 'Download test report after completion: html or junit.', (val) => val.toLowerCase())
|
|
220
|
+
.option('--report <format>', 'Download test report after completion: html, html-detailed, or junit.', (val) => val.toLowerCase())
|
|
208
221
|
.option('--report-output-dir <path>', 'Directory to save test reports (required when --report is used).')
|
|
209
222
|
// Artifact download
|
|
210
223
|
.option('--download-artifacts [mode]', 'Download test artifacts after completion. Mode: all (default) or failed.', (val) => (val === 'failed' ? 'failed' : 'all'))
|
|
@@ -236,9 +249,24 @@ const maestroCommand = program
|
|
|
236
249
|
app = appFileArg;
|
|
237
250
|
flows = flowsArgs || [];
|
|
238
251
|
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
252
|
+
const missing = [];
|
|
253
|
+
if (!app)
|
|
254
|
+
missing.push('<appFile> or --app');
|
|
255
|
+
if (flows.length === 0)
|
|
256
|
+
missing.push('<flows...> (one or more flow files, directories, or globs)');
|
|
257
|
+
if (missing.length > 0) {
|
|
258
|
+
throw new testingbot_error_1.default(`Missing required argument: ${missing.join(', ')}. Run "testingbot maestro --help" for usage.`);
|
|
259
|
+
}
|
|
260
|
+
const credentials = await auth_1.default.getCredentials({
|
|
261
|
+
apiKey: args.apiKey,
|
|
262
|
+
apiSecret: args.apiSecret,
|
|
263
|
+
});
|
|
264
|
+
if (credentials === null) {
|
|
265
|
+
throw new testingbot_error_1.default('No TestingBot credentials found. Please authenticate using one of these methods:\n' +
|
|
266
|
+
' 1. Run "testingbot login" to authenticate via browser (recommended)\n' +
|
|
267
|
+
' 2. Use --api-key and --api-secret options\n' +
|
|
268
|
+
' 3. Set TB_KEY and TB_SECRET environment variables\n' +
|
|
269
|
+
' 4. Create ~/.testingbot file with content: key:secret');
|
|
242
270
|
}
|
|
243
271
|
// Parse environment variables from -e KEY=VALUE format
|
|
244
272
|
const env = {};
|
|
@@ -271,6 +299,8 @@ const maestroCommand = program
|
|
|
271
299
|
geoCountryCode: args.geoCountryCode,
|
|
272
300
|
env: Object.keys(env).length > 0 ? env : undefined,
|
|
273
301
|
maestroVersion: args.maestroVersion,
|
|
302
|
+
tunnel: args.tunnel,
|
|
303
|
+
tunnelIdentifier: args.tunnelIdentifier,
|
|
274
304
|
quiet: args.quiet,
|
|
275
305
|
async: args.async,
|
|
276
306
|
dryRun: args.dryRun,
|
|
@@ -284,19 +314,9 @@ const maestroCommand = program
|
|
|
284
314
|
ignoreChecksumCheck: args.ignoreChecksumCheck,
|
|
285
315
|
shardSplit: args.shardSplit,
|
|
286
316
|
debug: args.debug,
|
|
317
|
+
configFile: args.config,
|
|
287
318
|
metadata,
|
|
288
319
|
});
|
|
289
|
-
const credentials = await auth_1.default.getCredentials({
|
|
290
|
-
apiKey: args.apiKey,
|
|
291
|
-
apiSecret: args.apiSecret,
|
|
292
|
-
});
|
|
293
|
-
if (credentials === null) {
|
|
294
|
-
throw new testingbot_error_1.default('No TestingBot credentials found. Please authenticate using one of these methods:\n' +
|
|
295
|
-
' 1. Run "testingbot login" to authenticate via browser (recommended)\n' +
|
|
296
|
-
' 2. Use --api-key and --api-secret options\n' +
|
|
297
|
-
' 3. Set TB_KEY and TB_SECRET environment variables\n' +
|
|
298
|
-
' 4. Create ~/.testingbot file with content: key:secret');
|
|
299
|
-
}
|
|
300
320
|
if (args.debug) {
|
|
301
321
|
(0, logger_1.enableDebugLogging)();
|
|
302
322
|
}
|
|
@@ -312,7 +332,7 @@ const maestroCommand = program
|
|
|
312
332
|
}
|
|
313
333
|
})
|
|
314
334
|
.showHelpAfterError(true);
|
|
315
|
-
|
|
335
|
+
program
|
|
316
336
|
.command('xcuitest')
|
|
317
337
|
.description('Run XCUITest tests on TestingBot.')
|
|
318
338
|
.argument('[appFile]', 'Path to application IPA file')
|
|
@@ -335,13 +355,16 @@ const xcuitestCommand = program
|
|
|
335
355
|
// Localization
|
|
336
356
|
.option('--language <lang>', 'App language (ISO 639-1 code, e.g., "en", "fr", "de").')
|
|
337
357
|
// Geolocation
|
|
338
|
-
.option('--geo-
|
|
358
|
+
.option('--geo-country-code <code>', 'Geographic IP location (ISO country code, e.g., "US", "DE").')
|
|
339
359
|
// Network throttling
|
|
340
360
|
.option('--throttle-network <speed>', 'Network throttling: 4G, 3G, Edge, or airplane.', (val) => val)
|
|
341
361
|
// Execution mode
|
|
342
362
|
.option('-q, --quiet', 'Quieter console output without progress updates.')
|
|
343
363
|
.option('--async', 'Start tests and exit immediately without waiting for results.')
|
|
344
364
|
.option('--dry-run', 'Validate and prepare everything but skip HTTP calls. Shows what would be sent.')
|
|
365
|
+
// Tunnel
|
|
366
|
+
.option('-t, --tunnel', 'Start a TestingBot tunnel for this test run.')
|
|
367
|
+
.option('--tunnel-identifier <id>', 'Identifier for the tunnel (allows multiple tunnels).')
|
|
345
368
|
// Report options
|
|
346
369
|
.option('--report <format>', 'Download test report after completion: html or junit.', (val) => val.toLowerCase())
|
|
347
370
|
.option('--report-output-dir <path>', 'Directory to save test reports (required when --report is used).')
|
|
@@ -358,9 +381,24 @@ const xcuitestCommand = program
|
|
|
358
381
|
// Positional arguments take precedence, fall back to options
|
|
359
382
|
const app = appFileArg || args.app;
|
|
360
383
|
const testApp = testAppFileArg || args.testApp;
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
384
|
+
const missing = [];
|
|
385
|
+
if (!app)
|
|
386
|
+
missing.push('<appFile> or --app');
|
|
387
|
+
if (!testApp)
|
|
388
|
+
missing.push('<testAppFile> or --test-app');
|
|
389
|
+
if (missing.length > 0) {
|
|
390
|
+
throw new testingbot_error_1.default(`Missing required argument: ${missing.join(', ')}. Run "testingbot xcuitest --help" for usage.`);
|
|
391
|
+
}
|
|
392
|
+
const credentials = await auth_1.default.getCredentials({
|
|
393
|
+
apiKey: args.apiKey,
|
|
394
|
+
apiSecret: args.apiSecret,
|
|
395
|
+
});
|
|
396
|
+
if (credentials === null) {
|
|
397
|
+
throw new testingbot_error_1.default('No TestingBot credentials found. Please authenticate using one of these methods:\n' +
|
|
398
|
+
' 1. Run "testingbot login" to authenticate via browser (recommended)\n' +
|
|
399
|
+
' 2. Use --api-key and --api-secret options\n' +
|
|
400
|
+
' 3. Set TB_KEY and TB_SECRET environment variables\n' +
|
|
401
|
+
' 4. Create ~/.testingbot file with content: key:secret');
|
|
364
402
|
}
|
|
365
403
|
const metadata = args.commitSha || args.pullRequestId || args.repoName || args.repoOwner
|
|
366
404
|
? {
|
|
@@ -381,8 +419,10 @@ const xcuitestCommand = program
|
|
|
381
419
|
language: args.language,
|
|
382
420
|
locale: args.locale,
|
|
383
421
|
timeZone: args.timezone,
|
|
384
|
-
|
|
422
|
+
geoCountryCode: args.geoCountryCode,
|
|
385
423
|
throttleNetwork: args.throttleNetwork,
|
|
424
|
+
tunnel: args.tunnel,
|
|
425
|
+
tunnelIdentifier: args.tunnelIdentifier,
|
|
386
426
|
quiet: args.quiet,
|
|
387
427
|
async: args.async,
|
|
388
428
|
dryRun: args.dryRun,
|
|
@@ -390,17 +430,6 @@ const xcuitestCommand = program
|
|
|
390
430
|
reportOutputDir: args.reportOutputDir,
|
|
391
431
|
metadata,
|
|
392
432
|
});
|
|
393
|
-
const credentials = await auth_1.default.getCredentials({
|
|
394
|
-
apiKey: args.apiKey,
|
|
395
|
-
apiSecret: args.apiSecret,
|
|
396
|
-
});
|
|
397
|
-
if (credentials === null) {
|
|
398
|
-
throw new testingbot_error_1.default('No TestingBot credentials found. Please authenticate using one of these methods:\n' +
|
|
399
|
-
' 1. Run "testingbot login" to authenticate via browser (recommended)\n' +
|
|
400
|
-
' 2. Use --api-key and --api-secret options\n' +
|
|
401
|
-
' 3. Set TB_KEY and TB_SECRET environment variables\n' +
|
|
402
|
-
' 4. Create ~/.testingbot file with content: key:secret');
|
|
403
|
-
}
|
|
404
433
|
const xcuitest = new xcuitest_1.default(credentials, options);
|
|
405
434
|
const result = await xcuitest.run();
|
|
406
435
|
if (!result.success) {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const POLLING: {
|
|
2
|
+
readonly MIN_INTERVAL_MS: 5000;
|
|
3
|
+
readonly MAX_INTERVAL_MS: 15000;
|
|
4
|
+
readonly BACKOFF_MULTIPLIER: 1.3;
|
|
5
|
+
readonly MAX_DURATION_MS: number;
|
|
6
|
+
};
|
|
7
|
+
export declare const HTTP: {
|
|
8
|
+
readonly TIMEOUT_MS: 30000;
|
|
9
|
+
};
|
|
10
|
+
export declare const SOCKET: {
|
|
11
|
+
readonly RECONNECTION_ATTEMPTS: 3;
|
|
12
|
+
readonly RECONNECTION_DELAY_MS: 1000;
|
|
13
|
+
readonly TIMEOUT_MS: 10000;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO;;;;;CAKV,CAAC;AAEX,eAAO,MAAM,IAAI;;CAEP,CAAC;AAEX,eAAO,MAAM,MAAM;;;;CAIT,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SOCKET = exports.HTTP = exports.POLLING = void 0;
|
|
4
|
+
exports.POLLING = {
|
|
5
|
+
MIN_INTERVAL_MS: 5000,
|
|
6
|
+
MAX_INTERVAL_MS: 15000,
|
|
7
|
+
BACKOFF_MULTIPLIER: 1.3,
|
|
8
|
+
MAX_DURATION_MS: 60 * 60 * 1000,
|
|
9
|
+
};
|
|
10
|
+
exports.HTTP = {
|
|
11
|
+
TIMEOUT_MS: 30000,
|
|
12
|
+
};
|
|
13
|
+
exports.SOCKET = {
|
|
14
|
+
RECONNECTION_ATTEMPTS: 3,
|
|
15
|
+
RECONNECTION_DELAY_MS: 1000,
|
|
16
|
+
TIMEOUT_MS: 10000,
|
|
17
|
+
};
|
package/dist/index.js
CHANGED
|
@@ -5,4 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
const cli_1 = __importDefault(require("./cli"));
|
|
8
|
+
const banner_1 = require("./ui/banner");
|
|
9
|
+
(0, banner_1.printBanner)();
|
|
8
10
|
cli_1.default.parse(process.argv);
|
|
@@ -22,6 +22,8 @@ export interface EspressoCapabilities {
|
|
|
22
22
|
phoneOnly?: boolean;
|
|
23
23
|
name?: string;
|
|
24
24
|
build?: string;
|
|
25
|
+
'testingbot.geoCountryCode'?: string;
|
|
26
|
+
tunnelIdentifier?: string;
|
|
25
27
|
}
|
|
26
28
|
export interface EspressoRunOptions {
|
|
27
29
|
testRunner?: string;
|
|
@@ -35,7 +37,6 @@ export interface EspressoRunOptions {
|
|
|
35
37
|
language?: string;
|
|
36
38
|
locale?: string;
|
|
37
39
|
timeZone?: string;
|
|
38
|
-
geoLocation?: string;
|
|
39
40
|
throttle_network?: ThrottleNetwork | CustomNetworkProfile;
|
|
40
41
|
}
|
|
41
42
|
export default class EspressoOptions {
|
|
@@ -59,8 +60,10 @@ export default class EspressoOptions {
|
|
|
59
60
|
private _language?;
|
|
60
61
|
private _locale?;
|
|
61
62
|
private _timeZone?;
|
|
62
|
-
private
|
|
63
|
+
private _geoCountryCode?;
|
|
63
64
|
private _throttleNetwork?;
|
|
65
|
+
private _tunnel;
|
|
66
|
+
private _tunnelIdentifier?;
|
|
64
67
|
private _quiet;
|
|
65
68
|
private _async;
|
|
66
69
|
private _dryRun;
|
|
@@ -85,8 +88,10 @@ export default class EspressoOptions {
|
|
|
85
88
|
language?: string;
|
|
86
89
|
locale?: string;
|
|
87
90
|
timeZone?: string;
|
|
88
|
-
|
|
91
|
+
geoCountryCode?: string;
|
|
89
92
|
throttleNetwork?: ThrottleNetwork | CustomNetworkProfile;
|
|
93
|
+
tunnel?: boolean;
|
|
94
|
+
tunnelIdentifier?: string;
|
|
90
95
|
quiet?: boolean;
|
|
91
96
|
async?: boolean;
|
|
92
97
|
dryRun?: boolean;
|
|
@@ -114,8 +119,10 @@ export default class EspressoOptions {
|
|
|
114
119
|
get language(): string | undefined;
|
|
115
120
|
get locale(): string | undefined;
|
|
116
121
|
get timeZone(): string | undefined;
|
|
117
|
-
get
|
|
122
|
+
get geoCountryCode(): string | undefined;
|
|
118
123
|
get throttleNetwork(): ThrottleNetwork | CustomNetworkProfile | undefined;
|
|
124
|
+
get tunnel(): boolean;
|
|
125
|
+
get tunnelIdentifier(): string | undefined;
|
|
119
126
|
get quiet(): boolean;
|
|
120
127
|
get async(): boolean;
|
|
121
128
|
get dryRun(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"espresso_options.d.ts","sourceRoot":"","sources":["../../src/models/espresso_options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"espresso_options.d.ts","sourceRoot":"","sources":["../../src/models/espresso_options.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_crypto_1 = require("node:crypto");
|
|
6
7
|
const testingbot_error_1 = __importDefault(require("./testingbot_error"));
|
|
7
8
|
class EspressoOptions {
|
|
8
9
|
_app;
|
|
@@ -28,9 +29,12 @@ class EspressoOptions {
|
|
|
28
29
|
_locale;
|
|
29
30
|
_timeZone;
|
|
30
31
|
// Geolocation
|
|
31
|
-
|
|
32
|
+
_geoCountryCode;
|
|
32
33
|
// Network throttling
|
|
33
34
|
_throttleNetwork;
|
|
35
|
+
// Tunnel
|
|
36
|
+
_tunnel;
|
|
37
|
+
_tunnelIdentifier;
|
|
34
38
|
// Execution mode
|
|
35
39
|
_quiet;
|
|
36
40
|
_async;
|
|
@@ -64,8 +68,14 @@ class EspressoOptions {
|
|
|
64
68
|
this._language = options?.language;
|
|
65
69
|
this._locale = options?.locale;
|
|
66
70
|
this._timeZone = options?.timeZone;
|
|
67
|
-
this.
|
|
71
|
+
this._geoCountryCode = options?.geoCountryCode;
|
|
68
72
|
this._throttleNetwork = options?.throttleNetwork;
|
|
73
|
+
this._tunnel = options?.tunnel ?? false;
|
|
74
|
+
this._tunnelIdentifier =
|
|
75
|
+
options?.tunnelIdentifier ??
|
|
76
|
+
(this._tunnel
|
|
77
|
+
? `espresso-testing-${(0, node_crypto_1.randomUUID)().slice(0, 8)}`
|
|
78
|
+
: undefined);
|
|
69
79
|
this._quiet = options?.quiet ?? false;
|
|
70
80
|
this._async = options?.async ?? false;
|
|
71
81
|
this._dryRun = options?.dryRun ?? false;
|
|
@@ -133,12 +143,18 @@ class EspressoOptions {
|
|
|
133
143
|
get timeZone() {
|
|
134
144
|
return this._timeZone;
|
|
135
145
|
}
|
|
136
|
-
get
|
|
137
|
-
return this.
|
|
146
|
+
get geoCountryCode() {
|
|
147
|
+
return this._geoCountryCode;
|
|
138
148
|
}
|
|
139
149
|
get throttleNetwork() {
|
|
140
150
|
return this._throttleNetwork;
|
|
141
151
|
}
|
|
152
|
+
get tunnel() {
|
|
153
|
+
return this._tunnel;
|
|
154
|
+
}
|
|
155
|
+
get tunnelIdentifier() {
|
|
156
|
+
return this._tunnelIdentifier;
|
|
157
|
+
}
|
|
142
158
|
get quiet() {
|
|
143
159
|
return this._quiet;
|
|
144
160
|
}
|
|
@@ -174,6 +190,10 @@ class EspressoOptions {
|
|
|
174
190
|
caps.name = this._name;
|
|
175
191
|
if (this._build)
|
|
176
192
|
caps.build = this._build;
|
|
193
|
+
if (this._geoCountryCode)
|
|
194
|
+
caps['testingbot.geoCountryCode'] = this._geoCountryCode;
|
|
195
|
+
if (this._tunnelIdentifier)
|
|
196
|
+
caps.tunnelIdentifier = this._tunnelIdentifier;
|
|
177
197
|
return caps;
|
|
178
198
|
}
|
|
179
199
|
getEspressoOptions() {
|
|
@@ -201,9 +221,6 @@ class EspressoOptions {
|
|
|
201
221
|
opts.locale = this._locale;
|
|
202
222
|
if (this._timeZone)
|
|
203
223
|
opts.timeZone = this._timeZone;
|
|
204
|
-
// Geolocation
|
|
205
|
-
if (this._geoLocation)
|
|
206
|
-
opts.geoLocation = this._geoLocation;
|
|
207
224
|
// Network throttling
|
|
208
225
|
if (this._throttleNetwork)
|
|
209
226
|
opts.throttle_network = this._throttleNetwork;
|
|
@@ -6,7 +6,7 @@ export interface MaestroConfig {
|
|
|
6
6
|
}
|
|
7
7
|
export type Orientation = 'PORTRAIT' | 'LANDSCAPE';
|
|
8
8
|
export type ThrottleNetwork = '4G' | '3G' | 'Edge' | 'airplane' | 'disable';
|
|
9
|
-
export type ReportFormat = 'html' | 'junit';
|
|
9
|
+
export type ReportFormat = 'html' | 'html-detailed' | 'junit';
|
|
10
10
|
export type ArtifactDownloadMode = 'all' | 'failed';
|
|
11
11
|
export interface RunMetadata {
|
|
12
12
|
commitSha?: string;
|
|
@@ -22,8 +22,9 @@ export interface MaestroCapabilities {
|
|
|
22
22
|
orientation?: Orientation;
|
|
23
23
|
locale?: string;
|
|
24
24
|
timeZone?: string;
|
|
25
|
-
|
|
26
|
-
geoCountryCode?: string;
|
|
25
|
+
throttle_network?: ThrottleNetwork;
|
|
26
|
+
'testingbot.geoCountryCode'?: string;
|
|
27
|
+
tunnelIdentifier?: string;
|
|
27
28
|
realDevice?: string;
|
|
28
29
|
}
|
|
29
30
|
export interface MaestroRunOptions {
|
|
@@ -49,6 +50,8 @@ export default class MaestroOptions {
|
|
|
49
50
|
private _geoCountryCode?;
|
|
50
51
|
private _env?;
|
|
51
52
|
private _maestroVersion?;
|
|
53
|
+
private _tunnel;
|
|
54
|
+
private _tunnelIdentifier?;
|
|
52
55
|
private _quiet;
|
|
53
56
|
private _async;
|
|
54
57
|
private _dryRun;
|
|
@@ -60,6 +63,7 @@ export default class MaestroOptions {
|
|
|
60
63
|
private _ignoreChecksumCheck;
|
|
61
64
|
private _shardSplit?;
|
|
62
65
|
private _debug;
|
|
66
|
+
private _configFile?;
|
|
63
67
|
private _metadata?;
|
|
64
68
|
constructor(app: string, flows: string | string[], device?: string, options?: {
|
|
65
69
|
includeTags?: string[];
|
|
@@ -74,6 +78,8 @@ export default class MaestroOptions {
|
|
|
74
78
|
geoCountryCode?: string;
|
|
75
79
|
env?: Record<string, string>;
|
|
76
80
|
maestroVersion?: string;
|
|
81
|
+
tunnel?: boolean;
|
|
82
|
+
tunnelIdentifier?: string;
|
|
77
83
|
quiet?: boolean;
|
|
78
84
|
async?: boolean;
|
|
79
85
|
dryRun?: boolean;
|
|
@@ -85,6 +91,7 @@ export default class MaestroOptions {
|
|
|
85
91
|
ignoreChecksumCheck?: boolean;
|
|
86
92
|
shardSplit?: number;
|
|
87
93
|
debug?: boolean;
|
|
94
|
+
configFile?: string;
|
|
88
95
|
metadata?: RunMetadata;
|
|
89
96
|
});
|
|
90
97
|
get app(): string;
|
|
@@ -102,6 +109,8 @@ export default class MaestroOptions {
|
|
|
102
109
|
get geoCountryCode(): string | undefined;
|
|
103
110
|
get env(): Record<string, string> | undefined;
|
|
104
111
|
get maestroVersion(): string | undefined;
|
|
112
|
+
get tunnel(): boolean;
|
|
113
|
+
get tunnelIdentifier(): string | undefined;
|
|
105
114
|
get quiet(): boolean;
|
|
106
115
|
get async(): boolean;
|
|
107
116
|
get dryRun(): boolean;
|
|
@@ -113,6 +122,7 @@ export default class MaestroOptions {
|
|
|
113
122
|
get ignoreChecksumCheck(): boolean;
|
|
114
123
|
get shardSplit(): number | undefined;
|
|
115
124
|
get debug(): boolean;
|
|
125
|
+
get configFile(): string | undefined;
|
|
116
126
|
get metadata(): RunMetadata | undefined;
|
|
117
127
|
getMaestroOptions(): MaestroRunOptions | undefined;
|
|
118
128
|
getCapabilities(detectedPlatform?: 'Android' | 'iOS'): MaestroCapabilities;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maestro_options.d.ts","sourceRoot":"","sources":["../../src/models/maestro_options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"maestro_options.d.ts","sourceRoot":"","sources":["../../src/models/maestro_options.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;CACtC;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC;AACnD,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAC5E,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC;AAC9D,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,eAAe,CAAC;IACnC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,OAAO,CAAC,MAAM,CAAC,SAAS;IAIxB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,YAAY,CAAC,CAAW;IAChC,OAAO,CAAC,YAAY,CAAC,CAAW;IAChC,OAAO,CAAC,aAAa,CAAC,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,IAAI,CAAC,CAAyB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAS;IAEjC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,iBAAiB,CAAC,CAAS;IACnC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAC,CAAe;IAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,kBAAkB,CAAC,CAAuB;IAClD,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,oBAAoB,CAAU;IACtC,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,WAAW,CAAC,CAAS;IAE7B,OAAO,CAAC,SAAS,CAAC,CAAc;gBAG9B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,YAAY,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;QACjC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,YAAY,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,iBAAiB,CAAC,EAAE,oBAAoB,CAAC;QACzC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,WAAW,CAAC;KACxB;IAwCH,IAAW,GAAG,IAAI,MAAM,CAEvB;IAED,IAAW,KAAK,IAAI,MAAM,EAAE,CAE3B;IAED,IAAW,MAAM,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,IAAW,WAAW,IAAI,MAAM,EAAE,GAAG,SAAS,CAE7C;IAED,IAAW,WAAW,IAAI,MAAM,EAAE,GAAG,SAAS,CAE7C;IAED,IAAW,YAAY,IAAI,SAAS,GAAG,KAAK,GAAG,SAAS,CAEvD;IAED,IAAW,OAAO,IAAI,MAAM,GAAG,SAAS,CAEvC;IAED,IAAW,IAAI,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,IAAW,WAAW,IAAI,WAAW,GAAG,SAAS,CAEhD;IAED,IAAW,MAAM,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,IAAW,QAAQ,IAAI,MAAM,GAAG,SAAS,CAExC;IAED,IAAW,eAAe,IAAI,eAAe,GAAG,SAAS,CAExD;IAED,IAAW,cAAc,IAAI,MAAM,GAAG,SAAS,CAE9C;IAED,IAAW,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAEnD;IAED,IAAW,cAAc,IAAI,MAAM,GAAG,SAAS,CAE9C;IAED,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED,IAAW,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAEhD;IAED,IAAW,KAAK,IAAI,OAAO,CAE1B;IAED,IAAW,KAAK,IAAI,OAAO,CAE1B;IAED,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED,IAAW,MAAM,IAAI,YAAY,GAAG,SAAS,CAE5C;IAED,IAAW,eAAe,IAAI,MAAM,GAAG,SAAS,CAE/C;IAED,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED,IAAW,iBAAiB,IAAI,oBAAoB,GAAG,SAAS,CAE/D;IAED,IAAW,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAElD;IAED,IAAW,mBAAmB,IAAI,OAAO,CAExC;IAED,IAAW,UAAU,IAAI,MAAM,GAAG,SAAS,CAE1C;IAED,IAAW,KAAK,IAAI,OAAO,CAE1B;IAED,IAAW,UAAU,IAAI,MAAM,GAAG,SAAS,CAE1C;IAED,IAAW,QAAQ,IAAI,WAAW,GAAG,SAAS,CAE7C;IAEM,iBAAiB,IAAI,iBAAiB,GAAG,SAAS;IAmBlD,eAAe,CACpB,gBAAgB,CAAC,EAAE,SAAS,GAAG,KAAK,GACnC,mBAAmB;CAmCvB"}
|