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
|
@@ -19,7 +19,7 @@ class CoffeeScriptTestFileParser extends get_test_list_1.EsNextTestFileParser {
|
|
|
19
19
|
inlineMap: false,
|
|
20
20
|
header: false,
|
|
21
21
|
});
|
|
22
|
-
const ast = core_1.transform(code, babelOptions).ast;
|
|
22
|
+
const ast = (0, core_1.transform)(code, babelOptions).ast;
|
|
23
23
|
return this.analyze(ast.program.body);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -27,4 +27,4 @@ exports.CoffeeScriptTestFileParser = CoffeeScriptTestFileParser;
|
|
|
27
27
|
const parser = new CoffeeScriptTestFileParser();
|
|
28
28
|
exports.getCoffeeScriptTestList = parser.getTestList.bind(parser);
|
|
29
29
|
exports.getCoffeeScriptTestListFromCode = parser.getTestListFromCode.bind(parser);
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXRlc3QtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21waWxlci90ZXN0LWZpbGUvZm9ybWF0cy9jb2ZmZWVzY3JpcHQvZ2V0LXRlc3QtbGlzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnRUFBd0M7QUFDeEMsc0NBQXdDO0FBQ3hDLHlFQUE0RDtBQUM1RCw0REFBZ0U7QUFFaEUsTUFBYSwwQkFBMkIsU0FBUSxvQ0FBb0I7SUFDaEUsS0FBSyxDQUFFLElBQUk7UUFDUCxNQUFNLFlBQVksR0FBRyxxQkFBc0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXhFLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUM3QixZQUFZLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztRQUV4QixJQUFJLEdBQUcsc0JBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQzlCLElBQUksRUFBTyxJQUFJO1lBQ2YsU0FBUyxFQUFFLEtBQUs7WUFDaEIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsTUFBTSxFQUFLLEtBQUs7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxHQUFHLEdBQUcsSUFBQSxnQkFBUyxFQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFFOUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNKO0FBbEJELGdFQWtCQztBQUVELE1BQU0sTUFBTSxHQUFHLElBQUksMEJBQTBCLEVBQUUsQ0FBQztBQUVuQyxRQUFBLHVCQUF1QixHQUFXLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2xFLFFBQUEsK0JBQStCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb2ZmZWVTY3JpcHQgZnJvbSAnY29mZmVlc2NyaXB0JztcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJ0BiYWJlbC9jb3JlJztcbmltcG9ydCBFU05leHRUZXN0RmlsZUNvbXBpbGVyIGZyb20gJy4uL2VzLW5leHQvY29tcGlsZXIuanMnO1xuaW1wb3J0IHsgRXNOZXh0VGVzdEZpbGVQYXJzZXIgfSBmcm9tICcuLi9lcy1uZXh0L2dldC10ZXN0LWxpc3QnO1xuXG5leHBvcnQgY2xhc3MgQ29mZmVlU2NyaXB0VGVzdEZpbGVQYXJzZXIgZXh0ZW5kcyBFc05leHRUZXN0RmlsZVBhcnNlciB7XG4gICAgcGFyc2UgKGNvZGUpIHtcbiAgICAgICAgY29uc3QgYmFiZWxPcHRpb25zID0gRVNOZXh0VGVzdEZpbGVDb21waWxlci5nZXRCYWJlbE9wdGlvbnMobnVsbCwgY29kZSk7XG5cbiAgICAgICAgZGVsZXRlIGJhYmVsT3B0aW9ucy5maWxlbmFtZTtcbiAgICAgICAgYmFiZWxPcHRpb25zLmFzdCA9IHRydWU7XG5cbiAgICAgICAgY29kZSA9IENvZmZlZVNjcmlwdC5jb21waWxlKGNvZGUsIHtcbiAgICAgICAgICAgIGJhcmU6ICAgICAgdHJ1ZSxcbiAgICAgICAgICAgIHNvdXJjZU1hcDogZmFsc2UsXG4gICAgICAgICAgICBpbmxpbmVNYXA6IGZhbHNlLFxuICAgICAgICAgICAgaGVhZGVyOiAgICBmYWxzZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgYXN0ID0gdHJhbnNmb3JtKGNvZGUsIGJhYmVsT3B0aW9ucykuYXN0O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFuYWx5emUoYXN0LnByb2dyYW0uYm9keSk7XG4gICAgfVxufVxuXG5jb25zdCBwYXJzZXIgPSBuZXcgQ29mZmVlU2NyaXB0VGVzdEZpbGVQYXJzZXIoKTtcblxuZXhwb3J0IGNvbnN0IGdldENvZmZlZVNjcmlwdFRlc3RMaXN0ICAgICAgICAgPSBwYXJzZXIuZ2V0VGVzdExpc3QuYmluZChwYXJzZXIpO1xuZXhwb3J0IGNvbnN0IGdldENvZmZlZVNjcmlwdFRlc3RMaXN0RnJvbUNvZGUgPSBwYXJzZXIuZ2V0VGVzdExpc3RGcm9tQ29kZS5iaW5kKHBhcnNlcik7XG4iXX0=
|
|
@@ -13,19 +13,19 @@ eval("");
|
|
|
13
13
|
`;
|
|
14
14
|
class ESNextTestFileCompiler extends api_based_1.default {
|
|
15
15
|
static getBabelOptions(filename, code, isCompilerServiceMode) {
|
|
16
|
-
const { presetStage2, presetFlow, transformRuntime, presetEnvForTestCode, presetReact, moduleResolver, proposalPrivateMethods, proposalClassProperties, } = load_libs_1.default(isCompilerServiceMode);
|
|
16
|
+
const { presetStage2, presetFlow, transformRuntime, presetEnvForTestCode, presetReact, moduleResolver, proposalPrivateMethods, proposalClassProperties, } = (0, load_libs_1.default)(isCompilerServiceMode);
|
|
17
17
|
const opts = Object.assign({}, get_base_babel_options_1.default, {
|
|
18
18
|
presets: [presetStage2, presetEnvForTestCode, presetReact],
|
|
19
19
|
plugins: [transformRuntime, moduleResolver, proposalPrivateMethods, proposalClassProperties],
|
|
20
20
|
sourceMaps: 'inline',
|
|
21
21
|
filename,
|
|
22
22
|
});
|
|
23
|
-
if (is_flow_code_1.default(code))
|
|
23
|
+
if ((0, is_flow_code_1.default)(code))
|
|
24
24
|
opts.presets.push(presetFlow);
|
|
25
25
|
return opts;
|
|
26
26
|
}
|
|
27
27
|
_compileCode(code, filename) {
|
|
28
|
-
const { babel } = load_libs_1.default();
|
|
28
|
+
const { babel } = (0, load_libs_1.default)();
|
|
29
29
|
if (this.cache[filename])
|
|
30
30
|
return this.cache[filename];
|
|
31
31
|
if (this.isCompilerServiceMode)
|
|
@@ -47,4 +47,4 @@ class ESNextTestFileCompiler extends api_based_1.default {
|
|
|
47
47
|
}
|
|
48
48
|
exports.default = ESNextTestFileCompiler;
|
|
49
49
|
module.exports = exports.default;
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcGlsZXIvdGVzdC1maWxlL2Zvcm1hdHMvZXMtbmV4dC9jb21waWxlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlFQUFxRDtBQUNyRCxnRUFBMkQ7QUFDM0Qsa0VBQXdDO0FBQ3hDLG1HQUF1RTtBQUN2RSxzR0FBOEU7QUFFOUUsTUFBTSw0QkFBNEIsR0FDbEMsS0FBSyxzQ0FBNEI7O0NBRWhDLENBQUM7QUFFRixNQUFxQixzQkFBdUIsU0FBUSxtQkFBNEI7SUFFNUUsTUFBTSxDQUFDLGVBQWUsQ0FBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLHFCQUFxQjtRQUN6RCxNQUFNLEVBQ0YsWUFBWSxFQUNaLFVBQVUsRUFDVixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxjQUFjLEVBQ2Qsc0JBQXNCLEVBQ3RCLHVCQUF1QixHQUMxQixHQUFHLElBQUEsbUJBQWEsRUFBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXpDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLGdDQUFrQixFQUFFO1lBQy9DLE9BQU8sRUFBSyxDQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxXQUFXLENBQUM7WUFDN0QsT0FBTyxFQUFLLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixDQUFDO1lBQy9GLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLFFBQVE7U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUEsc0JBQVUsRUFBQyxJQUFJLENBQUM7WUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFlBQVksQ0FBRSxJQUFJLEVBQUUsUUFBUTtRQUN4QixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBQSxtQkFBYSxHQUFFLENBQUM7UUFFbEMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMscUJBQXFCO1lBQzFCLElBQUksSUFBSSw0QkFBNEIsQ0FBQztRQUV6QyxNQUFNLElBQUksR0FBTyxzQkFBc0IsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNwRyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFFckMsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsT0FBTztZQUNILEtBQUssRUFBRyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQztZQUM3RCxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7U0FDaEUsQ0FBQztJQUNOLENBQUM7SUFFRCxxQkFBcUI7UUFDakIsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0NBQ0o7QUF0REQseUNBc0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvYWRCYWJlbExpYnMgZnJvbSAnLi4vLi4vLi4vYmFiZWwvbG9hZC1saWJzJztcbmltcG9ydCBBUElCYXNlZFRlc3RGaWxlQ29tcGlsZXJCYXNlIGZyb20gJy4uLy4uL2FwaS1iYXNlZCc7XG5pbXBvcnQgaXNGbG93Q29kZSBmcm9tICcuL2lzLWZsb3ctY29kZSc7XG5pbXBvcnQgQkFTRV9CQUJFTF9PUFRJT05TIGZyb20gJy4uLy4uLy4uL2JhYmVsL2dldC1iYXNlLWJhYmVsLW9wdGlvbnMnO1xuaW1wb3J0IERJU0FCTEVfVjhfT1BUSU1JWkFUSU9OX05PVEUgZnJvbSAnLi4vLi4vZGlzYWJsZS12OC1vcHRpbWl6YXRpb24tbm90ZSc7XG5cbmNvbnN0IERJU0FCTEVfVjhfT1BUSU1JWkFUSU9OX0NPREUgPVxuYC8qJHtESVNBQkxFX1Y4X09QVElNSVpBVElPTl9OT1RFfSovXG5ldmFsKFwiXCIpO1xuYDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRVNOZXh0VGVzdEZpbGVDb21waWxlciBleHRlbmRzIEFQSUJhc2VkVGVzdEZpbGVDb21waWxlckJhc2Uge1xuXG4gICAgc3RhdGljIGdldEJhYmVsT3B0aW9ucyAoZmlsZW5hbWUsIGNvZGUsIGlzQ29tcGlsZXJTZXJ2aWNlTW9kZSkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBwcmVzZXRTdGFnZTIsXG4gICAgICAgICAgICBwcmVzZXRGbG93LFxuICAgICAgICAgICAgdHJhbnNmb3JtUnVudGltZSxcbiAgICAgICAgICAgIHByZXNldEVudkZvclRlc3RDb2RlLFxuICAgICAgICAgICAgcHJlc2V0UmVhY3QsXG4gICAgICAgICAgICBtb2R1bGVSZXNvbHZlcixcbiAgICAgICAgICAgIHByb3Bvc2FsUHJpdmF0ZU1ldGhvZHMsXG4gICAgICAgICAgICBwcm9wb3NhbENsYXNzUHJvcGVydGllcyxcbiAgICAgICAgfSA9IGxvYWRCYWJlbExpYnMoaXNDb21waWxlclNlcnZpY2VNb2RlKTtcblxuICAgICAgICBjb25zdCBvcHRzID0gT2JqZWN0LmFzc2lnbih7fSwgQkFTRV9CQUJFTF9PUFRJT05TLCB7XG4gICAgICAgICAgICBwcmVzZXRzOiAgICBbcHJlc2V0U3RhZ2UyLCBwcmVzZXRFbnZGb3JUZXN0Q29kZSwgcHJlc2V0UmVhY3RdLFxuICAgICAgICAgICAgcGx1Z2luczogICAgW3RyYW5zZm9ybVJ1bnRpbWUsIG1vZHVsZVJlc29sdmVyLCBwcm9wb3NhbFByaXZhdGVNZXRob2RzLCBwcm9wb3NhbENsYXNzUHJvcGVydGllc10sXG4gICAgICAgICAgICBzb3VyY2VNYXBzOiAnaW5saW5lJyxcbiAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoaXNGbG93Q29kZShjb2RlKSlcbiAgICAgICAgICAgIG9wdHMucHJlc2V0cy5wdXNoKHByZXNldEZsb3cpO1xuXG4gICAgICAgIHJldHVybiBvcHRzO1xuICAgIH1cblxuICAgIF9jb21waWxlQ29kZSAoY29kZSwgZmlsZW5hbWUpIHtcbiAgICAgICAgY29uc3QgeyBiYWJlbCB9ID0gbG9hZEJhYmVsTGlicygpO1xuXG4gICAgICAgIGlmICh0aGlzLmNhY2hlW2ZpbGVuYW1lXSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhY2hlW2ZpbGVuYW1lXTtcblxuICAgICAgICBpZiAodGhpcy5pc0NvbXBpbGVyU2VydmljZU1vZGUpXG4gICAgICAgICAgICBjb2RlICs9IERJU0FCTEVfVjhfT1BUSU1JWkFUSU9OX0NPREU7XG5cbiAgICAgICAgY29uc3Qgb3B0cyAgICAgPSBFU05leHRUZXN0RmlsZUNvbXBpbGVyLmdldEJhYmVsT3B0aW9ucyhmaWxlbmFtZSwgY29kZSwgdGhpcy5pc0NvbXBpbGVyU2VydmljZU1vZGUpO1xuICAgICAgICBjb25zdCBjb21waWxlZCA9IGJhYmVsLnRyYW5zZm9ybShjb2RlLCBvcHRzKTtcblxuICAgICAgICB0aGlzLmNhY2hlW2ZpbGVuYW1lXSA9IGNvbXBpbGVkLmNvZGU7XG5cbiAgICAgICAgcmV0dXJuIGNvbXBpbGVkLmNvZGU7XG4gICAgfVxuXG4gICAgX2dldFJlcXVpcmVDb21waWxlcnMgKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJy5qcyc6ICAoY29kZSwgZmlsZW5hbWUpID0+IHRoaXMuX2NvbXBpbGVDb2RlKGNvZGUsIGZpbGVuYW1lKSxcbiAgICAgICAgICAgICcuanN4JzogKGNvZGUsIGZpbGVuYW1lKSA9PiB0aGlzLl9jb21waWxlQ29kZShjb2RlLCBmaWxlbmFtZSksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0U3VwcG9ydGVkRXh0ZW5zaW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFsnLmpzJywgJy5qc3gnXTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -63,7 +63,7 @@ class EsNextTestFileParser extends test_file_parser_base_1.TestFileParserBase {
|
|
|
63
63
|
loc: token.loc,
|
|
64
64
|
start: token.start,
|
|
65
65
|
end: token.end,
|
|
66
|
-
meta: lodash_1.merge({}, ...meta),
|
|
66
|
+
meta: (0, lodash_1.merge)({}, ...meta),
|
|
67
67
|
isSkipped: test_file_parser_base_1.TestFileParserBase.isSkipped(token),
|
|
68
68
|
};
|
|
69
69
|
}
|
|
@@ -156,8 +156,8 @@ class EsNextTestFileParser extends test_file_parser_base_1.TestFileParserBase {
|
|
|
156
156
|
parse(code) {
|
|
157
157
|
const compilerOptions = compiler_1.default.getBabelOptions(null, code);
|
|
158
158
|
delete compilerOptions.filename;
|
|
159
|
-
const opts = lodash_1.assign(compilerOptions, { ast: true });
|
|
160
|
-
const ast = core_1.transform(code, opts).ast;
|
|
159
|
+
const opts = (0, lodash_1.assign)(compilerOptions, { ast: true });
|
|
160
|
+
const ast = (0, core_1.transform)(code, opts).ast;
|
|
161
161
|
return this.analyze(ast.program.body);
|
|
162
162
|
}
|
|
163
163
|
}
|
|
@@ -165,4 +165,4 @@ exports.EsNextTestFileParser = EsNextTestFileParser;
|
|
|
165
165
|
const parser = new EsNextTestFileParser();
|
|
166
166
|
exports.getTestList = parser.getTestList.bind(parser);
|
|
167
167
|
exports.getTestListFromCode = parser.getTestListFromCode.bind(parser);
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXRlc3QtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21waWxlci90ZXN0LWZpbGUvZm9ybWF0cy9lcy1uZXh0L2dldC10ZXN0LWxpc3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbUNBQXVDO0FBQ3ZDLHNDQUF3QztBQUN4QywwREFBZ0Q7QUFDaEQsdUVBQWlFO0FBRWpFLE1BQU0sVUFBVSxHQUFHO0lBQ2YsVUFBVSxFQUFnQixZQUFZO0lBQ3RDLHdCQUF3QixFQUFFLGtCQUFrQjtJQUM1QyxjQUFjLEVBQVksZ0JBQWdCO0lBQzFDLHdCQUF3QixFQUFFLDBCQUEwQjtJQUNwRCxlQUFlLEVBQVcsaUJBQWlCO0lBQzNDLGFBQWEsRUFBYSxlQUFlO0lBQ3pDLHVCQUF1QixFQUFHLHlCQUF5QjtJQUNuRCxrQkFBa0IsRUFBUSxvQkFBb0I7SUFDOUMsbUJBQW1CLEVBQU8scUJBQXFCO0lBQy9DLGVBQWUsRUFBVyxpQkFBaUI7SUFDM0MsbUJBQW1CLEVBQU8scUJBQXFCO0lBQy9DLGlCQUFpQixFQUFTLG1CQUFtQjtJQUM3QyxtQkFBbUIsRUFBTyxxQkFBcUI7SUFDL0MsdUJBQXVCLEVBQUcsa0JBQWtCO0NBQy9DLENBQUM7QUFFRixNQUFhLG9CQUFxQixTQUFRLDBDQUFrQjtJQUN4RDtRQUNJLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBRSxHQUFHO1FBQ3RCLDZGQUE2RjtRQUM3RixPQUFPLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQzFILENBQUM7SUFFRCxTQUFTLENBQUUsS0FBSztRQUNaLE9BQU8sS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQzFDLENBQUM7SUFFRCxZQUFZLENBQUUsS0FBSztRQUNmLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztJQUN0QixDQUFDO0lBRUQsU0FBUyxDQUFFLEtBQUs7UUFDWixPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxjQUFjLENBQUUsS0FBSztRQUNqQixNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUcsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5DLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxlQUFlLENBQUUsS0FBSztRQUNsQixPQUFPLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDaEUsQ0FBQztJQUVELGNBQWMsQ0FBRSxLQUFLO1FBQ2pCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRUQsZUFBZSxDQUFFLEtBQUs7UUFDbEIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQVksQ0FBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDekMsT0FBTztZQUNILE1BQU0sRUFBSyxJQUFJO1lBQ2YsS0FBSyxFQUFNLEtBQUs7WUFDaEIsR0FBRyxFQUFRLEtBQUssQ0FBQyxHQUFHO1lBQ3BCLEtBQUssRUFBTSxLQUFLLENBQUMsS0FBSztZQUN0QixHQUFHLEVBQVEsS0FBSyxDQUFDLEdBQUc7WUFDcEIsSUFBSSxFQUFPLGNBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDN0IsU0FBUyxFQUFFLDBDQUFrQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7U0FDakQsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXLENBQUUsSUFBSTtRQUNiLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRTVCLE9BQU87WUFDSCxHQUFHLEVBQUksR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUN4QyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7U0FDcEMsQ0FBQztJQUNOLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxLQUFLO1FBQ25CLElBQUksR0FBRyxHQUFXLEtBQUssQ0FBQztRQUN4QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2pDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFeEIsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxVQUFVLEVBQUU7WUFDdEMsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxjQUFjO2dCQUNyQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztpQkFFaEIsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyx3QkFBd0I7Z0JBQ3BELEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO2lCQUVoQixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLHdCQUF3QjtnQkFDcEQsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7O2dCQUdkLE9BQU8sSUFBSSxDQUFDO1lBRWhCLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsVUFBVTtnQkFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMzQjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV6QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRWpELElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUVoQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLGNBQWM7WUFDM0MsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTlGLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsd0JBQXdCO1lBQ3JELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTFHLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsd0JBQXdCLEVBQUU7WUFDdkQsT0FBTyxTQUFTLEVBQUU7Z0JBQ2QsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxjQUFjLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRTtvQkFDakUsTUFBTSxVQUFVLEdBQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7b0JBQzdDLE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztvQkFFbkYsSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQzt3QkFDekQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUNqRztnQkFFRCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLHdCQUF3QixJQUFJLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ3hFLE1BQU0sT0FBTyxHQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO29CQUN2QyxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7b0JBRTFFLElBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7d0JBQ25ELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUM3RztnQkFFRCxTQUFTLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQy9CO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsV0FBVyxDQUFFLEdBQUc7UUFDWixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVO1lBQ3RDLE9BQU8sb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkUsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZTtZQUMzQyxPQUFPLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhO1lBQ3pDLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQztRQUVyQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsU0FBUyxDQUFFLEtBQUs7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRWxELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsb0JBQW9CLENBQUUsS0FBSztRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQsYUFBYSxDQUFFLEtBQUs7UUFDaEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUVqQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLHdCQUF3QjtZQUNqRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLGNBQWMsRUFBRTtZQUN6QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUVyQyxJQUFJLFVBQVUsS0FBSyxTQUFTLENBQUMsd0JBQXdCLElBQUksVUFBVSxLQUFLLFNBQVMsQ0FBQyxjQUFjO2dCQUM1RixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV4QyxJQUFJLFVBQVUsS0FBSyxTQUFTLENBQUMsa0JBQWtCLElBQUksVUFBVSxLQUFLLFNBQVMsQ0FBQyx1QkFBdUI7Z0JBQy9GLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTdELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoQztRQUVELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsd0JBQXdCLEVBQUU7WUFDbkQsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsd0JBQXdCO2dCQUNyRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV4QyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxLQUFLLENBQUUsSUFBSTtRQUNQLE1BQU0sZUFBZSxHQUFHLGtCQUFzQixDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFM0UsT0FBTyxlQUFlLENBQUMsUUFBUSxDQUFDO1FBRWhDLE1BQU0sSUFBSSxHQUFHLGVBQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwRCxNQUFNLEdBQUcsR0FBSSxnQkFBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFFdkMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNKO0FBeExELG9EQXdMQztBQUVELE1BQU0sTUFBTSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztBQUU3QixRQUFBLFdBQVcsR0FBVyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0RCxRQUFBLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc3NpZ24sIG1lcmdlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJ0BiYWJlbC9jb3JlJztcbmltcG9ydCBFU05leHRUZXN0RmlsZUNvbXBpbGVyIGZyb20gJy4vY29tcGlsZXInO1xuaW1wb3J0IHsgVGVzdEZpbGVQYXJzZXJCYXNlIH0gZnJvbSAnLi4vLi4vdGVzdC1maWxlLXBhcnNlci1iYXNlJztcblxuY29uc3QgVE9LRU5fVFlQRSA9IHtcbiAgICBJZGVudGlmaWVyOiAgICAgICAgICAgICAgICdJZGVudGlmaWVyJyxcbiAgICBQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb246ICdNZW1iZXJFeHByZXNzaW9uJyxcbiAgICBDYWxsRXhwcmVzc2lvbjogICAgICAgICAgICdDYWxsRXhwcmVzc2lvbicsXG4gICAgVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uOiAnVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uJyxcbiAgICBUZW1wbGF0ZUxpdGVyYWw6ICAgICAgICAgICdUZW1wbGF0ZUxpdGVyYWwnLFxuICAgIFN0cmluZ0xpdGVyYWw6ICAgICAgICAgICAgJ1N0cmluZ0xpdGVyYWwnLFxuICAgIEFycm93RnVuY3Rpb25FeHByZXNzaW9uOiAgJ0Fycm93RnVuY3Rpb25FeHByZXNzaW9uJyxcbiAgICBGdW5jdGlvbkV4cHJlc3Npb246ICAgICAgICdGdW5jdGlvbkV4cHJlc3Npb24nLFxuICAgIEV4cHJlc3Npb25TdGF0ZW1lbnQ6ICAgICAgJ0V4cHJlc3Npb25TdGF0ZW1lbnQnLFxuICAgIFJldHVyblN0YXRlbWVudDogICAgICAgICAgJ1JldHVyblN0YXRlbWVudCcsXG4gICAgRnVuY3Rpb25EZWNsYXJhdGlvbjogICAgICAnRnVuY3Rpb25EZWNsYXJhdGlvbicsXG4gICAgVmFyaWFibGVTdGF0ZW1lbnQ6ICAgICAgICAnVmFyaWFibGVTdGF0ZW1lbnQnLFxuICAgIFZhcmlhYmxlRGVjbGFyYXRpb246ICAgICAgJ1ZhcmlhYmxlRGVjbGFyYXRpb24nLFxuICAgIE9iamVjdExpdGVyYWxFeHByZXNzaW9uOiAgJ09iamVjdEV4cHJlc3Npb24nLFxufTtcblxuZXhwb3J0IGNsYXNzIEVzTmV4dFRlc3RGaWxlUGFyc2VyIGV4dGVuZHMgVGVzdEZpbGVQYXJzZXJCYXNlIHtcbiAgICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgICAgIHN1cGVyKFRPS0VOX1RZUEUpO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRUYWdTdHJWYWx1ZSAoZXhwKSB7XG4gICAgICAgIC8vTk9URTogd2Ugc2V0IDxjb21wdXRlZCBuYW1lPiBpZiB0ZW1wbGF0ZSBsaXRlcmFsIGhhcyBhdCBsZWFzdCBvbmUgY29tcHV0ZWQgc3Vic3RyaW5nICR7Li4ufVxuICAgICAgICByZXR1cm4gZXhwLmV4cHJlc3Npb25zLmxlbmd0aCA/IEVzTmV4dFRlc3RGaWxlUGFyc2VyLmZvcm1hdENvbXB1dGVkTmFtZShleHAubG9jLnN0YXJ0LmxpbmUpIDogZXhwLnF1YXNpc1swXS52YWx1ZS5yYXc7XG4gICAgfVxuXG4gICAgaXNBc3luY0ZuICh0b2tlbikge1xuICAgICAgICByZXR1cm4gdG9rZW4uYXN5bmMgfHwgdG9rZW4uZ2VuZXJhdG9yO1xuICAgIH1cblxuICAgIGdldFRva2VuVHlwZSAodG9rZW4pIHtcbiAgICAgICAgcmV0dXJuIHRva2VuLnR5cGU7XG4gICAgfVxuXG4gICAgZ2V0UlZhbHVlICh0b2tlbikge1xuICAgICAgICByZXR1cm4gdG9rZW4uZGVjbGFyYXRpb25zWzBdLmluaXQ7XG4gICAgfVxuXG4gICAgZ2V0U3RyaW5nVmFsdWUgKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IHN0cmluZ1R5cGVzID0gW3RoaXMudG9rZW5UeXBlLlN0cmluZ0xpdGVyYWwsIHRoaXMudG9rZW5UeXBlLlRlbXBsYXRlTGl0ZXJhbCwgdGhpcy50b2tlblR5cGUuSWRlbnRpZmllcl07XG5cbiAgICAgICAgaWYgKHN0cmluZ1R5cGVzLmluZGV4T2YodG9rZW4udHlwZSkgPiAtMSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZuQXJnKHRva2VuKTtcblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBnZXRGdW5jdGlvbkJvZHkgKHRva2VuKSB7XG4gICAgICAgIHJldHVybiB0b2tlbi5ib2R5ICYmIHRva2VuLmJvZHkuYm9keSA/IHRva2VuLmJvZHkuYm9keSA6IFtdO1xuICAgIH1cblxuICAgIGdldENhbGxlZVRva2VuICh0b2tlbikge1xuICAgICAgICByZXR1cm4gdG9rZW4uY2FsbGVlO1xuICAgIH1cblxuICAgIGdldE1lbWJlckZuTmFtZSAodG9rZW4pIHtcbiAgICAgICAgcmV0dXJuIHRva2VuLmNhbGxlZS5wcm9wZXJ0eS5uYW1lO1xuICAgIH1cblxuICAgIGZvcm1hdEZuRGF0YSAobmFtZSwgdmFsdWUsIHRva2VuLCBtZXRhID0gW3t9XSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZm5OYW1lOiAgICBuYW1lLFxuICAgICAgICAgICAgdmFsdWU6ICAgICB2YWx1ZSxcbiAgICAgICAgICAgIGxvYzogICAgICAgdG9rZW4ubG9jLFxuICAgICAgICAgICAgc3RhcnQ6ICAgICB0b2tlbi5zdGFydCxcbiAgICAgICAgICAgIGVuZDogICAgICAgdG9rZW4uZW5kLFxuICAgICAgICAgICAgbWV0YTogICAgICBtZXJnZSh7fSwgLi4ubWV0YSksXG4gICAgICAgICAgICBpc1NraXBwZWQ6IFRlc3RGaWxlUGFyc2VyQmFzZS5pc1NraXBwZWQodG9rZW4pLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldEtleVZhbHVlIChwcm9wKSB7XG4gICAgICAgIGNvbnN0IHsga2V5LCB2YWx1ZSB9ID0gcHJvcDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2V5OiAgIGtleS5uYW1lIHx8IHRoaXMuZm9ybWF0Rm5Bcmcoa2V5KSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLmdldFN0cmluZ1ZhbHVlKHZhbHVlKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBhbmFseXplTWVtYmVyRXhwICh0b2tlbikge1xuICAgICAgICBsZXQgZXhwICAgICAgICAgPSB0b2tlbjtcbiAgICAgICAgY29uc3QgdG9rZW5UeXBlID0gdGhpcy50b2tlblR5cGU7XG4gICAgICAgIGNvbnN0IGNhbGxTdGFjayA9IFtleHBdO1xuXG4gICAgICAgIHdoaWxlIChleHAudHlwZSAhPT0gdG9rZW5UeXBlLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGlmIChleHAudHlwZSA9PT0gdG9rZW5UeXBlLkNhbGxFeHByZXNzaW9uKVxuICAgICAgICAgICAgICAgIGV4cCA9IGV4cC5jYWxsZWU7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKGV4cC50eXBlID09PSB0b2tlblR5cGUuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKVxuICAgICAgICAgICAgICAgIGV4cCA9IGV4cC5vYmplY3Q7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKGV4cC50eXBlID09PSB0b2tlblR5cGUuVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uKVxuICAgICAgICAgICAgICAgIGV4cCA9IGV4cC50YWc7XG5cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgICAgICAgICAgaWYgKGV4cC50eXBlICE9PSB0b2tlblR5cGUuSWRlbnRpZmllcilcbiAgICAgICAgICAgICAgICBjYWxsU3RhY2sucHVzaChleHApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzQXBpRm4oZXhwLm5hbWUpKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBjb25zdCBtZXRhID0gdGhpcy5nZXRNZXRhSW5mbyhjYWxsU3RhY2suc2xpY2UoKSk7XG5cbiAgICAgICAgbGV0IHBhcmVudEV4cCA9IGNhbGxTdGFjay5wb3AoKTtcblxuICAgICAgICBpZiAocGFyZW50RXhwLnR5cGUgPT09IHRva2VuVHlwZS5DYWxsRXhwcmVzc2lvbilcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZuRGF0YShleHAubmFtZSwgdGhpcy5mb3JtYXRGbkFyZyhwYXJlbnRFeHAuYXJndW1lbnRzWzBdKSwgdG9rZW4sIG1ldGEpO1xuXG4gICAgICAgIGlmIChwYXJlbnRFeHAudHlwZSA9PT0gdG9rZW5UeXBlLlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbilcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZuRGF0YShleHAubmFtZSwgRXNOZXh0VGVzdEZpbGVQYXJzZXIuZ2V0VGFnU3RyVmFsdWUocGFyZW50RXhwLnF1YXNpKSwgdG9rZW4sIG1ldGEpO1xuXG4gICAgICAgIGlmIChwYXJlbnRFeHAudHlwZSA9PT0gdG9rZW5UeXBlLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbikge1xuICAgICAgICAgICAgd2hpbGUgKHBhcmVudEV4cCkge1xuICAgICAgICAgICAgICAgIGlmIChwYXJlbnRFeHAudHlwZSA9PT0gdG9rZW5UeXBlLkNhbGxFeHByZXNzaW9uICYmIHBhcmVudEV4cC5jYWxsZWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FsbGVlVHlwZSAgICAgPSBwYXJlbnRFeHAuY2FsbGVlLnR5cGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbGxlZU1lbWJlckZuID0gcGFyZW50RXhwLmNhbGxlZS5wcm9wZXJ0eSAmJiBwYXJlbnRFeHAuY2FsbGVlLnByb3BlcnR5Lm5hbWU7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tFeHBEZWZpbmVUYXJnZXROYW1lKGNhbGxlZVR5cGUsIGNhbGxlZU1lbWJlckZuKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZuRGF0YShleHAubmFtZSwgdGhpcy5mb3JtYXRGbkFyZyhwYXJlbnRFeHAuYXJndW1lbnRzWzBdKSwgdG9rZW4sIG1ldGEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChwYXJlbnRFeHAudHlwZSA9PT0gdG9rZW5UeXBlLlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbiAmJiBwYXJlbnRFeHAudGFnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhZ1R5cGUgICAgID0gcGFyZW50RXhwLnRhZy50eXBlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YWdNZW1iZXJGbiA9IHBhcmVudEV4cC50YWcucHJvcGVydHkgJiYgcGFyZW50RXhwLnRhZy5wcm9wZXJ0eS5uYW1lO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrRXhwRGVmaW5lVGFyZ2V0TmFtZSh0YWdUeXBlLCB0YWdNZW1iZXJGbikpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRGbkRhdGEoZXhwLm5hbWUsIEVzTmV4dFRlc3RGaWxlUGFyc2VyLmdldFRhZ1N0clZhbHVlKHBhcmVudEV4cC5xdWFzaSksIHRva2VuLCBtZXRhKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwYXJlbnRFeHAgPSBjYWxsU3RhY2sucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBmb3JtYXRGbkFyZyAoYXJnKSB7XG4gICAgICAgIGlmIChhcmcudHlwZSA9PT0gdGhpcy50b2tlblR5cGUuSWRlbnRpZmllcilcbiAgICAgICAgICAgIHJldHVybiBFc05leHRUZXN0RmlsZVBhcnNlci5mb3JtYXRDb21wdXRlZE5hbWUoYXJnLmxvYy5zdGFydC5saW5lKTtcblxuICAgICAgICBpZiAoYXJnLnR5cGUgPT09IHRoaXMudG9rZW5UeXBlLlRlbXBsYXRlTGl0ZXJhbClcbiAgICAgICAgICAgIHJldHVybiBFc05leHRUZXN0RmlsZVBhcnNlci5nZXRUYWdTdHJWYWx1ZShhcmcpO1xuXG4gICAgICAgIGlmIChhcmcudHlwZSA9PT0gdGhpcy50b2tlblR5cGUuU3RyaW5nTGl0ZXJhbClcbiAgICAgICAgICAgIHJldHVybiBhcmcudmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0Rm5DYWxsICh0b2tlbikge1xuICAgICAgICBpZiAoIXRoaXMuaXNBcGlGbih0b2tlbi5jYWxsZWUubmFtZSkpIHJldHVybiBudWxsO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZuRGF0YSh0b2tlbi5jYWxsZWUubmFtZSwgdGhpcy5mb3JtYXRGbkFyZyh0b2tlbi5hcmd1bWVudHNbMF0pLCB0b2tlbik7XG4gICAgfVxuXG4gICAgZ2V0VGFnZ2VkVGVtcGxhdGVFeHAgKHRva2VuKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZuRGF0YSh0b2tlbi50YWcubmFtZSwgRXNOZXh0VGVzdEZpbGVQYXJzZXIuZ2V0VGFnU3RyVmFsdWUodG9rZW4ucXVhc2kpLCB0b2tlbik7XG4gICAgfVxuXG4gICAgYW5hbHl6ZUZuQ2FsbCAodG9rZW4pIHtcbiAgICAgICAgY29uc3QgdG9rZW5UeXBlID0gdGhpcy50b2tlblR5cGU7XG5cbiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IHRva2VuVHlwZS5Qcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hbmFseXplTWVtYmVyRXhwKHRva2VuKTtcblxuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gdG9rZW5UeXBlLkNhbGxFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICBjb25zdCBjYWxsZWVUeXBlID0gdG9rZW4uY2FsbGVlLnR5cGU7XG5cbiAgICAgICAgICAgIGlmIChjYWxsZWVUeXBlID09PSB0b2tlblR5cGUuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uIHx8IGNhbGxlZVR5cGUgPT09IHRva2VuVHlwZS5DYWxsRXhwcmVzc2lvbilcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hbmFseXplTWVtYmVyRXhwKHRva2VuKTtcblxuICAgICAgICAgICAgaWYgKGNhbGxlZVR5cGUgPT09IHRva2VuVHlwZS5GdW5jdGlvbkV4cHJlc3Npb24gfHwgY2FsbGVlVHlwZSA9PT0gdG9rZW5UeXBlLkFycm93RnVuY3Rpb25FeHByZXNzaW9uKVxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbGxlY3RUZXN0Q2FmZUNhbGxzKHRva2VuLmNhbGxlZS5ib2R5LmJvZHkpO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRGbkNhbGwodG9rZW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IHRva2VuVHlwZS5UYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgIGlmICh0b2tlbi50YWcudHlwZSA9PT0gdG9rZW5UeXBlLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbilcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hbmFseXplTWVtYmVyRXhwKHRva2VuKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGFnZ2VkVGVtcGxhdGVFeHAodG9rZW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcGFyc2UgKGNvZGUpIHtcbiAgICAgICAgY29uc3QgY29tcGlsZXJPcHRpb25zID0gRVNOZXh0VGVzdEZpbGVDb21waWxlci5nZXRCYWJlbE9wdGlvbnMobnVsbCwgY29kZSk7XG5cbiAgICAgICAgZGVsZXRlIGNvbXBpbGVyT3B0aW9ucy5maWxlbmFtZTtcblxuICAgICAgICBjb25zdCBvcHRzID0gYXNzaWduKGNvbXBpbGVyT3B0aW9ucywgeyBhc3Q6IHRydWUgfSk7XG4gICAgICAgIGNvbnN0IGFzdCAgPSB0cmFuc2Zvcm0oY29kZSwgb3B0cykuYXN0O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFuYWx5emUoYXN0LnByb2dyYW0uYm9keSk7XG4gICAgfVxufVxuXG5jb25zdCBwYXJzZXIgPSBuZXcgRXNOZXh0VGVzdEZpbGVQYXJzZXIoKTtcblxuZXhwb3J0IGNvbnN0IGdldFRlc3RMaXN0ICAgICAgICAgPSBwYXJzZXIuZ2V0VGVzdExpc3QuYmluZChwYXJzZXIpO1xuZXhwb3J0IGNvbnN0IGdldFRlc3RMaXN0RnJvbUNvZGUgPSBwYXJzZXIuZ2V0VGVzdExpc3RGcm9tQ29kZS5iaW5kKHBhcnNlcik7XG4iXX0=
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXRlc3QtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21waWxlci90ZXN0LWZpbGUvZm9ybWF0cy9lcy1uZXh0L2dldC10ZXN0LWxpc3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbUNBQXVDO0FBQ3ZDLHNDQUF3QztBQUN4QywwREFBZ0Q7QUFDaEQsdUVBQWlFO0FBRWpFLE1BQU0sVUFBVSxHQUFHO0lBQ2YsVUFBVSxFQUFnQixZQUFZO0lBQ3RDLHdCQUF3QixFQUFFLGtCQUFrQjtJQUM1QyxjQUFjLEVBQVksZ0JBQWdCO0lBQzFDLHdCQUF3QixFQUFFLDBCQUEwQjtJQUNwRCxlQUFlLEVBQVcsaUJBQWlCO0lBQzNDLGFBQWEsRUFBYSxlQUFlO0lBQ3pDLHVCQUF1QixFQUFHLHlCQUF5QjtJQUNuRCxrQkFBa0IsRUFBUSxvQkFBb0I7SUFDOUMsbUJBQW1CLEVBQU8scUJBQXFCO0lBQy9DLGVBQWUsRUFBVyxpQkFBaUI7SUFDM0MsbUJBQW1CLEVBQU8scUJBQXFCO0lBQy9DLGlCQUFpQixFQUFTLG1CQUFtQjtJQUM3QyxtQkFBbUIsRUFBTyxxQkFBcUI7SUFDL0MsdUJBQXVCLEVBQUcsa0JBQWtCO0NBQy9DLENBQUM7QUFFRixNQUFhLG9CQUFxQixTQUFRLDBDQUFrQjtJQUN4RDtRQUNJLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBRSxHQUFHO1FBQ3RCLDZGQUE2RjtRQUM3RixPQUFPLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQzFILENB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eExELG9EQXdMQztBQUVELE1BQU0sTUFBTSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztBQUU3QixRQUFBLFdBQVcsR0FBVyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0RCxRQUFBLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc3NpZ24sIG1lcmdlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJ0BiYWJlbC9jb3JlJztcbmltcG9ydCBFU05leHRUZXN0RmlsZUNvbXBpbGVyIGZyb20gJy4vY29tcGlsZXInO1xuaW1wb3J0IHsgVGVzdEZpbGVQYXJzZXJCYXNlIH0gZnJvbSAnLi4vLi4vdGVzdC1maWxlLXBhcnNlci1iYXNlJztcblxuY29uc3QgVE9LRU5fVFlQRSA9IHtcbiAgICBJZGVudGlmaWVyOiAgICAgICAgICAgICAgICdJZGVudGlmaWVyJyxcbiAgICBQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb246ICdNZW1iZXJFeHByZXNzaW9uJyxcbiAgICBDYWxsRXhwcmVzc2lvbjogICAgICAgICAgICdDYWxsRXhwcmVzc2lvbicsXG4gICAgVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uOiAnVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uJyxcbiAgICBUZW1wbGF0ZUxpdGVyYWw6ICAgICAgICAgICdUZW1wbGF0ZUxpdGVyYWwnLFxuICAgIFN0cmluZ0xpdGVyYWw6ICAgICAgICAgICAgJ1N0cmluZ0xpdGVyYWwnLFxuICAgIEFycm93RnVuY3Rpb25FeHByZXNzaW9uOiAgJ0Fycm93RnVuY3Rpb25FeHByZXNzaW9uJyxcbiAgICBGdW5jdGlvbkV4cHJlc3Npb246ICAgICAgICdGdW5jdGlvbkV4cHJlc3Npb24nLFxuICAgIEV4cHJlc3Npb25TdGF0ZW1lbnQ6ICAgICAgJ0V4cHJlc3Npb25TdGF0ZW1lbnQnLFxuICAgIFJldHVyblN0YXRlbWVudDogICAgICAgICAgJ1JldHVyblN0YXRlbWVudCcsXG4gICAgRnVuY3Rpb25EZWNsYXJhdGlvbjogICAgICAnRnVuY3Rpb25EZWNsYXJhdGlvbicsXG4gICAgVmFyaWFibGVTdGF0ZW1lbnQ6ICAgICAgICAnVmFyaWFibGVTdGF0ZW1lbnQnLFxuICAgIFZhcmlhYmxlRGVjbGFyYXRpb246ICAgICAgJ1ZhcmlhYmxlRGVjbGFyYXRpb24nLFxuICAgIE9iamVjdExpdGVyYWxFeHByZXNzaW9uOiAgJ09iamVjdEV4cHJlc3Npb24nLFxufTtcblxuZXhwb3J0IGNsYXNzIEVzTmV4dFRlc3RGaWxlUGFyc2VyIGV4dGVuZHMgVGVzdEZpbGVQYXJzZXJCYXNlIHtcbiAgICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgICAgIHN1cGVyKFRPS0VOX1RZUEUpO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRUYWdTdHJWYWx1ZSAoZXhwKSB7XG4gICAgICAgIC8vTk9URTogd2Ugc2V0IDxjb21wdXRlZCBuYW1lPiBpZiB0ZW1wbGF0ZSBsaXRlcmFsIGhhcyBhdCBsZWFzdCBvbmUgY29tcHV0ZWQgc3Vic3RyaW5nICR7Li4ufVxuICAgICAgICByZXR1cm4gZXhwLmV4cHJlc3Npb25zLmxlbmd0aCA/IEVzTmV4dFRlc3RGaWxlUGFyc2VyLmZvcm1hdENvbXB1dGVkTmFtZShleHAubG9jLnN0YXJ0LmxpbmUpIDogZXhwLnF1YXNpc1swXS52YWx1ZS5yYXc7XG4gICAgfVxuXG4gICAgaXNBc3luY0ZuICh0b2tlbikge1xuICAgICAgICByZXR1cm4gdG9rZW4uYXN5bmMgfHwgdG9rZW4uZ2VuZXJhdG9yO1xuICAgIH1cblxuICAgIGdldFRva2VuVHlwZSAodG9rZW4pIHtcbiAgICAgICAgcmV0dXJuIHRva2VuLnR5cGU7XG4gICAgfVxuXG4gICAgZ2V0UlZhbHVlICh0b2tlbikge1xuICAgICAgICByZXR1cm4gdG9rZW4uZGVjbGFyYXRpb25zWzBdLmluaXQ7XG4gICAgfVxuXG4gICAgZ2V0U3RyaW5nVmFsdWUgKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IHN0cmluZ1R5cGVzID0gW3RoaXMudG9rZW5UeXBlLlN0cmluZ0xpdGVyYWwsIHRoaXMudG9rZW5UeXBlLlRlbXBsYXRlTGl0ZXJhbCwgdGhpcy50b2tlblR5cGUuSWRlbnRpZmllcl07XG5cbiAgICAgICAgaWYgKHN0cmluZ1R5cGVzLmluZGV4T2YodG9rZW4udHlwZSkgPiAtMSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZuQXJnKHRva2VuKTtcblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBnZXRGdW5jdGlvbkJvZHkgKHRva2VuKSB7XG4gICAgICAgIHJldHVybiB0b2tlbi5ib2R5ICYmIHRva2VuLmJvZHkuYm9keSA/IHRva2VuLmJvZHkuYm9keSA6IFtdO1xuICAgIH1cblxuICAgIGdldENhbGxlZVRva2VuICh0b2tlbikge1xuICAgICAgICByZXR1cm4gdG9rZW4uY2FsbGVlO1xuICAgIH1cblxuICAgIGdldE1lbWJlckZuTmFtZSAodG9rZW4pIHtcbiAgICAgICAgcmV0dXJuIHRva2VuLmNhbGxlZS5wcm9wZXJ0eS5uYW1lO1xuICAgIH1cblxuICAgIGZvcm1hdEZuRGF0YSAobmFtZSwgdmFsdWUsIHRva2VuLCBtZXRhID0gW3t9XSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZm5OYW1lOiAgICBuYW1lLFxuICAgICAgICAgICAgdmFsdWU6ICAgICB2YWx1ZSxcbiAgICAgICAgICAgIGxvYzogICAgICAgdG9rZW4ubG9jLFxuICAgICAgICAgICAgc3RhcnQ6ICAgICB0b2tlbi5zdGFydCxcbiAgICAgICAgICAgIGVuZDogICAgICAgdG9rZW4uZW5kLFxuICAgICAgICAgICAgbWV0YTogICAgICBtZXJnZSh7fSwgLi4ubWV0YSksXG4gICAgICAgICAgICBpc1NraXBwZWQ6IFRlc3RGaWxlUGFyc2VyQmFzZS5pc1NraXBwZWQodG9rZW4pLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldEtleVZhbHVlIChwcm9wKSB7XG4gICAgICAgIGNvbnN0IHsga2V5LCB2YWx1ZSB9ID0gcHJvcDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2V5OiAgIGtleS5uYW1lIHx8IHRoaXMuZm9ybWF0Rm5Bcmcoa2V5KSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLmdldFN0cmluZ1ZhbHVlKHZhbHVlKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBhbmFseXplTWVtYmVyRXhwICh0b2tlbikge1xuICAgICAgICBsZXQgZXhwICAgICAgICAgPSB0b2tlbjtcbiAgICAgICAgY29uc3QgdG9rZW5UeXBlID0gdGhpcy50b2tlblR5cGU7XG4gICAgICAgIGNvbnN0IGNhbGxTdGFjayA9IFtleHBdO1xuXG4gICAgICAgIHdoaWxlIChleHAudHlwZSAhPT0gdG9rZW5UeXBlLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGlmIChleHAudHlwZSA9PT0gdG9rZW5UeXBlLkNhbGxFeHByZXNzaW9uKVxuICAgICAgICAgICAgICAgIGV4cCA9IGV4cC5jYWxsZWU7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKGV4cC50eXBlID09PSB0b2tlblR5cGUuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKVxuICAgICAgICAgICAgICAgIGV4cCA9IGV4cC5vYmplY3Q7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKGV4cC50eXBlID09PSB0b2tlblR5cGUuVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uKVxuICAgICAgICAgICAgICAgIGV4cCA9IGV4cC50YWc7XG5cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgICAgICAgICAgaWYgKGV4cC50eXBlICE9PSB0b2tlblR5cGUuSWRlbnRpZmllcilcbiAgICAgICAgICAgICAgICBjYWxsU3RhY2sucHVzaChleHApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzQXBpRm4oZXhwLm5hbWUpKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBjb25zdCBtZXRhID0gdGhpcy5nZXRNZXRhSW5mbyhjYWxsU3RhY2suc2xpY2UoKSk7XG5cbiAgICAgICAgbGV0IHBhcmVudEV4cCA9IGNhbGxTdGFjay5wb3AoKTtcblxuICAgICAgICBpZiAocGFyZW50RXhwLnR5cGUgPT09IHRva2VuVHlwZS5DYWxsRXhwcmVzc2lvbilcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZuRGF0YShleHAubmFtZSwgdGhpcy5mb3JtYXRGbkFyZyhwYXJlbnRFeHAuYXJndW1lbnRzWzBdKSwgdG9rZW4sIG1ldGEpO1xuXG4gICAgICAgIGlmIChwYXJlbnRFeHAudHlwZSA9PT0gdG9rZW5UeXBlLlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbilcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZuRGF0YShleHAubmFtZSwgRXNOZXh0VGVzdEZpbGVQYXJzZXIuZ2V0VGFnU3RyVmFsdWUocGFyZW50RXhwLnF1YXNpKSwgdG9rZW4sIG1ldGEpO1xuXG4gICAgICAgIGlmIChwYXJlbnRFeHAudHlwZSA9PT0gdG9rZW5UeXBlLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbikge1xuICAgICAgICAgICAgd2hpbGUgKHBhcmVudEV4cCkge1xuICAgICAgICAgICAgICAgIGlmIChwYXJlbnRFeHAudHlwZSA9PT0gdG9rZW5UeXBlLkNhbGxFeHByZXNzaW9uICYmIHBhcmVudEV4cC5jYWxsZWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FsbGVlVHlwZSAgICAgPSBwYXJlbnRFeHAuY2FsbGVlLnR5cGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbGxlZU1lbWJlckZuID0gcGFyZW50RXhwLmNhbGxlZS5wcm9wZXJ0eSAmJiBwYXJlbnRFeHAuY2FsbGVlLnByb3BlcnR5Lm5hbWU7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tFeHBEZWZpbmVUYXJnZXROYW1lKGNhbGxlZVR5cGUsIGNhbGxlZU1lbWJlckZuKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZuRGF0YShleHAubmFtZSwgdGhpcy5mb3JtYXRGbkFyZyhwYXJlbnRFeHAuYXJndW1lbnRzWzBdKSwgdG9rZW4sIG1ldGEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChwYXJlbnRFeHAudHlwZSA9PT0gdG9rZW5UeXBlLlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbiAmJiBwYXJlbnRFeHAudGFnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhZ1R5cGUgICAgID0gcGFyZW50RXhwLnRhZy50eXBlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YWdNZW1iZXJGbiA9IHBhcmVudEV4cC50YWcucHJvcGVydHkgJiYgcGFyZW50RXhwLnRhZy5wcm9wZXJ0eS5uYW1lO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrRXhwRGVmaW5lVGFyZ2V0TmFtZSh0YWdUeXBlLCB0YWdNZW1iZXJGbikpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRGbkRhdGEoZXhwLm5hbWUsIEVzTmV4dFRlc3RGaWxlUGFyc2VyLmdldFRhZ1N0clZhbHVlKHBhcmVudEV4cC5xdWFzaSksIHRva2VuLCBtZXRhKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwYXJlbnRFeHAgPSBjYWxsU3RhY2sucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBmb3JtYXRGbkFyZyAoYXJnKSB7XG4gICAgICAgIGlmIChhcmcudHlwZSA9PT0gdGhpcy50b2tlblR5cGUuSWRlbnRpZmllcilcbiAgICAgICAgICAgIHJldHVybiBFc05leHRUZXN0RmlsZVBhcnNlci5mb3JtYXRDb21wdXRlZE5hbWUoYXJnLmxvYy5zdGFydC5saW5lKTtcblxuICAgICAgICBpZiAoYXJnLnR5cGUgPT09IHRoaXMudG9rZW5UeXBlLlRlbXBsYXRlTGl0ZXJhbClcbiAgICAgICAgICAgIHJldHVybiBFc05leHRUZXN0RmlsZVBhcnNlci5nZXRUYWdTdHJWYWx1ZShhcmcpO1xuXG4gICAgICAgIGlmIChhcmcudHlwZSA9PT0gdGhpcy50b2tlblR5cGUuU3RyaW5nTGl0ZXJhbClcbiAgICAgICAgICAgIHJldHVybiBhcmcudmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0Rm5DYWxsICh0b2tlbikge1xuICAgICAgICBpZiAoIXRoaXMuaXNBcGlGbih0b2tlbi5jYWxsZWUubmFtZSkpIHJldHVybiBudWxsO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZuRGF0YSh0b2tlbi5jYWxsZWUubmFtZSwgdGhpcy5mb3JtYXRGbkFyZyh0b2tlbi5hcmd1bWVudHNbMF0pLCB0b2tlbik7XG4gICAgfVxuXG4gICAgZ2V0VGFnZ2VkVGVtcGxhdGVFeHAgKHRva2VuKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZuRGF0YSh0b2tlbi50YWcubmFtZSwgRXNOZXh0VGVzdEZpbGVQYXJzZXIuZ2V0VGFnU3RyVmFsdWUodG9rZW4ucXVhc2kpLCB0b2tlbik7XG4gICAgfVxuXG4gICAgYW5hbHl6ZUZuQ2FsbCAodG9rZW4pIHtcbiAgICAgICAgY29uc3QgdG9rZW5UeXBlID0gdGhpcy50b2tlblR5cGU7XG5cbiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IHRva2VuVHlwZS5Qcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hbmFseXplTWVtYmVyRXhwKHRva2VuKTtcblxuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gdG9rZW5UeXBlLkNhbGxFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICBjb25zdCBjYWxsZWVUeXBlID0gdG9rZW4uY2FsbGVlLnR5cGU7XG5cbiAgICAgICAgICAgIGlmIChjYWxsZWVUeXBlID09PSB0b2tlblR5cGUuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uIHx8IGNhbGxlZVR5cGUgPT09IHRva2VuVHlwZS5DYWxsRXhwcmVzc2lvbilcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hbmFseXplTWVtYmVyRXhwKHRva2VuKTtcblxuICAgICAgICAgICAgaWYgKGNhbGxlZVR5cGUgPT09IHRva2VuVHlwZS5GdW5jdGlvbkV4cHJlc3Npb24gfHwgY2FsbGVlVHlwZSA9PT0gdG9rZW5UeXBlLkFycm93RnVuY3Rpb25FeHByZXNzaW9uKVxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbGxlY3RUZXN0Q2FmZUNhbGxzKHRva2VuLmNhbGxlZS5ib2R5LmJvZHkpO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRGbkNhbGwodG9rZW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IHRva2VuVHlwZS5UYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgIGlmICh0b2tlbi50YWcudHlwZSA9PT0gdG9rZW5UeXBlLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbilcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hbmFseXplTWVtYmVyRXhwKHRva2VuKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGFnZ2VkVGVtcGxhdGVFeHAodG9rZW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcGFyc2UgKGNvZGUpIHtcbiAgICAgICAgY29uc3QgY29tcGlsZXJPcHRpb25zID0gRVNOZXh0VGVzdEZpbGVDb21waWxlci5nZXRCYWJlbE9wdGlvbnMobnVsbCwgY29kZSk7XG5cbiAgICAgICAgZGVsZXRlIGNvbXBpbGVyT3B0aW9ucy5maWxlbmFtZTtcblxuICAgICAgICBjb25zdCBvcHRzID0gYXNzaWduKGNvbXBpbGVyT3B0aW9ucywgeyBhc3Q6IHRydWUgfSk7XG4gICAgICAgIGNvbnN0IGFzdCAgPSB0cmFuc2Zvcm0oY29kZSwgb3B0cykuYXN0O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFuYWx5emUoYXN0LnByb2dyYW0uYm9keSk7XG4gICAgfVxufVxuXG5jb25zdCBwYXJzZXIgPSBuZXcgRXNOZXh0VGVzdEZpbGVQYXJzZXIoKTtcblxuZXhwb3J0IGNvbnN0IGdldFRlc3RMaXN0ICAgICAgICAgPSBwYXJzZXIuZ2V0VGVzdExpc3QuYmluZChwYXJzZXIpO1xuZXhwb3J0IGNvbnN0IGdldFRlc3RMaXN0RnJvbUNvZGUgPSBwYXJzZXIuZ2V0VGVzdExpc3RGcm9tQ29kZS5iaW5kKHBhcnNlcik7XG4iXX0=
|
|
@@ -30,7 +30,7 @@ class RawTestFileCompiler extends base_1.default {
|
|
|
30
30
|
const actionId = initActionId || parseInt(initCallsite, 10);
|
|
31
31
|
const callsite = actionId ? new raw_command_callsite_record_1.RawCommandCallsiteRecord(actionId, commands) : initCallsite || initActionId;
|
|
32
32
|
try {
|
|
33
|
-
const command = from_object_1.default(commandObj, t.testRun);
|
|
33
|
+
const command = (0, from_object_1.default)(commandObj, t.testRun);
|
|
34
34
|
await t.testRun.executeCommand(command, callsite);
|
|
35
35
|
}
|
|
36
36
|
catch (err) {
|
|
@@ -98,4 +98,4 @@ class RawTestFileCompiler extends base_1.default {
|
|
|
98
98
|
}
|
|
99
99
|
exports.default = RawTestFileCompiler;
|
|
100
100
|
module.exports = exports.default;
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBpbGVyL3Rlc3QtZmlsZS9mb3JtYXRzL3Jhdy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQTJDO0FBQzNDLHFEQUF1RDtBQUN2RCxpREFBdUQ7QUFDdkQsaUZBQXdEO0FBQ3hELDZFQUFxRDtBQUNyRCx1RUFBK0M7QUFDL0MseUZBQTZFO0FBQzdFLDRGQUFzRjtBQUV0RixNQUFxQixtQkFBb0IsU0FBUSxjQUFvQjtJQUVqRSxNQUFNLENBQUMsYUFBYSxDQUFFLFFBQVE7UUFDMUIsT0FBTyxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUU7WUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDdEMsTUFBTSxLQUlGLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFKVCxFQUNGLFFBQVEsRUFBRSxZQUFZLEVBQ3RCLFFBQVEsRUFBRSxZQUFZLE9BRVgsRUFEUixVQUFVLGNBSFgsd0JBSUwsQ0FBYyxDQUFDO2dCQUNoQixNQUFNLFFBQVEsR0FBRyxZQUFZLElBQUksUUFBUSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDNUQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLHNEQUF3QixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLFlBQVksQ0FBQztnQkFFNUcsSUFBSTtvQkFDQSxNQUFNLE9BQU8sR0FBRyxJQUFBLHFCQUF1QixFQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBRS9ELE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2lCQUNyRDtnQkFDRCxPQUFPLEdB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QyxDQUFDO1FBRXhDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUVoQixJQUFJO1lBQ0EsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUV6RyxPQUFPLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUM5QjtRQUNELE9BQU8sR0FBRyxFQUFFO1lBQ1IsTUFBTSxJQUFJLHNCQUFZLENBQUMsc0JBQWMsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDdkY7SUFDTCxDQUFDO0NBQ0o7QUF6R0Qsc0NBeUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlc3RGaWxlQ29tcGlsZXJCYXNlIGZyb20gJy4uL2Jhc2UnO1xuaW1wb3J0IHsgR2VuZXJhbEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vZXJyb3JzL3J1bnRpbWUnO1xuaW1wb3J0IHsgUlVOVElNRV9FUlJPUlMgfSBmcm9tICcuLi8uLi8uLi9lcnJvcnMvdHlwZXMnO1xuaW1wb3J0IFRlc3RGaWxlIGZyb20gJy4uLy4uLy4uL2FwaS9zdHJ1Y3R1cmUvdGVzdC1maWxlJztcbmltcG9ydCBGaXh0dXJlIGZyb20gJy4uLy4uLy4uL2FwaS9zdHJ1Y3R1cmUvZml4dHVyZSc7XG5pbXBvcnQgVGVzdCBmcm9tICcuLi8uLi8uLi9hcGkvc3RydWN0dXJlL3Rlc3QnO1xuaW1wb3J0IGNyZWF0ZUNvbW1hbmRGcm9tT2JqZWN0IGZyb20gJy4uLy4uLy4uL3Rlc3QtcnVuL2NvbW1hbmRzL2Zyb20tb2JqZWN0JztcbmltcG9ydCB7IFJhd0NvbW1hbmRDYWxsc2l0ZVJlY29yZCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3Jhdy1jb21tYW5kLWNhbGxzaXRlLXJlY29yZCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhd1Rlc3RGaWxlQ29tcGlsZXIgZXh0ZW5kcyBUZXN0RmlsZUNvbXBpbGVyQmFzZSB7XG5cbiAgICBzdGF0aWMgX2NyZWF0ZVRlc3RGbiAoY29tbWFuZHMpIHtcbiAgICAgICAgcmV0dXJuIGFzeW5jIHQgPT4ge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb21tYW5kcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uSWQ6IGluaXRBY3Rpb25JZCxcbiAgICAgICAgICAgICAgICAgICAgY2FsbHNpdGU6IGluaXRDYWxsc2l0ZSxcbiAgICAgICAgICAgICAgICAgICAgLi4uY29tbWFuZE9ialxuICAgICAgICAgICAgICAgIH0gPSBjb21tYW5kc1tpXTtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb25JZCA9IGluaXRBY3Rpb25JZCB8fCBwYXJzZUludChpbml0Q2FsbHNpdGUsIDEwKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjYWxsc2l0ZSA9IGFjdGlvbklkID8gbmV3IFJhd0NvbW1hbmRDYWxsc2l0ZVJlY29yZChhY3Rpb25JZCwgY29tbWFuZHMpIDogaW5pdENhbGxzaXRlIHx8IGluaXRBY3Rpb25JZDtcblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1hbmQgPSBjcmVhdGVDb21tYW5kRnJvbU9iamVjdChjb21tYW5kT2JqLCB0LnRlc3RSdW4pO1xuXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHQudGVzdFJ1bi5leGVjdXRlQ29tbWFuZChjb21tYW5kLCBjYWxsc2l0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyLmNhbGxzaXRlICA9IGNhbGxzaXRlO1xuICAgICAgICAgICAgICAgICAgICBlcnIuYWN0aW9uSWQgID0gaW5pdEFjdGlvbklkO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHN0YXRpYyBfYXNzaWduQ29tbW9uVGVzdGluZ1VuaXRQcm9wZXJ0aWVzIChzcmMsIGRlc3QpIHtcbiAgICAgICAgaWYgKHNyYy5wYWdlVXJsKVxuICAgICAgICAgICAgZGVzdC5wYWdlKHNyYy5wYWdlVXJsKTtcblxuICAgICAgICBpZiAoc3JjLmF1dGhDcmVkZW50aWFscylcbiAgICAgICAgICAgIGRlc3QuaHR0cEF1dGgoc3JjLmF1dGhDcmVkZW50aWFscyk7XG5cbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLWV4cHJlc3Npb25zICovXG4gICAgICAgIGlmIChzcmMub25seSlcbiAgICAgICAgICAgIGRlc3Qub25seTtcblxuICAgICAgICBpZiAoc3JjLnNraXApXG4gICAgICAgICAgICBkZXN0LnNraXA7XG5cbiAgICAgICAgaWYgKHNyYy5kaXNhYmxlUGFnZVJlbG9hZHMpXG4gICAgICAgICAgICBkZXN0LmRpc2FibGVQYWdlUmVsb2FkcztcblxuICAgICAgICBpZiAoc3JjLmVuYWJsZVBhZ2VSZWxvYWRzKVxuICAgICAgICAgICAgZGVzdC5lbmFibGVQYWdlUmVsb2FkcztcbiAgICAgICAgLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cbiAgICB9XG5cbiAgICBzdGF0aWMgX2FkZFRlc3QgKHRlc3RGaWxlLCBzcmMsIGJhc2VVcmwpIHtcbiAgICAgICAgY29uc3QgdGVzdCA9IG5ldyBUZXN0KHRlc3RGaWxlLCBmYWxzZSwgYmFzZVVybCk7XG5cbiAgICAgICAgdGVzdChzcmMubmFtZSwgUmF3VGVzdEZpbGVDb21waWxlci5fY3JlYXRlVGVzdEZuKHNyYy5jb21tYW5kcykpO1xuXG4gICAgICAgIFJhd1Rlc3RGaWxlQ29tcGlsZXIuX2Fzc2lnbkNvbW1vblRlc3RpbmdVbml0UHJvcGVydGllcyhzcmMsIHRlc3QpO1xuXG4gICAgICAgIGlmIChzcmMuYmVmb3JlQ29tbWFuZHMpXG4gICAgICAgICAgICB0ZXN0LmJlZm9yZShSYXdUZXN0RmlsZUNvbXBpbGVyLl9jcmVhdGVUZXN0Rm4oc3JjLmJlZm9yZUNvbW1hbmRzKSk7XG5cbiAgICAgICAgaWYgKHNyYy5hZnRlckNvbW1hbmRzKVxuICAgICAgICAgICAgdGVzdC5hZnRlcihSYXdUZXN0RmlsZUNvbXBpbGVyLl9jcmVhdGVUZXN0Rm4oc3JjLmFmdGVyQ29tbWFuZHMpKTtcblxuICAgICAgICByZXR1cm4gdGVzdDtcbiAgICB9XG5cbiAgICBzdGF0aWMgX2FkZEZpeHR1cmUgKHRlc3RGaWxlLCBzcmMsIGJhc2VVcmwpIHtcbiAgICAgICAgY29uc3QgZml4dHVyZSA9IG5ldyBGaXh0dXJlKHRlc3RGaWxlLCBiYXNlVXJsKTtcblxuICAgICAgICBmaXh0dXJlKHNyYy5uYW1lKTtcblxuICAgICAgICBSYXdUZXN0RmlsZUNvbXBpbGVyLl9hc3NpZ25Db21tb25UZXN0aW5nVW5pdFByb3BlcnRpZXMoc3JjLCBmaXh0dXJlKTtcblxuICAgICAgICBpZiAoc3JjLmJlZm9yZUVhY2hDb21tYW5kcylcbiAgICAgICAgICAgIGZpeHR1cmUuYmVmb3JlRWFjaChSYXdUZXN0RmlsZUNvbXBpbGVyLl9jcmVhdGVUZXN0Rm4oc3JjLmJlZm9yZUVhY2hDb21tYW5kcykpO1xuXG4gICAgICAgIGlmIChzcmMuYWZ0ZXJFYWNoQ29tbWFuZHMpXG4gICAgICAgICAgICBmaXh0dXJlLmFmdGVyRWFjaChSYXdUZXN0RmlsZUNvbXBpbGVyLl9jcmVhdGVUZXN0Rm4oc3JjLmFmdGVyRWFjaENvbW1hbmRzKSk7XG5cbiAgICAgICAgc3JjLnRlc3RzLmZvckVhY2godGVzdFNyYyA9PiBSYXdUZXN0RmlsZUNvbXBpbGVyLl9hZGRUZXN0KHRlc3RGaWxlLCB0ZXN0U3JjLCBiYXNlVXJsKSk7XG4gICAgfVxuXG4gICAgX2hhc1Rlc3RzICgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZ2V0U3VwcG9ydGVkRXh0ZW5zaW9uICgpIHtcbiAgICAgICAgcmV0dXJuICcudGVzdGNhZmUnO1xuICAgIH1cblxuICAgIGNvbXBpbGUgKGNvZGUsIGZpbGVuYW1lKSB7XG4gICAgICAgIGNvbnN0IHRlc3RGaWxlID0gbmV3IFRlc3RGaWxlKGZpbGVuYW1lKTtcblxuICAgICAgICBsZXQgZGF0YSA9IG51bGw7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGNvZGUpO1xuXG4gICAgICAgICAgICBkYXRhLmZpeHR1cmVzLmZvckVhY2goZml4dHVyZVNyYyA9PiBSYXdUZXN0RmlsZUNvbXBpbGVyLl9hZGRGaXh0dXJlKHRlc3RGaWxlLCBmaXh0dXJlU3JjLCB0aGlzLmJhc2VVcmwpKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRlc3RGaWxlLmdldFRlc3RzKCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEdlbmVyYWxFcnJvcihSVU5USU1FX0VSUk9SUy5jYW5ub3RQYXJzZVJhd0ZpbGUsIGZpbGVuYW1lLCBlcnIudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -23,24 +23,24 @@ function testcafeImportPathReplacer() {
|
|
|
23
23
|
var _a;
|
|
24
24
|
// @ts-ignore
|
|
25
25
|
if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.kind) === typescript_1.SyntaxKind.ImportDeclaration && node.kind === typescript_1.SyntaxKind.StringLiteral && node.text === 'testcafe')
|
|
26
|
-
return typescript_1.createStringLiteral(exportble_lib_path_1.default);
|
|
27
|
-
return typescript_1.visitEachChild(node, child => visit(child), context);
|
|
26
|
+
return (0, typescript_1.createStringLiteral)(exportble_lib_path_1.default);
|
|
27
|
+
return (0, typescript_1.visitEachChild)(node, child => visit(child), context);
|
|
28
28
|
};
|
|
29
|
-
return node => typescript_1.visitNode(node, visit);
|
|
29
|
+
return node => (0, typescript_1.visitNode)(node, visit);
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
function disableV8OptimizationCodeAppender() {
|
|
33
33
|
return () => {
|
|
34
34
|
const visit = (node) => {
|
|
35
|
-
const evalStatement = typescript_1.createExpressionStatement(typescript_1.createCall(typescript_1.createIdentifier('eval'), void 0, [typescript_1.createStringLiteral('')]));
|
|
36
|
-
const evalStatementWithComment = typescript_1.addSyntheticLeadingComment(evalStatement, typescript_1.SyntaxKind.MultiLineCommentTrivia, disable_v8_optimization_note_1.default, true);
|
|
35
|
+
const evalStatement = (0, typescript_1.createExpressionStatement)((0, typescript_1.createCall)((0, typescript_1.createIdentifier)('eval'), void 0, [(0, typescript_1.createStringLiteral)('')]));
|
|
36
|
+
const evalStatementWithComment = (0, typescript_1.addSyntheticLeadingComment)(evalStatement, typescript_1.SyntaxKind.MultiLineCommentTrivia, disable_v8_optimization_note_1.default, true);
|
|
37
37
|
// @ts-ignore
|
|
38
|
-
return typescript_1.updateSourceFileNode(node, [...node.statements, evalStatementWithComment]);
|
|
38
|
+
return (0, typescript_1.updateSourceFileNode)(node, [...node.statements, evalStatementWithComment]);
|
|
39
39
|
};
|
|
40
|
-
return node => typescript_1.visitNode(node, visit);
|
|
40
|
+
return node => (0, typescript_1.visitNode)(node, visit);
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
-
const DEBUG_LOGGER = debug_1.default('testcafe:compiler:typescript');
|
|
43
|
+
const DEBUG_LOGGER = (0, debug_1.default)('testcafe:compiler:typescript');
|
|
44
44
|
const RENAMED_DEPENDENCIES_MAP = new Map([['testcafe', exportble_lib_path_1.default]]);
|
|
45
45
|
const DEFAULT_TYPESCRIPT_COMPILER_PATH = 'typescript';
|
|
46
46
|
class TypeScriptTestFileCompiler extends api_based_1.default {
|
|
@@ -62,7 +62,7 @@ class TypeScriptTestFileCompiler extends api_based_1.default {
|
|
|
62
62
|
return DEFAULT_TYPESCRIPT_COMPILER_PATH;
|
|
63
63
|
// NOTE: if the relative path to custom TypeScript compiler module is specified
|
|
64
64
|
// then we will resolve the path from the root of the 'testcafe' module
|
|
65
|
-
if (test_page_url_1.isRelative(compilerPath)) {
|
|
65
|
+
if ((0, test_page_url_1.isRelative)(compilerPath)) {
|
|
66
66
|
const testcafeRootFolder = path_1.default.resolve(__dirname, '../../../../../');
|
|
67
67
|
compilerPath = path_1.default.resolve(testcafeRootFolder, compilerPath);
|
|
68
68
|
}
|
|
@@ -142,7 +142,7 @@ class TypeScriptTestFileCompiler extends api_based_1.default {
|
|
|
142
142
|
const ts = this._loadTypeScriptCompiler();
|
|
143
143
|
const filenames = testFilesInfo.map(({ filename }) => filename);
|
|
144
144
|
const normalizedFilenames = filenames.map(filename => TypeScriptTestFileCompiler._normalizeFilename(filename));
|
|
145
|
-
const normalizedFilenamesMap = lodash_1.zipObject(normalizedFilenames, filenames);
|
|
145
|
+
const normalizedFilenamesMap = (0, lodash_1.zipObject)(normalizedFilenames, filenames);
|
|
146
146
|
const uncachedFiles = normalizedFilenames
|
|
147
147
|
.filter(filename => filename !== TypeScriptTestFileCompiler.tsDefsPath && !this.cache[filename])
|
|
148
148
|
.map(filename => normalizedFilenamesMap[filename]);
|
|
@@ -168,4 +168,4 @@ class TypeScriptTestFileCompiler extends api_based_1.default {
|
|
|
168
168
|
exports.default = TypeScriptTestFileCompiler;
|
|
169
169
|
TypeScriptTestFileCompiler.tsDefsPath = TypeScriptTestFileCompiler._getTSDefsPath();
|
|
170
170
|
module.exports = exports.default;
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcGlsZXIvdGVzdC1maWxlL2Zvcm1hdHMvdHlwZXNjcmlwdC9jb21waWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUN4QixtQ0FBbUM7QUFDbkMsMERBQTJCO0FBQzNCLGdFQUEyRDtBQUMzRCxtRUFBeUQ7QUFDekQsa0hBQXlGO0FBQ3pGLHdEQUEwRDtBQUMxRCxvREFBMEQ7QUFDMUQsa0RBQTBCO0FBQzFCLGlFQUEyRDtBQUMzRCxrRkFBMkQ7QUFDM0Qsc0dBQThFO0FBRTlFLGtDQUFrQztBQUNsQywyQ0FnQm9CO0FBbUJwQixTQUFTLDBCQUEwQjtJQUMvQixPQUFPLE9BQU8sQ0FBQyxFQUFFO1FBQ2IsTUFBTSxLQUFLLEdBQVksQ0FBQyxJQUFJLEVBQXFCLEVBQUU7O1lBQy9DLGFBQWE7WUFDYixJQUFJLE9BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsSUFBSSxNQUFLLHVCQUFVLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyx1QkFBVSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVU7Z0JBQ3hILE9BQU8sZ0NBQW1CLENBQUMsNEJBQW1CLENBQUMsQ0FBQztZQUVwRCxPQUFPLDJCQUFjLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxzQkFBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsU0FBUyxpQ0FBaUM7SUFDdEMsT0FBTyxHQUFHLEVBQUU7UUFDUixNQUFNLEtBQUssR0FBWSxDQUFDLElBQUksRUFBcUIsRUFBRTtZQUMv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LElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFakQsT0FBTyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVNLG9CQUFvQjtRQUN2QixPQUFPO1lBQ0gsS0FBSyxFQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDO1lBQzdELE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQztZQUM3RCxLQUFLLEVBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxrQkFBc0IsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQztZQUNwRyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxrQkFBc0IsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQztTQUN2RyxDQUFDO0lBQ04sQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0scUJBQXFCO1FBQ3hCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7QUFyS0wsNkNBc0tDO0FBcktrQixxQ0FBVSxHQUFHLDBCQUEwQixDQUFDLGNBQWMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyB6aXBPYmplY3QgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IE9TIGZyb20gJ29zLWZhbWlseSc7XG5pbXBvcnQgQVBJQmFzZWRUZXN0RmlsZUNvbXBpbGVyQmFzZSBmcm9tICcuLi8uLi9hcGktYmFzZWQnO1xuaW1wb3J0IEVTTmV4dFRlc3RGaWxlQ29tcGlsZXIgZnJvbSAnLi4vZXMtbmV4dC9jb21waWxlcic7XG5pbXBvcnQgVHlwZXNjcmlwdENvbmZpZ3VyYXRpb24gZnJvbSAnLi4vLi4vLi4vLi4vY29uZmlndXJhdGlvbi90eXBlc2NyaXB0LWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgR2VuZXJhbEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXJyb3JzL3J1bnRpbWUnO1xuaW1wb3J0IHsgUlVOVElNRV9FUlJPUlMgfSBmcm9tICcuLi8uLi8uLi8uLi9lcnJvcnMvdHlwZXMnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IGlzUmVsYXRpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9hcGkvdGVzdC1wYWdlLXVybCc7XG5pbXBvcnQgRVhQT1JUQUJMRV9MSUJfUEFUSCBmcm9tICcuLi8uLi9leHBvcnRibGUtbGliLXBhdGgnO1xuaW1wb3J0IERJU0FCTEVfVjhfT1BUSU1JWkFUSU9OX05PVEUgZnJvbSAnLi4vLi4vZGlzYWJsZS12OC1vcHRpbWl6YXRpb24tbm90ZSc7XG5cbi8vIE5PVEU6IEZvciB0eXBlIGRlZmluaXRpb25zIG9ubHlcbmltcG9ydCBUeXBlU2NyaXB0LCB7XG4gICAgQ29tcGlsZXJPcHRpb25zVmFsdWUsXG4gICAgU3ludGF4S2luZCxcbiAgICBWaXNpdFJlc3VsdCxcbiAgICBWaXNpdG9yLFxuICAgIE5vZGUsXG4gICAgY3JlYXRlU3RyaW5nTGl0ZXJhbCxcbiAgICB2aXNpdEVhY2hDaGlsZCxcbiAgICB2aXNpdE5vZGUsXG4gICAgVHJhbnNmb3JtZXJGYWN0b3J5LFxuICAgIGNyZWF0ZUV4cHJlc3Npb25TdGF0ZW1lbnQsXG4gICAgY3JlYXRlQ2FsbCxcbiAgICBjcmVhdGVJZGVudGlmaWVyLFxuICAgIHVwZGF0ZVNvdXJjZUZpbGVOb2RlLFxuICAgIFNvdXJjZUZpbGUsXG4gICAgYWRkU3ludGhldGljTGVhZGluZ0NvbW1lbnQsXG59IGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQgeyBEaWN0aW9uYXJ5LCBUeXBlU2NyaXB0Q29tcGlsZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29uZmlndXJhdGlvbi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9wdGlvbmFsQ29tcGlsZXJBcmd1bWVudHMgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcblxuZGVjbGFyZSB0eXBlIFR5cGVTY3JpcHRJbnN0YW5jZSA9IHR5cGVvZiBUeXBlU2NyaXB0O1xuXG5pbnRlcmZhY2UgVGVzdEZpbGVJbmZvIHtcbiAgICBmaWxlbmFtZTogc3RyaW5nO1xufVxuXG5kZWNsYXJlIGludGVyZmFjZSBSZXF1aXJlQ29tcGlsZXJGdW5jdGlvbiB7XG4gICAgKGNvZGU6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFJlcXVpcmVDb21waWxlcnMge1xuICAgIFtleHRlbnNpb246IHN0cmluZ106IFJlcXVpcmVDb21waWxlckZ1bmN0aW9uO1xufVxuXG5mdW5jdGlvbiB0ZXN0Y2FmZUltcG9ydFBhdGhSZXBsYWNlcjxUIGV4dGVuZHMgTm9kZT4gKCk6IFRyYW5zZm9ybWVyRmFjdG9yeTxUPiB7XG4gICAgcmV0dXJuIGNvbnRleHQgPT4ge1xuICAgICAgICBjb25zdCB2aXNpdDogVmlzaXRvciA9IChub2RlKTogVmlzaXRSZXN1bHQ8Tm9kZT4gPT4ge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgaWYgKG5vZGUucGFyZW50Py5raW5kID09PSBTeW50YXhLaW5kLkltcG9ydERlY2xhcmF0aW9uICYmIG5vZGUua2luZCA9PT0gU3ludGF4S2luZC5TdHJpbmdMaXRlcmFsICYmIG5vZGUudGV4dCA9PT0gJ3Rlc3RjYWZlJylcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RyaW5nTGl0ZXJhbChFWFBPUlRBQkxFX0xJQl9QQVRIKTtcblxuICAgICAgICAgICAgcmV0dXJuIHZpc2l0RWFjaENoaWxkKG5vZGUsIGNoaWxkID0+IHZpc2l0KGNoaWxkKSwgY29udGV4dCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIG5vZGUgPT4gdmlzaXROb2RlKG5vZGUsIHZpc2l0KTtcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBkaXNhYmxlVjhPcHRpbWl6YXRpb25Db2RlQXBwZW5kZXI8VCBleHRlbmRzIE5vZGU+ICgpOiBUcmFuc2Zvcm1lckZhY3Rvcnk8VD4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHZpc2l0OiBWaXNpdG9yID0gKG5vZGUpOiBWaXNpdFJlc3VsdDxOb2RlPiA9PiB7XG4gICAgICAgICAgICBjb25zdCBldmFsU3RhdGVtZW50ID0gY3JlYXRlRXhwcmVzc2lvblN0YXRlbWVudChjcmVhdGVDYWxsKFxuICAgICAgICAgICAgICAgIGNyZWF0ZUlkZW50aWZpZXIoJ2V2YWwnKSxcbiAgICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgW2NyZWF0ZVN0cmluZ0xpdGVyYWwoJycpXVxuICAgICAgICAgICAgKSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGV2YWxTdGF0ZW1lbnRXaXRoQ29tbWVudCA9IGFkZFN5bnRoZXRpY0xlYWRpbmdDb21tZW50KGV2YWxTdGF0ZW1lbnQsIFN5bnRheEtpbmQuTXVsdGlMaW5lQ29tbWVudFRyaXZpYSwgRElTQUJMRV9WOF9PUFRJTUlaQVRJT05fTk9URSwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB1cGRhdGVTb3VyY2VGaWxlTm9kZShub2RlLCBbLi4ubm9kZS5zdGF0ZW1lbnRzLCBldmFsU3RhdGVtZW50V2l0aENvbW1lbnRdKTtcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gbm9kZSA9PiB2aXNpdE5vZGUobm9kZSwgdmlzaXQpO1xuICAgIH07XG59XG5cblxuY29uc3QgREVCVUdfTE9HR0VSID0gZGVidWcoJ3Rlc3RjYWZlOmNvbXBpbGVyOnR5cGVzY3JpcHQnKTtcblxuY29uc3QgUkVOQU1FRF9ERVBFTkRFTkNJRVNfTUFQID0gbmV3IE1hcChbWyd0ZXN0Y2FmZScsIEVYUE9SVEFCTEVfTElCX1BBVEhdXSk7XG5cbmNvbnN0IERFRkFVTFRfVFlQRVNDUklQVF9DT01QSUxFUl9QQVRIID0gJ3R5cGVzY3JpcHQnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUeXBlU2NyaXB0VGVzdEZpbGVDb21waWxlciBleHRlbmRzIEFQSUJhc2VkVGVzdEZpbGVDb21waWxlckJhc2Uge1xuICAgIHByaXZhdGUgc3RhdGljIHRzRGVmc1BhdGggPSBUeXBlU2NyaXB0VGVzdEZpbGVDb21waWxlci5fZ2V0VFNEZWZzUGF0aCgpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdHNDb25maWc6IFR5cGVzY3JpcHRDb25maWd1cmF0aW9uO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbXBpbGVyUGF0aDogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2N1c3RvbUNvbXBpbGVyT3B0aW9ucz86IG9iamVjdDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAoY29tcGlsZXJPcHRpb25zPzogVHlwZVNjcmlwdENvbXBpbGVyT3B0aW9ucywgeyBpc0NvbXBpbGVyU2VydmljZU1vZGUsIGJhc2VVcmwgfTogT3B0aW9uYWxDb21waWxlckFyZ3VtZW50cyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKHsgaXNDb21waWxlclNlcnZpY2VNb2RlLCBiYXNlVXJsIH0pO1xuXG4gICAgICAgIC8vIE5PVEU6IEF0IHByZXNlbnQsIGl0J3MgbmVjZXNzYXJ5IGNyZWF0ZSBhbiBpbnN0YW5jZSBUeXBlU2NyaXB0VGVzdEZpbGVDb21waWxlclxuICAgICAgICAvLyB0byBjb2xsZWN0IGEgbGlzdCBvZiBzdXBwb3J0ZWQgdGVzdCBmaWxlIGV4dGVuc2lvbnMuXG4gICAgICAgIC8vIFNvIGFsbCBjb21waWxlcnMgY3JlYXRlcyAyIHRpbWVzOiBmaXJzdCB0aW1lIC0gZm9yIGNvbGxlY3RpbmcgYWxsIHN1cHBvcnRlZCBmaWxlIGV4dGVuc2lvbnMsXG4gICAgICAgIC8vIHNlY29uZCBvbmUgLSBmb3IgY29tcGlsaW5nIHRlc3RzLlxuICAgICAgICAvLyBJbiBmdXR1cmUsIG5lZWQgdG8gcmV3cml0ZSAnZ2V0U3VwcG9ydGVkRXh0ZW5zaW9uJyBtZXRob2QgYXMgc3RhdGljLlxuXG4gICAgICAgIGNvbnN0IGNvbmZpZ1BhdGggPSBjb21waWxlck9wdGlvbnMgJiYgY29tcGlsZXJPcHRpb25zLmNvbmZpZ1BhdGggfHwgbnVsbDtcblxuICAgICAgICB0aGlzLl9jdXN0b21Db21waWxlck9wdGlvbnMgPSBjb21waWxlck9wdGlvbnMgJiYgY29tcGlsZXJPcHRpb25zLm9wdGlvbnM7XG4gICAgICAgIHRoaXMuX3RzQ29uZmlnICAgICAgICAgICAgICA9IG5ldyBUeXBlc2NyaXB0Q29uZmlndXJhdGlvbihjb25maWdQYXRoLCBpc0NvbXBpbGVyU2VydmljZU1vZGUpO1xuICAgICAgICB0aGlzLl9jb21waWxlclBhdGggICAgICAgICAgPSBUeXBlU2NyaXB0VGVzdEZpbGVDb21waWxlci5fZ2V0Q29tcGlsZXJQYXRoKGNvbXBpbGVyT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgX2dldENvbXBpbGVyUGF0aCAoY29tcGlsZXJPcHRpb25zPzogVHlwZVNjcmlwdENvbXBpbGVyT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgICAgIGxldCBjb21waWxlclBhdGggPSBjb21waWxlck9wdGlvbnMgJiYgY29tcGlsZXJPcHRpb25zLmN1c3RvbUNvbXBpbGVyTW9kdWxlUGF0aDtcblxuICAgICAgICBpZiAoIWNvbXBpbGVyUGF0aCB8fCBjb21waWxlclBhdGggPT09IERFRkFVTFRfVFlQRVNDUklQVF9DT01QSUxFUl9QQVRIKVxuICAgICAgICAgICAgcmV0dXJuIERFRkFVTFRfVFlQRVNDUklQVF9DT01QSUxFUl9QQVRIO1xuXG4gICAgICAgIC8vIE5PVEU6IGlmIHRoZSByZWxhdGl2ZSBwYXRoIHRvIGN1c3RvbSBUeXBlU2NyaXB0IGNvbXBpbGVyIG1vZHVsZSBpcyBzcGVjaWZpZWRcbiAgICAgICAgLy8gdGhlbiB3ZSB3aWxsIHJlc29sdmUgdGhlIHBhdGggZnJvbSB0aGUgcm9vdCBvZiB0aGUgJ3Rlc3RjYWZlJyBtb2R1bGVcbiAgICAgICAgaWYgKGlzUmVsYXRpdmUoY29tcGlsZXJQYXRoKSkge1xuICAgICAgICAgICAgY29uc3QgdGVzdGNhZmVSb290Rm9sZGVyID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uLy4uLy4uLy4uLy4uLycpO1xuXG4gICAgICAgICAgICBjb21waWxlclBhdGggPSBwYXRoLnJlc29sdmUodGVzdGNhZmVSb290Rm9sZGVyLCBjb21waWxlclBhdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBpbGVyUGF0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9sb2FkVHlwZVNjcmlwdENvbXBpbGVyICgpOiBUeXBlU2NyaXB0SW5zdGFuY2Uge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIHJlcXVpcmUodGhpcy5fY29tcGlsZXJQYXRoKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgR2VuZXJhbEVycm9yKFJVTlRJTUVfRVJST1JTLnR5cGVTY3JpcHRDb21waWxlckxvYWRpbmdFcnJvciwgZXJyLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgX25vcm1hbGl6ZUZpbGVuYW1lIChmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgZmlsZW5hbWUgPSBwYXRoLnJlc29sdmUoZmlsZW5hbWUpO1xuXG4gICAgICAgIGlmIChPUy53aW4pXG4gICAgICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgcmV0dXJuIGZpbGVuYW1lO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIF9nZXRUU0RlZnNQYXRoICgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gVHlwZVNjcmlwdFRlc3RGaWxlQ29tcGlsZXIuX25vcm1hbGl6ZUZpbGVuYW1lKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLi8uLi8uLi8uLi8uLi90cy1kZWZzL2luZGV4LmQudHMnKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVwb3J0RXJyb3JzIChkaWFnbm9zdGljczogUmVhZG9ubHk8VHlwZVNjcmlwdC5EaWFnbm9zdGljW10+KTogdm9pZCB7XG4gICAgICAgIC8vIE5PVEU6IGxhenkgbG9hZCB0aGUgY29tcGlsZXJcbiAgICAgICAgY29uc3QgdHM6IFR5cGVTY3JpcHRJbnN0YW5jZSA9IHRoaXMuX2xvYWRUeXBlU2NyaXB0Q29tcGlsZXIoKTtcbiAgICAgICAgbGV0IGVyck1zZyA9ICdUeXBlU2NyaXB0IGNvbXBpbGF0aW9uIGZhaWxlZC5cXG4nO1xuXG4gICAgICAgIGRpYWdub3N0aWNzLmZvckVhY2goZCA9PiB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdHMuZmxhdHRlbkRpYWdub3N0aWNNZXNzYWdlVGV4dChkLm1lc3NhZ2VUZXh0LCAnXFxuJyk7XG4gICAgICAgICAgICBjb25zdCBmaWxlICAgID0gZC5maWxlO1xuXG4gICAgICAgICAgICBpZiAoZmlsZSAmJiBkLnN0YXJ0ICE9PSB2b2lkIDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGxpbmUsIGNoYXJhY3RlciB9ID0gZmlsZS5nZXRMaW5lQW5kQ2hhcmFjdGVyT2ZQb3NpdGlvbihkLnN0YXJ0KTtcblxuICAgICAgICAgICAgICAgIGVyck1zZyArPSBgJHtmaWxlLmZpbGVOYW1lfSAoJHtsaW5lICsgMX0sICR7Y2hhcmFjdGVyICsgMX0pOiBgO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlcnJNc2cgKz0gYCR7bWVzc2FnZX1cXG5gO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyTXNnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX2NvbXBpbGVDb2RlRm9yVGVzdEZpbGVzICh0ZXN0RmlsZXNJbmZvOiBUZXN0RmlsZUluZm9bXSk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RzQ29uZmlnLmluaXQodGhpcy5fY3VzdG9tQ29tcGlsZXJPcHRpb25zKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdXBlci5fY29tcGlsZUNvZGVGb3JUZXN0RmlsZXModGVzdEZpbGVzSW5mbyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb21waWxlRmlsZXNUb0NhY2hlICh0czogVHlwZVNjcmlwdEluc3RhbmNlLCBmaWxlbmFtZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9wdHMgICAgPSB0aGlzLl90c0NvbmZpZy5nZXRPcHRpb25zKCkgYXMgRGljdGlvbmFyeTxDb21waWxlck9wdGlvbnNWYWx1ZT47XG4gICAgICAgIGNvbnN0IHByb2dyYW0gPSB0cy5jcmVhdGVQcm9ncmFtKFtUeXBlU2NyaXB0VGVzdEZpbGVDb21waWxlci50c0RlZnNQYXRoLCAuLi5maWxlbmFtZXNdLCBvcHRzKTtcblxuICAgICAgICBERUJVR19MT0dHRVIoJ3ZlcnNpb246ICVzJywgdHMudmVyc2lvbik7XG4gICAgICAgIERFQlVHX0xPR0dFUignb3B0aW9uczogJU8nLCBvcHRzKTtcblxuICAgICAgICBwcm9ncmFtLmdldFNvdXJjZUZpbGVzKCkuZm9yRWFjaChzb3VyY2VGaWxlID0+IHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgQSBoYWNrIHRvIGFsbG93IGltcG9ydCBnbG9iYWxseSBpbnN0YWxsZWQgVGVzdENhZmUgaW4gdGVzdHNcbiAgICAgICAgICAgIHNvdXJjZUZpbGUucmVuYW1lZERlcGVuZGVuY2llcyA9IFJFTkFNRURfREVQRU5ERU5DSUVTX01BUDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSB0cy5nZXRQcmVFbWl0RGlhZ25vc3RpY3MocHJvZ3JhbSk7XG5cbiAgICAgICAgaWYgKGRpYWdub3N0aWNzLmxlbmd0aClcbiAgICAgICAgICAgIHRoaXMuX3JlcG9ydEVycm9ycyhkaWFnbm9zdGljcyk7XG5cbiAgICAgICAgLy8gTk9URTogVGhlIGZpcnN0IGFyZ3VtZW50IG9mIGVtaXQoKSBpcyBhIHNvdXJjZSBmaWxlIHRvIGJlIGNvbXBpbGVkLiBJZiBpdCdzIHVuZGVmaW5lZCwgYWxsIGZpbGVzIGluXG4gICAgICAgIC8vIDxwcm9ncmFtPiB3aWxsIGJlIGNvbXBpbGVkLiA8cHJvZ3JhbT4gY29udGFpbnMgYSBmaWxlIHNwZWNpZmllZCBpbiBjcmVhdGVQcm9ncmFtKCkgcGx1cyBhbGwgaXRzIGRlcGVuZGVuY2llcy5cbiAgICAgICAgLy8gVGhpcyBtb2RlIGlzIG11Y2ggZmFzdGVyIHRoYW4gY29tcGlsaW5nIGZpbGVzIG9uZS1ieS1vbmUsIGFuZCBpdCBpcyB1c2VkIGluIHRoZSB0c2MgQ0xJIGNvbXBpbGVyLlxuICAgICAgICBwcm9ncmFtLmVtaXQodm9pZCAwLCAob3V0cHV0TmFtZSwgcmVzdWx0LCB3cml0ZUJPTSwgb25FcnJvciwgc291cmNlcykgPT4ge1xuICAgICAgICAgICAgaWYgKCFzb3VyY2VzKVxuICAgICAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAgICAgY29uc3Qgc291cmNlUGF0aCA9IFR5cGVTY3JpcHRUZXN0RmlsZUNvbXBpbGVyLl9ub3JtYWxpemVGaWxlbmFtZShzb3VyY2VzWzBdLmZpbGVOYW1lKTtcblxuICAgICAgICAgICAgdGhpcy5jYWNoZVtzb3VyY2VQYXRoXSA9IHJlc3VsdDtcbiAgICAgICAgfSwgdm9pZCAwLCB2b2lkIDAsIHtcbiAgICAgICAgICAgIGJlZm9yZTogdGhpcy5fZ2V0VHlwZXNjcmlwdFRyYW5zZm9ybWVycygpLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRUeXBlc2NyaXB0VHJhbnNmb3JtZXJzICgpOiBUcmFuc2Zvcm1lckZhY3Rvcnk8U291cmNlRmlsZT5bXSB7XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVyczogVHJhbnNmb3JtZXJGYWN0b3J5PFNvdXJjZUZpbGU+W10gPSBbdGVzdGNhZmVJbXBvcnRQYXRoUmVwbGFjZXIoKV07XG5cbiAgICAgICAgaWYgKHRoaXMuaXNDb21waWxlclNlcnZpY2VNb2RlKVxuICAgICAgICAgICAgdHJhbnNmb3JtZXJzLnB1c2goZGlzYWJsZVY4T3B0aW1pemF0aW9uQ29kZUFwcGVuZGVyKCkpO1xuXG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm1lcnM7XG4gICAgfVxuXG4gICAgcHVibGljIF9wcmVjb21waWxlQ29kZSAodGVzdEZpbGVzSW5mbzogVGVzdEZpbGVJbmZvW10pOiBzdHJpbmdbXSB7XG4gICAgICAgIERFQlVHX0xPR0dFUigncGF0aDogXCIlc1wiJywgdGhpcy5fY29tcGlsZXJQYXRoKTtcblxuICAgICAgICAvLyBOT1RFOiBsYXp5IGxvYWQgdGhlIGNvbXBpbGVyXG4gICAgICAgIGNvbnN0IHRzOiBUeXBlU2NyaXB0SW5zdGFuY2UgPSB0aGlzLl9sb2FkVHlwZVNjcmlwdENvbXBpbGVyKCk7XG4gICAgICAgIGNvbnN0IGZpbGVuYW1lcyAgICAgICAgICAgICAgPSB0ZXN0RmlsZXNJbmZvLm1hcCgoeyBmaWxlbmFtZSB9KSA9PiBmaWxlbmFtZSk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRGaWxlbmFtZXMgICAgPSBmaWxlbmFtZXMubWFwKGZpbGVuYW1lID0+IFR5cGVTY3JpcHRUZXN0RmlsZUNvbXBpbGVyLl9ub3JtYWxpemVGaWxlbmFtZShmaWxlbmFtZSkpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkRmlsZW5hbWVzTWFwID0gemlwT2JqZWN0KG5vcm1hbGl6ZWRGaWxlbmFtZXMsIGZpbGVuYW1lcyk7XG5cbiAgICAgICAgY29uc3QgdW5jYWNoZWRGaWxlcyA9IG5vcm1hbGl6ZWRGaWxlbmFtZXNcbiAgICAgICAgICAgIC5maWx0ZXIoZmlsZW5hbWUgPT4gZmlsZW5hbWUgIT09IFR5cGVTY3JpcHRUZXN0RmlsZUNvbXBpbGVyLnRzRGVmc1BhdGggJiYgIXRoaXMuY2FjaGVbZmlsZW5hbWVdKVxuICAgICAgICAgICAgLm1hcChmaWxlbmFtZSA9PiBub3JtYWxpemVkRmlsZW5hbWVzTWFwW2ZpbGVuYW1lXSk7XG5cbiAgICAgICAgaWYgKHVuY2FjaGVkRmlsZXMubGVuZ3RoKVxuICAgICAgICAgICAgdGhpcy5fY29tcGlsZUZpbGVzVG9DYWNoZSh0cywgdW5jYWNoZWRGaWxlcyk7XG5cbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRGaWxlbmFtZXMubWFwKGZpbGVuYW1lID0+IHRoaXMuY2FjaGVbZmlsZW5hbWVdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX2dldFJlcXVpcmVDb21waWxlcnMgKCk6IFJlcXVpcmVDb21waWxlcnMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJy50cyc6ICAoY29kZSwgZmlsZW5hbWUpID0+IHRoaXMuX2NvbXBpbGVDb2RlKGNvZGUsIGZpbGVuYW1lKSxcbiAgICAgICAgICAgICcudHN4JzogKGNvZGUsIGZpbGVuYW1lKSA9PiB0aGlzLl9jb21waWxlQ29kZShjb2RlLCBmaWxlbmFtZSksXG4gICAgICAgICAgICAnLmpzJzogIChjb2RlLCBmaWxlbmFtZSkgPT4gRVNOZXh0VGVzdEZpbGVDb21waWxlci5wcm90b3R5cGUuX2NvbXBpbGVDb2RlLmNhbGwodGhpcywgY29kZSwgZmlsZW5hbWUpLFxuICAgICAgICAgICAgJy5qc3gnOiAoY29kZSwgZmlsZW5hbWUpID0+IEVTTmV4dFRlc3RGaWxlQ29tcGlsZXIucHJvdG90eXBlLl9jb21waWxlQ29kZS5jYWxsKHRoaXMsIGNvZGUsIGZpbGVuYW1lKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNhblByZWNvbXBpbGUgKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U3VwcG9ydGVkRXh0ZW5zaW9uICgpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbJy50cycsICcudHN4J107XG4gICAgfVxufVxuIl19
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcGlsZXIvdGVzdC1maWxlL2Zvcm1hdHMvdHlwZXNjcmlwdC9jb21waWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUN4QixtQ0FBbUM7QUFDbkMsMERBQTJCO0FBQzNCLGdFQUEyRDtBQUMzRCxtRUFBeUQ7QUFDekQsa0hBQXlGO0FBQ3pGLHdEQUEwRDtBQUMxRCxvREFBMEQ7QUFDMUQsa0RBQTBCO0FBQzFCLGlFQUEyRDtBQUMzRCxrRkFBMkQ7QUFDM0Qsc0dBQThFO0FBRTlFLGtDQUFrQztBQUNsQywyQ0FnQm9CO0FBbUJwQixTQUFTLDBCQUEwQjtJQUMvQixPQUFPLE9BQU8sQ0FBQyxFQUFFO1FBQ2IsTUFBTSxLQUFLLEdBQVksQ0FBQyxJQUFJLEVBQXFCLEVBQUU7O1lBQy9DLGFBQWE7WUFDYixJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxJQUFJLE1BQUssdUJBQVUsQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLHVCQUFVLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVTtnQkFDeEgsT0FBTyxJQUFBLGdDQUFtQixFQUFDLDRCQUFtQixDQUFDLENBQUM7WUFFcEQsT0FBTyxJQUFBLDJCQUFjLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFBLHNCQUFTLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRCxTQUFTLGlDQUFpQztJQUN0QyxPQUFPLEdBQUcsRUFBRTtRQUNSLE1BQU0sS0FBSyxHQUFZLENBQUMs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J3BhdGgnO1xuaW1wb3J0IHsgemlwT2JqZWN0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBPUyBmcm9tICdvcy1mYW1pbHknO1xuaW1wb3J0IEFQSUJhc2VkVGVzdEZpbGVDb21waWxlckJhc2UgZnJvbSAnLi4vLi4vYXBpLWJhc2VkJztcbmltcG9ydCBFU05leHRUZXN0RmlsZUNvbXBpbGVyIGZyb20gJy4uL2VzLW5leHQvY29tcGlsZXInO1xuaW1wb3J0IFR5cGVzY3JpcHRDb25maWd1cmF0aW9uIGZyb20gJy4uLy4uLy4uLy4uL2NvbmZpZ3VyYXRpb24vdHlwZXNjcmlwdC1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IEdlbmVyYWxFcnJvciB9IGZyb20gJy4uLy4uLy4uLy4uL2Vycm9ycy9ydW50aW1lJztcbmltcG9ydCB7IFJVTlRJTUVfRVJST1JTIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXJyb3JzL3R5cGVzJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBpc1JlbGF0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXBpL3Rlc3QtcGFnZS11cmwnO1xuaW1wb3J0IEVYUE9SVEFCTEVfTElCX1BBVEggZnJvbSAnLi4vLi4vZXhwb3J0YmxlLWxpYi1wYXRoJztcbmltcG9ydCBESVNBQkxFX1Y4X09QVElNSVpBVElPTl9OT1RFIGZyb20gJy4uLy4uL2Rpc2FibGUtdjgtb3B0aW1pemF0aW9uLW5vdGUnO1xuXG4vLyBOT1RFOiBGb3IgdHlwZSBkZWZpbml0aW9ucyBvbmx5XG5pbXBvcnQgVHlwZVNjcmlwdCwge1xuICAgIENvbXBpbGVyT3B0aW9uc1ZhbHVlLFxuICAgIFN5bnRheEtpbmQsXG4gICAgVmlzaXRSZXN1bHQsXG4gICAgVmlzaXRvcixcbiAgICBOb2RlLFxuICAgIGNyZWF0ZVN0cmluZ0xpdGVyYWwsXG4gICAgdmlzaXRFYWNoQ2hpbGQsXG4gICAgdmlzaXROb2RlLFxuICAgIFRyYW5zZm9ybWVyRmFjdG9yeSxcbiAgICBjcmVhdGVFeHByZXNzaW9uU3RhdGVtZW50LFxuICAgIGNyZWF0ZUNhbGwsXG4gICAgY3JlYXRlSWRlbnRpZmllcixcbiAgICB1cGRhdGVTb3VyY2VGaWxlTm9kZSxcbiAgICBTb3VyY2VGaWxlLFxuICAgIGFkZFN5bnRoZXRpY0xlYWRpbmdDb21tZW50LFxufSBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHsgRGljdGlvbmFyeSwgVHlwZVNjcmlwdENvbXBpbGVyT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbmZpZ3VyYXRpb24vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPcHRpb25hbENvbXBpbGVyQXJndW1lbnRzIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmRlY2xhcmUgdHlwZSBUeXBlU2NyaXB0SW5zdGFuY2UgPSB0eXBlb2YgVHlwZVNjcmlwdDtcblxuaW50ZXJmYWNlIFRlc3RGaWxlSW5mbyB7XG4gICAgZmlsZW5hbWU6IHN0cmluZztcbn1cblxuZGVjbGFyZSBpbnRlcmZhY2UgUmVxdWlyZUNvbXBpbGVyRnVuY3Rpb24ge1xuICAgIChjb2RlOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBSZXF1aXJlQ29tcGlsZXJzIHtcbiAgICBbZXh0ZW5zaW9uOiBzdHJpbmddOiBSZXF1aXJlQ29tcGlsZXJGdW5jdGlvbjtcbn1cblxuZnVuY3Rpb24gdGVzdGNhZmVJbXBvcnRQYXRoUmVwbGFjZXI8VCBleHRlbmRzIE5vZGU+ICgpOiBUcmFuc2Zvcm1lckZhY3Rvcnk8VD4ge1xuICAgIHJldHVybiBjb250ZXh0ID0+IHtcbiAgICAgICAgY29uc3QgdmlzaXQ6IFZpc2l0b3IgPSAobm9kZSk6IFZpc2l0UmVzdWx0PE5vZGU+ID0+IHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGlmIChub2RlLnBhcmVudD8ua2luZCA9PT0gU3ludGF4S2luZC5JbXBvcnREZWNsYXJhdGlvbiAmJiBub2RlLmtpbmQgPT09IFN5bnRheEtpbmQuU3RyaW5nTGl0ZXJhbCAmJiBub2RlLnRleHQgPT09ICd0ZXN0Y2FmZScpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN0cmluZ0xpdGVyYWwoRVhQT1JUQUJMRV9MSUJfUEFUSCk7XG5cbiAgICAgICAgICAgIHJldHVybiB2aXNpdEVhY2hDaGlsZChub2RlLCBjaGlsZCA9PiB2aXNpdChjaGlsZCksIGNvbnRleHQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBub2RlID0+IHZpc2l0Tm9kZShub2RlLCB2aXNpdCk7XG4gICAgfTtcbn1cblxuZnVuY3Rpb24gZGlzYWJsZVY4T3B0aW1pemF0aW9uQ29kZUFwcGVuZGVyPFQgZXh0ZW5kcyBOb2RlPiAoKTogVHJhbnNmb3JtZXJGYWN0b3J5PFQ+IHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBjb25zdCB2aXNpdDogVmlzaXRvciA9IChub2RlKTogVmlzaXRSZXN1bHQ8Tm9kZT4gPT4ge1xuICAgICAgICAgICAgY29uc3QgZXZhbFN0YXRlbWVudCA9IGNyZWF0ZUV4cHJlc3Npb25TdGF0ZW1lbnQoY3JlYXRlQ2FsbChcbiAgICAgICAgICAgICAgICBjcmVhdGVJZGVudGlmaWVyKCdldmFsJyksXG4gICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgIFtjcmVhdGVTdHJpbmdMaXRlcmFsKCcnKV1cbiAgICAgICAgICAgICkpO1xuXG4gICAgICAgICAgICBjb25zdCBldmFsU3RhdGVtZW50V2l0aENvbW1lbnQgPSBhZGRTeW50aGV0aWNMZWFkaW5nQ29tbWVudChldmFsU3RhdGVtZW50LCBTeW50YXhLaW5kLk11bHRpTGluZUNvbW1lbnRUcml2aWEsIERJU0FCTEVfVjhfT1BUSU1JWkFUSU9OX05PVEUsIHRydWUpO1xuXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlU291cmNlRmlsZU5vZGUobm9kZSwgWy4uLm5vZGUuc3RhdGVtZW50cywgZXZhbFN0YXRlbWVudFdpdGhDb21tZW50XSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIG5vZGUgPT4gdmlzaXROb2RlKG5vZGUsIHZpc2l0KTtcbiAgICB9O1xufVxuXG5cbmNvbnN0IERFQlVHX0xPR0dFUiA9IGRlYnVnKCd0ZXN0Y2FmZTpjb21waWxlcjp0eXBlc2NyaXB0Jyk7XG5cbmNvbnN0IFJFTkFNRURfREVQRU5ERU5DSUVTX01BUCA9IG5ldyBNYXAoW1sndGVzdGNhZmUnLCBFWFBPUlRBQkxFX0xJQl9QQVRIXV0pO1xuXG5jb25zdCBERUZBVUxUX1RZUEVTQ1JJUFRfQ09NUElMRVJfUEFUSCA9ICd0eXBlc2NyaXB0JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVHlwZVNjcmlwdFRlc3RGaWxlQ29tcGlsZXIgZXh0ZW5kcyBBUElCYXNlZFRlc3RGaWxlQ29tcGlsZXJCYXNlIHtcbiAgICBwcml2YXRlIHN0YXRpYyB0c0RlZnNQYXRoID0gVHlwZVNjcmlwdFRlc3RGaWxlQ29tcGlsZXIuX2dldFRTRGVmc1BhdGgoKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RzQ29uZmlnOiBUeXBlc2NyaXB0Q29uZmlndXJhdGlvbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb21waWxlclBhdGg6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jdXN0b21Db21waWxlck9wdGlvbnM/OiBvYmplY3Q7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKGNvbXBpbGVyT3B0aW9ucz86IFR5cGVTY3JpcHRDb21waWxlck9wdGlvbnMsIHsgaXNDb21waWxlclNlcnZpY2VNb2RlLCBiYXNlVXJsIH06IE9wdGlvbmFsQ29tcGlsZXJBcmd1bWVudHMgPSB7fSkge1xuICAgICAgICBzdXBlcih7IGlzQ29tcGlsZXJTZXJ2aWNlTW9kZSwgYmFzZVVybCB9KTtcblxuICAgICAgICAvLyBOT1RFOiBBdCBwcmVzZW50LCBpdCdzIG5lY2Vzc2FyeSBjcmVhdGUgYW4gaW5zdGFuY2UgVHlwZVNjcmlwdFRlc3RGaWxlQ29tcGlsZXJcbiAgICAgICAgLy8gdG8gY29sbGVjdCBhIGxpc3Qgb2Ygc3VwcG9ydGVkIHRlc3QgZmlsZSBleHRlbnNpb25zLlxuICAgICAgICAvLyBTbyBhbGwgY29tcGlsZXJzIGNyZWF0ZXMgMiB0aW1lczogZmlyc3QgdGltZSAtIGZvciBjb2xsZWN0aW5nIGFsbCBzdXBwb3J0ZWQgZmlsZSBleHRlbnNpb25zLFxuICAgICAgICAvLyBzZWNvbmQgb25lIC0gZm9yIGNvbXBpbGluZyB0ZXN0cy5cbiAgICAgICAgLy8gSW4gZnV0dXJlLCBuZWVkIHRvIHJld3JpdGUgJ2dldFN1cHBvcnRlZEV4dGVuc2lvbicgbWV0aG9kIGFzIHN0YXRpYy5cblxuICAgICAgICBjb25zdCBjb25maWdQYXRoID0gY29tcGlsZXJPcHRpb25zICYmIGNvbXBpbGVyT3B0aW9ucy5jb25maWdQYXRoIHx8IG51bGw7XG5cbiAgICAgICAgdGhpcy5fY3VzdG9tQ29tcGlsZXJPcHRpb25zID0gY29tcGlsZXJPcHRpb25zICYmIGNvbXBpbGVyT3B0aW9ucy5vcHRpb25zO1xuICAgICAgICB0aGlzLl90c0NvbmZpZyAgICAgICAgICAgICAgPSBuZXcgVHlwZXNjcmlwdENvbmZpZ3VyYXRpb24oY29uZmlnUGF0aCwgaXNDb21waWxlclNlcnZpY2VNb2RlKTtcbiAgICAgICAgdGhpcy5fY29tcGlsZXJQYXRoICAgICAgICAgID0gVHlwZVNjcmlwdFRlc3RGaWxlQ29tcGlsZXIuX2dldENvbXBpbGVyUGF0aChjb21waWxlck9wdGlvbnMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIF9nZXRDb21waWxlclBhdGggKGNvbXBpbGVyT3B0aW9ucz86IFR5cGVTY3JpcHRDb21waWxlck9wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgICBsZXQgY29tcGlsZXJQYXRoID0gY29tcGlsZXJPcHRpb25zICYmIGNvbXBpbGVyT3B0aW9ucy5jdXN0b21Db21waWxlck1vZHVsZVBhdGg7XG5cbiAgICAgICAgaWYgKCFjb21waWxlclBhdGggfHwgY29tcGlsZXJQYXRoID09PSBERUZBVUxUX1RZUEVTQ1JJUFRfQ09NUElMRVJfUEFUSClcbiAgICAgICAgICAgIHJldHVybiBERUZBVUxUX1RZUEVTQ1JJUFRfQ09NUElMRVJfUEFUSDtcblxuICAgICAgICAvLyBOT1RFOiBpZiB0aGUgcmVsYXRpdmUgcGF0aCB0byBjdXN0b20gVHlwZVNjcmlwdCBjb21waWxlciBtb2R1bGUgaXMgc3BlY2lmaWVkXG4gICAgICAgIC8vIHRoZW4gd2Ugd2lsbCByZXNvbHZlIHRoZSBwYXRoIGZyb20gdGhlIHJvb3Qgb2YgdGhlICd0ZXN0Y2FmZScgbW9kdWxlXG4gICAgICAgIGlmIChpc1JlbGF0aXZlKGNvbXBpbGVyUGF0aCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRlc3RjYWZlUm9vdEZvbGRlciA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLi8uLi8uLi8uLi8uLi8nKTtcblxuICAgICAgICAgICAgY29tcGlsZXJQYXRoID0gcGF0aC5yZXNvbHZlKHRlc3RjYWZlUm9vdEZvbGRlciwgY29tcGlsZXJQYXRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21waWxlclBhdGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbG9hZFR5cGVTY3JpcHRDb21waWxlciAoKTogVHlwZVNjcmlwdEluc3RhbmNlIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiByZXF1aXJlKHRoaXMuX2NvbXBpbGVyUGF0aCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgR2VuZXJhbEVycm9yKFJVTlRJTUVfRVJST1JTLnR5cGVTY3JpcHRDb21waWxlckxvYWRpbmdFcnJvciwgZXJyLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgX25vcm1hbGl6ZUZpbGVuYW1lIChmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgZmlsZW5hbWUgPSBwYXRoLnJlc29sdmUoZmlsZW5hbWUpO1xuXG4gICAgICAgIGlmIChPUy53aW4pXG4gICAgICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgcmV0dXJuIGZpbGVuYW1lO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIF9nZXRUU0RlZnNQYXRoICgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gVHlwZVNjcmlwdFRlc3RGaWxlQ29tcGlsZXIuX25vcm1hbGl6ZUZpbGVuYW1lKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLi8uLi8uLi8uLi8uLi90cy1kZWZzL2luZGV4LmQudHMnKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVwb3J0RXJyb3JzIChkaWFnbm9zdGljczogUmVhZG9ubHk8VHlwZVNjcmlwdC5EaWFnbm9zdGljW10+KTogdm9pZCB7XG4gICAgICAgIC8vIE5PVEU6IGxhenkgbG9hZCB0aGUgY29tcGlsZXJcbiAgICAgICAgY29uc3QgdHM6IFR5cGVTY3JpcHRJbnN0YW5jZSA9IHRoaXMuX2xvYWRUeXBlU2NyaXB0Q29tcGlsZXIoKTtcbiAgICAgICAgbGV0IGVyck1zZyA9ICdUeXBlU2NyaXB0IGNvbXBpbGF0aW9uIGZhaWxlZC5cXG4nO1xuXG4gICAgICAgIGRpYWdub3N0aWNzLmZvckVhY2goZCA9PiB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdHMuZmxhdHRlbkRpYWdub3N0aWNNZXNzYWdlVGV4dChkLm1lc3NhZ2VUZXh0LCAnXFxuJyk7XG4gICAgICAgICAgICBjb25zdCBmaWxlICAgID0gZC5maWxlO1xuXG4gICAgICAgICAgICBpZiAoZmlsZSAmJiBkLnN0YXJ0ICE9PSB2b2lkIDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGxpbmUsIGNoYXJhY3RlciB9ID0gZmlsZS5nZXRMaW5lQW5kQ2hhcmFjdGVyT2ZQb3NpdGlvbihkLnN0YXJ0KTtcblxuICAgICAgICAgICAgICAgIGVyck1zZyArPSBgJHtmaWxlLmZpbGVOYW1lfSAoJHtsaW5lICsgMX0sICR7Y2hhcmFjdGVyICsgMX0pOiBgO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlcnJNc2cgKz0gYCR7bWVzc2FnZX1cXG5gO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyTXNnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX2NvbXBpbGVDb2RlRm9yVGVzdEZpbGVzICh0ZXN0RmlsZXNJbmZvOiBUZXN0RmlsZUluZm9bXSk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RzQ29uZmlnLmluaXQodGhpcy5fY3VzdG9tQ29tcGlsZXJPcHRpb25zKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdXBlci5fY29tcGlsZUNvZGVGb3JUZXN0RmlsZXModGVzdEZpbGVzSW5mbyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb21waWxlRmlsZXNUb0NhY2hlICh0czogVHlwZVNjcmlwdEluc3RhbmNlLCBmaWxlbmFtZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9wdHMgICAgPSB0aGlzLl90c0NvbmZpZy5nZXRPcHRpb25zKCkgYXMgRGljdGlvbmFyeTxDb21waWxlck9wdGlvbnNWYWx1ZT47XG4gICAgICAgIGNvbnN0IHByb2dyYW0gPSB0cy5jcmVhdGVQcm9ncmFtKFtUeXBlU2NyaXB0VGVzdEZpbGVDb21waWxlci50c0RlZnNQYXRoLCAuLi5maWxlbmFtZXNdLCBvcHRzKTtcblxuICAgICAgICBERUJVR19MT0dHRVIoJ3ZlcnNpb246ICVzJywgdHMudmVyc2lvbik7XG4gICAgICAgIERFQlVHX0xPR0dFUignb3B0aW9uczogJU8nLCBvcHRzKTtcblxuICAgICAgICBwcm9ncmFtLmdldFNvdXJjZUZpbGVzKCkuZm9yRWFjaChzb3VyY2VGaWxlID0+IHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgQSBoYWNrIHRvIGFsbG93IGltcG9ydCBnbG9iYWxseSBpbnN0YWxsZWQgVGVzdENhZmUgaW4gdGVzdHNcbiAgICAgICAgICAgIHNvdXJjZUZpbGUucmVuYW1lZERlcGVuZGVuY2llcyA9IFJFTkFNRURfREVQRU5ERU5DSUVTX01BUDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSB0cy5nZXRQcmVFbWl0RGlhZ25vc3RpY3MocHJvZ3JhbSk7XG5cbiAgICAgICAgaWYgKGRpYWdub3N0aWNzLmxlbmd0aClcbiAgICAgICAgICAgIHRoaXMuX3JlcG9ydEVycm9ycyhkaWFnbm9zdGljcyk7XG5cbiAgICAgICAgLy8gTk9URTogVGhlIGZpcnN0IGFyZ3VtZW50IG9mIGVtaXQoKSBpcyBhIHNvdXJjZSBmaWxlIHRvIGJlIGNvbXBpbGVkLiBJZiBpdCdzIHVuZGVmaW5lZCwgYWxsIGZpbGVzIGluXG4gICAgICAgIC8vIDxwcm9ncmFtPiB3aWxsIGJlIGNvbXBpbGVkLiA8cHJvZ3JhbT4gY29udGFpbnMgYSBmaWxlIHNwZWNpZmllZCBpbiBjcmVhdGVQcm9ncmFtKCkgcGx1cyBhbGwgaXRzIGRlcGVuZGVuY2llcy5cbiAgICAgICAgLy8gVGhpcyBtb2RlIGlzIG11Y2ggZmFzdGVyIHRoYW4gY29tcGlsaW5nIGZpbGVzIG9uZS1ieS1vbmUsIGFuZCBpdCBpcyB1c2VkIGluIHRoZSB0c2MgQ0xJIGNvbXBpbGVyLlxuICAgICAgICBwcm9ncmFtLmVtaXQodm9pZCAwLCAob3V0cHV0TmFtZSwgcmVzdWx0LCB3cml0ZUJPTSwgb25FcnJvciwgc291cmNlcykgPT4ge1xuICAgICAgICAgICAgaWYgKCFzb3VyY2VzKVxuICAgICAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAgICAgY29uc3Qgc291cmNlUGF0aCA9IFR5cGVTY3JpcHRUZXN0RmlsZUNvbXBpbGVyLl9ub3JtYWxpemVGaWxlbmFtZShzb3VyY2VzWzBdLmZpbGVOYW1lKTtcblxuICAgICAgICAgICAgdGhpcy5jYWNoZVtzb3VyY2VQYXRoXSA9IHJlc3VsdDtcbiAgICAgICAgfSwgdm9pZCAwLCB2b2lkIDAsIHtcbiAgICAgICAgICAgIGJlZm9yZTogdGhpcy5fZ2V0VHlwZXNjcmlwdFRyYW5zZm9ybWVycygpLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRUeXBlc2NyaXB0VHJhbnNmb3JtZXJzICgpOiBUcmFuc2Zvcm1lckZhY3Rvcnk8U291cmNlRmlsZT5bXSB7XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVyczogVHJhbnNmb3JtZXJGYWN0b3J5PFNvdXJjZUZpbGU+W10gPSBbdGVzdGNhZmVJbXBvcnRQYXRoUmVwbGFjZXIoKV07XG5cbiAgICAgICAgaWYgKHRoaXMuaXNDb21waWxlclNlcnZpY2VNb2RlKVxuICAgICAgICAgICAgdHJhbnNmb3JtZXJzLnB1c2goZGlzYWJsZVY4T3B0aW1pemF0aW9uQ29kZUFwcGVuZGVyKCkpO1xuXG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm1lcnM7XG4gICAgfVxuXG4gICAgcHVibGljIF9wcmVjb21waWxlQ29kZSAodGVzdEZpbGVzSW5mbzogVGVzdEZpbGVJbmZvW10pOiBzdHJpbmdbXSB7XG4gICAgICAgIERFQlVHX0xPR0dFUigncGF0aDogXCIlc1wiJywgdGhpcy5fY29tcGlsZXJQYXRoKTtcblxuICAgICAgICAvLyBOT1RFOiBsYXp5IGxvYWQgdGhlIGNvbXBpbGVyXG4gICAgICAgIGNvbnN0IHRzOiBUeXBlU2NyaXB0SW5zdGFuY2UgPSB0aGlzLl9sb2FkVHlwZVNjcmlwdENvbXBpbGVyKCk7XG4gICAgICAgIGNvbnN0IGZpbGVuYW1lcyAgICAgICAgICAgICAgPSB0ZXN0RmlsZXNJbmZvLm1hcCgoeyBmaWxlbmFtZSB9KSA9PiBmaWxlbmFtZSk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRGaWxlbmFtZXMgICAgPSBmaWxlbmFtZXMubWFwKGZpbGVuYW1lID0+IFR5cGVTY3JpcHRUZXN0RmlsZUNvbXBpbGVyLl9ub3JtYWxpemVGaWxlbmFtZShmaWxlbmFtZSkpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkRmlsZW5hbWVzTWFwID0gemlwT2JqZWN0KG5vcm1hbGl6ZWRGaWxlbmFtZXMsIGZpbGVuYW1lcyk7XG5cbiAgICAgICAgY29uc3QgdW5jYWNoZWRGaWxlcyA9IG5vcm1hbGl6ZWRGaWxlbmFtZXNcbiAgICAgICAgICAgIC5maWx0ZXIoZmlsZW5hbWUgPT4gZmlsZW5hbWUgIT09IFR5cGVTY3JpcHRUZXN0RmlsZUNvbXBpbGVyLnRzRGVmc1BhdGggJiYgIXRoaXMuY2FjaGVbZmlsZW5hbWVdKVxuICAgICAgICAgICAgLm1hcChmaWxlbmFtZSA9PiBub3JtYWxpemVkRmlsZW5hbWVzTWFwW2ZpbGVuYW1lXSk7XG5cbiAgICAgICAgaWYgKHVuY2FjaGVkRmlsZXMubGVuZ3RoKVxuICAgICAgICAgICAgdGhpcy5fY29tcGlsZUZpbGVzVG9DYWNoZSh0cywgdW5jYWNoZWRGaWxlcyk7XG5cbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRGaWxlbmFtZXMubWFwKGZpbGVuYW1lID0+IHRoaXMuY2FjaGVbZmlsZW5hbWVdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX2dldFJlcXVpcmVDb21waWxlcnMgKCk6IFJlcXVpcmVDb21waWxlcnMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJy50cyc6ICAoY29kZSwgZmlsZW5hbWUpID0+IHRoaXMuX2NvbXBpbGVDb2RlKGNvZGUsIGZpbGVuYW1lKSxcbiAgICAgICAgICAgICcudHN4JzogKGNvZGUsIGZpbGVuYW1lKSA9PiB0aGlzLl9jb21waWxlQ29kZShjb2RlLCBmaWxlbmFtZSksXG4gICAgICAgICAgICAnLmpzJzogIChjb2RlLCBmaWxlbmFtZSkgPT4gRVNOZXh0VGVzdEZpbGVDb21waWxlci5wcm90b3R5cGUuX2NvbXBpbGVDb2RlLmNhbGwodGhpcywgY29kZSwgZmlsZW5hbWUpLFxuICAgICAgICAgICAgJy5qc3gnOiAoY29kZSwgZmlsZW5hbWUpID0+IEVTTmV4dFRlc3RGaWxlQ29tcGlsZXIucHJvdG90eXBlLl9jb21waWxlQ29kZS5jYWxsKHRoaXMsIGNvZGUsIGZpbGVuYW1lKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNhblByZWNvbXBpbGUgKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U3VwcG9ydGVkRXh0ZW5zaW9uICgpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbJy50cycsICcudHN4J107XG4gICAgfVxufVxuIl19
|
|
@@ -11,7 +11,7 @@ const typescript_configuration_1 = __importDefault(require("../../../../configur
|
|
|
11
11
|
function replaceComments(code) {
|
|
12
12
|
return code.replace(/\/\*[\s\S]*?\*\/|([^\\:]|^)\/\/.*$/gm, match => {
|
|
13
13
|
const lastSymbol = match.indexOf('\n') > -1 ? '\n' : ' ';
|
|
14
|
-
return lodash_1.repeat(' ', match.length + lastSymbol);
|
|
14
|
+
return (0, lodash_1.repeat)(' ', match.length + lastSymbol);
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
17
|
class TypeScriptTestFileParser extends test_file_parser_base_1.TestFileParserBase {
|
|
@@ -89,7 +89,7 @@ class TypeScriptTestFileParser extends test_file_parser_base_1.TestFileParserBas
|
|
|
89
89
|
loc: loc.loc,
|
|
90
90
|
start: loc.start,
|
|
91
91
|
end: loc.end,
|
|
92
|
-
meta: lodash_1.merge({}, ...meta),
|
|
92
|
+
meta: (0, lodash_1.merge)({}, ...meta),
|
|
93
93
|
isSkipped: test_file_parser_base_1.TestFileParserBase.isSkipped(token),
|
|
94
94
|
};
|
|
95
95
|
}
|
|
@@ -184,4 +184,4 @@ class TypeScriptTestFileParser extends test_file_parser_base_1.TestFileParserBas
|
|
|
184
184
|
const parser = new TypeScriptTestFileParser();
|
|
185
185
|
exports.getTypeScriptTestList = parser.getTestList.bind(parser);
|
|
186
186
|
exports.getTypeScriptTestListFromCode = parser.getTestListFromCode.bind(parser);
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXRlc3QtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21waWxlci90ZXN0LWZpbGUvZm9ybWF0cy90eXBlc2NyaXB0L2dldC10ZXN0LWxpc3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNERBQTRCO0FBQzVCLG1DQUF1QztBQUN2Qyx1RUFBaUU7QUFDakUsa0hBQXlGO0FBRXpGLFNBQVMsZUFBZSxDQUFFLElBQUk7SUFDMUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHNDQUFzQyxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQ2hFLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBRXpELE9BQU8sZUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELE1BQU0sd0JBQXlCLFNBQVEsMENBQWtCO0lBQ3JEO1FBQ0ksS0FBSyxDQUFDLG9CQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELHFCQUFxQixDQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtRQUMvQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXhELE9BQU8sMENBQWtCLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELFlBQVksQ0FBRSxLQUFLO1FBQ2YsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxjQUFjLENBQUUsS0FBSztRQUNqQixPQUFPLEtBQUss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QUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBRSxJQUFJO1FBQ1AsbUVBQW1FO1FBQ25FLHVGQUF1RjtRQUN2Rix3RUFBd0U7UUFDeEUsb0VBQW9FO1FBQ3BFLElBQUksQ0FBQyxPQUFPLEdBQWUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpELE1BQU0sUUFBUSxHQUFLLElBQUksa0NBQXVCLEVBQUUsQ0FBQztRQUNqRCxNQUFNLFVBQVUsR0FBRyxvQkFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTlFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNKO0FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO0FBRWpDLFFBQUEscUJBQXFCLEdBQVcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDaEUsUUFBQSw2QkFBNkIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHsgcmVwZWF0LCBtZXJnZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBUZXN0RmlsZVBhcnNlckJhc2UgfSBmcm9tICcuLi8uLi90ZXN0LWZpbGUtcGFyc2VyLWJhc2UnO1xuaW1wb3J0IFR5cGVzY3JpcHRDb25maWd1cmF0aW9uIGZyb20gJy4uLy4uLy4uLy4uL2NvbmZpZ3VyYXRpb24vdHlwZXNjcmlwdC1jb25maWd1cmF0aW9uJztcblxuZnVuY3Rpb24gcmVwbGFjZUNvbW1lbnRzIChjb2RlKSB7XG4gICAgcmV0dXJuIGNvZGUucmVwbGFjZSgvXFwvXFwqW1xcc1xcU10qP1xcKlxcL3woW15cXFxcOl18XilcXC9cXC8uKiQvZ20sIG1hdGNoID0+IHtcbiAgICAgICAgY29uc3QgbGFzdFN5bWJvbCA9IG1hdGNoLmluZGV4T2YoJ1xcbicpID4gLTEgPyAnXFxuJyA6ICcgJztcblxuICAgICAgICByZXR1cm4gcmVwZWF0KCcgJywgbWF0Y2gubGVuZ3RoICsgbGFzdFN5bWJvbCk7XG4gICAgfSk7XG59XG5cbmNsYXNzIFR5cGVTY3JpcHRUZXN0RmlsZVBhcnNlciBleHRlbmRzIFRlc3RGaWxlUGFyc2VyQmFzZSB7XG4gICAgY29uc3RydWN0b3IgKCkge1xuICAgICAgICBzdXBlcih0cy5TeW50YXhLaW5kKTtcbiAgICB9XG5cbiAgICBnZXRDb21wdXRlZE5hbWVTdHJpbmcgKHsgcG9zLCBlbmQgfSkge1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZVBvcyA9IHRoaXMuZ2V0TG9jYXRpb25CeU9mZnNldHMocG9zLCBlbmQpO1xuXG4gICAgICAgIHJldHVybiBUZXN0RmlsZVBhcnNlckJhc2UuZm9ybWF0Q29tcHV0ZWROYW1lKHRlbXBsYXRlUG9zLmxvYy5zdGFydC5saW5lKTtcbiAgICB9XG5cbiAgICBnZXRUb2tlblR5cGUgKHRva2VuKSB7XG4gICAgICAgIHJldHVybiB0b2tlbi5raW5kO1xuICAgIH1cblxuICAgIGdldENhbGxlZVRva2VuICh0b2tlbikge1xuICAgICAgICByZXR1cm4gdG9rZW4uZXhwcmVzc2lvbjtcbiAgICB9XG5cbiAgICBnZXRNZW1iZXJGbk5hbWUgKHRva2VuKSB7XG4gICAgICAgIHJldHVybiB0b2tlbi5leHByZXNzaW9uLm5hbWUudGV4dDtcbiAgICB9XG5cbiAgICBnZXRLZXlWYWx1ZSAocHJvcCkge1xuICAgICAgICBjb25zdCB7IG5hbWUsIGluaXRpYWxpemVyIH0gPSBwcm9wO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBrZXk6ICAgbmFtZS50ZXh0LFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0U3RyaW5nVmFsdWUoaW5pdGlhbGl6ZXIpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldEZpeGVkU3RhcnRPZmZzZXQgKHN0YXJ0KSB7XG4gICAgICAgIGxldCBmaXhlZFN0YXJ0T2Zmc2V0ID0gc3RhcnQ7XG5cbiAgICAgICAgd2hpbGUgKC9cXHMvLnRlc3QodGhpcy5jb2RlV2l0aG91dENvbW1lbnRzW2ZpeGVkU3RhcnRPZmZzZXRdKSlcbiAgICAgICAgICAgICsrZml4ZWRTdGFydE9mZnNldDtcblxuICAgICAgICByZXR1cm4gZml4ZWRTdGFydE9mZnNldDtcbiAgICB9XG5cbiAgICBnZXRMb2NhdGlvbkJ5T2Zmc2V0cyAoc3RhcnQsIGVuZCkge1xuICAgICAgICBjb25zdCBmaXhlZFN0YXJ0ID0gdGhpcy5nZXRGaXhlZFN0YXJ0T2Zmc2V0KHN0YXJ0KTtcbiAgICAgICAgY29uc3QgY29kZUFyciAgICA9IHRoaXMuY29kZUFycjtcbiAgICAgICAgY29uc3QgbG9jICAgICAgICA9IHsgc3RhcnQ6IG51bGwsIGVuZDogbnVsbCB9O1xuXG4gICAgICAgIGxldCBsaW5lICAgICA9IGNvZGVBcnJbMF07XG4gICAgICAgIGxldCBzdGFydFRtcCA9IGZpeGVkU3RhcnQ7XG4gICAgICAgIGxldCBlbmRUbXAgICA9IGVuZDtcblxuICAgICAgICBmb3IgKGxldCBsaW5lTnVtYmVyID0gMTsgbGluZU51bWJlciA8PSBjb2RlQXJyLmxlbmd0aDsgKytsaW5lTnVtYmVyLCBsaW5lID0gY29kZUFycltsaW5lTnVtYmVyIC0gMV0pIHtcbiAgICAgICAgICAgIHN0YXJ0VG1wIC09IGxpbmUubGVuZ3RoICsgMTtcbiAgICAgICAgICAgIGVuZFRtcCAtPSBsaW5lLmxlbmd0aCArIDE7XG5cbiAgICAgICAgICAgIGlmIChzdGFydFRtcCA8IDAgJiYgIWxvYy5zdGFydClcbiAgICAgICAgICAgICAgICBsb2Muc3RhcnQgPSB7IGxpbmU6IGxpbmVOdW1iZXIsIGNvbHVtbjogbGluZS5sZW5ndGggKyBzdGFydFRtcCArIDEgfTtcblxuICAgICAgICAgICAgaWYgKGVuZFRtcCA8PSAwIHx8IGxpbmVOdW1iZXIgPT09IGNvZGVBcnIubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIGxvYy5lbmQgPSB7IGxpbmU6IGxpbmVOdW1iZXIsIGNvbHVtbjogbGluZS5sZW5ndGggKyBlbmRUbXAgKyAxIH07XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IGxvYywgc3RhcnQ6IGZpeGVkU3RhcnQsIGVuZCB9O1xuICAgIH1cblxuICAgIGdldFJWYWx1ZSAodG9rZW4pIHtcbiAgICAgICAgcmV0dXJuIHRva2VuLmRlY2xhcmF0aW9uTGlzdC5kZWNsYXJhdGlvbnNbMF0uaW5pdGlhbGl6ZXI7XG4gICAgfVxuXG4gICAgZ2V0U3RyaW5nVmFsdWUgKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IHN0cmluZ1R5cGVzID0gW3RoaXMudG9rZW5UeXBlLlN0cmluZ0xpdGVyYWwsIHRoaXMudG9rZW5UeXBlLlRlbXBsYXRlRXhwcmVzc2lvbl07XG5cbiAgICAgICAgaWYgKHN0cmluZ1R5cGVzLmluZGV4T2YodG9rZW4ua2luZCkgPiAtMSB8fCB0b2tlbi50ZXh0ICYmIHRva2VuLmtpbmQgIT09IHRoaXMudG9rZW5UeXBlLk51bWVyaWNMaXRlcmFsKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0Rm5BcmcodG9rZW4pO1xuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlzQXN5bmNGbiAodG9rZW4pIHtcbiAgICAgICAgY29uc3QgaXNHZW5lcmF0b3JGbiA9ICEhdG9rZW4uYXN0ZXJpc2tUb2tlbjtcbiAgICAgICAgY29uc3QgaXNBc3luY0ZuICAgICA9IHRva2VuLm1vZGlmaWVycyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4ubW9kaWZpZXJzLnNvbWUobW9kaWZpZXIgPT4gbW9kaWZpZXIua2luZCA9PT0gdGhpcy50b2tlblR5cGUuQXN5bmNLZXl3b3JkKTtcblxuICAgICAgICByZXR1cm4gaXNHZW5lcmF0b3JGbiB8fCBpc0FzeW5jRm47XG4gICAgfVxuXG4gICAgZ2V0RnVuY3Rpb25Cb2R5ICh0b2tlbikge1xuICAgICAgICByZXR1cm4gdG9rZW4uYm9keS5zdGF0ZW1lbnRzO1xuICAgIH1cblxuICAgIGZvcm1hdEZuRGF0YSAobmFtZSwgdmFsdWUsIHRva2VuLCBtZXRhID0gW3t9XSkge1xuICAgICAgICBjb25zdCBsb2MgPSB0aGlzLmdldExvY2F0aW9uQnlPZmZzZXRzKHRva2VuLnBvcywgdG9rZW4uZW5kKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZm5OYW1lOiAgICBuYW1lLFxuICAgICAgICAgICAgdmFsdWU6ICAgICB2YWx1ZSxcbiAgICAgICAgICAgIGxvYzogICAgICAgbG9jLmxvYyxcbiAgICAgICAgICAgIHN0YXJ0OiAgICAgbG9jLnN0YXJ0LFxuICAgICAgICAgICAgZW5kOiAgICAgICBsb2MuZW5kLFxuICAgICAgICAgICAgbWV0YTogICAgICBtZXJnZSh7fSwgLi4ubWV0YSksXG4gICAgICAgICAgICBpc1NraXBwZWQ6IFRlc3RGaWxlUGFyc2VyQmFzZS5pc1NraXBwZWQodG9rZW4pLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGFuYWx5emVNZW1iZXJFeHAgKHRva2VuKSB7XG4gICAgICAgIGxldCBleHAgICAgICAgICA9IHRva2VuO1xuICAgICAgICBjb25zdCB0b2tlblR5cGUgPSB0aGlzLnRva2VuVHlwZTtcbiAgICAgICAgY29uc3QgY2FsbFN0YWNrID0gW2V4cF07XG5cbiAgICAgICAgd2hpbGUgKGV4cC5raW5kICE9PSB0aGlzLnRva2VuVHlwZS5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBleHAgPSBleHAuZXhwcmVzc2lvbiB8fCBleHAudGFnO1xuXG4gICAgICAgICAgICBjYWxsU3RhY2sucHVzaChleHApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWV0YSA9IHRoaXMuZ2V0TWV0YUluZm8oY2FsbFN0YWNrLnNsaWNlKCkpO1xuXG4gICAgICAgIGlmIChleHAgJiYgdGhpcy5pc0FwaUZuKGV4cC50ZXh0KSkge1xuICAgICAgICAgICAgbGV0IHBhcmVudEV4cCA9IGNhbGxTdGFjay5wb3AoKTtcblxuICAgICAgICAgICAgd2hpbGUgKHBhcmVudEV4cCkge1xuICAgICAgICAgICAgICAgIGlmIChwYXJlbnRFeHAua2luZCA9PT0gdG9rZW5UeXBlLkNhbGxFeHByZXNzaW9uICYmIHBhcmVudEV4cC5leHByZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbGxlZVR5cGUgICAgID0gcGFyZW50RXhwLmV4cHJlc3Npb24ua2luZDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FsbGVlTWVtYmVyRm4gPSBjYWxsZWVUeXBlID09PSB0b2tlblR5cGUuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50RXhwLmV4cHJlc3Npb24ubmFtZS50ZXh0O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrRXhwRGVmaW5lVGFyZ2V0TmFtZShjYWxsZWVUeXBlLCBjYWxsZWVNZW1iZXJGbikpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRGbkRhdGEoZXhwLnRleHQsIHRoaXMuZm9ybWF0Rm5BcmcocGFyZW50RXhwLmFyZ3VtZW50c1swXSksIHRva2VuLCBtZXRhKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocGFyZW50RXhwLmtpbmQgPT09IHRva2VuVHlwZS5UYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24gJiYgcGFyZW50RXhwLnRhZykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YWdUeXBlICAgICA9IHBhcmVudEV4cC50YWcua2luZDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFnTWVtYmVyRm4gPSB0YWdUeXBlID09PSB0b2tlblR5cGUuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uICYmIHBhcmVudEV4cC50YWcubmFtZS50ZXh0O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrRXhwRGVmaW5lVGFyZ2V0TmFtZSh0YWdUeXBlLCB0YWdNZW1iZXJGbikpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRGbkRhdGEoZXhwLnRleHQsIHRoaXMuZm9ybWF0Rm5BcmcocGFyZW50RXhwKSwgdG9rZW4sIG1ldGEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHBhcmVudEV4cCA9IGNhbGxTdGFjay5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGZvcm1hdEZuQXJnIChhcmcpIHtcbiAgICAgICAgaWYgKGFyZy50ZW1wbGF0ZVNwYW5zKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29tcHV0ZWROYW1lU3RyaW5nKHsgcG9zOiBhcmcucG9zLCBlbmQ6IGFyZy5lbmQgfSk7XG5cbiAgICAgICAgaWYgKGFyZy5oZWFkKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29tcHV0ZWROYW1lU3RyaW5nKHsgcG9zOiBhcmcudGVtcGxhdGUucG9zLCBlbmQ6IGFyZy50ZW1wbGF0ZS5lbmQgfSk7XG5cbiAgICAgICAgaWYgKGFyZy50ZW1wbGF0ZSlcbiAgICAgICAgICAgIHJldHVybiBhcmcudGVtcGxhdGUudGV4dCB8fCB0aGlzLmdldENvbXB1dGVkTmFtZVN0cmluZyh7IHBvczogYXJnLnRlbXBsYXRlLnBvcywgZW5kOiBhcmcudGVtcGxhdGUuZW5kIH0pO1xuXG4gICAgICAgIGlmIChhcmcua2luZCA9PT0gdGhpcy50b2tlblR5cGUuSWRlbnRpZmllcilcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldENvbXB1dGVkTmFtZVN0cmluZyh7IHBvczogYXJnLnBvcywgZW5kOiBhcmcuZW5kIH0pO1xuXG4gICAgICAgIGlmIChhcmcudGV4dCAmJiBhcmcua2luZCAhPT0gdGhpcy50b2tlblR5cGUuTnVtZXJpY0xpdGVyYWwpXG4gICAgICAgICAgICByZXR1cm4gYXJnLnRleHQ7XG5cbiAgICAgICAgaWYgKGFyZy5raW5kID09PSB0aGlzLnRva2VuVHlwZS5UeXBlQXNzZXJ0aW9uRXhwcmVzc2lvbilcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZuQXJnKGFyZy5leHByZXNzaW9uKTtcblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBnZXRGbkNhbGwgKHRva2VuKSB7XG4gICAgICAgIGlmICh0aGlzLmlzQXBpRm4odG9rZW4uZXhwcmVzc2lvbi50ZXh0KSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZuRGF0YSh0b2tlbi5leHByZXNzaW9uLnRleHQsIHRoaXMuZm9ybWF0Rm5BcmcodG9rZW4uYXJndW1lbnRzWzBdKSwgdG9rZW4pO1xuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGdldFRhZ2dlZFRlbXBsYXRlRXhwICh0b2tlbikge1xuICAgICAgICBpZiAodGhpcy5pc0FwaUZuKHRva2VuLnRhZy50ZXh0KSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZuRGF0YSh0b2tlbi50YWcudGV4dCwgdGhpcy5mb3JtYXRGbkFyZyh0b2tlbiksIHRva2VuKTtcblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBhbmFseXplRm5DYWxsICh0b2tlbikge1xuICAgICAgICBjb25zdCB0b2tlblR5cGUgPSB0aGlzLnRva2VuVHlwZTtcblxuICAgICAgICBpZiAodG9rZW4ua2luZCA9PT0gdG9rZW5UeXBlLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbilcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFuYWx5emVNZW1iZXJFeHAodG9rZW4pO1xuXG4gICAgICAgIGlmICh0b2tlbi5raW5kID09PSB0b2tlblR5cGUuQ2FsbEV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cEtpbmQgPSB0b2tlbi5leHByZXNzaW9uLmtpbmQ7XG5cbiAgICAgICAgICAgIGlmIChleHBLaW5kID09PSB0b2tlblR5cGUuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uIHx8IGV4cEtpbmQgPT09IHRva2VuVHlwZS5DYWxsRXhwcmVzc2lvbilcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hbmFseXplTWVtYmVyRXhwKHRva2VuKTtcblxuICAgICAgICAgICAgaWYgKGV4cEtpbmQgPT09IHRva2VuVHlwZS5QYXJlbnRoZXNpemVkRXhwcmVzc2lvbilcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hbmFseXplRm5DYWxsKHRva2VuLmV4cHJlc3Npb24uZXhwcmVzc2lvbik7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEZuQ2FsbCh0b2tlbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodG9rZW4ua2luZCA9PT0gdG9rZW5UeXBlLkZ1bmN0aW9uRXhwcmVzc2lvbiB8fCB0b2tlbi5raW5kID09PSB0b2tlblR5cGUuQXJyb3dGdW5jdGlvbilcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbGxlY3RUZXN0Q2FmZUNhbGxzKHRoaXMuZ2V0RnVuY3Rpb25Cb2R5KHRva2VuKSk7XG5cbiAgICAgICAgaWYgKHRva2VuLmtpbmQgPT09IHRva2VuVHlwZS5UYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgIGlmICh0b2tlbi50YWcua2luZCA9PT0gdG9rZW5UeXBlLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbiB8fCB0b2tlbi50YWcua2luZCA9PT0gdG9rZW5UeXBlLkNhbGxFeHByZXNzaW9uKVxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFuYWx5emVNZW1iZXJFeHAodG9rZW4pO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUYWdnZWRUZW1wbGF0ZUV4cCh0b2tlbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwYXJzZSAoY29kZSkge1xuICAgICAgICAvL05PVEU6IFR5cGVTY3JpcHQgY2FsY3VsYXRlcyBzdGFydCBwb3NpdGlvbiBvZiBhIHRva2VuIGluY29ycmVjdGx5XG4gICAgICAgIC8vSXQgZG9lc24ndCBjb25zaWRlciBzcGFjZXMgYW5kIGNvbW1lbnRzIGJldHdlZW4gdGhlIGxhc3QgdG9rZW4gYW5kIHRoZSBjdXJyZW50IHRva2VuLlxuICAgICAgICAvL1NvIHdlIHJlcGxhY2UgY29tbWVudHMgd2l0aCBzcGFjZSBzeW1ib2xzIHRvIGNhbGN1bGF0ZSBmaXhlZCBwb3NpdGlvbi5cbiAgICAgICAgLy9XZSBqdXN0IGluY3JlbWVudCBwb3NpdGlvbiB1bnRpbCB3ZSBtZWV0IG5vbiB3aGl0ZXNwYWNlIGNoYXJhY3RlcnNcbiAgICAgICAgdGhpcy5jb2RlQXJyICAgICAgICAgICAgID0gY29kZS5zcGxpdCgnXFxuJyk7XG4gICAgICAgIHRoaXMuY29kZVdpdGhvdXRDb21tZW50cyA9IHJlcGxhY2VDb21tZW50cyhjb2RlKTtcblxuICAgICAgICBjb25zdCB0c0NvbmZpZyAgID0gbmV3IFR5cGVzY3JpcHRDb25maWd1cmF0aW9uKCk7XG4gICAgICAgIGNvbnN0IHNvdXJjZUZpbGUgPSB0cy5jcmVhdGVTb3VyY2VGaWxlKCcnLCBjb2RlLCB0c0NvbmZpZy5nZXRPcHRpb25zKCksIHRydWUpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFuYWx5emUoc291cmNlRmlsZS5zdGF0ZW1lbnRzKTtcbiAgICB9XG59XG5cbmNvbnN0IHBhcnNlciA9IG5ldyBUeXBlU2NyaXB0VGVzdEZpbGVQYXJzZXIoKTtcblxuZXhwb3J0IGNvbnN0IGdldFR5cGVTY3JpcHRUZXN0TGlzdCAgICAgICAgID0gcGFyc2VyLmdldFRlc3RMaXN0LmJpbmQocGFyc2VyKTtcbmV4cG9ydCBjb25zdCBnZXRUeXBlU2NyaXB0VGVzdExpc3RGcm9tQ29kZSA9IHBhcnNlci5nZXRUZXN0TGlzdEZyb21Db2RlLmJpbmQocGFyc2VyKTtcbiJdfQ==
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXRlc3QtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21waWxlci90ZXN0LWZpbGUvZm9ybWF0cy90eXBlc2NyaXB0L2dldC10ZXN0LWxpc3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNERBQTRCO0FBQzVCLG1DQUF1QztBQUN2Qyx1RUFBaUU7QUFDakUsa0hBQXlGO0FBRXpGLFNBQVMsZUFBZSxDQUFFLElBQUk7SUFDMUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHNDQUFzQyxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQ2hFLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBRXpELE9BQU8sSUFBQSxlQUFNLEVBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsTUFBTSx3QkFBeUIsU0FBUSwwQ0FBa0I7SUFDckQ7UUFDSSxLQUFLLENBQUMsb0JBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQscUJBQXFCLENBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO1FBQy9CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFeEQsT0FBTywwQ0FBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsWUFBWSxDQUFFLEtBQUs7UUFDZixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWMsQ0FBRSxLQUFLO1FBQ2pCLE9BQU8s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QUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxLQUFLLENBQUUsSUFBSTtRQUNQLG1FQUFtRTtRQUNuRSx1RkFBdUY7UUFDdkYsd0VBQXdFO1FBQ3hFLG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsT0FBTyxHQUFlLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqRCxNQUFNLFFBQVEsR0FBSyxJQUFJLGtDQUF1QixFQUFFLENBQUM7UUFDakQsTUFBTSxVQUFVLEdBQUcsb0JBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU5RSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDSjtBQUVELE1BQU0sTUFBTSxHQUFHLElBQUksd0JBQXdCLEVBQUUsQ0FBQztBQUVqQyxRQUFBLHFCQUFxQixHQUFXLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hFLFFBQUEsNkJBQTZCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7IHJlcGVhdCwgbWVyZ2UgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgVGVzdEZpbGVQYXJzZXJCYXNlIH0gZnJvbSAnLi4vLi4vdGVzdC1maWxlLXBhcnNlci1iYXNlJztcbmltcG9ydCBUeXBlc2NyaXB0Q29uZmlndXJhdGlvbiBmcm9tICcuLi8uLi8uLi8uLi9jb25maWd1cmF0aW9uL3R5cGVzY3JpcHQtY29uZmlndXJhdGlvbic7XG5cbmZ1bmN0aW9uIHJlcGxhY2VDb21tZW50cyAoY29kZSkge1xuICAgIHJldHVybiBjb2RlLnJlcGxhY2UoL1xcL1xcKltcXHNcXFNdKj9cXCpcXC98KFteXFxcXDpdfF4pXFwvXFwvLiokL2dtLCBtYXRjaCA9PiB7XG4gICAgICAgIGNvbnN0IGxhc3RTeW1ib2wgPSBtYXRjaC5pbmRleE9mKCdcXG4nKSA+IC0xID8gJ1xcbicgOiAnICc7XG5cbiAgICAgICAgcmV0dXJuIHJlcGVhdCgnICcsIG1hdGNoLmxlbmd0aCArIGxhc3RTeW1ib2wpO1xuICAgIH0pO1xufVxuXG5jbGFzcyBUeXBlU2NyaXB0VGVzdEZpbGVQYXJzZXIgZXh0ZW5kcyBUZXN0RmlsZVBhcnNlckJhc2Uge1xuICAgIGNvbnN0cnVjdG9yICgpIHtcbiAgICAgICAgc3VwZXIodHMuU3ludGF4S2luZCk7XG4gICAgfVxuXG4gICAgZ2V0Q29tcHV0ZWROYW1lU3RyaW5nICh7IHBvcywgZW5kIH0pIHtcbiAgICAgICAgY29uc3QgdGVtcGxhdGVQb3MgPSB0aGlzLmdldExvY2F0aW9uQnlPZmZzZXRzKHBvcywgZW5kKTtcblxuICAgICAgICByZXR1cm4gVGVzdEZpbGVQYXJzZXJCYXNlLmZvcm1hdENvbXB1dGVkTmFtZSh0ZW1wbGF0ZVBvcy5sb2Muc3RhcnQubGluZSk7XG4gICAgfVxuXG4gICAgZ2V0VG9rZW5UeXBlICh0b2tlbikge1xuICAgICAgICByZXR1cm4gdG9rZW4ua2luZDtcbiAgICB9XG5cbiAgICBnZXRDYWxsZWVUb2tlbiAodG9rZW4pIHtcbiAgICAgICAgcmV0dXJuIHRva2VuLmV4cHJlc3Npb247XG4gICAgfVxuXG4gICAgZ2V0TWVtYmVyRm5OYW1lICh0b2tlbikge1xuICAgICAgICByZXR1cm4gdG9rZW4uZXhwcmVzc2lvbi5uYW1lLnRleHQ7XG4gICAgfVxuXG4gICAgZ2V0S2V5VmFsdWUgKHByb3ApIHtcbiAgICAgICAgY29uc3QgeyBuYW1lLCBpbml0aWFsaXplciB9ID0gcHJvcDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2V5OiAgIG5hbWUudGV4dCxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLmdldFN0cmluZ1ZhbHVlKGluaXRpYWxpemVyKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXRGaXhlZFN0YXJ0T2Zmc2V0IChzdGFydCkge1xuICAgICAgICBsZXQgZml4ZWRTdGFydE9mZnNldCA9IHN0YXJ0O1xuXG4gICAgICAgIHdoaWxlICgvXFxzLy50ZXN0KHRoaXMuY29kZVdpdGhvdXRDb21tZW50c1tmaXhlZFN0YXJ0T2Zmc2V0XSkpXG4gICAgICAgICAgICArK2ZpeGVkU3RhcnRPZmZzZXQ7XG5cbiAgICAgICAgcmV0dXJuIGZpeGVkU3RhcnRPZmZzZXQ7XG4gICAgfVxuXG4gICAgZ2V0TG9jYXRpb25CeU9mZnNldHMgKHN0YXJ0LCBlbmQpIHtcbiAgICAgICAgY29uc3QgZml4ZWRTdGFydCA9IHRoaXMuZ2V0Rml4ZWRTdGFydE9mZnNldChzdGFydCk7XG4gICAgICAgIGNvbnN0IGNvZGVBcnIgICAgPSB0aGlzLmNvZGVBcnI7XG4gICAgICAgIGNvbnN0IGxvYyAgICAgICAgPSB7IHN0YXJ0OiBudWxsLCBlbmQ6IG51bGwgfTtcblxuICAgICAgICBsZXQgbGluZSAgICAgPSBjb2RlQXJyWzBdO1xuICAgICAgICBsZXQgc3RhcnRUbXAgPSBmaXhlZFN0YXJ0O1xuICAgICAgICBsZXQgZW5kVG1wICAgPSBlbmQ7XG5cbiAgICAgICAgZm9yIChsZXQgbGluZU51bWJlciA9IDE7IGxpbmVOdW1iZXIgPD0gY29kZUFyci5sZW5ndGg7ICsrbGluZU51bWJlciwgbGluZSA9IGNvZGVBcnJbbGluZU51bWJlciAtIDFdKSB7XG4gICAgICAgICAgICBzdGFydFRtcCAtPSBsaW5lLmxlbmd0aCArIDE7XG4gICAgICAgICAgICBlbmRUbXAgLT0gbGluZS5sZW5ndGggKyAxO1xuXG4gICAgICAgICAgICBpZiAoc3RhcnRUbXAgPCAwICYmICFsb2Muc3RhcnQpXG4gICAgICAgICAgICAgICAgbG9jLnN0YXJ0ID0geyBsaW5lOiBsaW5lTnVtYmVyLCBjb2x1bW46IGxpbmUubGVuZ3RoICsgc3RhcnRUbXAgKyAxIH07XG5cbiAgICAgICAgICAgIGlmIChlbmRUbXAgPD0gMCB8fCBsaW5lTnVtYmVyID09PSBjb2RlQXJyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICBsb2MuZW5kID0geyBsaW5lOiBsaW5lTnVtYmVyLCBjb2x1bW46IGxpbmUubGVuZ3RoICsgZW5kVG1wICsgMSB9O1xuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyBsb2MsIHN0YXJ0OiBmaXhlZFN0YXJ0LCBlbmQgfTtcbiAgICB9XG5cbiAgICBnZXRSVmFsdWUgKHRva2VuKSB7XG4gICAgICAgIHJldHVybiB0b2tlbi5kZWNsYXJhdGlvbkxpc3QuZGVjbGFyYXRpb25zWzBdLmluaXRpYWxpemVyO1xuICAgIH1cblxuICAgIGdldFN0cmluZ1ZhbHVlICh0b2tlbikge1xuICAgICAgICBjb25zdCBzdHJpbmdUeXBlcyA9IFt0aGlzLnRva2VuVHlwZS5TdHJpbmdMaXRlcmFsLCB0aGlzLnRva2VuVHlwZS5UZW1wbGF0ZUV4cHJlc3Npb25dO1xuXG4gICAgICAgIGlmIChzdHJpbmdUeXBlcy5pbmRleE9mKHRva2VuLmtpbmQpID4gLTEgfHwgdG9rZW4udGV4dCAmJiB0b2tlbi5raW5kICE9PSB0aGlzLnRva2VuVHlwZS5OdW1lcmljTGl0ZXJhbClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEZuQXJnKHRva2VuKTtcblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpc0FzeW5jRm4gKHRva2VuKSB7XG4gICAgICAgIGNvbnN0IGlzR2VuZXJhdG9yRm4gPSAhIXRva2VuLmFzdGVyaXNrVG9rZW47XG4gICAgICAgIGNvbnN0IGlzQXN5bmNGbiAgICAgPSB0b2tlbi5tb2RpZmllcnMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLm1vZGlmaWVycy5zb21lKG1vZGlmaWVyID0+IG1vZGlmaWVyLmtpbmQgPT09IHRoaXMudG9rZW5UeXBlLkFzeW5jS2V5d29yZCk7XG5cbiAgICAgICAgcmV0dXJuIGlzR2VuZXJhdG9yRm4gfHwgaXNBc3luY0ZuO1xuICAgIH1cblxuICAgIGdldEZ1bmN0aW9uQm9keSAodG9rZW4pIHtcbiAgICAgICAgcmV0dXJuIHRva2VuLmJvZHkuc3RhdGVtZW50cztcbiAgICB9XG5cbiAgICBmb3JtYXRGbkRhdGEgKG5hbWUsIHZhbHVlLCB0b2tlbiwgbWV0YSA9IFt7fV0pIHtcbiAgICAgICAgY29uc3QgbG9jID0gdGhpcy5nZXRMb2NhdGlvbkJ5T2Zmc2V0cyh0b2tlbi5wb3MsIHRva2VuLmVuZCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZuTmFtZTogICAgbmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiAgICAgdmFsdWUsXG4gICAgICAgICAgICBsb2M6ICAgICAgIGxvYy5sb2MsXG4gICAgICAgICAgICBzdGFydDogICAgIGxvYy5zdGFydCxcbiAgICAgICAgICAgIGVuZDogICAgICAgbG9jLmVuZCxcbiAgICAgICAgICAgIG1ldGE6ICAgICAgbWVyZ2Uoe30sIC4uLm1ldGEpLFxuICAgICAgICAgICAgaXNTa2lwcGVkOiBUZXN0RmlsZVBhcnNlckJhc2UuaXNTa2lwcGVkKHRva2VuKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBhbmFseXplTWVtYmVyRXhwICh0b2tlbikge1xuICAgICAgICBsZXQgZXhwICAgICAgICAgPSB0b2tlbjtcbiAgICAgICAgY29uc3QgdG9rZW5UeXBlID0gdGhpcy50b2tlblR5cGU7XG4gICAgICAgIGNvbnN0IGNhbGxTdGFjayA9IFtleHBdO1xuXG4gICAgICAgIHdoaWxlIChleHAua2luZCAhPT0gdGhpcy50b2tlblR5cGUuSWRlbnRpZmllcikge1xuICAgICAgICAgICAgZXhwID0gZXhwLmV4cHJlc3Npb24gfHwgZXhwLnRhZztcblxuICAgICAgICAgICAgY2FsbFN0YWNrLnB1c2goZXhwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1ldGEgPSB0aGlzLmdldE1ldGFJbmZvKGNhbGxTdGFjay5zbGljZSgpKTtcblxuICAgICAgICBpZiAoZXhwICYmIHRoaXMuaXNBcGlGbihleHAudGV4dCkpIHtcbiAgICAgICAgICAgIGxldCBwYXJlbnRFeHAgPSBjYWxsU3RhY2sucG9wKCk7XG5cbiAgICAgICAgICAgIHdoaWxlIChwYXJlbnRFeHApIHtcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50RXhwLmtpbmQgPT09IHRva2VuVHlwZS5DYWxsRXhwcmVzc2lvbiAmJiBwYXJlbnRFeHAuZXhwcmVzc2lvbikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjYWxsZWVUeXBlICAgICA9IHBhcmVudEV4cC5leHByZXNzaW9uLmtpbmQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbGxlZU1lbWJlckZuID0gY2FsbGVlVHlwZSA9PT0gdG9rZW5UeXBlLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudEV4cC5leHByZXNzaW9uLm5hbWUudGV4dDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jaGVja0V4cERlZmluZVRhcmdldE5hbWUoY2FsbGVlVHlwZSwgY2FsbGVlTWVtYmVyRm4pKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0Rm5EYXRhKGV4cC50ZXh0LCB0aGlzLmZvcm1hdEZuQXJnKHBhcmVudEV4cC5hcmd1bWVudHNbMF0pLCB0b2tlbiwgbWV0YSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHBhcmVudEV4cC5raW5kID09PSB0b2tlblR5cGUuVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uICYmIHBhcmVudEV4cC50YWcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFnVHlwZSAgICAgPSBwYXJlbnRFeHAudGFnLmtpbmQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhZ01lbWJlckZuID0gdGFnVHlwZSA9PT0gdG9rZW5UeXBlLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbiAmJiBwYXJlbnRFeHAudGFnLm5hbWUudGV4dDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jaGVja0V4cERlZmluZVRhcmdldE5hbWUodGFnVHlwZSwgdGFnTWVtYmVyRm4pKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0Rm5EYXRhKGV4cC50ZXh0LCB0aGlzLmZvcm1hdEZuQXJnKHBhcmVudEV4cCksIHRva2VuLCBtZXRhKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwYXJlbnRFeHAgPSBjYWxsU3RhY2sucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBmb3JtYXRGbkFyZyAoYXJnKSB7XG4gICAgICAgIGlmIChhcmcudGVtcGxhdGVTcGFucylcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldENvbXB1dGVkTmFtZVN0cmluZyh7IHBvczogYXJnLnBvcywgZW5kOiBhcmcuZW5kIH0pO1xuXG4gICAgICAgIGlmIChhcmcuaGVhZClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldENvbXB1dGVkTmFtZVN0cmluZyh7IHBvczogYXJnLnRlbXBsYXRlLnBvcywgZW5kOiBhcmcudGVtcGxhdGUuZW5kIH0pO1xuXG4gICAgICAgIGlmIChhcmcudGVtcGxhdGUpXG4gICAgICAgICAgICByZXR1cm4gYXJnLnRlbXBsYXRlLnRleHQgfHwgdGhpcy5nZXRDb21wdXRlZE5hbWVTdHJpbmcoeyBwb3M6IGFyZy50ZW1wbGF0ZS5wb3MsIGVuZDogYXJnLnRlbXBsYXRlLmVuZCB9KTtcblxuICAgICAgICBpZiAoYXJnLmtpbmQgPT09IHRoaXMudG9rZW5UeXBlLklkZW50aWZpZXIpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDb21wdXRlZE5hbWVTdHJpbmcoeyBwb3M6IGFyZy5wb3MsIGVuZDogYXJnLmVuZCB9KTtcblxuICAgICAgICBpZiAoYXJnLnRleHQgJiYgYXJnLmtpbmQgIT09IHRoaXMudG9rZW5UeXBlLk51bWVyaWNMaXRlcmFsKVxuICAgICAgICAgICAgcmV0dXJuIGFyZy50ZXh0O1xuXG4gICAgICAgIGlmIChhcmcua2luZCA9PT0gdGhpcy50b2tlblR5cGUuVHlwZUFzc2VydGlvbkV4cHJlc3Npb24pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRGbkFyZyhhcmcuZXhwcmVzc2lvbik7XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0Rm5DYWxsICh0b2tlbikge1xuICAgICAgICBpZiAodGhpcy5pc0FwaUZuKHRva2VuLmV4cHJlc3Npb24udGV4dCkpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRGbkRhdGEodG9rZW4uZXhwcmVzc2lvbi50ZXh0LCB0aGlzLmZvcm1hdEZuQXJnKHRva2VuLmFyZ3VtZW50c1swXSksIHRva2VuKTtcblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBnZXRUYWdnZWRUZW1wbGF0ZUV4cCAodG9rZW4pIHtcbiAgICAgICAgaWYgKHRoaXMuaXNBcGlGbih0b2tlbi50YWcudGV4dCkpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRGbkRhdGEodG9rZW4udGFnLnRleHQsIHRoaXMuZm9ybWF0Rm5BcmcodG9rZW4pLCB0b2tlbik7XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgYW5hbHl6ZUZuQ2FsbCAodG9rZW4pIHtcbiAgICAgICAgY29uc3QgdG9rZW5UeXBlID0gdGhpcy50b2tlblR5cGU7XG5cbiAgICAgICAgaWYgKHRva2VuLmtpbmQgPT09IHRva2VuVHlwZS5Qcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hbmFseXplTWVtYmVyRXhwKHRva2VuKTtcblxuICAgICAgICBpZiAodG9rZW4ua2luZCA9PT0gdG9rZW5UeXBlLkNhbGxFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICBjb25zdCBleHBLaW5kID0gdG9rZW4uZXhwcmVzc2lvbi5raW5kO1xuXG4gICAgICAgICAgICBpZiAoZXhwS2luZCA9PT0gdG9rZW5UeXBlLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbiB8fCBleHBLaW5kID09PSB0b2tlblR5cGUuQ2FsbEV4cHJlc3Npb24pXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYW5hbHl6ZU1lbWJlckV4cCh0b2tlbik7XG5cbiAgICAgICAgICAgIGlmIChleHBLaW5kID09PSB0b2tlblR5cGUuUGFyZW50aGVzaXplZEV4cHJlc3Npb24pXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYW5hbHl6ZUZuQ2FsbCh0b2tlbi5leHByZXNzaW9uLmV4cHJlc3Npb24pO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRGbkNhbGwodG9rZW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRva2VuLmtpbmQgPT09IHRva2VuVHlwZS5GdW5jdGlvbkV4cHJlc3Npb24gfHwgdG9rZW4ua2luZCA9PT0gdG9rZW5UeXBlLkFycm93RnVuY3Rpb24pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb2xsZWN0VGVzdENhZmVDYWxscyh0aGlzLmdldEZ1bmN0aW9uQm9keSh0b2tlbikpO1xuXG4gICAgICAgIGlmICh0b2tlbi5raW5kID09PSB0b2tlblR5cGUuVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICBpZiAodG9rZW4udGFnLmtpbmQgPT09IHRva2VuVHlwZS5Qcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24gfHwgdG9rZW4udGFnLmtpbmQgPT09IHRva2VuVHlwZS5DYWxsRXhwcmVzc2lvbilcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hbmFseXplTWVtYmVyRXhwKHRva2VuKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGFnZ2VkVGVtcGxhdGVFeHAodG9rZW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcGFyc2UgKGNvZGUpIHtcbiAgICAgICAgLy9OT1RFOiBUeXBlU2NyaXB0IGNhbGN1bGF0ZXMgc3RhcnQgcG9zaXRpb24gb2YgYSB0b2tlbiBpbmNvcnJlY3RseVxuICAgICAgICAvL0l0IGRvZXNuJ3QgY29uc2lkZXIgc3BhY2VzIGFuZCBjb21tZW50cyBiZXR3ZWVuIHRoZSBsYXN0IHRva2VuIGFuZCB0aGUgY3VycmVudCB0b2tlbi5cbiAgICAgICAgLy9TbyB3ZSByZXBsYWNlIGNvbW1lbnRzIHdpdGggc3BhY2Ugc3ltYm9scyB0byBjYWxjdWxhdGUgZml4ZWQgcG9zaXRpb24uXG4gICAgICAgIC8vV2UganVzdCBpbmNyZW1lbnQgcG9zaXRpb24gdW50aWwgd2UgbWVldCBub24gd2hpdGVzcGFjZSBjaGFyYWN0ZXJzXG4gICAgICAgIHRoaXMuY29kZUFyciAgICAgICAgICAgICA9IGNvZGUuc3BsaXQoJ1xcbicpO1xuICAgICAgICB0aGlzLmNvZGVXaXRob3V0Q29tbWVudHMgPSByZXBsYWNlQ29tbWVudHMoY29kZSk7XG5cbiAgICAgICAgY29uc3QgdHNDb25maWcgICA9IG5ldyBUeXBlc2NyaXB0Q29uZmlndXJhdGlvbigpO1xuICAgICAgICBjb25zdCBzb3VyY2VGaWxlID0gdHMuY3JlYXRlU291cmNlRmlsZSgnJywgY29kZSwgdHNDb25maWcuZ2V0T3B0aW9ucygpLCB0cnVlKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5hbmFseXplKHNvdXJjZUZpbGUuc3RhdGVtZW50cyk7XG4gICAgfVxufVxuXG5jb25zdCBwYXJzZXIgPSBuZXcgVHlwZVNjcmlwdFRlc3RGaWxlUGFyc2VyKCk7XG5cbmV4cG9ydCBjb25zdCBnZXRUeXBlU2NyaXB0VGVzdExpc3QgICAgICAgICA9IHBhcnNlci5nZXRUZXN0TGlzdC5iaW5kKHBhcnNlcik7XG5leHBvcnQgY29uc3QgZ2V0VHlwZVNjcmlwdFRlc3RMaXN0RnJvbUNvZGUgPSBwYXJzZXIuZ2V0VGVzdExpc3RGcm9tQ29kZS5iaW5kKHBhcnNlcik7XG4iXX0=
|