@mablhq/mabl-cli 1.25.19 → 1.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/basicApiClient.js +1 -0
- package/api/entities/Browser.js +1 -0
- package/api/featureSet.js +2 -2
- package/api/mablApiClient.js +14 -0
- package/api/mablApiClientFactory.js +5 -4
- package/browserLauncher/browserLauncherFactory.js +3 -3
- package/browserLauncher/playwrightBrowserLauncher/playwrightBrowser.js +2 -2
- package/browserLauncher/playwrightBrowserLauncher/playwrightBrowserLauncher.js +20 -3
- package/browserLauncher/playwrightBrowserLauncher/playwrightDom.js +18 -15
- package/browserLauncher/playwrightBrowserLauncher/simplePlaywrightLogger.js +36 -0
- package/browserLauncher/types.js +5 -1
- package/cli.js +1 -0
- package/commands/browserTypes.js +19 -8
- package/commands/config/config_cmds/configKeys.js +7 -1
- package/commands/config/config_cmds/set.js +6 -0
- package/commands/constants.js +9 -7
- package/commands/tests/testsUtil.js +71 -85
- package/commands/tests/tests_cmds/run-cloud.js +2 -2
- package/commands/tests/tests_cmds/run.js +24 -1
- package/commands/users/users.js +5 -0
- package/commands/users/users_cmds/list.js +58 -0
- package/domUtil/index.js +1 -2
- package/execution/index.js +1 -1
- package/index.d.ts +2 -0
- package/mablscript/MablAction.js +31 -1
- package/mablscript/actions/ConditionAction.js +4 -0
- package/mablscript/actions/FindAction.js +3 -0
- package/mablscript/actions/GenerateRandomStringAction.js +3 -0
- package/mablscript/actions/GetVariableValue.js +3 -0
- package/mablscript/actions/JavaScriptAction.js +7 -0
- package/mablscript/importer.js +10 -3
- package/mablscript/steps/AssertStep.js +10 -0
- package/mablscript/steps/ClickAndHoldStep.js +3 -0
- package/mablscript/steps/ClickStep.js +3 -0
- package/mablscript/steps/CreateVariableStep.js +6 -0
- package/mablscript/steps/DoubleClickStep.js +3 -0
- package/mablscript/steps/DownloadStep.js +4 -0
- package/mablscript/steps/EchoStep.js +3 -0
- package/mablscript/steps/EnterTextStep.js +6 -0
- package/mablscript/steps/EvaluateJavaScriptStep.js +3 -0
- package/mablscript/steps/HoverStep.js +3 -0
- package/mablscript/steps/IfConditionStep.js +9 -0
- package/mablscript/steps/OpenEmailStep.js +3 -0
- package/mablscript/steps/ReleaseStep.js +3 -0
- package/mablscript/steps/RemoveCookieStep.js +4 -0
- package/mablscript/steps/SelectStep.js +7 -0
- package/mablscript/steps/SendHttpRequestStep.js +8 -0
- package/mablscript/steps/SendKeyStep.js +3 -0
- package/mablscript/steps/SetCookieStep.js +7 -0
- package/mablscript/steps/SetFilesStep.js +3 -0
- package/mablscript/steps/SwitchContextStep.js +4 -0
- package/mablscript/steps/VisitUrlStep.js +4 -0
- package/mablscript/steps/WaitUntilStep.js +3 -0
- package/mablscriptFind/index.js +1 -1
- package/package.json +5 -4
- package/providers/cliConfigProvider.js +6 -0
- package/resources/mablFind.js +1 -1
- package/util/asyncUtil.js +9 -5
- package/util/httpUtil.js +32 -12
- package/browserLauncher/runnerType.js +0 -7
- package/domUtil/index.js.LICENSE.txt +0 -14
- package/mablscript/AttributesConstants.js +0 -115
package/api/basicApiClient.js
CHANGED
|
@@ -58,6 +58,7 @@ class BasicApiClient {
|
|
|
58
58
|
const config = (0, httpUtil_1.axiosProxyConfig)({
|
|
59
59
|
sslVerify: (_a = options.sslVerify) !== null && _a !== void 0 ? _a : DEFAULT_SSL_VERIFY,
|
|
60
60
|
proxyHost: options.proxyUrl,
|
|
61
|
+
proxyType: options.proxyType,
|
|
61
62
|
});
|
|
62
63
|
if (!config.headers) {
|
|
63
64
|
config.headers = {};
|
package/api/entities/Browser.js
CHANGED
package/api/featureSet.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FeatureSet = exports.FindImplementationVersion = void 0;
|
|
4
|
-
const
|
|
4
|
+
const types_1 = require("../browserLauncher/types");
|
|
5
5
|
const ACCESSIBILITY_CHECK_FEATURE_FLAG = 'accessibility_checks';
|
|
6
6
|
const SMARTER_WAIT_FEATURE_FLAG = 'smarter_wait';
|
|
7
7
|
var FindImplementationVersion;
|
|
@@ -14,7 +14,7 @@ class FeatureSet {
|
|
|
14
14
|
this.featureFlags = featureFlags;
|
|
15
15
|
}
|
|
16
16
|
getRunnerType() {
|
|
17
|
-
return
|
|
17
|
+
return types_1.RunnerType.Playwright;
|
|
18
18
|
}
|
|
19
19
|
getFindImplementationVersion() {
|
|
20
20
|
return this.featureFlags.has(SMARTER_WAIT_FEATURE_FLAG)
|
package/api/mablApiClient.js
CHANGED
|
@@ -745,6 +745,20 @@ class MablApiClient extends basicApiClient_1.BasicApiClient {
|
|
|
745
745
|
throw toApiError(`Failed to get feature flags for workspace ${workspaceId}`, error);
|
|
746
746
|
}
|
|
747
747
|
}
|
|
748
|
+
async getUsers(workspaceId, limit) {
|
|
749
|
+
try {
|
|
750
|
+
const userQueryString = queryString.stringify({
|
|
751
|
+
organization_id: workspaceId,
|
|
752
|
+
limit,
|
|
753
|
+
});
|
|
754
|
+
const users = await this.makeGetRequest(`${this.baseApiUrl}/users/?${userQueryString}`).then((result) => { var _a; return (_a = result.users) !== null && _a !== void 0 ? _a : []; });
|
|
755
|
+
sortTemporallyAscending(users);
|
|
756
|
+
return users;
|
|
757
|
+
}
|
|
758
|
+
catch (error) {
|
|
759
|
+
throw toApiError(`Failed to get users`, error);
|
|
760
|
+
}
|
|
761
|
+
}
|
|
748
762
|
}
|
|
749
763
|
exports.MablApiClient = MablApiClient;
|
|
750
764
|
function sortTemporallyAscending(entities) {
|
|
@@ -32,11 +32,11 @@ class MablApiClientFactory {
|
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
static async createApiClient(opts) {
|
|
35
|
-
const {
|
|
36
|
-
.mabl;
|
|
35
|
+
const { mabl } = (await cliConfigProvider_1.CliConfigProvider.getCliConfig()).http;
|
|
37
36
|
const optsFromCliHttpConfig = {
|
|
38
|
-
proxyUrl: proxyHost,
|
|
39
|
-
sslVerify,
|
|
37
|
+
proxyUrl: mabl.proxyHost,
|
|
38
|
+
sslVerify: mabl.sslVerify,
|
|
39
|
+
proxyType: mabl.proxyType,
|
|
40
40
|
};
|
|
41
41
|
if (opts) {
|
|
42
42
|
return new mablApiClient_1.MablApiClient({
|
|
@@ -68,6 +68,7 @@ class MablApiClientFactory {
|
|
|
68
68
|
token: accessToken,
|
|
69
69
|
proxyUrl: httpConfig.proxyHost,
|
|
70
70
|
sslVerify: httpConfig.sslVerify,
|
|
71
|
+
proxyType: httpConfig.proxyType,
|
|
71
72
|
});
|
|
72
73
|
}
|
|
73
74
|
static throwUserAuthTypeError() {
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.BrowserLauncherFactory = void 0;
|
|
7
7
|
const playwrightBrowserLauncher_1 = require("./playwrightBrowserLauncher/playwrightBrowserLauncher");
|
|
8
|
-
const
|
|
8
|
+
const types_1 = require("./types");
|
|
9
9
|
const logUtils_1 = require("../util/logUtils");
|
|
10
10
|
const loggingProvider_1 = require("../providers/logging/loggingProvider");
|
|
11
11
|
const chalk_1 = __importDefault(require("chalk"));
|
|
@@ -14,12 +14,12 @@ class BrowserLauncherFactory {
|
|
|
14
14
|
var _a;
|
|
15
15
|
return (_a = process.env.MABL_RUNNER) === null || _a === void 0 ? void 0 : _a.toLowerCase();
|
|
16
16
|
}
|
|
17
|
-
static createRunner(runnerType =
|
|
17
|
+
static createRunner(runnerType = types_1.RunnerType.Playwright, loggerFunc) {
|
|
18
18
|
const runnerFromEnv = BrowserLauncherFactory.getRunnerFromEnvironment();
|
|
19
19
|
const runner = runnerFromEnv ? runnerFromEnv : runnerType;
|
|
20
20
|
loggerFunc =
|
|
21
21
|
loggerFunc !== null && loggerFunc !== void 0 ? loggerFunc : ((line) => (0, logUtils_1.logCliOutput)(loggingProvider_1.LogLevel.Info, line));
|
|
22
|
-
if (runner ===
|
|
22
|
+
if (runner === types_1.RunnerType.Playwright) {
|
|
23
23
|
loggerFunc(chalk_1.default.cyan(`Browser launcher:`, chalk_1.default.magenta('Playwright')));
|
|
24
24
|
return new playwrightBrowserLauncher_1.PlaywrightBrowserLauncher();
|
|
25
25
|
}
|
|
@@ -31,9 +31,9 @@ const events_1 = __importDefault(require("events"));
|
|
|
31
31
|
const playwright = __importStar(require("@playwright/test"));
|
|
32
32
|
const browserLauncher_1 = require("../browserLauncher");
|
|
33
33
|
const playwrightPage_1 = require("./playwrightPage");
|
|
34
|
+
const types_1 = require("../types");
|
|
34
35
|
const path_1 = __importDefault(require("path"));
|
|
35
36
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
36
|
-
const runnerType_1 = require("../runnerType");
|
|
37
37
|
class PlaywrightBrowser extends events_1.default {
|
|
38
38
|
constructor(defaultContext, downloadDirectory, browserWSEndpoint, disableFocusEmulation) {
|
|
39
39
|
super();
|
|
@@ -61,7 +61,7 @@ class PlaywrightBrowser extends events_1.default {
|
|
|
61
61
|
return browser;
|
|
62
62
|
}
|
|
63
63
|
getRunnerType() {
|
|
64
|
-
return
|
|
64
|
+
return types_1.RunnerType.Playwright;
|
|
65
65
|
}
|
|
66
66
|
makeCdpCall(method, paramArgs) {
|
|
67
67
|
return this.cdpSession.send(method, paramArgs);
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PlaywrightBrowserLauncher = void 0;
|
|
4
4
|
const test_1 = require("@playwright/test");
|
|
5
|
+
const browserTypes_1 = require("../../commands/browserTypes");
|
|
6
|
+
const loggingProvider_1 = require("../../providers/logging/loggingProvider");
|
|
5
7
|
const playwrightBrowser_1 = require("./playwrightBrowser");
|
|
8
|
+
const simplePlaywrightLogger_1 = require("./simplePlaywrightLogger");
|
|
6
9
|
const BROWSER_LAUNCH_TIMEOUT_MS = 60000;
|
|
7
10
|
class PlaywrightBrowserLauncher {
|
|
8
11
|
async connect(options, currentDownloadPath) {
|
|
@@ -10,7 +13,7 @@ class PlaywrightBrowserLauncher {
|
|
|
10
13
|
return playwrightBrowser_1.PlaywrightBrowser.create(browser.contexts()[0], currentDownloadPath, options.browserWSEndpoint);
|
|
11
14
|
}
|
|
12
15
|
async launch(options) {
|
|
13
|
-
var _a, _b, _c;
|
|
16
|
+
var _a, _b, _c, _d;
|
|
14
17
|
const viewport = options.defaultDeviceDescriptor
|
|
15
18
|
? {
|
|
16
19
|
width: options.defaultDeviceDescriptor.width,
|
|
@@ -18,13 +21,26 @@ class PlaywrightBrowserLauncher {
|
|
|
18
21
|
}
|
|
19
22
|
:
|
|
20
23
|
null;
|
|
24
|
+
const playwrightLogger = options.providerLogger
|
|
25
|
+
? simplePlaywrightLogger_1.SimplePlaywrightLogger.createWarningLogger(options.providerLogger)
|
|
26
|
+
: undefined;
|
|
27
|
+
if (!options.userDataDir) {
|
|
28
|
+
loggingProvider_1.logger.error('User data directory is required to launch a persistent chromium context and was not provided with LaunchOptions [{}]', options);
|
|
29
|
+
throw new Error('User data directory is required to launch a persistent chromium context');
|
|
30
|
+
}
|
|
31
|
+
if (!options.downloadPath) {
|
|
32
|
+
loggingProvider_1.logger.error('Download path is required to launch a persistent chromium context and was not provided with LaunchOptions [{}]', options);
|
|
33
|
+
throw new Error('Download path is required to launch a persistent chromium context and was not provided with LaunchOptions');
|
|
34
|
+
}
|
|
21
35
|
const defaultContext = await test_1.chromium.launchPersistentContext(options.userDataDir, {
|
|
22
36
|
acceptDownloads: true,
|
|
23
37
|
args: options.args,
|
|
24
38
|
bypassCSP: options.bypassContentSecurityPolicy,
|
|
39
|
+
channel: browserTypes_1.SupportedBrowserTypeProperties[options.browserType]
|
|
40
|
+
.browserReleaseChannel,
|
|
25
41
|
deviceScaleFactor: (_a = options.defaultDeviceDescriptor) === null || _a === void 0 ? void 0 : _a.deviceScaleFactor,
|
|
26
42
|
downloadsPath: options.downloadPath,
|
|
27
|
-
executablePath: options.
|
|
43
|
+
executablePath: options.browserPath,
|
|
28
44
|
extraHTTPHeaders: options.extraHttpHeaders,
|
|
29
45
|
hasTouch: (_b = options.defaultDeviceDescriptor) === null || _b === void 0 ? void 0 : _b.hasTouch,
|
|
30
46
|
headless: options.headless,
|
|
@@ -32,9 +48,10 @@ class PlaywrightBrowserLauncher {
|
|
|
32
48
|
ignoreDefaultArgs: options.ignoreDefaultArgs,
|
|
33
49
|
ignoreHTTPSErrors: true,
|
|
34
50
|
isMobile: (_c = options.defaultDeviceDescriptor) === null || _c === void 0 ? void 0 : _c.isMobile,
|
|
51
|
+
logger: playwrightLogger,
|
|
35
52
|
proxy: options.proxy,
|
|
36
53
|
timeout: BROWSER_LAUNCH_TIMEOUT_MS,
|
|
37
|
-
userAgent: options.userAgent,
|
|
54
|
+
userAgent: (_d = options.userAgent) !== null && _d !== void 0 ? _d : options.defaultUserAgent,
|
|
38
55
|
viewport,
|
|
39
56
|
});
|
|
40
57
|
return playwrightBrowser_1.PlaywrightBrowser.create(defaultContext, options.downloadPath, '', options.disableFocusEmulation);
|
|
@@ -305,26 +305,29 @@ class PlaywrightElementHandle extends PlaywrightJsHandle {
|
|
|
305
305
|
return (0, pureUtil_1.isNullish)(result) ? undefined : result;
|
|
306
306
|
}
|
|
307
307
|
async getElementText() {
|
|
308
|
+
const innerText = await this.getInnerText();
|
|
309
|
+
return innerText ? innerText : this.getSlotText();
|
|
310
|
+
}
|
|
311
|
+
async getInnerText() {
|
|
312
|
+
const result = await this.element.evaluate((el) => el.innerText);
|
|
313
|
+
return (0, pureUtil_1.isNullish)(result) ? undefined : result;
|
|
314
|
+
}
|
|
315
|
+
async getSlotText() {
|
|
308
316
|
const result = await this.element.evaluate((el) => {
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
if (slots.length !== 1) {
|
|
313
|
-
return '';
|
|
314
|
-
}
|
|
315
|
-
const textNode = slots
|
|
316
|
-
.item(0)
|
|
317
|
-
.assignedNodes()
|
|
318
|
-
.find((node) => node.nodeType === Node.TEXT_NODE);
|
|
319
|
-
return textNode ? textNode.data : '';
|
|
317
|
+
const slots = el.querySelectorAll('slot');
|
|
318
|
+
if (slots.length !== 1) {
|
|
319
|
+
return '';
|
|
320
320
|
}
|
|
321
|
-
|
|
321
|
+
const textNode = slots
|
|
322
|
+
.item(0)
|
|
323
|
+
.assignedNodes()
|
|
324
|
+
.find((node) => node.nodeType === Node.TEXT_NODE);
|
|
325
|
+
return textNode === null || textNode === void 0 ? void 0 : textNode.data;
|
|
322
326
|
});
|
|
323
327
|
return (0, pureUtil_1.isNullish)(result) ? undefined : result;
|
|
324
328
|
}
|
|
325
|
-
async
|
|
326
|
-
|
|
327
|
-
return (0, pureUtil_1.isNullish)(result) ? undefined : result;
|
|
329
|
+
async isInShadowRoot() {
|
|
330
|
+
return this.element.evaluate((el) => el.getRootNode().nodeName === '#document-fragment');
|
|
328
331
|
}
|
|
329
332
|
getActionTimeout(options) {
|
|
330
333
|
var _a;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SimplePlaywrightLogger = void 0;
|
|
4
|
+
class SimplePlaywrightLogger {
|
|
5
|
+
constructor(logger, severityAllowList) {
|
|
6
|
+
this.logger = logger;
|
|
7
|
+
this.severityAllowList = severityAllowList;
|
|
8
|
+
}
|
|
9
|
+
static createWarningLogger(logger) {
|
|
10
|
+
return new SimplePlaywrightLogger(logger, new Set(['error', 'warning']));
|
|
11
|
+
}
|
|
12
|
+
isEnabled(_name, severity) {
|
|
13
|
+
return this.severityAllowList.has(severity);
|
|
14
|
+
}
|
|
15
|
+
log(name, severity, message, args, _hints) {
|
|
16
|
+
const msg = `[Playwright:${name}:${severity}] ${message} ${args}`;
|
|
17
|
+
switch (severity) {
|
|
18
|
+
case 'error':
|
|
19
|
+
this.logger.error(msg);
|
|
20
|
+
break;
|
|
21
|
+
case 'warning':
|
|
22
|
+
this.logger.warn(msg);
|
|
23
|
+
break;
|
|
24
|
+
case 'info':
|
|
25
|
+
this.logger.info(msg);
|
|
26
|
+
break;
|
|
27
|
+
case 'verbose':
|
|
28
|
+
this.logger.verbose(msg);
|
|
29
|
+
break;
|
|
30
|
+
default:
|
|
31
|
+
this.logger.info(msg);
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.SimplePlaywrightLogger = SimplePlaywrightLogger;
|
package/browserLauncher/types.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WaitForOptions = exports.LifecycleEvent = exports.DefaultTimeouts = void 0;
|
|
3
|
+
exports.WaitForOptions = exports.LifecycleEvent = exports.RunnerType = exports.DefaultTimeouts = void 0;
|
|
4
4
|
class DefaultTimeouts {
|
|
5
5
|
}
|
|
6
6
|
exports.DefaultTimeouts = DefaultTimeouts;
|
|
7
7
|
DefaultTimeouts.defaultTrialTimeoutMs = 5000;
|
|
8
8
|
DefaultTimeouts.defaultWaitTimeoutMs = 5000;
|
|
9
9
|
DefaultTimeouts.defaultActionTimeoutMs = 0;
|
|
10
|
+
var RunnerType;
|
|
11
|
+
(function (RunnerType) {
|
|
12
|
+
RunnerType["Playwright"] = "playwright";
|
|
13
|
+
})(RunnerType = exports.RunnerType || (exports.RunnerType = {}));
|
|
10
14
|
var LifecycleEvent;
|
|
11
15
|
(function (LifecycleEvent) {
|
|
12
16
|
LifecycleEvent["DomContentLoaded"] = "domcontentloaded";
|
package/cli.js
CHANGED
package/commands/browserTypes.js
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var
|
|
5
|
-
(function (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
exports.DefaultBrowserProperties = exports.SupportedBrowserTypeProperties = exports.BrowserType = void 0;
|
|
4
|
+
var BrowserType;
|
|
5
|
+
(function (BrowserType) {
|
|
6
|
+
BrowserType["Chrome"] = "chrome";
|
|
7
|
+
BrowserType["Edge"] = "edge";
|
|
8
|
+
BrowserType["Firefox"] = "firefox";
|
|
9
|
+
BrowserType["InternetExplorer"] = "internet_explorer";
|
|
10
|
+
BrowserType["Safari"] = "safari";
|
|
11
|
+
})(BrowserType = exports.BrowserType || (exports.BrowserType = {}));
|
|
12
|
+
exports.SupportedBrowserTypeProperties = {
|
|
13
|
+
chrome: { browserName: 'chrome', browserReleaseChannel: 'chrome' },
|
|
14
|
+
edge: { browserName: 'edge', browserReleaseChannel: 'msedge' },
|
|
15
|
+
firefox: { browserName: 'firefox', browserReleaseChannel: 'firefox' },
|
|
16
|
+
safari: {
|
|
17
|
+
browserName: 'safari',
|
|
18
|
+
browserReleaseChannel: 'webkit',
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
exports.DefaultBrowserProperties = exports.SupportedBrowserTypeProperties.chrome;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isValidProxyMode = exports.proxyModes = exports.validConfigKeyChoices = exports.configKeys = void 0;
|
|
3
|
+
exports.isValidProxyType = exports.isValidProxyMode = exports.proxyTypes = exports.proxyModes = exports.validConfigKeyChoices = exports.configKeys = void 0;
|
|
4
4
|
exports.configKeys = Object.freeze({
|
|
5
5
|
browserPath: 'browser.path',
|
|
6
6
|
enableSourceControlMetadataCollection: 'alpha.scm_metadata.enable',
|
|
@@ -8,6 +8,7 @@ exports.configKeys = Object.freeze({
|
|
|
8
8
|
proxy: 'http.proxy',
|
|
9
9
|
sslVerify: 'http.sslVerify',
|
|
10
10
|
proxyMode: 'http.proxyMode',
|
|
11
|
+
proxyType: 'http.proxyType',
|
|
11
12
|
});
|
|
12
13
|
exports.validConfigKeyChoices = Object.values(exports.configKeys);
|
|
13
14
|
exports.proxyModes = [
|
|
@@ -16,7 +17,12 @@ exports.proxyModes = [
|
|
|
16
17
|
'all',
|
|
17
18
|
'none',
|
|
18
19
|
];
|
|
20
|
+
exports.proxyTypes = ['legacy', 'current'];
|
|
19
21
|
function isValidProxyMode(value) {
|
|
20
22
|
return exports.proxyModes.indexOf(value) !== -1;
|
|
21
23
|
}
|
|
22
24
|
exports.isValidProxyMode = isValidProxyMode;
|
|
25
|
+
function isValidProxyType(value) {
|
|
26
|
+
return exports.proxyTypes.indexOf(value) !== -1;
|
|
27
|
+
}
|
|
28
|
+
exports.isValidProxyType = isValidProxyType;
|
|
@@ -55,6 +55,12 @@ async function setConfig(parsed) {
|
|
|
55
55
|
}
|
|
56
56
|
await cliConfigProvider_1.CliConfigProvider.setConfigProperty(key, value);
|
|
57
57
|
break;
|
|
58
|
+
case configKeys_1.configKeys.proxyType:
|
|
59
|
+
if (!(0, configKeys_1.isValidProxyType)(value)) {
|
|
60
|
+
throw new Error(`Invalid proxy type. The value must be one of ${JSON.stringify(configKeys_1.proxyTypes)}`);
|
|
61
|
+
}
|
|
62
|
+
await cliConfigProvider_1.CliConfigProvider.setConfigProperty(key, value);
|
|
63
|
+
break;
|
|
58
64
|
default:
|
|
59
65
|
throw new Error(`<${exports.configKeyCommandArg}> value not one of supported types: ${JSON.stringify(configKeys_1.validConfigKeyChoices)}`);
|
|
60
66
|
}
|
package/commands/constants.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.BrowserTypeSelections = exports.DefaultBrowserType = exports.DefaultBranchName = exports.DefaultOutputFormatChoices = exports.DetailLevelFormats = exports.ReporterOptions = exports.OutputFormats = exports.CommandArgAliases = exports.CommandArgBrowserEnableExtensions = exports.CommandArgBrowserIgnoreCertificateErrors = exports.CommandArgBrowserDisableIsolation = exports.ListTimeFormat = exports.CommandArgReporterOptions = exports.CommandArgReporter = exports.CommandArgWorkspaceId = exports.CommandArgVersion = exports.CommandArgVariables = exports.CommandArgUrlApi = void 0;
|
|
3
|
+
exports.CommandArgUrl = exports.CommandArgTrainerVersion = exports.CommandArgTo = exports.CommandArgSilent = exports.CommandArgRevision = exports.CommandArgMaxHeartbeatAge = exports.CommandArgPlanId = exports.CommandArgContentTypes = exports.CommandArgPreview = exports.CommandArgOutputFilePath = exports.CommandArgOutput = exports.CommandArgNoPrompt = exports.CommandArgPrompt = exports.CommandArgPortNumber = exports.CommandArgName = exports.CommandArgMablBranchChangesOnly = exports.CommandArgMablBranch = exports.CommandArgMablAutoLogin = exports.CommandArgMablAutoBranch = exports.CommandArgLinkBypass = exports.CommandArgLinkLabel = exports.CommandArgLimitOutput = exports.CommandArgLabels = exports.CommandArgLabelsInclude = exports.CommandArgLabelsExclude = exports.CommandArgTestInteractionSpeed = exports.CommandArgTestRunId = exports.CommandArgTestFile = exports.CommandArgId = exports.CommandArgUserAgent = exports.CommandArgHttpHeaders = exports.CommandArgHelp = exports.CommandArgFromPlanId = exports.CommandArgFrom = exports.CommandArgFormat = exports.CommandArgFastFailure = exports.CommandArgOverrideEnvironmentId = exports.CommandArgEnvironmentId = exports.CommandArgEnableLink = exports.CommandArgDetailLevel = exports.CommandArgDescription = exports.CommandArgDeploymentId = exports.CommandArgDecrypt = exports.CommandArgDataTables = exports.CommandArgCredentials = exports.CommandArgBasicAuthCredentials = exports.CommandArgBrowsers = exports.CommandArgBrowser = exports.CommandArgApplicationId = exports.CommandArgApiKey = void 0;
|
|
4
|
+
exports.BrowserTypeSelections = exports.DefaultBrowserType = exports.DefaultBranchName = exports.DefaultOutputFormatChoices = exports.DetailLevelFormats = exports.ReporterOptions = exports.OutputFormats = exports.CommandArgAliases = exports.CommandArgBrowserEnableExtensions = exports.CommandArgBrowserIgnoreCertificateErrors = exports.CommandArgBrowserDisableIsolation = exports.ListTimeFormat = exports.CommandArgReporterOptions = exports.CommandArgReporter = exports.CommandArgWorkspaceId = exports.CommandArgVersion = exports.CommandArgVariables = exports.CommandArgUrlApi = exports.CommandArgUrlApp = void 0;
|
|
5
5
|
const browserTypes_1 = require("./browserTypes");
|
|
6
6
|
exports.CommandArgApiKey = 'api-key';
|
|
7
7
|
exports.CommandArgApplicationId = 'application-id';
|
|
8
|
+
exports.CommandArgBrowser = 'browser';
|
|
8
9
|
exports.CommandArgBrowsers = 'browsers';
|
|
9
10
|
exports.CommandArgBasicAuthCredentials = 'basic-auth-credentials-id';
|
|
10
11
|
exports.CommandArgCredentials = 'credentials-id';
|
|
@@ -107,10 +108,11 @@ exports.DefaultOutputFormatChoices = [
|
|
|
107
108
|
OutputFormats.Yaml,
|
|
108
109
|
];
|
|
109
110
|
exports.DefaultBranchName = 'master';
|
|
110
|
-
exports.DefaultBrowserType = browserTypes_1.
|
|
111
|
+
exports.DefaultBrowserType = browserTypes_1.BrowserType.Chrome;
|
|
111
112
|
exports.BrowserTypeSelections = [
|
|
112
|
-
browserTypes_1.
|
|
113
|
-
browserTypes_1.
|
|
114
|
-
browserTypes_1.
|
|
115
|
-
browserTypes_1.
|
|
113
|
+
browserTypes_1.BrowserType.Chrome,
|
|
114
|
+
browserTypes_1.BrowserType.Edge,
|
|
115
|
+
browserTypes_1.BrowserType.Firefox,
|
|
116
|
+
browserTypes_1.BrowserType.InternetExplorer,
|
|
117
|
+
browserTypes_1.BrowserType.Safari,
|
|
116
118
|
].map((browser) => browser.toString());
|