testcafe 1.20.2-alpha.1 → 2.0.0-rc.3
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/lib/api/request-hooks/assert-type.js +2 -2
- package/lib/api/request-hooks/hook.js +2 -2
- package/lib/api/request-hooks/request-logger.js +2 -2
- package/lib/api/skip-js-errors/index.js +62 -0
- package/lib/api/structure/base-unit.js +2 -2
- package/lib/api/structure/fixture.js +13 -13
- package/lib/api/structure/test.js +18 -17
- package/lib/api/structure/testing-unit.js +26 -16
- package/lib/api/test-controller/assertion.js +5 -5
- package/lib/api/test-controller/execution-context.js +2 -2
- package/lib/api/test-controller/index.js +33 -30
- package/lib/api/test-controller/proxy.js +2 -2
- package/lib/api/test-page-url.js +4 -4
- package/lib/api/test-run-tracker.js +2 -2
- package/lib/api/wrap-test-function.js +3 -3
- package/lib/assertions/executor.js +4 -4
- package/lib/assertions/get-fn.js +3 -3
- package/lib/browser/connection/gateway.js +18 -18
- package/lib/browser/connection/get-hints.js +8 -8
- package/lib/browser/connection/index.js +11 -11
- package/lib/browser/connection/remotes-queue.js +4 -4
- package/lib/browser/provider/built-in/dedicated/base.js +6 -6
- package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/index.js +10 -10
- package/lib/browser/provider/built-in/dedicated/chrome/config.js +17 -17
- package/lib/browser/provider/built-in/dedicated/chrome/create-temp-profile.js +4 -4
- package/lib/browser/provider/built-in/dedicated/chrome/index.js +6 -6
- package/lib/browser/provider/built-in/dedicated/chrome/local-chrome.js +6 -6
- package/lib/browser/provider/built-in/dedicated/chrome/runtime-info.js +4 -4
- package/lib/browser/provider/built-in/dedicated/edge/runtime-info.js +2 -2
- package/lib/browser/provider/built-in/dedicated/firefox/config.js +8 -8
- package/lib/browser/provider/built-in/dedicated/firefox/create-temp-profile.js +3 -3
- package/lib/browser/provider/built-in/dedicated/firefox/index.js +5 -5
- package/lib/browser/provider/built-in/dedicated/firefox/local-firefox.js +2 -2
- package/lib/browser/provider/built-in/dedicated/firefox/marionette-client/index.js +7 -7
- package/lib/browser/provider/built-in/dedicated/firefox/runtime-info.js +3 -3
- package/lib/browser/provider/built-in/path.js +2 -2
- package/lib/browser/provider/built-in/remote.js +3 -3
- package/lib/browser/provider/index.js +5 -5
- package/lib/browser/provider/plugin-host.js +5 -6
- package/lib/browser/provider/pool.js +4 -4
- package/lib/browser/provider/utils/argument-parsing.js +3 -3
- package/lib/browser/provider/utils/browser-starter.js +2 -2
- package/lib/cli/argument-parser/index.js +52 -41
- package/lib/cli/argument-parser/parse-utils.js +2 -2
- package/lib/cli/authentication-helper.js +3 -3
- package/lib/cli/cli.js +8 -8
- package/lib/cli/correct-browsers-and-sources.js +2 -2
- package/lib/cli/index.js +2 -2
- package/lib/cli/log.js +3 -3
- package/lib/cli/remotes-wizard.js +3 -3
- package/lib/client/automation/index.js +120 -34
- package/lib/client/automation/index.min.js +1 -1
- package/lib/client/browser/idle-page/index.js +321 -317
- package/lib/client/browser/service-worker.js +244 -290
- package/lib/client/core/deps/hammerhead.js +12 -4
- package/lib/client/core/index.js +145 -55
- package/lib/client/core/index.min.js +1 -1
- package/lib/client/core/utils/dom.js +33 -28
- package/lib/client/core/utils/position.js +18 -14
- package/lib/client/core/utils/style.js +8 -4
- package/lib/client/driver/command-executors/client-functions/selector-executor/filter.js +5 -5
- package/lib/client/driver/command-executors/client-functions/selector-executor/utils.js +3 -3
- package/lib/client/driver/deps/hammerhead.js +12 -4
- package/lib/client/driver/deps/testcafe-core.js +12 -4
- package/lib/client/driver/deps/testcafe-ui.js +12 -4
- package/lib/client/driver/index.js +654 -630
- package/lib/client/driver/index.min.js +1 -1
- package/lib/client/driver/status.js +2 -2
- package/lib/client/ui/index.js +10 -8
- package/lib/client/ui/index.min.js +1 -1
- package/lib/client-functions/builder-symbol.js +1 -2
- package/lib/client-functions/client-function-builder.js +12 -12
- package/lib/client-functions/replicator.js +2 -2
- package/lib/client-functions/selector-api-execution-mode.js +2 -2
- package/lib/client-functions/selectors/add-api.js +48 -48
- package/lib/client-functions/selectors/selector-builder.js +17 -17
- package/lib/compiler/compile-client-function.js +6 -6
- package/lib/compiler/index.js +9 -9
- package/lib/compiler/test-file/api-based.js +8 -8
- package/lib/compiler/test-file/base.js +6 -6
- package/lib/compiler/test-file/exportble-lib-path.js +2 -2
- package/lib/compiler/test-file/formats/coffeescript/compiler.js +2 -2
- package/lib/compiler/test-file/formats/coffeescript/get-test-list.js +2 -2
- package/lib/compiler/test-file/formats/es-next/compiler.js +4 -4
- package/lib/compiler/test-file/formats/es-next/get-test-list.js +4 -4
- package/lib/compiler/test-file/formats/raw.js +2 -2
- package/lib/compiler/test-file/formats/typescript/compiler.js +11 -11
- package/lib/compiler/test-file/formats/typescript/get-test-list.js +3 -3
- package/lib/compiler/test-file/test-file-parser-base.js +3 -3
- package/lib/configuration/configuration-base.js +15 -15
- package/lib/configuration/interfaces.js +1 -1
- package/lib/configuration/skip-js-errors-option-names.js +11 -0
- package/lib/configuration/testcafe-configuration.js +21 -16
- package/lib/configuration/types.js +1 -1
- package/lib/configuration/typescript-configuration.js +4 -4
- package/lib/custom-client-scripts/assert-type.js +2 -2
- package/lib/custom-client-scripts/client-script.js +6 -6
- package/lib/custom-client-scripts/get-code.js +2 -2
- package/lib/custom-client-scripts/routing.js +3 -3
- package/lib/custom-client-scripts/utils.js +3 -3
- package/lib/dashboard/connector.js +4 -4
- package/lib/dashboard/get-default-project-link.js +2 -2
- package/lib/dashboard/index.js +26 -26
- package/lib/errors/create-stack-filter.js +2 -2
- package/lib/errors/error-list.js +2 -2
- package/lib/errors/get-callsite.js +2 -2
- package/lib/errors/is-internal-stack-frame.js +5 -5
- package/lib/errors/process-test-fn-error.js +2 -2
- package/lib/errors/runtime/index.js +10 -10
- package/lib/errors/runtime/templates.js +5 -2
- package/lib/errors/runtime/type-assertions.js +6 -6
- package/lib/errors/stack-cleaning-hook.js +2 -2
- package/lib/errors/test-run/formattable-adapter.js +7 -7
- package/lib/errors/test-run/index.js +25 -5
- package/lib/errors/test-run/render-error-template/index.js +6 -6
- package/lib/errors/test-run/render-error-template/utils.js +2 -2
- package/lib/errors/test-run/templates.js +40 -31
- package/lib/errors/test-run/utils.js +7 -7
- package/lib/errors/types.js +5 -1
- package/lib/index.js +1 -1
- package/lib/live/file-watcher/index.js +2 -2
- package/lib/live/keyboard-observer.js +3 -3
- package/lib/live/test-run-controller.js +3 -3
- package/lib/live/test-run.js +3 -2
- package/lib/live/test-runner.js +2 -2
- package/lib/load-assets.js +2 -2
- package/lib/notifications/add-rendered-warning.js +4 -4
- package/lib/notifications/debug-logger.js +6 -6
- package/lib/notifications/deprecated.js +2 -2
- package/lib/notifications/information-message.js +4 -3
- package/lib/proxyless/resource-injector.js +4 -4
- package/lib/reporter/command/command-formatter.js +4 -4
- package/lib/reporter/index.js +10 -10
- package/lib/reporter/plugin-host.js +7 -7
- package/lib/role/index.js +8 -8
- package/lib/role/role.js +2 -2
- package/lib/runner/bootstrapper.js +20 -20
- package/lib/runner/browser-job.js +3 -3
- package/lib/runner/browser-set.js +12 -12
- package/lib/runner/fixture-hook-controller.js +5 -5
- package/lib/runner/index.js +43 -33
- package/lib/runner/task/index.js +10 -6
- package/lib/runner/test-run-hook-controller.js +5 -5
- package/lib/runner/tested-app.js +7 -7
- package/lib/screenshots/capturer.js +17 -17
- package/lib/screenshots/crop.js +8 -8
- package/lib/screenshots/index.js +6 -10
- package/lib/screenshots/utils.js +4 -4
- package/lib/services/compiler/host.js +8 -8
- package/lib/services/compiler/service.js +13 -13
- package/lib/services/compiler/test-run-proxy.js +8 -8
- package/lib/services/serialization/replicator/transforms/callsite-record-transform.js +2 -2
- package/lib/services/serialization/replicator/transforms/command-base-trasform/command-constructors.js +2 -1
- package/lib/services/serialization/replicator/transforms/command-base-trasform/index.js +3 -3
- package/lib/services/serialization/replicator/transforms/raw-command-callsite-record-transform.js +2 -2
- package/lib/services/serialization/test-structure.js +4 -4
- package/lib/services/utils/ipc/interfaces.js +1 -3
- package/lib/services/utils/ipc/io.js +3 -3
- package/lib/services/utils/ipc/message.js +2 -2
- package/lib/services/utils/ipc/proxy.js +4 -4
- package/lib/services/utils/ipc/transport.js +2 -2
- package/lib/shared/errors/index.js +9 -2
- package/lib/shared/errors/selector-error-ctor-callback.js +7 -3
- package/lib/test-run/bookmark.js +1 -1
- package/lib/test-run/browser-manipulation-queue.js +3 -3
- package/lib/test-run/commands/actions.js +66 -46
- package/lib/test-run/commands/assertion.js +3 -3
- package/lib/test-run/commands/base.js +2 -2
- package/lib/test-run/commands/browser-manipulation.js +8 -8
- package/lib/test-run/commands/observation.js +4 -4
- package/lib/test-run/commands/options.js +27 -12
- package/lib/test-run/commands/type.js +2 -1
- package/lib/test-run/commands/utils.js +3 -2
- package/lib/test-run/commands/validations/argument.js +19 -10
- package/lib/test-run/commands/validations/factories.js +10 -2
- package/lib/test-run/commands/validations/initializers.js +4 -4
- package/lib/test-run/debug-log.js +4 -4
- package/lib/test-run/execute-js-expression/index.js +4 -4
- package/lib/test-run/index.js +48 -41
- package/lib/test-run/request/create-request-options.js +9 -9
- package/lib/test-run/request/process-response-data.js +2 -2
- package/lib/test-run/request/send.js +5 -5
- package/lib/testcafe.js +8 -4
- package/lib/utils/check-file-path.js +2 -2
- package/lib/utils/check-url.js +2 -2
- package/lib/utils/correct-file-path.js +4 -4
- package/lib/utils/delegated-api.js +1 -1
- package/lib/utils/detect-ffmpeg.js +3 -3
- package/lib/utils/diff/colors.js +2 -2
- package/lib/utils/diff/index.js +11 -7
- package/lib/utils/diff/util.js +5 -5
- package/lib/utils/diff.js +4 -4
- package/lib/utils/escape-user-agent.js +2 -2
- package/lib/utils/execute-fn-with-timeout.js +2 -2
- package/lib/utils/get-browser.js +2 -2
- package/lib/utils/get-filter-fn.js +4 -4
- package/lib/utils/get-options/base.js +2 -2
- package/lib/utils/get-options/compiler.js +2 -2
- package/lib/utils/get-options/dashboard.js +2 -2
- package/lib/utils/get-options/get-assertion-timeout.js +1 -1
- package/lib/utils/get-options/index.js +4 -2
- package/lib/utils/get-options/meta.js +2 -2
- package/lib/utils/get-options/quarantine.js +8 -6
- package/lib/utils/get-options/screenshot.js +2 -2
- package/lib/utils/get-options/skip-js-errors.js +35 -0
- package/lib/utils/get-options/ssl.js +6 -6
- package/lib/utils/get-options/video.js +2 -2
- package/lib/utils/is-password-input.js +1 -1
- package/lib/utils/log-entry.js +2 -2
- package/lib/utils/make-reg-exp.js +19 -6
- package/lib/utils/moment-loader.js +2 -2
- package/lib/utils/parse-file-list.js +7 -7
- package/lib/utils/path-pattern.js +4 -4
- package/lib/utils/prepare-reporters.js +2 -2
- package/lib/utils/prerender-callsite.js +6 -6
- package/lib/utils/process.js +7 -7
- package/lib/utils/promisified-functions.js +14 -14
- package/lib/utils/raw-command-callsite-record.js +2 -2
- package/lib/utils/resolve-path-relatively-cwd.js +2 -2
- package/lib/utils/string.js +3 -3
- package/lib/utils/temp-directory/cleanup-process/index.js +6 -6
- package/lib/utils/temp-directory/cleanup-process/worker.js +4 -4
- package/lib/utils/temp-directory/index.js +6 -6
- package/lib/utils/temp-directory/lockfile.js +2 -2
- package/lib/video-recorder/process.js +6 -6
- package/lib/video-recorder/recorder.js +9 -9
- package/lib/video-recorder/test-run-video-recorder.js +2 -2
- package/package.json +8 -7
- package/ts-defs/index.d.ts +46 -7
- package/ts-defs/selectors.d.ts +39 -0
- package/ts-defs/testcafe-scripts.d.ts +39 -0
package/lib/cli/cli.js
CHANGED
|
@@ -15,7 +15,7 @@ const __1 = __importDefault(require("../"));
|
|
|
15
15
|
const debug_1 = __importDefault(require("debug"));
|
|
16
16
|
const log_entry_1 = __importDefault(require("../utils/log-entry"));
|
|
17
17
|
const dashboard_1 = __importDefault(require("../dashboard"));
|
|
18
|
-
const LOGGER = debug_1.default('testcafe:cli');
|
|
18
|
+
const LOGGER = (0, debug_1.default)('testcafe:cli');
|
|
19
19
|
// NOTE: Load the provider pool lazily to reduce startup time
|
|
20
20
|
const lazyRequire = require('import-lazy')(require);
|
|
21
21
|
const browserProviderPool = lazyRequire('../browser/provider/pool');
|
|
@@ -61,7 +61,7 @@ async function runTests(argParser) {
|
|
|
61
61
|
const configFile = opts.configFile;
|
|
62
62
|
log_1.default.showSpinner();
|
|
63
63
|
const { hostname, ssl, dev, experimentalDebug, retryTestPages, cache, disableHttp2, v8Flags } = opts;
|
|
64
|
-
const testCafe = await __1.default({
|
|
64
|
+
const testCafe = await (0, __1.default)({
|
|
65
65
|
developmentMode: dev,
|
|
66
66
|
isCli: true,
|
|
67
67
|
hostname,
|
|
@@ -75,9 +75,9 @@ async function runTests(argParser) {
|
|
|
75
75
|
disableHttp2,
|
|
76
76
|
v8Flags,
|
|
77
77
|
});
|
|
78
|
-
const correctedBrowsersAndSources = await correct_browsers_and_sources_1.default(argParser, testCafe.configuration);
|
|
78
|
+
const correctedBrowsersAndSources = await (0, correct_browsers_and_sources_1.default)(argParser, testCafe.configuration);
|
|
79
79
|
const automatedBrowsers = correctedBrowsersAndSources.browsers;
|
|
80
|
-
const remoteBrowsers = await remotes_wizard_1.default(testCafe, argParser.remoteCount, opts.qrCode);
|
|
80
|
+
const remoteBrowsers = await (0, remotes_wizard_1.default)(testCafe, argParser.remoteCount, opts.qrCode);
|
|
81
81
|
const browsers = automatedBrowsers.concat(remoteBrowsers);
|
|
82
82
|
const sources = correctedBrowsersAndSources.sources;
|
|
83
83
|
const runner = opts.live ? testCafe.createLiveModeRunner() : testCafe.createRunner();
|
|
@@ -107,7 +107,7 @@ async function runTests(argParser) {
|
|
|
107
107
|
exit(failed);
|
|
108
108
|
}
|
|
109
109
|
async function runDashboardIntegration(state) {
|
|
110
|
-
await dashboard_1.default(state);
|
|
110
|
+
await (0, dashboard_1.default)(state);
|
|
111
111
|
exit(0);
|
|
112
112
|
}
|
|
113
113
|
async function listBrowsers(providerName) {
|
|
@@ -131,9 +131,9 @@ async function listBrowsers(providerName) {
|
|
|
131
131
|
terminationHandler.on(termination_handler_1.default.TERMINATION_LEVEL_INCREASED_EVENT, exitHandler);
|
|
132
132
|
try {
|
|
133
133
|
const argParser = new argument_parser_1.default();
|
|
134
|
-
log_entry_1.default(LOGGER, process.argv);
|
|
134
|
+
(0, log_entry_1.default)(LOGGER, process.argv);
|
|
135
135
|
await argParser.parse(process.argv);
|
|
136
|
-
log_entry_1.default(LOGGER, argParser.opts);
|
|
136
|
+
(0, log_entry_1.default)(LOGGER, argParser.opts);
|
|
137
137
|
if (argParser.isDashboardCommand)
|
|
138
138
|
await runDashboardIntegration(argParser.sendReportState);
|
|
139
139
|
else if (argParser.opts.listBrowsers)
|
|
@@ -146,4 +146,4 @@ async function listBrowsers(providerName) {
|
|
|
146
146
|
error(err);
|
|
147
147
|
}
|
|
148
148
|
})();
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS9jbGkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsK0NBQTJEO0FBQzNELDJDQUFpRDtBQUNqRCx3RUFBa0Q7QUFDbEQsZ0ZBQXVEO0FBQ3ZELGdEQUF3QjtBQUN4QixzRUFBNkM7QUFDN0Msa0dBQXVFO0FBQ3ZFLDRDQUFpQztBQUNqQyxrREFBMEI7QUFDMUIsbUVBQTBDO0FBQzFDLDZEQUFnRDtBQUVoRCxNQUFNLE1BQU0sR0FBRyxlQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7QUFFckMsNkRBQTZEO0FBQzdELE1BQU0sV0FBVyxHQUFXLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM1RCxNQUFNLG1CQUFtQixHQUFHLFdBQVcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBRXBFLElBQUksaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0FBQzdCLElBQUksZ0JBQWdCLEdBQUksS0FBSyxDQUFDO0FBQzlCLElBQUksT0FBTyxHQUFhLEtBQUssQ0FBQztBQUU5QixTQUFTLFdBQVcsQ0FBRSxnQkFBZ0I7SUFDbEMsSUFBSSxpQkFBaUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1FBQ3hDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUV4QixhQUFHLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFbEMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsYUFBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQ25EO0lBRUQsSUFBSSxPQUFPLElBQUksZ0JBQWdCLEdBQUcsQ0FBQztRQUMvQixPQUFPO0lBRVgsT0FBTyxHQUFHLElBQUksQ0FBQztJQUVmLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNaLENBQUM7QUFFRCxTQUFTLElBQUksQ0FBRSxJ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U0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEMsbUJBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpDLElBQUksU0FBUyxDQUFDLGtCQUFrQjtZQUM1QixNQUFNLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQzthQUN4RCxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWTtZQUNoQyxNQUFNLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDOztZQUVoRCxNQUFNLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUNqQztJQUNELE9BQU8sR0FBRyxFQUFFO1FBQ1IsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNkO0FBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBHZW5lcmFsRXJyb3IsIEFQSUVycm9yIH0gZnJvbSAnLi4vZXJyb3JzL3J1bnRpbWUnO1xuaW1wb3J0IHsgUlVOVElNRV9FUlJPUlMgfSBmcm9tICcuLi9lcnJvcnMvdHlwZXMnO1xuaW1wb3J0IENsaUFyZ3VtZW50UGFyc2VyIGZyb20gJy4vYXJndW1lbnQtcGFyc2VyJztcbmltcG9ydCBUZXJtaW5hdGlvbkhhbmRsZXIgZnJvbSAnLi90ZXJtaW5hdGlvbi1oYW5kbGVyJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2cnO1xuaW1wb3J0IHJlbW90ZXNXaXphcmQgZnJvbSAnLi9yZW1vdGVzLXdpemFyZCc7XG5pbXBvcnQgY29ycmVjdEJyb3dzZXJzQW5kU291cmNlcyBmcm9tICcuL2NvcnJlY3QtYnJvd3NlcnMtYW5kLXNvdXJjZXMnO1xuaW1wb3J0IGNyZWF0ZVRlc3RDYWZlIGZyb20gJy4uLyc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IGxvZ0VudHJ5IGZyb20gJy4uL3V0aWxzL2xvZy1lbnRyeSc7XG5pbXBvcnQgZGFzaGJvYXJkSW50ZWdyYXRpb24gZnJvbSAnLi4vZGFzaGJvYXJkJztcblxuY29uc3QgTE9HR0VSID0gZGVidWcoJ3Rlc3RjYWZlOmNsaScpO1xuXG4vLyBOT1RFOiBMb2FkIHRoZSBwcm92aWRlciBwb29sIGxhemlseSB0byByZWR1Y2Ugc3RhcnR1cCB0aW1lXG5jb25zdCBsYXp5UmVxdWlyZSAgICAgICAgID0gcmVxdWlyZSgnaW1wb3J0LWxhenknKShyZXF1aXJlKTtcbmNvbnN0IGJyb3dzZXJQcm92aWRlclBvb2wgPSBsYXp5UmVxdWlyZSgnLi4vYnJvd3Nlci9wcm92aWRlci9wb29sJyk7XG5cbmxldCBzaG93TWVzc2FnZU9uRXhpdCA9IHRydWU7XG5sZXQgZXhpdE1lc3NhZ2VTaG93biAgPSBmYWxzZTtcbmxldCBleGl0aW5nICAgICAgICAgICA9IGZhbHNlO1xuXG5mdW5jdGlvbiBleGl0SGFuZGxlciAodGVybWluYXRpb25MZXZlbCkge1xuICAgIGlmIChzaG93TWVzc2FnZU9uRXhpdCAmJiAhZXhpdE1lc3NhZ2VTaG93bikge1xuICAgICAgICBleGl0TWVzc2FnZVNob3duID0gdHJ1ZTtcblxuICAgICAgICBsb2cud3JpdGUoJ1N0b3BwaW5nIFRlc3RDYWZlLi4uJyk7XG5cbiAgICAgICAgcHJvY2Vzcy5vbignZXhpdCcsICgpID0+IGxvZy5oaWRlU3Bpbm5lcih0cnVlKSk7XG4gICAgfVxuXG4gICAgaWYgKGV4aXRpbmcgfHwgdGVybWluYXRpb25MZXZlbCA8IDIpXG4gICAgICAgIHJldHVybjtcblxuICAgIGV4aXRpbmcgPSB0cnVlO1xuXG4gICAgZXhpdCgwKTtcbn1cblxuZnVuY3Rpb24gZXhpdCAoY29kZSkge1xuICAgIGxvZy5oaWRlU3Bpbm5lcih0cnVlKTtcblxuICAgIC8vIE5PVEU6IGdpdmUgYSBwcm9jZXNzIHRpbWUgdG8gZmx1c2ggdGhlIG91dHB1dC5cbiAgICAvLyBJdCdzIG5lY2Vzc2FyeSBpbiBzb21lIGVudmlyb25tZW50cy5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHByb2Nlc3MuZXhpdChjb2RlKSwgMCk7XG59XG5cbmZ1bmN0aW9uIGVycm9yIChlcnIpIHtcbiAgICBsb2cuaGlkZVNwaW5uZXIoKTtcblxuICAgIGxldCBtZXNzYWdlID0gbnVsbDtcblxuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBHZW5lcmFsRXJyb3IpXG4gICAgICAgIG1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcblxuICAgIGVsc2UgaWYgKGVyciBpbnN0YW5jZW9mIEFQSUVycm9yKVxuICAgICAgICBtZXNzYWdlID0gZXJyLmNvbG9yZWRTdGFjaztcblxuICAgIGVsc2VcbiAgICAgICAgbWVzc2FnZSA9IGVyci5zdGFjaztcblxuICAgIGxvZy53cml0ZShjaGFsay5yZWQoJ0VSUk9SICcpICsgbWVzc2FnZSArICdcXG4nKTtcbiAgICBsb2cud3JpdGUoY2hhbGsuZ3JheSgnVHlwZSBcInRlc3RjYWZlIC1oXCIgZm9yIGhlbHAuJykpO1xuXG4gICAgZXhpdCgxKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcnVuVGVzdHMgKGFyZ1BhcnNlcikge1xuICAgIGNvbnN0IG9wdHMgICAgICAgID0gYXJnUGFyc2VyLm9wdHM7XG4gICAgY29uc3QgcG9ydDEgICAgICAgPSBvcHRzLnBvcnRzICYmIG9wdHMucG9ydHNbMF07XG4gICAgY29uc3QgcG9ydDIgICAgICAgPSBvcHRzLnBvcnRzICYmIG9wdHMucG9ydHNbMV07XG4gICAgY29uc3QgcHJveHkgICAgICAgPSBvcHRzLnByb3h5O1xuICAgIGNvbnN0IHByb3h5QnlwYXNzID0gb3B0cy5wcm94eUJ5cGFzcztcbiAgICBjb25zdCBjb25maWdGaWxlICA9IG9wdHMuY29uZmlnRmlsZTtcblxuICAgIGxvZy5zaG93U3Bpbm5lcigpO1xuXG4gICAgY29uc3QgeyBob3N0bmFtZSwgc3NsLCBkZXYsIGV4cGVyaW1lbnRhbERlYnVnLCByZXRyeVRlc3RQYWdlcywgY2FjaGUsIGRpc2FibGVIdHRwMiwgdjhGbGFncyB9ID0gb3B0cztcblxuICAgIGNvbnN0IHRlc3RDYWZlID0gYXdhaXQgY3JlYXRlVGVzdENhZmUoe1xuICAgICAgICBkZXZlbG9wbWVudE1vZGU6IGRldixcbiAgICAgICAgaXNDbGk6ICAgICAgICAgICB0cnVlLFxuXG4gICAgICAgIGhvc3RuYW1lLFxuICAgICAgICBwb3J0MSxcbiAgICAgICAgcG9ydDIsXG4gICAgICAgIHNzbCxcbiAgICAgICAgZXhwZXJpbWVudGFsRGVidWcsXG4gICAgICAgIHJldHJ5VGVzdFBhZ2VzLFxuICAgICAgICBjYWNoZSxcbiAgICAgICAgY29uZmlnRmlsZSxcbiAgICAgICAgZGlzYWJsZUh0dHAyLFxuICAgICAgICB2OEZsYWdzLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY29ycmVjdGVkQnJvd3NlcnNBbmRTb3VyY2VzID0gYXdhaXQgY29ycmVjdEJyb3dzZXJzQW5kU291cmNlcyhhcmdQYXJzZXIsIHRlc3RDYWZlLmNvbmZpZ3VyYXRpb24pO1xuICAgIGNvbnN0IGF1dG9tYXRlZEJyb3dzZXJzICAgICAgICAgICA9IGNvcnJlY3RlZEJyb3dzZXJzQW5kU291cmNlcy5icm93c2VycztcbiAgICBjb25zdCByZW1vdGVCcm93c2VycyAgICAgICAgICAgICAgPSBhd2FpdCByZW1vdGVzV2l6YXJkKHRlc3RDYWZlLCBhcmdQYXJzZXIucmVtb3RlQ291bnQsIG9wdHMucXJDb2RlKTtcbiAgICBjb25zdCBicm93c2VycyAgICAgICAgICAgICAgICAgICAgPSBhdXRvbWF0ZWRCcm93c2Vycy5jb25jYXQocmVtb3RlQnJvd3NlcnMpO1xuICAgIGNvbnN0IHNvdXJjZXMgICAgICAgICAgICAgICAgICAgICA9IGNvcnJlY3RlZEJyb3dzZXJzQW5kU291cmNlcy5zb3VyY2VzO1xuXG4gICAgY29uc3QgcnVubmVyID0gb3B0cy5saXZlID8gdGVzdENhZmUuY3JlYXRlTGl2ZU1vZGVSdW5uZXIoKSA6IHRlc3RDYWZlLmNyZWF0ZVJ1bm5lcigpO1xuXG4gICAgbGV0IGZhaWxlZCA9IDA7XG5cbiAgICBydW5uZXJcbiAgICAgICAgLnVzZVByb3h5KHByb3h5LCBwcm94eUJ5cGFzcylcbiAgICAgICAgLnNyYyhzb3VyY2VzKVxuICAgICAgICAudHNDb25maWdQYXRoKGFyZ1BhcnNlci5vcHRzLnRzQ29uZmlnUGF0aClcbiAgICAgICAgLmJyb3dzZXJzKGJyb3dzZXJzKVxuICAgICAgICAucmVwb3J0ZXIoYXJnUGFyc2VyLm9wdHMucmVwb3J0ZXIpXG4gICAgICAgIC5jb25jdXJyZW5jeShhcmdQYXJzZXIub3B0cy5jb25jdXJyZW5jeSlcbiAgICAgICAgLmZpbHRlcihhcmdQYXJzZXIub3B0cy5maWx0ZXIpXG4gICAgICAgIC52aWRlbyhvcHRzLnZpZGVvLCBvcHRzLnZpZGVvT3B0aW9ucywgb3B0cy52aWRlb0VuY29kaW5nT3B0aW9ucylcbiAgICAgICAgLnNjcmVlbnNob3RzKG9wdHMuc2NyZWVuc2hvdHMpXG4gICAgICAgIC5zdGFydEFwcChvcHRzLmFwcCwgb3B0cy5hcHBJbml0RGVsYXkpXG4gICAgICAgIC5jbGllbnRTY3JpcHRzKGFyZ1BhcnNlci5vcHRzLmNsaWVudFNjcmlwdHMpXG4gICAgICAgIC5jb21waWxlck9wdGlvbnMoYXJnUGFyc2VyLm9wdHMuY29tcGlsZXJPcHRpb25zKTtcblxuICAgIHJ1bm5lci5vbmNlKCdkb25lLWJvb3RzdHJhcHBpbmcnLCAoKSA9PiBsb2cuaGlkZVNwaW5uZXIoKSk7XG5cbiAgICB0cnkge1xuICAgICAgICBjb25zdCBydW5PcHRzID0gYXJnUGFyc2VyLmdldFJ1bk9wdGlvbnMoKTtcblxuICAgICAgICBmYWlsZWQgPSBhd2FpdCBydW5uZXIucnVuKHJ1bk9wdHMpO1xuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgICAgc2hvd01lc3NhZ2VPbkV4aXQgPSBmYWxzZTtcbiAgICAgICAgYXdhaXQgdGVzdENhZmUuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBleGl0KGZhaWxlZCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJ1bkRhc2hib2FyZEludGVncmF0aW9uIChzdGF0ZSkge1xuICAgIGF3YWl0IGRhc2hib2FyZEludGVncmF0aW9uKHN0YXRlKTtcblxuICAgIGV4aXQoMCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxpc3RCcm93c2VycyAocHJvdmlkZXJOYW1lKSB7XG4gICAgY29uc3QgcHJvdmlkZXIgPSBhd2FpdCBicm93c2VyUHJvdmlkZXJQb29sLmdldFByb3ZpZGVyKHByb3ZpZGVyTmFtZSk7XG5cbiAgICBpZiAoIXByb3ZpZGVyKVxuICAgICAgICB0aHJvdyBuZXcgR2VuZXJhbEVycm9yKFJVTlRJTUVfRVJST1JTLmJyb3dzZXJQcm92aWRlck5vdEZvdW5kLCBwcm92aWRlck5hbWUpO1xuXG4gICAgaWYgKHByb3ZpZGVyLmlzTXVsdGlCcm93c2VyKSB7XG4gICAgICAgIGNvbnN0IGJyb3dzZXJOYW1lcyA9IGF3YWl0IHByb3ZpZGVyLmdldEJyb3dzZXJMaXN0KCk7XG5cbiAgICAgICAgYXdhaXQgYnJvd3NlclByb3ZpZGVyUG9vbC5kaXNwb3NlKCk7XG5cbiAgICAgICAgaWYgKHByb3ZpZGVyTmFtZSA9PT0gJ2xvY2FsbHktaW5zdGFsbGVkJylcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGJyb3dzZXJOYW1lcy5qb2luKCdcXG4nKSk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGJyb3dzZXJOYW1lcy5tYXAoYnJvd3Nlck5hbWUgPT4gYFwiJHsgcHJvdmlkZXJOYW1lIH06JHsgYnJvd3Nlck5hbWUgfVwiYCkuam9pbignXFxuJykpO1xuICAgIH1cbiAgICBlbHNlXG4gICAgICAgIGNvbnNvbGUubG9nKGBcIiR7IHByb3ZpZGVyTmFtZSB9XCJgKTtcblxuICAgIGV4aXQoMCk7XG59XG5cbihhc3luYyBmdW5jdGlvbiBjbGkgKCkge1xuICAgIGNvbnN0IHRlcm1pbmF0aW9uSGFuZGxlciA9IG5ldyBUZXJtaW5hdGlvbkhhbmRsZXIoKTtcblxuICAgIHRlcm1pbmF0aW9uSGFuZGxlci5vbihUZXJtaW5hdGlvbkhhbmRsZXIuVEVSTUlOQVRJT05fTEVWRUxfSU5DUkVBU0VEX0VWRU5ULCBleGl0SGFuZGxlcik7XG5cbiAgICB0cnkge1xuICAgICAgICBjb25zdCBhcmdQYXJzZXIgPSBuZXcgQ2xpQXJndW1lbnRQYXJzZXIoKTtcblxuICAgICAgICBsb2dFbnRyeShMT0dHRVIsIHByb2Nlc3MuYXJndik7XG5cbiAgICAgICAgYXdhaXQgYXJnUGFyc2VyLnBhcnNlKHByb2Nlc3MuYXJndik7XG5cbiAgICAgICAgbG9nRW50cnkoTE9HR0VSLCBhcmdQYXJzZXIub3B0cyk7XG5cbiAgICAgICAgaWYgKGFyZ1BhcnNlci5pc0Rhc2hib2FyZENvbW1hbmQpXG4gICAgICAgICAgICBhd2FpdCBydW5EYXNoYm9hcmRJbnRlZ3JhdGlvbihhcmdQYXJzZXIuc2VuZFJlcG9ydFN0YXRlKTtcbiAgICAgICAgZWxzZSBpZiAoYXJnUGFyc2VyLm9wdHMubGlzdEJyb3dzZXJzKVxuICAgICAgICAgICAgYXdhaXQgbGlzdEJyb3dzZXJzKGFyZ1BhcnNlci5vcHRzLnByb3ZpZGVyTmFtZSk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGF3YWl0IHJ1blRlc3RzKGFyZ1BhcnNlcik7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgc2hvd01lc3NhZ2VPbkV4aXQgPSBmYWxzZTtcbiAgICAgICAgZXJyb3IoZXJyKTtcbiAgICB9XG59KSgpO1xuXG4iXX0=
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS9jbGkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsK0NBQTJEO0FBQzNELDJDQUFpRDtBQUNqRCx3RUFBa0Q7QUFDbEQsZ0ZBQXVEO0FBQ3ZELGdEQUF3QjtBQUN4QixzRUFBNkM7QUFDN0Msa0dBQXVFO0FBQ3ZFLDRDQUFpQztBQUNqQyxrREFBMEI7QUFDMUIsbUVBQTBDO0FBQzFDLDZEQUFnRDtBQUVoRCxNQUFNLE1BQU0sR0FBRyxJQUFBLGVBQUssRUFBQyxjQUFjLENBQUMsQ0FBQztBQUVyQyw2REFBNkQ7QUFDN0QsTUFBTSxXQUFXLEdBQVcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzVELE1BQU0sbUJBQW1CLEdBQUcsV0FBVyxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFFcEUsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUM7QUFDN0IsSUFBSSxnQkFBZ0IsR0FBSSxLQUFLLENBQUM7QUFDOUIsSUFBSSxPQUFPLEdBQWEsS0FBSyxDQUFDO0FBRTlCLFNBQVMsV0FBVyxDQUFFLGdCQUFnQjtJQUNsQyxJQUFJLGlCQUFpQixJQUFJLENBQUMsZ0JBQWdCLEVBQUU7UUFDeEMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBRXhCLGFBQUcsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUVsQyxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxhQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDbkQ7SUFFRCxJQUFJLE9BQU8sSUFBSSxnQkFBZ0IsR0FBRyxDQUFDO1FBQy9CLE9BQU87SUFFWCxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBRWYsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1osQ0FBQztBQUVELFNBQVMsSUFBSSxD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QUFDLElBQUksQ0FBQyxDQUFDO1FBRS9CLE1BQU0sU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEMsSUFBQSxtQkFBUSxFQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFakMsSUFBSSxTQUFTLENBQUMsa0JBQWtCO1lBQzVCLE1BQU0sdUJBQXVCLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQ3hELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQ2hDLE1BQU0sWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7O1lBRWhELE1BQU0sUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQ2pDO0lBQ0QsT0FBTyxHQUFHLEVBQUU7UUFDUixpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ2Q7QUFDTCxDQUFDLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IEdlbmVyYWxFcnJvciwgQVBJRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMvcnVudGltZSc7XG5pbXBvcnQgeyBSVU5USU1FX0VSUk9SUyB9IGZyb20gJy4uL2Vycm9ycy90eXBlcyc7XG5pbXBvcnQgQ2xpQXJndW1lbnRQYXJzZXIgZnJvbSAnLi9hcmd1bWVudC1wYXJzZXInO1xuaW1wb3J0IFRlcm1pbmF0aW9uSGFuZGxlciBmcm9tICcuL3Rlcm1pbmF0aW9uLWhhbmRsZXInO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZyc7XG5pbXBvcnQgcmVtb3Rlc1dpemFyZCBmcm9tICcuL3JlbW90ZXMtd2l6YXJkJztcbmltcG9ydCBjb3JyZWN0QnJvd3NlcnNBbmRTb3VyY2VzIGZyb20gJy4vY29ycmVjdC1icm93c2Vycy1hbmQtc291cmNlcyc7XG5pbXBvcnQgY3JlYXRlVGVzdENhZmUgZnJvbSAnLi4vJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgbG9nRW50cnkgZnJvbSAnLi4vdXRpbHMvbG9nLWVudHJ5JztcbmltcG9ydCBkYXNoYm9hcmRJbnRlZ3JhdGlvbiBmcm9tICcuLi9kYXNoYm9hcmQnO1xuXG5jb25zdCBMT0dHRVIgPSBkZWJ1ZygndGVzdGNhZmU6Y2xpJyk7XG5cbi8vIE5PVEU6IExvYWQgdGhlIHByb3ZpZGVyIHBvb2wgbGF6aWx5IHRvIHJlZHVjZSBzdGFydHVwIHRpbWVcbmNvbnN0IGxhenlSZXF1aXJlICAgICAgICAgPSByZXF1aXJlKCdpbXBvcnQtbGF6eScpKHJlcXVpcmUpO1xuY29uc3QgYnJvd3NlclByb3ZpZGVyUG9vbCA9IGxhenlSZXF1aXJlKCcuLi9icm93c2VyL3Byb3ZpZGVyL3Bvb2wnKTtcblxubGV0IHNob3dNZXNzYWdlT25FeGl0ID0gdHJ1ZTtcbmxldCBleGl0TWVzc2FnZVNob3duICA9IGZhbHNlO1xubGV0IGV4aXRpbmcgICAgICAgICAgID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGV4aXRIYW5kbGVyICh0ZXJtaW5hdGlvbkxldmVsKSB7XG4gICAgaWYgKHNob3dNZXNzYWdlT25FeGl0ICYmICFleGl0TWVzc2FnZVNob3duKSB7XG4gICAgICAgIGV4aXRNZXNzYWdlU2hvd24gPSB0cnVlO1xuXG4gICAgICAgIGxvZy53cml0ZSgnU3RvcHBpbmcgVGVzdENhZmUuLi4nKTtcblxuICAgICAgICBwcm9jZXNzLm9uKCdleGl0JywgKCkgPT4gbG9nLmhpZGVTcGlubmVyKHRydWUpKTtcbiAgICB9XG5cbiAgICBpZiAoZXhpdGluZyB8fCB0ZXJtaW5hdGlvbkxldmVsIDwgMilcbiAgICAgICAgcmV0dXJuO1xuXG4gICAgZXhpdGluZyA9IHRydWU7XG5cbiAgICBleGl0KDApO1xufVxuXG5mdW5jdGlvbiBleGl0IChjb2RlKSB7XG4gICAgbG9nLmhpZGVTcGlubmVyKHRydWUpO1xuXG4gICAgLy8gTk9URTogZ2l2ZSBhIHByb2Nlc3MgdGltZSB0byBmbHVzaCB0aGUgb3V0cHV0LlxuICAgIC8vIEl0J3MgbmVjZXNzYXJ5IGluIHNvbWUgZW52aXJvbm1lbnRzLlxuICAgIHNldFRpbWVvdXQoKCkgPT4gcHJvY2Vzcy5leGl0KGNvZGUpLCAwKTtcbn1cblxuZnVuY3Rpb24gZXJyb3IgKGVycikge1xuICAgIGxvZy5oaWRlU3Bpbm5lcigpO1xuXG4gICAgbGV0IG1lc3NhZ2UgPSBudWxsO1xuXG4gICAgaWYgKGVyciBpbnN0YW5jZW9mIEdlbmVyYWxFcnJvcilcbiAgICAgICAgbWVzc2FnZSA9IGVyci5tZXNzYWdlO1xuXG4gICAgZWxzZSBpZiAoZXJyIGluc3RhbmNlb2YgQVBJRXJyb3IpXG4gICAgICAgIG1lc3NhZ2UgPSBlcnIuY29sb3JlZFN0YWNrO1xuXG4gICAgZWxzZVxuICAgICAgICBtZXNzYWdlID0gZXJyLnN0YWNrO1xuXG4gICAgbG9nLndyaXRlKGNoYWxrLnJlZCgnRVJST1IgJykgKyBtZXNzYWdlICsgJ1xcbicpO1xuICAgIGxvZy53cml0ZShjaGFsay5ncmF5KCdUeXBlIFwidGVzdGNhZmUgLWhcIiBmb3IgaGVscC4nKSk7XG5cbiAgICBleGl0KDEpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBydW5UZXN0cyAoYXJnUGFyc2VyKSB7XG4gICAgY29uc3Qgb3B0cyAgICAgICAgPSBhcmdQYXJzZXIub3B0cztcbiAgICBjb25zdCBwb3J0MSAgICAgICA9IG9wdHMucG9ydHMgJiYgb3B0cy5wb3J0c1swXTtcbiAgICBjb25zdCBwb3J0MiAgICAgICA9IG9wdHMucG9ydHMgJiYgb3B0cy5wb3J0c1sxXTtcbiAgICBjb25zdCBwcm94eSAgICAgICA9IG9wdHMucHJveHk7XG4gICAgY29uc3QgcHJveHlCeXBhc3MgPSBvcHRzLnByb3h5QnlwYXNzO1xuICAgIGNvbnN0IGNvbmZpZ0ZpbGUgID0gb3B0cy5jb25maWdGaWxlO1xuXG4gICAgbG9nLnNob3dTcGlubmVyKCk7XG5cbiAgICBjb25zdCB7IGhvc3RuYW1lLCBzc2wsIGRldiwgZXhwZXJpbWVudGFsRGVidWcsIHJldHJ5VGVzdFBhZ2VzLCBjYWNoZSwgZGlzYWJsZUh0dHAyLCB2OEZsYWdzIH0gPSBvcHRzO1xuXG4gICAgY29uc3QgdGVzdENhZmUgPSBhd2FpdCBjcmVhdGVUZXN0Q2FmZSh7XG4gICAgICAgIGRldmVsb3BtZW50TW9kZTogZGV2LFxuICAgICAgICBpc0NsaTogICAgICAgICAgIHRydWUsXG5cbiAgICAgICAgaG9zdG5hbWUsXG4gICAgICAgIHBvcnQxLFxuICAgICAgICBwb3J0MixcbiAgICAgICAgc3NsLFxuICAgICAgICBleHBlcmltZW50YWxEZWJ1ZyxcbiAgICAgICAgcmV0cnlUZXN0UGFnZXMsXG4gICAgICAgIGNhY2hlLFxuICAgICAgICBjb25maWdGaWxlLFxuICAgICAgICBkaXNhYmxlSHR0cDIsXG4gICAgICAgIHY4RmxhZ3MsXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb3JyZWN0ZWRCcm93c2Vyc0FuZFNvdXJjZXMgPSBhd2FpdCBjb3JyZWN0QnJvd3NlcnNBbmRTb3VyY2VzKGFyZ1BhcnNlciwgdGVzdENhZmUuY29uZmlndXJhdGlvbik7XG4gICAgY29uc3QgYXV0b21hdGVkQnJvd3NlcnMgICAgICAgICAgID0gY29ycmVjdGVkQnJvd3NlcnNBbmRTb3VyY2VzLmJyb3dzZXJzO1xuICAgIGNvbnN0IHJlbW90ZUJyb3dzZXJzICAgICAgICAgICAgICA9IGF3YWl0IHJlbW90ZXNXaXphcmQodGVzdENhZmUsIGFyZ1BhcnNlci5yZW1vdGVDb3VudCwgb3B0cy5xckNvZGUpO1xuICAgIGNvbnN0IGJyb3dzZXJzICAgICAgICAgICAgICAgICAgICA9IGF1dG9tYXRlZEJyb3dzZXJzLmNvbmNhdChyZW1vdGVCcm93c2Vycyk7XG4gICAgY29uc3Qgc291cmNlcyAgICAgICAgICAgICAgICAgICAgID0gY29ycmVjdGVkQnJvd3NlcnNBbmRTb3VyY2VzLnNvdXJjZXM7XG5cbiAgICBjb25zdCBydW5uZXIgPSBvcHRzLmxpdmUgPyB0ZXN0Q2FmZS5jcmVhdGVMaXZlTW9kZVJ1bm5lcigpIDogdGVzdENhZmUuY3JlYXRlUnVubmVyKCk7XG5cbiAgICBsZXQgZmFpbGVkID0gMDtcblxuICAgIHJ1bm5lclxuICAgICAgICAudXNlUHJveHkocHJveHksIHByb3h5QnlwYXNzKVxuICAgICAgICAuc3JjKHNvdXJjZXMpXG4gICAgICAgIC50c0NvbmZpZ1BhdGgoYXJnUGFyc2VyLm9wdHMudHNDb25maWdQYXRoKVxuICAgICAgICAuYnJvd3NlcnMoYnJvd3NlcnMpXG4gICAgICAgIC5yZXBvcnRlcihhcmdQYXJzZXIub3B0cy5yZXBvcnRlcilcbiAgICAgICAgLmNvbmN1cnJlbmN5KGFyZ1BhcnNlci5vcHRzLmNvbmN1cnJlbmN5KVxuICAgICAgICAuZmlsdGVyKGFyZ1BhcnNlci5vcHRzLmZpbHRlcilcbiAgICAgICAgLnZpZGVvKG9wdHMudmlkZW8sIG9wdHMudmlkZW9PcHRpb25zLCBvcHRzLnZpZGVvRW5jb2RpbmdPcHRpb25zKVxuICAgICAgICAuc2NyZWVuc2hvdHMob3B0cy5zY3JlZW5zaG90cylcbiAgICAgICAgLnN0YXJ0QXBwKG9wdHMuYXBwLCBvcHRzLmFwcEluaXREZWxheSlcbiAgICAgICAgLmNsaWVudFNjcmlwdHMoYXJnUGFyc2VyLm9wdHMuY2xpZW50U2NyaXB0cylcbiAgICAgICAgLmNvbXBpbGVyT3B0aW9ucyhhcmdQYXJzZXIub3B0cy5jb21waWxlck9wdGlvbnMpO1xuXG4gICAgcnVubmVyLm9uY2UoJ2RvbmUtYm9vdHN0cmFwcGluZycsICgpID0+IGxvZy5oaWRlU3Bpbm5lcigpKTtcblxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJ1bk9wdHMgPSBhcmdQYXJzZXIuZ2V0UnVuT3B0aW9ucygpO1xuXG4gICAgICAgIGZhaWxlZCA9IGF3YWl0IHJ1bm5lci5ydW4ocnVuT3B0cyk7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgICBzaG93TWVzc2FnZU9uRXhpdCA9IGZhbHNlO1xuICAgICAgICBhd2FpdCB0ZXN0Q2FmZS5jbG9zZSgpO1xuICAgIH1cblxuICAgIGV4aXQoZmFpbGVkKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcnVuRGFzaGJvYXJkSW50ZWdyYXRpb24gKHN0YXRlKSB7XG4gICAgYXdhaXQgZGFzaGJvYXJkSW50ZWdyYXRpb24oc3RhdGUpO1xuXG4gICAgZXhpdCgwKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbGlzdEJyb3dzZXJzIChwcm92aWRlck5hbWUpIHtcbiAgICBjb25zdCBwcm92aWRlciA9IGF3YWl0IGJyb3dzZXJQcm92aWRlclBvb2wuZ2V0UHJvdmlkZXIocHJvdmlkZXJOYW1lKTtcblxuICAgIGlmICghcHJvdmlkZXIpXG4gICAgICAgIHRocm93IG5ldyBHZW5lcmFsRXJyb3IoUlVOVElNRV9FUlJPUlMuYnJvd3NlclByb3ZpZGVyTm90Rm91bmQsIHByb3ZpZGVyTmFtZSk7XG5cbiAgICBpZiAocHJvdmlkZXIuaXNNdWx0aUJyb3dzZXIpIHtcbiAgICAgICAgY29uc3QgYnJvd3Nlck5hbWVzID0gYXdhaXQgcHJvdmlkZXIuZ2V0QnJvd3Nlckxpc3QoKTtcblxuICAgICAgICBhd2FpdCBicm93c2VyUHJvdmlkZXJQb29sLmRpc3Bvc2UoKTtcblxuICAgICAgICBpZiAocHJvdmlkZXJOYW1lID09PSAnbG9jYWxseS1pbnN0YWxsZWQnKVxuICAgICAgICAgICAgY29uc29sZS5sb2coYnJvd3Nlck5hbWVzLmpvaW4oJ1xcbicpKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgY29uc29sZS5sb2coYnJvd3Nlck5hbWVzLm1hcChicm93c2VyTmFtZSA9PiBgXCIkeyBwcm92aWRlck5hbWUgfTokeyBicm93c2VyTmFtZSB9XCJgKS5qb2luKCdcXG4nKSk7XG4gICAgfVxuICAgIGVsc2VcbiAgICAgICAgY29uc29sZS5sb2coYFwiJHsgcHJvdmlkZXJOYW1lIH1cImApO1xuXG4gICAgZXhpdCgwKTtcbn1cblxuKGFzeW5jIGZ1bmN0aW9uIGNsaSAoKSB7XG4gICAgY29uc3QgdGVybWluYXRpb25IYW5kbGVyID0gbmV3IFRlcm1pbmF0aW9uSGFuZGxlcigpO1xuXG4gICAgdGVybWluYXRpb25IYW5kbGVyLm9uKFRlcm1pbmF0aW9uSGFuZGxlci5URVJNSU5BVElPTl9MRVZFTF9JTkNSRUFTRURfRVZFTlQsIGV4aXRIYW5kbGVyKTtcblxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGFyZ1BhcnNlciA9IG5ldyBDbGlBcmd1bWVudFBhcnNlcigpO1xuXG4gICAgICAgIGxvZ0VudHJ5KExPR0dFUiwgcHJvY2Vzcy5hcmd2KTtcblxuICAgICAgICBhd2FpdCBhcmdQYXJzZXIucGFyc2UocHJvY2Vzcy5hcmd2KTtcblxuICAgICAgICBsb2dFbnRyeShMT0dHRVIsIGFyZ1BhcnNlci5vcHRzKTtcblxuICAgICAgICBpZiAoYXJnUGFyc2VyLmlzRGFzaGJvYXJkQ29tbWFuZClcbiAgICAgICAgICAgIGF3YWl0IHJ1bkRhc2hib2FyZEludGVncmF0aW9uKGFyZ1BhcnNlci5zZW5kUmVwb3J0U3RhdGUpO1xuICAgICAgICBlbHNlIGlmIChhcmdQYXJzZXIub3B0cy5saXN0QnJvd3NlcnMpXG4gICAgICAgICAgICBhd2FpdCBsaXN0QnJvd3NlcnMoYXJnUGFyc2VyLm9wdHMucHJvdmlkZXJOYW1lKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgYXdhaXQgcnVuVGVzdHMoYXJnUGFyc2VyKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgICBzaG93TWVzc2FnZU9uRXhpdCA9IGZhbHNlO1xuICAgICAgICBlcnJvcihlcnIpO1xuICAgIH1cbn0pKCk7XG5cbiJdfQ==
|
|
@@ -30,7 +30,7 @@ async function default_1(args, configuration) {
|
|
|
30
30
|
if (!browsersOption || !browsersOption.length)
|
|
31
31
|
return { browsers: args.opts.browsers, sources: args.opts.src };
|
|
32
32
|
const browserInfo = await Promise.all(args.opts.browsers.map(browser => getBrowserInfo(browser)));
|
|
33
|
-
const [parsedInfo, failedInfo] = lodash_1.partition(browserInfo, info => !info.error);
|
|
33
|
+
const [parsedInfo, failedInfo] = (0, lodash_1.partition)(browserInfo, info => !info.error);
|
|
34
34
|
if (parsedInfo.length === browserInfo.length)
|
|
35
35
|
return { browsers: args.opts.browsers, sources: args.opts.src };
|
|
36
36
|
if (!parsedInfo.length)
|
|
@@ -39,4 +39,4 @@ async function default_1(args, configuration) {
|
|
|
39
39
|
}
|
|
40
40
|
exports.default = default_1;
|
|
41
41
|
module.exports = exports.default;
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycmVjdC1icm93c2Vycy1hbmQtc291cmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGkvY29ycmVjdC1icm93c2Vycy1hbmQtc291cmNlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFtQztBQUNuQyxpRkFBeUQ7QUFDekQsK0NBQW1EO0FBRW5ELDZEQUE2RDtBQUM3RCxNQUFNLFdBQVcsR0FBVyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDNUQsTUFBTSxtQkFBbUIsR0FBRyxXQUFXLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUdwRSxLQUFLLFVBQVUsY0FBYyxDQUFFLE9BQU87SUFDbEMsSUFBSTtRQUNBLE9BQU87WUFDSCxLQUFLLEVBQUUsSUFBSTtZQUNYLElBQUksRUFBRyxNQUFNLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7U0FDM0QsQ0FBQztLQUNMO0lBQ0QsT0FBTyxHQUFHLEVBQUU7UUFDUixPQUFPO1lBQ0gsS0FBSyxFQUFFLEdBQUc7WUFDVixJQUFJLEVBQUcsSUFBSTtTQUNkLENBQUM7S0FDTDtBQUNMLENBQUM7QUFFYyxLQUFLLG9CQUFXLElBQUksRUFBRSxhQUFhO0lBQzlDLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsc0JBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0RSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRXBELElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTTtRQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRXBFLE1BQU0sV0FBVyxHQUFnQixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRyxNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLElBQUEsa0JBQVMsRUFBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU3RSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLE1BQU07UUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUVwRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU07UUFDbEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUV2RSxNQUFNLElBQUksd0JBQWMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQW5CRCw0QkFtQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJ0aXRpb24gfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IE9QVElPTl9OQU1FUyBmcm9tICcuLi9jb25maWd1cmF0aW9uL29wdGlvbi1uYW1lcyc7XG5pbXBvcnQgeyBDb21wb3NpdGVFcnJvciB9IGZyb20gJy4uL2Vycm9ycy9ydW50aW1lJztcblxuLy8gTk9URTogTG9hZCB0aGUgcHJvdmlkZXIgcG9vbCBsYXppbHkgdG8gcmVkdWNlIHN0YXJ0dXAgdGltZVxuY29uc3QgbGF6eVJlcXVpcmUgICAgICAgICA9IHJlcXVpcmUoJ2ltcG9ydC1sYXp5JykocmVxdWlyZSk7XG5jb25zdCBicm93c2VyUHJvdmlkZXJQb29sID0gbGF6eVJlcXVpcmUoJy4uL2Jyb3dzZXIvcHJvdmlkZXIvcG9vbCcpO1xuXG5cbmFzeW5jIGZ1bmN0aW9uIGdldEJyb3dzZXJJbmZvIChicm93c2VyKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgaW5mbzogIGF3YWl0IGJyb3dzZXJQcm92aWRlclBvb2wuZ2V0QnJvd3NlckluZm8oYnJvd3NlciksXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVycm9yOiBlcnIsXG4gICAgICAgICAgICBpbmZvOiAgbnVsbCxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIChhcmdzLCBjb25maWd1cmF0aW9uKSB7XG4gICAgY29uc3QgYnJvd3NlcnNPcHRpb24gPSBjb25maWd1cmF0aW9uLmdldE9wdGlvbihPUFRJT05fTkFNRVMuYnJvd3NlcnMpO1xuXG4gICAgaWYgKCFhcmdzLm9wdHMuYnJvd3NlcnMgfHwgIWFyZ3Mub3B0cy5icm93c2Vycy5sZW5ndGgpXG4gICAgICAgIHJldHVybiB7IGJyb3dzZXJzOiBbXSwgc291cmNlczogYXJncy5vcHRzLnNyYyB9O1xuXG4gICAgaWYgKCFicm93c2Vyc09wdGlvbiB8fCAhYnJvd3NlcnNPcHRpb24ubGVuZ3RoKVxuICAgICAgICByZXR1cm4geyBicm93c2VyczogYXJncy5vcHRzLmJyb3dzZXJzLCBzb3VyY2VzOiBhcmdzLm9wdHMuc3JjIH07XG5cbiAgICBjb25zdCBicm93c2VySW5mbyAgICAgICAgICAgICAgPSBhd2FpdCBQcm9taXNlLmFsbChhcmdzLm9wdHMuYnJvd3NlcnMubWFwKGJyb3dzZXIgPT4gZ2V0QnJvd3NlckluZm8oYnJvd3NlcikpKTtcbiAgICBjb25zdCBbcGFyc2VkSW5mbywgZmFpbGVkSW5mb10gPSBwYXJ0aXRpb24oYnJvd3NlckluZm8sIGluZm8gPT4gIWluZm8uZXJyb3IpO1xuXG4gICAgaWYgKHBhcnNlZEluZm8ubGVuZ3RoID09PSBicm93c2VySW5mby5sZW5ndGgpXG4gICAgICAgIHJldHVybiB7IGJyb3dzZXJzOiBhcmdzLm9wdHMuYnJvd3NlcnMsIHNvdXJjZXM6IGFyZ3Mub3B0cy5zcmMgfTtcblxuICAgIGlmICghcGFyc2VkSW5mby5sZW5ndGgpXG4gICAgICAgIHJldHVybiB7IGJyb3dzZXJzOiBbXSwgc291cmNlczogW2FyZ3MuYXJnc1swXSwgLi4uYXJncy5vcHRzLnNyY10gfTtcblxuICAgIHRocm93IG5ldyBDb21wb3NpdGVFcnJvcihmYWlsZWRJbmZvLm1hcChpbmZvID0+IGluZm8uZXJyb3IpKTtcbn1cbiJdfQ==
|
package/lib/cli/index.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const resolve_cwd_1 = __importDefault(require("resolve-cwd"));
|
|
7
7
|
const log_1 = __importDefault(require("./log"));
|
|
8
8
|
function getLocalInstallation() {
|
|
9
|
-
const local = resolve_cwd_1.default('testcafe/lib/cli');
|
|
9
|
+
const local = (0, resolve_cwd_1.default)('testcafe/lib/cli');
|
|
10
10
|
if (local && local !== __filename) {
|
|
11
11
|
log_1.default.write('Using locally installed version of TestCafe.');
|
|
12
12
|
return local;
|
|
@@ -17,4 +17,4 @@ function getLocalInstallation() {
|
|
|
17
17
|
const cliPath = getLocalInstallation() || require.resolve('./cli');
|
|
18
18
|
require(cliPath);
|
|
19
19
|
})();
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOERBQXFDO0FBQ3JDLGdEQUF3QjtBQUd4QixTQUFTLG9CQUFvQjtJQUN6QixNQUFNLEtBQUssR0FBRyxJQUFBLHFCQUFVLEVBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUU3QyxJQUFJLEtBQUssSUFBSSxLQUFLLEtBQUssVUFBVSxFQUFFO1FBQy9CLGFBQUcsQ0FBQyxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztRQUMxRCxPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUVELE9BQU8sRUFBRSxDQUFDO0FBQ2QsQ0FBQztBQUVELENBQUMsU0FBUyxNQUFNO0lBQ1osTUFBTSxPQUFPLEdBQUcsb0JBQW9CLEVBQUUsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRW5FLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNyQixDQUFDLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlc29sdmVDd2QgZnJvbSAncmVzb2x2ZS1jd2QnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZyc7XG5cblxuZnVuY3Rpb24gZ2V0TG9jYWxJbnN0YWxsYXRpb24gKCkge1xuICAgIGNvbnN0IGxvY2FsID0gcmVzb2x2ZUN3ZCgndGVzdGNhZmUvbGliL2NsaScpO1xuXG4gICAgaWYgKGxvY2FsICYmIGxvY2FsICE9PSBfX2ZpbGVuYW1lKSB7XG4gICAgICAgIGxvZy53cml0ZSgnVXNpbmcgbG9jYWxseSBpbnN0YWxsZWQgdmVyc2lvbiBvZiBUZXN0Q2FmZS4nKTtcbiAgICAgICAgcmV0dXJuIGxvY2FsO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbn1cblxuKGZ1bmN0aW9uIGxvYWRlciAoKSB7XG4gICAgY29uc3QgY2xpUGF0aCA9IGdldExvY2FsSW5zdGFsbGF0aW9uKCkgfHwgcmVxdWlyZS5yZXNvbHZlKCcuL2NsaScpO1xuXG4gICAgcmVxdWlyZShjbGlQYXRoKTtcbn0pKCk7XG4iXX0=
|
package/lib/cli/log.js
CHANGED
|
@@ -17,10 +17,10 @@ exports.default = {
|
|
|
17
17
|
// NOTE: we can use the spinner only if stdout is a TTY and we are not in CI environment (e.g. TravisCI),
|
|
18
18
|
// otherwise we can't repaint animation frames. Thanks https://github.com/sindresorhus/ora for insight.
|
|
19
19
|
if (this.isAnimated) {
|
|
20
|
-
const spinnerFrame = elegant_spinner_1.default();
|
|
20
|
+
const spinnerFrame = (0, elegant_spinner_1.default)();
|
|
21
21
|
this.animation = setInterval(() => {
|
|
22
22
|
const frame = chalk_1.default.cyan(spinnerFrame());
|
|
23
|
-
log_update_async_hook_1.default(frame);
|
|
23
|
+
(0, log_update_async_hook_1.default)(frame);
|
|
24
24
|
}, 50);
|
|
25
25
|
}
|
|
26
26
|
},
|
|
@@ -42,4 +42,4 @@ exports.default = {
|
|
|
42
42
|
},
|
|
43
43
|
};
|
|
44
44
|
module.exports = exports.default;
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS9sb2cuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4Q0FBc0I7QUFDdEIsc0VBQTZDO0FBQzdDLGtGQUE4QztBQUM5QyxrREFBMEI7QUFDMUIsa0RBQXlCO0FBRXpCLDJEQUEyRDtBQUMzRCxzREFBc0Q7QUFDdEQsa0JBQWU7SUFDWCxTQUFTLEVBQUcsSUFBSTtJQUNoQixVQUFVLEVBQUUsYUFBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQUk7SUFFbEMsV0FBVztRQUNQLHlHQUF5RztRQUN6Ryx1R0FBdUc7UUFDdkcsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLE1BQU0sWUFBWSxHQUFHLElBQUEseUJBQWMsR0FBRSxDQUFDO1lBRXRDLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtnQkFDOUIsTUFBTSxLQUFLLEdBQUcsZUFBSyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO2dCQUV6QyxJQUFBLCtCQUFTLEVBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ1Y7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFFLE1BQU07UUFDZixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QiwrQkFBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRWxCLElBQUksTUFBTTtnQkFDTiwrQkFBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXJCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBRSxJQUFJO1FBQ1AsSUFBSSxJQUFJLENBQUMsU0FBUztZQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUV2QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxCLElBQUksSUFBSSxDQUFDLFNBQVM7WUFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0IsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHR5IGZyb20gJ3R0eSc7XG5pbXBvcnQgZWxlZ2FudFNwaW5uZXIgZnJvbSAnZWxlZ2FudC1zcGlubmVyJztcbmltcG9ydCBsb2dVcGRhdGUgZnJvbSAnbG9nLXVwZGF0ZS1hc3luYy1ob29rJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgaXNDSSBmcm9tICdpcy1jaSc7XG5cbi8vIE5PVEU6IFRvIHN1cHBvcnQgcGlwaW5nLCB3ZSB1c2Ugc3RkZXJyIGFzIHRoZSBsb2cgb3V0cHV0XG4vLyBzdHJlYW0sIHdoaWxlIHN0ZG91dCBpcyB1c2VkIGZvciB0aGUgcmVwb3J0IG91dHB1dC5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBhbmltYXRpb246ICBudWxsLFxuICAgIGlzQW5pbWF0ZWQ6IHR0eS5pc2F0dHkoMSkgJiYgIWlzQ0ksXG5cbiAgICBzaG93U3Bpbm5lciAoKSB7XG4gICAgICAgIC8vIE5PVEU6IHdlIGNhbiB1c2UgdGhlIHNwaW5uZXIgb25seSBpZiBzdGRvdXQgaXMgYSBUVFkgYW5kIHdlIGFyZSBub3QgaW4gQ0kgZW52aXJvbm1lbnQgKGUuZy4gVHJhdmlzQ0kpLFxuICAgICAgICAvLyBvdGhlcndpc2Ugd2UgY2FuJ3QgcmVwYWludCBhbmltYXRpb24gZnJhbWVzLiBUaGFua3MgaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9vcmEgZm9yIGluc2lnaHQuXG4gICAgICAgIGlmICh0aGlzLmlzQW5pbWF0ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHNwaW5uZXJGcmFtZSA9IGVsZWdhbnRTcGlubmVyKCk7XG5cbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZyYW1lID0gY2hhbGsuY3lhbihzcGlubmVyRnJhbWUoKSk7XG5cbiAgICAgICAgICAgICAgICBsb2dVcGRhdGUoZnJhbWUpO1xuICAgICAgICAgICAgfSwgNTApO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGhpZGVTcGlubmVyIChpc0V4aXQpIHtcbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW9uKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuYW5pbWF0aW9uKTtcbiAgICAgICAgICAgIGxvZ1VwZGF0ZS5jbGVhcigpO1xuXG4gICAgICAgICAgICBpZiAoaXNFeGl0KVxuICAgICAgICAgICAgICAgIGxvZ1VwZGF0ZS5kb25lKCk7XG5cbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICB3cml0ZSAodGV4dCkge1xuICAgICAgICBpZiAodGhpcy5hbmltYXRpb24pXG4gICAgICAgICAgICB0aGlzLmhpZGVTcGlubmVyKCk7XG5cbiAgICAgICAgY29uc29sZS5sb2codGV4dCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW9uKVxuICAgICAgICAgICAgdGhpcy5zaG93U3Bpbm5lcigpO1xuICAgIH0sXG59O1xuXG4iXX0=
|
|
@@ -12,7 +12,7 @@ async function default_1(testCafe, remoteCount, showQRCode) {
|
|
|
12
12
|
const connectionPromises = [];
|
|
13
13
|
if (remoteCount) {
|
|
14
14
|
log_1.default.hideSpinner();
|
|
15
|
-
const description = dedent_1.default(`
|
|
15
|
+
const description = (0, dedent_1.default)(`
|
|
16
16
|
Connecting ${remoteCount} remote browser(s)...
|
|
17
17
|
Navigate to the following URL from each remote browser.
|
|
18
18
|
`);
|
|
@@ -26,7 +26,7 @@ async function default_1(testCafe, remoteCount, showQRCode) {
|
|
|
26
26
|
for (let i = 0; i < remoteCount; i++) {
|
|
27
27
|
connectionPromises.push(testCafe
|
|
28
28
|
.createBrowserConnection()
|
|
29
|
-
.then((bc) => promisify_event_1.default(bc, 'ready').then(() => bc))
|
|
29
|
+
.then((bc) => (0, promisify_event_1.default)(bc, 'ready').then(() => bc))
|
|
30
30
|
.then((bc) => {
|
|
31
31
|
log_1.default.write(`${chalk_1.default.green('CONNECTED')} ${bc.userAgent}`);
|
|
32
32
|
return bc;
|
|
@@ -38,4 +38,4 @@ async function default_1(testCafe, remoteCount, showQRCode) {
|
|
|
38
38
|
}
|
|
39
39
|
exports.default = default_1;
|
|
40
40
|
module.exports = exports.default;
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3Rlcy13aXphcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL3JlbW90ZXMtd2l6YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0VBQXFDO0FBQ3JDLGtEQUEwQjtBQUMxQixnREFBd0I7QUFDeEIsc0VBQTZDO0FBQzdDLG9EQUE0QjtBQVViLEtBQUssb0JBQVcsUUFBa0IsRUFBRSxXQUFtQixFQUFFLFVBQW1CO0lBQ3ZGLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBRTlCLElBQUksV0FBVyxFQUFFO1FBQ2IsYUFBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWxCLE1BQU0sV0FBVyxHQUFHLElBQUEsZ0JBQU0sRUFBQzt5QkFDVixXQUFXOztTQUUzQixDQUFDLENBQUM7UUFFSCxhQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXZCLElBQUksVUFBVTtZQUNWLGFBQUcsQ0FBQyxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztRQUVuRSxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDO1FBRW5FLGFBQUcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLGVBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqRSxJQUFJLFVBQVU7WUFDVix5QkFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVuQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2xDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRO2lCQUMzQix1QkFBdUIsRUFBRTtpQkFDekIsSUFBSSxDQUFDLENBQUMsRUFBcUIsRUFBRSxFQUFFLENBQUMsSUFBQSx5QkFBYyxFQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQzNFLElBQUksQ0FBQyxDQUFDLEVBQXFCLEVBQUUsRUFBRTtnQkFDNUIsYUFBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLGVBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBRXpELE9BQU8sRUFBRSxDQUFDO1lBQ2QsQ0FBQyxDQUFDLENBQ0wsQ0FBQztTQUNMO1FBRUQsYUFBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0tBQ3JCO0lBRUQsT0FBTyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBdkNELDRCQXVDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBxcmNvZGUgZnJvbSAncXJjb2RlLXRlcm1pbmFsJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nJztcbmltcG9ydCBwcm9taXNpZnlFdmVudCBmcm9tICdwcm9taXNpZnktZXZlbnQnO1xuaW1wb3J0IGRlZGVudCBmcm9tICdkZWRlbnQnO1xuXG5pbXBvcnQgQnJvd3NlckNvbm5lY3Rpb24gZnJvbSAnLi4vYnJvd3Nlci9jb25uZWN0aW9uJztcbmltcG9ydCBCcm93c2VyQ29ubmVjdGlvbkdhdGV3YXkgZnJvbSAnLi4vYnJvd3Nlci9jb25uZWN0aW9uL2dhdGV3YXknO1xuXG5pbnRlcmZhY2UgVGVzdENhZmUge1xuICAgIGJyb3dzZXJDb25uZWN0aW9uR2F0ZXdheTogQnJvd3NlckNvbm5lY3Rpb25HYXRld2F5O1xuICAgIGNyZWF0ZUJyb3dzZXJDb25uZWN0aW9uKCk6IFByb21pc2U8QnJvd3NlckNvbm5lY3Rpb24+O1xufVxuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiAodGVzdENhZmU6IFRlc3RDYWZlLCByZW1vdGVDb3VudDogbnVtYmVyLCBzaG93UVJDb2RlOiBib29sZWFuKTogUHJvbWlzZTxCcm93c2VyQ29ubmVjdGlvbltdPiB7XG4gICAgY29uc3QgY29ubmVjdGlvblByb21pc2VzID0gW107XG5cbiAgICBpZiAocmVtb3RlQ291bnQpIHtcbiAgICAgICAgbG9nLmhpZGVTcGlubmVyKCk7XG5cbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBkZWRlbnQoYFxuICAgICAgICAgICAgQ29ubmVjdGluZyAke3JlbW90ZUNvdW50fSByZW1vdGUgYnJvd3NlcihzKS4uLlxuICAgICAgICAgICAgTmF2aWdhdGUgdG8gdGhlIGZvbGxvd2luZyBVUkwgZnJvbSBlYWNoIHJlbW90ZSBicm93c2VyLlxuICAgICAgICBgKTtcblxuICAgICAgICBsb2cud3JpdGUoZGVzY3JpcHRpb24pO1xuXG4gICAgICAgIGlmIChzaG93UVJDb2RlKVxuICAgICAgICAgICAgbG9nLndyaXRlKCdZb3UgY2FuIGVpdGhlciBlbnRlciB0aGUgVVJMIG9yIHNjYW4gdGhlIFFSLWNvZGUuJyk7XG5cbiAgICAgICAgY29uc3QgY29ubmVjdGlvblVybCA9IHRlc3RDYWZlLmJyb3dzZXJDb25uZWN0aW9uR2F0ZXdheS5jb25uZWN0VXJsO1xuXG4gICAgICAgIGxvZy53cml0ZShgQ29ubmVjdCBVUkw6ICR7Y2hhbGsudW5kZXJsaW5lLmJsdWUoY29ubmVjdGlvblVybCl9YCk7XG5cbiAgICAgICAgaWYgKHNob3dRUkNvZGUpXG4gICAgICAgICAgICBxcmNvZGUuZ2VuZXJhdGUoY29ubmVjdGlvblVybCk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZW1vdGVDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICBjb25uZWN0aW9uUHJvbWlzZXMucHVzaCh0ZXN0Q2FmZVxuICAgICAgICAgICAgICAgIC5jcmVhdGVCcm93c2VyQ29ubmVjdGlvbigpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGJjOiBCcm93c2VyQ29ubmVjdGlvbikgPT4gcHJvbWlzaWZ5RXZlbnQoYmMsICdyZWFkeScpLnRoZW4oKCkgPT4gYmMpKVxuICAgICAgICAgICAgICAgIC50aGVuKChiYzogQnJvd3NlckNvbm5lY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbG9nLndyaXRlKGAke2NoYWxrLmdyZWVuKCdDT05ORUNURUQnKX0gJHtiYy51c2VyQWdlbnR9YCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJjO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgbG9nLnNob3dTcGlubmVyKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGNvbm5lY3Rpb25Qcm9taXNlcyk7XG59XG4iXX0=
|
|
@@ -87,12 +87,12 @@ window['%hammerhead%'].utils.removeInjectedScript();
|
|
|
87
87
|
return DispatchEventAutomation;
|
|
88
88
|
}());
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
/******************************************************************************
|
|
91
91
|
Copyright (c) Microsoft Corporation.
|
|
92
|
-
|
|
92
|
+
|
|
93
93
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
94
94
|
purpose with or without fee is hereby granted.
|
|
95
|
-
|
|
95
|
+
|
|
96
96
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
97
97
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
98
98
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
@@ -102,55 +102,107 @@ window['%hammerhead%'].utils.removeInjectedScript();
|
|
|
102
102
|
PERFORMANCE OF THIS SOFTWARE.
|
|
103
103
|
***************************************************************************** */
|
|
104
104
|
/* global Reflect, Promise */
|
|
105
|
-
|
|
106
|
-
var extendStatics = function(d, b) {
|
|
105
|
+
var extendStatics = function (d, b) {
|
|
107
106
|
extendStatics = Object.setPrototypeOf ||
|
|
108
107
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
109
|
-
function (d, b) { for (var p in b)
|
|
108
|
+
function (d, b) { for (var p in b)
|
|
109
|
+
if (Object.prototype.hasOwnProperty.call(b, p))
|
|
110
|
+
d[p] = b[p]; };
|
|
110
111
|
return extendStatics(d, b);
|
|
111
112
|
};
|
|
112
|
-
|
|
113
113
|
function __extends(d, b) {
|
|
114
|
+
if (typeof b !== "function" && b !== null)
|
|
115
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
114
116
|
extendStatics(d, b);
|
|
115
117
|
function __() { this.constructor = d; }
|
|
116
118
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
117
119
|
}
|
|
118
|
-
|
|
119
120
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
120
121
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
121
122
|
return new (P || (P = Promise$e))(function (resolve, reject) {
|
|
122
|
-
function fulfilled(value) { try {
|
|
123
|
-
|
|
123
|
+
function fulfilled(value) { try {
|
|
124
|
+
step(generator.next(value));
|
|
125
|
+
}
|
|
126
|
+
catch (e) {
|
|
127
|
+
reject(e);
|
|
128
|
+
} }
|
|
129
|
+
function rejected(value) { try {
|
|
130
|
+
step(generator["throw"](value));
|
|
131
|
+
}
|
|
132
|
+
catch (e) {
|
|
133
|
+
reject(e);
|
|
134
|
+
} }
|
|
124
135
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
125
136
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
126
137
|
});
|
|
127
138
|
}
|
|
128
|
-
|
|
129
139
|
function __generator(thisArg, body) {
|
|
130
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1)
|
|
131
|
-
|
|
140
|
+
var _ = { label: 0, sent: function () { if (t[0] & 1)
|
|
141
|
+
throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
142
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
|
|
132
143
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
133
144
|
function step(op) {
|
|
134
|
-
if (f)
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
145
|
+
if (f)
|
|
146
|
+
throw new TypeError("Generator is already executing.");
|
|
147
|
+
while (_)
|
|
148
|
+
try {
|
|
149
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
|
|
150
|
+
return t;
|
|
151
|
+
if (y = 0, t)
|
|
152
|
+
op = [op[0] & 2, t.value];
|
|
153
|
+
switch (op[0]) {
|
|
154
|
+
case 0:
|
|
155
|
+
case 1:
|
|
156
|
+
t = op;
|
|
157
|
+
break;
|
|
158
|
+
case 4:
|
|
159
|
+
_.label++;
|
|
160
|
+
return { value: op[1], done: false };
|
|
161
|
+
case 5:
|
|
162
|
+
_.label++;
|
|
163
|
+
y = op[1];
|
|
164
|
+
op = [0];
|
|
165
|
+
continue;
|
|
166
|
+
case 7:
|
|
167
|
+
op = _.ops.pop();
|
|
168
|
+
_.trys.pop();
|
|
169
|
+
continue;
|
|
170
|
+
default:
|
|
171
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
172
|
+
_ = 0;
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
|
|
176
|
+
_.label = op[1];
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
180
|
+
_.label = t[1];
|
|
181
|
+
t = op;
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
if (t && _.label < t[2]) {
|
|
185
|
+
_.label = t[2];
|
|
186
|
+
_.ops.push(op);
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
if (t[2])
|
|
190
|
+
_.ops.pop();
|
|
191
|
+
_.trys.pop();
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
op = body.call(thisArg, _);
|
|
195
|
+
}
|
|
196
|
+
catch (e) {
|
|
197
|
+
op = [6, e];
|
|
198
|
+
y = 0;
|
|
150
199
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
200
|
+
finally {
|
|
201
|
+
f = t = 0;
|
|
202
|
+
}
|
|
203
|
+
if (op[0] & 5)
|
|
204
|
+
throw op[1];
|
|
205
|
+
return { value: op[0] ? op[1] : void 0, done: true };
|
|
154
206
|
}
|
|
155
207
|
}
|
|
156
208
|
|
|
@@ -870,6 +922,13 @@ window['%hammerhead%'].utils.removeInjectedScript();
|
|
|
870
922
|
throw new ErrorCtor(name, valType);
|
|
871
923
|
};
|
|
872
924
|
}
|
|
925
|
+
function createStringOrRegexValidator(ErrorCtor) {
|
|
926
|
+
return function (name, val) {
|
|
927
|
+
var valType = typeof val;
|
|
928
|
+
if (valType !== 'string' && !(val instanceof RegExp))
|
|
929
|
+
throw new ErrorCtor(name, valType);
|
|
930
|
+
};
|
|
931
|
+
}
|
|
873
932
|
function createDateValidator(ErrorCtor) {
|
|
874
933
|
return function (name, val) {
|
|
875
934
|
if (!(val instanceof Date))
|
|
@@ -1002,6 +1061,9 @@ window['%hammerhead%'].utils.removeInjectedScript();
|
|
|
1002
1061
|
actionUrlSearchParamsOptionError: 'E94',
|
|
1003
1062
|
actionObjectOptionError: 'E95',
|
|
1004
1063
|
actionUrlArgumentError: 'E96',
|
|
1064
|
+
actionStringOrRegexOptionError: 'E97',
|
|
1065
|
+
actionSkipJsErrorsArgumentError: 'E98',
|
|
1066
|
+
actionSkipJsErrorsDependenciesArgumentError: 'E99',
|
|
1005
1067
|
};
|
|
1006
1068
|
|
|
1007
1069
|
// Base
|
|
@@ -1162,6 +1224,13 @@ window['%hammerhead%'].utils.removeInjectedScript();
|
|
|
1162
1224
|
}
|
|
1163
1225
|
return ActionStringOptionError;
|
|
1164
1226
|
}(ActionOptionErrorBase));
|
|
1227
|
+
var ActionStringOrRegexOptionError = /** @class */ (function (_super) {
|
|
1228
|
+
__extends(ActionStringOrRegexOptionError, _super);
|
|
1229
|
+
function ActionStringOrRegexOptionError(optionName, actualValue) {
|
|
1230
|
+
return _super.call(this, TEST_RUN_ERRORS.actionStringOrRegexOptionError, optionName, actualValue) || this;
|
|
1231
|
+
}
|
|
1232
|
+
return ActionStringOrRegexOptionError;
|
|
1233
|
+
}(ActionOptionErrorBase));
|
|
1165
1234
|
var ActionDateOptionError = /** @class */ (function (_super) {
|
|
1166
1235
|
__extends(ActionDateOptionError, _super);
|
|
1167
1236
|
function ActionDateOptionError(optionName, actualValue) {
|
|
@@ -1499,6 +1568,7 @@ window['%hammerhead%'].utils.removeInjectedScript();
|
|
|
1499
1568
|
var booleanOption = createBooleanValidator(ActionBooleanOptionError);
|
|
1500
1569
|
var speedOption = createSpeedValidator(ActionSpeedOptionError);
|
|
1501
1570
|
var stringOption = createStringValidator(ActionStringOptionError);
|
|
1571
|
+
var stringOrRegexOption = createStringOrRegexValidator(ActionStringOrRegexOptionError);
|
|
1502
1572
|
var dateOption = createDateValidator(ActionDateOptionError);
|
|
1503
1573
|
var numberOption = createNumberValidator(ActionNumberOptionError);
|
|
1504
1574
|
var urlOption = createUrlValidator(ActionUrlOptionError);
|
|
@@ -1833,6 +1903,22 @@ window['%hammerhead%'].utils.removeInjectedScript();
|
|
|
1833
1903
|
};
|
|
1834
1904
|
return GetProxyUrlOptions;
|
|
1835
1905
|
}(Assignable));
|
|
1906
|
+
var SkipJsErrorsOptions = /** @class */ (function (_super) {
|
|
1907
|
+
__extends(SkipJsErrorsOptions, _super);
|
|
1908
|
+
function SkipJsErrorsOptions(obj, validate) {
|
|
1909
|
+
var _this = _super.call(this) || this;
|
|
1910
|
+
_this._assignFrom(obj, validate);
|
|
1911
|
+
return _this;
|
|
1912
|
+
}
|
|
1913
|
+
SkipJsErrorsOptions.prototype._getAssignableProperties = function () {
|
|
1914
|
+
return [
|
|
1915
|
+
{ name: 'stack', type: stringOrRegexOption, required: false },
|
|
1916
|
+
{ name: 'message', type: stringOrRegexOption, required: false },
|
|
1917
|
+
{ name: 'pageUrl', type: stringOrRegexOption, required: false },
|
|
1918
|
+
];
|
|
1919
|
+
};
|
|
1920
|
+
return SkipJsErrorsOptions;
|
|
1921
|
+
}(Assignable));
|
|
1836
1922
|
// Initializers
|
|
1837
1923
|
function initRequestAuthOption(name, val, initOptions, validate) {
|
|
1838
1924
|
if (validate === void 0) { validate = true; }
|
|
@@ -3545,7 +3631,7 @@ window['%hammerhead%'].utils.removeInjectedScript();
|
|
|
3545
3631
|
{ left: rect.left, top: rect.top, right: rect.left, bottom: rect.bottom, isHorizontal: false },
|
|
3546
3632
|
{ left: rect.right, top: rect.top, right: rect.right, bottom: rect.bottom, isHorizontal: false },
|
|
3547
3633
|
{ left: rect.left, top: rect.top, right: rect.right, bottom: rect.top, isHorizontal: true },
|
|
3548
|
-
{ left: rect.left, top: rect.bottom, right: rect.right, bottom: rect.bottom, isHorizontal: true },
|
|
3634
|
+
{ left: rect.left, top: rect.bottom, right: rect.right, bottom: rect.bottom, isHorizontal: true }, // bottom-side
|
|
3549
3635
|
];
|
|
3550
3636
|
for (var _i = 0, rectLines_1 = rectLines; _i < rectLines_1.length; _i++) {
|
|
3551
3637
|
var rectLine = rectLines_1[_i];
|
|
@@ -5607,7 +5693,7 @@ window['%hammerhead%'].utils.removeInjectedScript();
|
|
|
5607
5693
|
elementTop -= bodyMargin.top + (parseInt(bodyTop.replace('px', ''), 10) || 0);
|
|
5608
5694
|
}
|
|
5609
5695
|
arrayUtils$1.forEach(MODIFIERS_LIST, function (modifier) {
|
|
5610
|
-
fakeDivCssStyles += modifier
|
|
5696
|
+
fakeDivCssStyles += "".concat(modifier, ":").concat(styleUtils$6.get(element, modifier), ";");
|
|
5611
5697
|
});
|
|
5612
5698
|
styleUtils$6.set(fakeDiv, {
|
|
5613
5699
|
cssText: fakeDivCssStyles,
|