@e2e-dev/web 0.11.0-canary-20260928184528 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -14
- package/dist/.build.json +1 -1
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +24 -4
- package/dist/actions.js.map +1 -1
- package/dist/attempt-session.d.ts +38 -3
- package/dist/attempt-session.d.ts.map +1 -1
- package/dist/attempt-session.js +71 -16
- package/dist/attempt-session.js.map +1 -1
- package/dist/browser-connection.d.ts.map +1 -1
- package/dist/browser-connection.js +12 -1
- package/dist/browser-connection.js.map +1 -1
- package/dist/{web.d.ts → browser.d.ts} +18 -9
- package/dist/browser.d.ts.map +1 -0
- package/dist/{web.js → browser.js} +35 -19
- package/dist/browser.js.map +1 -0
- package/dist/downloads.d.ts +29 -0
- package/dist/downloads.d.ts.map +1 -0
- package/dist/downloads.js +74 -0
- package/dist/downloads.js.map +1 -0
- package/dist/engine.d.ts +2 -2
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +113 -18
- package/dist/engine.js.map +1 -1
- package/dist/in-page/read-semantics.d.ts.map +1 -1
- package/dist/in-page/read-semantics.js +143 -34
- package/dist/in-page/read-semantics.js.map +1 -1
- package/dist/index.d.ts +19 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/locators.d.ts.map +1 -1
- package/dist/locators.js +26 -7
- package/dist/locators.js.map +1 -1
- package/dist/protected-app.d.ts +6 -2
- package/dist/protected-app.d.ts.map +1 -1
- package/dist/protected-app.js +18 -5
- package/dist/protected-app.js.map +1 -1
- package/dist/provider-video.d.ts +48 -0
- package/dist/provider-video.d.ts.map +1 -0
- package/dist/provider-video.js +80 -0
- package/dist/provider-video.js.map +1 -0
- package/dist/provider.d.ts +100 -5
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +148 -14
- package/dist/provider.js.map +1 -1
- package/dist/surface.d.ts +57 -13
- package/dist/surface.d.ts.map +1 -1
- package/dist/surface.js +41 -10
- package/dist/surface.js.map +1 -1
- package/dist/video.d.ts +34 -10
- package/dist/video.d.ts.map +1 -1
- package/dist/video.js +19 -10
- package/dist/video.js.map +1 -1
- package/package.json +4 -4
- package/dist/web.d.ts.map +0 -1
- package/dist/web.js.map +0 -1
package/README.md
CHANGED
|
@@ -25,20 +25,23 @@ import type { E2EConfig } from 'e2e';
|
|
|
25
25
|
import { web } from '@e2e-dev/web';
|
|
26
26
|
|
|
27
27
|
export default {
|
|
28
|
-
targets: [{ name: 'web', engine: web({ url: 'http://localhost:3000' }
|
|
28
|
+
targets: [{ name: 'web', engine: web(), app: { url: 'http://localhost:3000' } }],
|
|
29
29
|
} satisfies E2EConfig;
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
The
|
|
33
|
-
`app.open()` opens; required
|
|
34
|
-
runner starts before the run and stops after it,
|
|
35
|
-
default `url`), `environment`
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
The target declares the app; the engine only drives it. The target's `app`
|
|
33
|
+
takes `url` (the base URL `app.open()` opens; required on a `web()` target),
|
|
34
|
+
`command` (a process the runner starts before the run and stops after it,
|
|
35
|
+
with `readyUrl` to poll, default `url`), `environment` (`test`, `staging`,
|
|
36
|
+
`production`; inferred from the host), and `identity` (a stable cache and
|
|
37
|
+
session key when the origin is ephemeral). `web({ url })` and the other old
|
|
38
|
+
app options are `INVALID_CONFIG`. A target with `app.url` is a `browser`
|
|
39
|
+
target, so a test can `requires: ['browser']`. Browser options:
|
|
38
40
|
`browser` (`chromium`, `firefox`, `webkit`; default `chromium`; or a
|
|
39
41
|
`BrowserProvider` that leases hosted browsers, see below), `viewport`
|
|
40
42
|
(`{ width, height }`; default 1280x720), `testIdAttribute` (the attribute
|
|
41
|
-
`getByTestId` and a node's `testId` read; default `data-testid`),
|
|
43
|
+
`getByTestId` and a node's `testId` read; default `data-testid`), `userAgent`
|
|
44
|
+
(the `User-Agent` every attempt sends and `navigator.userAgent` reports), and
|
|
42
45
|
`connect` — attach to a remote browser over CDP instead of launching a local
|
|
43
46
|
one.
|
|
44
47
|
|
|
@@ -68,7 +71,7 @@ engine verifies the default context ID and active page target ID, clears stale
|
|
|
68
71
|
references, and never repeats a dispatched operation. A missing target fails
|
|
69
72
|
the attempt. The host owns deleting the remote browser after cleanup.
|
|
70
73
|
|
|
71
|
-
This mode does not support `headers`, `basicAuth`, context reset, or session
|
|
74
|
+
This mode does not support `headers`, `basicAuth`, `userAgent`, context reset, or session
|
|
72
75
|
state capture and restore. Recording resumes after reconnect, but a segment
|
|
73
76
|
lost during the disconnect remains unavailable. See the
|
|
74
77
|
[Playwright reference](../../docs/reference/web.mdx#recovering-a-cdp-transport)
|
|
@@ -99,10 +102,10 @@ engine: web({
|
|
|
99
102
|
});
|
|
100
103
|
```
|
|
101
104
|
|
|
102
|
-
## The `
|
|
105
|
+
## The `browser` fixture
|
|
103
106
|
|
|
104
|
-
The engine contributes `
|
|
105
|
-
downloads, keyboard and mouse, plus `expect(
|
|
107
|
+
The engine contributes `browser`: navigation, routes, cookies, dialogs, frames,
|
|
108
|
+
downloads, keyboard and mouse, plus `expect(browser).toHaveURL()` and
|
|
106
109
|
`toHaveTitle()` and `toHaveClass()`. Import `test` from this package to have it
|
|
107
110
|
typed; it is the same runtime `test` as `e2e`'s.
|
|
108
111
|
|
|
@@ -110,10 +113,10 @@ typed; it is the same runtime `test` as `e2e`'s.
|
|
|
110
113
|
import { test } from '@e2e-dev/web';
|
|
111
114
|
import { expect } from 'e2e';
|
|
112
115
|
|
|
113
|
-
test('signs in', async ({ app, screen,
|
|
116
|
+
test('signs in', async ({ app, screen, browser }) => {
|
|
114
117
|
await app.open('/login');
|
|
115
118
|
await screen.getByLabel('Email').fill('user@example.test');
|
|
116
|
-
await expect(
|
|
119
|
+
await expect(browser).toHaveURL('/dashboard');
|
|
117
120
|
});
|
|
118
121
|
```
|
|
119
122
|
|
package/dist/.build.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"0.11.0
|
|
1
|
+
{"version":"0.11.0"}
|
package/dist/actions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAiC,KAAK,aAAa,EAAE,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AACrI,OAAO,EAWL,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAUtB;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,YAAY,GACrC,OAAO,CAAC,IAAI,CAAC,CA8Ef;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B/G;AAoCD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,KAAK,CA4BnF"}
|
package/dist/actions.js
CHANGED
|
@@ -3,6 +3,10 @@ import { EngineError } from 'e2e/engine';
|
|
|
3
3
|
import { asActionable, isClassified, isPwTimeout, message, nearestPixel, performElementSwipe, performPointDrag, performPointerDrag, performViewportSwipe, POST_DISPATCH_PATTERN, } from './support.js';
|
|
4
4
|
/** How long a long press holds the button when the action names no duration. */
|
|
5
5
|
const DEFAULT_LONG_PRESS_MS = 500;
|
|
6
|
+
/** The keys a click holds, as Playwright's `modifiers` takes them; the contract spells them the same. */
|
|
7
|
+
function heldKeys(action) {
|
|
8
|
+
return action.modifiers === undefined ? {} : { modifiers: [...action.modifiers] };
|
|
9
|
+
}
|
|
6
10
|
/**
|
|
7
11
|
* Dispatches one deterministic locator action onto a Playwright target with the
|
|
8
12
|
* platform's own actionability checks. `lookup` resolves the second ref of a
|
|
@@ -12,13 +16,13 @@ export async function dispatchLocatorAction(target, action, timeout, lookup) {
|
|
|
12
16
|
const locator = asActionable(target);
|
|
13
17
|
switch (action.kind) {
|
|
14
18
|
case 'tap':
|
|
15
|
-
await locator.click({ timeout });
|
|
19
|
+
await locator.click({ timeout, ...heldKeys(action) });
|
|
16
20
|
return;
|
|
17
21
|
case 'doubleTap':
|
|
18
|
-
await locator.dblclick({ timeout });
|
|
22
|
+
await locator.dblclick({ timeout, ...heldKeys(action) });
|
|
19
23
|
return;
|
|
20
24
|
case 'secondaryTap':
|
|
21
|
-
await locator.click({ button: 'right', timeout });
|
|
25
|
+
await locator.click({ button: 'right', timeout, ...heldKeys(action) });
|
|
22
26
|
return;
|
|
23
27
|
case 'longPress':
|
|
24
28
|
await locator.click({ timeout, delay: action.durationMs ?? DEFAULT_LONG_PRESS_MS });
|
|
@@ -144,6 +148,22 @@ function redactSensitive(text, action) {
|
|
|
144
148
|
return text;
|
|
145
149
|
return text.replaceAll(action.value, '[redacted]');
|
|
146
150
|
}
|
|
151
|
+
/** A call-log line naming what kept a node from being acted on: an element over it, or a state it never reached. */
|
|
152
|
+
const BLOCKER_PATTERN = /^element is (?:not (?:visible|enabled|stable|editable)|outside of the viewport)$| intercepts pointer events$/i;
|
|
153
|
+
/**
|
|
154
|
+
* Playwright's timeout cut to its headline and the last blocker its call log
|
|
155
|
+
* names: `<div data-popover>… intercepts pointer events` says what to close,
|
|
156
|
+
* where the whole log repeats it once per retry, thousands of characters a
|
|
157
|
+
* report prints and the agent pays for as model input. A log without a
|
|
158
|
+
* blocker is kept whole.
|
|
159
|
+
*/
|
|
160
|
+
function actionabilitySummary(text) {
|
|
161
|
+
const [headline = text, ...log] = text.split('\n');
|
|
162
|
+
const blocker = log
|
|
163
|
+
.map((line) => line.trim().replace(/^- /, ''))
|
|
164
|
+
.findLast((line) => BLOCKER_PATTERN.test(line));
|
|
165
|
+
return blocker === undefined ? text : `${headline} ${blocker}`;
|
|
166
|
+
}
|
|
147
167
|
/**
|
|
148
168
|
* Classifies a failed action onto the error contract (see the table above
|
|
149
169
|
* `POST_DISPATCH_PATTERN` in support.ts): stale, not actionable, possibly
|
|
@@ -164,7 +184,7 @@ export function classifyActionError(rawCause, action) {
|
|
|
164
184
|
if (POST_DISPATCH_PATTERN.test(text)) {
|
|
165
185
|
return new EngineError('ACTION_MAY_HAVE_COMMITTED', `${action.kind} timed out after its input was dispatched: ${text}`, { retryable: false, cause });
|
|
166
186
|
}
|
|
167
|
-
return new EngineError('NOT_ACTIONABLE', `${action.kind} did not become actionable in time: ${text}`, { retryable: false, cause });
|
|
187
|
+
return new EngineError('NOT_ACTIONABLE', `${action.kind} did not become actionable in time: ${actionabilitySummary(text)}`, { retryable: false, cause });
|
|
168
188
|
}
|
|
169
189
|
if (/not an? <?(input|checkbox|radio|select)|not editable|not checkable/i.test(text)) {
|
|
170
190
|
return new EngineError('NOT_ACTIONABLE', text, { retryable: false, cause });
|
package/dist/actions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAGzD,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,18 +2,30 @@ import type { Browser, BrowserContext, BrowserContextOptions, Page } from 'playw
|
|
|
2
2
|
import { type EngineCleanupContext, type OperationContext, type VideoSegment, type ViewportSize } from 'e2e/engine';
|
|
3
3
|
import { type CdpEndpointResolver, type SessionBinding } from './cdp-recovery.ts';
|
|
4
4
|
import { RefRegistry } from './refs.ts';
|
|
5
|
+
import type { LeaseRecording } from './provider.ts';
|
|
6
|
+
import type { WebScreencastOptions } from './surface.ts';
|
|
5
7
|
export type StorageState = Exclude<NonNullable<BrowserContextOptions['storageState']>, string>;
|
|
6
8
|
interface SessionOptions {
|
|
7
9
|
readonly artifactsDir: string;
|
|
8
10
|
/** The emulated page size, or `null` to follow the window. */
|
|
9
11
|
readonly viewport: ViewportSize | null;
|
|
12
|
+
/** How the engine's own screencast records, when the provider does not record. */
|
|
13
|
+
readonly screencast: WebScreencastOptions;
|
|
10
14
|
readonly contextOptions: BrowserContextOptions;
|
|
11
15
|
readonly acquire: (signal: AbortSignal) => Promise<Browser>;
|
|
12
16
|
readonly configure: (context: BrowserContext) => Promise<void>;
|
|
17
|
+
/** Starts the browser provider's own recording of the attempt's browser, when it records; the attempt records the screencast otherwise. */
|
|
18
|
+
readonly record?: ((signal: AbortSignal) => Promise<LeaseRecording>) | undefined;
|
|
13
19
|
readonly persistent?: {
|
|
14
20
|
readonly provision: CdpEndpointResolver;
|
|
15
21
|
readonly reconnect: CdpEndpointResolver;
|
|
16
|
-
|
|
22
|
+
/**
|
|
23
|
+
* The default contexts earlier attempts rode, for an endpoint that could
|
|
24
|
+
* hand one back (a `connect` resolver). Absent for a provider's lease,
|
|
25
|
+
* fresh by contract: a hosted service may restore browsers from one
|
|
26
|
+
* snapshot, so a new browser can carry an earlier one's context id.
|
|
27
|
+
*/
|
|
28
|
+
readonly usedContexts?: Set<string>;
|
|
17
29
|
};
|
|
18
30
|
}
|
|
19
31
|
export declare class AttemptSession {
|
|
@@ -24,9 +36,12 @@ export declare class AttemptSession {
|
|
|
24
36
|
private state;
|
|
25
37
|
private generation;
|
|
26
38
|
private observed;
|
|
39
|
+
/** Until the attempt's first page opens: a persistent browser's own first tab can serve as that page. */
|
|
40
|
+
private firstPage;
|
|
27
41
|
private tracing;
|
|
28
42
|
private traceSegments;
|
|
29
43
|
private traceParts;
|
|
44
|
+
private requestedViewport;
|
|
30
45
|
constructor(options: SessionOptions);
|
|
31
46
|
/** Captures an immutable connection generation for publication after asynchronous reads. */
|
|
32
47
|
token(): object;
|
|
@@ -48,6 +63,20 @@ export declare class AttemptSession {
|
|
|
48
63
|
private transition;
|
|
49
64
|
/** Creates the attempt's active page and records its exact target before exposing it. */
|
|
50
65
|
ensurePage(): Promise<Page>;
|
|
66
|
+
/**
|
|
67
|
+
* The page the attempt shows next. A persistent browser is fresh for the
|
|
68
|
+
* attempt, so its own first tab serves as the attempt's first page instead
|
|
69
|
+
* of a second tab beside it, which a hosted browser's live view and
|
|
70
|
+
* recording would show behind the test's. The tab is navigated to
|
|
71
|
+
* `about:blank` first, so its document runs the context's init scripts
|
|
72
|
+
* as a new tab's does. Every later page is a new tab.
|
|
73
|
+
*/
|
|
74
|
+
private nextPage;
|
|
75
|
+
/** Sizes the open page, if any, and every page this attempt opens after it. */
|
|
76
|
+
setViewport(size: {
|
|
77
|
+
readonly width: number;
|
|
78
|
+
readonly height: number;
|
|
79
|
+
}): Promise<void>;
|
|
51
80
|
/** Restarts the document while retaining this context's storage. */
|
|
52
81
|
restart(): Promise<void>;
|
|
53
82
|
/** Replaces an ordinary context; persistent recovery never advertises this capability. */
|
|
@@ -64,8 +93,14 @@ export declare class AttemptSession {
|
|
|
64
93
|
startTrace(): Promise<void>;
|
|
65
94
|
/** Returns finalized segments, including any retained before context replacement failed. */
|
|
66
95
|
private stopTrace;
|
|
67
|
-
/**
|
|
68
|
-
|
|
96
|
+
/**
|
|
97
|
+
* Starts video once the page is open, so a provider's recording of the
|
|
98
|
+
* browser starts on the attempt's own tab. A screencast is shared with the
|
|
99
|
+
* trace, which sizes it for itself, so a trace already running (a host
|
|
100
|
+
* that starts the video mid-attempt) is split around a screencast's start:
|
|
101
|
+
* its segment so far is saved, and it resumes on the video's screencast.
|
|
102
|
+
*/
|
|
103
|
+
startVideo(signal: AbortSignal): Promise<void>;
|
|
69
104
|
/** Collects finalized trace segments even when connection replacement failed. */
|
|
70
105
|
collectTrace(operation: OperationContext): Promise<string | readonly string[]>;
|
|
71
106
|
/** Collects this attempt's video independently of a failed connection. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attempt-session.d.ts","sourceRoot":"","sources":["../src/attempt-session.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EAA+C,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AACjK,OAAO,EAAoD,KAAK,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEpI,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"attempt-session.d.ts","sourceRoot":"","sources":["../src/attempt-session.ts"],"names":[],"mappings":"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"}
|
package/dist/attempt-session.js
CHANGED
|
@@ -5,6 +5,7 @@ import { EngineError, raceAbort, withinCleanupBudget } from 'e2e/engine';
|
|
|
5
5
|
import { attachPersistent, recoveryFailed, targetIdentity } from './cdp-recovery.js';
|
|
6
6
|
import { connectionAbort, withConnectionBudget } from './operation-budget.js';
|
|
7
7
|
import { RefRegistry } from './refs.js';
|
|
8
|
+
import { ProviderVideo } from './provider-video.js';
|
|
8
9
|
import { invalidState, translatePwError } from './support.js';
|
|
9
10
|
import { VideoRecorder } from './video.js';
|
|
10
11
|
const TRACE_OPTIONS = { screenshots: true, snapshots: true };
|
|
@@ -16,12 +17,17 @@ export class AttemptSession {
|
|
|
16
17
|
state = { kind: 'empty' };
|
|
17
18
|
generation = {};
|
|
18
19
|
observed = true;
|
|
20
|
+
/** Until the attempt's first page opens: a persistent browser's own first tab can serve as that page. */
|
|
21
|
+
firstPage = true;
|
|
19
22
|
tracing = false;
|
|
20
23
|
traceSegments = 0;
|
|
21
24
|
traceParts = [];
|
|
25
|
+
requestedViewport;
|
|
22
26
|
constructor(options) {
|
|
23
27
|
this.options = options;
|
|
24
|
-
this.video =
|
|
28
|
+
this.video = options.record === undefined
|
|
29
|
+
? new VideoRecorder(options.artifactsDir, options.screencast)
|
|
30
|
+
: new ProviderVideo(options.record, options.artifactsDir);
|
|
25
31
|
}
|
|
26
32
|
/** Captures an immutable connection generation for publication after asynchronous reads. */
|
|
27
33
|
token() { return this.generation; }
|
|
@@ -65,12 +71,15 @@ export class AttemptSession {
|
|
|
65
71
|
return { browser, context, page: null };
|
|
66
72
|
}
|
|
67
73
|
const binding = await attachPersistent(persistent.provision, remaining());
|
|
74
|
+
const { usedContexts } = persistent;
|
|
75
|
+
if (usedContexts === undefined)
|
|
76
|
+
return binding;
|
|
68
77
|
const contextId = binding.identity.contextId;
|
|
69
|
-
if (
|
|
78
|
+
if (usedContexts.has(contextId)) {
|
|
70
79
|
await binding.browser.close().catch(() => undefined);
|
|
71
80
|
throw recoveryFailed('cdpEndpoint reused a browser from a previous attempt; provision a fresh browser');
|
|
72
81
|
}
|
|
73
|
-
|
|
82
|
+
usedContexts.add(contextId);
|
|
74
83
|
return binding;
|
|
75
84
|
}));
|
|
76
85
|
}
|
|
@@ -120,7 +129,7 @@ export class AttemptSession {
|
|
|
120
129
|
throw connectionAbort(budget.signal, 'connection');
|
|
121
130
|
await this.options.configure(candidate.context);
|
|
122
131
|
if (recover && candidate.page !== null) {
|
|
123
|
-
const size = previous?.page?.viewportSize() ?? this.options.viewport;
|
|
132
|
+
const size = previous?.page?.viewportSize() ?? this.requestedViewport ?? this.options.viewport;
|
|
124
133
|
if (size !== null)
|
|
125
134
|
await candidate.page.setViewportSize(size);
|
|
126
135
|
await this.video.pageOpened(candidate.page);
|
|
@@ -159,14 +168,14 @@ export class AttemptSession {
|
|
|
159
168
|
return binding.page;
|
|
160
169
|
this.invalidate();
|
|
161
170
|
const token = this.token();
|
|
162
|
-
const page = await binding.context
|
|
171
|
+
const page = await this.nextPage(binding.context);
|
|
163
172
|
try {
|
|
164
173
|
let identity = binding.identity;
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
174
|
+
const size = this.requestedViewport ?? (identity === undefined ? null : this.options.viewport);
|
|
175
|
+
if (size !== null)
|
|
176
|
+
await page.setViewportSize(size);
|
|
177
|
+
if (identity !== undefined)
|
|
168
178
|
identity = { ...identity, target: await targetIdentity(page) };
|
|
169
|
-
}
|
|
170
179
|
this.check(token);
|
|
171
180
|
await this.video.pageOpened(page);
|
|
172
181
|
this.check(token);
|
|
@@ -178,6 +187,37 @@ export class AttemptSession {
|
|
|
178
187
|
throw cause;
|
|
179
188
|
}
|
|
180
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* The page the attempt shows next. A persistent browser is fresh for the
|
|
192
|
+
* attempt, so its own first tab serves as the attempt's first page instead
|
|
193
|
+
* of a second tab beside it, which a hosted browser's live view and
|
|
194
|
+
* recording would show behind the test's. The tab is navigated to
|
|
195
|
+
* `about:blank` first, so its document runs the context's init scripts
|
|
196
|
+
* as a new tab's does. Every later page is a new tab.
|
|
197
|
+
*/
|
|
198
|
+
async nextPage(context) {
|
|
199
|
+
const first = this.firstPage;
|
|
200
|
+
this.firstPage = false;
|
|
201
|
+
if (first && this.options.persistent !== undefined) {
|
|
202
|
+
const initial = context.pages().find((page) => !page.isClosed());
|
|
203
|
+
if (initial !== undefined) {
|
|
204
|
+
await initial.goto('about:blank');
|
|
205
|
+
return initial;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return context.newPage();
|
|
209
|
+
}
|
|
210
|
+
/** Sizes the open page, if any, and every page this attempt opens after it. */
|
|
211
|
+
async setViewport(size) {
|
|
212
|
+
const { width, height } = size;
|
|
213
|
+
if (![width, height].every((side) => Number.isInteger(side) && side >= 0)) {
|
|
214
|
+
throw new Error(`the viewport needs whole, non-negative pixels, got ${width}x${height}`);
|
|
215
|
+
}
|
|
216
|
+
const page = this.current().page;
|
|
217
|
+
if (page !== null && !page.isClosed())
|
|
218
|
+
await page.setViewportSize({ width, height });
|
|
219
|
+
this.requestedViewport = { width, height };
|
|
220
|
+
}
|
|
181
221
|
/** Restarts the document while retaining this context's storage. */
|
|
182
222
|
async restart() {
|
|
183
223
|
const binding = this.current();
|
|
@@ -219,8 +259,7 @@ export class AttemptSession {
|
|
|
219
259
|
const binding = 'binding' in state ? state.binding : undefined;
|
|
220
260
|
if (binding === undefined)
|
|
221
261
|
return;
|
|
222
|
-
|
|
223
|
-
await withinCleanupBudget(this.video.pageClosing(), budget);
|
|
262
|
+
await withinCleanupBudget(this.video.abandon(budget.signal), budget);
|
|
224
263
|
if (this.tracing)
|
|
225
264
|
await withinCleanupBudget(binding.context.tracing.stop(), budget);
|
|
226
265
|
await withinCleanupBudget(this.release(binding), budget);
|
|
@@ -268,22 +307,38 @@ export class AttemptSession {
|
|
|
268
307
|
this.tracing = false;
|
|
269
308
|
return parts.length === 0 ? relative : [...parts, relative];
|
|
270
309
|
}
|
|
271
|
-
/**
|
|
272
|
-
|
|
310
|
+
/**
|
|
311
|
+
* Starts video once the page is open, so a provider's recording of the
|
|
312
|
+
* browser starts on the attempt's own tab. A screencast is shared with the
|
|
313
|
+
* trace, which sizes it for itself, so a trace already running (a host
|
|
314
|
+
* that starts the video mid-attempt) is split around a screencast's start:
|
|
315
|
+
* its segment so far is saved, and it resumes on the video's screencast.
|
|
316
|
+
*/
|
|
317
|
+
async startVideo(signal) {
|
|
318
|
+
const page = await this.ensurePage();
|
|
319
|
+
const resume = this.video.startsScreencast ? await this.closeTraceSegment(this.current().context) : false;
|
|
320
|
+
try {
|
|
321
|
+
await this.video.arm(page, signal);
|
|
322
|
+
}
|
|
323
|
+
finally {
|
|
324
|
+
if (resume)
|
|
325
|
+
await this.startTrace();
|
|
326
|
+
}
|
|
327
|
+
}
|
|
273
328
|
/** Collects finalized trace segments even when connection replacement failed. */
|
|
274
329
|
collectTrace(operation) {
|
|
275
330
|
return this.finalize(operation, 'trace', () => this.stopTrace());
|
|
276
331
|
}
|
|
277
332
|
/** Collects this attempt's video independently of a failed connection. */
|
|
278
333
|
collectVideo(operation) {
|
|
279
|
-
return this.finalize(operation, 'video', () => this.video.stop());
|
|
334
|
+
return this.finalize(operation, 'video', (signal) => this.video.stop(signal));
|
|
280
335
|
}
|
|
281
336
|
/** Terminal artifact collection needs its own budget, but no successful UI dispatch. */
|
|
282
337
|
async finalize(operation, label, collect) {
|
|
283
338
|
try {
|
|
284
339
|
return this.state.kind === 'failed' || this.state.kind === 'closed'
|
|
285
|
-
? await withConnectionBudget(operation, label, (remaining) => raceAbort(collect, remaining().signal, label))
|
|
286
|
-
: await this.run(operation, label, collect);
|
|
340
|
+
? await withConnectionBudget(operation, label, (remaining) => raceAbort(() => collect(remaining().signal), remaining().signal, label))
|
|
341
|
+
: await this.run(operation, label, (current) => collect(current.signal));
|
|
287
342
|
}
|
|
288
343
|
catch (cause) {
|
|
289
344
|
throw translatePwError(cause, label);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attempt-session.js","sourceRoot":"","sources":["../src/attempt-session.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAA0F,MAAM,YAAY,CAAC;AACjK,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAiD,MAAM,mBAAmB,CAAC;AACpI,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAyB,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAyB3C,MAAM,aAAa,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAW,CAAC;AAEtE,MAAM,OAAO,cAAc;IAWI,OAAO;IAV3B,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;IACjB,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACjC,KAAK,CAAgB;IAC9B,KAAK,GAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACxC,UAAU,GAAG,EAAE,CAAC;IAChB,QAAQ,GAAG,IAAI,CAAC;IAChB,OAAO,GAAG,KAAK,CAAC;IAChB,aAAa,GAAG,CAAC,CAAC;IAClB,UAAU,GAAa,EAAE,CAAC;IAElC,YAA6B,OAAuB;uBAAvB,OAAO;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACzE,CAAC;IAED,4FAA4F;IAC5F,KAAK,KAAa,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAE3C,6EAA6E;IAC7E,KAAK,CAAC,KAAa;QACjB,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7D,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,iDAAiD,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9G,CAAC;IACH,CAAC;IAED,gGAAgG;IAChG,kBAAkB,CAAC,KAAa;QAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,4FAA4F;IAC5F,kBAAkB;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,2DAA2D,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5I,CAAC;IAED,8FAA8F;IAC9F,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACzD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,YAAY,CAAC,gCAAgC,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED,4FAA4F;IACpF,UAAU;QAChB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,0FAA0F;IAC1F,KAAK,CAAC,MAAmB;QACvB,OAAO,oBAAoB,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,YAAY,EACtH,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YAC3C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC/D,SAAS,EAAE,CAAC;gBACZ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBACtE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC1C,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC7C,IAAI,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3C,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBACrD,MAAM,cAAc,CAAC,iFAAiF,CAAC,CAAC;YAC1G,CAAC;YACD,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,GAAG,CAAI,SAA2B,EAAE,KAAa,EAAE,IAAiD;QACxG,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACzE,IAAI,MAAM,CAAC,OAAO;YAAE,MAAM,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAC3C,MAAM,SAAS,GAAG,CAChB,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAC5G,CAAC;QACF,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAClH,OAAO,oBAAoB,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YAC/E,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,IAAI,EAAE;oBACtD,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;oBAC/B,OAAO,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAChF,CAAC,EAAE,IAAI,CAAC,CAAC;YACX,CAAC;YACD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0FAA0F;IAClF,KAAK,CAAC,UAAU,CACtB,QAAoC,EACpC,MAAwB,EACxB,IAAmC,EACnC,OAAO,GAAG,KAAK;QAEf,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC9E,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;QAC5C,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAChD,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC9E,MAAM,SAAS,GAAG,MAAM,IAAI,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7E,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,IAAI,CAAC;gBACH,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO;oBAAE,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBAC9E,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAChD,IAAI,OAAO,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACvC,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;oBACrE,IAAI,IAAI,KAAK,IAAI;wBAAE,MAAM,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC9C,CAAC;gBACD,IAAI,WAAW;oBAAE,MAAM,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACtE,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO;oBAAE,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBAC9E,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;oBAAE,MAAM,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBACtF,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;gBAC3B,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YACrD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBACrD,MAAM,KAAK,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACpF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YAC3H,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;gBAAE,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YACtF,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3E,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACrB,MAAM,IAAI,CAAC;IACb,CAAC;IAED,yFAAyF;IACzF,KAAK,CAAC,UAAU;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC;QAC3E,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAChC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI;oBAAE,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACtF,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACjE,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClB,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/G,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1F,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/D,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QACpE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,MAAM;YAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;IAED,0FAA0F;IAC1F,KAAK,CAAC,OAAO,CAAC,YAAsC,EAAE,SAA2B;QAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/I,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAChD,IAAI,MAAM;YAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,KAAK,CAAC,MAA4B;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;QAClC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW;YAAE,MAAM,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;QACxF,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QACpF,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,2FAA2F;IACnF,OAAO,CAAC,OAAuB;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACnG,CAAC;IAED,gFAAgF;IACxE,SAAS,CAAC,IAAY;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAChE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,mEAAmE;IAC3D,KAAK,CAAC,iBAAiB,CAAC,OAAuB;QACrD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;QACxB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC,CAAC,mEAAmE,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,UAAU;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,4FAA4F;IACpF,KAAK,CAAC,SAAS;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QACpD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,UAAU,KAAoB,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpF,iFAAiF;IACjF,YAAY,CAAC,SAA2B;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,0EAA0E;IAC1E,YAAY,CAAC,SAA2B;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,wFAAwF;IAChF,KAAK,CAAC,QAAQ,CAAI,SAA2B,EAAE,KAAa,EAAE,OAAyB;QAC7F,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;gBACjE,CAAC,CAAC,MAAM,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC5G,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"attempt-session.js","sourceRoot":"","sources":["../src/attempt-session.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAA0F,MAAM,YAAY,CAAC;AACjK,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAiD,MAAM,mBAAmB,CAAC;AACpI,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAyB,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAqB,MAAM,YAAY,CAAC;AAmC9D,MAAM,aAAa,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAW,CAAC;AAEtE,MAAM,OAAO,cAAc;IAcI,OAAO;IAb3B,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;IACjB,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACjC,KAAK,CAAe;IAC7B,KAAK,GAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACxC,UAAU,GAAG,EAAE,CAAC;IAChB,QAAQ,GAAG,IAAI,CAAC;IACxB,yGAAyG;IACjG,SAAS,GAAG,IAAI,CAAC;IACjB,OAAO,GAAG,KAAK,CAAC;IAChB,aAAa,GAAG,CAAC,CAAC;IAClB,UAAU,GAAa,EAAE,CAAC;IAC1B,iBAAiB,CAAkE;IAE3F,YAA6B,OAAuB;uBAAvB,OAAO;QAClC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS;YACvC,CAAC,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC;YAC7D,CAAC,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9D,CAAC;IAED,4FAA4F;IAC5F,KAAK,KAAa,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAE3C,6EAA6E;IAC7E,KAAK,CAAC,KAAa;QACjB,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7D,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,iDAAiD,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9G,CAAC;IACH,CAAC;IAED,gGAAgG;IAChG,kBAAkB,CAAC,KAAa;QAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,4FAA4F;IAC5F,kBAAkB;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,2DAA2D,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5I,CAAC;IAED,8FAA8F;IAC9F,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACzD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,YAAY,CAAC,gCAAgC,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED,4FAA4F;IACpF,UAAU;QAChB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,0FAA0F;IAC1F,KAAK,CAAC,MAAmB;QACvB,OAAO,oBAAoB,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,YAAY,EACtH,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YAC3C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC/D,SAAS,EAAE,CAAC;gBACZ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBACtE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC1C,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YAC1E,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;YACpC,IAAI,YAAY,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC;YAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC7C,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChC,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBACrD,MAAM,cAAc,CAAC,iFAAiF,CAAC,CAAC;YAC1G,CAAC;YACD,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,GAAG,CAAI,SAA2B,EAAE,KAAa,EAAE,IAAiD;QACxG,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACzE,IAAI,MAAM,CAAC,OAAO;YAAE,MAAM,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAC3C,MAAM,SAAS,GAAG,CAChB,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAC5G,CAAC;QACF,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAClH,OAAO,oBAAoB,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YAC/E,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,IAAI,EAAE;oBACtD,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;oBAC/B,OAAO,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAChF,CAAC,EAAE,IAAI,CAAC,CAAC;YACX,CAAC;YACD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0FAA0F;IAClF,KAAK,CAAC,UAAU,CACtB,QAAoC,EACpC,MAAwB,EACxB,IAAmC,EACnC,OAAO,GAAG,KAAK;QAEf,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC9E,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;QAC5C,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAChD,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC9E,MAAM,SAAS,GAAG,MAAM,IAAI,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7E,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,IAAI,CAAC;gBACH,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO;oBAAE,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBAC9E,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAChD,IAAI,OAAO,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACvC,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAC/F,IAAI,IAAI,KAAK,IAAI;wBAAE,MAAM,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC9C,CAAC;gBACD,IAAI,WAAW;oBAAE,MAAM,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACtE,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO;oBAAE,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBAC9E,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;oBAAE,MAAM,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBACtF,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;gBAC3B,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YACrD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBACrD,MAAM,KAAK,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACpF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YAC3H,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;gBAAE,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YACtF,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3E,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACrB,MAAM,IAAI,CAAC;IACb,CAAC;IAED,yFAAyF;IACzF,KAAK,CAAC,UAAU;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC;QAC3E,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC;YACH,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/F,IAAI,IAAI,KAAK,IAAI;gBAAE,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,QAAQ,KAAK,SAAS;gBAAE,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3F,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClB,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/G,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,QAAQ,CAAC,OAAuB;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACjE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAClC,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,WAAW,CAAC,IAAyD;QACzE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,sDAAsD,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;QACjC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,iBAAiB,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC7C,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1F,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE;YAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/D,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QACpE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,MAAM;YAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;IAED,0FAA0F;IAC1F,KAAK,CAAC,OAAO,CAAC,YAAsC,EAAE,SAA2B;QAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/I,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAChD,IAAI,MAAM;YAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,KAAK,CAAC,MAA4B;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;QAClC,MAAM,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;QACrE,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QACpF,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,2FAA2F;IACnF,OAAO,CAAC,OAAuB;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACnG,CAAC;IAED,gFAAgF;IACxE,SAAS,CAAC,IAAY;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAChE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,mEAAmE;IAC3D,KAAK,CAAC,iBAAiB,CAAC,OAAuB;QACrD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;QACxB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC,CAAC,mEAAmE,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,UAAU;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,4FAA4F;IACpF,KAAK,CAAC,SAAS;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QACpD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CAAC,MAAmB;QAClC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1G,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;gBAAS,CAAC;YACT,IAAI,MAAM;gBAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,YAAY,CAAC,SAA2B;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,0EAA0E;IAC1E,YAAY,CAAC,SAA2B;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,wFAAwF;IAChF,KAAK,CAAC,QAAQ,CAAI,SAA2B,EAAE,KAAa,EAAE,OAA4C;QAChH,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;gBACjE,CAAC,CAAC,MAAM,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACtI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-connection.d.ts","sourceRoot":"","sources":["../src/browser-connection.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAA8B,MAAM,YAAY,CAAC;AAGlE,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"browser-connection.d.ts","sourceRoot":"","sources":["../src/browser-connection.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAA8B,MAAM,YAAY,CAAC;AAGlE,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAc5D;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAA+B;IAE9C;;;;;;OAMG;IACG,OAAO,CACX,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAC/B,OAAO,CAAC,OAAO,CAAC,CAkBlB;IAED,6FAA6F;IACvF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ7B;CACF;AAED,yDAAyD;AACzD,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,QAAQ,CAI9D;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtF"}
|
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
/** Shares one browser process connection across a worker's attempts. */
|
|
2
2
|
import { chromium, firefox, selectors, webkit } from 'playwright';
|
|
3
3
|
import { SELECTOR_ENGINES } from './selector-engines.js';
|
|
4
|
+
/**
|
|
5
|
+
* Playwright's default SIGINT handler closes the browser and exits the
|
|
6
|
+
* process, and its SIGTERM handler closes the browser. A terminal Ctrl-C
|
|
7
|
+
* reaches the worker's whole process group, so they would end the test
|
|
8
|
+
* mid-step before the runner's interrupt reports it. The runner owns those
|
|
9
|
+
* interrupts; the browser runs in its own process group, so the signal never
|
|
10
|
+
* reaches it, and the engine's `dispose` closes it. SIGHUP stays Playwright's:
|
|
11
|
+
* the runner does not handle a hangup, and its handler is what closes the
|
|
12
|
+
* browser when the terminal goes away.
|
|
13
|
+
*/
|
|
14
|
+
const RUNNER_OWNS_SIGNALS = { handleSIGINT: false, handleSIGTERM: false };
|
|
4
15
|
/**
|
|
5
16
|
* Launching a browser process costs hundreds of milliseconds; per-attempt
|
|
6
17
|
* isolation lives in browser contexts, so every attempt a worker runs can
|
|
@@ -28,7 +39,7 @@ export class BrowserConnection {
|
|
|
28
39
|
this.pending = undefined;
|
|
29
40
|
}
|
|
30
41
|
await registerSelectorEngines();
|
|
31
|
-
const launching = connect !== undefined ? connect() : browserType(name).launch({ headless: !headed, timeout: timeoutMs });
|
|
42
|
+
const launching = connect !== undefined ? connect() : browserType(name).launch({ headless: !headed, timeout: timeoutMs, ...RUNNER_OWNS_SIGNALS });
|
|
32
43
|
this.pending = launching;
|
|
33
44
|
try {
|
|
34
45
|
return await launching;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-connection.js","sourceRoot":"","sources":["../src/browser-connection.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAGxE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IACpB,OAAO,CAA+B;IAE9C;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CACX,IAAiB,EACjB,MAAe,EACf,SAAiB,EACjB,OAAgC;QAEhC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE;gBAAE,OAAO,OAAO,CAAC;YAC9D,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACnF,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAC3B,CAAC;QACD,MAAM,uBAAuB,EAAE,CAAC;QAChC,MAAM,SAAS,GACb,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"browser-connection.js","sourceRoot":"","sources":["../src/browser-connection.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAGxE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD;;;;;;;;;GASG;AACH,MAAM,mBAAmB,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAW,CAAC;AAEnF;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IACpB,OAAO,CAA+B;IAE9C;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CACX,IAAiB,EACjB,MAAe,EACf,SAAiB,EACjB,OAAgC;QAEhC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE;gBAAE,OAAO,OAAO,CAAC;YAC9D,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACnF,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAC3B,CAAC;QACD,MAAM,uBAAuB,EAAE,CAAC;QAChC,MAAM,SAAS,GACb,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,mBAAmB,EAAE,CAAC,CAAC;QAClI,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;gBAAE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,6FAA6F;IAC7F,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,CAAC,MAAM,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;QACtD,CAAC;IACH,CAAC;CACF;AAED,yDAAyD;AACzD,MAAM,UAAU,WAAW,CAAC,IAAiB;IAC3C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IACvC,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IACrC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,SAAiB;IAClE,MAAM,uBAAuB,EAAE,CAAC;IAChC,OAAO,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,mGAAmG;AACnG,IAAI,eAA0C,CAAC;AAE/C;;;;GAIG;AACH,SAAS,uBAAuB;IAC9B,6EAA6E;IAC7E,4EAA4E;IAC5E,yEAAyE;IACzE,eAAe,KAAK,OAAO,CAAC,GAAG,CAC7B,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CACxC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,UAAU,MAAM,GAAG,CAAC,EAAmB,CAAC,CAC/E,CACF,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACxB,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The `
|
|
2
|
+
* The `browser` fixture: the browser-shaped deterministic surface this engine
|
|
3
3
|
* contributes. It lives here, not in core, because the harness knows the
|
|
4
4
|
* engine contract and never a platform's fixture shape. Every async method
|
|
5
|
-
* runs as a harness-recorded `
|
|
5
|
+
* runs as a harness-recorded `browser.<method>` step; `expect(browser)` reaches the
|
|
6
6
|
* matchers attached through `context.expectable`.
|
|
7
7
|
*
|
|
8
8
|
* Layering rule: validation (`resolveUrl`, JSON checks, cookie URLs, the
|
|
@@ -80,9 +80,9 @@ export type Cookie = CookieFields & ({
|
|
|
80
80
|
domain: string;
|
|
81
81
|
path?: string;
|
|
82
82
|
});
|
|
83
|
-
export interface
|
|
83
|
+
export interface BrowserExpectation {
|
|
84
84
|
/** Inverts the matcher. */
|
|
85
|
-
readonly not:
|
|
85
|
+
readonly not: BrowserExpectation;
|
|
86
86
|
/** Waits for the current URL to match. */
|
|
87
87
|
toHaveURL(expected: string | RegExp, options?: {
|
|
88
88
|
timeout?: number;
|
|
@@ -97,7 +97,7 @@ export interface WebExpectation {
|
|
|
97
97
|
}): Promise<void>;
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
100
|
-
* The screen scope `
|
|
100
|
+
* The screen scope `browser.frameLocator` returns. Every `Screen` query answers
|
|
101
101
|
* from inside the frame, and because the frame's document is Playwright's,
|
|
102
102
|
* the web-only escape hatches follow it in: `locator` for a CSS or XPath
|
|
103
103
|
* selector on a control with no accessible name, `frameLocator` for a frame
|
|
@@ -109,7 +109,16 @@ export interface FrameScreen extends Screen {
|
|
|
109
109
|
/** Creates a screen query scope inside an iframe nested in this frame. */
|
|
110
110
|
frameLocator(selector: string): FrameScreen;
|
|
111
111
|
}
|
|
112
|
-
|
|
112
|
+
/**
|
|
113
|
+
* The browser the attempt drives, showing one active tab. Navigation, reads,
|
|
114
|
+
* `locator`, `frameLocator`, `evaluate`, `waitForResponse`, `waitForDownload`,
|
|
115
|
+
* the keyboard and mouse, `expect(browser)`, and `screen` act on the active
|
|
116
|
+
* tab; cookies, routes, and dialog handlers cover the whole browser, every
|
|
117
|
+
* tab included. A tab the app opens itself (a `target="_blank"` link,
|
|
118
|
+
* `window.open`) is not followed: the active tab stays the one the attempt
|
|
119
|
+
* opened.
|
|
120
|
+
*/
|
|
121
|
+
export interface Browser extends Expectable<BrowserExpectation> {
|
|
113
122
|
/** Navigates to an allowed URL. */
|
|
114
123
|
goto(url: string, options?: {
|
|
115
124
|
waitUntil?: 'load' | 'domcontentloaded' | 'networkidle';
|
|
@@ -186,6 +195,6 @@ export interface Web extends Expectable<WebExpectation> {
|
|
|
186
195
|
up(): Promise<void>;
|
|
187
196
|
};
|
|
188
197
|
}
|
|
189
|
-
/** Builds the `
|
|
190
|
-
export declare function
|
|
191
|
-
//# sourceMappingURL=
|
|
198
|
+
/** Builds the `browser` fixture for one attempt over the shared surface. */
|
|
199
|
+
export declare function createBrowserFixture(surface: PlaywrightSurface, context: EngineFixtureContext): Browser;
|
|
200
|
+
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|