testplane 8.21.1 → 8.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/package.json +15 -9
- package/build/src/browser/browser.d.ts +6 -2
- package/build/src/browser/browser.js +2 -0
- package/build/src/browser/browser.js.map +1 -1
- package/build/src/browser/existing-browser.d.ts +2 -0
- package/build/src/browser/existing-browser.js +3 -3
- package/build/src/browser/existing-browser.js.map +1 -1
- package/build/src/browser/new-browser.d.ts +5 -2
- package/build/src/browser/new-browser.js +53 -7
- package/build/src/browser/new-browser.js.map +1 -1
- package/build/src/browser-installer/chrome/browser.d.ts +3 -0
- package/build/src/browser-installer/chrome/browser.js +67 -0
- package/build/src/browser-installer/chrome/browser.js.map +1 -0
- package/build/src/browser-installer/chrome/driver.d.ts +3 -0
- package/build/src/browser-installer/chrome/driver.js +65 -0
- package/build/src/browser-installer/chrome/driver.js.map +1 -0
- package/build/src/browser-installer/chrome/index.d.ts +14 -0
- package/build/src/browser-installer/chrome/index.js +34 -0
- package/build/src/browser-installer/chrome/index.js.map +1 -0
- package/build/src/browser-installer/chromium/browser.d.ts +3 -0
- package/build/src/browser-installer/chromium/browser.js +46 -0
- package/build/src/browser-installer/chromium/browser.js.map +1 -0
- package/build/src/browser-installer/chromium/driver.d.ts +1 -0
- package/build/src/browser-installer/chromium/driver.js +41 -0
- package/build/src/browser-installer/chromium/driver.js.map +1 -0
- package/build/src/browser-installer/chromium/index.d.ts +2 -0
- package/build/src/browser-installer/chromium/index.js +8 -0
- package/build/src/browser-installer/chromium/index.js.map +1 -0
- package/build/src/browser-installer/chromium/revisions/linux.d.ts +2 -0
- package/build/src/browser-installer/chromium/revisions/linux.js +45 -0
- package/build/src/browser-installer/chromium/revisions/linux.js.map +1 -0
- package/build/src/browser-installer/chromium/revisions/mac.d.ts +2 -0
- package/build/src/browser-installer/chromium/revisions/mac.js +45 -0
- package/build/src/browser-installer/chromium/revisions/mac.js.map +1 -0
- package/build/src/browser-installer/chromium/revisions/mac_arm.d.ts +2 -0
- package/build/src/browser-installer/chromium/revisions/mac_arm.js +25 -0
- package/build/src/browser-installer/chromium/revisions/mac_arm.js.map +1 -0
- package/build/src/browser-installer/chromium/revisions/win32.d.ts +2 -0
- package/build/src/browser-installer/chromium/revisions/win32.js +45 -0
- package/build/src/browser-installer/chromium/revisions/win32.js.map +1 -0
- package/build/src/browser-installer/chromium/revisions/win64.d.ts +2 -0
- package/build/src/browser-installer/chromium/revisions/win64.js +45 -0
- package/build/src/browser-installer/chromium/revisions/win64.js.map +1 -0
- package/build/src/browser-installer/chromium/utils.d.ts +4 -0
- package/build/src/browser-installer/chromium/utils.js +61 -0
- package/build/src/browser-installer/chromium/utils.js.map +1 -0
- package/build/src/browser-installer/constants.d.ts +13 -0
- package/build/src/browser-installer/constants.js +17 -0
- package/build/src/browser-installer/constants.js.map +1 -0
- package/build/src/browser-installer/edge/driver.d.ts +3 -0
- package/build/src/browser-installer/edge/driver.js +36 -0
- package/build/src/browser-installer/edge/driver.js.map +1 -0
- package/build/src/browser-installer/edge/index.d.ts +13 -0
- package/build/src/browser-installer/edge/index.js +30 -0
- package/build/src/browser-installer/edge/index.js.map +1 -0
- package/build/src/browser-installer/firefox/browser.d.ts +3 -0
- package/build/src/browser-installer/firefox/browser.js +38 -0
- package/build/src/browser-installer/firefox/browser.js.map +1 -0
- package/build/src/browser-installer/firefox/driver.d.ts +3 -0
- package/build/src/browser-installer/firefox/driver.js +30 -0
- package/build/src/browser-installer/firefox/driver.js.map +1 -0
- package/build/src/browser-installer/firefox/index.d.ts +14 -0
- package/build/src/browser-installer/firefox/index.js +40 -0
- package/build/src/browser-installer/firefox/index.js.map +1 -0
- package/build/src/browser-installer/firefox/utils.d.ts +2 -0
- package/build/src/browser-installer/firefox/utils.js +16 -0
- package/build/src/browser-installer/firefox/utils.js.map +1 -0
- package/build/src/browser-installer/index.d.ts +4 -0
- package/build/src/browser-installer/index.js +12 -0
- package/build/src/browser-installer/index.js.map +1 -0
- package/build/src/browser-installer/install.d.ts +32 -0
- package/build/src/browser-installer/install.js +106 -0
- package/build/src/browser-installer/install.js.map +1 -0
- package/build/src/browser-installer/registry/cli-progress-bar.d.ts +5 -0
- package/build/src/browser-installer/registry/cli-progress-bar.js +30 -0
- package/build/src/browser-installer/registry/cli-progress-bar.js.map +1 -0
- package/build/src/browser-installer/registry/index.d.ts +8 -0
- package/build/src/browser-installer/registry/index.js +161 -0
- package/build/src/browser-installer/registry/index.js.map +1 -0
- package/build/src/browser-installer/run.d.ts +12 -0
- package/build/src/browser-installer/run.js +43 -0
- package/build/src/browser-installer/run.js.map +1 -0
- package/build/src/browser-installer/safari/index.d.ts +11 -0
- package/build/src/browser-installer/safari/index.js +27 -0
- package/build/src/browser-installer/safari/index.js.map +1 -0
- package/build/src/browser-installer/utils.d.ts +35 -0
- package/build/src/browser-installer/utils.js +148 -0
- package/build/src/browser-installer/utils.js.map +1 -0
- package/build/src/browser-pool/basic-pool.d.ts +1 -0
- package/build/src/browser-pool/basic-pool.js +3 -1
- package/build/src/browser-pool/basic-pool.js.map +1 -1
- package/build/src/browser-pool/webdriver-pool.d.ts +17 -0
- package/build/src/browser-pool/webdriver-pool.js +69 -0
- package/build/src/browser-pool/webdriver-pool.js.map +1 -0
- package/build/src/bundle/@wdio-utils.d.ts +1 -0
- package/build/src/bundle/@wdio-utils.js +7 -0
- package/build/src/bundle/@wdio-utils.js.map +1 -0
- package/build/src/bundle/{index.js → cjs/index.js} +24261 -3721
- package/build/src/bundle/glob-extra.d.ts +3 -0
- package/build/src/bundle/glob-extra.js +8 -0
- package/build/src/bundle/glob-extra.js.map +1 -0
- package/build/src/{test-reader → bundle}/test-transformer.js +4 -3
- package/build/src/bundle/test-transformer.js.map +1 -0
- package/build/src/cli/commands/install-deps/index.d.ts +2 -0
- package/build/src/cli/commands/install-deps/index.js +72 -0
- package/build/src/cli/commands/install-deps/index.js.map +1 -0
- package/build/src/cli/constants.d.ts +1 -0
- package/build/src/cli/constants.js +1 -0
- package/build/src/cli/constants.js.map +1 -1
- package/build/src/cli/index.js +3 -1
- package/build/src/cli/index.js.map +1 -1
- package/build/src/config/types.d.ts +4 -8
- package/build/src/constants/config.d.ts +1 -0
- package/build/src/constants/config.js +1 -0
- package/build/src/constants/config.js.map +1 -1
- package/build/src/dev-server/utils.d.ts +5 -5
- package/build/src/dev-server/utils.js +4 -0
- package/build/src/dev-server/utils.js.map +1 -1
- package/build/src/runner/browser-env/vite/browser-modules/tsconfig.tsbuildinfo +1 -1
- package/build/src/test-reader/sets-builder/index.js +1 -1
- package/build/src/test-reader/sets-builder/index.js.map +1 -1
- package/build/src/test-reader/sets-builder/test-set.d.ts +1 -1
- package/build/src/test-reader/sets-builder/test-set.js +1 -1
- package/build/src/test-reader/sets-builder/test-set.js.map +1 -1
- package/build/src/test-reader/test-parser.js +1 -1
- package/build/src/test-reader/test-parser.js.map +1 -1
- package/build/src/testplane.d.ts +2 -1
- package/build/src/testplane.js +2 -2
- package/build/src/testplane.js.map +1 -1
- package/build/src/vendors/uglifyify/index.d.ts +0 -0
- package/build/src/vendors/uglifyify/index.js +2 -0
- package/build/src/vendors/uglifyify/index.js.map +1 -0
- package/package.json +15 -9
- package/build/src/test-reader/test-transformer.js.map +0 -1
- /package/build/src/{test-reader → bundle}/test-transformer.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../../src/browser-installer/firefox/browser.ts"],"names":[],"mappings":";;;AAAA,kDAA+E;AAC/E,oCAMkB;AAClB,0CAAqF;AACrF,mCAAqE;AAE9D,MAAM,cAAc,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,EAAmB,EAAE;IAC7F,MAAM,QAAQ,GAAG,IAAA,0BAAkB,GAAE,CAAC;IACtC,MAAM,6BAA6B,GAAG,IAAA,mCAAwB,EAAC,eAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEnG,IAAI,6BAA6B,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1C,IAAA,6BAAqB,EAAC,+BAA+B,OAAO,+CAA+C,CAAC,CAAC;QAE7G,OAAO,IAAA,wBAAa,EAAC,eAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,6BAA6B,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAA,+BAAuB,EAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAA,yBAAiB,EAAC,iBAAiB,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAG,IAAA,sBAAc,GAAE,CAAC;IAClC,MAAM,cAAc,GAAG,MAAM,IAAA,sBAAW,EAAC,EAAE,OAAO,EAAE,eAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEpG,IAAI,CAAC,cAAc,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACX;YACI,WAAW,OAAO,sBAAsB;YACxC,yBAAyB,OAAO,2CAA2C;YAC3E,2CAA2C;SAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,CACf,CAAC;IACN,CAAC;IAED,IAAA,6BAAqB,EAAC,sBAAsB,OAAO,QAAQ,QAAQ,EAAE,CAAC,CAAC;IAEvE,MAAM,SAAS,GAAG,CAAC,wBAAkD,EAAmB,EAAE,CACtF,IAAA,kBAAgB,EAAC;QACb,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,wBAAwB;QACxB,OAAO,EAAE,eAAO,CAAC,OAAO;QACxB,MAAM,EAAE,IAAI;KACf,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAE7C,OAAO,IAAA,wBAAa,EAAC,eAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACxE,CAAC,CAAC;AAvCW,QAAA,cAAc,kBAuCzB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.installLatestGeckoDriver = void 0;
|
|
4
|
+
const geckodriver_1 = require("geckodriver");
|
|
5
|
+
const constants_1 = require("../constants");
|
|
6
|
+
const registry_1 = require("../registry");
|
|
7
|
+
const utils_1 = require("../utils");
|
|
8
|
+
const getLatestGeckoDriverVersion = async () => {
|
|
9
|
+
const cargoVersionsToml = await (0, utils_1.retryFetch)(constants_1.GECKODRIVER_CARGO_TOML).then(res => res.text());
|
|
10
|
+
const version = cargoVersionsToml.split("\n").find(line => line.startsWith("version = "));
|
|
11
|
+
if (!version) {
|
|
12
|
+
throw new Error("Couldn't resolve latest geckodriver version while downloading geckodriver");
|
|
13
|
+
}
|
|
14
|
+
const latestGeckoVersion = version.split(" = ").pop().slice(1, -1);
|
|
15
|
+
(0, utils_1.browserInstallerDebug)(`resolved latest geckodriver version: ${latestGeckoVersion}`);
|
|
16
|
+
return latestGeckoVersion;
|
|
17
|
+
};
|
|
18
|
+
const installLatestGeckoDriver = async (firefoxVersion, { force = false } = {}) => {
|
|
19
|
+
const platform = (0, utils_1.getBrowserPlatform)();
|
|
20
|
+
const existingLocallyDriverVersion = (0, registry_1.getMatchedDriverVersion)(utils_1.Driver.GECKODRIVER, platform, firefoxVersion);
|
|
21
|
+
if (existingLocallyDriverVersion && !force) {
|
|
22
|
+
(0, utils_1.browserInstallerDebug)(`A locally installed geckodriver for firefox@${firefoxVersion} browser was found. Skipping the installation`);
|
|
23
|
+
return (0, registry_1.getBinaryPath)(utils_1.Driver.GECKODRIVER, platform, existingLocallyDriverVersion);
|
|
24
|
+
}
|
|
25
|
+
const latestVersion = await getLatestGeckoDriverVersion();
|
|
26
|
+
const installFn = () => (0, geckodriver_1.download)(latestVersion, (0, utils_1.getGeckoDriverDir)(latestVersion));
|
|
27
|
+
return (0, registry_1.installBinary)(utils_1.Driver.GECKODRIVER, platform, latestVersion, installFn);
|
|
28
|
+
};
|
|
29
|
+
exports.installLatestGeckoDriver = installLatestGeckoDriver;
|
|
30
|
+
//# sourceMappingURL=driver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../../src/browser-installer/firefox/driver.ts"],"names":[],"mappings":";;;AAAA,6CAA8D;AAC9D,4CAAsD;AACtD,0CAAoF;AACpF,oCAA4G;AAE5G,MAAM,2BAA2B,GAAG,KAAK,IAAqB,EAAE;IAC5D,MAAM,iBAAiB,GAAG,MAAM,IAAA,kBAAU,EAAC,kCAAsB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;IAE1F,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpE,IAAA,6BAAqB,EAAC,wCAAwC,kBAAkB,EAAE,CAAC,CAAC;IAEpF,OAAO,kBAAkB,CAAC;AAC9B,CAAC,CAAC;AAEK,MAAM,wBAAwB,GAAG,KAAK,EAAE,cAAsB,EAAE,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,EAAmB,EAAE;IAC9G,MAAM,QAAQ,GAAG,IAAA,0BAAkB,GAAE,CAAC;IACtC,MAAM,4BAA4B,GAAG,IAAA,kCAAuB,EAAC,cAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAE3G,IAAI,4BAA4B,IAAI,CAAC,KAAK,EAAE,CAAC;QACzC,IAAA,6BAAqB,EACjB,+CAA+C,cAAc,+CAA+C,CAC/G,CAAC;QAEF,OAAO,IAAA,wBAAa,EAAC,cAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,2BAA2B,EAAE,CAAC;IAE1D,MAAM,SAAS,GAAG,GAAoB,EAAE,CAAC,IAAA,sBAAmB,EAAC,aAAa,EAAE,IAAA,yBAAiB,EAAC,aAAa,CAAC,CAAC,CAAC;IAE9G,OAAO,IAAA,wBAAa,EAAC,cAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;AACjF,CAAC,CAAC;AAjBW,QAAA,wBAAwB,4BAiBnC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
import type { ChildProcess } from "child_process";
|
|
5
|
+
import { installFirefox } from "./browser";
|
|
6
|
+
import { installLatestGeckoDriver } from "./driver";
|
|
7
|
+
export { installFirefox, installLatestGeckoDriver };
|
|
8
|
+
export declare const runGeckoDriver: (firefoxVersion: string, { debug }?: {
|
|
9
|
+
debug?: boolean | undefined;
|
|
10
|
+
}) => Promise<{
|
|
11
|
+
gridUrl: string;
|
|
12
|
+
process: ChildProcess;
|
|
13
|
+
port: number;
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runGeckoDriver = exports.installLatestGeckoDriver = exports.installFirefox = void 0;
|
|
7
|
+
const geckodriver_1 = require("geckodriver");
|
|
8
|
+
const get_port_1 = __importDefault(require("get-port"));
|
|
9
|
+
const wait_port_1 = __importDefault(require("wait-port"));
|
|
10
|
+
const browser_1 = require("./browser");
|
|
11
|
+
Object.defineProperty(exports, "installFirefox", { enumerable: true, get: function () { return browser_1.installFirefox; } });
|
|
12
|
+
const driver_1 = require("./driver");
|
|
13
|
+
Object.defineProperty(exports, "installLatestGeckoDriver", { enumerable: true, get: function () { return driver_1.installLatestGeckoDriver; } });
|
|
14
|
+
const utils_1 = require("../../dev-server/utils");
|
|
15
|
+
const constants_1 = require("../constants");
|
|
16
|
+
const runGeckoDriver = async (firefoxVersion, { debug = false } = {}) => {
|
|
17
|
+
const [geckoDriverPath] = await Promise.all([
|
|
18
|
+
(0, driver_1.installLatestGeckoDriver)(firefoxVersion),
|
|
19
|
+
(0, browser_1.installFirefox)(firefoxVersion),
|
|
20
|
+
]);
|
|
21
|
+
const randomPort = await (0, get_port_1.default)();
|
|
22
|
+
const geckoDriver = await (0, geckodriver_1.start)({
|
|
23
|
+
customGeckoDriverPath: geckoDriverPath,
|
|
24
|
+
port: randomPort,
|
|
25
|
+
log: debug ? "debug" : "fatal",
|
|
26
|
+
spawnOpts: {
|
|
27
|
+
windowsHide: true,
|
|
28
|
+
detached: false,
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
if (debug) {
|
|
32
|
+
(0, utils_1.pipeLogsWithPrefix)(geckoDriver, `[geckodriver@${firefoxVersion}] `);
|
|
33
|
+
}
|
|
34
|
+
const gridUrl = `http://127.0.0.1:${randomPort}`;
|
|
35
|
+
process.once("exit", () => geckoDriver.kill());
|
|
36
|
+
await (0, wait_port_1.default)({ port: randomPort, output: "silent", timeout: constants_1.DRIVER_WAIT_TIMEOUT });
|
|
37
|
+
return { gridUrl, process: geckoDriver, port: randomPort };
|
|
38
|
+
};
|
|
39
|
+
exports.runGeckoDriver = runGeckoDriver;
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/browser-installer/firefox/index.ts"],"names":[],"mappings":";;;;;;AACA,6CAAwD;AACxD,wDAA+B;AAC/B,0DAAiC;AACjC,uCAA2C;AAKlC,+FALA,wBAAc,OAKA;AAJvB,qCAAoD;AAI3B,yGAJhB,iCAAwB,OAIgB;AAHjD,kDAA4D;AAC5D,4CAAmD;AAI5C,MAAM,cAAc,GAAG,KAAK,EAC/B,cAAsB,EACtB,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,EAC2C,EAAE;IACnE,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxC,IAAA,iCAAwB,EAAC,cAAc,CAAC;QACxC,IAAA,wBAAc,EAAC,cAAc,CAAC;KACjC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,IAAA,kBAAO,GAAE,CAAC;IAEnC,MAAM,WAAW,GAAG,MAAM,IAAA,mBAAgB,EAAC;QACvC,qBAAqB,EAAE,eAAe;QACtC,IAAI,EAAE,UAAU;QAChB,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;QAC9B,SAAS,EAAE;YACP,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,KAAK;SAClB;KACJ,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,CAAC;QACR,IAAA,0BAAkB,EAAC,WAAW,EAAE,gBAAgB,cAAc,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,OAAO,GAAG,oBAAoB,UAAU,EAAE,CAAC;IAEjD,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,IAAA,mBAAQ,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,+BAAmB,EAAE,CAAC,CAAC;IAErF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC/D,CAAC,CAAC;AAhCW,QAAA,cAAc,kBAgCzB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFirefoxBuildId = exports.normalizeFirefoxVersion = void 0;
|
|
4
|
+
const firefoxChannels = ["stable", "nightly"];
|
|
5
|
+
const normalizeFirefoxVersion = (version) => {
|
|
6
|
+
return version.includes(".") ? version : `${version}.0`;
|
|
7
|
+
};
|
|
8
|
+
exports.normalizeFirefoxVersion = normalizeFirefoxVersion;
|
|
9
|
+
const getFirefoxBuildId = (version) => {
|
|
10
|
+
const normalizedVersion = (0, exports.normalizeFirefoxVersion)(version);
|
|
11
|
+
return firefoxChannels.some(channel => normalizedVersion.startsWith(`${channel}_`))
|
|
12
|
+
? version
|
|
13
|
+
: `stable_${normalizedVersion}`;
|
|
14
|
+
};
|
|
15
|
+
exports.getFirefoxBuildId = getFirefoxBuildId;
|
|
16
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/browser-installer/firefox/utils.ts"],"names":[],"mappings":";;;AAAA,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAEvC,MAAM,uBAAuB,GAAG,CAAC,OAAe,EAAU,EAAE;IAC/D,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC;AAC5D,CAAC,CAAC;AAFW,QAAA,uBAAuB,2BAElC;AAEK,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAU,EAAE;IACzD,MAAM,iBAAiB,GAAG,IAAA,+BAAuB,EAAC,OAAO,CAAC,CAAC;IAE3D,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;QAC/E,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,UAAU,iBAAiB,EAAE,CAAC;AACxC,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDriverNameForBrowserName = exports.runBrowserDriver = exports.BrowserInstallStatus = exports.installBrowsersWithDrivers = exports.installBrowser = void 0;
|
|
4
|
+
var install_1 = require("./install");
|
|
5
|
+
Object.defineProperty(exports, "installBrowser", { enumerable: true, get: function () { return install_1.installBrowser; } });
|
|
6
|
+
Object.defineProperty(exports, "installBrowsersWithDrivers", { enumerable: true, get: function () { return install_1.installBrowsersWithDrivers; } });
|
|
7
|
+
Object.defineProperty(exports, "BrowserInstallStatus", { enumerable: true, get: function () { return install_1.BrowserInstallStatus; } });
|
|
8
|
+
var run_1 = require("./run");
|
|
9
|
+
Object.defineProperty(exports, "runBrowserDriver", { enumerable: true, get: function () { return run_1.runBrowserDriver; } });
|
|
10
|
+
var utils_1 = require("./utils");
|
|
11
|
+
Object.defineProperty(exports, "getDriverNameForBrowserName", { enumerable: true, get: function () { return utils_1.getDriverNameForBrowserName; } });
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browser-installer/index.ts"],"names":[],"mappings":";;;AAAA,qCAA6F;AAApF,yGAAA,cAAc,OAAA;AAAE,qHAAA,0BAA0B,OAAA;AAAE,+GAAA,oBAAoB,OAAA;AACzE,6BAAyC;AAAhC,uGAAA,gBAAgB,OAAA;AACzB,iCAAsD;AAA7C,oHAAA,2BAA2B,OAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @returns path to browser binary
|
|
3
|
+
*/
|
|
4
|
+
export declare const installBrowser: (browserName?: string, browserVersion?: string, { force, installWebDriver }?: {
|
|
5
|
+
force?: boolean | undefined;
|
|
6
|
+
installWebDriver?: boolean | undefined;
|
|
7
|
+
}) => Promise<string | null>;
|
|
8
|
+
export declare const BrowserInstallStatus: {
|
|
9
|
+
readonly Ok: "ok";
|
|
10
|
+
readonly Skip: "skip";
|
|
11
|
+
readonly Error: "error";
|
|
12
|
+
};
|
|
13
|
+
type InstallResultSuccess = {
|
|
14
|
+
status: "ok";
|
|
15
|
+
};
|
|
16
|
+
type InstallResultSkip = {
|
|
17
|
+
status: "skip";
|
|
18
|
+
reason: string;
|
|
19
|
+
};
|
|
20
|
+
type InstallResultError = {
|
|
21
|
+
status: "error";
|
|
22
|
+
reason: string;
|
|
23
|
+
};
|
|
24
|
+
export type InstallResult<Status = unknown> = (InstallResultSuccess | InstallResultSkip | InstallResultError) & {
|
|
25
|
+
status: Status;
|
|
26
|
+
};
|
|
27
|
+
type ForceInstallBinaryResult = Promise<InstallResult>;
|
|
28
|
+
export declare const installBrowsersWithDrivers: (browsersToInstall: {
|
|
29
|
+
browserName?: string;
|
|
30
|
+
browserVersion?: string;
|
|
31
|
+
}[]) => Promise<Record<string, Awaited<ForceInstallBinaryResult>>>;
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,106 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.installBrowsersWithDrivers = exports.BrowserInstallStatus = exports.installBrowser = void 0;
|
|
30
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
31
|
+
/**
|
|
32
|
+
* @returns path to browser binary
|
|
33
|
+
*/
|
|
34
|
+
const installBrowser = async (browserName, browserVersion, { force = false, installWebDriver = false } = {}) => {
|
|
35
|
+
const unsupportedBrowserError = new Error([
|
|
36
|
+
`Couldn't install browser '${browserName}', as it is not supported`,
|
|
37
|
+
`Currently supported for installation browsers: 'chrome', 'firefox`,
|
|
38
|
+
].join("\n"));
|
|
39
|
+
if (!browserName) {
|
|
40
|
+
throw unsupportedBrowserError;
|
|
41
|
+
}
|
|
42
|
+
if (!browserVersion) {
|
|
43
|
+
throw new Error(`Couldn't install browser '${browserName}' because it has invalid version: '${browserVersion}'`);
|
|
44
|
+
}
|
|
45
|
+
if (/chrome/i.test(browserName)) {
|
|
46
|
+
const { installChrome, installChromeDriver } = await Promise.resolve().then(() => __importStar(require("./chrome")));
|
|
47
|
+
return installWebDriver
|
|
48
|
+
? await Promise.all([
|
|
49
|
+
installChrome(browserVersion, { force }),
|
|
50
|
+
installChromeDriver(browserVersion, { force }),
|
|
51
|
+
]).then(binaries => binaries[0])
|
|
52
|
+
: installChrome(browserVersion, { force });
|
|
53
|
+
}
|
|
54
|
+
else if (/firefox/i.test(browserName)) {
|
|
55
|
+
const { installFirefox, installLatestGeckoDriver } = await Promise.resolve().then(() => __importStar(require("./firefox")));
|
|
56
|
+
return installWebDriver
|
|
57
|
+
? await Promise.all([
|
|
58
|
+
installFirefox(browserVersion, { force }),
|
|
59
|
+
installLatestGeckoDriver(browserVersion, { force }),
|
|
60
|
+
]).then(binaries => binaries[0])
|
|
61
|
+
: installFirefox(browserVersion, { force });
|
|
62
|
+
}
|
|
63
|
+
else if (/edge/i.test(browserName)) {
|
|
64
|
+
const { installEdgeDriver } = await Promise.resolve().then(() => __importStar(require("./edge")));
|
|
65
|
+
if (installWebDriver) {
|
|
66
|
+
await installEdgeDriver(browserVersion, { force });
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
else if (/safari/i.test(browserName)) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
throw unsupportedBrowserError;
|
|
74
|
+
};
|
|
75
|
+
exports.installBrowser = installBrowser;
|
|
76
|
+
exports.BrowserInstallStatus = {
|
|
77
|
+
Ok: "ok",
|
|
78
|
+
Skip: "skip",
|
|
79
|
+
Error: "error",
|
|
80
|
+
};
|
|
81
|
+
const forceInstallBinaries = async (installFn, browserName, browserVersion) => {
|
|
82
|
+
return installFn(browserName, browserVersion, { force: true, installWebDriver: true })
|
|
83
|
+
.then(successResult => {
|
|
84
|
+
return successResult
|
|
85
|
+
? { status: exports.BrowserInstallStatus.Ok }
|
|
86
|
+
: {
|
|
87
|
+
status: exports.BrowserInstallStatus.Skip,
|
|
88
|
+
reason: `Installing ${browserName} is unsupported. Assuming it is installed locally`,
|
|
89
|
+
};
|
|
90
|
+
})
|
|
91
|
+
.catch(errorResult => ({ status: exports.BrowserInstallStatus.Error, reason: errorResult.message }));
|
|
92
|
+
};
|
|
93
|
+
const installBrowsersWithDrivers = async (browsersToInstall) => {
|
|
94
|
+
const uniqBrowsers = lodash_1.default.uniqBy(browsersToInstall, b => `${b.browserName}@${b.browserVersion}`);
|
|
95
|
+
const installPromises = [];
|
|
96
|
+
const browsersInstallResult = {};
|
|
97
|
+
for (const { browserName, browserVersion } of uniqBrowsers) {
|
|
98
|
+
installPromises.push(forceInstallBinaries(exports.installBrowser, browserName, browserVersion).then(result => {
|
|
99
|
+
browsersInstallResult[`${browserName}@${browserVersion}`] = result;
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
102
|
+
await Promise.all(installPromises);
|
|
103
|
+
return browsersInstallResult;
|
|
104
|
+
};
|
|
105
|
+
exports.installBrowsersWithDrivers = installBrowsersWithDrivers;
|
|
106
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/browser-installer/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { DownloadProgressCallback } from "../utils";
|
|
2
|
+
export type RegisterProgressBarFn = (browserName: string, browserVersion: string) => DownloadProgressCallback;
|
|
3
|
+
export declare const createBrowserDownloadProgressBar: () => {
|
|
4
|
+
register: RegisterProgressBarFn;
|
|
5
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createBrowserDownloadProgressBar = void 0;
|
|
4
|
+
const cli_progress_1 = require("cli-progress");
|
|
5
|
+
const constants_1 = require("../constants");
|
|
6
|
+
const createBrowserDownloadProgressBar = () => {
|
|
7
|
+
const progressBar = new cli_progress_1.MultiBar({
|
|
8
|
+
stopOnComplete: true,
|
|
9
|
+
forceRedraw: true,
|
|
10
|
+
autopadding: true,
|
|
11
|
+
hideCursor: true,
|
|
12
|
+
fps: 5,
|
|
13
|
+
format: " [{bar}] | {filename} | {value}/{total} MB",
|
|
14
|
+
});
|
|
15
|
+
const register = (browserName, browserVersion) => {
|
|
16
|
+
let bar;
|
|
17
|
+
const downloadProgressCallback = (downloadedBytes, totalBytes) => {
|
|
18
|
+
if (!bar) {
|
|
19
|
+
const totalMB = Math.round((totalBytes / constants_1.BYTES_PER_MEGABYTE) * 100) / 100;
|
|
20
|
+
bar = progressBar.create(totalMB, 0, { filename: `${browserName}@${browserVersion}` });
|
|
21
|
+
}
|
|
22
|
+
const downloadedMB = Math.round((downloadedBytes / constants_1.BYTES_PER_MEGABYTE) * 100) / 100;
|
|
23
|
+
bar.update(downloadedMB);
|
|
24
|
+
};
|
|
25
|
+
return downloadProgressCallback;
|
|
26
|
+
};
|
|
27
|
+
return { register };
|
|
28
|
+
};
|
|
29
|
+
exports.createBrowserDownloadProgressBar = createBrowserDownloadProgressBar;
|
|
30
|
+
//# sourceMappingURL=cli-progress-bar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-progress-bar.js","sourceRoot":"","sources":["../../../../src/browser-installer/registry/cli-progress-bar.ts"],"names":[],"mappings":";;;AAAA,+CAAwD;AAExD,4CAAkD;AAI3C,MAAM,gCAAgC,GAAG,GAAwC,EAAE;IACtF,MAAM,WAAW,GAAG,IAAI,uBAAQ,CAAC;QAC7B,cAAc,EAAE,IAAI;QACpB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,IAAI;QAChB,GAAG,EAAE,CAAC;QACN,MAAM,EAAE,4CAA4C;KACvD,CAAC,CAAC;IAEH,MAAM,QAAQ,GAA0B,CAAC,WAAW,EAAE,cAAc,EAAE,EAAE;QACpE,IAAI,GAAc,CAAC;QAEnB,MAAM,wBAAwB,GAA6B,CAAC,eAAe,EAAE,UAAU,EAAE,EAAE;YACvF,IAAI,CAAC,GAAG,EAAE,CAAC;gBACP,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,8BAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;gBAC1E,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,WAAW,IAAI,cAAc,EAAE,EAAE,CAAC,CAAC;YAC3F,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,8BAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YAEpF,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7B,CAAC,CAAC;QAEF,OAAO,wBAAwB,CAAC;IACpC,CAAC,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,CAAC;AACxB,CAAC,CAAC;AA5BW,QAAA,gCAAgC,oCA4B3C"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { BrowserPlatform } from "@puppeteer/browsers";
|
|
2
|
+
import { type SupportedBrowser, type SupportedDriver, type DownloadProgressCallback } from "../utils";
|
|
3
|
+
type BinaryName = Exclude<SupportedBrowser | SupportedDriver, SupportedBrowser & SupportedDriver>;
|
|
4
|
+
export declare const getBinaryPath: (name: BinaryName, platform: BrowserPlatform, version: string) => Promise<string>;
|
|
5
|
+
export declare const getMatchedDriverVersion: (driverName: SupportedDriver, platform: BrowserPlatform, browserVersion: string) => string | null;
|
|
6
|
+
export declare const getMatchedBrowserVersion: (browserName: SupportedBrowser, platform: BrowserPlatform, browserVersion: string) => string | null;
|
|
7
|
+
export declare const installBinary: (name: BinaryName, platform: BrowserPlatform, version: string, installFn: (downloadProgressCallback: DownloadProgressCallback) => Promise<string>) => Promise<string>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,161 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.installBinary = exports.getMatchedBrowserVersion = exports.getMatchedDriverVersion = exports.getBinaryPath = void 0;
|
|
30
|
+
const fs_extra_1 = require("fs-extra");
|
|
31
|
+
const path_1 = __importDefault(require("path"));
|
|
32
|
+
const utils_1 = require("../utils");
|
|
33
|
+
const utils_2 = require("../firefox/utils");
|
|
34
|
+
const logger_1 = __importDefault(require("../../utils/logger"));
|
|
35
|
+
const registryPath = (0, utils_1.getRegistryPath)();
|
|
36
|
+
const registry = (0, fs_extra_1.existsSync)(registryPath) ? (0, fs_extra_1.readJsonSync)(registryPath) : {};
|
|
37
|
+
let cliProgressBar = null;
|
|
38
|
+
let warnedFirstTimeInstall = false;
|
|
39
|
+
const getRegistryKey = (name, platform) => `${name}_${platform}`;
|
|
40
|
+
const getBinaryPath = async (name, platform, version) => {
|
|
41
|
+
const registryKey = getRegistryKey(name, platform);
|
|
42
|
+
if (!registry[registryKey]) {
|
|
43
|
+
throw new Error(`Binary '${name}' on '${platform}' is not installed`);
|
|
44
|
+
}
|
|
45
|
+
if (!registry[registryKey][version]) {
|
|
46
|
+
throw new Error(`Version '${version}' of driver '${name}' on '${platform}' is not installed`);
|
|
47
|
+
}
|
|
48
|
+
const binaryRelativePath = await registry[registryKey][version];
|
|
49
|
+
(0, utils_1.browserInstallerDebug)(`resolved '${name}@${version}' on ${platform} to ${binaryRelativePath}`);
|
|
50
|
+
return path_1.default.resolve(registryPath, binaryRelativePath);
|
|
51
|
+
};
|
|
52
|
+
exports.getBinaryPath = getBinaryPath;
|
|
53
|
+
const addBinaryToRegistry = (name, platform, version, absoluteBinaryPath) => {
|
|
54
|
+
const registryKey = getRegistryKey(name, platform);
|
|
55
|
+
const relativePath = path_1.default.relative(registryPath, absoluteBinaryPath);
|
|
56
|
+
registry[registryKey] ||= {};
|
|
57
|
+
registry[registryKey][version] = relativePath;
|
|
58
|
+
const replacer = (_, value) => {
|
|
59
|
+
if (value.then) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
return value;
|
|
63
|
+
};
|
|
64
|
+
(0, utils_1.browserInstallerDebug)(`adding '${name}@${version}' on '${platform}' to registry at ${relativePath}`);
|
|
65
|
+
(0, fs_extra_1.outputJSONSync)(registryPath, registry, { replacer });
|
|
66
|
+
};
|
|
67
|
+
const getBinaryVersions = (name, platform) => {
|
|
68
|
+
const registryKey = getRegistryKey(name, platform);
|
|
69
|
+
if (!registry[registryKey]) {
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
return Object.keys(registry[registryKey]);
|
|
73
|
+
};
|
|
74
|
+
const hasBinaryVersion = (name, platform, version) => getBinaryVersions(name, platform).includes(version);
|
|
75
|
+
const getMatchedDriverVersion = (driverName, platform, browserVersion) => {
|
|
76
|
+
const registryKey = getRegistryKey(driverName, platform);
|
|
77
|
+
if (!registry[registryKey]) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
if (driverName === utils_1.Driver.CHROMEDRIVER || driverName === utils_1.Driver.EDGEDRIVER) {
|
|
81
|
+
const milestone = (0, utils_1.getMilestone)(browserVersion);
|
|
82
|
+
const buildIds = getBinaryVersions(driverName, platform);
|
|
83
|
+
const suitableBuildIds = buildIds.filter(buildId => buildId.startsWith(milestone));
|
|
84
|
+
if (!suitableBuildIds.length) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
return suitableBuildIds.sort(utils_1.semverVersionsComparator).pop();
|
|
88
|
+
}
|
|
89
|
+
if (driverName === utils_1.Driver.GECKODRIVER) {
|
|
90
|
+
const buildIds = Object.keys(registry[registryKey]);
|
|
91
|
+
const buildIdsSorted = buildIds.sort(utils_1.semverVersionsComparator);
|
|
92
|
+
return buildIdsSorted.length ? buildIdsSorted[buildIdsSorted.length - 1] : null;
|
|
93
|
+
}
|
|
94
|
+
return null;
|
|
95
|
+
};
|
|
96
|
+
exports.getMatchedDriverVersion = getMatchedDriverVersion;
|
|
97
|
+
const getMatchedBrowserVersion = (browserName, platform, browserVersion) => {
|
|
98
|
+
const registryKey = getRegistryKey(browserName, platform);
|
|
99
|
+
if (!registry[registryKey]) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
let buildPrefix;
|
|
103
|
+
switch (browserName) {
|
|
104
|
+
case utils_1.Browser.CHROME:
|
|
105
|
+
buildPrefix = (0, utils_1.normalizeChromeVersion)(browserVersion);
|
|
106
|
+
break;
|
|
107
|
+
case utils_1.Browser.CHROMIUM:
|
|
108
|
+
buildPrefix = (0, utils_1.getMilestone)(browserVersion);
|
|
109
|
+
break;
|
|
110
|
+
case utils_1.Browser.FIREFOX:
|
|
111
|
+
buildPrefix = (0, utils_2.getFirefoxBuildId)(browserVersion);
|
|
112
|
+
break;
|
|
113
|
+
default:
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
const buildIds = getBinaryVersions(browserName, platform);
|
|
117
|
+
const suitableBuildIds = buildIds.filter(buildId => buildId.startsWith(buildPrefix));
|
|
118
|
+
if (!suitableBuildIds.length) {
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
const firefoxVersionComparator = (a, b) => {
|
|
122
|
+
a = a.slice(a.indexOf("_") + 1);
|
|
123
|
+
b = b.slice(b.indexOf("_") + 1);
|
|
124
|
+
// Firefox has versions like "stable_131.0a1" and "stable_129.0b9"
|
|
125
|
+
// Parsing raw numbers as hex values is needed in order to distinguish "129.0b9" and "129.0b7" for example
|
|
126
|
+
return parseInt(a.replace(".", ""), 16) - parseInt(b.replace(".", ""), 16);
|
|
127
|
+
};
|
|
128
|
+
const comparator = browserName === utils_1.Browser.FIREFOX ? firefoxVersionComparator : utils_1.semverVersionsComparator;
|
|
129
|
+
const suitableBuildIdsSorted = suitableBuildIds.sort(comparator);
|
|
130
|
+
return suitableBuildIdsSorted[suitableBuildIdsSorted.length - 1];
|
|
131
|
+
};
|
|
132
|
+
exports.getMatchedBrowserVersion = getMatchedBrowserVersion;
|
|
133
|
+
const installBinary = async (name, platform, version, installFn) => {
|
|
134
|
+
const registryKey = getRegistryKey(name, platform);
|
|
135
|
+
if (hasBinaryVersion(name, platform, version)) {
|
|
136
|
+
return (0, exports.getBinaryPath)(name, platform, version);
|
|
137
|
+
}
|
|
138
|
+
(0, utils_1.browserInstallerDebug)(`installing '${name}@${version}' on '${platform}'`);
|
|
139
|
+
if (!cliProgressBar) {
|
|
140
|
+
const { createBrowserDownloadProgressBar } = await Promise.resolve().then(() => __importStar(require("./cli-progress-bar")));
|
|
141
|
+
cliProgressBar = createBrowserDownloadProgressBar();
|
|
142
|
+
}
|
|
143
|
+
const originalDownloadProgressCallback = cliProgressBar.register(name, version);
|
|
144
|
+
const downloadProgressCallback = (...args) => {
|
|
145
|
+
if (!warnedFirstTimeInstall) {
|
|
146
|
+
logger_1.default.warn("Downloading Testplane browsers");
|
|
147
|
+
logger_1.default.warn("Note: this is one-time action. It may take a while...");
|
|
148
|
+
warnedFirstTimeInstall = true;
|
|
149
|
+
}
|
|
150
|
+
return originalDownloadProgressCallback(...args);
|
|
151
|
+
};
|
|
152
|
+
const installPromise = installFn(downloadProgressCallback).then(executablePath => {
|
|
153
|
+
addBinaryToRegistry(name, platform, version, executablePath);
|
|
154
|
+
return executablePath;
|
|
155
|
+
});
|
|
156
|
+
registry[registryKey] ||= {};
|
|
157
|
+
registry[registryKey][version] = installPromise;
|
|
158
|
+
return installPromise;
|
|
159
|
+
};
|
|
160
|
+
exports.installBinary = installBinary;
|
|
161
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/browser-installer/registry/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAAoE;AACpE,gDAAwB;AACxB,oCAWkB;AAClB,4CAAqD;AACrD,gEAAwC;AAQxC,MAAM,YAAY,GAAG,IAAA,uBAAe,GAAE,CAAC;AACvC,MAAM,QAAQ,GAAa,IAAA,qBAAU,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAA,uBAAY,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAEtF,IAAI,cAAc,GAA+D,IAAI,CAAC;AACtF,IAAI,sBAAsB,GAAG,KAAK,CAAC;AAEnC,MAAM,cAAc,GAAG,CAAC,IAAgB,EAAE,QAAyB,EAAe,EAAE,CAAC,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC;AAEpG,MAAM,aAAa,GAAG,KAAK,EAAE,IAAgB,EAAE,QAAyB,EAAE,OAAe,EAAmB,EAAE;IACjH,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEnD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,SAAS,QAAQ,oBAAoB,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,gBAAgB,IAAI,SAAS,QAAQ,oBAAoB,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC;IAEhE,IAAA,6BAAqB,EAAC,aAAa,IAAI,IAAI,OAAO,QAAQ,QAAQ,OAAO,kBAAkB,EAAE,CAAC,CAAC;IAE/F,OAAO,cAAI,CAAC,OAAO,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;AAC1D,CAAC,CAAC;AAhBW,QAAA,aAAa,iBAgBxB;AAEF,MAAM,mBAAmB,GAAG,CACxB,IAAgB,EAChB,QAAyB,EACzB,OAAe,EACf,kBAA0B,EACtB,EAAE;IACN,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,cAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IAErE,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;IAE9C,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,KAAc,EAAuB,EAAE;QAChE,IAAK,KAA0B,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO;QACX,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;IAEF,IAAA,6BAAqB,EAAC,WAAW,IAAI,IAAI,OAAO,SAAS,QAAQ,oBAAoB,YAAY,EAAE,CAAC,CAAC;IACrG,IAAA,yBAAc,EAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,IAAgB,EAAE,QAAyB,EAAY,EAAE;IAChF,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEnD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,IAAgB,EAAE,QAAyB,EAAE,OAAe,EAAW,EAAE,CAC/F,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAEjD,MAAM,uBAAuB,GAAG,CACnC,UAA2B,EAC3B,QAAyB,EACzB,cAAsB,EACT,EAAE;IACf,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAEzD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,UAAU,KAAK,cAAM,CAAC,YAAY,IAAI,UAAU,KAAK,cAAM,CAAC,UAAU,EAAE,CAAC;QACzE,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,cAAc,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACzD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QAEnF,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,gBAAgB,CAAC,IAAI,CAAC,gCAAwB,CAAC,CAAC,GAAG,EAAY,CAAC;IAC3E,CAAC;IAED,IAAI,UAAU,KAAK,cAAM,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QACpD,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,gCAAwB,CAAC,CAAC;QAE/D,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpF,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AA/BW,QAAA,uBAAuB,2BA+BlC;AAEK,MAAM,wBAAwB,GAAG,CACpC,WAA6B,EAC7B,QAAyB,EACzB,cAAsB,EACT,EAAE;IACf,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAE1D,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,WAAmB,CAAC;IAExB,QAAQ,WAAW,EAAE,CAAC;QAClB,KAAK,eAAO,CAAC,MAAM;YACf,WAAW,GAAG,IAAA,8BAAsB,EAAC,cAAc,CAAC,CAAC;YACrD,MAAM;QAEV,KAAK,eAAO,CAAC,QAAQ;YACjB,WAAW,GAAG,IAAA,oBAAY,EAAC,cAAc,CAAC,CAAC;YAC3C,MAAM;QAEV,KAAK,eAAO,CAAC,OAAO;YAChB,WAAW,GAAG,IAAA,yBAAiB,EAAC,cAAc,CAAC,CAAC;YAChD,MAAM;QAEV;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAErF,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,wBAAwB,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE;QAC9D,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAEhC,kEAAkE;QAClE,0GAA0G;QAC1G,OAAO,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,KAAK,eAAO,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,gCAAwB,CAAC;IACzG,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEjE,OAAO,sBAAsB,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC;AAlDW,QAAA,wBAAwB,4BAkDnC;AAEK,MAAM,aAAa,GAAG,KAAK,EAC9B,IAAgB,EAChB,QAAyB,EACzB,OAAe,EACf,SAAkF,EACnE,EAAE;IACjB,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEnD,IAAI,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAA,qBAAa,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,IAAA,6BAAqB,EAAC,eAAe,IAAI,IAAI,OAAO,SAAS,QAAQ,GAAG,CAAC,CAAC;IAE1E,IAAI,CAAC,cAAc,EAAE,CAAC;QAClB,MAAM,EAAE,gCAAgC,EAAE,GAAG,wDAAa,oBAAoB,GAAC,CAAC;QAEhF,cAAc,GAAG,gCAAgC,EAAE,CAAC;IACxD,CAAC;IAED,MAAM,gCAAgC,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChF,MAAM,wBAAwB,GAA6B,CAAC,GAAG,IAAI,EAAE,EAAE;QACnE,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC1B,gBAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC9C,gBAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YAErE,sBAAsB,GAAG,IAAI,CAAC;QAClC,CAAC;QAED,OAAO,gCAAgC,CAAC,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,SAAS,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;QAC7E,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAE7D,OAAO,cAAc,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC;IAEhD,OAAO,cAAc,CAAC;AAC1B,CAAC,CAAC;AA1CW,QAAA,aAAa,iBA0CxB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
import type { ChildProcess } from "child_process";
|
|
5
|
+
import { type SupportedDriver } from "./utils";
|
|
6
|
+
export declare const runBrowserDriver: (driverName: SupportedDriver, browserVersion: string, { debug }?: {
|
|
7
|
+
debug?: boolean | undefined;
|
|
8
|
+
}) => Promise<{
|
|
9
|
+
gridUrl: string;
|
|
10
|
+
process: ChildProcess;
|
|
11
|
+
port: number;
|
|
12
|
+
}>;
|
|
@@ -0,0 +1,43 @@
|
|
|
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.runBrowserDriver = void 0;
|
|
27
|
+
const utils_1 = require("./utils");
|
|
28
|
+
const runBrowserDriver = async (driverName, browserVersion, { debug = false } = {}) => {
|
|
29
|
+
switch (driverName) {
|
|
30
|
+
case utils_1.Driver.CHROMEDRIVER:
|
|
31
|
+
return Promise.resolve().then(() => __importStar(require("./chrome"))).then(module => module.runChromeDriver(browserVersion, { debug }));
|
|
32
|
+
case utils_1.Driver.EDGEDRIVER:
|
|
33
|
+
return Promise.resolve().then(() => __importStar(require("./edge"))).then(module => module.runEdgeDriver(browserVersion, { debug }));
|
|
34
|
+
case utils_1.Driver.GECKODRIVER:
|
|
35
|
+
return Promise.resolve().then(() => __importStar(require("./firefox"))).then(module => module.runGeckoDriver(browserVersion, { debug }));
|
|
36
|
+
case utils_1.Driver.SAFARIDRIVER:
|
|
37
|
+
return Promise.resolve().then(() => __importStar(require("./safari"))).then(module => module.runSafariDriver({ debug }));
|
|
38
|
+
default:
|
|
39
|
+
throw new Error(`Invalid driver name: ${driverName}. Expected one of: ${Object.values(utils_1.Driver).join(", ")}`);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.runBrowserDriver = runBrowserDriver;
|
|
43
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/browser-installer/run.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mCAAuD;AAEhD,MAAM,gBAAgB,GAAG,KAAK,EACjC,UAA2B,EAC3B,cAAsB,EACtB,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,EAC2C,EAAE;IACnE,QAAQ,UAAU,EAAE,CAAC;QACjB,KAAK,cAAM,CAAC,YAAY;YACpB,OAAO,kDAAO,UAAU,IAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAChG,KAAK,cAAM,CAAC,UAAU;YAClB,OAAO,kDAAO,QAAQ,IAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5F,KAAK,cAAM,CAAC,WAAW;YACnB,OAAO,kDAAO,WAAW,IAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAChG,KAAK,cAAM,CAAC,YAAY;YACpB,OAAO,kDAAO,UAAU,IAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAChF;YACI,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,sBAAsB,MAAM,CAAC,MAAM,CAAC,cAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpH,CAAC;AACL,CAAC,CAAC;AAjBW,QAAA,gBAAgB,oBAiB3B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
import { type ChildProcess } from "child_process";
|
|
5
|
+
export declare const runSafariDriver: ({ debug }?: {
|
|
6
|
+
debug?: boolean | undefined;
|
|
7
|
+
}) => Promise<{
|
|
8
|
+
gridUrl: string;
|
|
9
|
+
process: ChildProcess;
|
|
10
|
+
port: number;
|
|
11
|
+
}>;
|