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
|
@@ -10,7 +10,7 @@ const promisified_functions_1 = require("../../promisified-functions");
|
|
|
10
10
|
const commands_1 = __importDefault(require("./commands"));
|
|
11
11
|
const WORKER_PATH = require.resolve('./worker');
|
|
12
12
|
const WORKER_STDIO_CONFIG = ['ignore', 'pipe', 'pipe', 'ipc'];
|
|
13
|
-
const DEBUG_LOGGER = debug_1.default('testcafe:utils:temp-directory:cleanup-process');
|
|
13
|
+
const DEBUG_LOGGER = (0, debug_1.default)('testcafe:utils:temp-directory:cleanup-process');
|
|
14
14
|
class CleanupProcess {
|
|
15
15
|
constructor() {
|
|
16
16
|
this.worker = null;
|
|
@@ -22,7 +22,7 @@ class CleanupProcess {
|
|
|
22
22
|
}
|
|
23
23
|
_sendMessage(id, msg) {
|
|
24
24
|
return Promise.race([
|
|
25
|
-
promisified_functions_1.sendMessageToChildProcess(this.worker, Object.assign({ id }, msg)),
|
|
25
|
+
(0, promisified_functions_1.sendMessageToChildProcess)(this.worker, Object.assign({ id }, msg)),
|
|
26
26
|
this._waitProcessError(),
|
|
27
27
|
]);
|
|
28
28
|
}
|
|
@@ -61,13 +61,13 @@ class CleanupProcess {
|
|
|
61
61
|
await this._waitResponse(currentId);
|
|
62
62
|
}
|
|
63
63
|
_waitProcessExit() {
|
|
64
|
-
return promisify_event_1.default(this.worker, 'exit')
|
|
64
|
+
return (0, promisify_event_1.default)(this.worker, 'exit')
|
|
65
65
|
.then(exitCode => Promise.reject(new Error(`Worker process terminated with code ${exitCode}`)));
|
|
66
66
|
}
|
|
67
67
|
_waitProcessError() {
|
|
68
68
|
if (this.errorPromise)
|
|
69
69
|
return this.errorPromise;
|
|
70
|
-
this.errorPromise = promisify_event_1.default(this.worker, 'error');
|
|
70
|
+
this.errorPromise = (0, promisify_event_1.default)(this.worker, 'error');
|
|
71
71
|
this.errorPromise.then(() => {
|
|
72
72
|
this.errorPromise = null;
|
|
73
73
|
});
|
|
@@ -94,7 +94,7 @@ class CleanupProcess {
|
|
|
94
94
|
.then(async (initialized) => {
|
|
95
95
|
if (initialized !== void 0)
|
|
96
96
|
return initialized;
|
|
97
|
-
this.worker = child_process_1.spawn(process.argv0, [WORKER_PATH], { detached: true, stdio: WORKER_STDIO_CONFIG });
|
|
97
|
+
this.worker = (0, child_process_1.spawn)(process.argv0, [WORKER_PATH], { detached: true, stdio: WORKER_STDIO_CONFIG });
|
|
98
98
|
this._setupWorkerEventHandlers();
|
|
99
99
|
this._unrefWorkerProcess();
|
|
100
100
|
const exitPromise = this._waitProcessExit();
|
|
@@ -142,4 +142,4 @@ class CleanupProcess {
|
|
|
142
142
|
}
|
|
143
143
|
exports.default = new CleanupProcess();
|
|
144
144
|
module.exports = exports.default;
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvdGVtcC1kaXJlY3RvcnkvY2xlYW51cC1wcm9jZXNzL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBQXNDO0FBQ3RDLGtEQUEwQjtBQUMxQixzRUFBNkM7QUFDN0MsdUVBQXdFO0FBQ3hFLDBEQUFrQztBQUdsQyxNQUFNLFdBQVcsR0FBVyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3hELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUU5RCxNQUFNLFlBQVksR0FBRyxlQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztBQUU1RSxNQUFNLGNBQWM7SUFDaEI7UUFDSSxJQUFJLENBQUMsTUFBTSxHQUFTLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFJLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUV6QixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUFZLENBQUUsRUFBRSxFQUFFLEdBQUc7UUFDakIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hCLGlEQUF5QixDQUFDLElBQUksQ0FBQyxNQUFNLGtCQUFJLEVBQUUsSUFBSyxHQUFHLEVBQUc7WUFDdEQsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1NBQzNCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXLENBQUUsUUFBUTtRQUNqQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JB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QUFDO1lBQ3ZFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuQjtJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUFFLElBQUk7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQ2pCLE9BQU87UUFFWCxJQUFJO1lBQ0EsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsRUFBRSxPQUFPLEVBQUUsa0JBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUMxRTtRQUNELE9BQU8sQ0FBQyxFQUFFO1lBQ04sWUFBWSxDQUFDLHdCQUF3QixJQUFJLCtCQUErQixDQUFDLENBQUM7WUFDMUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztDQUNKO0FBRUQsa0JBQWUsSUFBSSxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwYXduIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHByb21pc2lmeUV2ZW50IGZyb20gJ3Byb21pc2lmeS1ldmVudCc7XG5pbXBvcnQgeyBzZW5kTWVzc2FnZVRvQ2hpbGRQcm9jZXNzIH0gZnJvbSAnLi4vLi4vcHJvbWlzaWZpZWQtZnVuY3Rpb25zJztcbmltcG9ydCBDT01NQU5EUyBmcm9tICcuL2NvbW1hbmRzJztcblxuXG5jb25zdCBXT1JLRVJfUEFUSCAgICAgICAgID0gcmVxdWlyZS5yZXNvbHZlKCcuL3dvcmtlcicpO1xuY29uc3QgV09SS0VSX1NURElPX0NPTkZJRyA9IFsnaWdub3JlJywgJ3BpcGUnLCAncGlwZScsICdpcGMnXTtcblxuY29uc3QgREVCVUdfTE9HR0VSID0gZGVidWcoJ3Rlc3RjYWZlOnV0aWxzOnRlbXAtZGlyZWN0b3J5OmNsZWFudXAtcHJvY2VzcycpO1xuXG5jbGFzcyBDbGVhbnVwUHJvY2VzcyB7XG4gICAgY29uc3RydWN0b3IgKCkge1xuICAgICAgICB0aGlzLndvcmtlciAgICAgICA9IG51bGw7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaW5pdFByb21pc2UgID0gUHJvbWlzZS5yZXNvbHZlKHZvaWQgMCk7XG4gICAgICAgIHRoaXMuZXJyb3JQcm9taXNlID0gbnVsbDtcblxuICAgICAgICB0aGlzLm1lc3NhZ2VDb3VudGVyID0gMDtcblxuICAgICAgICB0aGlzLnBlbmRpbmdSZXNwb25zZXMgPSB7fTtcbiAgICB9XG5cbiAgICBfc2VuZE1lc3NhZ2UgKGlkLCBtc2cpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmFjZShbXG4gICAgICAgICAgICBzZW5kTWVzc2FnZVRvQ2hpbGRQcm9jZXNzKHRoaXMud29ya2VyLCB7IGlkLCAuLi5tc2cgfSksXG4gICAgICAgICAgICB0aGlzLl93YWl0UHJvY2Vzc0Vycm9yKCksXG4gICAgICAgIF0pO1xuICAgIH1cblxuICAgIF9vblJlc3BvbnNlIChyZXNwb25zZSkge1xuICAgICAgICBjb25zdCBwZW5kaW5nUmVzcG9uc2UgPSB0aGlzLnBlbmRpbmdSZXNwb25zZXNbcmVzcG9uc2UuaWRdO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5lcnJvcikge1xuICAgICAgICAgICAgaWYgKHBlbmRpbmdSZXNwb25zZSlcbiAgICAgICAgICAgICAgICBwZW5kaW5nUmVzcG9uc2UuY29udHJvbC5yZWplY3QocmVzcG9uc2UuZXJyb3IpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ1Jlc3BvbnNlc1tyZXNwb25zZS5pZF0gPSBQcm9taXNlLnJlamVjdChyZXNwb25zZS5lcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocGVuZGluZ1Jlc3BvbnNlKVxuICAgICAgICAgICAgcGVuZGluZ1Jlc3BvbnNlLmNvbnRyb2wucmVzb2x2ZSgpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdSZXNwb25zZXNbcmVzcG9uc2UuaWRdID0gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgX3dhaXRSZXNwb25zZSAoaWQpIHtcbiAgICAgICAgaWYgKCF0aGlzLnBlbmRpbmdSZXNwb25zZXNbaWRdKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9taXNlQ29udHJvbCA9IHt9O1xuXG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdSZXNwb25zZXNbaWRdID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocHJvbWlzZUNvbnRyb2wsIHsgcmVzb2x2ZSwgcmVqZWN0IH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMucGVuZGluZ1Jlc3BvbnNlc1tpZF0uY29udHJvbCA9IHByb21pc2VDb250cm9sO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucGVuZGluZ1Jlc3BvbnNlc1tpZF07XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5wZW5kaW5nUmVzcG9uc2VzW2lkXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIF93YWl0UmVzcG9uc2VGb3JNZXNzYWdlIChtc2cpIHtcbiAgICAgICAgY29uc3QgY3VycmVudElkID0gdGhpcy5tZXNzYWdlQ291bnRlcjtcblxuICAgICAgICB0aGlzLm1lc3NhZ2VDb3VudGVyKys7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fc2VuZE1lc3NhZ2UoY3VycmVudElkLCBtc2cpO1xuICAgICAgICBhd2FpdCB0aGlzLl93YWl0UmVzcG9uc2UoY3VycmVudElkKTtcbiAgICB9XG5cbiAgICBfd2FpdFByb2Nlc3NFeGl0ICgpIHtcbiAgICAgICAgcmV0dXJuIHByb21pc2lmeUV2ZW50KHRoaXMud29ya2VyLCAnZXhpdCcpXG4gICAgICAgICAgICAudGhlbihleGl0Q29kZSA9PiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoYFdvcmtlciBwcm9jZXNzIHRlcm1pbmF0ZWQgd2l0aCBjb2RlICR7ZXhpdENvZGV9YCkpKTtcbiAgICB9XG5cbiAgICBfd2FpdFByb2Nlc3NFcnJvciAoKSB7XG4gICAgICAgIGlmICh0aGlzLmVycm9yUHJvbWlzZSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yUHJvbWlzZTtcblxuICAgICAgICB0aGlzLmVycm9yUHJvbWlzZSA9IHByb21pc2lmeUV2ZW50KHRoaXMud29ya2VyLCAnZXJyb3InKTtcblxuICAgICAgICB0aGlzLmVycm9yUHJvbWlzZS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JQcm9taXNlID0gbnVsbDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JQcm9taXNlO1xuICAgIH1cblxuICAgIF9zZXR1cFdvcmtlckV2ZW50SGFuZGxlcnMgKCkge1xuICAgICAgICB0aGlzLndvcmtlci5vbignbWVzc2FnZScsIG1lc3NhZ2UgPT4gdGhpcy5fb25SZXNwb25zZShtZXNzYWdlKSk7XG5cbiAgICAgICAgdGhpcy53b3JrZXIuc3Rkb3V0Lm9uKCdkYXRhJywgZGF0YSA9PiBERUJVR19MT0dHRVIoJ1dvcmtlciBwcm9jZXNzIHN0ZG91dDpcXG4nLCBTdHJpbmcoZGF0YSkpKTtcbiAgICAgICAgdGhpcy53b3JrZXIuc3RkZXJyLm9uKCdkYXRhJywgZGF0YSA9PiBERUJVR19MT0dHRVIoJ1dvcmtlciBwcm9jZXNzIHN0ZGVycjpcXG4nLCBTdHJpbmcoZGF0YSkpKTtcbiAgICB9XG5cbiAgICBfdW5yZWZXb3JrZXJQcm9jZXNzICgpIHtcbiAgICAgICAgdGhpcy53b3JrZXIudW5yZWYoKTtcbiAgICAgICAgdGhpcy53b3JrZXIuc3Rkb3V0LnVucmVmKCk7XG4gICAgICAgIHRoaXMud29ya2VyLnN0ZGVyci51bnJlZigpO1xuXG4gICAgICAgIGNvbnN0IGNoYW5uZWwgPSB0aGlzLndvcmtlci5jaGFubmVsIHx8IHRoaXMud29ya2VyLl9jaGFubmVsO1xuXG4gICAgICAgIGNoYW5uZWwudW5yZWYoKTtcbiAgICB9XG5cbiAgICBfaGFuZGxlUHJvY2Vzc0Vycm9yIChlcnJvcikge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICAgICAgREVCVUdfTE9HR0VSKGVycm9yKTtcbiAgICB9XG5cbiAgICBpbml0ICgpIHtcbiAgICAgICAgdGhpcy5pbml0UHJvbWlzZSA9IHRoaXMuaW5pdFByb21pc2VcbiAgICAgICAgICAgIC50aGVuKGFzeW5jIGluaXRpYWxpemVkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaW5pdGlhbGl6ZWQgIT09IHZvaWQgMClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGluaXRpYWxpemVkO1xuXG4gICAgICAgICAgICAgICAgdGhpcy53b3JrZXIgPSBzcGF3bihwcm9jZXNzLmFyZ3YwLCBbV09SS0VSX1BBVEhdLCB7IGRldGFjaGVkOiB0cnVlLCBzdGRpbzogV09SS0VSX1NURElPX0NPTkZJRyB9KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX3NldHVwV29ya2VyRXZlbnRIYW5kbGVycygpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VucmVmV29ya2VyUHJvY2VzcygpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZXhpdFByb21pc2UgPSB0aGlzLl93YWl0UHJvY2Vzc0V4aXQoKTtcblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl93YWl0UmVzcG9uc2VGb3JNZXNzYWdlKHsgY29tbWFuZDogQ09NTUFORFMuaW5pdCB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3dhaXRQcm9jZXNzRXJyb3IoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4aXRQcm9taXNlLFxuICAgICAgICAgICAgICAgICAgICBdKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgICAgICBleGl0UHJvbWlzZS5jYXRjaChlcnJvciA9PiB0aGlzLl9oYW5kbGVQcm9jZXNzRXJyb3IoZXJyb3IpKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLndvcmtlci5vbignZXJyb3InLCBlcnJvciA9PiB0aGlzLl9oYW5kbGVQcm9jZXNzRXJyb3IoZXJyb3IpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgREVCVUdfTE9HR0VSKCdGYWlsZWQgdG8gc3RhcnQgY2xlYW51cCBwcm9jZXNzJyk7XG4gICAgICAgICAgICAgICAgICAgIERFQlVHX0xPR0dFUihlKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZWQ7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5pbml0UHJvbWlzZTtcbiAgICB9XG5cbiAgICBhc3luYyBhZGREaXJlY3RvcnkgKHBhdGgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLl93YWl0UmVzcG9uc2VGb3JNZXNzYWdlKHsgY29tbWFuZDogQ09NTUFORFMuYWRkLCBwYXRoIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBERUJVR19MT0dHRVIoYEZhaWxlZCB0byBhZGQgdGhlICR7cGF0aH0gZGlyZWN0b3J5IHRvIGNsZWFudXAgcHJvY2Vzc2ApO1xuICAgICAgICAgICAgREVCVUdfTE9HR0VSKGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgcmVtb3ZlRGlyZWN0b3J5IChwYXRoKSB7XG4gICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fd2FpdFJlc3BvbnNlRm9yTWVzc2FnZSh7IGNvbW1hbmQ6IENPTU1BTkRTLnJlbW92ZSwgcGF0aCB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgREVCVUdfTE9HR0VSKGBGYWlsZWQgdG8gcmVtb3ZlIHRoZSAke3BhdGh9IGRpcmVjdG9yeSBpbiBjbGVhbnVwIHByb2Nlc3NgKTtcbiAgICAgICAgICAgIERFQlVHX0xPR0dFUihlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IENsZWFudXBQcm9jZXNzKCk7XG4iXX0=
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvdGVtcC1kaXJlY3RvcnkvY2xlYW51cC1wcm9jZXNzL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBQXNDO0FBQ3RDLGtEQUEwQjtBQUMxQixzRUFBNkM7QUFDN0MsdUVBQXdFO0FBQ3hFLDBEQUFrQztBQUdsQyxNQUFNLFdBQVcsR0FBVyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3hELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUU5RCxNQUFNLFlBQVksR0FBRyxJQUFBLGVBQUssRUFBQywrQ0FBK0MsQ0FBQyxDQUFDO0FBRTVFLE1BQU0sY0FBYztJQUNoQjtRQUNJLElBQUksQ0FBQyxNQUFNLEdBQVMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUksS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBRXpCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQVksQ0FBRSxFQUFFLEVBQUUsR0FBRztRQUNqQixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsSUFBQSxpREFBeUIsRUFBQyxJQUFJLENBQUMsTUFBTSxrQkFBSSxFQUFFLElBQUssR0FBRyxFQUFHO1lBQ3RELElBQUksQ0FBQyxpQkFBaUIsRUFBRTtTQUMzQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVyxDQUFFLFFBQVE7UUFDakIsTUFBTSxlQUFlLEdBQUcsSUFB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cUJBQXFCLElBQUksK0JBQStCLENBQUMsQ0FBQztZQUN2RSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbkI7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FBRSxJQUFJO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztZQUNqQixPQUFPO1FBRVgsSUFBSTtZQUNBLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsT0FBTyxFQUFFLGtCQUFRLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDMUU7UUFDRCxPQUFPLENBQUMsRUFBRTtZQUNOLFlBQVksQ0FBQyx3QkFBd0IsSUFBSSwrQkFBK0IsQ0FBQyxDQUFDO1lBQzFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuQjtJQUNMLENBQUM7Q0FDSjtBQUVELGtCQUFlLElBQUksY0FBYyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzcGF3biB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBwcm9taXNpZnlFdmVudCBmcm9tICdwcm9taXNpZnktZXZlbnQnO1xuaW1wb3J0IHsgc2VuZE1lc3NhZ2VUb0NoaWxkUHJvY2VzcyB9IGZyb20gJy4uLy4uL3Byb21pc2lmaWVkLWZ1bmN0aW9ucyc7XG5pbXBvcnQgQ09NTUFORFMgZnJvbSAnLi9jb21tYW5kcyc7XG5cblxuY29uc3QgV09SS0VSX1BBVEggICAgICAgICA9IHJlcXVpcmUucmVzb2x2ZSgnLi93b3JrZXInKTtcbmNvbnN0IFdPUktFUl9TVERJT19DT05GSUcgPSBbJ2lnbm9yZScsICdwaXBlJywgJ3BpcGUnLCAnaXBjJ107XG5cbmNvbnN0IERFQlVHX0xPR0dFUiA9IGRlYnVnKCd0ZXN0Y2FmZTp1dGlsczp0ZW1wLWRpcmVjdG9yeTpjbGVhbnVwLXByb2Nlc3MnKTtcblxuY2xhc3MgQ2xlYW51cFByb2Nlc3Mge1xuICAgIGNvbnN0cnVjdG9yICgpIHtcbiAgICAgICAgdGhpcy53b3JrZXIgICAgICAgPSBudWxsO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkICA9IGZhbHNlO1xuICAgICAgICB0aGlzLmluaXRQcm9taXNlICA9IFByb21pc2UucmVzb2x2ZSh2b2lkIDApO1xuICAgICAgICB0aGlzLmVycm9yUHJvbWlzZSA9IG51bGw7XG5cbiAgICAgICAgdGhpcy5tZXNzYWdlQ291bnRlciA9IDA7XG5cbiAgICAgICAgdGhpcy5wZW5kaW5nUmVzcG9uc2VzID0ge307XG4gICAgfVxuXG4gICAgX3NlbmRNZXNzYWdlIChpZCwgbXNnKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJhY2UoW1xuICAgICAgICAgICAgc2VuZE1lc3NhZ2VUb0NoaWxkUHJvY2Vzcyh0aGlzLndvcmtlciwgeyBpZCwgLi4ubXNnIH0pLFxuICAgICAgICAgICAgdGhpcy5fd2FpdFByb2Nlc3NFcnJvcigpLFxuICAgICAgICBdKTtcbiAgICB9XG5cbiAgICBfb25SZXNwb25zZSAocmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgcGVuZGluZ1Jlc3BvbnNlID0gdGhpcy5wZW5kaW5nUmVzcG9uc2VzW3Jlc3BvbnNlLmlkXTtcblxuICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChwZW5kaW5nUmVzcG9uc2UpXG4gICAgICAgICAgICAgICAgcGVuZGluZ1Jlc3BvbnNlLmNvbnRyb2wucmVqZWN0KHJlc3BvbnNlLmVycm9yKTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdSZXNwb25zZXNbcmVzcG9uc2UuaWRdID0gUHJvbWlzZS5yZWplY3QocmVzcG9uc2UuZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHBlbmRpbmdSZXNwb25zZSlcbiAgICAgICAgICAgIHBlbmRpbmdSZXNwb25zZS5jb250cm9sLnJlc29sdmUoKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhpcy5wZW5kaW5nUmVzcG9uc2VzW3Jlc3BvbnNlLmlkXSA9IFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIGFzeW5jIF93YWl0UmVzcG9uc2UgKGlkKSB7XG4gICAgICAgIGlmICghdGhpcy5wZW5kaW5nUmVzcG9uc2VzW2lkXSkge1xuICAgICAgICAgICAgY29uc3QgcHJvbWlzZUNvbnRyb2wgPSB7fTtcblxuICAgICAgICAgICAgdGhpcy5wZW5kaW5nUmVzcG9uc2VzW2lkXSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHByb21pc2VDb250cm9sLCB7IHJlc29sdmUsIHJlamVjdCB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdSZXNwb25zZXNbaWRdLmNvbnRyb2wgPSBwcm9taXNlQ29udHJvbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnBlbmRpbmdSZXNwb25zZXNbaWRdO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMucGVuZGluZ1Jlc3BvbnNlc1tpZF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBfd2FpdFJlc3BvbnNlRm9yTWVzc2FnZSAobXNnKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJZCA9IHRoaXMubWVzc2FnZUNvdW50ZXI7XG5cbiAgICAgICAgdGhpcy5tZXNzYWdlQ291bnRlcisrO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuX3NlbmRNZXNzYWdlKGN1cnJlbnRJZCwgbXNnKTtcbiAgICAgICAgYXdhaXQgdGhpcy5fd2FpdFJlc3BvbnNlKGN1cnJlbnRJZCk7XG4gICAgfVxuXG4gICAgX3dhaXRQcm9jZXNzRXhpdCAoKSB7XG4gICAgICAgIHJldHVybiBwcm9taXNpZnlFdmVudCh0aGlzLndvcmtlciwgJ2V4aXQnKVxuICAgICAgICAgICAgLnRoZW4oZXhpdENvZGUgPT4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKGBXb3JrZXIgcHJvY2VzcyB0ZXJtaW5hdGVkIHdpdGggY29kZSAke2V4aXRDb2RlfWApKSk7XG4gICAgfVxuXG4gICAgX3dhaXRQcm9jZXNzRXJyb3IgKCkge1xuICAgICAgICBpZiAodGhpcy5lcnJvclByb21pc2UpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvclByb21pc2U7XG5cbiAgICAgICAgdGhpcy5lcnJvclByb21pc2UgPSBwcm9taXNpZnlFdmVudCh0aGlzLndvcmtlciwgJ2Vycm9yJyk7XG5cbiAgICAgICAgdGhpcy5lcnJvclByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVycm9yUHJvbWlzZSA9IG51bGw7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9yUHJvbWlzZTtcbiAgICB9XG5cbiAgICBfc2V0dXBXb3JrZXJFdmVudEhhbmRsZXJzICgpIHtcbiAgICAgICAgdGhpcy53b3JrZXIub24oJ21lc3NhZ2UnLCBtZXNzYWdlID0+IHRoaXMuX29uUmVzcG9uc2UobWVzc2FnZSkpO1xuXG4gICAgICAgIHRoaXMud29ya2VyLnN0ZG91dC5vbignZGF0YScsIGRhdGEgPT4gREVCVUdfTE9HR0VSKCdXb3JrZXIgcHJvY2VzcyBzdGRvdXQ6XFxuJywgU3RyaW5nKGRhdGEpKSk7XG4gICAgICAgIHRoaXMud29ya2VyLnN0ZGVyci5vbignZGF0YScsIGRhdGEgPT4gREVCVUdfTE9HR0VSKCdXb3JrZXIgcHJvY2VzcyBzdGRlcnI6XFxuJywgU3RyaW5nKGRhdGEpKSk7XG4gICAgfVxuXG4gICAgX3VucmVmV29ya2VyUHJvY2VzcyAoKSB7XG4gICAgICAgIHRoaXMud29ya2VyLnVucmVmKCk7XG4gICAgICAgIHRoaXMud29ya2VyLnN0ZG91dC51bnJlZigpO1xuICAgICAgICB0aGlzLndvcmtlci5zdGRlcnIudW5yZWYoKTtcblxuICAgICAgICBjb25zdCBjaGFubmVsID0gdGhpcy53b3JrZXIuY2hhbm5lbCB8fCB0aGlzLndvcmtlci5fY2hhbm5lbDtcblxuICAgICAgICBjaGFubmVsLnVucmVmKCk7XG4gICAgfVxuXG4gICAgX2hhbmRsZVByb2Nlc3NFcnJvciAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgICAgIERFQlVHX0xPR0dFUihlcnJvcik7XG4gICAgfVxuXG4gICAgaW5pdCAoKSB7XG4gICAgICAgIHRoaXMuaW5pdFByb21pc2UgPSB0aGlzLmluaXRQcm9taXNlXG4gICAgICAgICAgICAudGhlbihhc3luYyBpbml0aWFsaXplZCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGluaXRpYWxpemVkICE9PSB2b2lkIDApXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpbml0aWFsaXplZDtcblxuICAgICAgICAgICAgICAgIHRoaXMud29ya2VyID0gc3Bhd24ocHJvY2Vzcy5hcmd2MCwgW1dPUktFUl9QQVRIXSwgeyBkZXRhY2hlZDogdHJ1ZSwgc3RkaW86IFdPUktFUl9TVERJT19DT05GSUcgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9zZXR1cFdvcmtlckV2ZW50SGFuZGxlcnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91bnJlZldvcmtlclByb2Nlc3MoKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGV4aXRQcm9taXNlID0gdGhpcy5fd2FpdFByb2Nlc3NFeGl0KCk7XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fd2FpdFJlc3BvbnNlRm9yTWVzc2FnZSh7IGNvbW1hbmQ6IENPTU1BTkRTLmluaXQgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl93YWl0UHJvY2Vzc0Vycm9yKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBleGl0UHJvbWlzZSxcbiAgICAgICAgICAgICAgICAgICAgXSk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICAgICAgZXhpdFByb21pc2UuY2F0Y2goZXJyb3IgPT4gdGhpcy5faGFuZGxlUHJvY2Vzc0Vycm9yKGVycm9yKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JrZXIub24oJ2Vycm9yJywgZXJyb3IgPT4gdGhpcy5faGFuZGxlUHJvY2Vzc0Vycm9yKGVycm9yKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIERFQlVHX0xPR0dFUignRmFpbGVkIHRvIHN0YXJ0IGNsZWFudXAgcHJvY2VzcycpO1xuICAgICAgICAgICAgICAgICAgICBERUJVR19MT0dHRVIoZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVkO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaW5pdFByb21pc2U7XG4gICAgfVxuXG4gICAgYXN5bmMgYWRkRGlyZWN0b3J5IChwYXRoKSB7XG4gICAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fd2FpdFJlc3BvbnNlRm9yTWVzc2FnZSh7IGNvbW1hbmQ6IENPTU1BTkRTLmFkZCwgcGF0aCB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgREVCVUdfTE9HR0VSKGBGYWlsZWQgdG8gYWRkIHRoZSAke3BhdGh9IGRpcmVjdG9yeSB0byBjbGVhbnVwIHByb2Nlc3NgKTtcbiAgICAgICAgICAgIERFQlVHX0xPR0dFUihlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIHJlbW92ZURpcmVjdG9yeSAocGF0aCkge1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3dhaXRSZXNwb25zZUZvck1lc3NhZ2UoeyBjb21tYW5kOiBDT01NQU5EUy5yZW1vdmUsIHBhdGggfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIERFQlVHX0xPR0dFUihgRmFpbGVkIHRvIHJlbW92ZSB0aGUgJHtwYXRofSBkaXJlY3RvcnkgaW4gY2xlYW51cCBwcm9jZXNzYCk7XG4gICAgICAgICAgICBERUJVR19MT0dHRVIoZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBDbGVhbnVwUHJvY2VzcygpO1xuIl19
|
|
@@ -19,8 +19,8 @@ async function removeDirectory(dirPath) {
|
|
|
19
19
|
return;
|
|
20
20
|
let delPromise = DIRECTORIES_TO_CLEANUP[dirPath].delPromise;
|
|
21
21
|
if (!delPromise) {
|
|
22
|
-
delPromise = process_1.killBrowserProcess(path_1.default.basename(dirPath))
|
|
23
|
-
.then(() => del_1.default(dirPath, { force: true }));
|
|
22
|
+
delPromise = (0, process_1.killBrowserProcess)(path_1.default.basename(dirPath))
|
|
23
|
+
.then(() => (0, del_1.default)(dirPath, { force: true }));
|
|
24
24
|
DIRECTORIES_TO_CLEANUP[dirPath].delPromise = delPromise;
|
|
25
25
|
}
|
|
26
26
|
await DIRECTORIES_TO_CLEANUP[dirPath].delPromise;
|
|
@@ -45,7 +45,7 @@ process.on('message', async (message) => {
|
|
|
45
45
|
await dispatchCommand(message);
|
|
46
46
|
}
|
|
47
47
|
catch (e) {
|
|
48
|
-
error = util_1.inspect(e);
|
|
48
|
+
error = (0, util_1.inspect)(e);
|
|
49
49
|
}
|
|
50
50
|
process.send({ id: message.id, error });
|
|
51
51
|
});
|
|
@@ -56,4 +56,4 @@ process.on('disconnect', async () => {
|
|
|
56
56
|
await Promise.all(removePromises);
|
|
57
57
|
process.exit(0); //eslint-disable-line no-process-exit
|
|
58
58
|
});
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3RlbXAtZGlyZWN0b3J5L2NsZWFudXAtcHJvY2Vzcy93b3JrZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsK0JBQStCO0FBQy9CLDhDQUFzQjtBQUN0QixtQ0FBOEI7QUFDOUIsMkNBQW1EO0FBQ25ELDBEQUFrQztBQUdsQyxNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztBQUVsQyxTQUFTLFlBQVksQ0FBRSxPQUFPO0lBQzFCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUM7UUFDaEMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzdDLENBQUM7QUFFRCxLQUFLLFVBQVUsZUFBZSxDQUFFLE9BQU87SUFDbkMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQztRQUNoQyxPQUFPO0lBRVgsSUFBSSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBRTVELElBQUksQ0FBQyxVQUFVLEVBQUU7UUFDYixVQUFVLEdBQUcsSUFBQSw0QkFBa0IsRUFBQyxjQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ2xELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFBLGFBQUcsRUFBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRS9DLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7S0FDM0Q7SUFFRCxNQUFNLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUVqRCxPQUFPLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQztBQUN0RCxDQUFDO0FBRUQsS0FBSyxVQUFVLGVBQWUsQ0FBRSxPQUFPO0lBQ25DLFFBQVEsT0FBTyxDQUFDLE9BQU8sRUFBRTtRQUNyQixLQUFLLGtCQUFRLENBQUMsSUFBSTtZQUNkLE9BQU87UUFDWCxLQUFLLGtCQUFRLENBQUMsR0FBRztZQUNiLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsT0FBTztRQUNYLEtBQUssa0JBQVEsQ0FBQyxNQUFNO1lBQ2hCLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsTUFBTSxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLE9BQU87S0FDZDtBQUNMLENBQUM7QUFFRCxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsT0FBTyxFQUFDLEVBQUU7SUFDbEMsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRWYsSUFBSTtRQUNBLE1BQU0sZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ2xDO0lBQ0QsT0FBTyxDQUFDLEVBQUU7UUFDTixLQUFLLEdBQUcsSUFBQSxjQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdEI7SUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUM1QyxDQUFDLENBQUMsQ0FBQztBQUVILE9BQU8sQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxFQUFFO0lBQ2hDLE1BQU0sY0FBYyxHQUFHLE1BQU07U0FDeEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1NBQzVCLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBSSxDQUFDLENBQUMsQ0FBQztJQUUxRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFbEMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFDQUFxQztBQUMxRCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgaW5zcGVjdCB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IGRlbCBmcm9tICdkZWwnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBraWxsQnJvd3NlclByb2Nlc3MgfSBmcm9tICcuLi8uLi9wcm9jZXNzJztcbmltcG9ydCBDT01NQU5EUyBmcm9tICcuL2NvbW1hbmRzJztcblxuXG5jb25zdCBESVJFQ1RPUklFU19UT19DTEVBTlVQID0ge307XG5cbmZ1bmN0aW9uIGFkZERpcmVjdG9yeSAoZGlyUGF0aCkge1xuICAgIGlmICghRElSRUNUT1JJRVNfVE9fQ0xFQU5VUFtkaXJQYXRoXSlcbiAgICAgICAgRElSRUNUT1JJRVNfVE9fQ0xFQU5VUFtkaXJQYXRoXSA9IHt9O1xufVxuXG5hc3luYyBmdW5jdGlvbiByZW1vdmVEaXJlY3RvcnkgKGRpclBhdGgpIHtcbiAgICBpZiAoIURJUkVDVE9SSUVTX1RPX0NMRUFOVVBbZGlyUGF0aF0pXG4gICAgICAgIHJldHVybjtcblxuICAgIGxldCBkZWxQcm9taXNlID0gRElSRUNUT1JJRVNfVE9fQ0xFQU5VUFtkaXJQYXRoXS5kZWxQcm9taXNlO1xuXG4gICAgaWYgKCFkZWxQcm9taXNlKSB7XG4gICAgICAgIGRlbFByb21pc2UgPSBraWxsQnJvd3NlclByb2Nlc3MocGF0aC5iYXNlbmFtZShkaXJQYXRoKSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+IGRlbChkaXJQYXRoLCB7IGZvcmNlOiB0cnVlIH0pKTtcblxuICAgICAgICBESVJFQ1RPUklFU19UT19DTEVBTlVQW2RpclBhdGhdLmRlbFByb21pc2UgPSBkZWxQcm9taXNlO1xuICAgIH1cblxuICAgIGF3YWl0IERJUkVDVE9SSUVTX1RPX0NMRUFOVVBbZGlyUGF0aF0uZGVsUHJvbWlzZTtcblxuICAgIGRlbGV0ZSBESVJFQ1RPUklFU19UT19DTEVBTlVQW2RpclBhdGhdLmRlbFByb21pc2U7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRpc3BhdGNoQ29tbWFuZCAobWVzc2FnZSkge1xuICAgIHN3aXRjaCAobWVzc2FnZS5jb21tYW5kKSB7XG4gICAgICAgIGNhc2UgQ09NTUFORFMuaW5pdDpcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSBDT01NQU5EUy5hZGQ6XG4gICAgICAgICAgICBhZGREaXJlY3RvcnkobWVzc2FnZS5wYXRoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSBDT01NQU5EUy5yZW1vdmU6XG4gICAgICAgICAgICBhZGREaXJlY3RvcnkobWVzc2FnZS5wYXRoKTtcbiAgICAgICAgICAgIGF3YWl0IHJlbW92ZURpcmVjdG9yeShtZXNzYWdlLnBhdGgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgIH1cbn1cblxucHJvY2Vzcy5vbignbWVzc2FnZScsIGFzeW5jIG1lc3NhZ2UgPT4ge1xuICAgIGxldCBlcnJvciA9ICcnO1xuXG4gICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZGlzcGF0Y2hDb21tYW5kKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICBlcnJvciA9IGluc3BlY3QoZSk7XG4gICAgfVxuXG4gICAgcHJvY2Vzcy5zZW5kKHsgaWQ6IG1lc3NhZ2UuaWQsIGVycm9yIH0pO1xufSk7XG5cbnByb2Nlc3Mub24oJ2Rpc2Nvbm5lY3QnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVtb3ZlUHJvbWlzZXMgPSBPYmplY3RcbiAgICAgICAgLmtleXMoRElSRUNUT1JJRVNfVE9fQ0xFQU5VUClcbiAgICAgICAgLm1hcChkaXJQYXRoID0+IHJlbW92ZURpcmVjdG9yeShkaXJQYXRoKS5jYXRjaChub29wKSk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChyZW1vdmVQcm9taXNlcyk7XG5cbiAgICBwcm9jZXNzLmV4aXQoMCk7IC8vZXNsaW50LWRpc2FibGUtbGluZSBuby1wcm9jZXNzLWV4aXRcbn0pO1xuIl19
|
|
@@ -16,7 +16,7 @@ const promisified_functions_1 = require("../../utils/promisified-functions");
|
|
|
16
16
|
const TESTCAFE_TMP_DIRS_ROOT = path_1.default.join(os_1.default.tmpdir(), 'testcafe');
|
|
17
17
|
const DEFAULT_NAME_PREFIX = 'tmp';
|
|
18
18
|
const USED_TEMP_DIRS = {};
|
|
19
|
-
const DEBUG_LOGGER = debug_1.default('testcafe:utils:temp-directory');
|
|
19
|
+
const DEBUG_LOGGER = (0, debug_1.default)('testcafe:utils:temp-directory');
|
|
20
20
|
class TempDirectory {
|
|
21
21
|
constructor(namePrefix) {
|
|
22
22
|
this.namePrefix = namePrefix || DEFAULT_NAME_PREFIX;
|
|
@@ -24,7 +24,7 @@ class TempDirectory {
|
|
|
24
24
|
this.lockFile = null;
|
|
25
25
|
}
|
|
26
26
|
async _getTmpDirsList() {
|
|
27
|
-
const tmpDirNames = await promisified_functions_1.readDir(TempDirectory.TEMP_DIRECTORIES_ROOT);
|
|
27
|
+
const tmpDirNames = await (0, promisified_functions_1.readDir)(TempDirectory.TEMP_DIRECTORIES_ROOT);
|
|
28
28
|
return tmpDirNames
|
|
29
29
|
.filter(tmpDir => !USED_TEMP_DIRS[tmpDir])
|
|
30
30
|
.filter(tmpDir => path_1.default.basename(tmpDir).startsWith(this.namePrefix));
|
|
@@ -43,7 +43,7 @@ class TempDirectory {
|
|
|
43
43
|
}
|
|
44
44
|
async _createNewTmpDir() {
|
|
45
45
|
this.path = tmp_1.default.tmpNameSync({ dir: TempDirectory.TEMP_DIRECTORIES_ROOT, prefix: this.namePrefix + '-' });
|
|
46
|
-
await make_dir_1.default(this.path);
|
|
46
|
+
await (0, make_dir_1.default)(this.path);
|
|
47
47
|
this.lockFile = new lockfile_1.default(this.path);
|
|
48
48
|
this.lockFile.init();
|
|
49
49
|
}
|
|
@@ -62,7 +62,7 @@ class TempDirectory {
|
|
|
62
62
|
Object.values(USED_TEMP_DIRS).forEach(tmpDir => tmpDir._disposeSync());
|
|
63
63
|
}
|
|
64
64
|
async init() {
|
|
65
|
-
await make_dir_1.default(TempDirectory.TEMP_DIRECTORIES_ROOT);
|
|
65
|
+
await (0, make_dir_1.default)(TempDirectory.TEMP_DIRECTORIES_ROOT);
|
|
66
66
|
const tmpDirNames = await this._getTmpDirsList(this.namePrefix);
|
|
67
67
|
DEBUG_LOGGER('Found temp directories:', tmpDirNames);
|
|
68
68
|
const existingTmpDirFound = await this._findFreeTmpDir(tmpDirNames);
|
|
@@ -84,6 +84,6 @@ class TempDirectory {
|
|
|
84
84
|
exports.default = TempDirectory;
|
|
85
85
|
// NOTE: exposed for testing purposes
|
|
86
86
|
TempDirectory.TEMP_DIRECTORIES_ROOT = TESTCAFE_TMP_DIRS_ROOT;
|
|
87
|
-
async_exit_hook_1.default(TempDirectory.disposeDirectoriesSync);
|
|
87
|
+
(0, async_exit_hook_1.default)(TempDirectory.disposeDirectoriesSync);
|
|
88
88
|
module.exports = exports.default;
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvdGVtcC1kaXJlY3RvcnkvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsNENBQW9CO0FBQ3BCLGdEQUF3QjtBQUN4QixzRUFBNEM7QUFDNUMsOENBQXNCO0FBQ3RCLHdEQUErQjtBQUMvQiwwREFBa0M7QUFDbEMsd0VBQStDO0FBQy9DLDZFQUE0RDtBQUc1RCxxQ0FBcUM7QUFDckMsTUFBTSxzQkFBc0IsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFlBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNsRSxNQUFNLG1CQUFtQixHQUFNLEtBQUssQ0FBQztBQUNyQyxNQUFNLGNBQWMsR0FBVyxFQUFFLENBQUM7QUFDbEMsTUFBTSxZQUFZLEdBQWEsSUFBQSxlQUFLLEVBQUMsK0JBQStCLENBQUMsQ0FBQztBQUV0RSxNQUFxQixhQUFhO0lBQzlCLFlBQWEsVUFBVTtRQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxtQkFBbUIsQ0FBQztRQUVwRCxJQUFJLENBQUMsSUFBSSxHQUFPLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWU7UUFDakIsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFBLCtCQUFPLEVBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFdkUsT0FBTyxXQUFXO2FBQ2IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDekMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsY0FBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFD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QUFDO1FBRXhCLE1BQU0seUJBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhELE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0NBQ0o7QUE5RkQsZ0NBOEZDO0FBRUQscUNBQXFDO0FBQ3JDLGFBQWEsQ0FBQyxxQkFBcUIsR0FBRyxzQkFBc0IsQ0FBQztBQUU3RCxJQUFBLHlCQUFhLEVBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHNldHVwRXhpdEhvb2sgZnJvbSAnYXN5bmMtZXhpdC1ob29rJztcbmltcG9ydCB0bXAgZnJvbSAndG1wJztcbmltcG9ydCBtYWtlRGlyIGZyb20gJ21ha2UtZGlyJztcbmltcG9ydCBMb2NrRmlsZSBmcm9tICcuL2xvY2tmaWxlJztcbmltcG9ydCBjbGVhbnVwUHJvY2VzcyBmcm9tICcuL2NsZWFudXAtcHJvY2Vzcyc7XG5pbXBvcnQgeyByZWFkRGlyIH0gZnJvbSAnLi4vLi4vdXRpbHMvcHJvbWlzaWZpZWQtZnVuY3Rpb25zJztcblxuXG4vLyBOT1RFOiBtdXRhYmxlIGZvciB0ZXN0aW5nIHB1cnBvc2VzXG5jb25zdCBURVNUQ0FGRV9UTVBfRElSU19ST09UID0gcGF0aC5qb2luKG9zLnRtcGRpcigpLCAndGVzdGNhZmUnKTtcbmNvbnN0IERFRkFVTFRfTkFNRV9QUkVGSVggICAgPSAndG1wJztcbmNvbnN0IFVTRURfVEVNUF9ESVJTICAgICAgICAgPSB7fTtcbmNvbnN0IERFQlVHX0xPR0dFUiAgICAgICAgICAgPSBkZWJ1ZygndGVzdGNhZmU6dXRpbHM6dGVtcC1kaXJlY3RvcnknKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVtcERpcmVjdG9yeSB7XG4gICAgY29uc3RydWN0b3IgKG5hbWVQcmVmaXgpIHtcbiAgICAgICAgdGhpcy5uYW1lUHJlZml4ID0gbmFtZVByZWZpeCB8fCBERUZBVUxUX05BTUVfUFJFRklYO1xuXG4gICAgICAgIHRoaXMucGF0aCAgICAgPSAnJztcbiAgICAgICAgdGhpcy5sb2NrRmlsZSA9IG51bGw7XG4gICAgfVxuXG4gICAgYXN5bmMgX2dldFRtcERpcnNMaXN0ICgpIHtcbiAgICAgICAgY29uc3QgdG1wRGlyTmFtZXMgPSBhd2FpdCByZWFkRGlyKFRlbXBEaXJlY3RvcnkuVEVNUF9ESVJFQ1RPUklFU19ST09UKTtcblxuICAgICAgICByZXR1cm4gdG1wRGlyTmFtZXNcbiAgICAgICAgICAgIC5maWx0ZXIodG1wRGlyID0+ICFVU0VEX1RFTVBfRElSU1t0bXBEaXJdKVxuICAgICAgICAgICAgLmZpbHRlcih0bXBEaXIgPT4gcGF0aC5iYXNlbmFtZSh0bXBEaXIpLnN0YXJ0c1dpdGgodGhpcy5uYW1lUHJlZml4KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgX2ZpbmRGcmVlVG1wRGlyICh0bXBEaXJOYW1lcykge1xuICAgICAgICBmb3IgKGNvbnN0IHRtcERpck5hbWUgb2YgdG1wRGlyTmFtZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRtcERpclBhdGggPSBwYXRoLmpvaW4oVGVtcERpcmVjdG9yeS5URU1QX0RJUkVDVE9SSUVTX1JPT1QsIHRtcERpck5hbWUpO1xuXG4gICAgICAgICAgICBjb25zdCBsb2NrRmlsZSA9IG5ldyBMb2NrRmlsZSh0bXBEaXJQYXRoKTtcblxuICAgICAgICAgICAgaWYgKGxvY2tGaWxlLmluaXQoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGF0aCAgICAgPSB0bXBEaXJQYXRoO1xuICAgICAgICAgICAgICAgIHRoaXMubG9ja0ZpbGUgPSBsb2NrRmlsZTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGFzeW5jIF9jcmVhdGVOZXdUbXBEaXIgKCkge1xuICAgICAgICB0aGlzLnBhdGggPSB0bXAudG1wTmFtZVN5bmMoeyBkaXI6IFRlbXBEaXJlY3RvcnkuVEVNUF9ESVJFQ1RPUklFU19ST09ULCBwcmVmaXg6IHRoaXMubmFtZVByZWZpeCArICctJyB9KTtcblxuICAgICAgICBhd2FpdCBtYWtlRGlyKHRoaXMucGF0aCk7XG5cbiAgICAgICAgdGhpcy5sb2NrRmlsZSA9IG5ldyBMb2NrRmlsZSh0aGlzLnBhdGgpO1xuXG4gICAgICAgIHRoaXMubG9ja0ZpbGUuaW5pdCgpO1xuICAgIH1cblxuICAgIF9kaXNwb3NlU3luYyAoKSB7XG4gICAgICAgIGlmICghVVNFRF9URU1QX0RJUlNbdGhpcy5wYXRoXSlcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICB0aGlzLmxvY2tGaWxlLmRpc3Bvc2UoKTtcblxuICAgICAgICBkZWxldGUgVVNFRF9URU1QX0RJUlNbdGhpcy5wYXRoXTtcbiAgICB9XG5cbiAgICBzdGF0aWMgYXN5bmMgY3JlYXRlRGlyZWN0b3J5IChwcmVmaXgpIHtcbiAgICAgICAgY29uc3QgdG1wRGlyID0gbmV3IFRlbXBEaXJlY3RvcnkocHJlZml4KTtcblxuICAgICAgICBhd2FpdCB0bXBEaXIuaW5pdCgpO1xuXG4gICAgICAgIHJldHVybiB0bXBEaXI7XG4gICAgfVxuXG4gICAgc3RhdGljIGRpc3Bvc2VEaXJlY3Rvcmllc1N5bmMgKCkge1xuICAgICAgICBPYmplY3QudmFsdWVzKFVTRURfVEVNUF9ESVJTKS5mb3JFYWNoKHRtcERpciA9PiB0bXBEaXIuX2Rpc3Bvc2VTeW5jKCkpO1xuICAgIH1cblxuICAgIGFzeW5jIGluaXQgKCkge1xuICAgICAgICBhd2FpdCBtYWtlRGlyKFRlbXBEaXJlY3RvcnkuVEVNUF9ESVJFQ1RPUklFU19ST09UKTtcblxuICAgICAgICBjb25zdCB0bXBEaXJOYW1lcyA9IGF3YWl0IHRoaXMuX2dldFRtcERpcnNMaXN0KHRoaXMubmFtZVByZWZpeCk7XG5cbiAgICAgICAgREVCVUdfTE9HR0VSKCdGb3VuZCB0ZW1wIGRpcmVjdG9yaWVzOicsIHRtcERpck5hbWVzKTtcblxuICAgICAgICBjb25zdCBleGlzdGluZ1RtcERpckZvdW5kID0gYXdhaXQgdGhpcy5fZmluZEZyZWVUbXBEaXIodG1wRGlyTmFtZXMpO1xuXG4gICAgICAgIGlmICghZXhpc3RpbmdUbXBEaXJGb3VuZClcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2NyZWF0ZU5ld1RtcERpcigpO1xuXG4gICAgICAgIERFQlVHX0xPR0dFUignVGVtcCBkaXJlY3RvcnkgcGF0aDogJywgdGhpcy5wYXRoKTtcblxuICAgICAgICBhd2FpdCBjbGVhbnVwUHJvY2Vzcy5pbml0KCk7XG4gICAgICAgIGF3YWl0IGNsZWFudXBQcm9jZXNzLmFkZERpcmVjdG9yeSh0aGlzLnBhdGgpO1xuXG4gICAgICAgIFVTRURfVEVNUF9ESVJTW3RoaXMucGF0aF0gPSB0aGlzO1xuICAgIH1cblxuICAgIGFzeW5jIGRpc3Bvc2UgKCkge1xuICAgICAgICBpZiAoIVVTRURfVEVNUF9ESVJTW3RoaXMucGF0aF0pXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgdGhpcy5sb2NrRmlsZS5kaXNwb3NlKCk7XG5cbiAgICAgICAgYXdhaXQgY2xlYW51cFByb2Nlc3MucmVtb3ZlRGlyZWN0b3J5KHRoaXMucGF0aCk7XG5cbiAgICAgICAgZGVsZXRlIFVTRURfVEVNUF9ESVJTW3RoaXMucGF0aF07XG4gICAgfVxufVxuXG4vLyBOT1RFOiBleHBvc2VkIGZvciB0ZXN0aW5nIHB1cnBvc2VzXG5UZW1wRGlyZWN0b3J5LlRFTVBfRElSRUNUT1JJRVNfUk9PVCA9IFRFU1RDQUZFX1RNUF9ESVJTX1JPT1Q7XG5cbnNldHVwRXhpdEhvb2soVGVtcERpcmVjdG9yeS5kaXNwb3NlRGlyZWN0b3JpZXNTeW5jKTtcbiJdfQ==
|
|
@@ -8,7 +8,7 @@ const debug_1 = __importDefault(require("debug"));
|
|
|
8
8
|
const fs_1 = __importDefault(require("fs"));
|
|
9
9
|
const LOCKFILE_NAME = '.testcafe-lockfile';
|
|
10
10
|
const STALE_LOCKFILE_AGE = 2 * 24 * 60 * 60 * 1000;
|
|
11
|
-
const DEBUG_LOGGER = debug_1.default('testcafe:utils:temp-directory:lockfile');
|
|
11
|
+
const DEBUG_LOGGER = (0, debug_1.default)('testcafe:utils:temp-directory:lockfile');
|
|
12
12
|
class LockFile {
|
|
13
13
|
constructor(dirPath) {
|
|
14
14
|
this.path = path_1.default.join(dirPath, LOCKFILE_NAME);
|
|
@@ -55,4 +55,4 @@ class LockFile {
|
|
|
55
55
|
}
|
|
56
56
|
exports.default = LockFile;
|
|
57
57
|
module.exports = exports.default;
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ja2ZpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvdGVtcC1kaXJlY3RvcnkvbG9ja2ZpbGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsa0RBQTBCO0FBQzFCLDRDQUFvQjtBQUdwQixNQUFNLGFBQWEsR0FBUSxvQkFBb0IsQ0FBQztBQUNoRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDbkQsTUFBTSxZQUFZLEdBQVMsSUFBQSxlQUFLLEVBQUMsd0NBQXdDLENBQUMsQ0FBQztBQUUzRSxNQUFxQixRQUFRO0lBQ3pCLFlBQWEsT0FBTztRQUNoQixJQUFJLENBQUMsSUFBSSxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxLQUFLLENBQUUsRUFBRSxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRTtRQUN6QixJQUFJO1lBQ0EsWUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUU5RCxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsT0FBTyxDQUFDLEVBQUU7WUFDTixZQUFZLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JELFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVoQixPQUFPLEtBQUssQ0FBQztTQUNoQjtJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ0osTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRTdCLElBQUk7WUFDQSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsWUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFM0MsT0FBTyxTQUFTLEdBQUcsT0FBTyxHQUFHLGtCQUFrQixDQUFDO1NBQ25EO1FBQ0QsT0FBTyxDQUFDLEVBQUU7WUFDTixZQUFZLENBQUMscUNBQXFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVoQixPQUFPLEtBQUssQ0FBQztTQUNoQjtJQUNMLENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1osT0FBTyxJQUFJLENBQUM7UUFFaEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFdkMsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJO1lBQ0EsWUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUI7UUFDRCxPQUFPLENBQUMsRUFBRTtZQUNOLFlBQVksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEQsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztDQUNKO0FBdERELDJCQXNEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5cblxuY29uc3QgTE9DS0ZJTEVfTkFNRSAgICAgID0gJy50ZXN0Y2FmZS1sb2NrZmlsZSc7XG5jb25zdCBTVEFMRV9MT0NLRklMRV9BR0UgPSAyICogMjQgKiA2MCAqIDYwICogMTAwMDtcbmNvbnN0IERFQlVHX0xPR0dFUiAgICAgICA9IGRlYnVnKCd0ZXN0Y2FmZTp1dGlsczp0ZW1wLWRpcmVjdG9yeTpsb2NrZmlsZScpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2NrRmlsZSB7XG4gICAgY29uc3RydWN0b3IgKGRpclBhdGgpIHtcbiAgICAgICAgdGhpcy5wYXRoID0gcGF0aC5qb2luKGRpclBhdGgsIExPQ0tGSUxFX05BTUUpO1xuICAgIH1cblxuICAgIF9vcGVuICh7IGZvcmNlID0gZmFsc2UgfSA9IHt9KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMucGF0aCwgJycsIHsgZmxhZzogZm9yY2UgPyAndycgOiAnd3gnIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgREVCVUdfTE9HR0VSKCdGYWlsZWQgdG8gaW5pdCBsb2NrZmlsZSAnICsgdGhpcy5wYXRoKTtcbiAgICAgICAgICAgIERFQlVHX0xPR0dFUihlKTtcblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX2lzU3RhbGUgKCkge1xuICAgICAgICBjb25zdCBjdXJyZW50TXMgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB7IG10aW1lTXMgfSA9IGZzLnN0YXRTeW5jKHRoaXMucGF0aCk7XG5cbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50TXMgLSBtdGltZU1zID4gU1RBTEVfTE9DS0ZJTEVfQUdFO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBERUJVR19MT0dHRVIoJ0ZhaWxlZCB0byBjaGVjayBzdGF0dXMgb2YgbG9ja2ZpbGUgJyArIHRoaXMucGF0aCk7XG4gICAgICAgICAgICBERUJVR19MT0dHRVIoZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluaXQgKCkge1xuICAgICAgICBpZiAodGhpcy5fb3BlbigpKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuX2lzU3RhbGUoKSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9vcGVuKHsgZm9yY2U6IHRydWUgfSk7XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGRpc3Bvc2UgKCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZnMudW5saW5rU3luYyh0aGlzLnBhdGgpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBERUJVR19MT0dHRVIoJ0ZhaWxlZCB0byBkaXNwb3NlIGxvY2tmaWxlICcgKyB0aGlzLnBhdGgpO1xuICAgICAgICAgICAgREVCVUdfTE9HR0VSKGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -33,7 +33,7 @@ const DELAY_AFTER_EMPTY_FRAME = 50;
|
|
|
33
33
|
class VideoRecorder extends async_event_emitter_1.default {
|
|
34
34
|
constructor(basePath, ffmpegPath, connection, customOptions) {
|
|
35
35
|
super();
|
|
36
|
-
this.debugLogger = debug_1.default(DEBUG_LOGGER_PREFIX + connection.id);
|
|
36
|
+
this.debugLogger = (0, debug_1.default)(DEBUG_LOGGER_PREFIX + connection.id);
|
|
37
37
|
this.customOptions = customOptions;
|
|
38
38
|
this.videoPath = basePath;
|
|
39
39
|
this.connection = connection;
|
|
@@ -68,7 +68,7 @@ class VideoRecorder extends async_event_emitter_1.default {
|
|
|
68
68
|
}
|
|
69
69
|
_getOptionsList() {
|
|
70
70
|
const optionsObject = Object.assign({}, DEFAULT_OPTIONS, this.customOptions);
|
|
71
|
-
const optionsList = lodash_1.flatten(Object.entries(optionsObject).map(VideoRecorder._filterOption));
|
|
71
|
+
const optionsList = (0, lodash_1.flatten)(Object.entries(optionsObject).map(VideoRecorder._filterOption));
|
|
72
72
|
optionsList.push(this.videoPath);
|
|
73
73
|
return optionsList;
|
|
74
74
|
}
|
|
@@ -89,7 +89,7 @@ class VideoRecorder extends async_event_emitter_1.default {
|
|
|
89
89
|
await this._addFrame(frame);
|
|
90
90
|
}
|
|
91
91
|
else
|
|
92
|
-
await delay_1.default(DELAY_AFTER_EMPTY_FRAME);
|
|
92
|
+
await (0, delay_1.default)(DELAY_AFTER_EMPTY_FRAME);
|
|
93
93
|
}
|
|
94
94
|
catch (error) {
|
|
95
95
|
this.debugLogger(error);
|
|
@@ -103,7 +103,7 @@ class VideoRecorder extends async_event_emitter_1.default {
|
|
|
103
103
|
await this.connection.provider.stopCapturingVideo(this.connection.id);
|
|
104
104
|
}
|
|
105
105
|
async init() {
|
|
106
|
-
this.ffmpegProcess = child_process_1.spawn(this.ffmpegPath, this.optionsList, { stdio: 'pipe' });
|
|
106
|
+
this.ffmpegProcess = (0, child_process_1.spawn)(this.ffmpegPath, this.optionsList, { stdio: 'pipe' });
|
|
107
107
|
this._setupFFMPEGBuffers();
|
|
108
108
|
this.ffmpegClosingPromise = this
|
|
109
109
|
._getChildProcessPromise()
|
|
@@ -123,7 +123,7 @@ class VideoRecorder extends async_event_emitter_1.default {
|
|
|
123
123
|
this.debugLogger(this.ffmpegStdoutBuf);
|
|
124
124
|
this.debugLogger(this.ffmpegStderrBuf);
|
|
125
125
|
});
|
|
126
|
-
await delay_1.default(FFMPEG_START_DELAY);
|
|
126
|
+
await (0, delay_1.default)(FFMPEG_START_DELAY);
|
|
127
127
|
}
|
|
128
128
|
async dispose() {
|
|
129
129
|
if (this.disposed)
|
|
@@ -148,4 +148,4 @@ class VideoRecorder extends async_event_emitter_1.default {
|
|
|
148
148
|
}
|
|
149
149
|
exports.default = VideoRecorder;
|
|
150
150
|
module.exports = exports.default;
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92aWRlby1yZWNvcmRlci9wcm9jZXNzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLGlEQUFzQztBQUN0QyxtQ0FBaUM7QUFDakMsdUZBQXdEO0FBQ3hELDJEQUFtQztBQUduQyxNQUFNLG1CQUFtQixHQUFHLGtDQUFrQyxDQUFDO0FBRS9ELE1BQU0sZUFBZSxHQUFHO0lBQ3BCLDZEQUE2RDtJQUM3RCxHQUFHLEVBQUUsSUFBSTtJQUVULDJFQUEyRTtJQUMzRSw2REFBNkQ7SUFDN0QsNkJBQTZCLEVBQUUsQ0FBQztJQUVoQyw4QkFBOEI7SUFDOUIsR0FBRyxFQUFFLFFBQVE7SUFFYixrQ0FBa0M7SUFDbEMsS0FBSyxFQUFFLFNBQVM7SUFFaEIsK0NBQStDO0lBQy9DLFFBQVEsRUFBRSxXQUFXO0lBRXJCLGlFQUFpRTtJQUNqRSxTQUFTLEVBQUUsU0FBUztJQUVwQiwyRkFBMkY7SUFDM0YsSUFBSSxFQUFFLG1DQUFtQztJQUV6QyxpRkFBaUY7SUFDakYsR0FBRyxFQUFFLEVBQUU7Q0FDVixDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFFL0IsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFFbkMsTUFBcUIsYUFBYyxTQUFRLDZCQUFZO0lBQ25ELFlBQWEsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsYUFBYTtRQUN4RCxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxXQUFXLEdBQUcsZUFBSyxDQUFDLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFPLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFNLFVBQVUsQ0FBQztRQUNoQyxJQUFJLENBQUMs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QUFjLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUM1QixNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBQ0o7QUF6SkQsZ0NBeUpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IHNwYXduIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgeyBmbGF0dGVuIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBBc3luY0VtaXR0ZXIgZnJvbSAnLi4vdXRpbHMvYXN5bmMtZXZlbnQtZW1pdHRlcic7XG5pbXBvcnQgZGVsYXkgZnJvbSAnLi4vdXRpbHMvZGVsYXknO1xuXG5cbmNvbnN0IERFQlVHX0xPR0dFUl9QUkVGSVggPSAndGVzdGNhZmU6dmlkZW8tcmVjb3JkZXI6cHJvY2VzczonO1xuXG5jb25zdCBERUZBVUxUX09QVElPTlMgPSB7XG4gICAgLy8gTk9URTogZG9uJ3QgYXNrIGNvbmZpcm1hdGlvbiBmb3IgcmV3cml0aW5nIHRoZSBvdXRwdXQgZmlsZVxuICAgICd5JzogdHJ1ZSxcblxuICAgIC8vIE5PVEU6IHVzZSB0aGUgdGltZSB3aGVuIGEgZnJhbWUgaXMgcmVhZCBmcm9tIHRoZSBzb3VyY2UgYXMgaXRzIHRpbWVzdGFtcFxuICAgIC8vIElNUE9SVEFOVDogbXVzdCBiZSBzcGVjaWZpZWQgYmVmb3JlIGNvbmZpZ3VyaW5nIHRoZSBzb3VyY2VcbiAgICAndXNlX3dhbGxjbG9ja19hc190aW1lc3RhbXBzJzogMSxcblxuICAgIC8vIE5PVEU6IHVzZSBzdGRpbiBhcyBhIHNvdXJjZVxuICAgICdpJzogJ3BpcGU6MCcsXG5cbiAgICAvLyBOT1RFOiB1c2UgdGhlIEguMjY0IHZpZGVvIGNvZGVjXG4gICAgJ2M6dic6ICdsaWJ4MjY0JyxcblxuICAgIC8vIE5PVEU6IHVzZSB0aGUgJ3VsdHJhZmFzdCcgY29tcHJlc3Npb24gcHJlc2V0XG4gICAgJ3ByZXNldCc6ICd1bHRyYWZhc3QnLFxuXG4gICAgLy8gTk9URTogdXNlIHRoZSB5dXY0MjBwIHBpeGVsIGZvcm1hdCAodGhlIG1vc3Qgd2lkZWx5IHN1cHBvcnRlZClcbiAgICAncGl4X2ZtdCc6ICd5dXY0MjBwJyxcblxuICAgIC8vIE5PVEU6IHNjYWxlIGlucHV0IGZyYW1lcyB0byBtYWtlIHRoZSBmcmFtZSBoZWlnaHQgZGl2aXNpYmxlIGJ5IDIgKHl1djQyMHAncyByZXF1aXJlbWVudClcbiAgICAndmYnOiAnc2NhbGU9dHJ1bmMoaXcvMikqMjp0cnVuYyhpaC8yKSoyJyxcblxuICAgIC8vIE5PVEU6IHNldCB0aGUgZnJhbWUgcmF0ZSB0byAzMCBpbiB0aGUgb3V0cHV0IHZpZGVvICh0aGUgbW9zdCB3aWRlbHkgc3VwcG9ydGVkKVxuICAgICdyJzogMzAsXG59O1xuXG5jb25zdCBGRk1QRUdfU1RBUlRfREVMQVkgPSA1MDA7XG5cbmNvbnN0IERFTEFZX0FGVEVSX0VNUFRZX0ZSQU1FID0gNTA7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZpZGVvUmVjb3JkZXIgZXh0ZW5kcyBBc3luY0VtaXR0ZXIge1xuICAgIGNvbnN0cnVjdG9yIChiYXNlUGF0aCwgZmZtcGVnUGF0aCwgY29ubmVjdGlvbiwgY3VzdG9tT3B0aW9ucykge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuZGVidWdMb2dnZXIgPSBkZWJ1ZyhERUJVR19MT0dHRVJfUFJFRklYICsgY29ubmVjdGlvbi5pZCk7XG5cbiAgICAgICAgdGhpcy5jdXN0b21PcHRpb25zID0gY3VzdG9tT3B0aW9ucztcbiAgICAgICAgdGhpcy52aWRlb1BhdGggICAgID0gYmFzZVBhdGg7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbiAgICA9IGNvbm5lY3Rpb247XG4gICAgICAgIHRoaXMuZmZtcGVnUGF0aCAgICA9IGZmbXBlZ1BhdGg7XG4gICAgICAgIHRoaXMuZmZtcGVnUHJvY2VzcyA9IG51bGw7XG5cbiAgICAgICAgdGhpcy5mZm1wZWdTdGRvdXRCdWYgPSAnJztcbiAgICAgICAgdGhpcy5mZm1wZWdTdGRlcnJCdWYgPSAnJztcblxuICAgICAgICB0aGlzLmZmbXBlZ0Nsb3NpbmdQcm9taXNlID0gbnVsbDtcblxuICAgICAgICB0aGlzLmRpc3Bvc2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2xvc2VkID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5vcHRpb25zTGlzdCA9IHRoaXMuX2dldE9wdGlvbnNMaXN0KCk7XG5cbiAgICAgICAgdGhpcy5jYXB0dXJpbmdQcm9taXNlID0gbnVsbDtcbiAgICB9XG5cbiAgICBzdGF0aWMgX2ZpbHRlck9wdGlvbiAoW2tleSwgdmFsdWVdKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSlcbiAgICAgICAgICAgIHJldHVybiBbJy0nICsga2V5XTtcblxuICAgICAgICByZXR1cm4gWyctJyArIGtleSwgdmFsdWVdO1xuICAgIH1cblxuICAgIF9zZXR1cEZGTVBFR0J1ZmZlcnMgKCkge1xuICAgICAgICB0aGlzLmZmbXBlZ1Byb2Nlc3Muc3Rkb3V0Lm9uKCdkYXRhJywgZGF0YSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZmbXBlZ1N0ZG91dEJ1ZiArPSBTdHJpbmcoZGF0YSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZmZtcGVnUHJvY2Vzcy5zdGRlcnIub24oJ2RhdGEnLCBkYXRhID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmZtcGVnU3RkZXJyQnVmICs9IFN0cmluZyhkYXRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgX2dldENoaWxkUHJvY2Vzc1Byb21pc2UgKCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mZm1wZWdQcm9jZXNzLm9uKCdleGl0JywgcmVzb2x2ZSk7XG4gICAgICAgICAgICB0aGlzLmZmbXBlZ1Byb2Nlc3Mub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgX2dldE9wdGlvbnNMaXN0ICgpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9uc09iamVjdCA9IE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfT1BUSU9OUywgdGhpcy5jdXN0b21PcHRpb25zKTtcblxuICAgICAgICBjb25zdCBvcHRpb25zTGlzdCA9IGZsYXR0ZW4oT2JqZWN0LmVudHJpZXMob3B0aW9uc09iamVjdCkubWFwKFZpZGVvUmVjb3JkZXIuX2ZpbHRlck9wdGlvbikpO1xuXG4gICAgICAgIG9wdGlvbnNMaXN0LnB1c2godGhpcy52aWRlb1BhdGgpO1xuXG4gICAgICAgIHJldHVybiBvcHRpb25zTGlzdDtcbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlICgpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNsb3NlZCAmJiAhdGhpcy5kaXNwb3NlZDtcbiAgICB9XG5cbiAgICBhc3luYyBfYWRkRnJhbWUgKGZyYW1lRGF0YSkge1xuICAgICAgICBjb25zdCB3cml0aW5nRmluaXNoZWQgPSB0aGlzLmZmbXBlZ1Byb2Nlc3Muc3RkaW4ud3JpdGUoZnJhbWVEYXRhKTtcblxuICAgICAgICBpZiAoIXdyaXRpbmdGaW5pc2hlZClcbiAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gdGhpcy5mZm1wZWdQcm9jZXNzLnN0ZGluLm9uY2UoJ2RyYWluJywgcikpO1xuICAgIH1cblxuICAgIGFzeW5jIF9jYXB0dXJlICgpIHtcbiAgICAgICAgd2hpbGUgKHRoaXMuYWN0aXZlKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZyYW1lID0gYXdhaXQgdGhpcy5jb25uZWN0aW9uLnByb3ZpZGVyLmdldFZpZGVvRnJhbWVEYXRhKHRoaXMuY29ubmVjdGlvbi5pZCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZnJhbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5lbWl0KCdmcmFtZScpO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9hZGRGcmFtZShmcmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgZGVsYXkoREVMQVlfQUZURVJfRU1QVFlfRlJBTUUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZ2dlcihlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBfc3RhcnRDYXB0dXJpbmcgKCkge1xuICAgICAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24ucHJvdmlkZXIuc3RhcnRDYXB0dXJpbmdWaWRlbyh0aGlzLmNvbm5lY3Rpb24uaWQpO1xuICAgIH1cblxuICAgIGFzeW5jIF9zdG9wQ2FwdHVyaW5nICgpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5jb25uZWN0aW9uLnByb3ZpZGVyLnN0b3BDYXB0dXJpbmdWaWRlbyh0aGlzLmNvbm5lY3Rpb24uaWQpO1xuICAgIH1cblxuICAgIGFzeW5jIGluaXQgKCkge1xuICAgICAgICB0aGlzLmZmbXBlZ1Byb2Nlc3MgPSBzcGF3bih0aGlzLmZmbXBlZ1BhdGgsIHRoaXMub3B0aW9uc0xpc3QsIHsgc3RkaW86ICdwaXBlJyB9KTtcblxuICAgICAgICB0aGlzLl9zZXR1cEZGTVBFR0J1ZmZlcnMoKTtcblxuICAgICAgICB0aGlzLmZmbXBlZ0Nsb3NpbmdQcm9taXNlID0gdGhpc1xuICAgICAgICAgICAgLl9nZXRDaGlsZFByb2Nlc3NQcm9taXNlKClcbiAgICAgICAgICAgIC50aGVuKGNvZGUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3Bvc2VkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgIGlmIChjb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVidWdMb2dnZXIoY29kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVidWdMb2dnZXIodGhpcy5mZm1wZWdTdGRvdXRCdWYpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nZ2VyKHRoaXMuZmZtcGVnU3RkZXJyQnVmKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwb3NlZCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nZ2VyKGVycm9yKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nZ2VyKHRoaXMuZmZtcGVnU3Rkb3V0QnVmKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nZ2VyKHRoaXMuZmZtcGVnU3RkZXJyQnVmKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGF3YWl0IGRlbGF5KEZGTVBFR19TVEFSVF9ERUxBWSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZGlzcG9zZSAoKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc3Bvc2VkKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuZGlzcG9zZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmZmbXBlZ1Byb2Nlc3Muc3RkaW4uZW5kKCk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5mZm1wZWdDbG9zaW5nUHJvbWlzZTtcbiAgICB9XG5cbiAgICBhc3luYyBzdGFydENhcHR1cmluZyAoKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuX3N0YXJ0Q2FwdHVyaW5nKCk7XG5cbiAgICAgICAgdGhpcy5jYXB0dXJpbmdQcm9taXNlID0gdGhpcy5fY2FwdHVyZSgpO1xuXG4gICAgICAgIGF3YWl0IHRoaXMub25jZSgnZnJhbWUnKTtcbiAgICB9XG5cbiAgICBhc3luYyBmaW5pc2hDYXB0dXJpbmcgKCkge1xuICAgICAgICBpZiAodGhpcy5jbG9zZWQpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgdGhpcy5jbG9zZWQgPSB0cnVlO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuX3N0b3BDYXB0dXJpbmcoKTtcbiAgICAgICAgYXdhaXQgdGhpcy5jYXB0dXJpbmdQcm9taXNlO1xuICAgICAgICBhd2FpdCB0aGlzLmRpc3Bvc2UoKTtcbiAgICB9XG59XG4iXX0=
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92aWRlby1yZWNvcmRlci9wcm9jZXNzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLGlEQUFzQztBQUN0QyxtQ0FBaUM7QUFDakMsdUZBQXdEO0FBQ3hELDJEQUFtQztBQUduQyxNQUFNLG1CQUFtQixHQUFHLGtDQUFrQyxDQUFDO0FBRS9ELE1BQU0sZUFBZSxHQUFHO0lBQ3BCLDZEQUE2RDtJQUM3RCxHQUFHLEVBQUUsSUFBSTtJQUVULDJFQUEyRTtJQUMzRSw2REFBNkQ7SUFDN0QsNkJBQTZCLEVBQUUsQ0FBQztJQUVoQyw4QkFBOEI7SUFDOUIsR0FBRyxFQUFFLFFBQVE7SUFFYixrQ0FBa0M7SUFDbEMsS0FBSyxFQUFFLFNBQVM7SUFFaEIsK0NBQStDO0lBQy9DLFFBQVEsRUFBRSxXQUFXO0lBRXJCLGlFQUFpRTtJQUNqRSxTQUFTLEVBQUUsU0FBUztJQUVwQiwyRkFBMkY7SUFDM0YsSUFBSSxFQUFFLG1DQUFtQztJQUV6QyxpRkFBaUY7SUFDakYsR0FBRyxFQUFFLEVBQUU7Q0FDVixDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFFL0IsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFFbkMsTUFBcUIsYUFBYyxTQUFRLDZCQUFZO0lBQ25ELFlBQWEsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsYUFBYTtRQUN4RCxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBQSxlQUFLLEVBQUMsbUJBQW1CLEdBQUcsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxTQUFTLEdBQU8sUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQU0sVUFBVSxDQUFDO1FBQ2hDLElBQUks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QUM7UUFFbkIsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDNUIsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDNUIsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDekIsQ0FBQztDQUNKO0FBekpELGdDQXlKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBzcGF3biB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHsgZmxhdHRlbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQXN5bmNFbWl0dGVyIGZyb20gJy4uL3V0aWxzL2FzeW5jLWV2ZW50LWVtaXR0ZXInO1xuaW1wb3J0IGRlbGF5IGZyb20gJy4uL3V0aWxzL2RlbGF5JztcblxuXG5jb25zdCBERUJVR19MT0dHRVJfUFJFRklYID0gJ3Rlc3RjYWZlOnZpZGVvLXJlY29yZGVyOnByb2Nlc3M6JztcblxuY29uc3QgREVGQVVMVF9PUFRJT05TID0ge1xuICAgIC8vIE5PVEU6IGRvbid0IGFzayBjb25maXJtYXRpb24gZm9yIHJld3JpdGluZyB0aGUgb3V0cHV0IGZpbGVcbiAgICAneSc6IHRydWUsXG5cbiAgICAvLyBOT1RFOiB1c2UgdGhlIHRpbWUgd2hlbiBhIGZyYW1lIGlzIHJlYWQgZnJvbSB0aGUgc291cmNlIGFzIGl0cyB0aW1lc3RhbXBcbiAgICAvLyBJTVBPUlRBTlQ6IG11c3QgYmUgc3BlY2lmaWVkIGJlZm9yZSBjb25maWd1cmluZyB0aGUgc291cmNlXG4gICAgJ3VzZV93YWxsY2xvY2tfYXNfdGltZXN0YW1wcyc6IDEsXG5cbiAgICAvLyBOT1RFOiB1c2Ugc3RkaW4gYXMgYSBzb3VyY2VcbiAgICAnaSc6ICdwaXBlOjAnLFxuXG4gICAgLy8gTk9URTogdXNlIHRoZSBILjI2NCB2aWRlbyBjb2RlY1xuICAgICdjOnYnOiAnbGlieDI2NCcsXG5cbiAgICAvLyBOT1RFOiB1c2UgdGhlICd1bHRyYWZhc3QnIGNvbXByZXNzaW9uIHByZXNldFxuICAgICdwcmVzZXQnOiAndWx0cmFmYXN0JyxcblxuICAgIC8vIE5PVEU6IHVzZSB0aGUgeXV2NDIwcCBwaXhlbCBmb3JtYXQgKHRoZSBtb3N0IHdpZGVseSBzdXBwb3J0ZWQpXG4gICAgJ3BpeF9mbXQnOiAneXV2NDIwcCcsXG5cbiAgICAvLyBOT1RFOiBzY2FsZSBpbnB1dCBmcmFtZXMgdG8gbWFrZSB0aGUgZnJhbWUgaGVpZ2h0IGRpdmlzaWJsZSBieSAyICh5dXY0MjBwJ3MgcmVxdWlyZW1lbnQpXG4gICAgJ3ZmJzogJ3NjYWxlPXRydW5jKGl3LzIpKjI6dHJ1bmMoaWgvMikqMicsXG5cbiAgICAvLyBOT1RFOiBzZXQgdGhlIGZyYW1lIHJhdGUgdG8gMzAgaW4gdGhlIG91dHB1dCB2aWRlbyAodGhlIG1vc3Qgd2lkZWx5IHN1cHBvcnRlZClcbiAgICAncic6IDMwLFxufTtcblxuY29uc3QgRkZNUEVHX1NUQVJUX0RFTEFZID0gNTAwO1xuXG5jb25zdCBERUxBWV9BRlRFUl9FTVBUWV9GUkFNRSA9IDUwO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWaWRlb1JlY29yZGVyIGV4dGVuZHMgQXN5bmNFbWl0dGVyIHtcbiAgICBjb25zdHJ1Y3RvciAoYmFzZVBhdGgsIGZmbXBlZ1BhdGgsIGNvbm5lY3Rpb24sIGN1c3RvbU9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLmRlYnVnTG9nZ2VyID0gZGVidWcoREVCVUdfTE9HR0VSX1BSRUZJWCArIGNvbm5lY3Rpb24uaWQpO1xuXG4gICAgICAgIHRoaXMuY3VzdG9tT3B0aW9ucyA9IGN1c3RvbU9wdGlvbnM7XG4gICAgICAgIHRoaXMudmlkZW9QYXRoICAgICA9IGJhc2VQYXRoO1xuICAgICAgICB0aGlzLmNvbm5lY3Rpb24gICAgPSBjb25uZWN0aW9uO1xuICAgICAgICB0aGlzLmZmbXBlZ1BhdGggICAgPSBmZm1wZWdQYXRoO1xuICAgICAgICB0aGlzLmZmbXBlZ1Byb2Nlc3MgPSBudWxsO1xuXG4gICAgICAgIHRoaXMuZmZtcGVnU3Rkb3V0QnVmID0gJyc7XG4gICAgICAgIHRoaXMuZmZtcGVnU3RkZXJyQnVmID0gJyc7XG5cbiAgICAgICAgdGhpcy5mZm1wZWdDbG9zaW5nUHJvbWlzZSA9IG51bGw7XG5cbiAgICAgICAgdGhpcy5kaXNwb3NlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNsb3NlZCA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMub3B0aW9uc0xpc3QgPSB0aGlzLl9nZXRPcHRpb25zTGlzdCgpO1xuXG4gICAgICAgIHRoaXMuY2FwdHVyaW5nUHJvbWlzZSA9IG51bGw7XG4gICAgfVxuXG4gICAgc3RhdGljIF9maWx0ZXJPcHRpb24gKFtrZXksIHZhbHVlXSkge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUpXG4gICAgICAgICAgICByZXR1cm4gWyctJyArIGtleV07XG5cbiAgICAgICAgcmV0dXJuIFsnLScgKyBrZXksIHZhbHVlXTtcbiAgICB9XG5cbiAgICBfc2V0dXBGRk1QRUdCdWZmZXJzICgpIHtcbiAgICAgICAgdGhpcy5mZm1wZWdQcm9jZXNzLnN0ZG91dC5vbignZGF0YScsIGRhdGEgPT4ge1xuICAgICAgICAgICAgdGhpcy5mZm1wZWdTdGRvdXRCdWYgKz0gU3RyaW5nKGRhdGEpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZmbXBlZ1Byb2Nlc3Muc3RkZXJyLm9uKCdkYXRhJywgZGF0YSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZmbXBlZ1N0ZGVyckJ1ZiArPSBTdHJpbmcoZGF0YSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9nZXRDaGlsZFByb2Nlc3NQcm9taXNlICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmZtcGVnUHJvY2Vzcy5vbignZXhpdCcsIHJlc29sdmUpO1xuICAgICAgICAgICAgdGhpcy5mZm1wZWdQcm9jZXNzLm9uKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9nZXRPcHRpb25zTGlzdCAoKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNPYmplY3QgPSBPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX09QVElPTlMsIHRoaXMuY3VzdG9tT3B0aW9ucyk7XG5cbiAgICAgICAgY29uc3Qgb3B0aW9uc0xpc3QgPSBmbGF0dGVuKE9iamVjdC5lbnRyaWVzKG9wdGlvbnNPYmplY3QpLm1hcChWaWRlb1JlY29yZGVyLl9maWx0ZXJPcHRpb24pKTtcblxuICAgICAgICBvcHRpb25zTGlzdC5wdXNoKHRoaXMudmlkZW9QYXRoKTtcblxuICAgICAgICByZXR1cm4gb3B0aW9uc0xpc3Q7XG4gICAgfVxuXG4gICAgZ2V0IGFjdGl2ZSAoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5jbG9zZWQgJiYgIXRoaXMuZGlzcG9zZWQ7XG4gICAgfVxuXG4gICAgYXN5bmMgX2FkZEZyYW1lIChmcmFtZURhdGEpIHtcbiAgICAgICAgY29uc3Qgd3JpdGluZ0ZpbmlzaGVkID0gdGhpcy5mZm1wZWdQcm9jZXNzLnN0ZGluLndyaXRlKGZyYW1lRGF0YSk7XG5cbiAgICAgICAgaWYgKCF3cml0aW5nRmluaXNoZWQpXG4gICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHRoaXMuZmZtcGVnUHJvY2Vzcy5zdGRpbi5vbmNlKCdkcmFpbicsIHIpKTtcbiAgICB9XG5cbiAgICBhc3luYyBfY2FwdHVyZSAoKSB7XG4gICAgICAgIHdoaWxlICh0aGlzLmFjdGl2ZSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmcmFtZSA9IGF3YWl0IHRoaXMuY29ubmVjdGlvbi5wcm92aWRlci5nZXRWaWRlb0ZyYW1lRGF0YSh0aGlzLmNvbm5lY3Rpb24uaWQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGZyYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZW1pdCgnZnJhbWUnKTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fYWRkRnJhbWUoZnJhbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGRlbGF5KERFTEFZX0FGVEVSX0VNUFRZX0ZSQU1FKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVidWdMb2dnZXIoZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgX3N0YXJ0Q2FwdHVyaW5nICgpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5jb25uZWN0aW9uLnByb3ZpZGVyLnN0YXJ0Q2FwdHVyaW5nVmlkZW8odGhpcy5jb25uZWN0aW9uLmlkKTtcbiAgICB9XG5cbiAgICBhc3luYyBfc3RvcENhcHR1cmluZyAoKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY29ubmVjdGlvbi5wcm92aWRlci5zdG9wQ2FwdHVyaW5nVmlkZW8odGhpcy5jb25uZWN0aW9uLmlkKTtcbiAgICB9XG5cbiAgICBhc3luYyBpbml0ICgpIHtcbiAgICAgICAgdGhpcy5mZm1wZWdQcm9jZXNzID0gc3Bhd24odGhpcy5mZm1wZWdQYXRoLCB0aGlzLm9wdGlvbnNMaXN0LCB7IHN0ZGlvOiAncGlwZScgfSk7XG5cbiAgICAgICAgdGhpcy5fc2V0dXBGRk1QRUdCdWZmZXJzKCk7XG5cbiAgICAgICAgdGhpcy5mZm1wZWdDbG9zaW5nUHJvbWlzZSA9IHRoaXNcbiAgICAgICAgICAgIC5fZ2V0Q2hpbGRQcm9jZXNzUHJvbWlzZSgpXG4gICAgICAgICAgICAudGhlbihjb2RlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwb3NlZCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICBpZiAoY29kZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nZ2VyKGNvZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nZ2VyKHRoaXMuZmZtcGVnU3Rkb3V0QnVmKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZ2dlcih0aGlzLmZmbXBlZ1N0ZGVyckJ1Zik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcG9zZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZ2dlcihlcnJvcik7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZ2dlcih0aGlzLmZmbXBlZ1N0ZG91dEJ1Zik7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZ2dlcih0aGlzLmZmbXBlZ1N0ZGVyckJ1Zik7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBhd2FpdCBkZWxheShGRk1QRUdfU1RBUlRfREVMQVkpO1xuICAgIH1cblxuICAgIGFzeW5jIGRpc3Bvc2UgKCkge1xuICAgICAgICBpZiAodGhpcy5kaXNwb3NlZClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICB0aGlzLmRpc3Bvc2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mZm1wZWdQcm9jZXNzLnN0ZGluLmVuZCgpO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuZmZtcGVnQ2xvc2luZ1Byb21pc2U7XG4gICAgfVxuXG4gICAgYXN5bmMgc3RhcnRDYXB0dXJpbmcgKCkge1xuICAgICAgICBhd2FpdCB0aGlzLl9zdGFydENhcHR1cmluZygpO1xuXG4gICAgICAgIHRoaXMuY2FwdHVyaW5nUHJvbWlzZSA9IHRoaXMuX2NhcHR1cmUoKTtcblxuICAgICAgICBhd2FpdCB0aGlzLm9uY2UoJ2ZyYW1lJyk7XG4gICAgfVxuXG4gICAgYXN5bmMgZmluaXNoQ2FwdHVyaW5nICgpIHtcbiAgICAgICAgaWYgKHRoaXMuY2xvc2VkKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuY2xvc2VkID0gdHJ1ZTtcblxuICAgICAgICBhd2FpdCB0aGlzLl9zdG9wQ2FwdHVyaW5nKCk7XG4gICAgICAgIGF3YWl0IHRoaXMuY2FwdHVyaW5nUHJvbWlzZTtcbiAgICAgICAgYXdhaXQgdGhpcy5kaXNwb3NlKCk7XG4gICAgfVxufVxuIl19
|
|
@@ -15,7 +15,7 @@ const string_1 = require("../utils/string");
|
|
|
15
15
|
const test_run_video_recorder_1 = __importDefault(require("./test-run-video-recorder"));
|
|
16
16
|
const events_1 = require("events");
|
|
17
17
|
const create_safe_listener_1 = __importDefault(require("../utils/create-safe-listener"));
|
|
18
|
-
const DEBUG_LOGGER = debug_1.default('testcafe:video-recorder');
|
|
18
|
+
const DEBUG_LOGGER = (0, debug_1.default)('testcafe:video-recorder');
|
|
19
19
|
const VIDEO_EXTENSION = 'mp4';
|
|
20
20
|
const TEMP_DIR_PREFIX = 'video';
|
|
21
21
|
class VideoRecorder extends events_1.EventEmitter {
|
|
@@ -36,7 +36,7 @@ class VideoRecorder extends events_1.EventEmitter {
|
|
|
36
36
|
this._assignEventHandlers(browserJob);
|
|
37
37
|
}
|
|
38
38
|
_createSafeListener(listener) {
|
|
39
|
-
return create_safe_listener_1.default(this, listener, DEBUG_LOGGER);
|
|
39
|
+
return (0, create_safe_listener_1.default)(this, listener, DEBUG_LOGGER);
|
|
40
40
|
}
|
|
41
41
|
_assignEventHandlers(browserJob) {
|
|
42
42
|
browserJob.once('start', this._createSafeListener(() => {
|
|
@@ -50,9 +50,9 @@ class VideoRecorder extends events_1.EventEmitter {
|
|
|
50
50
|
browserJob.on('test-run-restart', this._createSafeListener(this._onTestRunRestart));
|
|
51
51
|
}
|
|
52
52
|
_addProblematicPlaceholdersWarning(placeholders) {
|
|
53
|
-
const problematicPlaceholderListStr = string_1.getConcatenatedValuesString(placeholders);
|
|
54
|
-
const suffix = string_1.getPluralSuffix(placeholders);
|
|
55
|
-
const verb = string_1.getToBeInPastTense(placeholders);
|
|
53
|
+
const problematicPlaceholderListStr = (0, string_1.getConcatenatedValuesString)(placeholders);
|
|
54
|
+
const suffix = (0, string_1.getPluralSuffix)(placeholders);
|
|
55
|
+
const verb = (0, string_1.getToBeInPastTense)(placeholders);
|
|
56
56
|
this.warningLog.addWarning(warning_message_1.default.problematicPathPatternPlaceholderForVideoRecording, problematicPlaceholderListStr, suffix, suffix, verb);
|
|
57
57
|
}
|
|
58
58
|
_getTargetVideoPath(testRunRecorder) {
|
|
@@ -64,7 +64,7 @@ class VideoRecorder extends events_1.EventEmitter {
|
|
|
64
64
|
}
|
|
65
65
|
const pathPattern = new path_pattern_1.default(this.customPathPattern, VIDEO_EXTENSION, data);
|
|
66
66
|
pathPattern.on('problematic-placeholders-found', ({ placeholders }) => this._addProblematicPlaceholdersWarning(placeholders));
|
|
67
|
-
return path_1.join(this.basePath, pathPattern.getPath());
|
|
67
|
+
return (0, path_1.join)(this.basePath, pathPattern.getPath());
|
|
68
68
|
}
|
|
69
69
|
_concatVideo(targetVideoPath, { tempVideoPath, tempMergeConfigPath, tmpMergeName }) {
|
|
70
70
|
if (this.firstFile) {
|
|
@@ -75,7 +75,7 @@ class VideoRecorder extends events_1.EventEmitter {
|
|
|
75
75
|
file '${targetVideoPath}'
|
|
76
76
|
file '${tempVideoPath}'
|
|
77
77
|
`);
|
|
78
|
-
child_process_1.spawnSync(this.ffmpegPath, ['-y', '-f', 'concat', '-safe', '0', '-i', tempMergeConfigPath, '-c', 'copy', tmpMergeName], { stdio: 'ignore' });
|
|
78
|
+
(0, child_process_1.spawnSync)(this.ffmpegPath, ['-y', '-f', 'concat', '-safe', '0', '-i', tempMergeConfigPath, '-c', 'copy', tmpMergeName], { stdio: 'ignore' });
|
|
79
79
|
fs_1.default.copyFileSync(tmpMergeName, tempVideoPath);
|
|
80
80
|
}
|
|
81
81
|
async _onBrowserJobStart() {
|
|
@@ -140,7 +140,7 @@ class VideoRecorder extends events_1.EventEmitter {
|
|
|
140
140
|
this.emit('test-run-video-saved', testRunVideoSavedEventArgs);
|
|
141
141
|
}
|
|
142
142
|
async _saveFiles(testRunRecorder, videoPath) {
|
|
143
|
-
await make_dir_1.default(path_1.dirname(videoPath));
|
|
143
|
+
await (0, make_dir_1.default)((0, path_1.dirname)(videoPath));
|
|
144
144
|
if (this.singleFile)
|
|
145
145
|
this._concatVideo(videoPath, testRunRecorder.tempFiles);
|
|
146
146
|
fs_1.default.copyFileSync(testRunRecorder.tempFiles.tempVideoPath, videoPath);
|
|
@@ -148,4 +148,4 @@ class VideoRecorder extends events_1.EventEmitter {
|
|
|
148
148
|
}
|
|
149
149
|
exports.default = VideoRecorder;
|
|
150
150
|
module.exports = exports.default;
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmlkZW8tcmVjb3JkZXIvcmVjb3JkZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsK0JBQXFDO0FBQ3JDLDRDQUFvQjtBQUNwQixpREFBMEM7QUFDMUMsd0RBQStCO0FBQy9CLDZFQUFvRDtBQUNwRCx5RUFBZ0Q7QUFDaEQsdUZBQWdFO0FBQ2hFLDRDQUl5QjtBQUV6Qix3RkFBNkQ7QUFDN0QsbUNBQXNDO0FBQ3RDLHlGQUErRDtBQUUvRCxNQUFNLFlBQVksR0FBRyxlQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUV0RCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUM7QUFDOUIsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDO0FBRWhDLE1BQXFCLGFBQWMsU0FBUSxxQkFBWTtJQUNuRCxZQUFhLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxVQUFVO1FBQzdELEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLFVBQVUsR0FBVSxVQUFVLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBWSxRQUFRLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBVSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFVLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDekMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDMUMsSUFBSSxDQUFDLFNBQVMsR0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQUssWUFBWSxDQUFDO1FBRXRDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBRTdCLElBQUksQ0FBQyxhQUFhLEdBQUcs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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IGpvaW4sIGRpcm5hbWUgfSBmcm9tICdwYXRoJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBzcGF3blN5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCBtYWtlRGlyIGZyb20gJ21ha2UtZGlyJztcbmltcG9ydCBUZW1wRGlyZWN0b3J5IGZyb20gJy4uL3V0aWxzL3RlbXAtZGlyZWN0b3J5JztcbmltcG9ydCBQYXRoUGF0dGVybiBmcm9tICcuLi91dGlscy9wYXRoLXBhdHRlcm4nO1xuaW1wb3J0IFdBUk5JTkdfTUVTU0FHRVMgZnJvbSAnLi4vbm90aWZpY2F0aW9ucy93YXJuaW5nLW1lc3NhZ2UnO1xuaW1wb3J0IHtcbiAgICBnZXRQbHVyYWxTdWZmaXgsXG4gICAgZ2V0Q29uY2F0ZW5hdGVkVmFsdWVzU3RyaW5nLFxuICAgIGdldFRvQmVJblBhc3RUZW5zZSxcbn0gZnJvbSAnLi4vdXRpbHMvc3RyaW5nJztcblxuaW1wb3J0IFRlc3RSdW5WaWRlb1JlY29yZGVyIGZyb20gJy4vdGVzdC1ydW4tdmlkZW8tcmVjb3JkZXInO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCBjcmVhdGVTYWZlTGlzdGVuZXIgZnJvbSAnLi4vdXRpbHMvY3JlYXRlLXNhZmUtbGlzdGVuZXInO1xuXG5jb25zdCBERUJVR19MT0dHRVIgPSBkZWJ1ZygndGVzdGNhZmU6dmlkZW8tcmVjb3JkZXInKTtcblxuY29uc3QgVklERU9fRVhURU5TSU9OID0gJ21wNCc7XG5jb25zdCBURU1QX0RJUl9QUkVGSVggPSAndmlkZW8nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWaWRlb1JlY29yZGVyIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgICBjb25zdHJ1Y3RvciAoYnJvd3NlckpvYiwgYmFzZVBhdGgsIG9wdHMsIGVuY29kaW5nT3B0cywgd2FybmluZ0xvZykge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuYnJvd3NlckpvYiAgICAgICAgPSBicm93c2VySm9iO1xuICAgICAgICB0aGlzLmJhc2VQYXRoICAgICAgICAgID0gYmFzZVBhdGg7XG4gICAgICAgIHRoaXMuZmFpbGVkT25seSAgICAgICAgPSBvcHRzLmZhaWxlZE9ubHk7XG4gICAgICAgIHRoaXMuc2luZ2xlRmlsZSAgICAgICAgPSBvcHRzLnNpbmdsZUZpbGU7XG4gICAgICAgIHRoaXMuZmZtcGVnUGF0aCAgICAgICAgPSBvcHRzLmZmbXBlZ1BhdGg7XG4gICAgICAgIHRoaXMuY3VzdG9tUGF0aFBhdHRlcm4gPSBvcHRzLnBhdGhQYXR0ZXJuO1xuICAgICAgICB0aGlzLnRpbWVTdGFtcCAgICAgICAgID0gb3B0cy50aW1lU3RhbXA7XG4gICAgICAgIHRoaXMuZW5jb2RpbmdPcHRpb25zICAgPSBlbmNvZGluZ09wdHM7XG5cbiAgICAgICAgdGhpcy53YXJuaW5nTG9nID0gd2FybmluZ0xvZztcblxuICAgICAgICB0aGlzLnRlbXBEaXJlY3RvcnkgPSBuZXcgVGVtcERpcmVjdG9yeShURU1QX0RJUl9QUkVGSVgpO1xuXG4gICAgICAgIHRoaXMuZmlyc3RGaWxlID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLnRlc3RSdW5WaWRlb1JlY29yZGVycyA9IHt9O1xuXG4gICAgICAgIHRoaXMuX2Fzc2lnbkV2ZW50SGFuZGxlcnMoYnJvd3NlckpvYik7XG4gICAgfVxuXG4gICAgX2NyZWF0ZVNhZmVMaXN0ZW5lciAobGlzdGVuZXIpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNhZmVMaXN0ZW5lcih0aGlzLCBsaXN0ZW5lciwgREVCVUdfTE9HR0VSKTtcbiAgICB9XG5cbiAgICBfYXNzaWduRXZlbnRIYW5kbGVycyAoYnJvd3NlckpvYikge1xuICAgICAgICBicm93c2VySm9iLm9uY2UoJ3N0YXJ0JywgdGhpcy5fY3JlYXRlU2FmZUxpc3RlbmVyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGVtcERpcmVjdG9yeUluaXRpYWxpemVkUHJvbWlzZSA9IHRoaXMuX29uQnJvd3NlckpvYlN0YXJ0KCk7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRlbXBEaXJlY3RvcnlJbml0aWFsaXplZFByb21pc2U7XG4gICAgICAgIH0pKTtcblxuICAgICAgICBicm93c2VySm9iLm9uY2UoJ2RvbmUnLCB0aGlzLl9jcmVhdGVTYWZlTGlzdGVuZXIodGhpcy5fb25Ccm93c2VySm9iRG9uZSkpO1xuICAgICAgICBicm93c2VySm9iLm9uKCd0ZXN0LXJ1bi1jcmVhdGUnLCB0aGlzLl9jcmVhdGVTYWZlTGlzdGVuZXIodGhpcy5fb25UZXN0UnVuQ3JlYXRlKSk7XG4gICAgICAgIGJyb3dzZXJKb2Iub24oJ3Rlc3QtcnVuLXJlYWR5JywgdGhpcy5fY3JlYXRlU2FmZUxpc3RlbmVyKHRoaXMuX29uVGVzdFJ1blJlYWR5KSk7XG4gICAgICAgIGJyb3dzZXJKb2Iub24oJ3Rlc3QtcnVuLWJlZm9yZS1kb25lJywgdGhpcy5fY3JlYXRlU2FmZUxpc3RlbmVyKHRoaXMuX29uVGVzdFJ1bkJlZm9yZURvbmUpKTtcbiAgICAgICAgYnJvd3NlckpvYi5vbigndGVzdC1ydW4tcmVzdGFydCcsIHRoaXMuX2NyZWF0ZVNhZmVMaXN0ZW5lcih0aGlzLl9vblRlc3RSdW5SZXN0YXJ0KSk7XG4gICAgfVxuXG4gICAgX2FkZFByb2JsZW1hdGljUGxhY2Vob2xkZXJzV2FybmluZyAocGxhY2Vob2xkZXJzKSB7XG4gICAgICAgIGNvbnN0IHByb2JsZW1hdGljUGxhY2Vob2xkZXJMaXN0U3RyID0gZ2V0Q29uY2F0ZW5hdGVkVmFsdWVzU3RyaW5nKHBsYWNlaG9sZGVycyk7XG4gICAgICAgIGNvbnN0IHN1ZmZpeCAgICAgICAgICAgICAgICAgICAgICAgID0gZ2V0UGx1cmFsU3VmZml4KHBsYWNlaG9sZGVycyk7XG4gICAgICAgIGNvbnN0IHZlcmIgICAgICAgICAgICAgICAgICAgICAgICAgID0gZ2V0VG9CZUluUGFzdFRlbnNlKHBsYWNlaG9sZGVycyk7XG5cbiAgICAgICAgdGhpcy53YXJuaW5nTG9nLmFkZFdhcm5pbmcoV0FSTklOR19NRVNTQUdFUy5wcm9ibGVtYXRpY1BhdGhQYXR0ZXJuUGxhY2Vob2xkZXJGb3JWaWRlb1JlY29yZGluZywgcHJvYmxlbWF0aWNQbGFjZWhvbGRlckxpc3RTdHIsIHN1ZmZpeCwgc3VmZml4LCB2ZXJiKTtcbiAgICB9XG5cbiAgICBfZ2V0VGFyZ2V0VmlkZW9QYXRoICh0ZXN0UnVuUmVjb3JkZXIpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IE9iamVjdC5hc3NpZ24odGVzdFJ1blJlY29yZGVyLnRlc3RSdW5JbmZvLCB7IG5vdzogdGhpcy50aW1lU3RhbXAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2luZ2xlRmlsZSkge1xuICAgICAgICAgICAgZGF0YS50ZXN0SW5kZXggPSBudWxsO1xuICAgICAgICAgICAgZGF0YS5maXh0dXJlID0gbnVsbDtcbiAgICAgICAgICAgIGRhdGEudGVzdCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXRoUGF0dGVybiA9IG5ldyBQYXRoUGF0dGVybih0aGlzLmN1c3RvbVBhdGhQYXR0ZXJuLCBWSURFT19FWFRFTlNJT04sIGRhdGEpO1xuXG4gICAgICAgIHBhdGhQYXR0ZXJuLm9uKCdwcm9ibGVtYXRpYy1wbGFjZWhvbGRlcnMtZm91bmQnLCAoeyBwbGFjZWhvbGRlcnMgfSkgPT4gdGhpcy5fYWRkUHJvYmxlbWF0aWNQbGFjZWhvbGRlcnNXYXJuaW5nKHBsYWNlaG9sZGVycykpO1xuXG4gICAgICAgIHJldHVybiBqb2luKHRoaXMuYmFzZVBhdGgsIHBhdGhQYXR0ZXJuLmdldFBhdGgoKSk7XG4gICAgfVxuXG4gICAgX2NvbmNhdFZpZGVvICh0YXJnZXRWaWRlb1BhdGgsIHsgdGVtcFZpZGVvUGF0aCwgdGVtcE1lcmdlQ29uZmlnUGF0aCwgdG1wTWVyZ2VOYW1lIH0pIHtcbiAgICAgICAgaWYgKHRoaXMuZmlyc3RGaWxlKSB7XG4gICAgICAgICAgICB0aGlzLmZpcnN0RmlsZSA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyh0ZW1wTWVyZ2VDb25maWdQYXRoLCBgXG4gICAgICAgICAgICBmaWxlICcke3RhcmdldFZpZGVvUGF0aH0nXG4gICAgICAgICAgICBmaWxlICcke3RlbXBWaWRlb1BhdGh9J1xuICAgICAgICBgKTtcblxuICAgICAgICBzcGF3blN5bmModGhpcy5mZm1wZWdQYXRoLCBbJy15JywgJy1mJywgJ2NvbmNhdCcsICctc2FmZScsICcwJywgJy1pJywgdGVtcE1lcmdlQ29uZmlnUGF0aCwgJy1jJywgJ2NvcHknLCB0bXBNZXJnZU5hbWVdLCB7IHN0ZGlvOiAnaWdub3JlJyB9KTtcbiAgICAgICAgZnMuY29weUZpbGVTeW5jKHRtcE1lcmdlTmFtZSwgdGVtcFZpZGVvUGF0aCk7XG4gICAgfVxuXG4gICAgYXN5bmMgX29uQnJvd3NlckpvYlN0YXJ0ICgpIHtcbiAgICAgICAgYXdhaXQgdGhpcy50ZW1wRGlyZWN0b3J5LmluaXQoKTtcbiAgICB9XG5cbiAgICBhc3luYyBfb25Ccm93c2VySm9iRG9uZSAoKSB7XG4gICAgICAgIGF3YWl0IHRoaXMudGVtcERpcmVjdG9yeS5kaXNwb3NlKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgX29uVGVzdFJ1bkNyZWF0ZSAodGVzdFJ1bkluZm8pIHtcbiAgICAgICAgaWYgKHRlc3RSdW5JbmZvLmxlZ2FjeSlcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBhd2FpdCB0aGlzLnRlbXBEaXJlY3RvcnlJbml0aWFsaXplZFByb21pc2U7XG5cbiAgICAgICAgY29uc3QgcmVjb3JkaW5nT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIHBhdGg6ICAgICAgICAgICAgdGhpcy50ZW1wRGlyZWN0b3J5LnBhdGgsXG4gICAgICAgICAgICBmZm1wZWdQYXRoOiAgICAgIHRoaXMuZmZtcGVnUGF0aCxcbiAgICAgICAgICAgIGVuY29kaW5nT3B0aW9uczogdGhpcy5lbmNvZGluZ09wdGlvbnMsXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgdGVzdFJ1blZpZGVvUmVjb3JkZXIgPSB0aGlzLl9jcmVhdGVUZXN0UnVuVmlkZW9SZWNvcmRlcih0ZXN0UnVuSW5mbywgcmVjb3JkaW5nT3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IGlzVmlkZW9TdXBwb3J0ZWQgICAgID0gYXdhaXQgdGVzdFJ1blZpZGVvUmVjb3JkZXIuaXNWaWRlb1N1cHBvcnRlZCgpO1xuXG4gICAgICAgIGlmICghaXNWaWRlb1N1cHBvcnRlZCkge1xuICAgICAgICAgICAgdGhpcy53YXJuaW5nTG9nLmFkZFdhcm5pbmcoV0FSTklOR19NRVNTQUdFUy52aWRlb05vdFN1cHBvcnRlZEJ5QnJvd3NlciwgdGVzdFJ1blZpZGVvUmVjb3JkZXIudGVzdFJ1bkluZm8uYWxpYXMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNWaWRlb0VuYWJsZWQgPSBhd2FpdCB0ZXN0UnVuVmlkZW9SZWNvcmRlci5pc1ZpZGVvRW5hYmxlZCgpO1xuXG4gICAgICAgIGlmICghaXNWaWRlb0VuYWJsZWQpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgYXdhaXQgdGVzdFJ1blZpZGVvUmVjb3JkZXIuaW5pdCgpO1xuXG4gICAgICAgIHRoaXMudGVzdFJ1blZpZGVvUmVjb3JkZXJzW3Rlc3RSdW5WaWRlb1JlY29yZGVyLmluZGV4XSA9IHRlc3RSdW5WaWRlb1JlY29yZGVyO1xuICAgIH1cblxuICAgIF9jcmVhdGVUZXN0UnVuVmlkZW9SZWNvcmRlciAodGVzdFJ1bkluZm8sIHJlY29yZGluZ09wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUZXN0UnVuVmlkZW9SZWNvcmRlcih0ZXN0UnVuSW5mbywgcmVjb3JkaW5nT3B0aW9ucywgdGhpcy53YXJuaW5nTG9nKTtcbiAgICB9XG5cbiAgICBhc3luYyBfb25UZXN0UnVuUmVhZHkgKHsgaW5kZXggfSkge1xuICAgICAgICBjb25zdCB0ZXN0UnVuUmVjb3JkZXIgPSB0aGlzLnRlc3RSdW5WaWRlb1JlY29yZGVyc1tpbmRleF07XG5cbiAgICAgICAgaWYgKCF0ZXN0UnVuUmVjb3JkZXIpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgYXdhaXQgdGVzdFJ1blJlY29yZGVyLnN0YXJ0Q2FwdHVyaW5nKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgX29uVGVzdFJ1blJlc3RhcnQgKHsgaW5kZXggfSkge1xuICAgICAgICBjb25zdCB0ZXN0UnVuUmVjb3JkZXIgPSB0aGlzLnRlc3RSdW5WaWRlb1JlY29yZGVyc1tpbmRleF07XG5cbiAgICAgICAgaWYgKCF0ZXN0UnVuUmVjb3JkZXIpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgdGVzdFJ1blJlY29yZGVyLm9uVGVzdFJ1blJlc3RhcnQoKTtcbiAgICB9XG5cbiAgICBhc3luYyBfb25UZXN0UnVuQmVmb3JlRG9uZSAoeyBpbmRleCB9KSB7XG4gICAgICAgIGNvbnN0IHRlc3RSdW5SZWNvcmRlciA9IHRoaXMudGVzdFJ1blZpZGVvUmVjb3JkZXJzW2luZGV4XTtcblxuICAgICAgICBpZiAoIXRlc3RSdW5SZWNvcmRlcilcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBkZWxldGUgdGhpcy50ZXN0UnVuVmlkZW9SZWNvcmRlcnNbaW5kZXhdO1xuXG4gICAgICAgIGF3YWl0IHRlc3RSdW5SZWNvcmRlci5maW5pc2hDYXB0dXJpbmcoKTtcblxuICAgICAgICBpZiAodGhpcy5mYWlsZWRPbmx5ICYmICF0ZXN0UnVuUmVjb3JkZXIuaGFzRXJyb3JzKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHZpZGVvUGF0aCA9IHRoaXMuX2dldFRhcmdldFZpZGVvUGF0aCh0ZXN0UnVuUmVjb3JkZXIpO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuX3NhdmVGaWxlcyh0ZXN0UnVuUmVjb3JkZXIsIHZpZGVvUGF0aCk7XG5cbiAgICAgICAgY29uc3QgdGVzdFJ1blZpZGVvU2F2ZWRFdmVudEFyZ3MgPSB7XG4gICAgICAgICAgICB0ZXN0UnVuOiAgICB0ZXN0UnVuUmVjb3JkZXIudGVzdFJ1bixcbiAgICAgICAgICAgIHZpZGVvUGF0aCxcbiAgICAgICAgICAgIHNpbmdsZUZpbGU6ICEhdGhpcy5zaW5nbGVGaWxlLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghdGhpcy5zaW5nbGVGaWxlKVxuICAgICAgICAgICAgdGVzdFJ1blZpZGVvU2F2ZWRFdmVudEFyZ3MudGltZWNvZGVzID0gdGVzdFJ1blJlY29yZGVyLnRlc3RSdW5JbmZvLnRpbWVjb2RlcztcblxuICAgICAgICB0aGlzLmVtaXQoJ3Rlc3QtcnVuLXZpZGVvLXNhdmVkJywgdGVzdFJ1blZpZGVvU2F2ZWRFdmVudEFyZ3MpO1xuICAgIH1cblxuICAgIGFzeW5jIF9zYXZlRmlsZXMgKHRlc3RSdW5SZWNvcmRlciwgdmlkZW9QYXRoKSB7XG4gICAgICAgIGF3YWl0IG1ha2VEaXIoZGlybmFtZSh2aWRlb1BhdGgpKTtcblxuICAgICAgICBpZiAodGhpcy5zaW5nbGVGaWxlKVxuICAgICAgICAgICAgdGhpcy5fY29uY2F0VmlkZW8odmlkZW9QYXRoLCB0ZXN0UnVuUmVjb3JkZXIudGVtcEZpbGVzKTtcblxuICAgICAgICBmcy5jb3B5RmlsZVN5bmModGVzdFJ1blJlY29yZGVyLnRlbXBGaWxlcy50ZW1wVmlkZW9QYXRoLCB2aWRlb1BhdGgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmlkZW8tcmVjb3JkZXIvcmVjb3JkZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsK0JBQXFDO0FBQ3JDLDRDQUFvQjtBQUNwQixpREFBMEM7QUFDMUMsd0RBQStCO0FBQy9CLDZFQUFvRDtBQUNwRCx5RUFBZ0Q7QUFDaEQsdUZBQWdFO0FBQ2hFLDRDQUl5QjtBQUV6Qix3RkFBNkQ7QUFDN0QsbUNBQXNDO0FBQ3RDLHlGQUErRDtBQUUvRCxNQUFNLFlBQVksR0FBRyxJQUFBLGVBQUssRUFBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBRXRELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQztBQUM5QixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUM7QUFFaEMsTUFBcUIsYUFBYyxTQUFRLHFCQUFZO0lBQ25ELFlBQWEsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVU7UUFDN0QsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsVUFBVSxHQUFVLFVBQVUsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFZLFFBQVEsQ0FBQztRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFVLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDekMsSUFBSSxDQUFDLFVBQVUsR0FBVSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFXLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBSyxZQUFZLENBQUM7UUFFdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFFN0IsSUFBSSxDQUFDLGFBQWEs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QUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDO0NBQ0o7QUFsTEQsZ0NBa0xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IGpvaW4sIGRpcm5hbWUgfSBmcm9tICdwYXRoJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBzcGF3blN5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCBtYWtlRGlyIGZyb20gJ21ha2UtZGlyJztcbmltcG9ydCBUZW1wRGlyZWN0b3J5IGZyb20gJy4uL3V0aWxzL3RlbXAtZGlyZWN0b3J5JztcbmltcG9ydCBQYXRoUGF0dGVybiBmcm9tICcuLi91dGlscy9wYXRoLXBhdHRlcm4nO1xuaW1wb3J0IFdBUk5JTkdfTUVTU0FHRVMgZnJvbSAnLi4vbm90aWZpY2F0aW9ucy93YXJuaW5nLW1lc3NhZ2UnO1xuaW1wb3J0IHtcbiAgICBnZXRQbHVyYWxTdWZmaXgsXG4gICAgZ2V0Q29uY2F0ZW5hdGVkVmFsdWVzU3RyaW5nLFxuICAgIGdldFRvQmVJblBhc3RUZW5zZSxcbn0gZnJvbSAnLi4vdXRpbHMvc3RyaW5nJztcblxuaW1wb3J0IFRlc3RSdW5WaWRlb1JlY29yZGVyIGZyb20gJy4vdGVzdC1ydW4tdmlkZW8tcmVjb3JkZXInO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCBjcmVhdGVTYWZlTGlzdGVuZXIgZnJvbSAnLi4vdXRpbHMvY3JlYXRlLXNhZmUtbGlzdGVuZXInO1xuXG5jb25zdCBERUJVR19MT0dHRVIgPSBkZWJ1ZygndGVzdGNhZmU6dmlkZW8tcmVjb3JkZXInKTtcblxuY29uc3QgVklERU9fRVhURU5TSU9OID0gJ21wNCc7XG5jb25zdCBURU1QX0RJUl9QUkVGSVggPSAndmlkZW8nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWaWRlb1JlY29yZGVyIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgICBjb25zdHJ1Y3RvciAoYnJvd3NlckpvYiwgYmFzZVBhdGgsIG9wdHMsIGVuY29kaW5nT3B0cywgd2FybmluZ0xvZykge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuYnJvd3NlckpvYiAgICAgICAgPSBicm93c2VySm9iO1xuICAgICAgICB0aGlzLmJhc2VQYXRoICAgICAgICAgID0gYmFzZVBhdGg7XG4gICAgICAgIHRoaXMuZmFpbGVkT25seSAgICAgICAgPSBvcHRzLmZhaWxlZE9ubHk7XG4gICAgICAgIHRoaXMuc2luZ2xlRmlsZSAgICAgICAgPSBvcHRzLnNpbmdsZUZpbGU7XG4gICAgICAgIHRoaXMuZmZtcGVnUGF0aCAgICAgICAgPSBvcHRzLmZmbXBlZ1BhdGg7XG4gICAgICAgIHRoaXMuY3VzdG9tUGF0aFBhdHRlcm4gPSBvcHRzLnBhdGhQYXR0ZXJuO1xuICAgICAgICB0aGlzLnRpbWVTdGFtcCAgICAgICAgID0gb3B0cy50aW1lU3RhbXA7XG4gICAgICAgIHRoaXMuZW5jb2RpbmdPcHRpb25zICAgPSBlbmNvZGluZ09wdHM7XG5cbiAgICAgICAgdGhpcy53YXJuaW5nTG9nID0gd2FybmluZ0xvZztcblxuICAgICAgICB0aGlzLnRlbXBEaXJlY3RvcnkgPSBuZXcgVGVtcERpcmVjdG9yeShURU1QX0RJUl9QUkVGSVgpO1xuXG4gICAgICAgIHRoaXMuZmlyc3RGaWxlID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLnRlc3RSdW5WaWRlb1JlY29yZGVycyA9IHt9O1xuXG4gICAgICAgIHRoaXMuX2Fzc2lnbkV2ZW50SGFuZGxlcnMoYnJvd3NlckpvYik7XG4gICAgfVxuXG4gICAgX2NyZWF0ZVNhZmVMaXN0ZW5lciAobGlzdGVuZXIpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNhZmVMaXN0ZW5lcih0aGlzLCBsaXN0ZW5lciwgREVCVUdfTE9HR0VSKTtcbiAgICB9XG5cbiAgICBfYXNzaWduRXZlbnRIYW5kbGVycyAoYnJvd3NlckpvYikge1xuICAgICAgICBicm93c2VySm9iLm9uY2UoJ3N0YXJ0JywgdGhpcy5fY3JlYXRlU2FmZUxpc3RlbmVyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGVtcERpcmVjdG9yeUluaXRpYWxpemVkUHJvbWlzZSA9IHRoaXMuX29uQnJvd3NlckpvYlN0YXJ0KCk7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRlbXBEaXJlY3RvcnlJbml0aWFsaXplZFByb21pc2U7XG4gICAgICAgIH0pKTtcblxuICAgICAgICBicm93c2VySm9iLm9uY2UoJ2RvbmUnLCB0aGlzLl9jcmVhdGVTYWZlTGlzdGVuZXIodGhpcy5fb25Ccm93c2VySm9iRG9uZSkpO1xuICAgICAgICBicm93c2VySm9iLm9uKCd0ZXN0LXJ1bi1jcmVhdGUnLCB0aGlzLl9jcmVhdGVTYWZlTGlzdGVuZXIodGhpcy5fb25UZXN0UnVuQ3JlYXRlKSk7XG4gICAgICAgIGJyb3dzZXJKb2Iub24oJ3Rlc3QtcnVuLXJlYWR5JywgdGhpcy5fY3JlYXRlU2FmZUxpc3RlbmVyKHRoaXMuX29uVGVzdFJ1blJlYWR5KSk7XG4gICAgICAgIGJyb3dzZXJKb2Iub24oJ3Rlc3QtcnVuLWJlZm9yZS1kb25lJywgdGhpcy5fY3JlYXRlU2FmZUxpc3RlbmVyKHRoaXMuX29uVGVzdFJ1bkJlZm9yZURvbmUpKTtcbiAgICAgICAgYnJvd3NlckpvYi5vbigndGVzdC1ydW4tcmVzdGFydCcsIHRoaXMuX2NyZWF0ZVNhZmVMaXN0ZW5lcih0aGlzLl9vblRlc3RSdW5SZXN0YXJ0KSk7XG4gICAgfVxuXG4gICAgX2FkZFByb2JsZW1hdGljUGxhY2Vob2xkZXJzV2FybmluZyAocGxhY2Vob2xkZXJzKSB7XG4gICAgICAgIGNvbnN0IHByb2JsZW1hdGljUGxhY2Vob2xkZXJMaXN0U3RyID0gZ2V0Q29uY2F0ZW5hdGVkVmFsdWVzU3RyaW5nKHBsYWNlaG9sZGVycyk7XG4gICAgICAgIGNvbnN0IHN1ZmZpeCAgICAgICAgICAgICAgICAgICAgICAgID0gZ2V0UGx1cmFsU3VmZml4KHBsYWNlaG9sZGVycyk7XG4gICAgICAgIGNvbnN0IHZlcmIgICAgICAgICAgICAgICAgICAgICAgICAgID0gZ2V0VG9CZUluUGFzdFRlbnNlKHBsYWNlaG9sZGVycyk7XG5cbiAgICAgICAgdGhpcy53YXJuaW5nTG9nLmFkZFdhcm5pbmcoV0FSTklOR19NRVNTQUdFUy5wcm9ibGVtYXRpY1BhdGhQYXR0ZXJuUGxhY2Vob2xkZXJGb3JWaWRlb1JlY29yZGluZywgcHJvYmxlbWF0aWNQbGFjZWhvbGRlckxpc3RTdHIsIHN1ZmZpeCwgc3VmZml4LCB2ZXJiKTtcbiAgICB9XG5cbiAgICBfZ2V0VGFyZ2V0VmlkZW9QYXRoICh0ZXN0UnVuUmVjb3JkZXIpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IE9iamVjdC5hc3NpZ24odGVzdFJ1blJlY29yZGVyLnRlc3RSdW5JbmZvLCB7IG5vdzogdGhpcy50aW1lU3RhbXAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2luZ2xlRmlsZSkge1xuICAgICAgICAgICAgZGF0YS50ZXN0SW5kZXggPSBudWxsO1xuICAgICAgICAgICAgZGF0YS5maXh0dXJlID0gbnVsbDtcbiAgICAgICAgICAgIGRhdGEudGVzdCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXRoUGF0dGVybiA9IG5ldyBQYXRoUGF0dGVybih0aGlzLmN1c3RvbVBhdGhQYXR0ZXJuLCBWSURFT19FWFRFTlNJT04sIGRhdGEpO1xuXG4gICAgICAgIHBhdGhQYXR0ZXJuLm9uKCdwcm9ibGVtYXRpYy1wbGFjZWhvbGRlcnMtZm91bmQnLCAoeyBwbGFjZWhvbGRlcnMgfSkgPT4gdGhpcy5fYWRkUHJvYmxlbWF0aWNQbGFjZWhvbGRlcnNXYXJuaW5nKHBsYWNlaG9sZGVycykpO1xuXG4gICAgICAgIHJldHVybiBqb2luKHRoaXMuYmFzZVBhdGgsIHBhdGhQYXR0ZXJuLmdldFBhdGgoKSk7XG4gICAgfVxuXG4gICAgX2NvbmNhdFZpZGVvICh0YXJnZXRWaWRlb1BhdGgsIHsgdGVtcFZpZGVvUGF0aCwgdGVtcE1lcmdlQ29uZmlnUGF0aCwgdG1wTWVyZ2VOYW1lIH0pIHtcbiAgICAgICAgaWYgKHRoaXMuZmlyc3RGaWxlKSB7XG4gICAgICAgICAgICB0aGlzLmZpcnN0RmlsZSA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyh0ZW1wTWVyZ2VDb25maWdQYXRoLCBgXG4gICAgICAgICAgICBmaWxlICcke3RhcmdldFZpZGVvUGF0aH0nXG4gICAgICAgICAgICBmaWxlICcke3RlbXBWaWRlb1BhdGh9J1xuICAgICAgICBgKTtcblxuICAgICAgICBzcGF3blN5bmModGhpcy5mZm1wZWdQYXRoLCBbJy15JywgJy1mJywgJ2NvbmNhdCcsICctc2FmZScsICcwJywgJy1pJywgdGVtcE1lcmdlQ29uZmlnUGF0aCwgJy1jJywgJ2NvcHknLCB0bXBNZXJnZU5hbWVdLCB7IHN0ZGlvOiAnaWdub3JlJyB9KTtcbiAgICAgICAgZnMuY29weUZpbGVTeW5jKHRtcE1lcmdlTmFtZSwgdGVtcFZpZGVvUGF0aCk7XG4gICAgfVxuXG4gICAgYXN5bmMgX29uQnJvd3NlckpvYlN0YXJ0ICgpIHtcbiAgICAgICAgYXdhaXQgdGhpcy50ZW1wRGlyZWN0b3J5LmluaXQoKTtcbiAgICB9XG5cbiAgICBhc3luYyBfb25Ccm93c2VySm9iRG9uZSAoKSB7XG4gICAgICAgIGF3YWl0IHRoaXMudGVtcERpcmVjdG9yeS5kaXNwb3NlKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgX29uVGVzdFJ1bkNyZWF0ZSAodGVzdFJ1bkluZm8pIHtcbiAgICAgICAgaWYgKHRlc3RSdW5JbmZvLmxlZ2FjeSlcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBhd2FpdCB0aGlzLnRlbXBEaXJlY3RvcnlJbml0aWFsaXplZFByb21pc2U7XG5cbiAgICAgICAgY29uc3QgcmVjb3JkaW5nT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIHBhdGg6ICAgICAgICAgICAgdGhpcy50ZW1wRGlyZWN0b3J5LnBhdGgsXG4gICAgICAgICAgICBmZm1wZWdQYXRoOiAgICAgIHRoaXMuZmZtcGVnUGF0aCxcbiAgICAgICAgICAgIGVuY29kaW5nT3B0aW9uczogdGhpcy5lbmNvZGluZ09wdGlvbnMsXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgdGVzdFJ1blZpZGVvUmVjb3JkZXIgPSB0aGlzLl9jcmVhdGVUZXN0UnVuVmlkZW9SZWNvcmRlcih0ZXN0UnVuSW5mbywgcmVjb3JkaW5nT3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IGlzVmlkZW9TdXBwb3J0ZWQgICAgID0gYXdhaXQgdGVzdFJ1blZpZGVvUmVjb3JkZXIuaXNWaWRlb1N1cHBvcnRlZCgpO1xuXG4gICAgICAgIGlmICghaXNWaWRlb1N1cHBvcnRlZCkge1xuICAgICAgICAgICAgdGhpcy53YXJuaW5nTG9nLmFkZFdhcm5pbmcoV0FSTklOR19NRVNTQUdFUy52aWRlb05vdFN1cHBvcnRlZEJ5QnJvd3NlciwgdGVzdFJ1blZpZGVvUmVjb3JkZXIudGVzdFJ1bkluZm8uYWxpYXMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNWaWRlb0VuYWJsZWQgPSBhd2FpdCB0ZXN0UnVuVmlkZW9SZWNvcmRlci5pc1ZpZGVvRW5hYmxlZCgpO1xuXG4gICAgICAgIGlmICghaXNWaWRlb0VuYWJsZWQpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgYXdhaXQgdGVzdFJ1blZpZGVvUmVjb3JkZXIuaW5pdCgpO1xuXG4gICAgICAgIHRoaXMudGVzdFJ1blZpZGVvUmVjb3JkZXJzW3Rlc3RSdW5WaWRlb1JlY29yZGVyLmluZGV4XSA9IHRlc3RSdW5WaWRlb1JlY29yZGVyO1xuICAgIH1cblxuICAgIF9jcmVhdGVUZXN0UnVuVmlkZW9SZWNvcmRlciAodGVzdFJ1bkluZm8sIHJlY29yZGluZ09wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUZXN0UnVuVmlkZW9SZWNvcmRlcih0ZXN0UnVuSW5mbywgcmVjb3JkaW5nT3B0aW9ucywgdGhpcy53YXJuaW5nTG9nKTtcbiAgICB9XG5cbiAgICBhc3luYyBfb25UZXN0UnVuUmVhZHkgKHsgaW5kZXggfSkge1xuICAgICAgICBjb25zdCB0ZXN0UnVuUmVjb3JkZXIgPSB0aGlzLnRlc3RSdW5WaWRlb1JlY29yZGVyc1tpbmRleF07XG5cbiAgICAgICAgaWYgKCF0ZXN0UnVuUmVjb3JkZXIpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgYXdhaXQgdGVzdFJ1blJlY29yZGVyLnN0YXJ0Q2FwdHVyaW5nKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgX29uVGVzdFJ1blJlc3RhcnQgKHsgaW5kZXggfSkge1xuICAgICAgICBjb25zdCB0ZXN0UnVuUmVjb3JkZXIgPSB0aGlzLnRlc3RSdW5WaWRlb1JlY29yZGVyc1tpbmRleF07XG5cbiAgICAgICAgaWYgKCF0ZXN0UnVuUmVjb3JkZXIpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgdGVzdFJ1blJlY29yZGVyLm9uVGVzdFJ1blJlc3RhcnQoKTtcbiAgICB9XG5cbiAgICBhc3luYyBfb25UZXN0UnVuQmVmb3JlRG9uZSAoeyBpbmRleCB9KSB7XG4gICAgICAgIGNvbnN0IHRlc3RSdW5SZWNvcmRlciA9IHRoaXMudGVzdFJ1blZpZGVvUmVjb3JkZXJzW2luZGV4XTtcblxuICAgICAgICBpZiAoIXRlc3RSdW5SZWNvcmRlcilcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBkZWxldGUgdGhpcy50ZXN0UnVuVmlkZW9SZWNvcmRlcnNbaW5kZXhdO1xuXG4gICAgICAgIGF3YWl0IHRlc3RSdW5SZWNvcmRlci5maW5pc2hDYXB0dXJpbmcoKTtcblxuICAgICAgICBpZiAodGhpcy5mYWlsZWRPbmx5ICYmICF0ZXN0UnVuUmVjb3JkZXIuaGFzRXJyb3JzKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHZpZGVvUGF0aCA9IHRoaXMuX2dldFRhcmdldFZpZGVvUGF0aCh0ZXN0UnVuUmVjb3JkZXIpO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuX3NhdmVGaWxlcyh0ZXN0UnVuUmVjb3JkZXIsIHZpZGVvUGF0aCk7XG5cbiAgICAgICAgY29uc3QgdGVzdFJ1blZpZGVvU2F2ZWRFdmVudEFyZ3MgPSB7XG4gICAgICAgICAgICB0ZXN0UnVuOiAgICB0ZXN0UnVuUmVjb3JkZXIudGVzdFJ1bixcbiAgICAgICAgICAgIHZpZGVvUGF0aCxcbiAgICAgICAgICAgIHNpbmdsZUZpbGU6ICEhdGhpcy5zaW5nbGVGaWxlLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghdGhpcy5zaW5nbGVGaWxlKVxuICAgICAgICAgICAgdGVzdFJ1blZpZGVvU2F2ZWRFdmVudEFyZ3MudGltZWNvZGVzID0gdGVzdFJ1blJlY29yZGVyLnRlc3RSdW5JbmZvLnRpbWVjb2RlcztcblxuICAgICAgICB0aGlzLmVtaXQoJ3Rlc3QtcnVuLXZpZGVvLXNhdmVkJywgdGVzdFJ1blZpZGVvU2F2ZWRFdmVudEFyZ3MpO1xuICAgIH1cblxuICAgIGFzeW5jIF9zYXZlRmlsZXMgKHRlc3RSdW5SZWNvcmRlciwgdmlkZW9QYXRoKSB7XG4gICAgICAgIGF3YWl0IG1ha2VEaXIoZGlybmFtZSh2aWRlb1BhdGgpKTtcblxuICAgICAgICBpZiAodGhpcy5zaW5nbGVGaWxlKVxuICAgICAgICAgICAgdGhpcy5fY29uY2F0VmlkZW8odmlkZW9QYXRoLCB0ZXN0UnVuUmVjb3JkZXIudGVtcEZpbGVzKTtcblxuICAgICAgICBmcy5jb3B5RmlsZVN5bmModGVzdFJ1blJlY29yZGVyLnRlbXBGaWxlcy50ZW1wVmlkZW9QYXRoLCB2aWRlb1BhdGgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -76,10 +76,10 @@ class TestRunVideoRecorder {
|
|
|
76
76
|
tmpMergeName: `${TEMP_MERGE_FILE_PREFIX}-${id}.${VIDEO_EXTENSION}`,
|
|
77
77
|
};
|
|
78
78
|
for (const [tempFile, tempName] of Object.entries(tempFileNames))
|
|
79
|
-
tempFileNames[tempFile] = path_1.join(this.path, tempName);
|
|
79
|
+
tempFileNames[tempFile] = (0, path_1.join)(this.path, tempName);
|
|
80
80
|
return tempFileNames;
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
exports.default = TestRunVideoRecorder;
|
|
84
84
|
module.exports = exports.default;
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1ydW4tdmlkZW8tcmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmlkZW8tcmVjb3JkZXIvdGVzdC1ydW4tdmlkZW8tcmVjb3JkZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBNEI7QUFDNUIsd0RBQTZDO0FBRTdDLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQztBQUU5QixNQUFNLHNCQUFzQixHQUFHLFdBQVcsQ0FBQztBQUMzQyxNQUFNLHNCQUFzQixHQUFHLHNCQUFzQixHQUFHLFFBQVEsQ0FBQztBQUVqRSxNQUFNLDZCQUE2QixHQUFNLFFBQVEsQ0FBQztBQUNsRCxNQUFNLGdDQUFnQyxHQUFHLEtBQUssQ0FBQztBQUUvQyxNQUFxQixvQkFBb0I7SUFDckMsWUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRTtRQUN4RSxJQUFJLENBQUMsT0FBTyxHQUFNLE9BQU8sQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFTLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFRLEtBQUssQ0FBQztRQUV4QixJQUFJLENBQUMsU0FBUyxHQUFPLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUUxQixJQUFJLENBQUMsSUFBSSxHQUFjLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFRLFVBQVUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUV2QyxJQUFJLENBQUMsS0FBSyxHQUFPLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTztZQUNILFNBQVMsRUFBUSxJQUFJLENBQUMsS0FBSztZQUMzQixPQUFP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QUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUV4RCxPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDO0NBQ0o7QUEzRkQsdUNBMkZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IFZpZGVvUmVjb3JkZXJQcm9jZXNzIGZyb20gJy4vcHJvY2Vzcyc7XG5cbmNvbnN0IFZJREVPX0VYVEVOU0lPTiA9ICdtcDQnO1xuXG5jb25zdCBURU1QX1ZJREVPX0ZJTEVfUFJFRklYID0gJ3RtcC12aWRlbyc7XG5jb25zdCBURU1QX01FUkdFX0ZJTEVfUFJFRklYID0gVEVNUF9WSURFT19GSUxFX1BSRUZJWCArICctbWVyZ2UnO1xuXG5jb25zdCBURU1QX01FUkdFX0NPTkZJR19GSUxFX1BSRUZJWCAgICA9ICdjb25maWcnO1xuY29uc3QgVEVNUF9NRVJHRV9DT05GSUdfRklMRV9FWFRFTlNJT04gPSAndHh0JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVzdFJ1blZpZGVvUmVjb3JkZXIge1xuICAgIGNvbnN0cnVjdG9yICh7IHRlc3RSdW4sIHRlc3QsIGluZGV4IH0sIHsgcGF0aCwgZmZtcGVnUGF0aCwgZW5jb2RpbmdPcHRpb25zIH0pIHtcbiAgICAgICAgdGhpcy50ZXN0UnVuICAgID0gdGVzdFJ1bjtcbiAgICAgICAgdGhpcy50ZXN0ICAgICAgID0gdGVzdDtcbiAgICAgICAgdGhpcy5pbmRleCAgICAgID0gaW5kZXg7XG5cbiAgICAgICAgdGhpcy50ZW1wRmlsZXMgICAgID0gbnVsbDtcbiAgICAgICAgdGhpcy52aWRlb1JlY29yZGVyID0gbnVsbDtcblxuICAgICAgICB0aGlzLnBhdGggICAgICAgICAgICA9IHBhdGg7XG4gICAgICAgIHRoaXMuZmZtcGVnUGF0aCAgICAgID0gZmZtcGVnUGF0aDtcbiAgICAgICAgdGhpcy5lbmNvZGluZ09wdGlvbnMgPSBlbmNvZGluZ09wdGlvbnM7XG5cbiAgICAgICAgdGhpcy5zdGFydCAgICAgPSBudWxsO1xuICAgICAgICB0aGlzLnRpbWVjb2RlcyA9IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IHRlc3RSdW5JbmZvICgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRlc3RJbmRleDogICAgICAgdGhpcy5pbmRleCxcbiAgICAgICAgICAgIGZpeHR1cmU6ICAgICAgICAgdGhpcy50ZXN0LmZpeHR1cmUubmFtZSxcbiAgICAgICAgICAgIHRlc3Q6ICAgICAgICAgICAgdGhpcy50ZXN0Lm5hbWUsXG4gICAgICAgICAgICB0aW1lY29kZXM6ICAgICAgIHRoaXMudGltZWNvZGVzLFxuICAgICAgICAgICAgYWxpYXM6ICAgICAgICAgICB0aGlzLl9jb25uZWN0aW9uLmJyb3dzZXJJbmZvLmFsaWFzLFxuICAgICAgICAgICAgcGFyc2VkVXNlckFnZW50OiB0aGlzLl9jb25uZWN0aW9uLmJyb3dzZXJJbmZvLnBhcnNlZFVzZXJBZ2VudCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXQgaGFzRXJyb3JzICgpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50ZXN0UnVuLmVycnMubGVuZ3RoO1xuICAgIH1cblxuICAgIGdldCBfY29ubmVjdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRlc3RSdW4uYnJvd3NlckNvbm5lY3Rpb247XG4gICAgfVxuXG4gICAgYXN5bmMgc3RhcnRDYXB0dXJpbmcgKCkge1xuICAgICAgICBhd2FpdCB0aGlzLnZpZGVvUmVjb3JkZXIuc3RhcnRDYXB0dXJpbmcoKTtcblxuICAgICAgICB0aGlzLnN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICBhc3luYyBmaW5pc2hDYXB0dXJpbmcgKCkge1xuICAgICAgICBhd2FpdCB0aGlzLnZpZGVvUmVjb3JkZXIuZmluaXNoQ2FwdHVyaW5nKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgaW5pdCAoKSB7XG4gICAgICAgIHRoaXMudGVtcEZpbGVzICAgICA9IHRoaXMuX2dlbmVyYXRlVGVtcE5hbWVzKCk7XG4gICAgICAgIHRoaXMudmlkZW9SZWNvcmRlciA9IHRoaXMuX2NyZWF0ZVZpZGVvUmVjb3JkZXJQcm9jZXNzKCk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy52aWRlb1JlY29yZGVyLmluaXQoKTtcbiAgICB9XG5cbiAgICBhc3luYyBpc1ZpZGVvU3VwcG9ydGVkICgpIHtcbiAgICAgICAgY29uc3QgY29ubmVjdGlvbkNhcGFiaWxpdGllcyA9IGF3YWl0IHRoaXMuX2Nvbm5lY3Rpb24ucHJvdmlkZXIuaGFzQ3VzdG9tQWN0aW9uRm9yQnJvd3Nlcih0aGlzLl9jb25uZWN0aW9uLmlkKTtcblxuICAgICAgICByZXR1cm4gY29ubmVjdGlvbkNhcGFiaWxpdGllcyAmJiBjb25uZWN0aW9uQ2FwYWJpbGl0aWVzLmhhc0dldFZpZGVvRnJhbWVEYXRhO1xuICAgIH1cblxuICAgIGFzeW5jIGlzVmlkZW9FbmFibGVkICgpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnRlc3Quc2tpcDtcbiAgICB9XG5cbiAgICBvblRlc3RSdW5SZXN0YXJ0ICgpIHtcbiAgICAgICAgdGhpcy50aW1lY29kZXMgPSB0aGlzLnRpbWVjb2RlcyB8fCBbMF07XG5cbiAgICAgICAgdGhpcy5fYWRkVGltZUNvZGUoKTtcbiAgICB9XG5cbiAgICBfYWRkVGltZUNvZGUgKCkge1xuICAgICAgICB0aGlzLnRpbWVjb2Rlcy5wdXNoKERhdGUubm93KCkgLSB0aGlzLnN0YXJ0KTtcbiAgICB9XG5cbiAgICBfY3JlYXRlVmlkZW9SZWNvcmRlclByb2Nlc3MgKCkge1xuICAgICAgICByZXR1cm4gbmV3IFZpZGVvUmVjb3JkZXJQcm9jZXNzKHRoaXMudGVtcEZpbGVzLnRlbXBWaWRlb1BhdGgsIHRoaXMuZmZtcGVnUGF0aCwgdGhpcy5fY29ubmVjdGlvbiwgdGhpcy5lbmNvZGluZ09wdGlvbnMpO1xuICAgIH1cblxuICAgIF9nZW5lcmF0ZVRlbXBOYW1lcyAoKSB7XG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5fY29ubmVjdGlvbi5pZDtcblxuICAgICAgICBjb25zdCB0ZW1wRmlsZU5hbWVzID0ge1xuICAgICAgICAgICAgdGVtcFZpZGVvUGF0aDogICAgICAgYCR7VEVNUF9WSURFT19GSUxFX1BSRUZJWH0tJHtpZH0uJHtWSURFT19FWFRFTlNJT059YCxcbiAgICAgICAgICAgIHRlbXBNZXJnZUNvbmZpZ1BhdGg6IGAke1RFTVBfTUVSR0VfQ09ORklHX0ZJTEVfUFJFRklYfS0ke2lkfS4ke1RFTVBfTUVSR0VfQ09ORklHX0ZJTEVfRVhURU5TSU9OfWAsXG4gICAgICAgICAgICB0bXBNZXJnZU5hbWU6ICAgICAgICBgJHtURU1QX01FUkdFX0ZJTEVfUFJFRklYfS0ke2lkfS4ke1ZJREVPX0VYVEVOU0lPTn1gLFxuICAgICAgICB9O1xuXG4gICAgICAgIGZvciAoY29uc3QgW3RlbXBGaWxlLCB0ZW1wTmFtZV0gb2YgT2JqZWN0LmVudHJpZXModGVtcEZpbGVOYW1lcykpXG4gICAgICAgICAgICB0ZW1wRmlsZU5hbWVzW3RlbXBGaWxlXSA9IGpvaW4odGhpcy5wYXRoLCB0ZW1wTmFtZSk7XG5cbiAgICAgICAgcmV0dXJuIHRlbXBGaWxlTmFtZXM7XG4gICAgfVxufVxuIl19
|