testplane 8.32.0 → 8.32.2
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/build/package.json +2 -1
- package/build/src/browser/browser.d.ts +5 -0
- package/build/src/browser/browser.js +7 -1
- package/build/src/browser/browser.js.map +1 -1
- package/build/src/browser/cdp/connection.d.ts +52 -0
- package/build/src/browser/cdp/connection.js +413 -0
- package/build/src/browser/cdp/connection.js.map +1 -0
- package/build/src/browser/cdp/constants.d.ts +16 -0
- package/build/src/browser/cdp/constants.js +20 -0
- package/build/src/browser/cdp/constants.js.map +1 -0
- package/build/src/browser/cdp/debug.d.ts +2 -0
- package/build/src/browser/cdp/debug.js +9 -0
- package/build/src/browser/cdp/debug.js.map +1 -0
- package/build/src/browser/cdp/emitter.d.ts +7 -0
- package/build/src/browser/cdp/emitter.js +48 -0
- package/build/src/browser/cdp/emitter.js.map +1 -0
- package/build/src/browser/cdp/error.d.ts +23 -0
- package/build/src/browser/cdp/error.js +41 -0
- package/build/src/browser/cdp/error.js.map +1 -0
- package/build/src/browser/cdp/index.d.ts +13 -0
- package/build/src/browser/cdp/index.js +37 -0
- package/build/src/browser/cdp/index.js.map +1 -0
- package/build/src/browser/cdp/profiler.d.ts +60 -0
- package/build/src/browser/cdp/profiler.js +42 -0
- package/build/src/browser/cdp/profiler.js.map +1 -0
- package/build/src/browser/cdp/target.d.ts +75 -0
- package/build/src/browser/cdp/target.js +51 -0
- package/build/src/browser/cdp/target.js.map +1 -0
- package/build/src/browser/cdp/types.d.ts +124 -0
- package/build/src/browser/cdp/types.js +3 -0
- package/build/src/browser/cdp/types.js.map +1 -0
- package/build/src/browser/cdp/utils.d.ts +7 -0
- package/build/src/browser/cdp/utils.js +23 -0
- package/build/src/browser/cdp/utils.js.map +1 -0
- package/build/src/browser/cdp/ws-endpoint.d.ts +2 -0
- package/build/src/browser/cdp/ws-endpoint.js +70 -0
- package/build/src/browser/cdp/ws-endpoint.js.map +1 -0
- package/build/src/browser/existing-browser.d.ts +4 -0
- package/build/src/browser/existing-browser.js +54 -11
- package/build/src/browser/existing-browser.js.map +1 -1
- package/build/src/browser/history/async-local-storage.d.ts +5 -0
- package/build/src/browser/history/async-local-storage.js +14 -0
- package/build/src/browser/history/async-local-storage.js.map +1 -0
- package/build/src/browser/history/callstack.d.ts +0 -4
- package/build/src/browser/history/callstack.js +0 -8
- package/build/src/browser/history/callstack.js.map +1 -1
- package/build/src/browser/history/index.d.ts +11 -5
- package/build/src/browser/history/index.js +68 -54
- package/build/src/browser/history/index.js.map +1 -1
- package/build/src/browser/history/rrweb.js +1 -3
- package/build/src/browser/history/rrweb.js.map +1 -1
- package/build/src/runner/browser-env/vite/browser-modules/tsconfig.tsbuildinfo +1 -1
- package/build/src/test-reader/index.js +4 -4
- package/build/src/test-reader/index.js.map +1 -1
- package/build/src/test-reader/test-parser.js +4 -1
- package/build/src/test-reader/test-parser.js.map +1 -1
- package/build/src/worker/browser-env/runner/test-runner/index.js +1 -0
- package/build/src/worker/browser-env/runner/test-runner/index.js.map +1 -1
- package/build/src/worker/runner/test-runner/index.js +11 -0
- package/build/src/worker/runner/test-runner/index.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.getWsEndpoint = void 0;
|
|
27
|
+
const debug_1 = require("./debug");
|
|
28
|
+
const endpointsCache = new WeakMap();
|
|
29
|
+
const getWsEndpoint = async (browser) => {
|
|
30
|
+
const cachedEndpoint = endpointsCache.get(browser);
|
|
31
|
+
if (cachedEndpoint) {
|
|
32
|
+
return cachedEndpoint;
|
|
33
|
+
}
|
|
34
|
+
const session = browser.publicAPI;
|
|
35
|
+
const caps = session.capabilities;
|
|
36
|
+
const chromeOptions = caps["goog:chromeOptions"];
|
|
37
|
+
// Priority 1: "browserWSEndpoint"
|
|
38
|
+
if ("browserWSEndpoint" in browser.config && browser.config.browserWSEndpoint && session.sessionId) {
|
|
39
|
+
const urljoin = await Promise.resolve().then(() => __importStar(require("url-join"))).then(mod => mod.default);
|
|
40
|
+
return urljoin(browser.config.browserWSEndpoint, session.sessionId);
|
|
41
|
+
}
|
|
42
|
+
// Priority 2: "se:cdp" capability
|
|
43
|
+
if (caps["se:cdp"]) {
|
|
44
|
+
return caps["se:cdp"];
|
|
45
|
+
}
|
|
46
|
+
// Priority 3: chrome debugger address
|
|
47
|
+
if (chromeOptions && chromeOptions.debuggerAddress) {
|
|
48
|
+
const versionUrl = `http://${chromeOptions.debuggerAddress}/json/version`;
|
|
49
|
+
try {
|
|
50
|
+
const cdpResponse = await fetch(versionUrl).then(res => res.json());
|
|
51
|
+
if (cdpResponse && cdpResponse.webSocketDebuggerUrl) {
|
|
52
|
+
return cdpResponse.webSocketDebuggerUrl;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
(0, debug_1.debugCdp)(`Couldn't fetch chrome devtools debugger address at "${versionUrl}": ${err}`);
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Priority 4: selenium grid
|
|
61
|
+
if (session.sessionId && session.options) {
|
|
62
|
+
const hostname = session.options.hostname || "localhost";
|
|
63
|
+
const port = session.options.port || 4444;
|
|
64
|
+
const sessionId = session.sessionId;
|
|
65
|
+
return `ws://${hostname}:${port}/session/${sessionId}/se/cdp`;
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
};
|
|
69
|
+
exports.getWsEndpoint = getWsEndpoint;
|
|
70
|
+
//# sourceMappingURL=ws-endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-endpoint.js","sourceRoot":"","sources":["../../../../src/browser/cdp/ws-endpoint.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAmC;AAGnC,MAAM,cAAc,GAAG,IAAI,OAAO,EAAmB,CAAC;AAE/C,MAAM,aAAa,GAAG,KAAK,EAAE,OAAgB,EAA0B,EAAE;IAC5E,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEnD,IAAI,cAAc,EAAE,CAAC;QACjB,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;IAClC,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEjD,kCAAkC;IAClC,IAAI,mBAAmB,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,iBAAiB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACjG,MAAM,OAAO,GAAG,MAAM,kDAAO,UAAU,IAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,iBAA2B,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAClF,CAAC;IAED,kCAAkC;IAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,sCAAsC;IACtC,IAAI,aAAa,IAAI,aAAa,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,UAAU,aAAa,CAAC,eAAe,eAAe,CAAC;QAC1E,IAAI,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,IAAI,WAAW,IAAI,WAAW,CAAC,oBAAoB,EAAE,CAAC;gBAClD,OAAO,WAAW,CAAC,oBAAoB,CAAC;YAC5C,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAA,gBAAQ,EAAC,uDAAuD,UAAU,MAAM,GAAG,EAAE,CAAC,CAAC;YACvF,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,4BAA4B;IAC5B,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC;QACzD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;QAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEpC,OAAO,QAAQ,QAAQ,IAAI,IAAI,YAAY,SAAS,SAAS,CAAC;IAClE,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AA9CW,QAAA,aAAa,iBA8CxB"}
|
|
@@ -5,6 +5,7 @@ import { Config } from "../config";
|
|
|
5
5
|
import { Image, Rect } from "../image";
|
|
6
6
|
import type { CalibrationResult, Calibrator } from "./calibrator";
|
|
7
7
|
import type { SessionOptions } from "./types";
|
|
8
|
+
import { CDP } from "./cdp";
|
|
8
9
|
interface PrepareScreenshotOpts {
|
|
9
10
|
disableAnimation?: boolean;
|
|
10
11
|
}
|
|
@@ -18,6 +19,7 @@ export declare class ExistingBrowser extends Browser {
|
|
|
18
19
|
protected _meta: Record<string, unknown>;
|
|
19
20
|
protected _calibration?: CalibrationResult;
|
|
20
21
|
protected _clientBridge?: ClientBridge;
|
|
22
|
+
protected _cdp: CDP | null;
|
|
21
23
|
constructor(config: Config, opts: BrowserOpts);
|
|
22
24
|
init({ sessionId, sessionCaps, sessionOpts }: SessionOptions, calibrator: Calibrator): Promise<this>;
|
|
23
25
|
markAsBroken(): void;
|
|
@@ -39,6 +41,8 @@ export declare class ExistingBrowser extends Browser {
|
|
|
39
41
|
protected _addMetaAccessCommands(session: WebdriverIO.Browser): void;
|
|
40
42
|
protected _decorateUrlMethod(session: WebdriverIO.Browser): void;
|
|
41
43
|
protected _resolveUrl(uri: string): string;
|
|
44
|
+
protected _performBidiIsolation(sessionOpts: SessionOptions["sessionOpts"]): Promise<void>;
|
|
45
|
+
protected _performCdpIsolation(sessionOpts: SessionOptions["sessionOpts"]): Promise<void>;
|
|
42
46
|
protected _performIsolation({ sessionCaps, sessionOpts, }: Pick<SessionOptions, "sessionCaps" | "sessionOpts">): Promise<void>;
|
|
43
47
|
protected _prepareSession(): Promise<void>;
|
|
44
48
|
protected _setOrientation(orientation: string | null): Promise<void>;
|
|
@@ -43,8 +43,10 @@ const browser_3 = require("../utils/browser");
|
|
|
43
43
|
const config_2 = require("../utils/config");
|
|
44
44
|
const help_1 = require("../constants/help");
|
|
45
45
|
const history_1 = require("./history");
|
|
46
|
+
const cdp_1 = require("./cdp");
|
|
46
47
|
const OPTIONAL_SESSION_OPTS = ["transformRequest", "transformResponse"];
|
|
47
48
|
const BROWSER_SESSION_HINT = "browser session";
|
|
49
|
+
const CDP_CONNECTION_HINT = "cdp connection";
|
|
48
50
|
const CLIENT_BRIDGE_HINT = "client bridge";
|
|
49
51
|
function ensure(value, hint) {
|
|
50
52
|
if (!value) {
|
|
@@ -58,20 +60,25 @@ const isClientBridgeErrorData = (data) => {
|
|
|
58
60
|
class ExistingBrowser extends browser_1.Browser {
|
|
59
61
|
constructor(config, opts) {
|
|
60
62
|
super(config, opts);
|
|
63
|
+
this._cdp = null;
|
|
61
64
|
this._camera = camera_1.Camera.create(this._config.screenshotMode, () => this._takeScreenshot());
|
|
62
65
|
this._meta = this._initMeta();
|
|
63
66
|
}
|
|
64
67
|
async init({ sessionId, sessionCaps, sessionOpts }, calibrator) {
|
|
65
68
|
this._session = await this._attachSession({ sessionId, sessionCaps, sessionOpts });
|
|
69
|
+
const cdpPromise = cdp_1.CDP.create(this).then(cdp => {
|
|
70
|
+
this._cdp = cdp;
|
|
71
|
+
});
|
|
66
72
|
if (!(0, config_2.isRunInNodeJsEnv)(this._config)) {
|
|
67
73
|
this._startCollectingCustomCommands();
|
|
68
74
|
}
|
|
69
|
-
const isolationPromise = this._performIsolation({ sessionCaps, sessionOpts });
|
|
75
|
+
const isolationPromise = cdpPromise.then(() => this._performIsolation({ sessionCaps, sessionOpts }));
|
|
70
76
|
this._extendStacktrace();
|
|
71
77
|
this._addSteps();
|
|
72
78
|
this._addHistory();
|
|
73
79
|
await history.runGroup({
|
|
74
80
|
session: this._session,
|
|
81
|
+
snapshotsPromiseRef: this._snapshotsPromiseRef,
|
|
75
82
|
callstack: this._callstackHistory,
|
|
76
83
|
config: this._config,
|
|
77
84
|
}, "testplane: init browser", async () => {
|
|
@@ -98,6 +105,7 @@ class ExistingBrowser extends browser_1.Browser {
|
|
|
98
105
|
this._stubCommands();
|
|
99
106
|
}
|
|
100
107
|
quit() {
|
|
108
|
+
this._cdp?.close();
|
|
101
109
|
this._meta = this._initMeta();
|
|
102
110
|
}
|
|
103
111
|
async prepareScreenshot(selectors, opts = {}) {
|
|
@@ -251,17 +259,8 @@ class ExistingBrowser extends browser_1.Browser {
|
|
|
251
259
|
_resolveUrl(uri) {
|
|
252
260
|
return this._config.baseUrl ? url_1.default.resolve(this._config.baseUrl, uri) : uri;
|
|
253
261
|
}
|
|
254
|
-
async
|
|
262
|
+
async _performBidiIsolation(sessionOpts) {
|
|
255
263
|
ensure(this._session, BROWSER_SESSION_HINT);
|
|
256
|
-
if (!this._config.isolation) {
|
|
257
|
-
return;
|
|
258
|
-
}
|
|
259
|
-
const { browserName, browserVersion = "", version = "", } = sessionCaps || {};
|
|
260
|
-
if (!(0, browser_3.isSupportIsolation)(browserName, browserVersion)) {
|
|
261
|
-
logger.warn(`WARN: test isolation works only with chrome@${browser_2.MIN_CHROME_VERSION_SUPPORT_ISOLATION} and higher, ` +
|
|
262
|
-
`but got ${browserName}@${browserVersion || version}`);
|
|
263
|
-
return;
|
|
264
|
-
}
|
|
265
264
|
const puppeteer = await this._session.getPuppeteer();
|
|
266
265
|
const browserCtxs = puppeteer.browserContexts();
|
|
267
266
|
const incognitoCtx = await puppeteer.createIncognitoBrowserContext();
|
|
@@ -272,6 +271,9 @@ class ExistingBrowser extends browser_1.Browser {
|
|
|
272
271
|
const incognitoWindowId = windowIds.find(id => id.includes(page.target()._targetId));
|
|
273
272
|
await this._session.switchToWindow(incognitoWindowId);
|
|
274
273
|
}
|
|
274
|
+
if (this._session.isBidi) {
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
275
277
|
for (const ctx of browserCtxs) {
|
|
276
278
|
if (ctx.isIncognito()) {
|
|
277
279
|
await ctx.close();
|
|
@@ -282,6 +284,47 @@ class ExistingBrowser extends browser_1.Browser {
|
|
|
282
284
|
}
|
|
283
285
|
}
|
|
284
286
|
}
|
|
287
|
+
async _performCdpIsolation(sessionOpts) {
|
|
288
|
+
ensure(this._session, BROWSER_SESSION_HINT);
|
|
289
|
+
ensure(this._cdp, CDP_CONNECTION_HINT);
|
|
290
|
+
const cdpTarget = this._cdp.target;
|
|
291
|
+
const [browserContextIds, currentTargets] = await Promise.all([
|
|
292
|
+
cdpTarget.getBrowserContexts().then(res => res.browserContextIds),
|
|
293
|
+
cdpTarget.getTargets().then(res => res.targetInfos),
|
|
294
|
+
]);
|
|
295
|
+
const browserContextId = await cdpTarget.createBrowserContext().then(res => res.browserContextId);
|
|
296
|
+
const incognitoWindowId = await cdpTarget.createTarget({ browserContextId }).then(res => res.targetId);
|
|
297
|
+
if (sessionOpts?.automationProtocol === config_1.WEBDRIVER_PROTOCOL) {
|
|
298
|
+
const windowIds = await this._session.getWindowHandles();
|
|
299
|
+
await this._session.switchToWindow(windowIds.find(id => id.includes(incognitoWindowId)));
|
|
300
|
+
}
|
|
301
|
+
await Promise.all([
|
|
302
|
+
cdpTarget.activateTarget(incognitoWindowId),
|
|
303
|
+
...browserContextIds.map(contextId => cdpTarget.disposeBrowserContext(contextId)),
|
|
304
|
+
...currentTargets.map(target => cdpTarget.closeTarget(target.targetId).catch(() => { })),
|
|
305
|
+
]);
|
|
306
|
+
}
|
|
307
|
+
async _performIsolation({ sessionCaps, sessionOpts, }) {
|
|
308
|
+
ensure(this._session, BROWSER_SESSION_HINT);
|
|
309
|
+
if (!this._config.isolation) {
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
const { browserName, browserVersion = "", version = "", } = sessionCaps || {};
|
|
313
|
+
if (!(0, browser_3.isSupportIsolation)(browserName, browserVersion)) {
|
|
314
|
+
logger.warn(`WARN: test isolation works only with chrome@${browser_2.MIN_CHROME_VERSION_SUPPORT_ISOLATION} and higher, ` +
|
|
315
|
+
`but got ${browserName}@${browserVersion || version}`);
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
if (this._session.isBidi) {
|
|
319
|
+
return this._performBidiIsolation(sessionOpts);
|
|
320
|
+
}
|
|
321
|
+
else if (this._cdp) {
|
|
322
|
+
return this._performCdpIsolation(sessionOpts);
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
logger.warn("Unable to get CDP endpoint, skip performing isolation");
|
|
326
|
+
}
|
|
327
|
+
}
|
|
285
328
|
async _prepareSession() {
|
|
286
329
|
await this._setOrientation(this.config.orientation);
|
|
287
330
|
await this._setWindowSize(this.config.windowSize);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"existing-browser.js","sourceRoot":"","sources":["../../../src/browser/existing-browser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAsB;AACtB,oDAAuB;AACvB,wDAAuF;AACvF,sDAAmE;AACnE,uCAAiD;AACjD,yCAAoD;AACpD,qCAA4C;AAC5C,mDAAgF;AAChF,mDAAqC;AACrC,wDAA0C;AAC1C,gDAAyD;AACzD,kDAA4E;AAC5E,8CAAsD;AACtD,4CAAmD;AAInD,4CAAmD;AACnD,uCAA8C;AAG9C,MAAM,qBAAqB,GAAG,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;AAkBxE,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAC/C,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAE3C,SAAS,MAAM,CAAI,KAA2B,EAAE,IAAa;IACzD,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACX,2EACI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAC/B,8CAA8C;YAC1C,6BAA6B,qBAAc,8CAA8C,CAChG,CAAC;IACN,CAAC;AACL,CAAC;AAED,MAAM,uBAAuB,GAAG,CAAC,IAAa,EAAiC,EAAE;IAC7E,OAAO,OAAO,CAAC,IAAI,IAAK,IAA8B,CAAC,KAAK,IAAK,IAA8B,CAAC,OAAO,CAAC,CAAC;AAC7G,CAAC,CAAC;AAEF,MAAa,eAAgB,SAAQ,iBAAO;IAMxC,YAAY,MAAc,EAAE,IAAiB;QACzC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAEpB,IAAI,CAAC,OAAO,GAAG,eAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAExF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAkB,EAAE,UAAsB;QACtF,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;QAEnF,IAAI,CAAC,IAAA,yBAAgB,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAC1C,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;QAE9E,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,MAAM,OAAO,CAAC,QAAQ,CAClB;YACI,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,SAAS,EAAE,IAAI,CAAC,iBAAkB;YAClC,MAAM,EAAE,IAAI,CAAC,OAAO;SACvB,EACD,yBAAyB,EACzB,KAAK,IAAI,EAAE;YACP,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,MAAM,gBAAgB,CAAC;YAEvB,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC;YAEhC,IAAI,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7E,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,kCAAkC,IAAI,CAAC,EAAE,IAAI,EAAG,CAAW,EAAE,KAAK,CAAC,CAAC;YACpF,CAAC;YAED,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACrC,CAAC,CACJ,CAAC;QAEF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpC,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,IAAI;QACA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAA4B,EAAE,OAA8B,EAAE;QAClF,2FAA2F;QAC3F,OAAO,IAAA,2BAAiB,EAAC,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAkB,EAAE,EAAE,KAAK,IAAI,EAAE;YACxE,IAAI,GAAG,gBAAC,CAAC,MAAM,CAAC,IAAI,EAAE;gBAClB,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI;aAC5E,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;YACrF,IAAI,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CACX,8CAA8C,MAAM,CAAC,KAAK,wBAAwB,MAAM,CAAC,OAAO,EAAE,CACrG,CAAC;YACN,CAAC;YAED,0DAA0D;YAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,KAAK,2BAAkB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAClF,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC1C,CAAC;YAED,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAuC,EAAE;QAC7D,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,OAAO,IAAA,2BAAiB,EAAC,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAkB,EAAE,EAAE,KAAK,IAAI,EAAE;gBACxE,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACxC,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,IAAI,CAAC,GAAW;QACZ,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,UAAU,CAAI,MAAc;QACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,YAAY,CAAC,MAAc;QACvB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAe,EAAE,eAAwB;QAChE,IAAI,eAAe,EAAE,CAAC;YAClB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ,CAAC,MAAsB;QAC3B,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,MAAM;YACzC,kCAAkC;YAClC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YAErB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAClB,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAE/C,IAAI,CAAC,IAAI,EAAE,CAAC;oBACR,MAAM,IAAI,KAAK,CACX,iCAAiC;wBAC7B,mFAAmF;wBACnF,MAAM,CAAC,QAAQ,CACtB,CAAC;gBACN,CAAC;gBAED,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;gBAClC,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACJ,IAAI,GAAG,MAAM,CAAC;gBACd,IAAI,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC;gBACrC,IAAI,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC;YACzC,CAAC;YAED,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC,EAAE,MAAM,CAAC,CAAC;IACf,CAAC;IAES,KAAK,CAAC,cAAc,CAAC,EAC3B,SAAS,EACT,WAAW,EACX,WAAW,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,GACrB;QACb,MAAM,uBAAuB,GAAG,IAAA,uCAA0B,EAAC;YACvD,YAAY,EAAE,WAAY;YAC1B,qBAAqB,EAAE,WAAW,CAAC,YAAY;SAClD,CAAC,CAAC;QAEH,MAAM,IAAI,GAAkB;YACxB,SAAS;YACT,GAAG,WAAW;YACd,GAAG,IAAI,CAAC,yBAAyB,CAAC,qBAAqB,CAAC;YACxD,GAAG,uBAAuB;YAC1B,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe;YAC/B,OAAO,EAAE,WAAW;YACpB,YAAY,EAAE,EAAE,GAAG,WAAW,CAAC,YAAY,EAAE,GAAG,WAAW,EAAE;YAC7D,qBAAqB,EAAE,WAAW,CAAC,YAAY;SAClD,CAAC;QAEF,OAAO,IAAA,oBAAM,EAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAES,SAAS;QACf,OAAO;YACH,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,cAAc,EAAE,IAAI,CAAC,OAAO;YAC5B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;YACjC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;YACnC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;SACvB,CAAC;IACN,CAAC;IAES,eAAe;QACrB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;IAC1C,CAAC;IAES,YAAY;QAClB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAC5C,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,+HAA+H;QAC/H,wDAAwD;QACxD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE7C,8DAA8D;QAC9D,iCAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1F,KAAK,CAAC,YAAY,EAAE,CAAC;IACzB,CAAC;IAES,wBAAwB,CAAC,OAA4B;QAC3D,kBAAkB;QAClB,KAAK,MAAM,eAAe,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YAC1C,8EAA8E;YAC9E,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAqC,EAAE;gBAC1F,MAAM,GAAG,GAAuG,EAAE,CAAC;gBACnH,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAwC,CAAC;gBAE/E,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEzC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;gBACxB,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;gBAC9B,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;gBAC5B,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;gBAEtB,OAAO,GAA0C,CAAC;YACtD,CAAC,EACD,eAAe,CAClB,CAAC;QACN,CAAC;IACL,CAAC;IAES,sBAAsB,CAAC,OAA4B;QACzD,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/E,CAAC;IAES,kBAAkB,CAAC,OAA4B;QACrD,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAgD,EAAE;YACnG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACP,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;YAC5B,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;YAExB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACrD,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;YAEvC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC9B,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC9B,CAAC;YAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/C,CAAC;YAED,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;IAES,WAAW,CAAC,GAAW;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC/E,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,EAC9B,WAAW,EACX,WAAW,GACuC;QAClD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,MAAM,EACF,WAAW,EACX,cAAc,GAAG,EAAE,EACnB,OAAO,GAAG,EAAE,GACf,GAAI,WAAoE,IAAI,EAAE,CAAC;QAChF,IAAI,CAAC,IAAA,4BAAkB,EAAC,WAAY,EAAE,cAAc,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,CACP,+CAA+C,8CAAoC,eAAe;gBAC9F,WAAW,WAAW,IAAI,cAAc,IAAI,OAAO,EAAE,CAC5D,CAAC;YACF,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QACrD,MAAM,WAAW,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;QAEhD,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,6BAA6B,EAAE,CAAC;QACrE,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;QAE1C,IAAI,WAAW,EAAE,kBAAkB,KAAK,2BAAkB,EAAE,CAAC;YACzD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAEzD,8DAA8D;YAC9D,MAAM,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAE,IAAI,CAAC,MAAM,EAAU,CAAC,SAAS,CAAC,CAAC,CAAC;YAE9F,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAkB,CAAC,CAAC;QAC3D,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC5B,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;gBACpB,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;gBAClB,SAAS;YACb,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;QACL,CAAC;IACL,CAAC;IAES,KAAK,CAAC,eAAe;QAC3B,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,WAA0B;QACtD,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAC5C,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAES,KAAK,CAAC,cAAc,CAC1B,IAAsE;QAEtE,IAAI,IAAI,EAAE,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAE5C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAClE,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC;IACL,CAAC;IAES,KAAK,CAAC,mBAAmB,CAAC,UAAsB;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC9C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACjD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACP,CAAC;IAES,KAAK,CAAC,mBAAmB;QAC/B,OAAO,IAAA,qBAAiB,EAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CACnE,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,CACtD,CAAC;IACN,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,EAAmC;QAChE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAE3E,IAAI,CAAC;YACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAC1C,MAAM,EAAE,EAAE,CAAC;gBACX,2FAA2F;gBAC3F,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;IAES,KAAK,CAAC,uBAAuB;QACnC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAO,wBAAwB,CAAC,CAAC;QAE7E,IAAI,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACX,8CAA8C,MAAM,CAAC,KAAK,wBAAwB,MAAM,CAAC,OAAO,EAAE,CACrG,CAAC;QACN,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,KAAK,CAAC,wBAAwB;QACpC,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACtE,CAAC;IAES,KAAK,CAAC,uBAAuB;QACnC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;QAE/C,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC7D,CAAC;IAES,KAAK,CAAC,wBAAwB;QACpC,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACtE,CAAC;IAES,KAAK,CAAC,sBAAsB;QAClC,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAErC,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,KAAK,2BAAkB,EAAE,CAAC;YACzD,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC1C,CAAC;IACL,CAAC;IAED,aAAa;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO;QACX,CAAC;QAED,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAClD,IAAI,WAAW,KAAK,eAAe,EAAE,CAAC;gBAClC,SAAS;YACb,CAAC;YAED,IAAI,gBAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAwC,CAAC,CAAC,EAAE,CAAC;gBACxE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAyC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACxF,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;CACJ;AAjbD,0CAibC"}
|
|
1
|
+
{"version":3,"file":"existing-browser.js","sourceRoot":"","sources":["../../../src/browser/existing-browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getHistoryContext = exports.runWithHistoryContext = void 0;
|
|
4
|
+
const async_hooks_1 = require("async_hooks");
|
|
5
|
+
const historyContext = new async_hooks_1.AsyncLocalStorage();
|
|
6
|
+
const runWithHistoryContext = (contextData, fn) => {
|
|
7
|
+
return historyContext.run(contextData, fn);
|
|
8
|
+
};
|
|
9
|
+
exports.runWithHistoryContext = runWithHistoryContext;
|
|
10
|
+
const getHistoryContext = () => {
|
|
11
|
+
return historyContext.getStore();
|
|
12
|
+
};
|
|
13
|
+
exports.getHistoryContext = getHistoryContext;
|
|
14
|
+
//# sourceMappingURL=async-local-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-local-storage.js","sourceRoot":"","sources":["../../../../src/browser/history/async-local-storage.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAMhD,MAAM,cAAc,GAAG,IAAI,+BAAiB,EAAkB,CAAC;AAExD,MAAM,qBAAqB,GAAG,CAAC,WAA2B,EAAE,EAAiB,EAAW,EAAE;IAC7F,OAAO,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AAEK,MAAM,iBAAiB,GAAG,GAA+B,EAAE;IAC9D,OAAO,cAAc,CAAC,QAAQ,EAAE,CAAC;AACrC,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B"}
|
|
@@ -2,11 +2,7 @@ import { TestStepKey, TestStep } from "../../types";
|
|
|
2
2
|
export declare class Callstack {
|
|
3
3
|
private _history;
|
|
4
4
|
private _stack;
|
|
5
|
-
private _isInBypassMode;
|
|
6
5
|
constructor();
|
|
7
|
-
/** Bypass mode indicates that no hooks should be invoked (e.g. `before()` / `after()`). Useful for system commands that should be run bypassing hooks. */
|
|
8
|
-
get isInBypassMode(): boolean;
|
|
9
|
-
setIsInBypassMode(flag: boolean): void;
|
|
10
6
|
enter(data: Omit<TestStep, TestStepKey.TimeStart | TestStepKey.Children>): void;
|
|
11
7
|
leave(key: symbol): void;
|
|
12
8
|
markError(shouldPropagateFn: (parentNode: TestStep, currentNode: TestStep) => boolean): void;
|
|
@@ -8,17 +8,9 @@ const lodash_1 = __importDefault(require("lodash"));
|
|
|
8
8
|
const types_1 = require("../../types");
|
|
9
9
|
class Callstack {
|
|
10
10
|
constructor() {
|
|
11
|
-
this._isInBypassMode = false;
|
|
12
11
|
this._history = [];
|
|
13
12
|
this._stack = [];
|
|
14
13
|
}
|
|
15
|
-
/** Bypass mode indicates that no hooks should be invoked (e.g. `before()` / `after()`). Useful for system commands that should be run bypassing hooks. */
|
|
16
|
-
get isInBypassMode() {
|
|
17
|
-
return this._isInBypassMode;
|
|
18
|
-
}
|
|
19
|
-
setIsInBypassMode(flag) {
|
|
20
|
-
this._isInBypassMode = flag;
|
|
21
|
-
}
|
|
22
14
|
enter(data) {
|
|
23
15
|
this._stack.push({
|
|
24
16
|
...data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callstack.js","sourceRoot":"","sources":["../../../../src/browser/history/callstack.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,uCAAoD;AAEpD,MAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"callstack.js","sourceRoot":"","sources":["../../../../src/browser/history/callstack.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,uCAAoD;AAEpD,MAAa,SAAS;IAIlB;QACI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,IAAkE;QACpE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,GAAG,IAAI;YACP,CAAC,mBAAW,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE;YACnC,CAAC,mBAAW,CAAC,QAAQ,CAAC,EAAE,EAAE;SAC7B,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,GAAW;QACb,MAAM,gBAAgB,GAAG,gBAAC,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAW,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7F,MAAM,kBAAkB,GAAG,gBAAgB,KAAK,CAAC,CAAC,CAAC;QAEnD,IAAI,kBAAkB,EAAE,CAAC;YACrB,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,gBAAC,CAAC,KAAK,CAAC,YAAY,CAAa,CAAC;QACtD,MAAM,UAAU,GAAG,gBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAyB,CAAC;QAC/D,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QAEnD,WAAW,CAAC,mBAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9C,WAAW,CAAC,mBAAW,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,mBAAW,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,mBAAW,CAAC,SAAS,CAAC,CAAC;QAE1G,IAAI,iBAAiB,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACJ,UAAW,CAAC,mBAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED,SAAS,CAAC,iBAA2E;QACjF,IAAI,UAAU,GAAoB,IAAI,CAAC;QACvC,IAAI,WAAW,GAAyB,gBAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAE1C,OAAO,cAAc,IAAI,WAAW,EAAE,CAAC;YACnC,WAAW,CAAC,mBAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YAEzC,UAAU,GAAG,WAAW,CAAC;YACzB,WAAW,GAAG,gBAAC,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxD,cAAc,GAAG,OAAO,CAAC,WAAW,IAAI,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QACxF,CAAC;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,OAAO;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE9B,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAlED,8BAkEC"}
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import { Callstack } from "./callstack";
|
|
2
2
|
import { BrowserConfig } from "../../config/browser-config";
|
|
3
3
|
import { TestStep } from "../../types";
|
|
4
|
+
export interface PromiseRef<T = unknown> {
|
|
5
|
+
current: Promise<T>;
|
|
6
|
+
}
|
|
4
7
|
export declare const shouldPropagateFn: (parentNode: TestStep, currentNode: TestStep) => boolean;
|
|
5
8
|
interface HooksData {
|
|
6
9
|
session: WebdriverIO.Browser;
|
|
10
|
+
snapshotsPromiseRef: PromiseRef;
|
|
7
11
|
callstack: Callstack;
|
|
8
12
|
config: BrowserConfig;
|
|
9
13
|
}
|
|
10
|
-
export declare const runWithoutHistory: <T>(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
export declare const runWithoutHistory: <T>(_: unknown, fn: () => T) => Promise<T>;
|
|
15
|
+
export declare const runGroup: <T>({ session, callstack, snapshotsPromiseRef, config }: HooksData, name: string, fn: () => T) => T;
|
|
16
|
+
interface InitHistoryResult {
|
|
17
|
+
callstack: Callstack;
|
|
18
|
+
snapshotsPromiseRef: PromiseRef;
|
|
19
|
+
}
|
|
20
|
+
export declare const initCommandHistory: (session: WebdriverIO.Browser, config: BrowserConfig) => InitHistoryResult;
|
|
15
21
|
export {};
|
|
@@ -22,82 +22,89 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
25
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
29
|
exports.initCommandHistory = exports.runGroup = exports.runWithoutHistory = exports.shouldPropagateFn = void 0;
|
|
27
|
-
const
|
|
30
|
+
const debug_1 = __importDefault(require("debug"));
|
|
28
31
|
const callstack_1 = require("./callstack");
|
|
29
32
|
const cmds = __importStar(require("./commands"));
|
|
30
33
|
const utils_1 = require("./utils");
|
|
31
|
-
const
|
|
34
|
+
const types_1 = require("../../types");
|
|
32
35
|
const rrweb_1 = require("./rrweb");
|
|
36
|
+
const async_local_storage_1 = require("./async-local-storage");
|
|
37
|
+
const debug = (0, debug_1.default)("testplane:browser:history");
|
|
33
38
|
const shouldNotWrapCommand = (commandName) => ["addCommand", "overwriteCommand", "extendOptions", "setMeta", "getMeta", "runStep"].includes(commandName);
|
|
34
39
|
const shouldPropagateFn = (parentNode, currentNode) => (0, utils_1.isGroup)(parentNode) || (0, utils_1.isGroup)(currentNode);
|
|
35
40
|
exports.shouldPropagateFn = shouldPropagateFn;
|
|
36
41
|
const mkHistoryNode = ({ name, args, elementScope, key, overwrite, isGroup }) => {
|
|
37
42
|
const map = {
|
|
38
|
-
[
|
|
39
|
-
[
|
|
40
|
-
[
|
|
41
|
-
[
|
|
43
|
+
[types_1.TestStepKey.Name]: name,
|
|
44
|
+
[types_1.TestStepKey.Args]: (0, utils_1.normalizeCommandArgs)(name, args),
|
|
45
|
+
[types_1.TestStepKey.Scope]: cmds.createScope(elementScope ?? false),
|
|
46
|
+
[types_1.TestStepKey.Key]: key ?? Symbol(),
|
|
42
47
|
};
|
|
43
48
|
if (overwrite) {
|
|
44
|
-
map[
|
|
49
|
+
map[types_1.TestStepKey.IsOverwritten] = Boolean(overwrite);
|
|
45
50
|
}
|
|
46
51
|
if (isGroup) {
|
|
47
|
-
map[
|
|
52
|
+
map[types_1.TestStepKey.IsGroup] = true;
|
|
48
53
|
}
|
|
49
54
|
return map;
|
|
50
55
|
};
|
|
51
|
-
const runWithoutHistory = async (
|
|
52
|
-
|
|
53
|
-
try {
|
|
54
|
-
return await fn();
|
|
55
|
-
}
|
|
56
|
-
finally {
|
|
57
|
-
callstack.setIsInBypassMode(false);
|
|
58
|
-
}
|
|
56
|
+
const runWithoutHistory = async (_, fn) => {
|
|
57
|
+
return (0, async_local_storage_1.runWithHistoryContext)({ shouldBypassHistory: true }, fn);
|
|
59
58
|
};
|
|
60
59
|
exports.runWithoutHistory = runWithoutHistory;
|
|
61
|
-
const runWithHistoryHooks = ({ session, callstack, nodeData, fn, config }) => {
|
|
60
|
+
const runWithHistoryHooks = ({ session, callstack, snapshotsPromiseRef, nodeData, fn, config, }) => {
|
|
62
61
|
nodeData.key = nodeData.key ?? Symbol();
|
|
63
|
-
if (
|
|
62
|
+
if ((0, async_local_storage_1.getHistoryContext)()?.shouldBypassHistory) {
|
|
64
63
|
return fn();
|
|
65
64
|
}
|
|
66
|
-
let rrwebPromise = null;
|
|
67
|
-
try {
|
|
68
|
-
const timeTravelMode = config.timeTravel.mode;
|
|
69
|
-
const isRetry = (session.executionContext?.ctx?.attempt ?? 0) > 0;
|
|
70
|
-
const shouldRecord = (0, utils_1.shouldRecordSnapshots)(timeTravelMode, isRetry);
|
|
71
|
-
if (shouldRecord && process.send && session.executionContext?.ctx?.currentTest) {
|
|
72
|
-
rrwebPromise = (0, rrweb_1.installRrwebAndCollectEvents)(session, callstack)
|
|
73
|
-
.then(rrwebEvents => {
|
|
74
|
-
const rrwebEventsFiltered = (0, rrweb_1.filterEvents)(rrwebEvents);
|
|
75
|
-
(0, rrweb_1.sendFilteredEvents)(session, rrwebEventsFiltered);
|
|
76
|
-
})
|
|
77
|
-
.catch(e => {
|
|
78
|
-
console.warn("An error occurred during capturing snapshots in browser.", e);
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
catch (e) {
|
|
83
|
-
console.warn("An error occurred during capturing snapshots in browser.", e);
|
|
84
|
-
}
|
|
85
65
|
return (0, utils_1.runWithHooks)({
|
|
86
66
|
before: () => {
|
|
87
67
|
callstack.enter(mkHistoryNode(nodeData));
|
|
88
68
|
},
|
|
89
69
|
fn: () => {
|
|
90
70
|
const result = fn();
|
|
91
|
-
if (
|
|
92
|
-
|
|
71
|
+
if (typeof result?.then === "function") {
|
|
72
|
+
try {
|
|
73
|
+
const timeTravelMode = config.timeTravel.mode;
|
|
74
|
+
const isRetry = (session.executionContext?.ctx?.attempt ?? 0) > 0;
|
|
75
|
+
const shouldRecord = (0, utils_1.shouldRecordSnapshots)(timeTravelMode, isRetry);
|
|
76
|
+
const isInterestingStep = !nodeData.name.startsWith("is") &&
|
|
77
|
+
!nodeData.name.startsWith("get") &&
|
|
78
|
+
!nodeData.name.startsWith("$") &&
|
|
79
|
+
!nodeData.name.startsWith("wait");
|
|
80
|
+
if (shouldRecord &&
|
|
81
|
+
process.send &&
|
|
82
|
+
session.executionContext?.ctx?.currentTest &&
|
|
83
|
+
isInterestingStep) {
|
|
84
|
+
const rrwebPromise = (0, rrweb_1.installRrwebAndCollectEvents)(session, callstack)
|
|
85
|
+
?.then(rrwebEvents => {
|
|
86
|
+
const rrwebEventsFiltered = (0, rrweb_1.filterEvents)(rrwebEvents);
|
|
87
|
+
(0, rrweb_1.sendFilteredEvents)(session, rrwebEventsFiltered);
|
|
88
|
+
})
|
|
89
|
+
.catch(e => {
|
|
90
|
+
debug("An error occurred during capturing snapshots in browser: %O", e);
|
|
91
|
+
});
|
|
92
|
+
snapshotsPromiseRef.current = snapshotsPromiseRef.current.then(() => rrwebPromise);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch (e) {
|
|
96
|
+
debug("An error occurred during capturing snapshots in browser: %O", e);
|
|
97
|
+
}
|
|
93
98
|
}
|
|
94
99
|
return result;
|
|
95
100
|
},
|
|
96
|
-
after: () =>
|
|
101
|
+
after: () => {
|
|
102
|
+
return callstack.leave(nodeData.key);
|
|
103
|
+
},
|
|
97
104
|
error: () => callstack.markError(exports.shouldPropagateFn),
|
|
98
105
|
});
|
|
99
106
|
};
|
|
100
|
-
const overwriteAddCommand = (session, callstack, config) => {
|
|
107
|
+
const overwriteAddCommand = (session, callstack, snapshotsPromiseRef, config) => {
|
|
101
108
|
session.overwriteCommand("addCommand", (origCommand, name, wrapper, elementScope) => {
|
|
102
109
|
if (shouldNotWrapCommand(name)) {
|
|
103
110
|
return origCommand(name, wrapper, elementScope);
|
|
@@ -106,6 +113,7 @@ const overwriteAddCommand = (session, callstack, config) => {
|
|
|
106
113
|
return runWithHistoryHooks({
|
|
107
114
|
session,
|
|
108
115
|
callstack,
|
|
116
|
+
snapshotsPromiseRef,
|
|
109
117
|
nodeData: { name, args, elementScope, overwrite: false },
|
|
110
118
|
fn: () => wrapper.apply(this, args),
|
|
111
119
|
config,
|
|
@@ -114,7 +122,7 @@ const overwriteAddCommand = (session, callstack, config) => {
|
|
|
114
122
|
return origCommand(name, decoratedWrapper, elementScope);
|
|
115
123
|
});
|
|
116
124
|
};
|
|
117
|
-
const overwriteOverwriteCommand = (session, callstack, config) => {
|
|
125
|
+
const overwriteOverwriteCommand = (session, callstack, snapshotsPromiseRef, config) => {
|
|
118
126
|
session.overwriteCommand("overwriteCommand", (origCommand, name, wrapper, elementScope) => {
|
|
119
127
|
if (shouldNotWrapCommand(name)) {
|
|
120
128
|
return origCommand(name, wrapper, elementScope);
|
|
@@ -122,6 +130,7 @@ const overwriteOverwriteCommand = (session, callstack, config) => {
|
|
|
122
130
|
function decoratedWrapper(origFn, ...args) {
|
|
123
131
|
return runWithHistoryHooks({
|
|
124
132
|
session,
|
|
133
|
+
snapshotsPromiseRef,
|
|
125
134
|
callstack,
|
|
126
135
|
nodeData: { name, args, elementScope, overwrite: true },
|
|
127
136
|
fn: () => wrapper.apply(this, [origFn, ...args]),
|
|
@@ -132,11 +141,12 @@ const overwriteOverwriteCommand = (session, callstack, config) => {
|
|
|
132
141
|
return origCommand(name, decoratedWrapper, elementScope);
|
|
133
142
|
});
|
|
134
143
|
};
|
|
135
|
-
const overwriteCommands = ({ session, callstack, commands, elementScope, config }) => {
|
|
144
|
+
const overwriteCommands = ({ session, snapshotsPromiseRef, callstack, commands, elementScope, config, }) => {
|
|
136
145
|
commands.forEach(name => {
|
|
137
146
|
function decoratedWrapper(origFn, ...args) {
|
|
138
147
|
return runWithHistoryHooks({
|
|
139
148
|
session,
|
|
149
|
+
snapshotsPromiseRef,
|
|
140
150
|
callstack,
|
|
141
151
|
nodeData: { name, args, elementScope, overwrite: false },
|
|
142
152
|
fn: () => origFn(...args),
|
|
@@ -147,46 +157,50 @@ const overwriteCommands = ({ session, callstack, commands, elementScope, config
|
|
|
147
157
|
session.overwriteCommand(name, decoratedWrapper, elementScope);
|
|
148
158
|
});
|
|
149
159
|
};
|
|
150
|
-
const overwriteBrowserCommands = (session, callstack, config) => overwriteCommands({
|
|
160
|
+
const overwriteBrowserCommands = (session, callstack, snapshotsPromiseRef, config) => overwriteCommands({
|
|
151
161
|
session,
|
|
152
162
|
callstack,
|
|
163
|
+
snapshotsPromiseRef,
|
|
153
164
|
commands: cmds.getBrowserCommands().filter(cmd => !shouldNotWrapCommand(cmd)),
|
|
154
165
|
elementScope: false,
|
|
155
166
|
config,
|
|
156
167
|
});
|
|
157
|
-
const overwriteElementCommands = (session, callstack, config) => overwriteCommands({
|
|
168
|
+
const overwriteElementCommands = (session, callstack, snapshotsPromiseRef, config) => overwriteCommands({
|
|
158
169
|
session,
|
|
159
170
|
callstack,
|
|
171
|
+
snapshotsPromiseRef,
|
|
160
172
|
commands: cmds.getElementCommands(),
|
|
161
173
|
elementScope: true,
|
|
162
174
|
config,
|
|
163
175
|
});
|
|
164
|
-
const runGroup = ({ session, callstack, config }, name, fn) => {
|
|
176
|
+
const runGroup = ({ session, callstack, snapshotsPromiseRef, config }, name, fn) => {
|
|
165
177
|
if (!callstack) {
|
|
166
178
|
return fn();
|
|
167
179
|
}
|
|
168
180
|
return runWithHistoryHooks({
|
|
169
181
|
session,
|
|
170
182
|
callstack,
|
|
183
|
+
snapshotsPromiseRef,
|
|
171
184
|
nodeData: { name, args: [], isGroup: true },
|
|
172
185
|
fn,
|
|
173
186
|
config,
|
|
174
187
|
});
|
|
175
188
|
};
|
|
176
189
|
exports.runGroup = runGroup;
|
|
177
|
-
const overwriteRunStepCommand = (session, callstack, config) => {
|
|
190
|
+
const overwriteRunStepCommand = (session, callstack, snapshotsPromiseRef, config) => {
|
|
178
191
|
session.overwriteCommand("runStep", (origCommand, stepName, stepCb) => {
|
|
179
|
-
return (0, exports.runGroup)({ session, callstack, config }, stepName, () => origCommand(stepName, stepCb));
|
|
192
|
+
return (0, exports.runGroup)({ session, snapshotsPromiseRef, callstack, config }, stepName, () => origCommand(stepName, stepCb));
|
|
180
193
|
});
|
|
181
194
|
};
|
|
182
195
|
const initCommandHistory = (session, config) => {
|
|
183
196
|
const callstack = new callstack_1.Callstack();
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
197
|
+
const snapshotsPromiseRef = { current: Promise.resolve() };
|
|
198
|
+
overwriteAddCommand(session, callstack, snapshotsPromiseRef, config);
|
|
199
|
+
overwriteBrowserCommands(session, callstack, snapshotsPromiseRef, config);
|
|
200
|
+
overwriteElementCommands(session, callstack, snapshotsPromiseRef, config);
|
|
201
|
+
overwriteOverwriteCommand(session, callstack, snapshotsPromiseRef, config);
|
|
202
|
+
overwriteRunStepCommand(session, callstack, snapshotsPromiseRef, config);
|
|
203
|
+
return { callstack, snapshotsPromiseRef };
|
|
190
204
|
};
|
|
191
205
|
exports.initCommandHistory = initCommandHistory;
|
|
192
206
|
//# sourceMappingURL=index.js.map
|