@testingbot/mobilewright-driver 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -11
- package/dist/driver.d.ts.map +1 -1
- package/dist/driver.js +26 -18
- package/dist/driver.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +3 -1
- package/dist/init.js.map +1 -1
- package/dist/observer.d.ts +70 -11
- package/dist/observer.d.ts.map +1 -1
- package/dist/observer.js +186 -30
- package/dist/observer.js.map +1 -1
- package/dist/run-log.d.ts +9 -0
- package/dist/run-log.d.ts.map +1 -1
- package/dist/run-log.js +11 -0
- package/dist/run-log.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @testingbot/mobilewright-driver
|
|
2
2
|
|
|
3
|
-
Run [Mobilewright](https://github.com/mobile-next/mobilewright) mobile tests on [TestingBot](https://testingbot.com)'s device cloud
|
|
3
|
+
Run [Mobilewright](https://github.com/mobile-next/mobilewright) mobile tests on [TestingBot](https://testingbot.com)'s device cloud: real iOS/Android devices, iOS simulators and Android emulators.
|
|
4
4
|
|
|
5
5
|
Requires `mobilewright >= 0.0.53` (the first release that accepts driver instances) and Node >= 18.
|
|
6
6
|
|
|
@@ -61,7 +61,7 @@ export default defineConfig({
|
|
|
61
61
|
import { test, expect } from '@mobilewright/test';
|
|
62
62
|
|
|
63
63
|
test('shows the welcome screen', async ({ device, screen, bundleId }) => {
|
|
64
|
-
await device.launchApp(bundleId);
|
|
64
|
+
await device.launchApp(bundleId!);
|
|
65
65
|
await expect(screen.getByText('Welcome')).toBeVisible();
|
|
66
66
|
});
|
|
67
67
|
```
|
|
@@ -92,6 +92,8 @@ Regexes and version ranges work on both real and virtual devices: real devices r
|
|
|
92
92
|
|
|
93
93
|
- By default a device slot's TestingBot session is reused across tests (fast: you pay device startup once). Sessions that hosted exactly one test are named after that test with its own pass/fail; sessions that hosted several get a run summary (e.g. `12/12 tests passed`).
|
|
94
94
|
- Set **`sessionPerTest: true`** for one session, video, and named verdict **per test** — the clearest dashboard, at the cost of device startup on every test.
|
|
95
|
+
- Tests are matched to sessions by **worker identity first**: the driver stamps Playwright's worker index on each session as it records it, and the run report reports the same index per test, so a test that ran in another worker process is never a candidate. Timing separates the tests within one worker, using the worker's own timestamps from the report when it is available.
|
|
96
|
+
- A session is only ever given a verdict the driver can stand behind: its own test's, or the run summary when it genuinely hosted several tests (or was the run's only session). When a session cannot be tied to a test — an ambiguous overlap under heavy parallelism, or a worker that died before recording its span — it is reported with build, extra and tags but **no** pass/fail, rather than inheriting a failure from a test that ran somewhere else. `DEBUG=testingbot:observer` names the session and the reason.
|
|
95
97
|
- Git metadata is reported automatically when mobilewright captures it: the commit hash, branch, author and subject land in the session's **extra** field (alongside your own `extra`, never replacing it), and the branch is added as a **tag** so the dashboard can filter by it. Enable it with `captureGitInfo: { commit: true }` in `mobilewright.config.ts` — Playwright turns it on by itself in CI.
|
|
96
98
|
- Failure messages are reported to the session's status message; `build` groups sessions on the dashboard and **defaults automatically from CI environments** (GitHub Actions, GitLab, CircleCI, Buildkite, Bitrise, Travis, Azure DevOps, Jenkins, TeamCity → e.g. `owner/repo #123`), or from a `TESTINGBOT_BUILD` variable.
|
|
97
99
|
|
|
@@ -144,7 +146,7 @@ import { test, expect } from '@mobilewright/test';
|
|
|
144
146
|
import { testingbot } from '@testingbot/mobilewright-driver';
|
|
145
147
|
|
|
146
148
|
test('checkout survives a slow network', async ({ device, screen, bundleId }) => {
|
|
147
|
-
await device.launchApp(bundleId);
|
|
149
|
+
await device.launchApp(bundleId!);
|
|
148
150
|
|
|
149
151
|
await testingbot.annotate('starting checkout'); // shows in the session timeline
|
|
150
152
|
await testingbot.throttle('3G');
|
|
@@ -177,8 +179,6 @@ Notes:
|
|
|
177
179
|
reuses the device.
|
|
178
180
|
- Calling a command outside a test body raises an explanatory error rather
|
|
179
181
|
than a null-reference.
|
|
180
|
-
- `tb:intercept` and `tb:network` (request mocking and network logs) are
|
|
181
|
-
Chrome/Edge-only on TestingBot and are therefore not exposed here.
|
|
182
182
|
|
|
183
183
|
### Recipe: name every session after its test
|
|
184
184
|
|
|
@@ -242,7 +242,8 @@ jobs:
|
|
|
242
242
|
| `"..." is not installed on this device` | The config's `bundleId` is not the package id of the build in `apps` (check with `aapt2 dump packagename app.apk`), or a stale `bundleId`/env override is in play. |
|
|
243
243
|
| `cannot install "..." mid-session` | TestingBot has no mid-session installs — every app in `installApps` must also be listed in the driver's `apps` option (first entry = app under test, the rest install as helper apps). |
|
|
244
244
|
| Modifier chords fail on iOS | XCUITest cannot hold modifier keys; chords are Android-only (`clearText()` handles iOS differently). |
|
|
245
|
-
| Sessions show the run summary instead of a test name | The session hosted several tests;
|
|
245
|
+
| Sessions show the run summary instead of a test name | The session hosted several tests; `sessionPerTest: true` gives each test its own session. |
|
|
246
|
+
| A session shows no pass/fail at all | The driver could not tell which test ran in it and declined to guess. Run with `DEBUG=testingbot:observer` — it logs the session id and why. |
|
|
246
247
|
| `DEBUG=testingbot:*` | Prints every allocation, hub command, upload, and report the driver performs. |
|
|
247
248
|
|
|
248
249
|
## How it maps to TestingBot
|
|
@@ -261,6 +262,7 @@ jobs:
|
|
|
261
262
|
## Current limitations
|
|
262
263
|
|
|
263
264
|
- One TestingBot session may host several mobilewright tests unless `sessionPerTest: true`; multi-test sessions report the run-level verdict.
|
|
265
|
+
- The worker process that owns a session is never told which test it is running, so the session-to-test join is reconstructed after the run from Playwright's worker index plus timing. Without the run report (`jsonReport()`) it degrades to timing alone. Either way it is deliberately conservative and leaves a session unjudged rather than risk naming it after the wrong test.
|
|
264
266
|
- Modifier key chords (`pressKeys(['ctrl+a'])`) work on Android only — XCUITest cannot hold modifier keys.
|
|
265
267
|
- `pressButton` on iOS supports `HOME`, `VOLUME_UP`, `VOLUME_DOWN`; `listApps()` reports the foreground app only.
|
|
266
268
|
- Screenshots are always PNG. `applyDeviceSettings` turns Android animations off best-effort via `mobile: shell` (a no-op on iOS).
|
|
@@ -279,11 +281,6 @@ Live e2e tests against a real TestingBot account live in `e2e/` (see `e2e/mobile
|
|
|
279
281
|
|
|
280
282
|
### Releasing
|
|
281
283
|
|
|
282
|
-
The version bump, tag and GitHub release are made locally — the TestingBot
|
|
283
|
-
org's IP allow list blocks GitHub-hosted runners from pushing here — and the
|
|
284
|
-
Release workflow then publishes to npm via trusted publishing (OIDC), so no
|
|
285
|
-
npm token exists anywhere:
|
|
286
|
-
|
|
287
284
|
```bash
|
|
288
285
|
npm version minor -m "Release v%s" # patch | minor | major
|
|
289
286
|
git push --follow-tags
|
package/dist/driver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,cAAc,EAEnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAEhB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,wBAAwB,CAAC;AAehC,OAAO,EAA4D,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAGtH,OAAO,EAAmB,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAgDnD;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,YAAW,kBAAkB;IACzD,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IAC5C,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAE5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAE9C,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACjE;;;wBAGoB;IACpB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuC;IACrE,0EAA0E;IAC1E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IACvD,kEAAkE;IAClE,OAAO,CAAC,MAAM,CAA4B;IAC1C,+FAA+F;IAC/F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAuB;IACvC,sDAAsD;IACtD,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,sBAAsB,CAAS;gBAE3B,OAAO,GAAE,uBAA4B;IA8B3C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IASxB,QAAQ,CACZ,QAAQ,EAAE,kBAAkB,EAC5B,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,EACpC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC;IA4GrB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBxB,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAyCnD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":"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"}
|
package/dist/driver.js
CHANGED
|
@@ -289,6 +289,18 @@ export class TestingBotDriver {
|
|
|
289
289
|
setActiveDriver(undefined);
|
|
290
290
|
if (!session)
|
|
291
291
|
return;
|
|
292
|
+
// First thing, before any await: the timed record is what lets the
|
|
293
|
+
// observer attribute this test's verdict to exactly this session, and a
|
|
294
|
+
// session it cannot attribute gets no verdict at all. Nothing in teardown
|
|
295
|
+
// — a hub round-trip, a hung request, the worker dying — may come between
|
|
296
|
+
// the test ending and this line.
|
|
297
|
+
this.runLog.append({
|
|
298
|
+
type: 'session',
|
|
299
|
+
sessionId: session.sessionId,
|
|
300
|
+
startedAt: session.connectedAt,
|
|
301
|
+
endedAt: Date.now(),
|
|
302
|
+
workerIndex: workerIndex(),
|
|
303
|
+
});
|
|
292
304
|
if (session.throttled) {
|
|
293
305
|
// A pooled session outlives the test: reset network conditions so they
|
|
294
306
|
// cannot leak into whichever test gets this slot next.
|
|
@@ -298,27 +310,13 @@ export class TestingBotDriver {
|
|
|
298
310
|
}
|
|
299
311
|
if (!this.options.sessionPerTest) {
|
|
300
312
|
// Soft detach only: the pool re-grants this slot to the next test and
|
|
301
|
-
// ends the session via release().
|
|
302
|
-
//
|
|
303
|
-
// that test at run end.
|
|
304
|
-
this.runLog.append({
|
|
305
|
-
type: 'session',
|
|
306
|
-
sessionId: session.sessionId,
|
|
307
|
-
startedAt: session.connectedAt,
|
|
308
|
-
endedAt: Date.now(),
|
|
309
|
-
});
|
|
313
|
+
// ends the session via release(). A pooled session that hosted exactly
|
|
314
|
+
// one test is renamed to that test at run end.
|
|
310
315
|
return;
|
|
311
316
|
}
|
|
312
317
|
// sessionPerTest: this test's session ends here; the next connect starts
|
|
313
|
-
// a fresh one.
|
|
314
|
-
//
|
|
315
|
-
// long-gone original pool session are swallowed there.
|
|
316
|
-
this.runLog.append({
|
|
317
|
-
type: 'session',
|
|
318
|
-
sessionId: session.sessionId,
|
|
319
|
-
startedAt: session.connectedAt,
|
|
320
|
-
endedAt: Date.now(),
|
|
321
|
-
});
|
|
318
|
+
// a fresh one. release()/dispose() failures on the long-gone original
|
|
319
|
+
// pool session are swallowed there.
|
|
322
320
|
await this.hub.deleteSession(session.sessionId)
|
|
323
321
|
.catch(() => this.api.stopTest(session.sessionId).catch(() => { }));
|
|
324
322
|
debug('ended per-test session %s', session.sessionId);
|
|
@@ -709,6 +707,16 @@ export class TestingBotDriver {
|
|
|
709
707
|
this.pinCounts.set(name, count - 1);
|
|
710
708
|
}
|
|
711
709
|
}
|
|
710
|
+
/**
|
|
711
|
+
* The Playwright worker process this driver instance is running in, set by the
|
|
712
|
+
* runner itself (workerProcessEntry sets TEST_WORKER_INDEX). Absent in the
|
|
713
|
+
* coordinator process and in any non-Playwright host, which is why every
|
|
714
|
+
* consumer treats it as a hint rather than a requirement.
|
|
715
|
+
*/
|
|
716
|
+
function workerIndex() {
|
|
717
|
+
const raw = Number.parseInt(process.env['TEST_WORKER_INDEX'] ?? '', 10);
|
|
718
|
+
return Number.isInteger(raw) && raw >= 0 ? raw : undefined;
|
|
719
|
+
}
|
|
712
720
|
function str(value) {
|
|
713
721
|
return typeof value === 'string' && value ? value : undefined;
|
|
714
722
|
}
|
package/dist/driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,WAAW,MAAM,OAAO,CAAC;AAChC,OAAO,EACL,sBAAsB,GAwBvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAqB,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAsD,MAAM,cAAc,CAAC;AACtH,OAAO,EAAE,aAAa,EAAiB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,eAAe,EAA6C,MAAM,uBAAuB,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,KAAK,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAC;AAsB/C,MAAM,uBAAuB,GAAmC;IAC9D,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,EAAE;IACT,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,EAAE;IACf,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;IACf,UAAU,EAAE,GAAG;IACf,IAAI,EAAE,EAAE,EAAE,mCAAmC;CAC9C,CAAC;AAEF,sEAAsE;AACtE,MAAM,gBAAgB,GAA4C;IAChE,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,YAAY;CAC1B,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,OAAO,gBAAgB;IAClB,QAAQ,CAA2B;IAC5C,6EAA6E;IACpE,aAAa,CAAsB;IAE3B,OAAO,CAAkB;IACzB,GAAG,CAAkB;IACrB,GAAG,CAAgB;IACnB,OAAO,CAAgB;IACvB,OAAO,CAAa;IACpB,SAAS,CAAY;IACrB,MAAM,CAAS;IACf,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IAE9C,4EAA4E;IAC3D,SAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;IACjE;;;wBAGoB;IACH,aAAa,GAAG,IAAI,GAAG,EAA4B,CAAC;IACrE,0EAA0E;IACzD,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvD,kEAAkE;IAC1D,MAAM,CAA4B;IAC1C,+FAA+F;IAC9E,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IACtD,uEAAuE;IAC/D,QAAQ,CAAuB;IACvC,sDAAsD;IAC9C,mBAAmB,GAAG,CAAC,CAAC;IACxB,sBAAsB,GAAG,KAAK,CAAC;IAEvC,YAAY,UAAmC,EAAE;QAC/C,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACjF,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzF,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;QACvF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,KAAK;YAChD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE;gBACrC,oEAAoE;gBACpE,+DAA+D;gBAC/D,iEAAiE;gBACjE,QAAQ,EAAE,GAAG,EAAE;oBACb,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CACxF,CAAC;oBACF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;wBAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;oBAChF,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC5B,CAAC;gBACD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;gBACzB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;gBACzB,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;aAC3C,CAAC,CAAC;IACP,CAAC;IAED,mEAAmE;IAEnE,KAAK,CAAC,OAAO;QACX,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,iDAAiD;QACzE,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACzC,KAAK,CAAC,uEAAuE,EAC3E,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QAC9G,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,QAA4B,EAC5B,eAAoC,EACpC,MAAoB;QAEpB,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,wEAAwE;QACxE,wEAAwE;QACxE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAElC,IAAI,MAAgC,CAAC;QACrC,IAAI,YAAgC,CAAC;QACrC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YAC1C,sEAAsE;YACtE,qEAAqE;YACrE,gDAAgD;YAChD,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACrE,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC;QACnC,CAAC;aAAM,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAC5D,mEAAmE;YACnE,wEAAwE;YACxE,4DAA4D;YAC5D,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC;QAED,sEAAsE;QACtE,kEAAkE;QAClE,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;gBAC3B,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvE,oEAAoE;YACpE,qDAAqD;YACrD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACnH,CAAC;QAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAChF,KAAK,CAAC,gBAAgB,EAAE,EAAE,GAAG,YAAY,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;QAErF,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,sBAAsB,CAAC,sCAAsC,CAAC,CAAC;QAC3E,CAAC;QAED,uEAAuE;QACvE,wEAAwE;QACxE,wEAAwE;QACxE,qEAAqE;QACrE,yEAAyE;QACzE,IAAI,SAAiB,CAAC;QACtB,IAAI,IAA6B,CAAC;QAClC,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACzC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC;gBACH,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE;oBAC3E,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;oBACvC,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC,CAAC;YACN,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBACpB,KAAK,CAAC,mEAAmE,CAAC,CAAC;oBAC3E,MAAM,IAAI,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;gBACzD,CAAC;gBACD,MAAM,qBAAqB,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpF,CAAC;oBAAS,CAAC;gBACT,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,KAAK,CAAC,8DAA8D,EAAE,SAAS,CAAC,CAAC;gBACjF,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC;qBACpC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC9D,MAAM,IAAI,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,YAAY;gBAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC3C,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjH,MAAM,OAAO,GAAqB;YAChC,SAAS;YACT,QAAQ;YACR,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;YACtF,SAAS,EAAE,MAAM,EAAE,eAAe,IAAI,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACpG,UAAU,EAAE,YAAY;SACzB,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChC,KAAK,CAAC,wEAAwE,EAC5E,SAAS,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAE/D,OAAO;YACL,QAAQ,EAAE,SAAS;YACnB,QAAQ;YACR,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,OAAO,CAAC,UAAU;YACzB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,IAAI,EAAE,QAAQ,CAAC,UAAU;SAC1B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,OAAO,EAAE,UAAU;YAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACvC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,kDAAkD,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YACzE,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,OAAO,CAAC,UAAU;gBAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACpC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAC/E,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM;YAAE,KAAK,CAAC,iCAAiC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/E,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,kEAAkE;IAElE,KAAK,CAAC,OAAO,CAAC,MAAwB;QACpC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,6FAA6F;gBAC7F,qEAAqE,CACtE,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QAE9D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YACjC,uEAAuE;YACvE,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC7H,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,KAAK,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;YAC/C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC/D,CAAC;QAED,0EAA0E;QAC1E,uEAAuE;QACvE,yEAAyE;QACzE,wEAAwE;QACxE,iCAAiC;QACjC,IAAI,SAA6B,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC9D,SAAS,GAAG,YAAY,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,CAAC,mDAAmD,EAAE,YAAY,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;QACD,SAAS,KAAK,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC/G,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,KAAK,CAAC,mCAAmC,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QACpE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,mEAAmE;QACnE,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,iCAAiC;QACjC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,OAAO,CAAC,WAAW;YAC9B,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,WAAW,EAAE,WAAW,EAAE;SAC3B,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,uEAAuE;YACvE,uDAAuD;YACvD,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClF,KAAK,CAAC,sCAAsC,EAAE,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YACjC,sEAAsE;YACtE,uEAAuE;YACvE,+CAA+C;YAC/C,OAAO;QACT,CAAC;QACD,yEAAyE;QACzE,sEAAsE;QACtE,oCAAoC;QACpC,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC;aAC5C,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACtE,KAAK,CAAC,2BAA2B,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,wEAAwE;IAChE,KAAK,CAAC,iBAAiB,CAAC,MAAwB;QACtD,MAAM,QAAQ,GAAuB;YACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,iBAAiB,EAAE,MAAM,CAAC,UAAU,YAAY,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU;SACtG,CAAC;QACF,IAAI,MAAgC,CAAC;QACrC,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YACnC,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACvE,CAAC;aAAM,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAC5D,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC;QACD,qEAAqE;QACrE,IAAI,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7G,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACrB,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;oBAC3B,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QACD,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAChF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC3G,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QACnD,KAAK,CAAC,uEAAuE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACrG,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,iEAAiE;IAEjE,4EAA4E;IAC5E,KAAK,CAAC,aAAa,CAAc,MAAc,EAAE,GAAG,IAAe;QACjE,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAI,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,wEAAwE;IACxE,gBAAgB;QACd,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,QAAQ,CAAC,UAA4C;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,UAAU,KAAK,SAAS,IAAI,CAAC,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;QACxG,OAAO,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC;QACzB,KAAK,CAAC,2BAA2B,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,kEAAkE;IAElE;;;;OAIG;IACH,KAAK,CAAC,mBAAmB,CAAC,QAAwB;QAChD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO;QACxE,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACxD,KAAK,MAAM,GAAG,IAAI,CAAC,wBAAwB,EAAE,4BAA4B,EAAE,yBAAyB,CAAC,EAAE,CAAC;YACtG,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC;wBAClD,OAAO,EAAE,UAAU;wBACnB,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC;qBACpC,CAAC,CAAC,CAAC;YACN,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,KAAK,CAAC,4CAA4C,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC9D,OAAO,CAAC,mDAAmD;YAC7D,CAAC;QACH,CAAC;QACD,KAAK,CAAC,sBAAsB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;IAED,kEAAkE;IAElE,KAAK,CAAC,gBAAgB;QACpB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1D,OAAO,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,kEAAkE;IAElE,KAAK,CAAC,GAAG,CAAC,CAAS,EAAE,CAAS;QAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,CAAS,EAAE,CAAS;QAClC,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,CAAS,EAAE,CAAS,EAAE,QAAiB;QACrD,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,0EAA0E;YAC1E,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAc;QAC5B,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,kBAAkB,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpF,CAAC;YACD,OAAO;QACT,CAAC;QACD,uEAAuE;QACvE,qDAAqD;QACrD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3D,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,uCAAuC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,aAAa;gBAC9F,mFAAmF,CACpF,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,4CAA4C;YAC5C,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QACD,wEAAwE;QACxE,6DAA6D;QAC7D,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;QAC5C,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,eAAe,CACtD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,CACpE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAyB,EAAE,IAAmB;QACxD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1C,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAyB;QACrC,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAsB;QACtC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACtG,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,2BAA2B,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,qBAAqB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,kEAAkE;IAElE,KAAK,CAAC,UAAU,CAAC,IAAwB;QACvC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,0EAA0E;QAC1E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7C,IAAI,IAAI,EAAE,IAAI;YAAE,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,UAAU;YAAE,OAAO,OAAO,CAAC,UAAU,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAoC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACtG,yEAAyE;QACzE,wEAAwE;QACxE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;YAChF,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa;YACpD,IAAI,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBACnC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YAC1D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gFAAgF;QAClF,CAAC;QACD,OAAO,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QACvE,OAAO,OAAO,CAAC,UAAU,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAS,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACnF,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAwB;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACnG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,oBAAoB;IACtD,CAAC;IAED,kEAAkE;IAElE,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,IAAoB;QACpD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,uBAAuB,EAAE,CAAC;oBAC1D,MAAM,EAAE,GAAG,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;iBACvC,CAAC,CAAC,CAAC;YACJ,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,qBAAqB,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC5F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,KAAK,IAAI,sDAAsD,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrG,MAAM,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,oBAAoB,CAAC,QAAgB,EAAE,GAAU;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,SAA8B,CAAC;QACnC,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAU,OAAO,CAAC,SAAS,EAAE,wBAAwB,EAAE;gBACvF,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE;aAC9B,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,8CAA8C;QAChD,CAAC;QAED,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,eAAe,CAChC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,EAC9D,IAAI,CAAC,OAAO,CAAC,IAAI,CAClB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO,IAAI,KAAK,CACd,sBAAsB,QAAQ,+DAA+D;gBAC7F,gCAAgC,UAAU,IAAI,0CAA0C,EAAE;gBAC1F,kFAAkF;gBAClF,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;oBAC7B,CAAC,CAAC,mDAAmD;oBACrD,CAAC,CAAC,2GAA2G,CAAC;gBAChH,KAAK,GAAG,CAAC,OAAO,EAAE,CACnB,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,KAAK,CACd,sCAAsC,QAAQ,gDAAgD;YAC9F,uGAAuG;YACvG,wDAAwD,GAAG,GAAG,CAAC,OAAO,CACvE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,sBAAsB,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,uEAAuE;QACvE,kEAAkE;QAClE,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAsC,SAAS,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC;YACjH,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACtD,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAS,SAAS,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAC;YACvF,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;YAC/D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAS,SAAS,EAAE,gCAAgC,CAAC,CAAC;YACpF,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,uEAAuE;QACvE,qEAAqE;QACrE,iEAAiE;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,eAAe,CAC9B,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,EAC9D,IAAI,CAAC,OAAO,CAAC,IAAI,CAClB,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC1D,KAAK,CAAC,oFAAoF,EAAE,IAAI,CAAC,CAAC;gBAClG,OAAO;YACT,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,oDAAoD;YAC5F,6EAA6E;YAC7E,CAAC,QAAQ,CAAC,MAAM;gBACd,CAAC,CAAC,gCAAgC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B;oBACpG,mGAAmG;gBACrG,CAAC,CAAC,0EAA0E;oBAC1E,IAAI,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,SAAS,CAAC,CACnG,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,kEAAkE;IAElE,KAAK,CAAC,WAAW,CAAC,IAAyB;QACzC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/D,OAAO,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QACD,wEAAwE;QACxE,yCAAyC;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,kEAAkE;IAElE,KAAK,CAAC,cAAc,CAAC,IAAsB;QACzC,yEAAyE;QACzE,sEAAsE;QACtE,wEAAwE;QACxE,6DAA6D;QAC7D,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,wEAAwE;QACxE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACjD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzE,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBACzB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;YAChC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;QACvC,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,wCAAwC,SAAS,EAAE,EAAE,CAAC;IACzF,CAAC;IAED,kEAAkE;IAE1D,OAAO;QACb,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,qBAAqB,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;;OAMG;IACK,kBAAkB,CAAC,QAA4B;QACrD,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,KAAK,MAAM,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC1F,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAClE,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACnC,OAAO,CAAC,IAAI,CACV,oCAAoC,MAAM,cAAc,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,oBAAoB;gBACpG,eAAe,KAAK,6BAA6B,KAAK,GAAG,CAAC,yCAAyC;gBACnG,mFAAmF,KAAK,cAAc;gBACtG,wFAAwF,CACzF,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAY;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,KAAK,IAAI,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;YACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,WAAW;IAClB,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACxE,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAED,SAAS,GAAG,CAAC,KAAc;IACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAChE,CAAC;AAED,SAAS,kBAAkB,CAAC,QAA4B;IACtD,MAAM,KAAK,GAAG;QACZ,QAAQ,CAAC,QAAQ;QACjB,QAAQ,CAAC,UAAU;QACnB,QAAQ,CAAC,iBAAiB,IAAI,eAAe,QAAQ,CAAC,iBAAiB,GAAG;QAC1E,QAAQ,CAAC,SAAS,IAAI,cAAc,QAAQ,CAAC,SAAS,GAAG;KAC1D,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC;AAClE,CAAC;AAED,8DAA8D;AAC9D,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED,yEAAyE;AACzE,KAAK,UAAU,gBAAgB,CAAC,CAAS,EAAE,CAAS;IAClD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAiB;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAChC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC;IACpC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,UAAU,GAAG,kBAAkB,GAAG,cAAc,GAAG,eAAe,GAAG,UAAU,CAAC;AAE5F,eAAO,MAAM,eAAe,EAAE,WAK7B,CAAC;AASF,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAuBzD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,UAAU,GAAG,kBAAkB,GAAG,cAAc,GAAG,eAAe,GAAG,UAAU,CAAC;AAE5F,eAAO,MAAM,eAAe,EAAE,WAK7B,CAAC;AASF,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAuBzD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAW7D;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,gEAAgE;AAChE,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD1F"}
|
package/dist/init.js
CHANGED
|
@@ -41,7 +41,9 @@ export function renderSampleTest(answers) {
|
|
|
41
41
|
return `import { test, expect } from '@mobilewright/test';
|
|
42
42
|
|
|
43
43
|
test('app launches', async ({ device, screen, bundleId }) => {
|
|
44
|
-
|
|
44
|
+
// bundleId is typed string | undefined (it is optional in the config);
|
|
45
|
+
// the ! says "I set it in mobilewright.config.ts", which init just did.
|
|
46
|
+
await device.launchApp(bundleId!);
|
|
45
47
|
// Adjust to something your app actually shows:
|
|
46
48
|
await expect(screen.getByText('Welcome', { exact: false })).toBeVisible();
|
|
47
49
|
});
|
package/dist/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAajC,MAAM,CAAC,MAAM,eAAe,GAAgB;IAC1C,QAAQ,EAAE,mBAAmB;IAC7B,OAAO,EAAE,CAAC,kBAAkB,CAAC;IAC7B,IAAI,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;IACpC,cAAc,EAAE,KAAK;CACtB,CAAC;AAEF,MAAM,eAAe,GAA+B;IAClD,kBAAkB,EAAE,yFAAyF;IAC7G,cAAc,EAAE,4EAA4E;IAC5F,eAAe,EAAE,mFAAmF;IACpG,UAAU,EAAE,oEAAoE;CACjF,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,OAAoB;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC;SACrF,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO;;;;;eAKM,OAAO,CAAC,QAAQ;;;;;EAK7B,IAAI;QACE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;iFACgD,CAAC,CAAC,CAAC,EAAE;;;EAGpF,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;CAG1D,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAoB;IACnD,OAAO
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
package/dist/observer.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ export interface ReportableSession {
|
|
|
7
7
|
/** Wall-clock bounds of the recorded cycles, when any exist. */
|
|
8
8
|
startedAt?: number;
|
|
9
9
|
endedAt?: number;
|
|
10
|
+
/** Worker process that ran this session's test, when unambiguous. */
|
|
11
|
+
workerIndex?: number;
|
|
10
12
|
}
|
|
11
13
|
export interface GitInfo {
|
|
12
14
|
commit?: string;
|
|
@@ -26,12 +28,37 @@ export interface ObserverContext {
|
|
|
26
28
|
output: string;
|
|
27
29
|
}[];
|
|
28
30
|
}
|
|
31
|
+
interface TestOutcome {
|
|
32
|
+
/** Playwright's stable test id — also the JSON report's `spec.id`. */
|
|
33
|
+
id: string;
|
|
34
|
+
title: string;
|
|
35
|
+
failed: boolean;
|
|
36
|
+
summary?: string;
|
|
37
|
+
/** Wall-clock interval of the (final) attempt: reconstructed at onTestEnd,
|
|
38
|
+
* replaced by the worker's own stamps when the run report supplies them. */
|
|
39
|
+
startedAt: number;
|
|
40
|
+
endedAt: number;
|
|
41
|
+
/** Worker process that ran the final attempt, per the run report. */
|
|
42
|
+
workerIndex?: number;
|
|
43
|
+
/** Interval came from the run report — i.e. from the worker's own clock. */
|
|
44
|
+
fromReport?: boolean;
|
|
45
|
+
}
|
|
46
|
+
/** What the run report adds to an outcome the reporter events cannot. */
|
|
47
|
+
interface ReportedTiming {
|
|
48
|
+
workerIndex?: number;
|
|
49
|
+
startedAt: number;
|
|
50
|
+
endedAt: number;
|
|
51
|
+
}
|
|
29
52
|
/**
|
|
30
53
|
* Reports outcomes to TestingBot. Sessions whose wall-clock interval maps to
|
|
31
54
|
* exactly one test (sessionPerTest mode) get that test's name and verdict;
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
55
|
+
* a reused pool session hosting many tests gets the run-level verdict, which
|
|
56
|
+
* genuinely describes it. A session that is neither — an ambiguous overlap
|
|
57
|
+
* under high concurrency, or one whose test span never reached the run file —
|
|
58
|
+
* gets build/extra/tags only: an unknown verdict is reported as unknown
|
|
59
|
+
* rather than as the run's, which on a failed run would mark a session failed
|
|
60
|
+
* on another test's behalf. Strictly best-effort throughout: reporting
|
|
61
|
+
* failures never fail the test run.
|
|
35
62
|
*/
|
|
36
63
|
export declare class TestingBotTestObserver implements TestObserver {
|
|
37
64
|
private readonly api;
|
|
@@ -51,23 +78,55 @@ export declare class TestingBotTestObserver implements TestObserver {
|
|
|
51
78
|
*/
|
|
52
79
|
private downloadRecordings;
|
|
53
80
|
/**
|
|
54
|
-
*
|
|
81
|
+
* Map each session to the single test that ran inside it, when unambiguous.
|
|
82
|
+
*
|
|
55
83
|
* Direction matters: connect() and disconnect() happen INSIDE the test, so
|
|
56
84
|
* the session interval is a sub-interval of its test's — but a test's
|
|
57
85
|
* reported duration also covers fixture setup (device allocation), so the
|
|
58
|
-
* test interval is much wider than the session's.
|
|
59
|
-
*
|
|
86
|
+
* test interval is much wider than the session's. Sessions are therefore
|
|
87
|
+
* scored by how much of the SESSION each test interval covers, never the
|
|
88
|
+
* other way around.
|
|
89
|
+
*
|
|
90
|
+
* Wall clock is the only join available: the worker process that owns the
|
|
91
|
+
* session never learns which test it is running (`ConnectionConfig` carries
|
|
92
|
+
* no test identity), so the coordinator has to line the two up after the
|
|
93
|
+
* fact. Everything below is therefore built to abstain rather than guess —
|
|
94
|
+
* a session with no confident, exclusive match gets no verdict at all.
|
|
60
95
|
*/
|
|
61
|
-
private
|
|
96
|
+
private attribute;
|
|
62
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Playwright's JSON report for this run, when mobilewright exposes one.
|
|
100
|
+
* Documented upstream as a transitional escape hatch, so every reader below is
|
|
101
|
+
* feature-detected and silent on failure: the report may sharpen reporting,
|
|
102
|
+
* but nothing may depend on it. Read once per run and shared.
|
|
103
|
+
*/
|
|
104
|
+
export declare function readJsonReport(result: RunResultInfo): Promise<Record<string, unknown> | undefined>;
|
|
105
|
+
/**
|
|
106
|
+
* Per-test worker index and interval, keyed by `spec.id` — which is the same
|
|
107
|
+
* id `onTestEnd` receives as `TestInfo.id`. Two things the reporter events
|
|
108
|
+
* cannot give us:
|
|
109
|
+
*
|
|
110
|
+
* - **which worker process ran the test.** The driver stamps that same index
|
|
111
|
+
* on its run-file session records from inside the worker, so this is a real
|
|
112
|
+
* identity join, not a heuristic — it rules out every test that provably ran
|
|
113
|
+
* somewhere else, which is what makes concurrent runs attributable at all.
|
|
114
|
+
* - **the worker's own timestamps.** `onTestEnd` can only reconstruct the
|
|
115
|
+
* interval from `Date.now()` in the coordinator, after reporter dispatch;
|
|
116
|
+
* any delay there shifts the whole interval away from the session's.
|
|
117
|
+
*
|
|
118
|
+
* Later attempts win, matching how `onTestEnd` overwrites retried tests.
|
|
119
|
+
*/
|
|
120
|
+
export declare function readTestTimings(report: Record<string, unknown> | undefined): Map<string, ReportedTiming>;
|
|
121
|
+
/** Overlay report timings onto the outcomes collected from the event hooks. */
|
|
122
|
+
export declare function applyReportedTimings(outcomes: TestOutcome[], timings: Map<string, ReportedTiming>): TestOutcome[];
|
|
63
123
|
/**
|
|
64
124
|
* Git metadata mobilewright captures into the Playwright report
|
|
65
125
|
* (`config.metadata.gitCommit`, populated when `captureGitInfo` is on —
|
|
66
|
-
* Playwright does this automatically on CI).
|
|
67
|
-
* upstream as a transitional escape hatch, so every step is feature-detected
|
|
68
|
-
* and failures are silent: metadata must never break reporting.
|
|
126
|
+
* Playwright does this automatically on CI).
|
|
69
127
|
*/
|
|
70
|
-
export declare function readGitInfo(
|
|
128
|
+
export declare function readGitInfo(report: Record<string, unknown> | undefined): GitInfo | undefined;
|
|
71
129
|
/** Merge the user's `extra` with git metadata for the dashboard's extra field. */
|
|
72
130
|
export declare function buildExtra(userExtra: string | undefined, git: GitInfo | undefined): string | undefined;
|
|
131
|
+
export {};
|
|
73
132
|
//# sourceMappingURL=observer.d.ts.map
|
package/dist/observer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observer.d.ts","sourceRoot":"","sources":["../src/observer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"observer.d.ts","sourceRoot":"","sources":["../src/observer.ts"],"names":[],"mappings":"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"}
|
package/dist/observer.js
CHANGED
|
@@ -4,9 +4,13 @@ const debug = createDebug('testingbot:observer');
|
|
|
4
4
|
/**
|
|
5
5
|
* Reports outcomes to TestingBot. Sessions whose wall-clock interval maps to
|
|
6
6
|
* exactly one test (sessionPerTest mode) get that test's name and verdict;
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* a reused pool session hosting many tests gets the run-level verdict, which
|
|
8
|
+
* genuinely describes it. A session that is neither — an ambiguous overlap
|
|
9
|
+
* under high concurrency, or one whose test span never reached the run file —
|
|
10
|
+
* gets build/extra/tags only: an unknown verdict is reported as unknown
|
|
11
|
+
* rather than as the run's, which on a failed run would mark a session failed
|
|
12
|
+
* on another test's behalf. Strictly best-effort throughout: reporting
|
|
13
|
+
* failures never fail the test run.
|
|
10
14
|
*/
|
|
11
15
|
export class TestingBotTestObserver {
|
|
12
16
|
api;
|
|
@@ -28,6 +32,7 @@ export class TestingBotTestObserver {
|
|
|
28
32
|
const error = result.errors[0]?.split('\n')[0] ?? result.status;
|
|
29
33
|
const endedAt = Date.now();
|
|
30
34
|
this.outcomes.set(test.id, {
|
|
35
|
+
id: test.id,
|
|
31
36
|
title: test.title,
|
|
32
37
|
failed,
|
|
33
38
|
summary: failed ? `${test.title}: ${error}`.slice(0, 200) : undefined,
|
|
@@ -43,18 +48,29 @@ export class TestingBotTestObserver {
|
|
|
43
48
|
return;
|
|
44
49
|
}
|
|
45
50
|
const success = result.status === 'passed';
|
|
46
|
-
|
|
51
|
+
// One read of the run report serves both git metadata and the attribution
|
|
52
|
+
// join below.
|
|
53
|
+
const report = await readJsonReport(result);
|
|
54
|
+
const outcomes = applyReportedTimings([...this.outcomes.values()], readTestTimings(report));
|
|
47
55
|
const failures = outcomes.filter((o) => o.failed).map((o) => o.summary).filter(Boolean).slice(0, 10);
|
|
48
56
|
const runMessage = success
|
|
49
57
|
? `${outcomes.length}/${this.totalTests} tests passed`
|
|
50
58
|
: `${failures.length} of ${outcomes.length} tests failed. ${failures.join(' | ')}`.slice(0, 500);
|
|
51
|
-
const git =
|
|
59
|
+
const git = readGitInfo(report);
|
|
52
60
|
const extra = buildExtra(this.context.extra, git);
|
|
53
61
|
const groups = ['mobilewright', ...(git?.branch ? [git.branch] : [])];
|
|
54
62
|
const sessions = this.context.sessions();
|
|
55
63
|
debug('run ended (%s), reporting to %d session(s)%s', result.status, sessions.length, git ? ` with git ${git.commit?.slice(0, 8) ?? '?'} (${git.branch ?? 'no branch'})` : '');
|
|
64
|
+
const attributed = this.attribute(sessions, outcomes);
|
|
56
65
|
for (const session of sessions) {
|
|
57
|
-
const test =
|
|
66
|
+
const test = attributed.get(session.sessionId);
|
|
67
|
+
// An unattributable session must never inherit the run's failure: on a
|
|
68
|
+
// failed run that would stamp another test's verdict onto a session
|
|
69
|
+
// whose own test passed. The aggregate is only safe when the failing
|
|
70
|
+
// test cannot have run anywhere else — a session that hosted several
|
|
71
|
+
// tests, or the run's only session — or when the run passed, where
|
|
72
|
+
// every session's verdict is "passed" anyway.
|
|
73
|
+
const mayInheritRunVerdict = success || session.spans > 1 || sessions.length === 1;
|
|
58
74
|
try {
|
|
59
75
|
await this.api.updateTest(session.sessionId, test
|
|
60
76
|
? {
|
|
@@ -66,13 +82,14 @@ export class TestingBotTestObserver {
|
|
|
66
82
|
groups,
|
|
67
83
|
}
|
|
68
84
|
: {
|
|
69
|
-
success,
|
|
70
|
-
statusMessage: runMessage,
|
|
85
|
+
...(mayInheritRunVerdict ? { success, statusMessage: runMessage } : {}),
|
|
71
86
|
build: this.context.build,
|
|
72
87
|
extra,
|
|
73
88
|
groups,
|
|
74
89
|
});
|
|
75
|
-
debug('reported %s -> %s', session.sessionId, test
|
|
90
|
+
debug('reported %s -> %s', session.sessionId, test
|
|
91
|
+
? `test "${test.title}"`
|
|
92
|
+
: mayInheritRunVerdict ? `run success=${success}` : 'metadata only (verdict left untouched)');
|
|
76
93
|
}
|
|
77
94
|
catch (err) {
|
|
78
95
|
// Never fail the run over reporting.
|
|
@@ -125,41 +142,177 @@ export class TestingBotTestObserver {
|
|
|
125
142
|
}
|
|
126
143
|
}
|
|
127
144
|
/**
|
|
128
|
-
*
|
|
145
|
+
* Map each session to the single test that ran inside it, when unambiguous.
|
|
146
|
+
*
|
|
129
147
|
* Direction matters: connect() and disconnect() happen INSIDE the test, so
|
|
130
148
|
* the session interval is a sub-interval of its test's — but a test's
|
|
131
149
|
* reported duration also covers fixture setup (device allocation), so the
|
|
132
|
-
* test interval is much wider than the session's.
|
|
133
|
-
*
|
|
150
|
+
* test interval is much wider than the session's. Sessions are therefore
|
|
151
|
+
* scored by how much of the SESSION each test interval covers, never the
|
|
152
|
+
* other way around.
|
|
153
|
+
*
|
|
154
|
+
* Wall clock is the only join available: the worker process that owns the
|
|
155
|
+
* session never learns which test it is running (`ConnectionConfig` carries
|
|
156
|
+
* no test identity), so the coordinator has to line the two up after the
|
|
157
|
+
* fact. Everything below is therefore built to abstain rather than guess —
|
|
158
|
+
* a session with no confident, exclusive match gets no verdict at all.
|
|
134
159
|
*/
|
|
135
|
-
|
|
136
|
-
//
|
|
137
|
-
|
|
138
|
-
return undefined;
|
|
139
|
-
if (session.startedAt === undefined || session.endedAt === undefined)
|
|
140
|
-
return undefined;
|
|
141
|
-
const midpoint = (session.startedAt + session.endedAt) / 2;
|
|
142
|
-
// Clock skew tolerance between the worker's stamps and ours.
|
|
160
|
+
attribute(sessions, outcomes) {
|
|
161
|
+
// Clock skew tolerance between the worker's stamps and ours. Report-sourced
|
|
162
|
+
// intervals need none: the worker measured both ends of the comparison.
|
|
143
163
|
const SLACK_MS = 2_000;
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
164
|
+
const slackFor = (outcome) => outcome.fromReport ? 0 : SLACK_MS;
|
|
165
|
+
// A test must cover at least this much of the session to claim it.
|
|
166
|
+
const MIN_COVERAGE = 0.5;
|
|
167
|
+
const claims = [];
|
|
168
|
+
for (const session of sessions) {
|
|
169
|
+
// A session that hosted several tests has no single correct name/verdict.
|
|
170
|
+
if (session.spans > 1) {
|
|
171
|
+
debug('%s hosted %d tests — no single verdict', session.sessionId, session.spans);
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
174
|
+
if (session.spans === 0) {
|
|
175
|
+
debug('%s has no recorded test span — unattributable', session.sessionId);
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
if (session.startedAt === undefined || session.endedAt === undefined) {
|
|
179
|
+
debug('%s has no recorded interval — unattributable', session.sessionId);
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
// Connect and disconnect can land in the same millisecond (a fast test on
|
|
183
|
+
// an already-warm session), and a zero-length interval overlaps nothing.
|
|
184
|
+
// Give every interval — session and test alike — at least 1ms of width so
|
|
185
|
+
// a degenerate one stays comparable instead of scoring zero against all.
|
|
186
|
+
const sessionEnd = Math.max(session.endedAt, session.startedAt + 1);
|
|
187
|
+
const span = sessionEnd - session.startedAt;
|
|
188
|
+
// Identity first: a test the report places in another worker process
|
|
189
|
+
// cannot have run in this session, whatever the clocks say. Pairs where
|
|
190
|
+
// either side's worker is unknown stay eligible and fall through to the
|
|
191
|
+
// timing join below.
|
|
192
|
+
const eligible = outcomes.filter((outcome) => session.workerIndex === undefined || outcome.workerIndex === undefined ||
|
|
193
|
+
outcome.workerIndex === session.workerIndex);
|
|
194
|
+
if (eligible.length < outcomes.length) {
|
|
195
|
+
debug('%s ran in worker %d — %d of %d tests eligible', session.sessionId, session.workerIndex, eligible.length, outcomes.length);
|
|
196
|
+
}
|
|
197
|
+
const scored = eligible
|
|
198
|
+
.map((outcome) => ({
|
|
199
|
+
outcome,
|
|
200
|
+
coverage: Math.max(0, Math.min(sessionEnd, Math.max(outcome.endedAt, outcome.startedAt + 1) + slackFor(outcome)) -
|
|
201
|
+
Math.max(session.startedAt, outcome.startedAt - slackFor(outcome))) / span,
|
|
202
|
+
}))
|
|
203
|
+
.filter((c) => c.coverage >= MIN_COVERAGE)
|
|
204
|
+
.sort((a, b) => b.coverage - a.coverage);
|
|
205
|
+
if (scored.length === 0) {
|
|
206
|
+
debug('%s overlaps no test interval — unattributable', session.sessionId);
|
|
207
|
+
continue;
|
|
208
|
+
}
|
|
209
|
+
if (scored.length > 1 && scored[1].coverage >= scored[0].coverage) {
|
|
210
|
+
debug('%d tests overlap session %s equally — unattributable', scored.length, session.sessionId);
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
claims.push({ sessionId: session.sessionId, outcome: scored[0].outcome, coverage: scored[0].coverage });
|
|
214
|
+
}
|
|
215
|
+
// One test ran in one session: when several sessions claim the same test,
|
|
216
|
+
// the best-covered one wins, and a tie means neither may have it.
|
|
217
|
+
const attributed = new Map();
|
|
218
|
+
for (const outcome of new Set(claims.map((c) => c.outcome))) {
|
|
219
|
+
const rivals = claims.filter((c) => c.outcome === outcome).sort((a, b) => b.coverage - a.coverage);
|
|
220
|
+
if (rivals.length > 1 && rivals[1].coverage >= rivals[0].coverage) {
|
|
221
|
+
debug('%d sessions claim test "%s" equally — none attributed', rivals.length, outcome.title);
|
|
222
|
+
continue;
|
|
223
|
+
}
|
|
224
|
+
if (rivals.length > 1) {
|
|
225
|
+
debug('%d sessions claim test "%s" — %s wins', rivals.length, outcome.title, rivals[0].sessionId);
|
|
226
|
+
}
|
|
227
|
+
attributed.set(rivals[0].sessionId, outcome);
|
|
149
228
|
}
|
|
229
|
+
return attributed;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Playwright's JSON report for this run, when mobilewright exposes one.
|
|
234
|
+
* Documented upstream as a transitional escape hatch, so every reader below is
|
|
235
|
+
* feature-detected and silent on failure: the report may sharpen reporting,
|
|
236
|
+
* but nothing may depend on it. Read once per run and shared.
|
|
237
|
+
*/
|
|
238
|
+
export async function readJsonReport(result) {
|
|
239
|
+
try {
|
|
240
|
+
return await result.jsonReport?.();
|
|
241
|
+
}
|
|
242
|
+
catch (err) {
|
|
243
|
+
debug('could not read the run report: %s', err);
|
|
150
244
|
return undefined;
|
|
151
245
|
}
|
|
152
246
|
}
|
|
247
|
+
/**
|
|
248
|
+
* Per-test worker index and interval, keyed by `spec.id` — which is the same
|
|
249
|
+
* id `onTestEnd` receives as `TestInfo.id`. Two things the reporter events
|
|
250
|
+
* cannot give us:
|
|
251
|
+
*
|
|
252
|
+
* - **which worker process ran the test.** The driver stamps that same index
|
|
253
|
+
* on its run-file session records from inside the worker, so this is a real
|
|
254
|
+
* identity join, not a heuristic — it rules out every test that provably ran
|
|
255
|
+
* somewhere else, which is what makes concurrent runs attributable at all.
|
|
256
|
+
* - **the worker's own timestamps.** `onTestEnd` can only reconstruct the
|
|
257
|
+
* interval from `Date.now()` in the coordinator, after reporter dispatch;
|
|
258
|
+
* any delay there shifts the whole interval away from the session's.
|
|
259
|
+
*
|
|
260
|
+
* Later attempts win, matching how `onTestEnd` overwrites retried tests.
|
|
261
|
+
*/
|
|
262
|
+
export function readTestTimings(report) {
|
|
263
|
+
const timings = new Map();
|
|
264
|
+
const walk = (suite) => {
|
|
265
|
+
for (const spec of arr(suite['specs'])) {
|
|
266
|
+
const id = str(spec['id']);
|
|
267
|
+
const results = arr(spec['tests']).flatMap((test) => arr(test['results']));
|
|
268
|
+
const final = results[results.length - 1];
|
|
269
|
+
if (id === undefined || final === undefined)
|
|
270
|
+
continue;
|
|
271
|
+
const startedAt = Date.parse(str(final['startTime']) ?? '');
|
|
272
|
+
const duration = final['duration'];
|
|
273
|
+
if (!Number.isFinite(startedAt) || typeof duration !== 'number')
|
|
274
|
+
continue;
|
|
275
|
+
// Playwright reports workerIndex -1 for tests it never got to run.
|
|
276
|
+
const workerIndex = typeof final['workerIndex'] === 'number' && final['workerIndex'] >= 0
|
|
277
|
+
? final['workerIndex']
|
|
278
|
+
: undefined;
|
|
279
|
+
timings.set(id, { workerIndex, startedAt, endedAt: startedAt + duration });
|
|
280
|
+
}
|
|
281
|
+
for (const child of arr(suite['suites']))
|
|
282
|
+
walk(child);
|
|
283
|
+
};
|
|
284
|
+
try {
|
|
285
|
+
for (const suite of arr(report?.['suites']))
|
|
286
|
+
walk(suite);
|
|
287
|
+
}
|
|
288
|
+
catch (err) {
|
|
289
|
+
debug('could not read test timings from the run report: %s', err);
|
|
290
|
+
return new Map();
|
|
291
|
+
}
|
|
292
|
+
return timings;
|
|
293
|
+
}
|
|
294
|
+
/** Overlay report timings onto the outcomes collected from the event hooks. */
|
|
295
|
+
export function applyReportedTimings(outcomes, timings) {
|
|
296
|
+
if (timings.size === 0)
|
|
297
|
+
return outcomes;
|
|
298
|
+
let joined = 0;
|
|
299
|
+
const merged = outcomes.map((outcome) => {
|
|
300
|
+
const timing = timings.get(outcome.id);
|
|
301
|
+
if (!timing)
|
|
302
|
+
return outcome;
|
|
303
|
+
joined += 1;
|
|
304
|
+
return { ...outcome, ...timing, fromReport: true };
|
|
305
|
+
});
|
|
306
|
+
debug('run report supplied worker identity and timings for %d/%d tests', joined, outcomes.length);
|
|
307
|
+
return merged;
|
|
308
|
+
}
|
|
153
309
|
/**
|
|
154
310
|
* Git metadata mobilewright captures into the Playwright report
|
|
155
311
|
* (`config.metadata.gitCommit`, populated when `captureGitInfo` is on —
|
|
156
|
-
* Playwright does this automatically on CI).
|
|
157
|
-
* upstream as a transitional escape hatch, so every step is feature-detected
|
|
158
|
-
* and failures are silent: metadata must never break reporting.
|
|
312
|
+
* Playwright does this automatically on CI).
|
|
159
313
|
*/
|
|
160
|
-
export
|
|
314
|
+
export function readGitInfo(report) {
|
|
161
315
|
try {
|
|
162
|
-
const report = await result.jsonReport?.();
|
|
163
316
|
const config = report?.['config'];
|
|
164
317
|
const metadata = config?.['metadata'];
|
|
165
318
|
const commit = metadata?.['gitCommit'];
|
|
@@ -191,4 +344,7 @@ export function buildExtra(userExtra, git) {
|
|
|
191
344
|
function str(value) {
|
|
192
345
|
return typeof value === 'string' && value ? value : undefined;
|
|
193
346
|
}
|
|
347
|
+
function arr(value) {
|
|
348
|
+
return Array.isArray(value) ? value : [];
|
|
349
|
+
}
|
|
194
350
|
//# sourceMappingURL=observer.js.map
|
package/dist/observer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observer.js","sourceRoot":"","sources":["../src/observer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"observer.js","sourceRoot":"","sources":["../src/observer.ts"],"names":[],"mappings":"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"}
|
package/dist/run-log.d.ts
CHANGED
|
@@ -13,6 +13,11 @@ export interface SessionRecord {
|
|
|
13
13
|
* test end, used to attribute a test's verdict to its session. */
|
|
14
14
|
startedAt?: number;
|
|
15
15
|
endedAt?: number;
|
|
16
|
+
/** Playwright's TEST_WORKER_INDEX for the process that ran this test. The
|
|
17
|
+
* identity half of the observer's session-to-test join: the run report
|
|
18
|
+
* reports the same index per test, so a session can be matched against the
|
|
19
|
+
* tests of its own worker instead of every test in the run. */
|
|
20
|
+
workerIndex?: number;
|
|
16
21
|
}
|
|
17
22
|
export interface AppRecord {
|
|
18
23
|
type: 'app';
|
|
@@ -34,6 +39,10 @@ export interface MergedSession {
|
|
|
34
39
|
spans: number;
|
|
35
40
|
startedAt?: number;
|
|
36
41
|
endedAt?: number;
|
|
42
|
+
/** The worker process that ran this session's test(s) — only when every
|
|
43
|
+
* recorded cycle agrees, since a pooled slot re-granted across workers has
|
|
44
|
+
* no single owner. */
|
|
45
|
+
workerIndex?: number;
|
|
37
46
|
}
|
|
38
47
|
export declare class RunLog {
|
|
39
48
|
readonly path: string;
|
package/dist/run-log.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-log.d.ts","sourceRoot":"","sources":["../src/run-log.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB;uEACmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"run-log.d.ts","sourceRoot":"","sources":["../src/run-log.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB;uEACmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;oEAGgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,OAAO,GAAG,aAAa,GAAG,SAAS,GAAG,eAAe,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;2BAEuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,MAAM;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,GAAG,GAAE,MAAiB,EAAE,GAAG,GAAE,MAAsB;IAK/D,QAAQ,IAAI,IAAI;IAQhB,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAQ7B,IAAI,IAAI,OAAO,EAAE;IAWjB;;;;;;OAMG;IACH,QAAQ,IAAI,aAAa,EAAE;IAyB3B,UAAU,IAAI,MAAM,EAAE;IAItB,UAAU,IAAI,eAAe,EAAE;IAI/B,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS;CAOnF"}
|
package/dist/run-log.js
CHANGED
|
@@ -44,6 +44,7 @@ export class RunLog {
|
|
|
44
44
|
*/
|
|
45
45
|
sessions() {
|
|
46
46
|
const byId = new Map();
|
|
47
|
+
const workersSeen = new Map();
|
|
47
48
|
for (const record of this.read()) {
|
|
48
49
|
if (record.type !== 'session')
|
|
49
50
|
continue;
|
|
@@ -53,8 +54,18 @@ export class RunLog {
|
|
|
53
54
|
merged.startedAt = Math.min(merged.startedAt ?? record.startedAt, record.startedAt);
|
|
54
55
|
merged.endedAt = Math.max(merged.endedAt ?? record.endedAt, record.endedAt);
|
|
55
56
|
}
|
|
57
|
+
if (record.workerIndex !== undefined) {
|
|
58
|
+
const seen = workersSeen.get(record.sessionId) ?? new Set();
|
|
59
|
+
seen.add(record.workerIndex);
|
|
60
|
+
workersSeen.set(record.sessionId, seen);
|
|
61
|
+
}
|
|
56
62
|
byId.set(record.sessionId, merged);
|
|
57
63
|
}
|
|
64
|
+
for (const merged of byId.values()) {
|
|
65
|
+
const seen = workersSeen.get(merged.sessionId);
|
|
66
|
+
if (seen?.size === 1)
|
|
67
|
+
merged.workerIndex = [...seen][0];
|
|
68
|
+
}
|
|
58
69
|
return [...byId.values()];
|
|
59
70
|
}
|
|
60
71
|
sessionIds() {
|
package/dist/run-log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-log.js","sourceRoot":"","sources":["../src/run-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"run-log.js","sourceRoot":"","sources":["../src/run-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsDzC,MAAM,OAAO,MAAM;IACR,IAAI,CAAS;IAEtB,YAAY,MAAc,MAAM,EAAE,EAAE,MAAc,OAAO,CAAC,GAAG,EAAE;QAC7D,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,2BAA2B,IAAI,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED,QAAQ;QACN,IAAI,CAAC;YACH,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,yEAAyE;QAC3E,CAAC;IACH,CAAC;IAED,MAAM,CAAC,MAAe;QACpB,IAAI,CAAC;YACH,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;QACpE,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;iBACpC,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,OAAO,CAAC;iBACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,QAAQ;QACN,MAAM,IAAI,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;QACnD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACjC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;gBAAE,SAAS;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACvF,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACnE,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;gBAClB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBACpF,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9E,CAAC;YACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACrC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;gBACpE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC7B,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC;gBAAE,MAAM,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IACjF,CAAC;IAED,UAAU,CAAC,QAAgB,EAAE,UAA8B;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;QACzE,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAC1C,EAAE,IAAI,CAAC;IACV,CAAC;CACF"}
|
package/package.json
CHANGED