velocious 1.0.666 → 1.0.668
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/README.md +40 -11
- package/build/background-jobs/adapter-client.js +22 -0
- package/build/background-jobs/adapter.js +15 -0
- package/build/background-jobs/client.js +147 -1
- package/build/background-jobs/job-semantics.js +30 -0
- package/build/background-jobs/job.js +26 -1
- package/build/background-jobs/local-adapter.js +36 -8
- package/build/background-jobs/local-store.js +410 -39
- package/build/background-jobs/main.js +69 -2
- package/build/background-jobs/platform-job.js +26 -1
- package/build/background-jobs/runtime.js +58 -0
- package/build/background-jobs/store.js +374 -6
- package/build/background-jobs/types.js +27 -2
- package/build/background-jobs/web/controller.js +1 -0
- package/build/configuration.js +30 -6
- package/build/database/drivers/mssql/column.js +2 -2
- package/build/database/drivers/mssql/table.js +19 -5
- package/build/database/pool/async-tracked-multi-connection.js +2 -1
- package/build/database/query/alter-table-base.js +8 -1
- package/build/database/record/attachments/store.js +2 -2
- package/build/environment-handlers/node/cli/commands/test/timing-manifest/merge.js +2 -48
- package/build/environment-handlers/node/cli/commands/test.js +17 -69
- package/build/frontend-model-controller.js +22 -2
- package/build/frontend-models/websocket-channel.js +18 -0
- package/build/http-server/client/websocket-session.js +41 -4
- package/build/http-server/websocket-channel.js +14 -0
- package/build/http-server/websocket-event-log-store.js +85 -12
- package/build/http-server/websocket-events-host.js +17 -7
- package/build/src/background-jobs/adapter-client.d.ts +17 -0
- package/build/src/background-jobs/adapter-client.d.ts.map +1 -1
- package/build/src/background-jobs/adapter-client.js +19 -1
- package/build/src/background-jobs/adapter.d.ts +15 -0
- package/build/src/background-jobs/adapter.d.ts.map +1 -1
- package/build/src/background-jobs/adapter.js +14 -1
- package/build/src/background-jobs/client.d.ts +17 -0
- package/build/src/background-jobs/client.d.ts.map +1 -1
- package/build/src/background-jobs/client.js +129 -1
- package/build/src/background-jobs/job-semantics.d.ts +18 -0
- package/build/src/background-jobs/job-semantics.d.ts.map +1 -1
- package/build/src/background-jobs/job-semantics.js +28 -1
- package/build/src/background-jobs/job.d.ts +15 -0
- package/build/src/background-jobs/job.d.ts.map +1 -1
- package/build/src/background-jobs/job.js +21 -2
- package/build/src/background-jobs/local-adapter.d.ts +23 -8
- package/build/src/background-jobs/local-adapter.d.ts.map +1 -1
- package/build/src/background-jobs/local-adapter.js +35 -9
- package/build/src/background-jobs/local-store.d.ts +120 -5
- package/build/src/background-jobs/local-store.d.ts.map +1 -1
- package/build/src/background-jobs/local-store.js +366 -40
- package/build/src/background-jobs/main.d.ts +24 -2
- package/build/src/background-jobs/main.d.ts.map +1 -1
- package/build/src/background-jobs/main.js +68 -3
- package/build/src/background-jobs/platform-job.d.ts +15 -0
- package/build/src/background-jobs/platform-job.d.ts.map +1 -1
- package/build/src/background-jobs/platform-job.js +19 -2
- package/build/src/background-jobs/runtime.d.ts +39 -0
- package/build/src/background-jobs/runtime.d.ts.map +1 -1
- package/build/src/background-jobs/runtime.js +49 -1
- package/build/src/background-jobs/store.d.ts +100 -1
- package/build/src/background-jobs/store.d.ts.map +1 -1
- package/build/src/background-jobs/store.js +334 -8
- package/build/src/background-jobs/types.d.ts +97 -4
- package/build/src/background-jobs/types.d.ts.map +1 -1
- package/build/src/background-jobs/types.js +28 -3
- package/build/src/background-jobs/web/controller.d.ts.map +1 -1
- package/build/src/background-jobs/web/controller.js +2 -1
- package/build/src/configuration.d.ts +18 -1
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +28 -6
- package/build/src/database/drivers/mssql/column.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/column.js +2 -2
- package/build/src/database/drivers/mssql/table.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/table.js +19 -5
- package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
- package/build/src/database/pool/async-tracked-multi-connection.js +3 -2
- package/build/src/database/query/alter-table-base.d.ts.map +1 -1
- package/build/src/database/query/alter-table-base.js +9 -2
- package/build/src/database/record/attachments/store.js +3 -3
- package/build/src/environment-handlers/node/cli/commands/test/timing-manifest/merge.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/test/timing-manifest/merge.js +3 -47
- package/build/src/environment-handlers/node/cli/commands/test.d.ts +2 -28
- package/build/src/environment-handlers/node/cli/commands/test.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/test.js +10 -61
- package/build/src/frontend-model-controller.d.ts.map +1 -1
- package/build/src/frontend-model-controller.js +18 -3
- package/build/src/frontend-models/websocket-channel.d.ts +9 -0
- package/build/src/frontend-models/websocket-channel.d.ts.map +1 -1
- package/build/src/frontend-models/websocket-channel.js +16 -1
- package/build/src/http-server/client/websocket-session.d.ts +25 -2
- package/build/src/http-server/client/websocket-session.d.ts.map +1 -1
- package/build/src/http-server/client/websocket-session.js +40 -5
- package/build/src/http-server/websocket-channel.d.ts +11 -0
- package/build/src/http-server/websocket-channel.d.ts.map +1 -1
- package/build/src/http-server/websocket-channel.js +14 -1
- package/build/src/http-server/websocket-event-log-store.d.ts +60 -41
- package/build/src/http-server/websocket-event-log-store.d.ts.map +1 -1
- package/build/src/http-server/websocket-event-log-store.js +79 -12
- package/build/src/http-server/websocket-events-host.d.ts +10 -3
- package/build/src/http-server/websocket-events-host.d.ts.map +1 -1
- package/build/src/http-server/websocket-events-host.js +17 -8
- package/build/src/testing/test-files-finder.d.ts +17 -117
- package/build/src/testing/test-files-finder.d.ts.map +1 -1
- package/build/src/testing/test-files-finder.js +29 -294
- package/build/src/testing/test-filter-parser.d.ts +32 -22
- package/build/src/testing/test-filter-parser.d.ts.map +1 -1
- package/build/src/testing/test-filter-parser.js +25 -217
- package/build/src/testing/test-profile-activity.d.ts +1 -6
- package/build/src/testing/test-profile-activity.d.ts.map +1 -1
- package/build/src/testing/test-profile-activity.js +2 -12
- package/build/src/testing/test-profile-output.d.ts +1 -40
- package/build/src/testing/test-profile-output.d.ts.map +1 -1
- package/build/src/testing/test-profile-output.js +2 -217
- package/build/src/testing/test-profiler.d.ts +15 -659
- package/build/src/testing/test-profiler.d.ts.map +1 -1
- package/build/src/testing/test-profiler.js +35 -833
- package/build/src/testing/test-runner.d.ts +10 -1
- package/build/src/testing/test-runner.d.ts.map +1 -1
- package/build/src/testing/test-runner.js +26 -4
- package/build/src/testing/test-suite-splitter.d.ts +1 -128
- package/build/src/testing/test-suite-splitter.d.ts.map +1 -1
- package/build/src/testing/test-suite-splitter.js +2 -259
- package/build/src/testing/timing-manifest.d.ts +5 -93
- package/build/src/testing/timing-manifest.d.ts.map +1 -1
- package/build/src/testing/timing-manifest.js +4 -283
- package/build/src/testing/velocious-attempt-executor.d.ts.map +1 -1
- package/build/src/testing/velocious-attempt-executor.js +8 -2
- package/build/testing/test-files-finder.js +32 -343
- package/build/testing/test-filter-parser.js +29 -248
- package/build/testing/test-profile-activity.js +1 -12
- package/build/testing/test-profile-output.js +8 -253
- package/build/testing/test-profiler.js +38 -895
- package/build/testing/test-runner.js +33 -9
- package/build/testing/test-suite-splitter.js +1 -301
- package/build/testing/timing-manifest.js +10 -344
- package/build/testing/velocious-attempt-executor.js +7 -1
- package/package.json +3 -3
- package/scripts/test-browser.js +30 -6
- package/scripts/verify-docker-dev-environment.js +13 -1
- package/src/background-jobs/adapter-client.js +22 -0
- package/src/background-jobs/adapter.js +15 -0
- package/src/background-jobs/client.js +147 -1
- package/src/background-jobs/job-semantics.js +30 -0
- package/src/background-jobs/job.js +26 -1
- package/src/background-jobs/local-adapter.js +36 -8
- package/src/background-jobs/local-store.js +410 -39
- package/src/background-jobs/main.js +69 -2
- package/src/background-jobs/platform-job.js +26 -1
- package/src/background-jobs/runtime.js +58 -0
- package/src/background-jobs/store.js +374 -6
- package/src/background-jobs/types.js +27 -2
- package/src/background-jobs/web/controller.js +1 -0
- package/src/configuration.js +30 -6
- package/src/database/drivers/mssql/column.js +2 -2
- package/src/database/drivers/mssql/table.js +19 -5
- package/src/database/pool/async-tracked-multi-connection.js +2 -1
- package/src/database/query/alter-table-base.js +8 -1
- package/src/database/record/attachments/store.js +2 -2
- package/src/environment-handlers/node/cli/commands/test/timing-manifest/merge.js +2 -48
- package/src/environment-handlers/node/cli/commands/test.js +17 -69
- package/src/frontend-model-controller.js +22 -2
- package/src/frontend-models/websocket-channel.js +18 -0
- package/src/http-server/client/websocket-session.js +41 -4
- package/src/http-server/websocket-channel.js +14 -0
- package/src/http-server/websocket-event-log-store.js +85 -12
- package/src/http-server/websocket-events-host.js +17 -7
- package/src/testing/test-files-finder.js +32 -343
- package/src/testing/test-filter-parser.js +29 -248
- package/src/testing/test-profile-activity.js +1 -12
- package/src/testing/test-profile-output.js +8 -253
- package/src/testing/test-profiler.js +38 -895
- package/src/testing/test-runner.js +33 -9
- package/src/testing/test-suite-splitter.js +1 -301
- package/src/testing/timing-manifest.js +10 -344
- package/src/testing/velocious-attempt-executor.js +7 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
import BaseCommand from "../../../../../../cli/base-command.js";
|
|
3
|
+
import { parseTimingManifestMergeArguments as parsePackageTimingManifestMergeArguments } from "@velocious/testing/node";
|
|
3
4
|
import fs from "node:fs/promises";
|
|
4
|
-
import path from "node:path";
|
|
5
5
|
import { writeTimingManifest } from "../../../../../../testing/test-profile-output.js";
|
|
6
6
|
import { mergeTestProfileTimingManifests } from "../../../../../../testing/timing-manifest.js";
|
|
7
7
|
/**
|
|
@@ -41,21 +41,6 @@ export default class TestTimingManifestMerge extends BaseCommand {
|
|
|
41
41
|
return timingManifest;
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
/**
|
|
45
|
-
* Recognizes one output option spelling.
|
|
46
|
-
* @param {string} argument - Current argument.
|
|
47
|
-
* @param {string | undefined} nextArgument - Following argument.
|
|
48
|
-
* @returns {{matched: boolean, skipNext: boolean, value: string | undefined}} - Parsed output option.
|
|
49
|
-
*/
|
|
50
|
-
function timingManifestOutputArgument(argument, nextArgument) {
|
|
51
|
-
if (argument === "--output") {
|
|
52
|
-
return { matched: true, skipNext: true, value: nextArgument };
|
|
53
|
-
}
|
|
54
|
-
if (argument.startsWith("--output=")) {
|
|
55
|
-
return { matched: true, skipNext: false, value: argument.slice("--output=".length) };
|
|
56
|
-
}
|
|
57
|
-
return { matched: false, skipNext: false, value: undefined };
|
|
58
|
-
}
|
|
59
44
|
/**
|
|
60
45
|
* Parses strict merge arguments and resolves their paths.
|
|
61
46
|
* @param {string[]} processArgs - Raw CLI arguments, including command name.
|
|
@@ -63,35 +48,6 @@ function timingManifestOutputArgument(argument, nextArgument) {
|
|
|
63
48
|
* @returns {TimingManifestMergeArguments} - Validated resolved paths.
|
|
64
49
|
*/
|
|
65
50
|
export function parseTimingManifestMergeArguments(processArgs, cwd) {
|
|
66
|
-
|
|
67
|
-
const inputPaths = [];
|
|
68
|
-
let outputPath;
|
|
69
|
-
for (let index = 1; index < processArgs.length; index++) {
|
|
70
|
-
const argument = processArgs[index];
|
|
71
|
-
const outputArgument = timingManifestOutputArgument(argument, processArgs[index + 1]);
|
|
72
|
-
if (outputArgument.matched) {
|
|
73
|
-
if (!outputArgument.value || outputArgument.value.startsWith("-"))
|
|
74
|
-
throw new Error("Missing value for --output");
|
|
75
|
-
if (outputPath)
|
|
76
|
-
throw new Error("--output may only be provided once");
|
|
77
|
-
outputPath = path.resolve(cwd, outputArgument.value);
|
|
78
|
-
if (outputArgument.skipNext)
|
|
79
|
-
index++;
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
if (argument.startsWith("-"))
|
|
83
|
-
throw new Error(`Unknown argument for ${commandName}: ${argument}`);
|
|
84
|
-
inputPaths.push(path.resolve(cwd, argument));
|
|
85
|
-
}
|
|
86
|
-
if (!outputPath)
|
|
87
|
-
throw new Error("--output is required");
|
|
88
|
-
if (inputPaths.length === 0)
|
|
89
|
-
throw new Error("At least one rich test profile input is required");
|
|
90
|
-
const uniqueInputPaths = new Set(inputPaths);
|
|
91
|
-
if (uniqueInputPaths.size !== inputPaths.length)
|
|
92
|
-
throw new Error("Each rich test profile input must be provided once");
|
|
93
|
-
if (uniqueInputPaths.has(outputPath))
|
|
94
|
-
throw new Error("Timing manifest output must not overwrite an input profile");
|
|
95
|
-
return { inputPaths, outputPath };
|
|
51
|
+
return parsePackageTimingManifestMergeArguments(processArgs.slice(1), { cwd });
|
|
96
52
|
}
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvZW52aXJvbm1lbnQtaGFuZGxlcnMvbm9kZS9jbGkvY29tbWFuZHMvdGVzdC90aW1pbmctbWFuaWZlc3QvbWVyZ2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sV0FBVyxNQUFNLHVDQUF1QyxDQUFBO0FBQy9ELE9BQU8sRUFBRSxpQ0FBaUMsSUFBSSx3Q0FBd0MsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3ZILE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFBO0FBQ3RGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFBO0FBRTlGOzs7O0dBSUc7QUFFSCwyREFBMkQ7QUFDM0QsTUFBTSxDQUFDLE9BQU8sT0FBTyx1QkFBd0IsU0FBUSxXQUFXO0lBQzlEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxFQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUMsR0FBRyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQTtRQUN6RyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUE7UUFFakIsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNuQyxJQUFJLE9BQU8sQ0FBQTtZQUVYLElBQUksQ0FBQztnQkFDSCxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUNoRCxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxTQUFTLEVBQUUsRUFBRSxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFBO1lBQzlFLENBQUM7WUFFRCxJQUFJLE9BQU8sQ0FBQTtZQUVYLElBQUksQ0FBQztnQkFDSCxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUMvQixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxTQUFTLEVBQUUsRUFBRSxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFBO1lBQy9FLENBQUM7WUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFBO1FBQzNDLENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRywrQkFBK0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUU5RCxNQUFNLG1CQUFtQixDQUFDLEVBQUMsVUFBVSxFQUFFLGNBQWMsRUFBQyxDQUFDLENBQUE7UUFDdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLFVBQVUsQ0FBQyxNQUFNLDZCQUE2QixVQUFVLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLFNBQVMsQ0FBQyxDQUFBO1FBRS9ILE9BQU8sY0FBYyxDQUFBO0lBQ3ZCLENBQUM7Q0FDRjtBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGlDQUFpQyxDQUFDLFdBQVcsRUFBRSxHQUFHO0lBQ2hFLE9BQU8sd0NBQXdDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxDQUFDLENBQUE7QUFDOUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQmFzZUNvbW1hbmQgZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL2NsaS9iYXNlLWNvbW1hbmQuanNcIlxuaW1wb3J0IHsgcGFyc2VUaW1pbmdNYW5pZmVzdE1lcmdlQXJndW1lbnRzIGFzIHBhcnNlUGFja2FnZVRpbWluZ01hbmlmZXN0TWVyZ2VBcmd1bWVudHMgfSBmcm9tIFwiQHZlbG9jaW91cy90ZXN0aW5nL25vZGVcIlxuaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCJcbmltcG9ydCB7IHdyaXRlVGltaW5nTWFuaWZlc3QgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vdGVzdGluZy90ZXN0LXByb2ZpbGUtb3V0cHV0LmpzXCJcbmltcG9ydCB7IG1lcmdlVGVzdFByb2ZpbGVUaW1pbmdNYW5pZmVzdHMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vdGVzdGluZy90aW1pbmctbWFuaWZlc3QuanNcIlxuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IFRpbWluZ01hbmlmZXN0TWVyZ2VBcmd1bWVudHNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IGlucHV0UGF0aHMgLSBSaWNoIHByb2ZpbGUgaW5wdXQgcGF0aHMuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gb3V0cHV0UGF0aCAtIFBsYWluIHRpbWluZyBtYW5pZmVzdCBvdXRwdXQgcGF0aC5cbiAqL1xuXG4vKiogTm9kZSBpbXBsZW1lbnRhdGlvbiBmb3IgdGltaW5nLW1hbmlmZXN0IGFnZ3JlZ2F0aW9uLiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVzdFRpbWluZ01hbmlmZXN0TWVyZ2UgZXh0ZW5kcyBCYXNlQ29tbWFuZCB7XG4gIC8qKlxuICAgKiBSdW5zIGV4ZWN1dGUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIG51bWJlcj4+fSAtIENvbXBsZXRlIG1lcmdlZCB0aW1pbmcgbWFuaWZlc3QuXG4gICAqL1xuICBhc3luYyBleGVjdXRlKCkge1xuICAgIGNvbnN0IHtpbnB1dFBhdGhzLCBvdXRwdXRQYXRofSA9IHBhcnNlVGltaW5nTWFuaWZlc3RNZXJnZUFyZ3VtZW50cyh0aGlzLnByb2Nlc3NBcmdzIHx8IFtdLCBwcm9jZXNzLmN3ZCgpKVxuICAgIGNvbnN0IGlucHV0cyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGlucHV0UGF0aCBvZiBpbnB1dFBhdGhzKSB7XG4gICAgICBsZXQgY29udGVudFxuXG4gICAgICB0cnkge1xuICAgICAgICBjb250ZW50ID0gYXdhaXQgZnMucmVhZEZpbGUoaW5wdXRQYXRoLCBcInV0ZjhcIilcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHJlYWQgdGVzdCBwcm9maWxlOiAke2lucHV0UGF0aH1gLCB7Y2F1c2U6IGVycm9yfSlcbiAgICAgIH1cblxuICAgICAgbGV0IHByb2ZpbGVcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcHJvZmlsZSA9IEpTT04ucGFyc2UoY29udGVudClcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHBhcnNlIHRlc3QgcHJvZmlsZTogJHtpbnB1dFBhdGh9YCwge2NhdXNlOiBlcnJvcn0pXG4gICAgICB9XG5cbiAgICAgIGlucHV0cy5wdXNoKHtwcm9maWxlLCBzb3VyY2U6IGlucHV0UGF0aH0pXG4gICAgfVxuXG4gICAgY29uc3QgdGltaW5nTWFuaWZlc3QgPSBtZXJnZVRlc3RQcm9maWxlVGltaW5nTWFuaWZlc3RzKGlucHV0cylcblxuICAgIGF3YWl0IHdyaXRlVGltaW5nTWFuaWZlc3Qoe291dHB1dFBhdGgsIHRpbWluZ01hbmlmZXN0fSlcbiAgICBjb25zb2xlLmxvZyhgTWVyZ2VkICR7aW5wdXRQYXRocy5sZW5ndGh9IHRlc3QgcHJvZmlsZSBzaGFyZHMgaW50byAke291dHB1dFBhdGh9ICgke09iamVjdC5rZXlzKHRpbWluZ01hbmlmZXN0KS5sZW5ndGh9IGZpbGVzKWApXG5cbiAgICByZXR1cm4gdGltaW5nTWFuaWZlc3RcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlcyBzdHJpY3QgbWVyZ2UgYXJndW1lbnRzIGFuZCByZXNvbHZlcyB0aGVpciBwYXRocy5cbiAqIEBwYXJhbSB7c3RyaW5nW119IHByb2Nlc3NBcmdzIC0gUmF3IENMSSBhcmd1bWVudHMsIGluY2x1ZGluZyBjb21tYW5kIG5hbWUuXG4gKiBAcGFyYW0ge3N0cmluZ30gY3dkIC0gQ29tbWFuZCB3b3JraW5nIGRpcmVjdG9yeS5cbiAqIEByZXR1cm5zIHtUaW1pbmdNYW5pZmVzdE1lcmdlQXJndW1lbnRzfSAtIFZhbGlkYXRlZCByZXNvbHZlZCBwYXRocy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVGltaW5nTWFuaWZlc3RNZXJnZUFyZ3VtZW50cyhwcm9jZXNzQXJncywgY3dkKSB7XG4gIHJldHVybiBwYXJzZVBhY2thZ2VUaW1pbmdNYW5pZmVzdE1lcmdlQXJndW1lbnRzKHByb2Nlc3NBcmdzLnNsaWNlKDEpLCB7Y3dkfSlcbn1cbiJdfQ==
|
|
@@ -1,35 +1,9 @@
|
|
|
1
1
|
import BaseCommand from "../../../../cli/base-command.js";
|
|
2
|
+
import { loadTimingManifest, resolveTestProfileOptions } from "../../../../testing/test-profile-output.js";
|
|
2
3
|
export default class VelociousCliCommandsTest extends BaseCommand {
|
|
3
4
|
execute(): Promise<void>;
|
|
4
5
|
}
|
|
5
|
-
|
|
6
|
-
* Resolves and validates profiling paths before test discovery starts.
|
|
7
|
-
* @param {object} args - Raw profiling options.
|
|
8
|
-
* @param {string} args.cwd - Command working directory.
|
|
9
|
-
* @param {boolean} args.profile - Whether console profiling was requested.
|
|
10
|
-
* @param {string} [args.profileJsonPath] - Rich profile output path.
|
|
11
|
-
* @param {string} [args.timingManifestPath] - Timing manifest input path.
|
|
12
|
-
* @param {string} [args.timingManifestOutputPath] - Timing manifest output path.
|
|
13
|
-
* @returns {{profile: boolean, profileJsonPath: string | undefined, timingManifestPath: string | undefined, timingManifestOutputPath: string | undefined}} - Resolved profiling options.
|
|
14
|
-
*/
|
|
15
|
-
export declare function resolveTestProfileOptions({ cwd, profile, profileJsonPath, timingManifestPath, timingManifestOutputPath }: {
|
|
16
|
-
cwd: string;
|
|
17
|
-
profile: boolean;
|
|
18
|
-
profileJsonPath?: string;
|
|
19
|
-
timingManifestPath?: string;
|
|
20
|
-
timingManifestOutputPath?: string;
|
|
21
|
-
}): {
|
|
22
|
-
profile: boolean;
|
|
23
|
-
profileJsonPath: string | undefined;
|
|
24
|
-
timingManifestPath: string | undefined;
|
|
25
|
-
timingManifestOutputPath: string | undefined;
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* Loads and validates an explicitly supplied plain JSON timing manifest.
|
|
29
|
-
* @param {string | undefined} timingManifestPath - Timing manifest path.
|
|
30
|
-
* @returns {Promise<Record<string, number> | undefined>} - Canonical manifest, or undefined when not requested.
|
|
31
|
-
*/
|
|
32
|
-
export declare function loadTimingManifest(timingManifestPath: string | undefined): Promise<Record<string, number> | undefined>;
|
|
6
|
+
export { loadTimingManifest, resolveTestProfileOptions };
|
|
33
7
|
/**
|
|
34
8
|
* Resolves how many slowest tests to report from the `VELOCIOUS_SLOW_TEST_COUNT`
|
|
35
9
|
* env value: defaults to 10 when unset; 0 (or an unparseable value) disables the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../../../src/environment-handlers/node/cli/commands/test.js"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../../../src/environment-handlers/node/cli/commands/test.js"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,iCAAiC,CAAA;AAKzD,OAAO,EAEL,kBAAkB,EAClB,yBAAyB,EAE1B,MAAM,4CAA4C,CAAA;AAUnD,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,WAAW;IACzD,OAAO,kBAiQZ;CACF;AAED,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,CAAA;AAExD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAHrC,MAAM,GAAG,SAG4B,GAFnC,MAAM,CAMlB"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
import BaseCommand from "../../../../cli/base-command.js";
|
|
3
|
-
import fs from "fs/promises";
|
|
4
3
|
import path from "node:path";
|
|
5
4
|
import picocolors from "picocolors";
|
|
6
5
|
import TestFilesFinder from "../../../../testing/test-files-finder.js";
|
|
7
6
|
import TestProfiler from "../../../../testing/test-profiler.js";
|
|
8
|
-
import { formatTestProfileSummary, writeTestProfileOutputs } from "../../../../testing/test-profile-output.js";
|
|
7
|
+
import { formatTestProfileSummary, loadTimingManifest, resolveTestProfileOptions, writeTestProfileOutputs } from "../../../../testing/test-profile-output.js";
|
|
9
8
|
import TestRunner from "../../../../testing/test-runner.js";
|
|
10
9
|
import TestSuiteSplitter from "../../../../testing/test-suite-splitter.js";
|
|
11
10
|
import { normalizeExamplePatterns, parseFilters } from "../../../../testing/test-filter-parser.js";
|
|
12
|
-
import { canonicalTimingManifestPath, timingManifestFileSetHash
|
|
11
|
+
import { canonicalTimingManifestPath, timingManifestFileSetHash } from "../../../../testing/timing-manifest.js";
|
|
13
12
|
import { prepareSourcePeerPackage } from "../../source-peer-package.js";
|
|
14
13
|
export default class VelociousCliCommandsTest extends BaseCommand {
|
|
15
14
|
async execute() {
|
|
@@ -27,7 +26,7 @@ export default class VelociousCliCommandsTest extends BaseCommand {
|
|
|
27
26
|
directories.push(`${this.directory()}/tests`);
|
|
28
27
|
directories.push(`${this.directory()}/spec`);
|
|
29
28
|
}
|
|
30
|
-
const { includeTags, excludeTags, examplePatterns, filteredProcessArgs, groups, groupNumber, profile, profileJsonPath, timingManifestPath, timingManifestOutputPath } = parseFilters(this.processArgs || []);
|
|
29
|
+
const { includeTags, excludeTags, examplePatterns, filteredProcessArgs, groups, groupNumber, profile, profileJsonPath, retries, setupFiles, timingManifestPath, timingManifestOutputPath, timeoutMs } = parseFilters(this.processArgs || []);
|
|
31
30
|
const profileOptions = resolveTestProfileOptions({
|
|
32
31
|
cwd: process.cwd(),
|
|
33
32
|
profile,
|
|
@@ -50,7 +49,7 @@ export default class VelociousCliCommandsTest extends BaseCommand {
|
|
|
50
49
|
let profileFinalized = false;
|
|
51
50
|
/**
|
|
52
51
|
* Finalizes requested outputs once for every command outcome.
|
|
53
|
-
* @param {
|
|
52
|
+
* @param {import("@velocious/testing/node").TestProfileStatus} status - Run status.
|
|
54
53
|
* @returns {Promise<void>} - Resolves after requested outputs are written.
|
|
55
54
|
*/
|
|
56
55
|
const finalizeProfile = async (status) => {
|
|
@@ -124,7 +123,10 @@ export default class VelociousCliCommandsTest extends BaseCommand {
|
|
|
124
123
|
testFiles,
|
|
125
124
|
lineFilters: testFilesFinder.getLineFiltersByFile(),
|
|
126
125
|
examplePatterns: normalizeExamplePatterns(examplePatterns),
|
|
127
|
-
profiler
|
|
126
|
+
profiler,
|
|
127
|
+
retries,
|
|
128
|
+
setupFiles: setupFiles.map((setupFile) => path.resolve(process.cwd(), setupFile)),
|
|
129
|
+
timeoutMs
|
|
128
130
|
});
|
|
129
131
|
const activeTestRunner = testRunner;
|
|
130
132
|
let signalHandled = false;
|
|
@@ -227,60 +229,7 @@ export default class VelociousCliCommandsTest extends BaseCommand {
|
|
|
227
229
|
}
|
|
228
230
|
}
|
|
229
231
|
}
|
|
230
|
-
|
|
231
|
-
* Resolves and validates profiling paths before test discovery starts.
|
|
232
|
-
* @param {object} args - Raw profiling options.
|
|
233
|
-
* @param {string} args.cwd - Command working directory.
|
|
234
|
-
* @param {boolean} args.profile - Whether console profiling was requested.
|
|
235
|
-
* @param {string} [args.profileJsonPath] - Rich profile output path.
|
|
236
|
-
* @param {string} [args.timingManifestPath] - Timing manifest input path.
|
|
237
|
-
* @param {string} [args.timingManifestOutputPath] - Timing manifest output path.
|
|
238
|
-
* @returns {{profile: boolean, profileJsonPath: string | undefined, timingManifestPath: string | undefined, timingManifestOutputPath: string | undefined}} - Resolved profiling options.
|
|
239
|
-
*/
|
|
240
|
-
export function resolveTestProfileOptions({ cwd, profile, profileJsonPath, timingManifestPath, timingManifestOutputPath }) {
|
|
241
|
-
const resolvedProfileJsonPath = profileJsonPath ? path.resolve(cwd, profileJsonPath) : undefined;
|
|
242
|
-
const resolvedTimingManifestPath = timingManifestPath ? path.resolve(cwd, timingManifestPath) : undefined;
|
|
243
|
-
const resolvedTimingManifestOutputPath = timingManifestOutputPath
|
|
244
|
-
? path.resolve(cwd, timingManifestOutputPath)
|
|
245
|
-
: undefined;
|
|
246
|
-
if (resolvedProfileJsonPath && resolvedTimingManifestOutputPath && resolvedProfileJsonPath === resolvedTimingManifestOutputPath) {
|
|
247
|
-
throw new Error("Test profiling output paths must be different");
|
|
248
|
-
}
|
|
249
|
-
if (resolvedTimingManifestPath && (resolvedProfileJsonPath === resolvedTimingManifestPath ||
|
|
250
|
-
resolvedTimingManifestOutputPath === resolvedTimingManifestPath)) {
|
|
251
|
-
throw new Error("Test profiling outputs must not overwrite --timing-manifest input");
|
|
252
|
-
}
|
|
253
|
-
return {
|
|
254
|
-
profile: profile || Boolean(resolvedProfileJsonPath || resolvedTimingManifestOutputPath),
|
|
255
|
-
profileJsonPath: resolvedProfileJsonPath,
|
|
256
|
-
timingManifestPath: resolvedTimingManifestPath,
|
|
257
|
-
timingManifestOutputPath: resolvedTimingManifestOutputPath
|
|
258
|
-
};
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Loads and validates an explicitly supplied plain JSON timing manifest.
|
|
262
|
-
* @param {string | undefined} timingManifestPath - Timing manifest path.
|
|
263
|
-
* @returns {Promise<Record<string, number> | undefined>} - Canonical manifest, or undefined when not requested.
|
|
264
|
-
*/
|
|
265
|
-
export async function loadTimingManifest(timingManifestPath) {
|
|
266
|
-
if (!timingManifestPath)
|
|
267
|
-
return undefined;
|
|
268
|
-
let content;
|
|
269
|
-
try {
|
|
270
|
-
content = await fs.readFile(timingManifestPath, "utf8");
|
|
271
|
-
}
|
|
272
|
-
catch (error) {
|
|
273
|
-
throw new Error(`Failed to read timing manifest: ${timingManifestPath}`, { cause: error });
|
|
274
|
-
}
|
|
275
|
-
let parsed;
|
|
276
|
-
try {
|
|
277
|
-
parsed = JSON.parse(content);
|
|
278
|
-
}
|
|
279
|
-
catch (error) {
|
|
280
|
-
throw new Error(`Failed to parse timing manifest: ${timingManifestPath}`, { cause: error });
|
|
281
|
-
}
|
|
282
|
-
return validateTimingManifest(parsed, { source: `Timing manifest ${timingManifestPath}` });
|
|
283
|
-
}
|
|
232
|
+
export { loadTimingManifest, resolveTestProfileOptions };
|
|
284
233
|
/**
|
|
285
234
|
* Resolves how many slowest tests to report from the `VELOCIOUS_SLOW_TEST_COUNT`
|
|
286
235
|
* env value: defaults to 10 when unset; 0 (or an unparseable value) disables the
|
|
@@ -293,4 +242,4 @@ export function resolveSlowTestCount(rawEnvValue) {
|
|
|
293
242
|
return 10;
|
|
294
243
|
return Math.max(0, Math.floor(Number(rawEnvValue)) || 0);
|
|
295
244
|
}
|
|
296
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9ub2RlL2NsaS9jb21tYW5kcy90ZXN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLFdBQVcsTUFBTSxpQ0FBaUMsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDNUIsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBQzVCLE9BQU8sVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUNuQyxPQUFPLGVBQWUsTUFBTSwwQ0FBMEMsQ0FBQTtBQUN0RSxPQUFPLFlBQVksTUFBTSxzQ0FBc0MsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUM5RyxPQUFPLFVBQVUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUMzRCxPQUFPLGlCQUFpQixNQUFNLDRDQUE0QyxDQUFBO0FBQzFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQUNsRyxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdkIsTUFBTSx3Q0FBd0MsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUV2RSxNQUFNLENBQUMsT0FBTyxPQUFPLHdCQUF5QixTQUFRLFdBQVc7SUFDL0QsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLHdCQUF3QixFQUFFLENBQUE7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBRTlDLElBQUksU0FBUyxDQUFBO1FBQ2IsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFBO1FBRXRCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lB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QjtJQUN6RCxJQUFJLENBQUMsa0JBQWtCO1FBQUUsT0FBTyxTQUFTLENBQUE7SUFFekMsSUFBSSxPQUFPLENBQUE7SUFFWCxJQUFJLENBQUM7UUFDSCxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ3pELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsa0JBQWtCLEVBQUUsRUFBRSxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFBO0lBQzFGLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQTtJQUVWLElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzlCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0Msa0JBQWtCLEVBQUUsRUFBRSxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFBO0lBQzNGLENBQUM7SUFFRCxPQUFPLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxFQUFDLE1BQU0sRUFBRSxtQkFBbUIsa0JBQWtCLEVBQUUsRUFBQyxDQUFDLENBQUE7QUFDMUYsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxXQUFXO0lBQzlDLElBQUksV0FBVyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsQ0FBQTtJQUV4QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQmFzZUNvbW1hbmQgZnJvbSBcIi4uLy4uLy4uLy4uL2NsaS9iYXNlLWNvbW1hbmQuanNcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy9wcm9taXNlc1wiXG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCBwaWNvY29sb3JzIGZyb20gXCJwaWNvY29sb3JzXCJcbmltcG9ydCBUZXN0RmlsZXNGaW5kZXIgZnJvbSBcIi4uLy4uLy4uLy4uL3Rlc3RpbmcvdGVzdC1maWxlcy1maW5kZXIuanNcIlxuaW1wb3J0IFRlc3RQcm9maWxlciBmcm9tIFwiLi4vLi4vLi4vLi4vdGVzdGluZy90ZXN0LXByb2ZpbGVyLmpzXCJcbmltcG9ydCB7IGZvcm1hdFRlc3RQcm9maWxlU3VtbWFyeSwgd3JpdGVUZXN0UHJvZmlsZU91dHB1dHMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vdGVzdGluZy90ZXN0LXByb2ZpbGUtb3V0cHV0LmpzXCJcbmltcG9ydCBUZXN0UnVubmVyIGZyb20gXCIuLi8uLi8uLi8uLi90ZXN0aW5nL3Rlc3QtcnVubmVyLmpzXCJcbmltcG9ydCBUZXN0U3VpdGVTcGxpdHRlciBmcm9tIFwiLi4vLi4vLi4vLi4vdGVzdGluZy90ZXN0LXN1aXRlLXNwbGl0dGVyLmpzXCJcbmltcG9ydCB7IG5vcm1hbGl6ZUV4YW1wbGVQYXR0ZXJucywgcGFyc2VGaWx0ZXJzIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3Rlc3RpbmcvdGVzdC1maWx0ZXItcGFyc2VyLmpzXCJcbmltcG9ydCB7XG4gIGNhbm9uaWNhbFRpbWluZ01hbmlmZXN0UGF0aCxcbiAgdGltaW5nTWFuaWZlc3RGaWxlU2V0SGFzaCxcbiAgdmFsaWRhdGVUaW1pbmdNYW5pZmVzdFxufSBmcm9tIFwiLi4vLi4vLi4vLi4vdGVzdGluZy90aW1pbmctbWFuaWZlc3QuanNcIlxuaW1wb3J0IHsgcHJlcGFyZVNvdXJjZVBlZXJQYWNrYWdlIH0gZnJvbSBcIi4uLy4uL3NvdXJjZS1wZWVyLXBhY2thZ2UuanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNDbGlDb21tYW5kc1Rlc3QgZXh0ZW5kcyBCYXNlQ29tbWFuZCB7XG4gIGFzeW5jIGV4ZWN1dGUoKSB7XG4gICAgYXdhaXQgcHJlcGFyZVNvdXJjZVBlZXJQYWNrYWdlKClcbiAgICB0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5zZXRFbnZpcm9ubWVudChcInRlc3RcIilcblxuICAgIGxldCBkaXJlY3RvcnlcbiAgICBjb25zdCBkaXJlY3RvcmllcyA9IFtdXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuVkVMT0NJT1VTX1RFU1RfRElSKSB7XG4gICAgICBkaXJlY3RvcnkgPSBwcm9jZXNzLmVudi5WRUxPQ0lPVVNfVEVTVF9ESVJcbiAgICAgIGRpcmVjdG9yaWVzLnB1c2gocHJvY2Vzcy5lbnYuVkVMT0NJT1VTX1RFU1RfRElSKVxuICAgIH0gZWxzZSB7XG4gICAgICBkaXJlY3RvcnkgPSB0aGlzLmRpcmVjdG9yeSgpXG4gICAgICBkaXJlY3Rvcmllcy5wdXNoKGAke3RoaXMuZGlyZWN0b3J5KCl9L19fdGVzdHNfX2ApXG4gICAgICBkaXJlY3Rvcmllcy5wdXNoKGAke3RoaXMuZGlyZWN0b3J5KCl9L3Rlc3RzYClcbiAgICAgIGRpcmVjdG9yaWVzLnB1c2goYCR7dGhpcy5kaXJlY3RvcnkoKX0vc3BlY2ApXG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgaW5jbHVkZVRhZ3MsXG4gICAgICBleGNsdWRlVGFncyxcbiAgICAgIGV4YW1wbGVQYXR0ZXJucyxcbiAgICAgIGZpbHRlcmVkUHJvY2Vzc0FyZ3MsXG4gICAgICBncm91cHMsXG4gICAgICBncm91cE51bWJlcixcbiAgICAgIHByb2ZpbGUsXG4gICAgICBwcm9maWxlSnNvblBhdGgsXG4gICAgICB0aW1pbmdNYW5pZmVzdFBhdGgsXG4gICAgICB0aW1pbmdNYW5pZmVzdE91dHB1dFBhdGhcbiAgICB9ID0gcGFyc2VGaWx0ZXJzKHRoaXMucHJvY2Vzc0FyZ3MgfHwgW10pXG4gICAgY29uc3QgcHJvZmlsZU9wdGlvbnMgPSByZXNvbHZlVGVzdFByb2ZpbGVPcHRpb25zKHtcbiAgICAgIGN3ZDogcHJvY2Vzcy5jd2QoKSxcbiAgICAgIHByb2ZpbGUsXG4gICAgICBwcm9maWxlSnNvblBhdGgsXG4gICAgICB0aW1pbmdNYW5pZmVzdFBhdGgsXG4gICAgICB0aW1pbmdNYW5pZmVzdE91dHB1dFBhdGhcbiAgICB9KVxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHtcbiAgICAgIGV4Y2x1ZGVUYWdDb3VudDogZXhjbHVkZVRhZ3MubGVuZ3RoLFxuICAgICAgaGFzRXhhbXBsZUZpbHRlcnM6IGV4YW1wbGVQYXR0ZXJucy5sZW5ndGggPiAwLFxuICAgICAgaW5jbHVkZVRhZ0NvdW50OiBpbmNsdWRlVGFncy5sZW5ndGgsXG4gICAgICBzaGFyZDogZ3JvdXBzICE9PSB1bmRlZmluZWQgJiYgZ3JvdXBOdW1iZXIgIT09IHVuZGVmaW5lZCA/IHtncm91cHMsIGdyb3VwTnVtYmVyfSA6IHVuZGVmaW5lZFxuICAgIH1cbiAgICBjb25zdCBwcm9maWxlciA9IHByb2ZpbGVPcHRpb25zLnByb2ZpbGVcbiAgICAgID8gbmV3IFRlc3RQcm9maWxlcih7Y29uZmlndXJhdGlvbjogdGhpcy5nZXRDb25maWd1cmF0aW9uKCksIHByb2plY3REaXJlY3Rvcnk6IGRpcmVjdG9yeSwgc2VsZWN0aW9ufSlcbiAgICAgIDogdW5kZWZpbmVkXG4gICAgY29uc3QgdGVzdEZpbGVzRmluZGVyID0gbmV3IFRlc3RGaWxlc0ZpbmRlcih7ZGlyZWN0b3J5LCBkaXJlY3RvcmllcywgcHJvY2Vzc0FyZ3M6IGZpbHRlcmVkUHJvY2Vzc0FyZ3N9KVxuICAgIC8qKiBAdHlwZSB7VGVzdFJ1bm5lciB8IHVuZGVmaW5lZH0gKi9cbiAgICBsZXQgdGVzdFJ1bm5lclxuICAgIGxldCBwcm9maWxlRmluYWxpemVkID0gZmFsc2VcblxuICAgIC8qKlxuICAgICAqIEZpbmFsaXplcyByZXF1ZXN0ZWQgb3V0cHV0cyBvbmNlIGZvciBldmVyeSBjb21tYW5kIG91dGNvbWUuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHN0YXR1cyAtIFJ1biBzdGF0dXMuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgcmVxdWVzdGVkIG91dHB1dHMgYXJlIHdyaXR0ZW4uXG4gICAgICovXG4gICAgY29uc3QgZmluYWxpemVQcm9maWxlID0gYXN5bmMgKHN0YXR1cykgPT4ge1xuICAgICAgaWYgKCFwcm9maWxlciB8fCBwcm9maWxlRmluYWxpemVkKSByZXR1cm5cblxuICAgICAgcHJvZmlsZUZpbmFsaXplZCA9IHRydWVcbiAgICAgIGNvbnN0IGZhaWxlZCA9IHRlc3RSdW5uZXI/LmdldEZhaWxlZFRlc3RzKCkgPz8gMFxuICAgICAgY29uc3QgcGFzc2VkID0gdGVzdFJ1bm5lcj8uZ2V0U3VjY2Vzc2Z1bFRlc3RzKCkgPz8gMFxuICAgICAgY29uc3QgcHJvZmlsZURvY3VtZW50ID0gcHJvZmlsZXIuZmluaXNoKHtcbiAgICAgICAgY291bnRzOiB7XG4gICAgICAgICAgZGlzY292ZXJlZDogdGVzdFJ1bm5lcj8uZ2V0VGVzdHNDb3VudCgpID8/IDAsXG4gICAgICAgICAgZXhlY3V0ZWQ6IHRlc3RSdW5uZXI/LmdldEV4ZWN1dGVkVGVzdHNDb3VudCgpID8/IDAsXG4gICAgICAgICAgZmFpbGVkLFxuICAgICAgICAgIHBhc3NlZFxuICAgICAgICB9LFxuICAgICAgICBmb2N1c2VkOiBCb29sZWFuKHRlc3RSdW5uZXI/LmFueVRlc3RzRm9jdXNzZWQpLFxuICAgICAgICBzdGF0dXNcbiAgICAgIH0pXG5cbiAgICAgIGF3YWl0IHdyaXRlVGVzdFByb2ZpbGVPdXRwdXRzKHtcbiAgICAgICAgcHJvZmlsZTogcHJvZmlsZURvY3VtZW50LFxuICAgICAgICBwcm9maWxlSnNvblBhdGg6IHByb2ZpbGVPcHRpb25zLnByb2ZpbGVKc29uUGF0aCxcbiAgICAgICAgdGltaW5nTWFuaWZlc3RPdXRwdXRQYXRoOiBwcm9maWxlT3B0aW9ucy50aW1pbmdNYW5pZmVzdE91dHB1dFBhdGhcbiAgICAgIH0pXG4gICAgICBjb25zb2xlLmxvZyhgXFxuJHtmb3JtYXRUZXN0UHJvZmlsZVN1bW1hcnkocHJvZmlsZURvY3VtZW50LCBwcm9maWxlT3B0aW9ucyl9YClcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZGlzY292ZXJUZXN0RmlsZXMgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRpbWluZ01hbmlmZXN0ID0gYXdhaXQgbG9hZFRpbWluZ01hbmlmZXN0KHByb2ZpbGVPcHRpb25zLnRpbWluZ01hbmlmZXN0UGF0aClcbiAgICAgICAgbGV0IGRpc2NvdmVyZWRUZXN0RmlsZXMgPSBhd2FpdCB0ZXN0RmlsZXNGaW5kZXIuZmluZFRlc3RGaWxlcygpXG4gICAgICAgIGNvbnN0IGxpbmVGaWx0ZXJzID0gdGVzdEZpbGVzRmluZGVyLmdldExpbmVGaWx0ZXJzQnlGaWxlKClcblxuICAgICAgICBpZiAocHJvZmlsZXIpIHtcbiAgICAgICAgICBjb25zdCBkaXNjb3ZlcmVkRmlsZVBhdGhzID0gZGlzY292ZXJlZFRlc3RGaWxlcy5tYXAoKGZpbGVQYXRoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gY2Fub25pY2FsVGltaW5nTWFuaWZlc3RQYXRoKHBhdGgucmVsYXRpdmUoZGlyZWN0b3J5LCBmaWxlUGF0aCkpXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHByb2ZpbGVyLnNldFNlbGVjdGlvbih7XG4gICAgICAgICAgICBkaXNjb3ZlcmVkRmlsZUNvdW50OiBkaXNjb3ZlcmVkVGVzdEZpbGVzLmxlbmd0aCxcbiAgICAgICAgICAgIGhhc0xpbmVGaWx0ZXJzOiBPYmplY3Qua2V5cyhsaW5lRmlsdGVycykubGVuZ3RoID4gMCxcbiAgICAgICAgICAgIHBhdGhCYXNlOiBwcm9jZXNzLmVudi5WRUxPQ0lPVVNfVEVTVF9ESVIgPyBcInRlc3QtZGlyZWN0b3J5XCIgOiBcImNvbmZpZ3VyYXRpb24tZGlyZWN0b3J5XCIsXG4gICAgICAgICAgICB0ZXN0RmlsZVNldEhhc2g6IHRpbWluZ01hbmlmZXN0RmlsZVNldEhhc2goZGlzY292ZXJlZEZpbGVQYXRocylcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGdyb3VwcyAhPT0gdW5kZWZpbmVkIHx8IGdyb3VwTnVtYmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAoZ3JvdXBzID09PSB1bmRlZmluZWQgfHwgZ3JvdXBOdW1iZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQm90aCAtLWdyb3VwcyBhbmQgLS1ncm91cC1udW1iZXIgbXVzdCBiZSBwcm92aWRlZCB0b2dldGhlclwiKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHNwbGl0dGVyID0gbmV3IFRlc3RTdWl0ZVNwbGl0dGVyKHtcbiAgICAgICAgICAgIGdyb3VwcyxcbiAgICAgICAgICAgIGdyb3VwTnVtYmVyLFxuICAgICAgICAgICAgdGVzdEZpbGVzOiBkaXNjb3ZlcmVkVGVzdEZpbGVzLFxuICAgICAgICAgICAgYmFzZURpcmVjdG9yeTogZGlyZWN0b3J5LFxuICAgICAgICAgICAgdGltaW5nTWFuaWZlc3RcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgaWYgKHByb2ZpbGVPcHRpb25zLnRpbWluZ01hbmlmZXN0UGF0aCkge1xuICAgICAgICAgICAgY29uc3QgY292ZXJhZ2UgPSBzcGxpdHRlci5nZXRUaW1pbmdNYW5pZmVzdENvdmVyYWdlKClcblxuICAgICAgICAgICAgY29uc29sZS5sb2cocGljb2NvbG9ycy5jeWFuKFxuICAgICAgICAgICAgICBgVGltaW5nIG1hbmlmZXN0IGNvdmVyYWdlOiBtZWFzdXJlZD0ke2NvdmVyYWdlLm1lYXN1cmVkRmlsZXN9IGAgK1xuICAgICAgICAgICAgICBgaGV1cmlzdGljPSR7Y292ZXJhZ2UuaGV1cmlzdGljRmlsZXN9IHN0YWxlPSR7Y292ZXJhZ2Uuc3RhbGVFbnRyaWVzfWBcbiAgICAgICAgICAgICkpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGlzY292ZXJlZFRlc3RGaWxlcyA9IHNwbGl0dGVyLmdldEdyb3VwRmlsZXMoKVxuICAgICAgICAgIGNvbnNvbGUubG9nKHBpY29jb2xvcnMuY3lhbihgUnVubmluZyBncm91cCAke2dyb3VwTnVtYmVyfSBvZiAke2dyb3Vwc30gKCR7ZGlzY292ZXJlZFRlc3RGaWxlcy5sZW5ndGh9IGZpbGVzKWApKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRpc2NvdmVyZWRUZXN0RmlsZXNcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRlc3RGaWxlcyA9IHByb2ZpbGVyXG4gICAgICAgID8gYXdhaXQgcHJvZmlsZXIubWVhc3VyZVBoYXNlKFwiZGlzY292ZXJ5XCIsIGRpc2NvdmVyVGVzdEZpbGVzKVxuICAgICAgICA6IGF3YWl0IGRpc2NvdmVyVGVzdEZpbGVzKClcblxuICAgICAgcHJvZmlsZXI/LnNldFNlbGVjdGlvbih7ZmlsZUNvdW50OiB0ZXN0RmlsZXMubGVuZ3RofSlcbiAgICAgIHRlc3RSdW5uZXIgPSBuZXcgVGVzdFJ1bm5lcih7XG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLFxuICAgICAgICBleGNsdWRlVGFncyxcbiAgICAgICAgaW5jbHVkZVRhZ3MsXG4gICAgICAgIHRlc3RGaWxlcyxcbiAgICAgICAgbGluZUZpbHRlcnM6IHRlc3RGaWxlc0ZpbmRlci5nZXRMaW5lRmlsdGVyc0J5RmlsZSgpLFxuICAgICAgICBleGFtcGxlUGF0dGVybnM6IG5vcm1hbGl6ZUV4YW1wbGVQYXR0ZXJucyhleGFtcGxlUGF0dGVybnMpLFxuICAgICAgICBwcm9maWxlclxuICAgICAgfSlcbiAgICAgIGNvbnN0IGFjdGl2ZVRlc3RSdW5uZXIgPSB0ZXN0UnVubmVyXG4gICAgICBsZXQgc2lnbmFsSGFuZGxlZCA9IGZhbHNlXG5cbiAgICAgIGNvbnN0IGhhbmRsZVNpZ25hbCA9IGFzeW5jICgvKiogQHR5cGUge3N0cmluZ30gKi8gc2lnbmFsKSA9PiB7XG4gICAgICAgIGlmIChzaWduYWxIYW5kbGVkKSByZXR1cm5cbiAgICAgICAgc2lnbmFsSGFuZGxlZCA9IHRydWVcbiAgICAgICAgcHJvZmlsZXI/LmludGVycnVwdCgpXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFxcblJlY2VpdmVkICR7c2lnbmFsfSwgcnVubmluZyBhZnRlckFsbCBob29rcyBiZWZvcmUgZXhpdC4uLmApXG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBhY3RpdmVUZXN0UnVubmVyLnJ1bkFmdGVyQWxsc0ZvckFjdGl2ZVNjb3BlcygpXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB3aGlsZSBydW5uaW5nIGFmdGVyQWxsIGhvb2tzOlwiLCBlcnJvcilcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgZmluYWxpemVQcm9maWxlKFwiaW50ZXJydXB0ZWRcIilcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB3aGlsZSB3cml0aW5nIGludGVycnVwdGVkIHRlc3QgcHJvZmlsZTpcIiwgZXJyb3IpXG4gICAgICAgICAgfVxuICAgICAgICAgIHByb2Nlc3MuZXhpdCgxMzApXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcHJvY2Vzcy5vbmNlKFwiU0lHSU5UXCIsICgpID0+IHsgdm9pZCBoYW5kbGVTaWduYWwoXCJTSUdJTlRcIikgfSlcbiAgICAgIHByb2Nlc3Mub25jZShcIlNJR1RFUk1cIiwgKCkgPT4geyB2b2lkIGhhbmRsZVNpZ25hbChcIlNJR1RFUk1cIikgfSlcblxuICAgICAgYXdhaXQgdGVzdFJ1bm5lci5wcmVwYXJlKClcbiAgICAgIGNvbnN0IGVmZmVjdGl2ZUV4Y2x1ZGVUYWdDb3VudCA9IHRlc3RSdW5uZXIuZ2V0RXhjbHVkZVRhZ1NldCgpLnNpemVcblxuICAgICAgcHJvZmlsZXI/LnNldFNlbGVjdGlvbih7ZXhjbHVkZVRhZ0NvdW50OiBlZmZlY3RpdmVFeGNsdWRlVGFnQ291bnR9KVxuXG4gICAgICBpZiAodGVzdFJ1bm5lci5nZXRUZXN0c0NvdW50KCkgPT09IDApIHtcbiAgICAgICAgYXdhaXQgZmluYWxpemVQcm9maWxlKFwibm8tdGVzdHNcIilcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3Rlc3RSdW5uZXIuZ2V0VGVzdHNDb3VudCgpfSB0ZXN0cyB3YXMgZm91bmQgaW4gJHt0ZXN0RmlsZXMubGVuZ3RofSBmaWxlKHMpYClcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGVzdFJ1bm5lci5ydW4oKVxuXG4gICAgICBjb25zdCBleGVjdXRlZFRlc3RzID0gdGVzdFJ1bm5lci5nZXRFeGVjdXRlZFRlc3RzQ291bnQoKVxuICAgICAgY29uc3QgbGluZUZpbHRlcnMgPSB0ZXN0UnVubmVyLmdldExpbmVGaWx0ZXJzKClcbiAgICAgIGNvbnN0IGhhc0xpbmVGaWx0ZXJzID0gT2JqZWN0LmtleXMobGluZUZpbHRlcnMpLmxlbmd0aCA+IDBcbiAgICAgIGNvbnN0IGhhc0V4YW1wbGVGaWx0ZXJzID0gZXhhbXBsZVBhdHRlcm5zLmxlbmd0aCA+IDBcbiAgICAgIGNvbnN0IGhhc1RhZ0ZpbHRlcnMgPSBpbmNsdWRlVGFncy5sZW5ndGggPiAwIHx8IGVmZmVjdGl2ZUV4Y2x1ZGVUYWdDb3VudCA+IDBcblxuICAgICAgaWYgKChoYXNUYWdGaWx0ZXJzIHx8IGhhc0xpbmVGaWx0ZXJzIHx8IGhhc0V4YW1wbGVGaWx0ZXJzKSAmJiB0ZXN0UnVubmVyLmhhc05vTWF0Y2hlcygpKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IocGljb2NvbG9ycy5yZWQoXCJcXG5ObyB0ZXN0cyBtYXRjaGVkIHRoZSBwcm92aWRlZCBmaWx0ZXJzXCIpKVxuICAgICAgICBhd2FpdCBmaW5hbGl6ZVByb2ZpbGUoXCJuby10ZXN0c1wiKVxuICAgICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICAgIH1cblxuICAgICAgLy8gUmVwb3J0IHRoZSBzbG93ZXN0IHRlc3RzIHNvIHN1aXRlIGhvdHNwb3RzIGFyZSB2aXNpYmxlIGV2ZXJ5IHJ1bi4gRGVmYXVsdHMgdG9cbiAgICAgIC8vIHRoZSB0b3AgMTA7IHR1bmUgd2l0aCBWRUxPQ0lPVVNfU0xPV19URVNUX0NPVU5UICgwIGRpc2FibGVzKS4gU2tpcHBlZCBmb3JcbiAgICAgIC8vIHNpbmdsZS10ZXN0IHJ1bnMgd2hlcmUgaXQgd291bGQganVzdCBiZSBub2lzZS5cbiAgICAgIGNvbnN0IHNsb3dUZXN0Q291bnQgPSByZXNvbHZlU2xvd1Rlc3RDb3VudChwcm9jZXNzLmVudi5WRUxPQ0lPVVNfU0xPV19URVNUX0NPVU5UKVxuXG4gICAgICBpZiAoc2xvd1Rlc3RDb3VudCA+IDAgJiYgZXhlY3V0ZWRUZXN0cyA+IDEpIHtcbiAgICAgICAgY29uc3Qgc2xvd2VzdFRlc3RzID0gdGVzdFJ1bm5lci5nZXRTbG93ZXN0VGVzdHMoc2xvd1Rlc3RDb3VudClcblxuICAgICAgICBpZiAoc2xvd2VzdFRlc3RzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhwaWNvY29sb3JzLmN5YW4oYFxcblNsb3dlc3QgJHtzbG93ZXN0VGVzdHMubGVuZ3RofSB0ZXN0czpgKSlcblxuICAgICAgICAgIGZvciAoY29uc3Qgc2xvd1Rlc3Qgb2Ygc2xvd2VzdFRlc3RzKSB7XG4gICAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHNsb3dUZXN0LmZpbGVQYXRoICYmIHNsb3dUZXN0LmxpbmUgPyBgICgke3Nsb3dUZXN0LmZpbGVQYXRofToke3Nsb3dUZXN0LmxpbmV9KWAgOiBcIlwiXG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHBpY29jb2xvcnMuY3lhbihgICAke1N0cmluZyhzbG93VGVzdC5kdXJhdGlvbk1zKS5wYWRTdGFydCg2KX1tcyAgJHtzbG93VGVzdC5mdWxsRGVzY3JpcHRpb259JHtsb2NhdGlvbn1gKSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHRlc3RSdW5uZXIuaXNGYWlsZWQoKSkge1xuICAgICAgICBhd2FpdCB0ZXN0UnVubmVyLnBlcnNpc3RGYWlsZWRUZXN0Q29uc29sZU91dHB1dHNUb0Fzc2V0cygpXG4gICAgICAgIGNvbnN0IGZhaWxlZFRlc3RzID0gdGVzdFJ1bm5lci5nZXRGYWlsZWRUZXN0RGV0YWlscygpXG5cbiAgICAgICAgaWYgKGZhaWxlZFRlc3RzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKHBpY29jb2xvcnMucmVkKFwiXFxuRmFpbGVkIHRlc3RzOlwiKSlcblxuICAgICAgICAgIGZvciAoY29uc3QgZmFpbGVkIG9mIGZhaWxlZFRlc3RzKSB7XG4gICAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IGZhaWxlZC5maWxlUGF0aCAmJiBmYWlsZWQubGluZVxuICAgICAgICAgICAgICA/IGAgKCR7ZmFpbGVkLmZpbGVQYXRofToke2ZhaWxlZC5saW5lfSlgXG4gICAgICAgICAgICAgIDogXCJcIlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihwaWNvY29sb3JzLnJlZChgLSAke2ZhaWxlZC5mdWxsRGVzY3JpcHRpb259JHtsb2NhdGlvbn1gKSlcblxuICAgICAgICAgICAgaWYgKGZhaWxlZC5jb25zb2xlTG9nUGF0aCkge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKHBpY29jb2xvcnMucmVkKGAgIENvbnNvbGUgbG9nOiAke2ZhaWxlZC5jb25zb2xlTG9nUGF0aH1gKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGVzdFJ1bm5lci5nZXROb3RSdW5UZXN0cygpID4gMCkgY29uc29sZS5lcnJvcihgJHt0ZXN0UnVubmVyLmdldE5vdFJ1blRlc3RzKCl9IHRlc3RzIG5vdCBydW4gYmVjYXVzZSBhIHNoYXJlZCByZXNvdXJjZSBmYWlsZWRgKVxuICAgICAgICBjb25zb2xlLmVycm9yKHBpY29jb2xvcnMucmVkKGBcXG5UZXN0IHJ1biBmYWlsZWQgd2l0aCAke3Rlc3RSdW5uZXIuZ2V0RmFpbGVkVGVzdHMoKX0gZmFpbGVkIHRlc3RzIGFuZCAke3Rlc3RSdW5uZXIuZ2V0U3VjY2Vzc2Z1bFRlc3RzKCl9IHN1Y2Nlc3NmdWxsYCkpXG4gICAgICAgIGF3YWl0IGZpbmFsaXplUHJvZmlsZShcImZhaWxlZFwiKVxuICAgICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICAgIH0gZWxzZSBpZiAodGVzdFJ1bm5lci5hcmVBbnlUZXN0c0ZvY3Vzc2VkKCkpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihwaWNvY29sb3JzLnJlZChgXFxuRm9jdXNzZWQgcnVuIHdpdGggJHt0ZXN0UnVubmVyLmdldEZhaWxlZFRlc3RzKCl9IGZhaWxlZCB0ZXN0cyBhbmQgJHt0ZXN0UnVubmVyLmdldFN1Y2Nlc3NmdWxUZXN0cygpfSBzdWNjZXNzZnVsbGApKVxuICAgICAgICBhd2FpdCBmaW5hbGl6ZVByb2ZpbGUoXCJmb2N1c2VkXCIpXG4gICAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2cocGljb2NvbG9ycy5ncmVlbihgXFxuVGVzdCBydW4gc3VjY2VlZGVkIHdpdGggJHt0ZXN0UnVubmVyLmdldFN1Y2Nlc3NmdWxUZXN0cygpfSBzdWNjZXNzZnVsIHRlc3RzYCkpXG4gICAgICAgIGF3YWl0IGZpbmFsaXplUHJvZmlsZShcInBhc3NlZFwiKVxuICAgICAgICBwcm9jZXNzLmV4aXQoMClcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZmluYWxpemVQcm9maWxlKFwiZXJyb3JcIilcbiAgICAgIH0gY2F0Y2ggKHByb2ZpbGVFcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgQWdncmVnYXRlRXJyb3IoW2Vycm9yLCBwcm9maWxlRXJyb3JdLCBcIlRlc3QgY29tbWFuZCBhbmQgcHJvZmlsZSBmaW5hbGl6YXRpb24gYm90aCBmYWlsZWRcIiwge2NhdXNlOiBwcm9maWxlRXJyb3J9KVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlc29sdmVzIGFuZCB2YWxpZGF0ZXMgcHJvZmlsaW5nIHBhdGhzIGJlZm9yZSB0ZXN0IGRpc2NvdmVyeSBzdGFydHMuXG4gKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIFJhdyBwcm9maWxpbmcgb3B0aW9ucy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmN3ZCAtIENvbW1hbmQgd29ya2luZyBkaXJlY3RvcnkuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGFyZ3MucHJvZmlsZSAtIFdoZXRoZXIgY29uc29sZSBwcm9maWxpbmcgd2FzIHJlcXVlc3RlZC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbYXJncy5wcm9maWxlSnNvblBhdGhdIC0gUmljaCBwcm9maWxlIG91dHB1dCBwYXRoLlxuICogQHBhcmFtIHtzdHJpbmd9IFthcmdzLnRpbWluZ01hbmlmZXN0UGF0aF0gLSBUaW1pbmcgbWFuaWZlc3QgaW5wdXQgcGF0aC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbYXJncy50aW1pbmdNYW5pZmVzdE91dHB1dFBhdGhdIC0gVGltaW5nIG1hbmlmZXN0IG91dHB1dCBwYXRoLlxuICogQHJldHVybnMge3twcm9maWxlOiBib29sZWFuLCBwcm9maWxlSnNvblBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCwgdGltaW5nTWFuaWZlc3RQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsIHRpbWluZ01hbmlmZXN0T3V0cHV0UGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkfX0gLSBSZXNvbHZlZCBwcm9maWxpbmcgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVUZXN0UHJvZmlsZU9wdGlvbnMoe2N3ZCwgcHJvZmlsZSwgcHJvZmlsZUpzb25QYXRoLCB0aW1pbmdNYW5pZmVzdFBhdGgsIHRpbWluZ01hbmlmZXN0T3V0cHV0UGF0aH0pIHtcbiAgY29uc3QgcmVzb2x2ZWRQcm9maWxlSnNvblBhdGggPSBwcm9maWxlSnNvblBhdGggPyBwYXRoLnJlc29sdmUoY3dkLCBwcm9maWxlSnNvblBhdGgpIDogdW5kZWZpbmVkXG4gIGNvbnN0IHJlc29sdmVkVGltaW5nTWFuaWZlc3RQYXRoID0gdGltaW5nTWFuaWZlc3RQYXRoID8gcGF0aC5yZXNvbHZlKGN3ZCwgdGltaW5nTWFuaWZlc3RQYXRoKSA6IHVuZGVmaW5lZFxuICBjb25zdCByZXNvbHZlZFRpbWluZ01hbmlmZXN0T3V0cHV0UGF0aCA9IHRpbWluZ01hbmlmZXN0T3V0cHV0UGF0aFxuICAgID8gcGF0aC5yZXNvbHZlKGN3ZCwgdGltaW5nTWFuaWZlc3RPdXRwdXRQYXRoKVxuICAgIDogdW5kZWZpbmVkXG5cbiAgaWYgKHJlc29sdmVkUHJvZmlsZUpzb25QYXRoICYmIHJlc29sdmVkVGltaW5nTWFuaWZlc3RPdXRwdXRQYXRoICYmIHJlc29sdmVkUHJvZmlsZUpzb25QYXRoID09PSByZXNvbHZlZFRpbWluZ01hbmlmZXN0T3V0cHV0UGF0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlRlc3QgcHJvZmlsaW5nIG91dHB1dCBwYXRocyBtdXN0IGJlIGRpZmZlcmVudFwiKVxuICB9XG5cbiAgaWYgKHJlc29sdmVkVGltaW5nTWFuaWZlc3RQYXRoICYmIChcbiAgICByZXNvbHZlZFByb2ZpbGVKc29uUGF0aCA9PT0gcmVzb2x2ZWRUaW1pbmdNYW5pZmVzdFBhdGggfHxcbiAgICByZXNvbHZlZFRpbWluZ01hbmlmZXN0T3V0cHV0UGF0aCA9PT0gcmVzb2x2ZWRUaW1pbmdNYW5pZmVzdFBhdGhcbiAgKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlRlc3QgcHJvZmlsaW5nIG91dHB1dHMgbXVzdCBub3Qgb3ZlcndyaXRlIC0tdGltaW5nLW1hbmlmZXN0IGlucHV0XCIpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIHByb2ZpbGU6IHByb2ZpbGUgfHwgQm9vbGVhbihyZXNvbHZlZFByb2ZpbGVKc29uUGF0aCB8fCByZXNvbHZlZFRpbWluZ01hbmlmZXN0T3V0cHV0UGF0aCksXG4gICAgcHJvZmlsZUpzb25QYXRoOiByZXNvbHZlZFByb2ZpbGVKc29uUGF0aCxcbiAgICB0aW1pbmdNYW5pZmVzdFBhdGg6IHJlc29sdmVkVGltaW5nTWFuaWZlc3RQYXRoLFxuICAgIHRpbWluZ01hbmlmZXN0T3V0cHV0UGF0aDogcmVzb2x2ZWRUaW1pbmdNYW5pZmVzdE91dHB1dFBhdGhcbiAgfVxufVxuXG4vKipcbiAqIExvYWRzIGFuZCB2YWxpZGF0ZXMgYW4gZXhwbGljaXRseSBzdXBwbGllZCBwbGFpbiBKU09OIHRpbWluZyBtYW5pZmVzdC5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSB0aW1pbmdNYW5pZmVzdFBhdGggLSBUaW1pbmcgbWFuaWZlc3QgcGF0aC5cbiAqIEByZXR1cm5zIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIG51bWJlcj4gfCB1bmRlZmluZWQ+fSAtIENhbm9uaWNhbCBtYW5pZmVzdCwgb3IgdW5kZWZpbmVkIHdoZW4gbm90IHJlcXVlc3RlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRUaW1pbmdNYW5pZmVzdCh0aW1pbmdNYW5pZmVzdFBhdGgpIHtcbiAgaWYgKCF0aW1pbmdNYW5pZmVzdFBhdGgpIHJldHVybiB1bmRlZmluZWRcblxuICBsZXQgY29udGVudFxuXG4gIHRyeSB7XG4gICAgY29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKHRpbWluZ01hbmlmZXN0UGF0aCwgXCJ1dGY4XCIpXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gcmVhZCB0aW1pbmcgbWFuaWZlc3Q6ICR7dGltaW5nTWFuaWZlc3RQYXRofWAsIHtjYXVzZTogZXJyb3J9KVxuICB9XG5cbiAgbGV0IHBhcnNlZFxuXG4gIHRyeSB7XG4gICAgcGFyc2VkID0gSlNPTi5wYXJzZShjb250ZW50KVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHBhcnNlIHRpbWluZyBtYW5pZmVzdDogJHt0aW1pbmdNYW5pZmVzdFBhdGh9YCwge2NhdXNlOiBlcnJvcn0pXG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVUaW1pbmdNYW5pZmVzdChwYXJzZWQsIHtzb3VyY2U6IGBUaW1pbmcgbWFuaWZlc3QgJHt0aW1pbmdNYW5pZmVzdFBhdGh9YH0pXG59XG5cbi8qKlxuICogUmVzb2x2ZXMgaG93IG1hbnkgc2xvd2VzdCB0ZXN0cyB0byByZXBvcnQgZnJvbSB0aGUgYFZFTE9DSU9VU19TTE9XX1RFU1RfQ09VTlRgXG4gKiBlbnYgdmFsdWU6IGRlZmF1bHRzIHRvIDEwIHdoZW4gdW5zZXQ7IDAgKG9yIGFuIHVucGFyc2VhYmxlIHZhbHVlKSBkaXNhYmxlcyB0aGVcbiAqIHJlcG9ydDsgb3RoZXJ3aXNlIHRoZSBmbG9vcmVkLCBub24tbmVnYXRpdmUgaW50ZWdlci5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSByYXdFbnZWYWx1ZSAtIFJhdyBlbnYgdmFsdWUuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSAtIE51bWJlciBvZiBzbG93ZXN0IHRlc3RzIHRvIHJlcG9ydCAoMCBkaXNhYmxlcykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlU2xvd1Rlc3RDb3VudChyYXdFbnZWYWx1ZSkge1xuICBpZiAocmF3RW52VmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIDEwXG5cbiAgcmV0dXJuIE1hdGgubWF4KDAsIE1hdGguZmxvb3IoTnVtYmVyKHJhd0VudlZhbHVlKSkgfHwgMClcbn1cbiJdfQ==
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9ub2RlL2NsaS9jb21tYW5kcy90ZXN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLFdBQVcsTUFBTSxpQ0FBaUMsQ0FBQTtBQUN6RCxPQUFPLElBQUksTUFBTSxXQUFXLENBQUE7QUFDNUIsT0FBTyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sZUFBZSxNQUFNLDBDQUEwQyxDQUFBO0FBQ3RFLE9BQU8sWUFBWSxNQUFNLHNDQUFzQyxDQUFBO0FBQy9ELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDeEIsTUFBTSw0Q0FBNEMsQ0FBQTtBQUNuRCxPQUFPLFVBQVUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUMzRCxPQUFPLGlCQUFpQixNQUFNLDRDQUE0QyxDQUFBO0FBQzFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQUNsRyxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLHlCQUF5QixFQUMxQixNQUFNLHdDQUF3QyxDQUFBO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBRXZFLE1BQU0sQ0FBQyxPQUFPLE9BQU8sd0JBQXlCLFNBQVEsV0FBVztJQUMvRCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sd0JBQXdCLEVBQUUsQ0FBQTtRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7UUFFOUMsSUFBSSxTQUFTLENBQUE7UUFDYixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUE7UUFFdEIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDbkMsU0FBUyxHQUFHLE9B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LGNBQWMsQ0FBQyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsRUFBRSxtREFBbUQsRUFBRSxFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUMsQ0FBQyxDQUFBO1lBQzdILENBQUM7WUFFRCxNQUFNLEtBQUssQ0FBQTtRQUNiLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFFRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsQ0FBQTtBQUV4RDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsV0FBVztJQUM5QyxJQUFJLFdBQVcsS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLENBQUE7SUFFeEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJhc2VDb21tYW5kIGZyb20gXCIuLi8uLi8uLi8uLi9jbGkvYmFzZS1jb21tYW5kLmpzXCJcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHBpY29jb2xvcnMgZnJvbSBcInBpY29jb2xvcnNcIlxuaW1wb3J0IFRlc3RGaWxlc0ZpbmRlciBmcm9tIFwiLi4vLi4vLi4vLi4vdGVzdGluZy90ZXN0LWZpbGVzLWZpbmRlci5qc1wiXG5pbXBvcnQgVGVzdFByb2ZpbGVyIGZyb20gXCIuLi8uLi8uLi8uLi90ZXN0aW5nL3Rlc3QtcHJvZmlsZXIuanNcIlxuaW1wb3J0IHtcbiAgZm9ybWF0VGVzdFByb2ZpbGVTdW1tYXJ5LFxuICBsb2FkVGltaW5nTWFuaWZlc3QsXG4gIHJlc29sdmVUZXN0UHJvZmlsZU9wdGlvbnMsXG4gIHdyaXRlVGVzdFByb2ZpbGVPdXRwdXRzXG59IGZyb20gXCIuLi8uLi8uLi8uLi90ZXN0aW5nL3Rlc3QtcHJvZmlsZS1vdXRwdXQuanNcIlxuaW1wb3J0IFRlc3RSdW5uZXIgZnJvbSBcIi4uLy4uLy4uLy4uL3Rlc3RpbmcvdGVzdC1ydW5uZXIuanNcIlxuaW1wb3J0IFRlc3RTdWl0ZVNwbGl0dGVyIGZyb20gXCIuLi8uLi8uLi8uLi90ZXN0aW5nL3Rlc3Qtc3VpdGUtc3BsaXR0ZXIuanNcIlxuaW1wb3J0IHsgbm9ybWFsaXplRXhhbXBsZVBhdHRlcm5zLCBwYXJzZUZpbHRlcnMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vdGVzdGluZy90ZXN0LWZpbHRlci1wYXJzZXIuanNcIlxuaW1wb3J0IHtcbiAgY2Fub25pY2FsVGltaW5nTWFuaWZlc3RQYXRoLFxuICB0aW1pbmdNYW5pZmVzdEZpbGVTZXRIYXNoXG59IGZyb20gXCIuLi8uLi8uLi8uLi90ZXN0aW5nL3RpbWluZy1tYW5pZmVzdC5qc1wiXG5pbXBvcnQgeyBwcmVwYXJlU291cmNlUGVlclBhY2thZ2UgfSBmcm9tIFwiLi4vLi4vc291cmNlLXBlZXItcGFja2FnZS5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0NsaUNvbW1hbmRzVGVzdCBleHRlbmRzIEJhc2VDb21tYW5kIHtcbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICBhd2FpdCBwcmVwYXJlU291cmNlUGVlclBhY2thZ2UoKVxuICAgIHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLnNldEVudmlyb25tZW50KFwidGVzdFwiKVxuXG4gICAgbGV0IGRpcmVjdG9yeVxuICAgIGNvbnN0IGRpcmVjdG9yaWVzID0gW11cblxuICAgIGlmIChwcm9jZXNzLmVudi5WRUxPQ0lPVVNfVEVTVF9ESVIpIHtcbiAgICAgIGRpcmVjdG9yeSA9IHByb2Nlc3MuZW52LlZFTE9DSU9VU19URVNUX0RJUlxuICAgICAgZGlyZWN0b3JpZXMucHVzaChwcm9jZXNzLmVudi5WRUxPQ0lPVVNfVEVTVF9ESVIpXG4gICAgfSBlbHNlIHtcbiAgICAgIGRpcmVjdG9yeSA9IHRoaXMuZGlyZWN0b3J5KClcbiAgICAgIGRpcmVjdG9yaWVzLnB1c2goYCR7dGhpcy5kaXJlY3RvcnkoKX0vX190ZXN0c19fYClcbiAgICAgIGRpcmVjdG9yaWVzLnB1c2goYCR7dGhpcy5kaXJlY3RvcnkoKX0vdGVzdHNgKVxuICAgICAgZGlyZWN0b3JpZXMucHVzaChgJHt0aGlzLmRpcmVjdG9yeSgpfS9zcGVjYClcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBpbmNsdWRlVGFncyxcbiAgICAgIGV4Y2x1ZGVUYWdzLFxuICAgICAgZXhhbXBsZVBhdHRlcm5zLFxuICAgICAgZmlsdGVyZWRQcm9jZXNzQXJncyxcbiAgICAgIGdyb3VwcyxcbiAgICAgIGdyb3VwTnVtYmVyLFxuICAgICAgcHJvZmlsZSxcbiAgICAgIHByb2ZpbGVKc29uUGF0aCxcbiAgICAgIHJldHJpZXMsXG4gICAgICBzZXR1cEZpbGVzLFxuICAgICAgdGltaW5nTWFuaWZlc3RQYXRoLFxuICAgICAgdGltaW5nTWFuaWZlc3RPdXRwdXRQYXRoLFxuICAgICAgdGltZW91dE1zXG4gICAgfSA9IHBhcnNlRmlsdGVycyh0aGlzLnByb2Nlc3NBcmdzIHx8IFtdKVxuICAgIGNvbnN0IHByb2ZpbGVPcHRpb25zID0gcmVzb2x2ZVRlc3RQcm9maWxlT3B0aW9ucyh7XG4gICAgICBjd2Q6IHByb2Nlc3MuY3dkKCksXG4gICAgICBwcm9maWxlLFxuICAgICAgcHJvZmlsZUpzb25QYXRoLFxuICAgICAgdGltaW5nTWFuaWZlc3RQYXRoLFxuICAgICAgdGltaW5nTWFuaWZlc3RPdXRwdXRQYXRoXG4gICAgfSlcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB7XG4gICAgICBleGNsdWRlVGFnQ291bnQ6IGV4Y2x1ZGVUYWdzLmxlbmd0aCxcbiAgICAgIGhhc0V4YW1wbGVGaWx0ZXJzOiBleGFtcGxlUGF0dGVybnMubGVuZ3RoID4gMCxcbiAgICAgIGluY2x1ZGVUYWdDb3VudDogaW5jbHVkZVRhZ3MubGVuZ3RoLFxuICAgICAgc2hhcmQ6IGdyb3VwcyAhPT0gdW5kZWZpbmVkICYmIGdyb3VwTnVtYmVyICE9PSB1bmRlZmluZWQgPyB7Z3JvdXBzLCBncm91cE51bWJlcn0gOiB1bmRlZmluZWRcbiAgICB9XG4gICAgY29uc3QgcHJvZmlsZXIgPSBwcm9maWxlT3B0aW9ucy5wcm9maWxlXG4gICAgICA/IG5ldyBUZXN0UHJvZmlsZXIoe2NvbmZpZ3VyYXRpb246IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLCBwcm9qZWN0RGlyZWN0b3J5OiBkaXJlY3RvcnksIHNlbGVjdGlvbn0pXG4gICAgICA6IHVuZGVmaW5lZFxuICAgIGNvbnN0IHRlc3RGaWxlc0ZpbmRlciA9IG5ldyBUZXN0RmlsZXNGaW5kZXIoe2RpcmVjdG9yeSwgZGlyZWN0b3JpZXMsIHByb2Nlc3NBcmdzOiBmaWx0ZXJlZFByb2Nlc3NBcmdzfSlcbiAgICAvKiogQHR5cGUge1Rlc3RSdW5uZXIgfCB1bmRlZmluZWR9ICovXG4gICAgbGV0IHRlc3RSdW5uZXJcbiAgICBsZXQgcHJvZmlsZUZpbmFsaXplZCA9IGZhbHNlXG5cbiAgICAvKipcbiAgICAgKiBGaW5hbGl6ZXMgcmVxdWVzdGVkIG91dHB1dHMgb25jZSBmb3IgZXZlcnkgY29tbWFuZCBvdXRjb21lLlxuICAgICAqIEBwYXJhbSB7aW1wb3J0KFwiQHZlbG9jaW91cy90ZXN0aW5nL25vZGVcIikuVGVzdFByb2ZpbGVTdGF0dXN9IHN0YXR1cyAtIFJ1biBzdGF0dXMuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgcmVxdWVzdGVkIG91dHB1dHMgYXJlIHdyaXR0ZW4uXG4gICAgICovXG4gICAgY29uc3QgZmluYWxpemVQcm9maWxlID0gYXN5bmMgKHN0YXR1cykgPT4ge1xuICAgICAgaWYgKCFwcm9maWxlciB8fCBwcm9maWxlRmluYWxpemVkKSByZXR1cm5cblxuICAgICAgcHJvZmlsZUZpbmFsaXplZCA9IHRydWVcbiAgICAgIGNvbnN0IGZhaWxlZCA9IHRlc3RSdW5uZXI/LmdldEZhaWxlZFRlc3RzKCkgPz8gMFxuICAgICAgY29uc3QgcGFzc2VkID0gdGVzdFJ1bm5lcj8uZ2V0U3VjY2Vzc2Z1bFRlc3RzKCkgPz8gMFxuICAgICAgY29uc3QgcHJvZmlsZURvY3VtZW50ID0gcHJvZmlsZXIuZmluaXNoKHtcbiAgICAgICAgY291bnRzOiB7XG4gICAgICAgICAgZGlzY292ZXJlZDogdGVzdFJ1bm5lcj8uZ2V0VGVzdHNDb3VudCgpID8/IDAsXG4gICAgICAgICAgZXhlY3V0ZWQ6IHRlc3RSdW5uZXI/LmdldEV4ZWN1dGVkVGVzdHNDb3VudCgpID8/IDAsXG4gICAgICAgICAgZmFpbGVkLFxuICAgICAgICAgIHBhc3NlZFxuICAgICAgICB9LFxuICAgICAgICBmb2N1c2VkOiBCb29sZWFuKHRlc3RSdW5uZXI/LmFueVRlc3RzRm9jdXNzZWQpLFxuICAgICAgICBzdGF0dXNcbiAgICAgIH0pXG5cbiAgICAgIGF3YWl0IHdyaXRlVGVzdFByb2ZpbGVPdXRwdXRzKHtcbiAgICAgICAgcHJvZmlsZTogcHJvZmlsZURvY3VtZW50LFxuICAgICAgICBwcm9maWxlSnNvblBhdGg6IHByb2ZpbGVPcHRpb25zLnByb2ZpbGVKc29uUGF0aCxcbiAgICAgICAgdGltaW5nTWFuaWZlc3RPdXRwdXRQYXRoOiBwcm9maWxlT3B0aW9ucy50aW1pbmdNYW5pZmVzdE91dHB1dFBhdGhcbiAgICAgIH0pXG4gICAgICBjb25zb2xlLmxvZyhgXFxuJHtmb3JtYXRUZXN0UHJvZmlsZVN1bW1hcnkocHJvZmlsZURvY3VtZW50LCBwcm9maWxlT3B0aW9ucyl9YClcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZGlzY292ZXJUZXN0RmlsZXMgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRpbWluZ01hbmlmZXN0ID0gYXdhaXQgbG9hZFRpbWluZ01hbmlmZXN0KHByb2ZpbGVPcHRpb25zLnRpbWluZ01hbmlmZXN0UGF0aClcbiAgICAgICAgbGV0IGRpc2NvdmVyZWRUZXN0RmlsZXMgPSBhd2FpdCB0ZXN0RmlsZXNGaW5kZXIuZmluZFRlc3RGaWxlcygpXG4gICAgICAgIGNvbnN0IGxpbmVGaWx0ZXJzID0gdGVzdEZpbGVzRmluZGVyLmdldExpbmVGaWx0ZXJzQnlGaWxlKClcblxuICAgICAgICBpZiAocHJvZmlsZXIpIHtcbiAgICAgICAgICBjb25zdCBkaXNjb3ZlcmVkRmlsZVBhdGhzID0gZGlzY292ZXJlZFRlc3RGaWxlcy5tYXAoKGZpbGVQYXRoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gY2Fub25pY2FsVGltaW5nTWFuaWZlc3RQYXRoKHBhdGgucmVsYXRpdmUoZGlyZWN0b3J5LCBmaWxlUGF0aCkpXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHByb2ZpbGVyLnNldFNlbGVjdGlvbih7XG4gICAgICAgICAgICBkaXNjb3ZlcmVkRmlsZUNvdW50OiBkaXNjb3ZlcmVkVGVzdEZpbGVzLmxlbmd0aCxcbiAgICAgICAgICAgIGhhc0xpbmVGaWx0ZXJzOiBPYmplY3Qua2V5cyhsaW5lRmlsdGVycykubGVuZ3RoID4gMCxcbiAgICAgICAgICAgIHBhdGhCYXNlOiBwcm9jZXNzLmVudi5WRUxPQ0lPVVNfVEVTVF9ESVIgPyBcInRlc3QtZGlyZWN0b3J5XCIgOiBcImNvbmZpZ3VyYXRpb24tZGlyZWN0b3J5XCIsXG4gICAgICAgICAgICB0ZXN0RmlsZVNldEhhc2g6IHRpbWluZ01hbmlmZXN0RmlsZVNldEhhc2goZGlzY292ZXJlZEZpbGVQYXRocylcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGdyb3VwcyAhPT0gdW5kZWZpbmVkIHx8IGdyb3VwTnVtYmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAoZ3JvdXBzID09PSB1bmRlZmluZWQgfHwgZ3JvdXBOdW1iZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQm90aCAtLWdyb3VwcyBhbmQgLS1ncm91cC1udW1iZXIgbXVzdCBiZSBwcm92aWRlZCB0b2dldGhlclwiKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHNwbGl0dGVyID0gbmV3IFRlc3RTdWl0ZVNwbGl0dGVyKHtcbiAgICAgICAgICAgIGdyb3VwcyxcbiAgICAgICAgICAgIGdyb3VwTnVtYmVyLFxuICAgICAgICAgICAgdGVzdEZpbGVzOiBkaXNjb3ZlcmVkVGVzdEZpbGVzLFxuICAgICAgICAgICAgYmFzZURpcmVjdG9yeTogZGlyZWN0b3J5LFxuICAgICAgICAgICAgdGltaW5nTWFuaWZlc3RcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgaWYgKHByb2ZpbGVPcHRpb25zLnRpbWluZ01hbmlmZXN0UGF0aCkge1xuICAgICAgICAgICAgY29uc3QgY292ZXJhZ2UgPSBzcGxpdHRlci5nZXRUaW1pbmdNYW5pZmVzdENvdmVyYWdlKClcblxuICAgICAgICAgICAgY29uc29sZS5sb2cocGljb2NvbG9ycy5jeWFuKFxuICAgICAgICAgICAgICBgVGltaW5nIG1hbmlmZXN0IGNvdmVyYWdlOiBtZWFzdXJlZD0ke2NvdmVyYWdlLm1lYXN1cmVkRmlsZXN9IGAgK1xuICAgICAgICAgICAgICBgaGV1cmlzdGljPSR7Y292ZXJhZ2UuaGV1cmlzdGljRmlsZXN9IHN0YWxlPSR7Y292ZXJhZ2Uuc3RhbGVFbnRyaWVzfWBcbiAgICAgICAgICAgICkpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGlzY292ZXJlZFRlc3RGaWxlcyA9IHNwbGl0dGVyLmdldEdyb3VwRmlsZXMoKVxuICAgICAgICAgIGNvbnNvbGUubG9nKHBpY29jb2xvcnMuY3lhbihgUnVubmluZyBncm91cCAke2dyb3VwTnVtYmVyfSBvZiAke2dyb3Vwc30gKCR7ZGlzY292ZXJlZFRlc3RGaWxlcy5sZW5ndGh9IGZpbGVzKWApKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRpc2NvdmVyZWRUZXN0RmlsZXNcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRlc3RGaWxlcyA9IHByb2ZpbGVyXG4gICAgICAgID8gYXdhaXQgcHJvZmlsZXIubWVhc3VyZVBoYXNlKFwiZGlzY292ZXJ5XCIsIGRpc2NvdmVyVGVzdEZpbGVzKVxuICAgICAgICA6IGF3YWl0IGRpc2NvdmVyVGVzdEZpbGVzKClcblxuICAgICAgcHJvZmlsZXI/LnNldFNlbGVjdGlvbih7ZmlsZUNvdW50OiB0ZXN0RmlsZXMubGVuZ3RofSlcbiAgICAgIHRlc3RSdW5uZXIgPSBuZXcgVGVzdFJ1bm5lcih7XG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLFxuICAgICAgICBleGNsdWRlVGFncyxcbiAgICAgICAgaW5jbHVkZVRhZ3MsXG4gICAgICAgIHRlc3RGaWxlcyxcbiAgICAgICAgbGluZUZpbHRlcnM6IHRlc3RGaWxlc0ZpbmRlci5nZXRMaW5lRmlsdGVyc0J5RmlsZSgpLFxuICAgICAgICBleGFtcGxlUGF0dGVybnM6IG5vcm1hbGl6ZUV4YW1wbGVQYXR0ZXJucyhleGFtcGxlUGF0dGVybnMpLFxuICAgICAgICBwcm9maWxlcixcbiAgICAgICAgcmV0cmllcyxcbiAgICAgICAgc2V0dXBGaWxlczogc2V0dXBGaWxlcy5tYXAoKHNldHVwRmlsZSkgPT4gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIHNldHVwRmlsZSkpLFxuICAgICAgICB0aW1lb3V0TXNcbiAgICAgIH0pXG4gICAgICBjb25zdCBhY3RpdmVUZXN0UnVubmVyID0gdGVzdFJ1bm5lclxuICAgICAgbGV0IHNpZ25hbEhhbmRsZWQgPSBmYWxzZVxuXG4gICAgICBjb25zdCBoYW5kbGVTaWduYWwgPSBhc3luYyAoLyoqIEB0eXBlIHtzdHJpbmd9ICovIHNpZ25hbCkgPT4ge1xuICAgICAgICBpZiAoc2lnbmFsSGFuZGxlZCkgcmV0dXJuXG4gICAgICAgIHNpZ25hbEhhbmRsZWQgPSB0cnVlXG4gICAgICAgIHByb2ZpbGVyPy5pbnRlcnJ1cHQoKVxuICAgICAgICBjb25zb2xlLmVycm9yKGBcXG5SZWNlaXZlZCAke3NpZ25hbH0sIHJ1bm5pbmcgYWZ0ZXJBbGwgaG9va3MgYmVmb3JlIGV4aXQuLi5gKVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgYWN0aXZlVGVzdFJ1bm5lci5ydW5BZnRlckFsbHNGb3JBY3RpdmVTY29wZXMoKVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgd2hpbGUgcnVubmluZyBhZnRlckFsbCBob29rczpcIiwgZXJyb3IpXG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IGZpbmFsaXplUHJvZmlsZShcImludGVycnVwdGVkXCIpXG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgd2hpbGUgd3JpdGluZyBpbnRlcnJ1cHRlZCB0ZXN0IHByb2ZpbGU6XCIsIGVycm9yKVxuICAgICAgICAgIH1cbiAgICAgICAgICBwcm9jZXNzLmV4aXQoMTMwKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHByb2Nlc3Mub25jZShcIlNJR0lOVFwiLCAoKSA9PiB7IHZvaWQgaGFuZGxlU2lnbmFsKFwiU0lHSU5UXCIpIH0pXG4gICAgICBwcm9jZXNzLm9uY2UoXCJTSUdURVJNXCIsICgpID0+IHsgdm9pZCBoYW5kbGVTaWduYWwoXCJTSUdURVJNXCIpIH0pXG5cbiAgICAgIGF3YWl0IHRlc3RSdW5uZXIucHJlcGFyZSgpXG4gICAgICBjb25zdCBlZmZlY3RpdmVFeGNsdWRlVGFnQ291bnQgPSB0ZXN0UnVubmVyLmdldEV4Y2x1ZGVUYWdTZXQoKS5zaXplXG5cbiAgICAgIHByb2ZpbGVyPy5zZXRTZWxlY3Rpb24oe2V4Y2x1ZGVUYWdDb3VudDogZWZmZWN0aXZlRXhjbHVkZVRhZ0NvdW50fSlcblxuICAgICAgaWYgKHRlc3RSdW5uZXIuZ2V0VGVzdHNDb3VudCgpID09PSAwKSB7XG4gICAgICAgIGF3YWl0IGZpbmFsaXplUHJvZmlsZShcIm5vLXRlc3RzXCIpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0ZXN0UnVubmVyLmdldFRlc3RzQ291bnQoKX0gdGVzdHMgd2FzIGZvdW5kIGluICR7dGVzdEZpbGVzLmxlbmd0aH0gZmlsZShzKWApXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRlc3RSdW5uZXIucnVuKClcblxuICAgICAgY29uc3QgZXhlY3V0ZWRUZXN0cyA9IHRlc3RSdW5uZXIuZ2V0RXhlY3V0ZWRUZXN0c0NvdW50KClcbiAgICAgIGNvbnN0IGxpbmVGaWx0ZXJzID0gdGVzdFJ1bm5lci5nZXRMaW5lRmlsdGVycygpXG4gICAgICBjb25zdCBoYXNMaW5lRmlsdGVycyA9IE9iamVjdC5rZXlzKGxpbmVGaWx0ZXJzKS5sZW5ndGggPiAwXG4gICAgICBjb25zdCBoYXNFeGFtcGxlRmlsdGVycyA9IGV4YW1wbGVQYXR0ZXJucy5sZW5ndGggPiAwXG4gICAgICBjb25zdCBoYXNUYWdGaWx0ZXJzID0gaW5jbHVkZVRhZ3MubGVuZ3RoID4gMCB8fCBlZmZlY3RpdmVFeGNsdWRlVGFnQ291bnQgPiAwXG5cbiAgICAgIGlmICgoaGFzVGFnRmlsdGVycyB8fCBoYXNMaW5lRmlsdGVycyB8fCBoYXNFeGFtcGxlRmlsdGVycykgJiYgdGVzdFJ1bm5lci5oYXNOb01hdGNoZXMoKSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKHBpY29jb2xvcnMucmVkKFwiXFxuTm8gdGVzdHMgbWF0Y2hlZCB0aGUgcHJvdmlkZWQgZmlsdGVyc1wiKSlcbiAgICAgICAgYXdhaXQgZmluYWxpemVQcm9maWxlKFwibm8tdGVzdHNcIilcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgICB9XG5cbiAgICAgIC8vIFJlcG9ydCB0aGUgc2xvd2VzdCB0ZXN0cyBzbyBzdWl0ZSBob3RzcG90cyBhcmUgdmlzaWJsZSBldmVyeSBydW4uIERlZmF1bHRzIHRvXG4gICAgICAvLyB0aGUgdG9wIDEwOyB0dW5lIHdpdGggVkVMT0NJT1VTX1NMT1dfVEVTVF9DT1VOVCAoMCBkaXNhYmxlcykuIFNraXBwZWQgZm9yXG4gICAgICAvLyBzaW5nbGUtdGVzdCBydW5zIHdoZXJlIGl0IHdvdWxkIGp1c3QgYmUgbm9pc2UuXG4gICAgICBjb25zdCBzbG93VGVzdENvdW50ID0gcmVzb2x2ZVNsb3dUZXN0Q291bnQocHJvY2Vzcy5lbnYuVkVMT0NJT1VTX1NMT1dfVEVTVF9DT1VOVClcblxuICAgICAgaWYgKHNsb3dUZXN0Q291bnQgPiAwICYmIGV4ZWN1dGVkVGVzdHMgPiAxKSB7XG4gICAgICAgIGNvbnN0IHNsb3dlc3RUZXN0cyA9IHRlc3RSdW5uZXIuZ2V0U2xvd2VzdFRlc3RzKHNsb3dUZXN0Q291bnQpXG5cbiAgICAgICAgaWYgKHNsb3dlc3RUZXN0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc29sZS5sb2cocGljb2NvbG9ycy5jeWFuKGBcXG5TbG93ZXN0ICR7c2xvd2VzdFRlc3RzLmxlbmd0aH0gdGVzdHM6YCkpXG5cbiAgICAgICAgICBmb3IgKGNvbnN0IHNsb3dUZXN0IG9mIHNsb3dlc3RUZXN0cykge1xuICAgICAgICAgICAgY29uc3QgbG9jYXRpb24gPSBzbG93VGVzdC5maWxlUGF0aCAmJiBzbG93VGVzdC5saW5lID8gYCAoJHtzbG93VGVzdC5maWxlUGF0aH06JHtzbG93VGVzdC5saW5lfSlgIDogXCJcIlxuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhwaWNvY29sb3JzLmN5YW4oYCAgJHtTdHJpbmcoc2xvd1Rlc3QuZHVyYXRpb25NcykucGFkU3RhcnQoNil9bXMgICR7c2xvd1Rlc3QuZnVsbERlc2NyaXB0aW9ufSR7bG9jYXRpb259YCkpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0ZXN0UnVubmVyLmlzRmFpbGVkKCkpIHtcbiAgICAgICAgYXdhaXQgdGVzdFJ1bm5lci5wZXJzaXN0RmFpbGVkVGVzdENvbnNvbGVPdXRwdXRzVG9Bc3NldHMoKVxuICAgICAgICBjb25zdCBmYWlsZWRUZXN0cyA9IHRlc3RSdW5uZXIuZ2V0RmFpbGVkVGVzdERldGFpbHMoKVxuXG4gICAgICAgIGlmIChmYWlsZWRUZXN0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihwaWNvY29sb3JzLnJlZChcIlxcbkZhaWxlZCB0ZXN0czpcIikpXG5cbiAgICAgICAgICBmb3IgKGNvbnN0IGZhaWxlZCBvZiBmYWlsZWRUZXN0cykge1xuICAgICAgICAgICAgY29uc3QgbG9jYXRpb24gPSBmYWlsZWQuZmlsZVBhdGggJiYgZmFpbGVkLmxpbmVcbiAgICAgICAgICAgICAgPyBgICgke2ZhaWxlZC5maWxlUGF0aH06JHtmYWlsZWQubGluZX0pYFxuICAgICAgICAgICAgICA6IFwiXCJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IocGljb2NvbG9ycy5yZWQoYC0gJHtmYWlsZWQuZnVsbERlc2NyaXB0aW9ufSR7bG9jYXRpb259YCkpXG5cbiAgICAgICAgICAgIGlmIChmYWlsZWQuY29uc29sZUxvZ1BhdGgpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihwaWNvY29sb3JzLnJlZChgICBDb25zb2xlIGxvZzogJHtmYWlsZWQuY29uc29sZUxvZ1BhdGh9YCkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRlc3RSdW5uZXIuZ2V0Tm90UnVuVGVzdHMoKSA+IDApIGNvbnNvbGUuZXJyb3IoYCR7dGVzdFJ1bm5lci5nZXROb3RSdW5UZXN0cygpfSB0ZXN0cyBub3QgcnVuIGJlY2F1c2UgYSBzaGFyZWQgcmVzb3VyY2UgZmFpbGVkYClcbiAgICAgICAgY29uc29sZS5lcnJvcihwaWNvY29sb3JzLnJlZChgXFxuVGVzdCBydW4gZmFpbGVkIHdpdGggJHt0ZXN0UnVubmVyLmdldEZhaWxlZFRlc3RzKCl9IGZhaWxlZCB0ZXN0cyBhbmQgJHt0ZXN0UnVubmVyLmdldFN1Y2Nlc3NmdWxUZXN0cygpfSBzdWNjZXNzZnVsbGApKVxuICAgICAgICBhd2FpdCBmaW5hbGl6ZVByb2ZpbGUoXCJmYWlsZWRcIilcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgICB9IGVsc2UgaWYgKHRlc3RSdW5uZXIuYXJlQW55VGVzdHNGb2N1c3NlZCgpKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IocGljb2NvbG9ycy5yZWQoYFxcbkZvY3Vzc2VkIHJ1biB3aXRoICR7dGVzdFJ1bm5lci5nZXRGYWlsZWRUZXN0cygpfSBmYWlsZWQgdGVzdHMgYW5kICR7dGVzdFJ1bm5lci5nZXRTdWNjZXNzZnVsVGVzdHMoKX0gc3VjY2Vzc2Z1bGxgKSlcbiAgICAgICAgYXdhaXQgZmluYWxpemVQcm9maWxlKFwiZm9jdXNlZFwiKVxuICAgICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKHBpY29jb2xvcnMuZ3JlZW4oYFxcblRlc3QgcnVuIHN1Y2NlZWRlZCB3aXRoICR7dGVzdFJ1bm5lci5nZXRTdWNjZXNzZnVsVGVzdHMoKX0gc3VjY2Vzc2Z1bCB0ZXN0c2ApKVxuICAgICAgICBhd2FpdCBmaW5hbGl6ZVByb2ZpbGUoXCJwYXNzZWRcIilcbiAgICAgICAgcHJvY2Vzcy5leGl0KDApXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGZpbmFsaXplUHJvZmlsZShcImVycm9yXCIpXG4gICAgICB9IGNhdGNoIChwcm9maWxlRXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEFnZ3JlZ2F0ZUVycm9yKFtlcnJvciwgcHJvZmlsZUVycm9yXSwgXCJUZXN0IGNvbW1hbmQgYW5kIHByb2ZpbGUgZmluYWxpemF0aW9uIGJvdGggZmFpbGVkXCIsIHtjYXVzZTogcHJvZmlsZUVycm9yfSlcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHsgbG9hZFRpbWluZ01hbmlmZXN0LCByZXNvbHZlVGVzdFByb2ZpbGVPcHRpb25zIH1cblxuLyoqXG4gKiBSZXNvbHZlcyBob3cgbWFueSBzbG93ZXN0IHRlc3RzIHRvIHJlcG9ydCBmcm9tIHRoZSBgVkVMT0NJT1VTX1NMT1dfVEVTVF9DT1VOVGBcbiAqIGVudiB2YWx1ZTogZGVmYXVsdHMgdG8gMTAgd2hlbiB1bnNldDsgMCAob3IgYW4gdW5wYXJzZWFibGUgdmFsdWUpIGRpc2FibGVzIHRoZVxuICogcmVwb3J0OyBvdGhlcndpc2UgdGhlIGZsb29yZWQsIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLlxuICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IHJhd0VudlZhbHVlIC0gUmF3IGVudiB2YWx1ZS5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IC0gTnVtYmVyIG9mIHNsb3dlc3QgdGVzdHMgdG8gcmVwb3J0ICgwIGRpc2FibGVzKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVTbG93VGVzdENvdW50KHJhd0VudlZhbHVlKSB7XG4gIGlmIChyYXdFbnZWYWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gMTBcblxuICByZXR1cm4gTWF0aC5tYXgoMCwgTWF0aC5mbG9vcihOdW1iZXIocmF3RW52VmFsdWUpKSB8fCAwKVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-model-controller.d.ts","sourceRoot":"","sources":["../../src/frontend-model-controller.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"frontend-model-controller.d.ts","sourceRoot":"","sources":["../../src/frontend-model-controller.js"],"names":[],"mappings":"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"}
|