@mnaoumov/typescript-dev-toolkit 4.0.0 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundlers/esbuild-impl/svelte-preprocessor/package.json +6 -0
- package/dist/lib/cjs/bulk-concurrency.cjs +49 -0
- package/dist/lib/cjs/bulk-concurrency.d.cts +14 -0
- package/dist/lib/cjs/bundlers/esbuild-impl/index.cjs +4 -1
- package/dist/lib/cjs/bundlers/esbuild-impl/index.d.cts +1 -0
- package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.cjs +3 -3
- package/dist/lib/cjs/bundlers/esbuild-impl/svelte-preprocessor.cjs +152 -0
- package/dist/lib/cjs/bundlers/esbuild-impl/svelte-preprocessor.d.cts +95 -0
- package/dist/lib/cjs/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +4 -3
- package/dist/lib/cjs/bundlers/esbuild-impl/svelte-wrapper-plugin.d.cts +1 -1
- package/dist/lib/cjs/docs-site/docs-links.cjs +3 -2
- package/dist/lib/cjs/docs-site/og-images.cjs +3 -2
- package/dist/lib/cjs/index.cjs +4 -1
- package/dist/lib/cjs/index.d.cts +1 -0
- package/dist/lib/cjs/library-build.cjs +8 -8
- package/dist/lib/cjs/linters/eslint-config.cjs +7 -5
- package/dist/lib/cjs/linters/eslint-no-restricted-syntax.cjs +5 -1
- package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.cjs +5 -1
- package/dist/lib/cjs/linters/eslint-rules/index.cjs +7 -1
- package/dist/lib/cjs/linters/eslint-rules/index.d.cts +2 -0
- package/dist/lib/cjs/linters/eslint-rules/no-keyword-identifiers.cjs +144 -0
- package/dist/lib/cjs/linters/eslint-rules/no-keyword-identifiers.d.cts +11 -0
- package/dist/lib/cjs/linters/eslint-rules/no-unresolved-jsdoc-link.cjs +5 -5
- package/dist/lib/cjs/linters/eslint-rules/prefer-noop-async.cjs +80 -3
- package/dist/lib/cjs/linters/eslint-rules/readonly-member-arrays.cjs +130 -0
- package/dist/lib/cjs/linters/eslint-rules/readonly-member-arrays.d.cts +6 -0
- package/dist/lib/cjs/linters/markdownlint.cjs +8 -2
- package/dist/lib/cjs/linters/over-exposure.cjs +14 -3
- package/dist/lib/cjs/linters/over-exposure.d.cts +3 -1
- package/dist/lib/cjs/nano-staged-config.cjs +24 -3
- package/dist/lib/cjs/nano-staged-config.d.cts +4 -0
- package/dist/lib/cjs/released-issues.cjs +4 -4
- package/dist/lib/cjs/test-runners/auto.cjs +1 -1
- package/dist/lib/cjs/test-runners/auto.d.cts +5 -0
- package/dist/lib/cjs/test-runners/forwarded-arguments.cjs +50 -0
- package/dist/lib/cjs/test-runners/forwarded-arguments.d.cts +49 -0
- package/dist/lib/cjs/test-runners/index.cjs +4 -1
- package/dist/lib/cjs/test-runners/index.d.cts +1 -0
- package/dist/lib/cjs/test-runners/jest.cjs +16 -3
- package/dist/lib/cjs/test-runners/jest.d.cts +5 -0
- package/dist/lib/cjs/test-runners/vitest.cjs +111 -5
- package/dist/lib/cjs/test-runners/vitest.d.cts +5 -0
- package/dist/lib/cjs/upstream-sync.cjs +3 -3
- package/dist/lib/esm/bulk-concurrency.d.mts +14 -0
- package/dist/lib/esm/bulk-concurrency.mjs +15 -0
- package/dist/lib/esm/bundlers/esbuild-impl/index.d.mts +1 -0
- package/dist/lib/esm/bundlers/esbuild-impl/index.mjs +3 -1
- package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.mjs +3 -3
- package/dist/lib/esm/bundlers/esbuild-impl/svelte-preprocessor.d.mts +95 -0
- package/dist/lib/esm/bundlers/esbuild-impl/svelte-preprocessor.mjs +126 -0
- package/dist/lib/esm/bundlers/esbuild-impl/svelte-wrapper-plugin.d.mts +1 -1
- package/dist/lib/esm/bundlers/esbuild-impl/svelte-wrapper-plugin.mjs +4 -3
- package/dist/lib/esm/docs-site/docs-links.mjs +3 -2
- package/dist/lib/esm/docs-site/og-images.mjs +3 -2
- package/dist/lib/esm/index.d.mts +1 -0
- package/dist/lib/esm/index.mjs +3 -1
- package/dist/lib/esm/library-build.mjs +8 -8
- package/dist/lib/esm/linters/eslint-config.mjs +7 -5
- package/dist/lib/esm/linters/eslint-no-restricted-syntax.mjs +5 -1
- package/dist/lib/esm/linters/eslint-rules/in-house-plugin.mjs +5 -1
- package/dist/lib/esm/linters/eslint-rules/index.d.mts +2 -0
- package/dist/lib/esm/linters/eslint-rules/index.mjs +5 -1
- package/dist/lib/esm/linters/eslint-rules/no-keyword-identifiers.d.mts +11 -0
- package/dist/lib/esm/linters/eslint-rules/no-keyword-identifiers.mjs +120 -0
- package/dist/lib/esm/linters/eslint-rules/no-unresolved-jsdoc-link.mjs +5 -5
- package/dist/lib/esm/linters/eslint-rules/prefer-noop-async.mjs +80 -3
- package/dist/lib/esm/linters/eslint-rules/readonly-member-arrays.d.mts +6 -0
- package/dist/lib/esm/linters/eslint-rules/readonly-member-arrays.mjs +106 -0
- package/dist/lib/esm/linters/markdownlint.mjs +8 -2
- package/dist/lib/esm/linters/over-exposure.d.mts +3 -1
- package/dist/lib/esm/linters/over-exposure.mjs +16 -3
- package/dist/lib/esm/nano-staged-config.d.mts +4 -0
- package/dist/lib/esm/nano-staged-config.mjs +24 -3
- package/dist/lib/esm/released-issues.mjs +4 -4
- package/dist/lib/esm/test-runners/auto.d.mts +5 -0
- package/dist/lib/esm/test-runners/auto.mjs +1 -1
- package/dist/lib/esm/test-runners/forwarded-arguments.d.mts +49 -0
- package/dist/lib/esm/test-runners/forwarded-arguments.mjs +26 -0
- package/dist/lib/esm/test-runners/index.d.mts +1 -0
- package/dist/lib/esm/test-runners/index.mjs +3 -1
- package/dist/lib/esm/test-runners/jest.d.mts +5 -0
- package/dist/lib/esm/test-runners/jest.mjs +16 -3
- package/dist/lib/esm/test-runners/vitest.d.mts +5 -0
- package/dist/lib/esm/test-runners/vitest.mjs +105 -6
- package/dist/lib/esm/upstream-sync.mjs +3 -3
- package/linters/eslint-rules/no-keyword-identifiers/package.json +6 -0
- package/linters/eslint-rules/readonly-member-arrays/package.json +6 -0
- package/package.json +5 -2
- package/test-runners/forwarded-arguments/package.json +6 -0
|
@@ -66,14 +66,35 @@ function getNanoStagedConfig(options) {
|
|
|
66
66
|
const hasAllSharedScripts = [SPELLCHECK_SCRIPT_NAME, ...Object.values(WRITER_SCRIPT_NAMES).flat()].every((scriptName) => scriptNames.has(scriptName));
|
|
67
67
|
const additionalWriterTasks = options?.additionalWriterTasks ?? {};
|
|
68
68
|
if (hasAllSharedScripts && Object.keys(additionalWriterTasks).length === 0) {
|
|
69
|
-
return obsidianDevUtilsConfig;
|
|
69
|
+
return applyBulkBudget(obsidianDevUtilsConfig);
|
|
70
70
|
}
|
|
71
71
|
const writerTasks = toWriterTasks((scriptName) => scriptNames.has(scriptName));
|
|
72
72
|
const duplicatePattern = Object.keys(additionalWriterTasks).find((pattern) => Object.hasOwn(writerTasks, pattern));
|
|
73
73
|
if (duplicatePattern !== void 0) {
|
|
74
74
|
throw new Error(`nano-staged writer pattern '${duplicatePattern}' is already a shared writer pattern.`);
|
|
75
75
|
}
|
|
76
|
-
return partitionSpellcheck({ ...writerTasks, ...additionalWriterTasks }, scriptNames.has(SPELLCHECK_SCRIPT_NAME));
|
|
76
|
+
return applyBulkBudget(partitionSpellcheck({ ...writerTasks, ...additionalWriterTasks }, scriptNames.has(SPELLCHECK_SCRIPT_NAME)));
|
|
77
|
+
}
|
|
78
|
+
function applyBulkBudget(config) {
|
|
79
|
+
const budget = import_node_process.default.env["BULK_CORES"]?.trim() ?? "";
|
|
80
|
+
if (!/^[1-9]\d*$/.test(budget)) {
|
|
81
|
+
return config;
|
|
82
|
+
}
|
|
83
|
+
const commands = [];
|
|
84
|
+
const serialConfig = {};
|
|
85
|
+
for (const [pattern, task] of Object.entries(config)) {
|
|
86
|
+
serialConfig[pattern] = (context) => {
|
|
87
|
+
commands.push(...task(context));
|
|
88
|
+
return [];
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
const collectAll = serialConfig["*"];
|
|
92
|
+
delete serialConfig["*"];
|
|
93
|
+
serialConfig["*"] = (context) => {
|
|
94
|
+
collectAll?.(context);
|
|
95
|
+
return commands.splice(0);
|
|
96
|
+
};
|
|
97
|
+
return serialConfig;
|
|
77
98
|
}
|
|
78
99
|
function batchCommandArguments(prefix, commandArguments) {
|
|
79
100
|
const emptyLength = (0, import_exec.getEffectiveCommandLineLength)("");
|
|
@@ -146,4 +167,4 @@ function toWriterTasks(shouldIncludeScript) {
|
|
|
146
167
|
getNanoStagedConfig,
|
|
147
168
|
obsidianDevUtilsConfig
|
|
148
169
|
});
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL25hbm8tc3RhZ2VkLWNvbmZpZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFNoYXJlZCBuYW5vLXN0YWdlZCBjb25maWd1cmF0aW9uIGZvciBwcmUtY29tbWl0IGhvb2tzLlxuICovXG5cbmltcG9ydCB7XG4gIGlzQWJzb2x1dGUsXG4gIHJlbGF0aXZlXG59IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQge1xuICBpc0VudlZhcmlhYmxlT2ZmLFxuICBsb2FkRW52RmlsZUlmRXhpc3RzXG59IGZyb20gJy4vZW52LXRvZ2dsZS50cyc7XG5pbXBvcnQge1xuICBnZXRFZmZlY3RpdmVDb21tYW5kTGluZUxlbmd0aCxcbiAgZ2V0TWF4QmF0Y2hDb21tYW5kTGVuZ3RoXG59IGZyb20gJy4vZXhlYy50cyc7XG5pbXBvcnQgeyByZWFkUGFja2FnZUpzb25TeW5jIH0gZnJvbSAnLi9ucG0udHMnO1xuaW1wb3J0IHsgZ2V0UGFja2FnZU1hbmFnZXJSdW5Db21tYW5kIH0gZnJvbSAnLi9wYWNrYWdlLW1hbmFnZXIudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBnZXROYW5vU3RhZ2VkQ29uZmlnfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXROYW5vU3RhZ2VkQ29uZmlnT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBSZXBvLXNwZWNpZmljIGZpbGUtcmV3cml0aW5nIHRhc2tzLCBrZXllZCBieSB0aGUgbmFuby1zdGFnZWQgcGF0dGVybiB0aGF0IGNsYWltcyB0aGVpciBmaWxlcy5cbiAgICpcbiAgICogRWFjaCBnZXRzIHNwZWxsY2hlY2sgYXBwZW5kZWQgYW5kIGl0cyBmaWxlcyByZW1vdmVkIGZyb20gdGhlIHNwZWxsY2hlY2stb25seSBrZXksIGV4YWN0bHkgbGlrZSB0aGUgc2hhcmVkXG4gICAqIHdyaXRlcnMuIEEgcGF0dGVybiBtdXN0IG5vdCBjb250YWluIGAvYCwgYW5kIG11c3Qgbm90IHJlcGVhdCBhIHNoYXJlZCB3cml0ZXIgcGF0dGVybi4gRWFjaCBjb21tYW5kIGlzIGFcbiAgICogcHJlZml4IHRoZSBzdGFnZWQgcGF0aHMgYXJlIGFwcGVuZGVkIHRvLCBpbiBiYXRjaGVzLCBsaWtlIHRoZSBzaGFyZWQgb25lcyAoYG5wbSBydW4gbGludDpmaXggLS1gKS5cbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxXcml0ZXJUYXNrcz86IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHJlYWRvbmx5IHN0cmluZ1tdPj47XG59XG5cbi8qKlxuICogQSBuYW5vLXN0YWdlZCBjb25maWd1cmF0aW9uIHdob3NlIGV2ZXJ5IGtleSBpcyBhIHtAbGluayBOYW5vU3RhZ2VkVGFza30uXG4gKi9cbmV4cG9ydCB0eXBlIE5hbm9TdGFnZWRDb25maWcgPSBSZWNvcmQ8c3RyaW5nLCBOYW5vU3RhZ2VkVGFzaz47XG5cbi8qKlxuICogQSBmdW5jdGlvbi12YWx1ZWQgbmFuby1zdGFnZWQgdGFzazogaXQgcmVjZWl2ZXMgdGhlIHN0YWdlZCBmaWxlcyBpdHMgcGF0dGVybiBjbGFpbXMgYW5kIHJldHVybnMgdGhlXG4gKiBjb21tYW5kcyB0byBydW4gb3ZlciB0aGVtLCBpbiBvcmRlci5cbiAqL1xuZXhwb3J0IHR5cGUgTmFub1N0YWdlZFRhc2sgPSAoY29udGV4dDogTmFub1N0YWdlZFRhc2tDb250ZXh0KSA9PiBzdHJpbmdbXTtcblxuLyoqXG4gKiBXaGF0IG5hbm8tc3RhZ2VkIHBhc3NlcyB0byBhIGZ1bmN0aW9uLXZhbHVlZCB0YXNrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hbm9TdGFnZWRUYXNrQ29udGV4dCB7XG4gIC8qKlxuICAgKiBUaGUgYWJzb2x1dGUgcGF0aHMgb2YgdGhlIHN0YWdlZCBmaWxlcyB0aGUgdGFzaydzIHBhdHRlcm4gY2xhaW1zLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZW5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBUaGUgYDxtYW5hZ2VyPiBydW5gIHByZWZpeCBldmVyeSB0YXNrIGJlbG93IGlzIGJ1aWx0IG9uLCByZXNvbHZlZCBvbmNlIGZvciB0aGUgcHJvY2Vzcy5cbiAqXG4gKiBEZXRlY3Rpb24gcHJvYmVzIGZvciBhIGxvY2tmaWxlIGJlc2lkZSBgcGFja2FnZS5qc29uYCwgc28gaXQgaXMgYSBoYW5kZnVsIG9mIGBleGlzdHNTeW5jYCBjYWxscyBhbmRcbiAqIG5vdGhpbmcgbW9yZSBcdTIwMTQgbm8gYC5lbnZgIHJlYWQgYW5kIG5vIGBwcm9jZXNzLmV4aXRgLCB3aGljaCBpcyB3aGF0IGxldHMgaXQgc2l0IGF0IG1vZHVsZSBzY29wZS5cbiAqL1xuY29uc3QgUEFDS0FHRV9NQU5BR0VSX1JVTl9DT01NQU5EID0gZ2V0UGFja2FnZU1hbmFnZXJSdW5Db21tYW5kKCkuam9pbignICcpO1xuXG5jb25zdCBTUEVMTENIRUNLX1NDUklQVF9OQU1FID0gJ3NwZWxsY2hlY2snO1xuXG5jb25zdCBTUEVMTENIRUNLX0NPTU1BTkQgPSB0b1NjcmlwdENvbW1hbmQoU1BFTExDSEVDS19TQ1JJUFRfTkFNRSk7XG5cbi8qKlxuICogUm9vbSBsZWZ0IGluIGV2ZXJ5IGJhdGNoIGZvciB0aGUgcmVzb2x2ZWQgcGF0aCBvZiB0aGUgcGFja2FnZSBtYW5hZ2VyJ3MgZXhlY3V0YWJsZS5cbiAqXG4gKiBuYW5vLXN0YWdlZCBydW5zIGBucG1gIGFzIHRoZSBhYnNvbHV0ZSBwYXRoIG9mIGBucG0uY21kYCAoYDxjb21zcGVjPiAvRCAvUyAvQyBcIjxwYXRoPlwiIFwiPGFyZz5cIiBcdTIwMjZgKSwgd2hpY2hcbiAqIHRoZSBiYXRjaCBjYW5ub3Qgc2VlLCBzbyBhIGZ1bGwgV2luZG93cyBgTUFYX1BBVEhgIGlzIHNldCBhc2lkZSBmb3IgaXQuXG4gKi9cbmNvbnN0IEVYRUNVVEFCTEVfUEFUSF9SRVNFUlZFID0gMjYwO1xuXG4vKipcbiAqIFRoZSBjaGFyYWN0ZXJzIG5hbm8tc3RhZ2VkJ3MgY29tbWFuZCB0b2tlbml6ZXIgY2Fubm90IGNhcnJ5IGluc2lkZSBhbiBhcmd1bWVudC5cbiAqXG4gKiBBIGZ1bmN0aW9uLXZhbHVlZCB0YXNrIHJldHVybnMgaXRzIGNvbW1hbmRzIGFzIFNUUklOR1MsIGFuZCBuYW5vLXN0YWdlZCBzcGxpdHMgZWFjaCBvbmUgd2l0aFxuICogYHN0cmluZ0FyZ3ZUb0FycmF5YCwgd2hpY2ggZW1pdHMgYSBxdW90ZWQgdG9rZW4gdHdpY2UgKG9uY2UgYmFyZSwgb25jZSB3aXRoIGl0cyBxdW90ZXMpIGFuZCBoYXMgbm8gZXNjYXBlLlxuICogU28gYSBwYXRoIGhvbGRpbmcgd2hpdGVzcGFjZSBvciBhIHF1b3RlIGNhbm5vdCBiZSBwYXNzZWQgYXMgaXRzZWxmLlxuICovXG5jb25zdCBUT0tFTklaRVJfVU5TQUZFX0NIQVJBQ1RFUlNfUkVHX0VYUCA9IC9bXFxzXCInXS9nO1xuXG4vKipcbiAqIFRoZSBucG0gc2NyaXB0cyB0aGF0IFJFV1JJVEUgYSBzdGFnZWQgZmlsZSwgaW4gdGhlIG9yZGVyIHRoZXkgcnVuLCBrZXllZCBieSB0aGUgbmFuby1zdGFnZWQgcGF0dGVybiB0aGF0XG4gKiBjbGFpbXMgaXQuXG4gKlxuICogYGxpbnQ6Zml4YCBhbmQgYGZvcm1hdGAgYm90aCByZXdyaXRlIHRoZSBmaWxlLCBzbyB0aGV5IGhhdmUgdG8gc2hhcmUgb25lIGtleTogbmFuby1zdGFnZWQgcnVucyBpdHNcbiAqIHBlci1wYXR0ZXJuIGdyb3VwcyB1bmRlciBgUHJvbWlzZS5hbGxgIChgcnVuKClgIGluIGBuYW5vLXN0YWdlZC9saWIvY21kLXJ1bm5lci5qc2ApLCBhbmQgc2VxdWVuY2VzIG9ubHlcbiAqIHRoZSBjb21tYW5kcyBJTlNJREUgYSBzaW5nbGUga2V5J3MgYXJyYXkgKGBydW5UYXNrKClgLCBhIGBmb3IgLi4uIG9mIGF3YWl0YCkuIFNwbGl0IGFjcm9zcyB0d28ga2V5cyB0aGV5XG4gKiByYWNlLCB3aGljaGV2ZXIgZmluaXNoZXMgbGFzdCB3aW5zLCBhbmQgdGhlIGNvbW1pdCBzdGFnZXMgYnl0ZXMgdGhhdCBuZWl0aGVyIHRvb2wgd291bGQgaGF2ZSBwcm9kdWNlZCBvblxuICogaXRzIG93bi5cbiAqXG4gKiBTbyBkbyBOT1QgZXhwcmVzcyBhIGRpcmVjdG9yeSBleGNsdXNpb24gYnkgZ2l2aW5nIG9uZSBvZiB0aGVzZSB0d28gaXRzIG93biBuZWdhdGVkIGtleSAtLSB0aGF0IHNpbGVudGx5XG4gKiB0YWtlcyB0aGUgb3JkZXJpbmcgYXdheS4gQW4gZXhjbHVzaW9uIGJlbG9uZ3MgaW4gdGhlIGV4Y2x1ZGVkIHRvb2wncyBvd24gY29uZmlnLCB3aGVyZSBFU0xpbnQnc1xuICogYGdsb2JhbElnbm9yZXNgIGFscmVhZHkgcHV0cyBpdDogYSBwYXRoIEVTTGludCBpZ25vcmVzIGlzIHJlcG9ydGVkIGFzIGEgd2FybmluZyBhbmQgZXhpdHMgMCB3aGVuIGl0IGlzXG4gKiBwYXNzZWQgZXhwbGljaXRseSwgc28gaXQgY29zdHMgYSBjb25zb2xlIGxpbmUgcmF0aGVyIHRoYW4gYSBmYWlsZWQgY29tbWl0IGFuZCBuZWVkcyBubyBrZXkgaGVyZS5cbiAqL1xuY29uc3QgV1JJVEVSX1NDUklQVF9OQU1FUzogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgcmVhZG9ubHkgc3RyaW5nW10+PiA9IHtcbiAgJyoue3RzLHRzeCxtdHN9JzogWydsaW50OmZpeCcsICdmb3JtYXQnXSxcbiAgJyoubWQnOiBbJ2xpbnQ6bWQ6Zml4J11cbn07XG5cbmNvbnN0IFdSSVRFUl9UQVNLUzogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgcmVhZG9ubHkgc3RyaW5nW10+PiA9IHRvV3JpdGVyVGFza3MoKCkgPT4gdHJ1ZSk7XG5cbi8qKlxuICogTmFuby1zdGFnZWQgY29uZmlndXJhdGlvbiB0aGF0IHJ1bnMgZmlsZS1iYXNlZCBsaW50LCBmb3JtYXQsIGFuZCBzcGVsbGNoZWNrIG9uIHN0YWdlZCBmaWxlcy5cbiAqXG4gKiBPbmx5IGluY2x1ZGVzIHRvb2xzIHRoYXQgY2FuIG9wZXJhdGUgb24gaW5kaXZpZHVhbCBmaWxlcy4gV2hvbGUtcHJvamVjdCBjaGVja3NcbiAqIChUeXBlU2NyaXB0IGNvbXBpbGF0aW9uLCB1bml0IHRlc3RzKSBhcmUgbGVmdCB0byBDSS5cbiAqXG4gKiBDb21tYW5kcyBydW4gdGhyb3VnaCB0aGUgcGFja2FnZSBtYW5hZ2VyIHRoYXQgb3ducyB0aGUgdHJlZSBcdTIwMTQgYG5wbSBydW4gLi4uIC0tYCwgYGJ1biBydW4gLi4uIC0tYCwgYW5kXG4gKiBzbyBvbiBcdTIwMTQgc28gbmFuby1zdGFnZWQgZmlsZSBwYXRocyBhcmUgZm9yd2FyZGVkIGFzIENMSSBhcmd1bWVudHMsIGJhdGNoZWQgdG8gZml0IHRoZSBjb21tYW5kIGxpbmUgKHNlZVxuICogYHRvQmF0Y2hlZFRhc2tgKS5cbiAqXG4gKiBTcGVsbGNoZWNrIGlzIHBhcnRpdGlvbmVkIGFjcm9zcyB0aGUga2V5cyByYXRoZXIgdGhhbiBnaXZlbiBhIGNhdGNoLWFsbCBgJyonYCBrZXkgKHNlZVxuICogYHBhcnRpdGlvblNwZWxsY2hlY2tgKS4gQSByZXBvIGFkZGluZyBhIGZpbGUtcmV3cml0aW5nIHRhc2sgb2YgaXRzIG93biBwYXNzZXMgaXQgdG9cbiAqIHtAbGluayBnZXROYW5vU3RhZ2VkQ29uZmlnfSBhcyBgYWRkaXRpb25hbFdyaXRlclRhc2tzYCByYXRoZXIgdGhhbiBzcHJlYWRpbmcgdGhpcyBvYmplY3QgYW5kIGFkZGluZyBhIGtleSxcbiAqIHdoaWNoIHdvdWxkIHJlaW50cm9kdWNlIHRoZSBvdmVybGFwIGZvciB0aGF0IGtleSdzIGZpbGVzLlxuICovXG5leHBvcnQgY29uc3Qgb2JzaWRpYW5EZXZVdGlsc0NvbmZpZzogTmFub1N0YWdlZENvbmZpZyA9IHBhcnRpdGlvblNwZWxsY2hlY2soV1JJVEVSX1RBU0tTLCB0cnVlKTtcblxuY29uc3QgTkFOT19TVEFHRURfRU5WX1ZBUklBQkxFID0gJ05BTk9fU1RBR0VEJztcblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgbmFuby1zdGFnZWQgY29uZmlndXJhdGlvbiB0byB1c2UsIGhvbm9yaW5nIGEgcGVyLWRldmVsb3BlciBvcHQtb3V0LlxuICpcbiAqIExvYWRzIGEgZ2l0aWdub3JlZCBgLmVudmAgaWYgcHJlc2VudCwgdGhlbiBcdTIwMTQgd2hlbiBgTkFOT19TVEFHRURgIGlzIHNldCB0byBhbiBvZmYgdmFsdWUgKGAwYCwgYGZhbHNlYCxcbiAqIGBvZmZgLCBvciBgbm9gKSBcdTIwMTQgcHJpbnRzIGEgbm90aWNlIGFuZCBleGl0cyB0aGUgcHJvY2VzcyBzdWNjZXNzZnVsbHkgc28gdGhlIHByZS1jb21taXQgY2hlY2tzIGFyZVxuICogc2tpcHBlZC4gVGhpcyBtaXJyb3JzIGh1c2t5J3Mgb3duIGBIVVNLWT0wYCBzd2l0Y2gsIGJ1dCBzY29wZWQgdG8gdGhlIG5hbm8tc3RhZ2VkIHN0ZXAgKHNvIHRoZVxuICogY29tbWl0LW1zZyBob29rIHN0aWxsIHJ1bnMpLiBPdGhlcndpc2UgaXQgcmV0dXJucyB7QGxpbmsgb2JzaWRpYW5EZXZVdGlsc0NvbmZpZ30sIG9yIFx1MjAxNCB3aGVuXG4gKiBgYWRkaXRpb25hbFdyaXRlclRhc2tzYCBhcmUgZ2l2ZW4gXHUyMDE0IHRoZSBzYW1lIGNvbmZpZ3VyYXRpb24gcmUtcGFydGl0aW9uZWQgd2l0aCB0aG9zZSB3cml0ZXJzIGFkZGVkLlxuICpcbiAqIEEgc2hhcmVkIHRhc2sgd2hvc2UgbnBtIHNjcmlwdCB0aGUgcHJvamVjdCdzIGBwYWNrYWdlLmpzb25gIGRvZXMgbm90IGRlY2xhcmUgaXMgbGVmdCBvdXQsIHNvIGEgcHJvamVjdFxuICogd2l0aG91dCwgc2F5LCBtYXJrZG93bmxpbnQgZG9lcyBub3QgZmFpbCBpdHMgZmlyc3QgY29tbWl0IHRoYXQgc3RhZ2VzIGEgYC5tZGAgZmlsZSBvbiBhIG1pc3Npbmcgc2NyaXB0LiBBXG4gKiB3cml0ZXIgcGF0dGVybiBsZWZ0IHdpdGggbm8gd3JpdGVyIGlzIGRyb3BwZWQsIGFuZCBzcGVsbGNoZWNrIHJ1bnMgb25seSB3aGVuIGBzcGVsbGNoZWNrYCBpcyBkZWNsYXJlZCwgaW5cbiAqIHdoaWNoIGNhc2UgaXRzIGZpbGVzIGZhbGwgdG8gdGhlIHNwZWxsY2hlY2stb25seSBrZXkuIFRoZSBgYWRkaXRpb25hbFdyaXRlclRhc2tzYCBhcmUgdGhlIGNhbGxlcidzIG93biBhbmRcbiAqIGFyZSBrZXB0IGFzIGdpdmVuLlxuICpcbiAqIGBOQU5PX1NUQUdFRGAgaXMgbm90IGFuIG5wbSBzY3JpcHQsIHNvIGl0IGNhcnJpZXMgaXRzIG93biBzd2l0Y2ggcmF0aGVyIHRoYW4gdGhlIHNjcmlwdC1uYW1lLWRlcml2ZWQgb25lXG4gKiBldmVyeSBucG0gc2NyaXB0IGdldHMgXHUyMDE0IGJ1dCBib3RoIHNoYXJlIHRoZSBzYW1lIG5vdGlvbiBvZiBhbiBvZmYgdmFsdWUsIHZpYSB7QGxpbmsgaXNFbnZWYXJpYWJsZU9mZn0uXG4gKlxuICogVGhpcyBpcyBhIGZ1bmN0aW9uIHJhdGhlciB0aGFuIG1vZHVsZS1sZXZlbCBjb2RlIHNvIGltcG9ydGluZyB0aGUgcGFja2FnZSBiYXJyZWwgbmV2ZXIgdHJpZ2dlcnMgdGhlXG4gKiBgLmVudmAgcmVhZCBvciB0aGUgcHJvY2VzcyBleGl0OyBjYWxsIGl0IGZyb20gdGhlIHRoaW4gYHNjcmlwdHMvbmFuby1zdGFnZWQtY29uZmlnLnRzYCBlbnRyeS4gUmVzb2x2aW5nIHRoZVxuICogcGFja2FnZSBtYW5hZ2VyIGlzIHRoZSBvbmUgdGhpbmcgdGhhdCBkb2VzIHJ1biBhdCBtb2R1bGUgc2NvcGUsIGFuZCBpdCBkb2VzIG5laXRoZXIgb2YgdGhvc2UgdHdvXG4gKiB0aGluZ3MgXHUyMDE0IGl0IG9ubHkgcHJvYmVzIGZvciBhIGxvY2tmaWxlLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbmFsIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBUaGUgbmFuby1zdGFnZWQgdGFzayBjb25maWd1cmF0aW9uLiBEb2VzIG5vdCByZXR1cm4gd2hlbiB0aGUgb3B0LW91dCBpcyBhY3RpdmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROYW5vU3RhZ2VkQ29uZmlnKG9wdGlvbnM/OiBHZXROYW5vU3RhZ2VkQ29uZmlnT3B0aW9ucyk6IE5hbm9TdGFnZWRDb25maWcge1xuICBsb2FkRW52RmlsZUlmRXhpc3RzKCk7XG5cbiAgaWYgKGlzRW52VmFyaWFibGVPZmYoTkFOT19TVEFHRURfRU5WX1ZBUklBQkxFKSkge1xuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBuYW5vLXN0YWdlZDogc2tpcHBlZCAoJHtOQU5PX1NUQUdFRF9FTlZfVkFSSUFCTEV9IGlzIG9mZikuXFxuYCk7XG4gICAgcHJvY2Vzcy5leGl0KDApO1xuICB9XG5cbiAgY29uc3Qgc2NyaXB0TmFtZXMgPSBuZXcgU2V0KE9iamVjdC5rZXlzKHJlYWRQYWNrYWdlSnNvblN5bmMoKS5zY3JpcHRzID8/IHt9KSk7XG4gIGNvbnN0IGhhc0FsbFNoYXJlZFNjcmlwdHMgPSBbU1BFTExDSEVDS19TQ1JJUFRfTkFNRSwgLi4uT2JqZWN0LnZhbHVlcyhXUklURVJfU0NSSVBUX05BTUVTKS5mbGF0KCldXG4gICAgLmV2ZXJ5KChzY3JpcHROYW1lKSA9PiBzY3JpcHROYW1lcy5oYXMoc2NyaXB0TmFtZSkpO1xuICBjb25zdCBhZGRpdGlvbmFsV3JpdGVyVGFza3MgPSBvcHRpb25zPy5hZGRpdGlvbmFsV3JpdGVyVGFza3MgPz8ge307XG4gIGlmIChoYXNBbGxTaGFyZWRTY3JpcHRzICYmIE9iamVjdC5rZXlzKGFkZGl0aW9uYWxXcml0ZXJUYXNrcykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG9ic2lkaWFuRGV2VXRpbHNDb25maWc7XG4gIH1cblxuICBjb25zdCB3cml0ZXJUYXNrcyA9IHRvV3JpdGVyVGFza3MoKHNjcmlwdE5hbWUpID0+IHNjcmlwdE5hbWVzLmhhcyhzY3JpcHROYW1lKSk7XG4gIGNvbnN0IGR1cGxpY2F0ZVBhdHRlcm4gPSBPYmplY3Qua2V5cyhhZGRpdGlvbmFsV3JpdGVyVGFza3MpLmZpbmQoKHBhdHRlcm4pID0+IE9iamVjdC5oYXNPd24od3JpdGVyVGFza3MsIHBhdHRlcm4pKTtcbiAgaWYgKGR1cGxpY2F0ZVBhdHRlcm4gIT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbmFuby1zdGFnZWQgd3JpdGVyIHBhdHRlcm4gJyR7ZHVwbGljYXRlUGF0dGVybn0nIGlzIGFscmVhZHkgYSBzaGFyZWQgd3JpdGVyIHBhdHRlcm4uYCk7XG4gIH1cblxuICByZXR1cm4gcGFydGl0aW9uU3BlbGxjaGVjayh7IC4uLndyaXRlclRhc2tzLCAuLi5hZGRpdGlvbmFsV3JpdGVyVGFza3MgfSwgc2NyaXB0TmFtZXMuaGFzKFNQRUxMQ0hFQ0tfU0NSSVBUX05BTUUpKTtcbn1cblxuLyoqXG4gKiBTcGxpdHMgY29tbWFuZCBhcmd1bWVudHMgaW50byBiYXRjaGVzIHRoYXQgZWFjaCBmaXQgb25lIGNvbW1hbmQgbGluZSBhZnRlciBhIGdpdmVuIHByZWZpeC5cbiAqXG4gKiBFYWNoIGFyZ3VtZW50IGlzIGNvc3RlZCBhcyBuYW5vLXN0YWdlZCBwYXNzZXMgaXQgb24gV2luZG93cyBcdTIwMTQgcXVvdGVkLCB0aGVuIGBeYC1lc2NhcGVkIGJ5IGBjbWQuZXhlYCdzXG4gKiBydWxlcyBcdTIwMTQgdGhyb3VnaCB7QGxpbmsgZ2V0RWZmZWN0aXZlQ29tbWFuZExpbmVMZW5ndGh9LCBhbmQgdGhlIGJ1ZGdldCBpcyB7QGxpbmsgZ2V0TWF4QmF0Y2hDb21tYW5kTGVuZ3RofSxcbiAqIHdoaWNoIGFscmVhZHkgaG9sZHMgYmFjayB0aGUgcmVzZXJ2ZSBmb3IgdGhlIGBucG1gIFx1MjE5MiBgY21kLmV4ZWAgXHUyMTkyIGAuYmluYCBzaGltIGNoYWluIHJlLWV4cGFuZGluZyB0aGVcbiAqIGFyZ3VtZW50cy4gQW4gYXJndW1lbnQgdG9vIGxvbmcgZm9yIGFueSBiYXRjaCBzdGlsbCBnZXRzIGEgYmF0Y2ggb2YgaXRzIG93bjogaXQgZmFpbHMgbG91ZGx5IHRoZXJlLCB3aGljaFxuICogZHJvcHBpbmcgaXQgd291bGQgbm90LlxuICpcbiAqIEBwYXJhbSBwcmVmaXggLSBUaGUgY29tbWFuZCB0aGUgYXJndW1lbnRzIGFyZSBhcHBlbmRlZCB0by5cbiAqIEBwYXJhbSBjb21tYW5kQXJndW1lbnRzIC0gVGhlIGFyZ3VtZW50cyB0byBzcGxpdC5cbiAqIEByZXR1cm5zIFRoZSBiYXRjaGVzLCBpbiBvcmRlciwgdG9nZXRoZXIgaG9sZGluZyBldmVyeSBhcmd1bWVudCBvbmNlLlxuICovXG5mdW5jdGlvbiBiYXRjaENvbW1hbmRBcmd1bWVudHMocHJlZml4OiBzdHJpbmcsIGNvbW1hbmRBcmd1bWVudHM6IHJlYWRvbmx5IHN0cmluZ1tdKTogc3RyaW5nW11bXSB7XG4gIGNvbnN0IGVtcHR5TGVuZ3RoID0gZ2V0RWZmZWN0aXZlQ29tbWFuZExpbmVMZW5ndGgoJycpO1xuICBjb25zdCBidWRnZXQgPSBnZXRNYXhCYXRjaENvbW1hbmRMZW5ndGgoKSAtIEVYRUNVVEFCTEVfUEFUSF9SRVNFUlZFIC0gZ2V0RWZmZWN0aXZlQ29tbWFuZExpbmVMZW5ndGgocHJlZml4KTtcbiAgY29uc3QgYmF0Y2hlczogc3RyaW5nW11bXSA9IFtdO1xuICBsZXQgYmF0Y2g6IHN0cmluZ1tdID0gW107XG4gIGxldCBiYXRjaExlbmd0aCA9IDA7XG5cbiAgZm9yIChjb25zdCBjb21tYW5kQXJndW1lbnQgb2YgY29tbWFuZEFyZ3VtZW50cykge1xuICAgIGNvbnN0IGFyZ3VtZW50TGVuZ3RoID0gZ2V0RWZmZWN0aXZlQ29tbWFuZExpbmVMZW5ndGgoYCBcIiR7Y29tbWFuZEFyZ3VtZW50fVwiYCkgLSBlbXB0eUxlbmd0aDtcbiAgICBpZiAoYmF0Y2gubGVuZ3RoID4gMCAmJiBiYXRjaExlbmd0aCArIGFyZ3VtZW50TGVuZ3RoID4gYnVkZ2V0KSB7XG4gICAgICBiYXRjaGVzLnB1c2goYmF0Y2gpO1xuICAgICAgYmF0Y2ggPSBbXTtcbiAgICAgIGJhdGNoTGVuZ3RoID0gMDtcbiAgICB9XG4gICAgYmF0Y2gucHVzaChjb21tYW5kQXJndW1lbnQpO1xuICAgIGJhdGNoTGVuZ3RoICs9IGFyZ3VtZW50TGVuZ3RoO1xuICB9XG5cbiAgaWYgKGJhdGNoLmxlbmd0aCA+IDApIHtcbiAgICBiYXRjaGVzLnB1c2goYmF0Y2gpO1xuICB9XG5cbiAgcmV0dXJuIGJhdGNoZXM7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgbmFuby1zdGFnZWQgY29uZmlndXJhdGlvbiBpbiB3aGljaCBzcGVsbGNoZWNrIG5ldmVyIHJlYWRzIGEgZmlsZSB3aGlsZSBhbm90aGVyIHRhc2sgcmV3cml0ZXMgaXQuXG4gKlxuICogVGhlIHNhbWUgYFByb21pc2UuYWxsYCB0aGF0IGZvcmNlcyB0d28gd3JpdGVycyBpbnRvIG9uZSBrZXkgbWFrZXMgYSBjYXRjaC1hbGwgYCcqJ2Agc3BlbGxjaGVjayBrZXkgcnVuXG4gKiBDT05DVVJSRU5UTFkgd2l0aCBldmVyeSB3cml0ZXIga2V5LCBzbyBjc3BlbGwgd291bGQgcmVhZCBhIGZpbGUgdGhhdCBFU0xpbnQgb3IgZHByaW50IGlzIHJld3JpdGluZyBpblxuICogcGxhY2UgLS0gYSBzcHVyaW91cyBmaW5kaW5nIG9uIGEgaGFsZi13cml0dGVuIGZpbGUsIG9yIGEgcGFzcyBvdmVyIGNvbnRlbnQgdGhhdCBpcyBub3Qgd2hhdCBnZXRzXG4gKiBjb21taXR0ZWQuIFNvIHRoZSBzdGFnZWQgZmlsZXMgYXJlIFBBUlRJVElPTkVEIGluc3RlYWQ6XG4gKlxuICogLSBldmVyeSB3cml0ZXIga2V5IGdldHMgc3BlbGxjaGVjayBhcHBlbmRlZCBhcyBpdHMgTEFTVCBjb21tYW5kLCBzbyBpdCByZWFkcyB0aGF0IGtleSdzIGZpbGVzIGFmdGVyIHRoZXlcbiAqICAgaGF2ZSBiZWVuIHJld3JpdHRlbjtcbiAqIC0gb25lIGNvbXBsZW1lbnQga2V5IHNwZWxsY2hlY2tzIGV4YWN0bHkgdGhlIGZpbGVzIG5vIHdyaXRlciBrZXkgY2xhaW1zLlxuICpcbiAqIFRoZSBjb21wbGVtZW50IGlzIHdyaXR0ZW4gaW4gbmFuby1zdGFnZWQncyBvd24gZ2xvYiBkaWFsZWN0LCB3aGljaCBjb21waWxlcyBgISguLi4pYCB0byBhIGxvb2thaGVhZCB0aGF0XG4gKiBpcyBOT1QgYW5jaG9yZWQgYXQgdGhlIGVuZCBvZiB0aGUgcGF0aDogYCEoKi5tZCkqYCB3b3VsZCBleGNsdWRlIGBub3Rlcy5tZC5iYWtgIHRvby4gQSBuZXN0ZWQgYCEoPylgXG4gKiBjb21waWxlcyB0byBgKD8hLilgLCB3aGljaCBJUyBhbiBlbmQgYW5jaG9yLCBzbyBlYWNoIGFsdGVybmF0aXZlIGlzIHN1ZmZpeGVkIHdpdGggaXQuIEEgd3JpdGVyIHBhdHRlcm5cbiAqIGNvbnRhaW5pbmcgYC9gIHdvdWxkIHN3aXRjaCBuYW5vLXN0YWdlZCBpbnRvIGdsb2JzdGFyIG1vZGUsIHdoZXJlIGAqYCBzdG9wcyBjcm9zc2luZyBkaXJlY3RvcmllcyBhbmQgdGhlXG4gKiBjb25zdHJ1Y3Rpb24gbm8gbG9uZ2VyIGhvbGRzIC0tIGhlbmNlIHRoZSB0aHJvdy4gVGhlIHVuaXQgdGVzdCBwaW5zIHRoZSBwYXJ0aXRpb24gYWdhaW5zdCB0aGUgaW5zdGFsbGVkXG4gKiBuYW5vLXN0YWdlZCBjb21waWxlciwgc28gYSByZWxlYXNlIHRoYXQgY2hhbmdlcyBpdHMgZGlhbGVjdCBmYWlscyB0aGVyZSByYXRoZXIgdGhhbiBpbiBhIGNvbW1pdC5cbiAqXG4gKiBXaXRob3V0IHNwZWxsY2hlY2sgdGhlcmUgaXMgbm90aGluZyB0byBwYXJ0aXRpb246IGVhY2ggd3JpdGVyIGtleSBydW5zIGl0cyBvd24gY29tbWFuZHMsIGFuZCBubyBjb21wbGVtZW50XG4gKiBrZXkgaXMgZW1pdHRlZC5cbiAqXG4gKiBAcGFyYW0gd3JpdGVyVGFza3MgLSBUaGUgZmlsZS1yZXdyaXRpbmcgdGFza3MsIGtleWVkIGJ5IHRoZSBwYXR0ZXJuIHRoYXQgY2xhaW1zIHRoZWlyIGZpbGVzLlxuICogQHBhcmFtIHNob3VsZFNwZWxsY2hlY2sgLSBXaGV0aGVyIHRoZSBwcm9qZWN0IGhhcyBhIGBzcGVsbGNoZWNrYCBzY3JpcHQgdG8gcnVuLlxuICogQHJldHVybnMgVGhlIGNvbmZpZ3VyYXRpb24sIHdpdGggdGhlIHNwZWxsY2hlY2sgc3RlcCBwYXJ0aXRpb25lZCBhY3Jvc3MgdGhlIGtleXMuXG4gKi9cbmZ1bmN0aW9uIHBhcnRpdGlvblNwZWxsY2hlY2sod3JpdGVyVGFza3M6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHJlYWRvbmx5IHN0cmluZ1tdPj4sIHNob3VsZFNwZWxsY2hlY2s6IGJvb2xlYW4pOiBOYW5vU3RhZ2VkQ29uZmlnIHtcbiAgaWYgKCFzaG91bGRTcGVsbGNoZWNrKSB7XG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh3cml0ZXJUYXNrcykubWFwKChbcGF0dGVybiwgY29tbWFuZHNdKSA9PiBbcGF0dGVybiwgdG9CYXRjaGVkVGFzayhjb21tYW5kcyldKSk7XG4gIH1cblxuICBjb25zdCBwYXR0ZXJucyA9IE9iamVjdC5rZXlzKHdyaXRlclRhc2tzKTtcbiAgY29uc3QgcGF0dGVybldpdGhTbGFzaCA9IHBhdHRlcm5zLmZpbmQoKHBhdHRlcm4pID0+IHBhdHRlcm4uaW5jbHVkZXMoJy8nKSk7XG4gIGlmIChwYXR0ZXJuV2l0aFNsYXNoICE9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG5hbm8tc3RhZ2VkIHdyaXRlciBwYXR0ZXJuICcke3BhdHRlcm5XaXRoU2xhc2h9JyBjb250YWlucyAnLycsIHdoaWNoIHRoZSBzcGVsbGNoZWNrIHBhcnRpdGlvbiBjYW5ub3QgZXhwcmVzcy5gKTtcbiAgfVxuXG4gIC8vIGAhKCkqYCB3b3VsZCBjb21waWxlIHRvIGEgbG9va2FoZWFkIHRoYXQgcmVqZWN0cyBldmVyeSBwYXRoLCBzbyB3aXRoIG5vIHdyaXRlciB0aGUgY29tcGxlbWVudCBpcyBldmVyeXRoaW5nLlxuICBjb25zdCBjb21wbGVtZW50UGF0dGVybiA9IHBhdHRlcm5zLmxlbmd0aCA9PT0gMCA/ICcqJyA6IGAhKCR7cGF0dGVybnMubWFwKChwYXR0ZXJuKSA9PiBgJHtwYXR0ZXJufSEoPylgKS5qb2luKCd8Jyl9KSpgO1xuICBjb25zdCBjb25maWc6IE5hbm9TdGFnZWRDb25maWcgPSB7XG4gICAgW2NvbXBsZW1lbnRQYXR0ZXJuXTogdG9CYXRjaGVkVGFzayhbU1BFTExDSEVDS19DT01NQU5EXSlcbiAgfTtcblxuICBmb3IgKGNvbnN0IFtwYXR0ZXJuLCBjb21tYW5kc10gb2YgT2JqZWN0LmVudHJpZXMod3JpdGVyVGFza3MpKSB7XG4gICAgY29uZmlnW3BhdHRlcm5dID0gdG9CYXRjaGVkVGFzayhbLi4uY29tbWFuZHMsIFNQRUxMQ0hFQ0tfQ09NTUFORF0pO1xuICB9XG5cbiAgcmV0dXJuIGNvbmZpZztcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSB0YXNrIHRoYXQgcnVucyBlYWNoIGNvbW1hbmQgb3ZlciBldmVyeSBzdGFnZWQgZmlsZSBpdCByZWNlaXZlcywgaW4gYXMgbWFueSBiYXRjaGVzIGFzIHRoZSBjb21tYW5kXG4gKiBsaW5lIG5lZWRzLlxuICpcbiAqIG5hbm8tc3RhZ2VkIGFwcGVuZHMgYSBzdHJpbmcgdGFzaydzIGZpbGVzIHRvIE9ORSBjb21tYW5kLCBzbyBhIGNvbW1pdCBzdGFnaW5nIGEgZmV3IGh1bmRyZWQgZmlsZXMgcmFuXG4gKiBgbnBtIHJ1biBsaW50OmZpeCAtLSA8ZXZlcnkgcGF0aD5gIGFuZCBmYWlsZWQgb24gV2luZG93cyB3aXRoIGBUaGUgY29tbWFuZCBsaW5lIGlzIHRvbyBsb25nLmAsIHJlZnVzaW5nXG4gKiBleGFjdGx5IHRoZSB3aG9sZS1yZXBvIGNvbW1pdHMgdGhhdCBtb3N0IG5lZWQgdGhlIGhvb2suIEEgZnVuY3Rpb24tdmFsdWVkIHRhc2sgYnVpbGRzIGl0cyBvd24gY29tbWFuZHNcbiAqIGluc3RlYWQsIGFuZCB0aGVzZSBhcmUgYmF0Y2hlZCBhZ2FpbnN0IHRoZSBzYW1lIGJ1ZGdldCBgZXhlYygpYCB1c2VzIChzZWUgYGJhdGNoQ29tbWFuZEFyZ3VtZW50c2ApLlxuICpcbiAqIFRoZSBjb21tYW5kcyBrZWVwIHRoZWlyIG9yZGVyOiBldmVyeSBiYXRjaCBvZiB0aGUgZmlyc3QgY29tbWFuZCBydW5zIGJlZm9yZSBhbnkgYmF0Y2ggb2YgdGhlIHNlY29uZCxcbiAqIGJlY2F1c2UgbmFuby1zdGFnZWQgcnVucyBvbmUga2V5J3MgY29tbWFuZHMgb25lIGFmdGVyIGFub3RoZXIsIHNvIGEgd3JpdGVyIHN0aWxsIGZpbmlzaGVzIGJlZm9yZSB0aGUgbmV4dFxuICogd3JpdGVyLCBhbmQgc3BlbGxjaGVjayBzdGlsbCByZWFkcyB0aGUgcmV3cml0dGVuIGZpbGVzLlxuICpcbiAqIEBwYXJhbSBjb21tYW5kcyAtIFRoZSBjb21tYW5kIHByZWZpeGVzLCBpbiB0aGUgb3JkZXIgdGhleSBydW4uXG4gKiBAcmV0dXJucyBUaGUgdGFzay5cbiAqL1xuZnVuY3Rpb24gdG9CYXRjaGVkVGFzayhjb21tYW5kczogcmVhZG9ubHkgc3RyaW5nW10pOiBOYW5vU3RhZ2VkVGFzayB7XG4gIHJldHVybiAoeyBmaWxlbmFtZXMgfSkgPT4ge1xuICAgIGNvbnN0IGNvbW1hbmRBcmd1bWVudHMgPSBmaWxlbmFtZXMubWFwKChmaWxlbmFtZSkgPT4gdG9Db21tYW5kQXJndW1lbnQoZmlsZW5hbWUpKTtcbiAgICByZXR1cm4gY29tbWFuZHMuZmxhdE1hcCgoY29tbWFuZCkgPT4gYmF0Y2hDb21tYW5kQXJndW1lbnRzKGNvbW1hbmQsIGNvbW1hbmRBcmd1bWVudHMpLm1hcCgoYmF0Y2gpID0+IGAke2NvbW1hbmR9ICR7YmF0Y2guam9pbignICcpfWApKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBUdXJucyBhIHN0YWdlZCBmaWxlJ3MgYWJzb2x1dGUgcGF0aCBpbnRvIHRoZSBhcmd1bWVudCBhIGJhdGNoZWQgdGFzayBwYXNzZXMgZm9yIGl0LlxuICpcbiAqIFRoZSBwYXRoIGlzIG1hZGUgcmVsYXRpdmUgdG8gdGhlIHdvcmtpbmcgZGlyZWN0b3J5LCB3aGVyZSBuYW5vLXN0YWdlZCBhbmQgdGhlIHRhc2sgYm90aCBydW4sIHdoaWNoIHJvdWdobHlcbiAqIGhhbHZlcyBpdHMgbGVuZ3RoIGFuZCBzbyB0aGUgbnVtYmVyIG9mIGJhdGNoZXM7IGEgcGF0aCBvdXRzaWRlIGl0IHN0YXlzIGFic29sdXRlLiBBIHJlbGF0aXZlIHBhdGggc3RhcnRpbmdcbiAqIHdpdGggYC1gIGdldHMgYC4vYCwgc28gbm8gdG9vbCByZWFkcyBpdCBhcyBhbiBvcHRpb24uXG4gKlxuICogV2hpdGVzcGFjZSBhbmQgcXVvdGVzIGJlY29tZSBgP2AsIGJlY2F1c2UgbmFuby1zdGFnZWQncyB0b2tlbml6ZXIgY2Fubm90IGNhcnJ5IHRoZW0gKHNlZVxuICoge0BsaW5rIFRPS0VOSVpFUl9VTlNBRkVfQ0hBUkFDVEVSU19SRUdfRVhQfSkuIEV2ZXJ5IHRvb2wgdGhlIHRhc2tzIHJ1biAoRVNMaW50LCBkcHJpbnQsIGNzcGVsbCxcbiAqIG1hcmtkb3dubGludC1jbGkyKSB0YWtlcyBpdHMgcGF0aHMgYXMgZ2xvYnMsIGFuZCBgP2AgbWF0Y2hlcyBleGFjdGx5IHRoZSBvbmUgY2hhcmFjdGVyIGl0IHJlcGxhY2VkLCBzbyB0aGVcbiAqIGZpbGUgaXMgc3RpbGwgZm91bmQ7IGEgc2libGluZyBkaWZmZXJpbmcgb25seSBpbiB0aGF0IGNoYXJhY3RlciB3b3VsZCBtYXRjaCB0b28sIHdoaWNoIGNvc3RzIGEgbGludCBvZiBhblxuICogZXh0cmEgZmlsZSwgbm90IGEgbWlzc2VkIG9uZS5cbiAqXG4gKiBAcGFyYW0gZmlsZW5hbWUgLSBUaGUgYWJzb2x1dGUgcGF0aCBvZiB0aGUgc3RhZ2VkIGZpbGUuXG4gKiBAcmV0dXJucyBUaGUgYXJndW1lbnQuXG4gKi9cbmZ1bmN0aW9uIHRvQ29tbWFuZEFyZ3VtZW50KGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCByZWxhdGl2ZVBhdGggPSByZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCBmaWxlbmFtZSk7XG4gIGxldCBjb21tYW5kQXJndW1lbnQgPSAocmVsYXRpdmVQYXRoLnN0YXJ0c1dpdGgoJy4uJykgfHwgaXNBYnNvbHV0ZShyZWxhdGl2ZVBhdGgpID8gZmlsZW5hbWUgOiByZWxhdGl2ZVBhdGgpLnJlcGxhY2VBbGwoJ1xcXFwnLCAnLycpO1xuICBpZiAoY29tbWFuZEFyZ3VtZW50LnN0YXJ0c1dpdGgoJy0nKSkge1xuICAgIGNvbW1hbmRBcmd1bWVudCA9IGAuLyR7Y29tbWFuZEFyZ3VtZW50fWA7XG4gIH1cbiAgcmV0dXJuIGNvbW1hbmRBcmd1bWVudC5yZXBsYWNlQWxsKFRPS0VOSVpFUl9VTlNBRkVfQ0hBUkFDVEVSU19SRUdfRVhQLCAnPycpO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgY29tbWFuZCBwcmVmaXggdGhhdCBydW5zIGFuIG5wbSBzY3JpcHQgb3ZlciB0aGUgcGF0aHMgYXBwZW5kZWQgdG8gaXQuXG4gKlxuICogQHBhcmFtIHNjcmlwdE5hbWUgLSBUaGUgc2NyaXB0IG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgY29tbWFuZCBwcmVmaXgsIHN1Y2ggYXMgYG5wbSBydW4gbGludDpmaXggLS1gLlxuICovXG5mdW5jdGlvbiB0b1NjcmlwdENvbW1hbmQoc2NyaXB0TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke1BBQ0tBR0VfTUFOQUdFUl9SVU5fQ09NTUFORH0gJHtzY3JpcHROYW1lfSAtLWA7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBzaGFyZWQgd3JpdGVyIHRhc2tzIGZyb20ge0BsaW5rIFdSSVRFUl9TQ1JJUFRfTkFNRVN9LCBrZWVwaW5nIG9ubHkgdGhlIHNjcmlwdHMgYSBmaWx0ZXIgYWNjZXB0c1xuICogYW5kIGRyb3BwaW5nIGEgcGF0dGVybiBsZWZ0IHdpdGggbm9uZS5cbiAqXG4gKiBAcGFyYW0gc2hvdWxkSW5jbHVkZVNjcmlwdCAtIFdoZXRoZXIgdG8gcnVuIGEgZ2l2ZW4gc2NyaXB0LlxuICogQHJldHVybnMgVGhlIHdyaXRlciB0YXNrcywga2V5ZWQgYnkgdGhlIHBhdHRlcm4gdGhhdCBjbGFpbXMgdGhlaXIgZmlsZXMuXG4gKi9cbmZ1bmN0aW9uIHRvV3JpdGVyVGFza3Moc2hvdWxkSW5jbHVkZVNjcmlwdDogKHNjcmlwdE5hbWU6IHN0cmluZykgPT4gYm9vbGVhbik6IFJlY29yZDxzdHJpbmcsIHJlYWRvbmx5IHN0cmluZ1tdPiB7XG4gIGNvbnN0IHdyaXRlclRhc2tzOiBSZWNvcmQ8c3RyaW5nLCByZWFkb25seSBzdHJpbmdbXT4gPSB7fTtcbiAgZm9yIChjb25zdCBbcGF0dGVybiwgc2NyaXB0TmFtZXNdIG9mIE9iamVjdC5lbnRyaWVzKFdSSVRFUl9TQ1JJUFRfTkFNRVMpKSB7XG4gICAgY29uc3QgY29tbWFuZHMgPSBzY3JpcHROYW1lcy5maWx0ZXIoKHNjcmlwdE5hbWUpID0+IHNob3VsZEluY2x1ZGVTY3JpcHQoc2NyaXB0TmFtZSkpLm1hcCgoc2NyaXB0TmFtZSkgPT4gdG9TY3JpcHRDb21tYW5kKHNjcmlwdE5hbWUpKTtcbiAgICBpZiAoY29tbWFuZHMubGVuZ3RoID4gMCkge1xuICAgICAgd3JpdGVyVGFza3NbcGF0dGVybl0gPSBjb21tYW5kcztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHdyaXRlclRhc2tzO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsdUJBR087QUFDUCwwQkFBb0I7QUFFcEIsd0JBR087QUFDUCxrQkFHTztBQUNQLGlCQUFvQztBQUNwQyw2QkFBNEM7QUEyQzVDLE1BQU0sa0NBQThCLG9EQUE0QixFQUFFLEtBQUssR0FBRztBQUUxRSxNQUFNLHlCQUF5QjtBQUUvQixNQUFNLHFCQUFxQixnQkFBZ0Isc0JBQXNCO0FBUWpFLE1BQU0sMEJBQTBCO0FBU2hDLE1BQU0sc0NBQXNDO0FBaUI1QyxNQUFNLHNCQUFtRTtBQUFBLEVBQ3ZFLGtCQUFrQixDQUFDLFlBQVksUUFBUTtBQUFBLEVBQ3ZDLFFBQVEsQ0FBQyxhQUFhO0FBQ3hCO0FBRUEsTUFBTSxlQUE0RCxjQUFjLE1BQU0sSUFBSTtBQWlCbkYsTUFBTSx5QkFBMkMsb0JB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
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL25hbm8tc3RhZ2VkLWNvbmZpZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFNoYXJlZCBuYW5vLXN0YWdlZCBjb25maWd1cmF0aW9uIGZvciBwcmUtY29tbWl0IGhvb2tzLlxuICovXG5cbmltcG9ydCB7XG4gIGlzQWJzb2x1dGUsXG4gIHJlbGF0aXZlXG59IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQge1xuICBpc0VudlZhcmlhYmxlT2ZmLFxuICBsb2FkRW52RmlsZUlmRXhpc3RzXG59IGZyb20gJy4vZW52LXRvZ2dsZS50cyc7XG5pbXBvcnQge1xuICBnZXRFZmZlY3RpdmVDb21tYW5kTGluZUxlbmd0aCxcbiAgZ2V0TWF4QmF0Y2hDb21tYW5kTGVuZ3RoXG59IGZyb20gJy4vZXhlYy50cyc7XG5pbXBvcnQgeyByZWFkUGFja2FnZUpzb25TeW5jIH0gZnJvbSAnLi9ucG0udHMnO1xuaW1wb3J0IHsgZ2V0UGFja2FnZU1hbmFnZXJSdW5Db21tYW5kIH0gZnJvbSAnLi9wYWNrYWdlLW1hbmFnZXIudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBnZXROYW5vU3RhZ2VkQ29uZmlnfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXROYW5vU3RhZ2VkQ29uZmlnT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBSZXBvLXNwZWNpZmljIGZpbGUtcmV3cml0aW5nIHRhc2tzLCBrZXllZCBieSB0aGUgbmFuby1zdGFnZWQgcGF0dGVybiB0aGF0IGNsYWltcyB0aGVpciBmaWxlcy5cbiAgICpcbiAgICogRWFjaCBnZXRzIHNwZWxsY2hlY2sgYXBwZW5kZWQgYW5kIGl0cyBmaWxlcyByZW1vdmVkIGZyb20gdGhlIHNwZWxsY2hlY2stb25seSBrZXksIGV4YWN0bHkgbGlrZSB0aGUgc2hhcmVkXG4gICAqIHdyaXRlcnMuIEEgcGF0dGVybiBtdXN0IG5vdCBjb250YWluIGAvYCwgYW5kIG11c3Qgbm90IHJlcGVhdCBhIHNoYXJlZCB3cml0ZXIgcGF0dGVybi4gRWFjaCBjb21tYW5kIGlzIGFcbiAgICogcHJlZml4IHRoZSBzdGFnZWQgcGF0aHMgYXJlIGFwcGVuZGVkIHRvLCBpbiBiYXRjaGVzLCBsaWtlIHRoZSBzaGFyZWQgb25lcyAoYG5wbSBydW4gbGludDpmaXggLS1gKS5cbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxXcml0ZXJUYXNrcz86IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHJlYWRvbmx5IHN0cmluZ1tdPj47XG59XG5cbi8qKlxuICogQSBuYW5vLXN0YWdlZCBjb25maWd1cmF0aW9uIHdob3NlIGV2ZXJ5IGtleSBpcyBhIHtAbGluayBOYW5vU3RhZ2VkVGFza30uXG4gKi9cbmV4cG9ydCB0eXBlIE5hbm9TdGFnZWRDb25maWcgPSBSZWNvcmQ8c3RyaW5nLCBOYW5vU3RhZ2VkVGFzaz47XG5cbi8qKlxuICogQSBmdW5jdGlvbi12YWx1ZWQgbmFuby1zdGFnZWQgdGFzazogaXQgcmVjZWl2ZXMgdGhlIHN0YWdlZCBmaWxlcyBpdHMgcGF0dGVybiBjbGFpbXMgYW5kIHJldHVybnMgdGhlXG4gKiBjb21tYW5kcyB0byBydW4gb3ZlciB0aGVtLCBpbiBvcmRlci5cbiAqL1xuZXhwb3J0IHR5cGUgTmFub1N0YWdlZFRhc2sgPSAoY29udGV4dDogTmFub1N0YWdlZFRhc2tDb250ZXh0KSA9PiBzdHJpbmdbXTtcblxuLyoqXG4gKiBXaGF0IG5hbm8tc3RhZ2VkIHBhc3NlcyB0byBhIGZ1bmN0aW9uLXZhbHVlZCB0YXNrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hbm9TdGFnZWRUYXNrQ29udGV4dCB7XG4gIC8qKlxuICAgKiBUaGUgYWJzb2x1dGUgcGF0aHMgb2YgdGhlIHN0YWdlZCBmaWxlcyB0aGUgdGFzaydzIHBhdHRlcm4gY2xhaW1zLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZW5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBUaGUgYDxtYW5hZ2VyPiBydW5gIHByZWZpeCBldmVyeSB0YXNrIGJlbG93IGlzIGJ1aWx0IG9uLCByZXNvbHZlZCBvbmNlIGZvciB0aGUgcHJvY2Vzcy5cbiAqXG4gKiBEZXRlY3Rpb24gcHJvYmVzIGZvciBhIGxvY2tmaWxlIGJlc2lkZSBgcGFja2FnZS5qc29uYCwgc28gaXQgaXMgYSBoYW5kZnVsIG9mIGBleGlzdHNTeW5jYCBjYWxscyBhbmRcbiAqIG5vdGhpbmcgbW9yZSBcdTIwMTQgbm8gYC5lbnZgIHJlYWQgYW5kIG5vIGBwcm9jZXNzLmV4aXRgLCB3aGljaCBpcyB3aGF0IGxldHMgaXQgc2l0IGF0IG1vZHVsZSBzY29wZS5cbiAqL1xuY29uc3QgUEFDS0FHRV9NQU5BR0VSX1JVTl9DT01NQU5EID0gZ2V0UGFja2FnZU1hbmFnZXJSdW5Db21tYW5kKCkuam9pbignICcpO1xuXG5jb25zdCBTUEVMTENIRUNLX1NDUklQVF9OQU1FID0gJ3NwZWxsY2hlY2snO1xuXG5jb25zdCBTUEVMTENIRUNLX0NPTU1BTkQgPSB0b1NjcmlwdENvbW1hbmQoU1BFTExDSEVDS19TQ1JJUFRfTkFNRSk7XG5cbi8qKlxuICogUm9vbSBsZWZ0IGluIGV2ZXJ5IGJhdGNoIGZvciB0aGUgcmVzb2x2ZWQgcGF0aCBvZiB0aGUgcGFja2FnZSBtYW5hZ2VyJ3MgZXhlY3V0YWJsZS5cbiAqXG4gKiBuYW5vLXN0YWdlZCBydW5zIGBucG1gIGFzIHRoZSBhYnNvbHV0ZSBwYXRoIG9mIGBucG0uY21kYCAoYDxjb21zcGVjPiAvRCAvUyAvQyBcIjxwYXRoPlwiIFwiPGFyZz5cIiBcdTIwMjZgKSwgd2hpY2hcbiAqIHRoZSBiYXRjaCBjYW5ub3Qgc2VlLCBzbyBhIGZ1bGwgV2luZG93cyBgTUFYX1BBVEhgIGlzIHNldCBhc2lkZSBmb3IgaXQuXG4gKi9cbmNvbnN0IEVYRUNVVEFCTEVfUEFUSF9SRVNFUlZFID0gMjYwO1xuXG4vKipcbiAqIFRoZSBjaGFyYWN0ZXJzIG5hbm8tc3RhZ2VkJ3MgY29tbWFuZCB0b2tlbml6ZXIgY2Fubm90IGNhcnJ5IGluc2lkZSBhbiBhcmd1bWVudC5cbiAqXG4gKiBBIGZ1bmN0aW9uLXZhbHVlZCB0YXNrIHJldHVybnMgaXRzIGNvbW1hbmRzIGFzIFNUUklOR1MsIGFuZCBuYW5vLXN0YWdlZCBzcGxpdHMgZWFjaCBvbmUgd2l0aFxuICogYHN0cmluZ0FyZ3ZUb0FycmF5YCwgd2hpY2ggZW1pdHMgYSBxdW90ZWQgdG9rZW4gdHdpY2UgKG9uY2UgYmFyZSwgb25jZSB3aXRoIGl0cyBxdW90ZXMpIGFuZCBoYXMgbm8gZXNjYXBlLlxuICogU28gYSBwYXRoIGhvbGRpbmcgd2hpdGVzcGFjZSBvciBhIHF1b3RlIGNhbm5vdCBiZSBwYXNzZWQgYXMgaXRzZWxmLlxuICovXG5jb25zdCBUT0tFTklaRVJfVU5TQUZFX0NIQVJBQ1RFUlNfUkVHX0VYUCA9IC9bXFxzXCInXS9nO1xuXG4vKipcbiAqIFRoZSBucG0gc2NyaXB0cyB0aGF0IFJFV1JJVEUgYSBzdGFnZWQgZmlsZSwgaW4gdGhlIG9yZGVyIHRoZXkgcnVuLCBrZXllZCBieSB0aGUgbmFuby1zdGFnZWQgcGF0dGVybiB0aGF0XG4gKiBjbGFpbXMgaXQuXG4gKlxuICogYGxpbnQ6Zml4YCBhbmQgYGZvcm1hdGAgYm90aCByZXdyaXRlIHRoZSBmaWxlLCBzbyB0aGV5IGhhdmUgdG8gc2hhcmUgb25lIGtleTogbmFuby1zdGFnZWQgcnVucyBpdHNcbiAqIHBlci1wYXR0ZXJuIGdyb3VwcyB1bmRlciBgUHJvbWlzZS5hbGxgIChgcnVuKClgIGluIGBuYW5vLXN0YWdlZC9saWIvY21kLXJ1bm5lci5qc2ApLCBhbmQgc2VxdWVuY2VzIG9ubHlcbiAqIHRoZSBjb21tYW5kcyBJTlNJREUgYSBzaW5nbGUga2V5J3MgYXJyYXkgKGBydW5UYXNrKClgLCBhIGBmb3IgLi4uIG9mIGF3YWl0YCkuIFNwbGl0IGFjcm9zcyB0d28ga2V5cyB0aGV5XG4gKiByYWNlLCB3aGljaGV2ZXIgZmluaXNoZXMgbGFzdCB3aW5zLCBhbmQgdGhlIGNvbW1pdCBzdGFnZXMgYnl0ZXMgdGhhdCBuZWl0aGVyIHRvb2wgd291bGQgaGF2ZSBwcm9kdWNlZCBvblxuICogaXRzIG93bi5cbiAqXG4gKiBTbyBkbyBOT1QgZXhwcmVzcyBhIGRpcmVjdG9yeSBleGNsdXNpb24gYnkgZ2l2aW5nIG9uZSBvZiB0aGVzZSB0d28gaXRzIG93biBuZWdhdGVkIGtleSAtLSB0aGF0IHNpbGVudGx5XG4gKiB0YWtlcyB0aGUgb3JkZXJpbmcgYXdheS4gQW4gZXhjbHVzaW9uIGJlbG9uZ3MgaW4gdGhlIGV4Y2x1ZGVkIHRvb2wncyBvd24gY29uZmlnLCB3aGVyZSBFU0xpbnQnc1xuICogYGdsb2JhbElnbm9yZXNgIGFscmVhZHkgcHV0cyBpdDogYSBwYXRoIEVTTGludCBpZ25vcmVzIGlzIHJlcG9ydGVkIGFzIGEgd2FybmluZyBhbmQgZXhpdHMgMCB3aGVuIGl0IGlzXG4gKiBwYXNzZWQgZXhwbGljaXRseSwgc28gaXQgY29zdHMgYSBjb25zb2xlIGxpbmUgcmF0aGVyIHRoYW4gYSBmYWlsZWQgY29tbWl0IGFuZCBuZWVkcyBubyBrZXkgaGVyZS5cbiAqL1xuY29uc3QgV1JJVEVSX1NDUklQVF9OQU1FUzogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgcmVhZG9ubHkgc3RyaW5nW10+PiA9IHtcbiAgJyoue3RzLHRzeCxtdHN9JzogWydsaW50OmZpeCcsICdmb3JtYXQnXSxcbiAgJyoubWQnOiBbJ2xpbnQ6bWQ6Zml4J11cbn07XG5cbmNvbnN0IFdSSVRFUl9UQVNLUzogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgcmVhZG9ubHkgc3RyaW5nW10+PiA9IHRvV3JpdGVyVGFza3MoKCkgPT4gdHJ1ZSk7XG5cbi8qKlxuICogTmFuby1zdGFnZWQgY29uZmlndXJhdGlvbiB0aGF0IHJ1bnMgZmlsZS1iYXNlZCBsaW50LCBmb3JtYXQsIGFuZCBzcGVsbGNoZWNrIG9uIHN0YWdlZCBmaWxlcy5cbiAqXG4gKiBPbmx5IGluY2x1ZGVzIHRvb2xzIHRoYXQgY2FuIG9wZXJhdGUgb24gaW5kaXZpZHVhbCBmaWxlcy4gV2hvbGUtcHJvamVjdCBjaGVja3NcbiAqIChUeXBlU2NyaXB0IGNvbXBpbGF0aW9uLCB1bml0IHRlc3RzKSBhcmUgbGVmdCB0byBDSS5cbiAqXG4gKiBDb21tYW5kcyBydW4gdGhyb3VnaCB0aGUgcGFja2FnZSBtYW5hZ2VyIHRoYXQgb3ducyB0aGUgdHJlZSBcdTIwMTQgYG5wbSBydW4gLi4uIC0tYCwgYGJ1biBydW4gLi4uIC0tYCwgYW5kXG4gKiBzbyBvbiBcdTIwMTQgc28gbmFuby1zdGFnZWQgZmlsZSBwYXRocyBhcmUgZm9yd2FyZGVkIGFzIENMSSBhcmd1bWVudHMsIGJhdGNoZWQgdG8gZml0IHRoZSBjb21tYW5kIGxpbmUgKHNlZVxuICogYHRvQmF0Y2hlZFRhc2tgKS5cbiAqXG4gKiBTcGVsbGNoZWNrIGlzIHBhcnRpdGlvbmVkIGFjcm9zcyB0aGUga2V5cyByYXRoZXIgdGhhbiBnaXZlbiBhIGNhdGNoLWFsbCBgJyonYCBrZXkgKHNlZVxuICogYHBhcnRpdGlvblNwZWxsY2hlY2tgKS4gQSByZXBvIGFkZGluZyBhIGZpbGUtcmV3cml0aW5nIHRhc2sgb2YgaXRzIG93biBwYXNzZXMgaXQgdG9cbiAqIHtAbGluayBnZXROYW5vU3RhZ2VkQ29uZmlnfSBhcyBgYWRkaXRpb25hbFdyaXRlclRhc2tzYCByYXRoZXIgdGhhbiBzcHJlYWRpbmcgdGhpcyBvYmplY3QgYW5kIGFkZGluZyBhIGtleSxcbiAqIHdoaWNoIHdvdWxkIHJlaW50cm9kdWNlIHRoZSBvdmVybGFwIGZvciB0aGF0IGtleSdzIGZpbGVzLlxuICovXG5leHBvcnQgY29uc3Qgb2JzaWRpYW5EZXZVdGlsc0NvbmZpZzogTmFub1N0YWdlZENvbmZpZyA9IHBhcnRpdGlvblNwZWxsY2hlY2soV1JJVEVSX1RBU0tTLCB0cnVlKTtcblxuY29uc3QgTkFOT19TVEFHRURfRU5WX1ZBUklBQkxFID0gJ05BTk9fU1RBR0VEJztcblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgbmFuby1zdGFnZWQgY29uZmlndXJhdGlvbiB0byB1c2UsIGhvbm9yaW5nIGEgcGVyLWRldmVsb3BlciBvcHQtb3V0LlxuICpcbiAqIExvYWRzIGEgZ2l0aWdub3JlZCBgLmVudmAgaWYgcHJlc2VudCwgdGhlbiBcdTIwMTQgd2hlbiBgTkFOT19TVEFHRURgIGlzIHNldCB0byBhbiBvZmYgdmFsdWUgKGAwYCwgYGZhbHNlYCxcbiAqIGBvZmZgLCBvciBgbm9gKSBcdTIwMTQgcHJpbnRzIGEgbm90aWNlIGFuZCBleGl0cyB0aGUgcHJvY2VzcyBzdWNjZXNzZnVsbHkgc28gdGhlIHByZS1jb21taXQgY2hlY2tzIGFyZVxuICogc2tpcHBlZC4gVGhpcyBtaXJyb3JzIGh1c2t5J3Mgb3duIGBIVVNLWT0wYCBzd2l0Y2gsIGJ1dCBzY29wZWQgdG8gdGhlIG5hbm8tc3RhZ2VkIHN0ZXAgKHNvIHRoZVxuICogY29tbWl0LW1zZyBob29rIHN0aWxsIHJ1bnMpLiBPdGhlcndpc2UgaXQgcmV0dXJucyB7QGxpbmsgb2JzaWRpYW5EZXZVdGlsc0NvbmZpZ30sIG9yIFx1MjAxNCB3aGVuXG4gKiBgYWRkaXRpb25hbFdyaXRlclRhc2tzYCBhcmUgZ2l2ZW4gXHUyMDE0IHRoZSBzYW1lIGNvbmZpZ3VyYXRpb24gcmUtcGFydGl0aW9uZWQgd2l0aCB0aG9zZSB3cml0ZXJzIGFkZGVkLlxuICpcbiAqIEEgc2hhcmVkIHRhc2sgd2hvc2UgbnBtIHNjcmlwdCB0aGUgcHJvamVjdCdzIGBwYWNrYWdlLmpzb25gIGRvZXMgbm90IGRlY2xhcmUgaXMgbGVmdCBvdXQsIHNvIGEgcHJvamVjdFxuICogd2l0aG91dCwgc2F5LCBtYXJrZG93bmxpbnQgZG9lcyBub3QgZmFpbCBpdHMgZmlyc3QgY29tbWl0IHRoYXQgc3RhZ2VzIGEgYC5tZGAgZmlsZSBvbiBhIG1pc3Npbmcgc2NyaXB0LiBBXG4gKiB3cml0ZXIgcGF0dGVybiBsZWZ0IHdpdGggbm8gd3JpdGVyIGlzIGRyb3BwZWQsIGFuZCBzcGVsbGNoZWNrIHJ1bnMgb25seSB3aGVuIGBzcGVsbGNoZWNrYCBpcyBkZWNsYXJlZCwgaW5cbiAqIHdoaWNoIGNhc2UgaXRzIGZpbGVzIGZhbGwgdG8gdGhlIHNwZWxsY2hlY2stb25seSBrZXkuIFRoZSBgYWRkaXRpb25hbFdyaXRlclRhc2tzYCBhcmUgdGhlIGNhbGxlcidzIG93biBhbmRcbiAqIGFyZSBrZXB0IGFzIGdpdmVuLlxuICpcbiAqIEEgcG9zaXRpdmUgaW50ZWdlciBgQlVMS19DT1JFU2AgYnVkZ2V0IHNlcmlhbGl6ZXMgdGhlIGdlbmVyYXRlZCBjb21tYW5kcyBpbnRvIG9uZSBncm91cC4gbmFuby1zdGFnZWRcbiAqIGhhcyBubyBjb25jdXJyZW5jeSBvcHRpb24sIHNvIHRoaXMga2VlcHMgaXRzIHByb2Nlc3NlcyB3aXRoaW4gZXZlbiBhIG9uZS1jb3JlIGJ1ZGdldC4gV2l0aG91dCBhIHZhbGlkXG4gKiBidWRnZXQgdGhlIHVzdWFsIHBhcmFsbGVsIGdyb3VwcyBhcmUgcmV0YWluZWQuXG4gKlxuICogYE5BTk9fU1RBR0VEYCBpcyBub3QgYW4gbnBtIHNjcmlwdCwgc28gaXQgY2FycmllcyBpdHMgb3duIHN3aXRjaCByYXRoZXIgdGhhbiB0aGUgc2NyaXB0LW5hbWUtZGVyaXZlZCBvbmVcbiAqIGV2ZXJ5IG5wbSBzY3JpcHQgZ2V0cyBcdTIwMTQgYnV0IGJvdGggc2hhcmUgdGhlIHNhbWUgbm90aW9uIG9mIGFuIG9mZiB2YWx1ZSwgdmlhIHtAbGluayBpc0VudlZhcmlhYmxlT2ZmfS5cbiAqXG4gKiBUaGlzIGlzIGEgZnVuY3Rpb24gcmF0aGVyIHRoYW4gbW9kdWxlLWxldmVsIGNvZGUgc28gaW1wb3J0aW5nIHRoZSBwYWNrYWdlIGJhcnJlbCBuZXZlciB0cmlnZ2VycyB0aGVcbiAqIGAuZW52YCByZWFkIG9yIHRoZSBwcm9jZXNzIGV4aXQ7IGNhbGwgaXQgZnJvbSB0aGUgdGhpbiBgc2NyaXB0cy9uYW5vLXN0YWdlZC1jb25maWcudHNgIGVudHJ5LiBSZXNvbHZpbmcgdGhlXG4gKiBwYWNrYWdlIG1hbmFnZXIgaXMgdGhlIG9uZSB0aGluZyB0aGF0IGRvZXMgcnVuIGF0IG1vZHVsZSBzY29wZSwgYW5kIGl0IGRvZXMgbmVpdGhlciBvZiB0aG9zZSB0d29cbiAqIHRoaW5ncyBcdTIwMTQgaXQgb25seSBwcm9iZXMgZm9yIGEgbG9ja2ZpbGUuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9uYWwgb3B0aW9ucy5cbiAqIEByZXR1cm5zIFRoZSBuYW5vLXN0YWdlZCB0YXNrIGNvbmZpZ3VyYXRpb24uIERvZXMgbm90IHJldHVybiB3aGVuIHRoZSBvcHQtb3V0IGlzIGFjdGl2ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5hbm9TdGFnZWRDb25maWcob3B0aW9ucz86IEdldE5hbm9TdGFnZWRDb25maWdPcHRpb25zKTogTmFub1N0YWdlZENvbmZpZyB7XG4gIGxvYWRFbnZGaWxlSWZFeGlzdHMoKTtcblxuICBpZiAoaXNFbnZWYXJpYWJsZU9mZihOQU5PX1NUQUdFRF9FTlZfVkFSSUFCTEUpKSB7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYG5hbm8tc3RhZ2VkOiBza2lwcGVkICgke05BTk9fU1RBR0VEX0VOVl9WQVJJQUJMRX0gaXMgb2ZmKS5cXG5gKTtcbiAgICBwcm9jZXNzLmV4aXQoMCk7XG4gIH1cblxuICBjb25zdCBzY3JpcHROYW1lcyA9IG5ldyBTZXQoT2JqZWN0LmtleXMocmVhZFBhY2thZ2VKc29uU3luYygpLnNjcmlwdHMgPz8ge30pKTtcbiAgY29uc3QgaGFzQWxsU2hhcmVkU2NyaXB0cyA9IFtTUEVMTENIRUNLX1NDUklQVF9OQU1FLCAuLi5PYmplY3QudmFsdWVzKFdSSVRFUl9TQ1JJUFRfTkFNRVMpLmZsYXQoKV1cbiAgICAuZXZlcnkoKHNjcmlwdE5hbWUpID0+IHNjcmlwdE5hbWVzLmhhcyhzY3JpcHROYW1lKSk7XG4gIGNvbnN0IGFkZGl0aW9uYWxXcml0ZXJUYXNrcyA9IG9wdGlvbnM/LmFkZGl0aW9uYWxXcml0ZXJUYXNrcyA/PyB7fTtcbiAgaWYgKGhhc0FsbFNoYXJlZFNjcmlwdHMgJiYgT2JqZWN0LmtleXMoYWRkaXRpb25hbFdyaXRlclRhc2tzKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gYXBwbHlCdWxrQnVkZ2V0KG9ic2lkaWFuRGV2VXRpbHNDb25maWcpO1xuICB9XG5cbiAgY29uc3Qgd3JpdGVyVGFza3MgPSB0b1dyaXRlclRhc2tzKChzY3JpcHROYW1lKSA9PiBzY3JpcHROYW1lcy5oYXMoc2NyaXB0TmFtZSkpO1xuICBjb25zdCBkdXBsaWNhdGVQYXR0ZXJuID0gT2JqZWN0LmtleXMoYWRkaXRpb25hbFdyaXRlclRhc2tzKS5maW5kKChwYXR0ZXJuKSA9PiBPYmplY3QuaGFzT3duKHdyaXRlclRhc2tzLCBwYXR0ZXJuKSk7XG4gIGlmIChkdXBsaWNhdGVQYXR0ZXJuICE9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG5hbm8tc3RhZ2VkIHdyaXRlciBwYXR0ZXJuICcke2R1cGxpY2F0ZVBhdHRlcm59JyBpcyBhbHJlYWR5IGEgc2hhcmVkIHdyaXRlciBwYXR0ZXJuLmApO1xuICB9XG5cbiAgcmV0dXJuIGFwcGx5QnVsa0J1ZGdldChwYXJ0aXRpb25TcGVsbGNoZWNrKHsgLi4ud3JpdGVyVGFza3MsIC4uLmFkZGl0aW9uYWxXcml0ZXJUYXNrcyB9LCBzY3JpcHROYW1lcy5oYXMoU1BFTExDSEVDS19TQ1JJUFRfTkFNRSkpKTtcbn1cblxuLyoqXG4gKiBDb2xsZWN0cyBjb21tYW5kcyB1c2luZyBuYW5vLXN0YWdlZCdzIG93biBwYXR0ZXJuIG1hdGNoaW5nLCB0aGVuIHJ1bnMgdGhlbSBpbiBvbmUgc2VyaWFsIGdyb3VwLlxuICpcbiAqIG5hbm8tc3RhZ2VkJ3MgYGdlbmVyYXRlQ21kVGFza3NgIHZpc2l0cyBjb25maWd1cmF0aW9uIGVudHJpZXMgaW4gaW5zZXJ0aW9uIG9yZGVyIGJlZm9yZSBleGVjdXRpbmcgYW55XG4gKiBjb21tYW5kcy4gVGhlIG9yaWdpbmFsIHBhdHRlcm4gY2FsbGJhY2tzIGNvbGxlY3QgdGhlaXIgY29tbWFuZHMgYW5kIHJldHVybiBub25lOyB0aGUgZmluYWwgY2F0Y2gtYWxsXG4gKiBkcmFpbnMgdGhlbS4gVGhpcyBwcmVzZXJ2ZXMgaXRzIGdsb2IgZGlhbGVjdCwgY3VzdG9tIHdyaXRlcnMsIGJhdGNoaW5nIGFuZCBwZXItZmlsZSB3cml0ZXIgb3JkZXIgd2l0aG91dFxuICogZGVwZW5kaW5nIG9uIGl0cyBwcml2YXRlIGNvbXBpbGVyLiBUaGUgaW5zdGFsbGVkIHJ1bm5lcidzIGdlbmVyYXRpb24gb3JkZXIgaXMgcGlubmVkIGJ5IHRoZSB0ZXN0cy5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIC0gVGhlIGNvbmZpZ3VyYXRpb24gd2hvc2UgZXhlY3V0aW9uIHNob3VsZCByZXNwZWN0IHRoZSBidWxrIGJ1ZGdldC5cbiAqIEByZXR1cm5zIFRoZSBzZXJpYWwgY29uZmlndXJhdGlvbiB3aGVuIGEgYnVkZ2V0IGlzIHByZXNlbnQsIG90aGVyd2lzZSB0aGUgb3JpZ2luYWwgY29uZmlndXJhdGlvbi5cbiAqL1xuZnVuY3Rpb24gYXBwbHlCdWxrQnVkZ2V0KGNvbmZpZzogTmFub1N0YWdlZENvbmZpZyk6IE5hbm9TdGFnZWRDb25maWcge1xuICBjb25zdCBidWRnZXQgPSBwcm9jZXNzLmVudlsnQlVMS19DT1JFUyddPy50cmltKCkgPz8gJyc7XG4gIGlmICghL15bMS05XVxcZCokLy50ZXN0KGJ1ZGdldCkpIHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgY29uc3QgY29tbWFuZHM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHNlcmlhbENvbmZpZzogTmFub1N0YWdlZENvbmZpZyA9IHt9O1xuICBmb3IgKGNvbnN0IFtwYXR0ZXJuLCB0YXNrXSBvZiBPYmplY3QuZW50cmllcyhjb25maWcpKSB7XG4gICAgc2VyaWFsQ29uZmlnW3BhdHRlcm5dID0gKGNvbnRleHQpOiBzdHJpbmdbXSA9PiB7XG4gICAgICBjb21tYW5kcy5wdXNoKC4uLnRhc2soY29udGV4dCkpO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH07XG4gIH1cblxuICAvLyBBIHNwZWxsY2hlY2stb25seSBjb25maWd1cmF0aW9uIGNhbiBhbHJlYWR5IG93biBgKmA7IG1vdmUgaXRzIGNvbGxlY3RvciBpbnRvIHRoZSBmaW5hbCBjYWxsYmFjay5cbiAgY29uc3QgY29sbGVjdEFsbCA9IHNlcmlhbENvbmZpZ1snKiddO1xuICBkZWxldGUgc2VyaWFsQ29uZmlnWycqJ107XG4gIHNlcmlhbENvbmZpZ1snKiddID0gKGNvbnRleHQpOiBzdHJpbmdbXSA9PiB7XG4gICAgY29sbGVjdEFsbD8uKGNvbnRleHQpO1xuICAgIHJldHVybiBjb21tYW5kcy5zcGxpY2UoMCk7XG4gIH07XG4gIHJldHVybiBzZXJpYWxDb25maWc7XG59XG5cbi8qKlxuICogU3BsaXRzIGNvbW1hbmQgYXJndW1lbnRzIGludG8gYmF0Y2hlcyB0aGF0IGVhY2ggZml0IG9uZSBjb21tYW5kIGxpbmUgYWZ0ZXIgYSBnaXZlbiBwcmVmaXguXG4gKlxuICogRWFjaCBhcmd1bWVudCBpcyBjb3N0ZWQgYXMgbmFuby1zdGFnZWQgcGFzc2VzIGl0IG9uIFdpbmRvd3MgXHUyMDE0IHF1b3RlZCwgdGhlbiBgXmAtZXNjYXBlZCBieSBgY21kLmV4ZWAnc1xuICogcnVsZXMgXHUyMDE0IHRocm91Z2gge0BsaW5rIGdldEVmZmVjdGl2ZUNvbW1hbmRMaW5lTGVuZ3RofSwgYW5kIHRoZSBidWRnZXQgaXMge0BsaW5rIGdldE1heEJhdGNoQ29tbWFuZExlbmd0aH0sXG4gKiB3aGljaCBhbHJlYWR5IGhvbGRzIGJhY2sgdGhlIHJlc2VydmUgZm9yIHRoZSBgbnBtYCBcdTIxOTIgYGNtZC5leGVgIFx1MjE5MiBgLmJpbmAgc2hpbSBjaGFpbiByZS1leHBhbmRpbmcgdGhlXG4gKiBhcmd1bWVudHMuIEFuIGFyZ3VtZW50IHRvbyBsb25nIGZvciBhbnkgYmF0Y2ggc3RpbGwgZ2V0cyBhIGJhdGNoIG9mIGl0cyBvd246IGl0IGZhaWxzIGxvdWRseSB0aGVyZSwgd2hpY2hcbiAqIGRyb3BwaW5nIGl0IHdvdWxkIG5vdC5cbiAqXG4gKiBAcGFyYW0gcHJlZml4IC0gVGhlIGNvbW1hbmQgdGhlIGFyZ3VtZW50cyBhcmUgYXBwZW5kZWQgdG8uXG4gKiBAcGFyYW0gY29tbWFuZEFyZ3VtZW50cyAtIFRoZSBhcmd1bWVudHMgdG8gc3BsaXQuXG4gKiBAcmV0dXJucyBUaGUgYmF0Y2hlcywgaW4gb3JkZXIsIHRvZ2V0aGVyIGhvbGRpbmcgZXZlcnkgYXJndW1lbnQgb25jZS5cbiAqL1xuZnVuY3Rpb24gYmF0Y2hDb21tYW5kQXJndW1lbnRzKHByZWZpeDogc3RyaW5nLCBjb21tYW5kQXJndW1lbnRzOiByZWFkb25seSBzdHJpbmdbXSk6IHN0cmluZ1tdW10ge1xuICBjb25zdCBlbXB0eUxlbmd0aCA9IGdldEVmZmVjdGl2ZUNvbW1hbmRMaW5lTGVuZ3RoKCcnKTtcbiAgY29uc3QgYnVkZ2V0ID0gZ2V0TWF4QmF0Y2hDb21tYW5kTGVuZ3RoKCkgLSBFWEVDVVRBQkxFX1BBVEhfUkVTRVJWRSAtIGdldEVmZmVjdGl2ZUNvbW1hbmRMaW5lTGVuZ3RoKHByZWZpeCk7XG4gIGNvbnN0IGJhdGNoZXM6IHN0cmluZ1tdW10gPSBbXTtcbiAgbGV0IGJhdGNoOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgYmF0Y2hMZW5ndGggPSAwO1xuXG4gIGZvciAoY29uc3QgY29tbWFuZEFyZ3VtZW50IG9mIGNvbW1hbmRBcmd1bWVudHMpIHtcbiAgICBjb25zdCBhcmd1bWVudExlbmd0aCA9IGdldEVmZmVjdGl2ZUNvbW1hbmRMaW5lTGVuZ3RoKGAgXCIke2NvbW1hbmRBcmd1bWVudH1cImApIC0gZW1wdHlMZW5ndGg7XG4gICAgaWYgKGJhdGNoLmxlbmd0aCA+IDAgJiYgYmF0Y2hMZW5ndGggKyBhcmd1bWVudExlbmd0aCA+IGJ1ZGdldCkge1xuICAgICAgYmF0Y2hlcy5wdXNoKGJhdGNoKTtcbiAgICAgIGJhdGNoID0gW107XG4gICAgICBiYXRjaExlbmd0aCA9IDA7XG4gICAgfVxuICAgIGJhdGNoLnB1c2goY29tbWFuZEFyZ3VtZW50KTtcbiAgICBiYXRjaExlbmd0aCArPSBhcmd1bWVudExlbmd0aDtcbiAgfVxuXG4gIGlmIChiYXRjaC5sZW5ndGggPiAwKSB7XG4gICAgYmF0Y2hlcy5wdXNoKGJhdGNoKTtcbiAgfVxuXG4gIHJldHVybiBiYXRjaGVzO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhIG5hbm8tc3RhZ2VkIGNvbmZpZ3VyYXRpb24gaW4gd2hpY2ggc3BlbGxjaGVjayBuZXZlciByZWFkcyBhIGZpbGUgd2hpbGUgYW5vdGhlciB0YXNrIHJld3JpdGVzIGl0LlxuICpcbiAqIFRoZSBzYW1lIGBQcm9taXNlLmFsbGAgdGhhdCBmb3JjZXMgdHdvIHdyaXRlcnMgaW50byBvbmUga2V5IG1ha2VzIGEgY2F0Y2gtYWxsIGAnKidgIHNwZWxsY2hlY2sga2V5IHJ1blxuICogQ09OQ1VSUkVOVExZIHdpdGggZXZlcnkgd3JpdGVyIGtleSwgc28gY3NwZWxsIHdvdWxkIHJlYWQgYSBmaWxlIHRoYXQgRVNMaW50IG9yIGRwcmludCBpcyByZXdyaXRpbmcgaW5cbiAqIHBsYWNlIC0tIGEgc3B1cmlvdXMgZmluZGluZyBvbiBhIGhhbGYtd3JpdHRlbiBmaWxlLCBvciBhIHBhc3Mgb3ZlciBjb250ZW50IHRoYXQgaXMgbm90IHdoYXQgZ2V0c1xuICogY29tbWl0dGVkLiBTbyB0aGUgc3RhZ2VkIGZpbGVzIGFyZSBQQVJUSVRJT05FRCBpbnN0ZWFkOlxuICpcbiAqIC0gZXZlcnkgd3JpdGVyIGtleSBnZXRzIHNwZWxsY2hlY2sgYXBwZW5kZWQgYXMgaXRzIExBU1QgY29tbWFuZCwgc28gaXQgcmVhZHMgdGhhdCBrZXkncyBmaWxlcyBhZnRlciB0aGV5XG4gKiAgIGhhdmUgYmVlbiByZXdyaXR0ZW47XG4gKiAtIG9uZSBjb21wbGVtZW50IGtleSBzcGVsbGNoZWNrcyBleGFjdGx5IHRoZSBmaWxlcyBubyB3cml0ZXIga2V5IGNsYWltcy5cbiAqXG4gKiBUaGUgY29tcGxlbWVudCBpcyB3cml0dGVuIGluIG5hbm8tc3RhZ2VkJ3Mgb3duIGdsb2IgZGlhbGVjdCwgd2hpY2ggY29tcGlsZXMgYCEoLi4uKWAgdG8gYSBsb29rYWhlYWQgdGhhdFxuICogaXMgTk9UIGFuY2hvcmVkIGF0IHRoZSBlbmQgb2YgdGhlIHBhdGg6IGAhKCoubWQpKmAgd291bGQgZXhjbHVkZSBgbm90ZXMubWQuYmFrYCB0b28uIEEgbmVzdGVkIGAhKD8pYFxuICogY29tcGlsZXMgdG8gYCg/IS4pYCwgd2hpY2ggSVMgYW4gZW5kIGFuY2hvciwgc28gZWFjaCBhbHRlcm5hdGl2ZSBpcyBzdWZmaXhlZCB3aXRoIGl0LiBBIHdyaXRlciBwYXR0ZXJuXG4gKiBjb250YWluaW5nIGAvYCB3b3VsZCBzd2l0Y2ggbmFuby1zdGFnZWQgaW50byBnbG9ic3RhciBtb2RlLCB3aGVyZSBgKmAgc3RvcHMgY3Jvc3NpbmcgZGlyZWN0b3JpZXMgYW5kIHRoZVxuICogY29uc3RydWN0aW9uIG5vIGxvbmdlciBob2xkcyAtLSBoZW5jZSB0aGUgdGhyb3cuIFRoZSB1bml0IHRlc3QgcGlucyB0aGUgcGFydGl0aW9uIGFnYWluc3QgdGhlIGluc3RhbGxlZFxuICogbmFuby1zdGFnZWQgY29tcGlsZXIsIHNvIGEgcmVsZWFzZSB0aGF0IGNoYW5nZXMgaXRzIGRpYWxlY3QgZmFpbHMgdGhlcmUgcmF0aGVyIHRoYW4gaW4gYSBjb21taXQuXG4gKlxuICogV2l0aG91dCBzcGVsbGNoZWNrIHRoZXJlIGlzIG5vdGhpbmcgdG8gcGFydGl0aW9uOiBlYWNoIHdyaXRlciBrZXkgcnVucyBpdHMgb3duIGNvbW1hbmRzLCBhbmQgbm8gY29tcGxlbWVudFxuICoga2V5IGlzIGVtaXR0ZWQuXG4gKlxuICogQHBhcmFtIHdyaXRlclRhc2tzIC0gVGhlIGZpbGUtcmV3cml0aW5nIHRhc2tzLCBrZXllZCBieSB0aGUgcGF0dGVybiB0aGF0IGNsYWltcyB0aGVpciBmaWxlcy5cbiAqIEBwYXJhbSBzaG91bGRTcGVsbGNoZWNrIC0gV2hldGhlciB0aGUgcHJvamVjdCBoYXMgYSBgc3BlbGxjaGVja2Agc2NyaXB0IHRvIHJ1bi5cbiAqIEByZXR1cm5zIFRoZSBjb25maWd1cmF0aW9uLCB3aXRoIHRoZSBzcGVsbGNoZWNrIHN0ZXAgcGFydGl0aW9uZWQgYWNyb3NzIHRoZSBrZXlzLlxuICovXG5mdW5jdGlvbiBwYXJ0aXRpb25TcGVsbGNoZWNrKHdyaXRlclRhc2tzOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCByZWFkb25seSBzdHJpbmdbXT4+LCBzaG91bGRTcGVsbGNoZWNrOiBib29sZWFuKTogTmFub1N0YWdlZENvbmZpZyB7XG4gIGlmICghc2hvdWxkU3BlbGxjaGVjaykge1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMod3JpdGVyVGFza3MpLm1hcCgoW3BhdHRlcm4sIGNvbW1hbmRzXSkgPT4gW3BhdHRlcm4sIHRvQmF0Y2hlZFRhc2soY29tbWFuZHMpXSkpO1xuICB9XG5cbiAgY29uc3QgcGF0dGVybnMgPSBPYmplY3Qua2V5cyh3cml0ZXJUYXNrcyk7XG4gIGNvbnN0IHBhdHRlcm5XaXRoU2xhc2ggPSBwYXR0ZXJucy5maW5kKChwYXR0ZXJuKSA9PiBwYXR0ZXJuLmluY2x1ZGVzKCcvJykpO1xuICBpZiAocGF0dGVybldpdGhTbGFzaCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBuYW5vLXN0YWdlZCB3cml0ZXIgcGF0dGVybiAnJHtwYXR0ZXJuV2l0aFNsYXNofScgY29udGFpbnMgJy8nLCB3aGljaCB0aGUgc3BlbGxjaGVjayBwYXJ0aXRpb24gY2Fubm90IGV4cHJlc3MuYCk7XG4gIH1cblxuICAvLyBgISgpKmAgd291bGQgY29tcGlsZSB0byBhIGxvb2thaGVhZCB0aGF0IHJlamVjdHMgZXZlcnkgcGF0aCwgc28gd2l0aCBubyB3cml0ZXIgdGhlIGNvbXBsZW1lbnQgaXMgZXZlcnl0aGluZy5cbiAgY29uc3QgY29tcGxlbWVudFBhdHRlcm4gPSBwYXR0ZXJucy5sZW5ndGggPT09IDAgPyAnKicgOiBgISgke3BhdHRlcm5zLm1hcCgocGF0dGVybikgPT4gYCR7cGF0dGVybn0hKD8pYCkuam9pbignfCcpfSkqYDtcbiAgY29uc3QgY29uZmlnOiBOYW5vU3RhZ2VkQ29uZmlnID0ge1xuICAgIFtjb21wbGVtZW50UGF0dGVybl06IHRvQmF0Y2hlZFRhc2soW1NQRUxMQ0hFQ0tfQ09NTUFORF0pXG4gIH07XG5cbiAgZm9yIChjb25zdCBbcGF0dGVybiwgY29tbWFuZHNdIG9mIE9iamVjdC5lbnRyaWVzKHdyaXRlclRhc2tzKSkge1xuICAgIGNvbmZpZ1twYXR0ZXJuXSA9IHRvQmF0Y2hlZFRhc2soWy4uLmNvbW1hbmRzLCBTUEVMTENIRUNLX0NPTU1BTkRdKTtcbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgdGFzayB0aGF0IHJ1bnMgZWFjaCBjb21tYW5kIG92ZXIgZXZlcnkgc3RhZ2VkIGZpbGUgaXQgcmVjZWl2ZXMsIGluIGFzIG1hbnkgYmF0Y2hlcyBhcyB0aGUgY29tbWFuZFxuICogbGluZSBuZWVkcy5cbiAqXG4gKiBuYW5vLXN0YWdlZCBhcHBlbmRzIGEgc3RyaW5nIHRhc2sncyBmaWxlcyB0byBPTkUgY29tbWFuZCwgc28gYSBjb21taXQgc3RhZ2luZyBhIGZldyBodW5kcmVkIGZpbGVzIHJhblxuICogYG5wbSBydW4gbGludDpmaXggLS0gPGV2ZXJ5IHBhdGg+YCBhbmQgZmFpbGVkIG9uIFdpbmRvd3Mgd2l0aCBgVGhlIGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZy5gLCByZWZ1c2luZ1xuICogZXhhY3RseSB0aGUgd2hvbGUtcmVwbyBjb21taXRzIHRoYXQgbW9zdCBuZWVkIHRoZSBob29rLiBBIGZ1bmN0aW9uLXZhbHVlZCB0YXNrIGJ1aWxkcyBpdHMgb3duIGNvbW1hbmRzXG4gKiBpbnN0ZWFkLCBhbmQgdGhlc2UgYXJlIGJhdGNoZWQgYWdhaW5zdCB0aGUgc2FtZSBidWRnZXQgYGV4ZWMoKWAgdXNlcyAoc2VlIGBiYXRjaENvbW1hbmRBcmd1bWVudHNgKS5cbiAqXG4gKiBUaGUgY29tbWFuZHMga2VlcCB0aGVpciBvcmRlcjogZXZlcnkgYmF0Y2ggb2YgdGhlIGZpcnN0IGNvbW1hbmQgcnVucyBiZWZvcmUgYW55IGJhdGNoIG9mIHRoZSBzZWNvbmQsXG4gKiBiZWNhdXNlIG5hbm8tc3RhZ2VkIHJ1bnMgb25lIGtleSdzIGNvbW1hbmRzIG9uZSBhZnRlciBhbm90aGVyLCBzbyBhIHdyaXRlciBzdGlsbCBmaW5pc2hlcyBiZWZvcmUgdGhlIG5leHRcbiAqIHdyaXRlciwgYW5kIHNwZWxsY2hlY2sgc3RpbGwgcmVhZHMgdGhlIHJld3JpdHRlbiBmaWxlcy5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZHMgLSBUaGUgY29tbWFuZCBwcmVmaXhlcywgaW4gdGhlIG9yZGVyIHRoZXkgcnVuLlxuICogQHJldHVybnMgVGhlIHRhc2suXG4gKi9cbmZ1bmN0aW9uIHRvQmF0Y2hlZFRhc2soY29tbWFuZHM6IHJlYWRvbmx5IHN0cmluZ1tdKTogTmFub1N0YWdlZFRhc2sge1xuICByZXR1cm4gKHsgZmlsZW5hbWVzIH0pID0+IHtcbiAgICBjb25zdCBjb21tYW5kQXJndW1lbnRzID0gZmlsZW5hbWVzLm1hcCgoZmlsZW5hbWUpID0+IHRvQ29tbWFuZEFyZ3VtZW50KGZpbGVuYW1lKSk7XG4gICAgcmV0dXJuIGNvbW1hbmRzLmZsYXRNYXAoKGNvbW1hbmQpID0+IGJhdGNoQ29tbWFuZEFyZ3VtZW50cyhjb21tYW5kLCBjb21tYW5kQXJndW1lbnRzKS5tYXAoKGJhdGNoKSA9PiBgJHtjb21tYW5kfSAke2JhdGNoLmpvaW4oJyAnKX1gKSk7XG4gIH07XG59XG5cbi8qKlxuICogVHVybnMgYSBzdGFnZWQgZmlsZSdzIGFic29sdXRlIHBhdGggaW50byB0aGUgYXJndW1lbnQgYSBiYXRjaGVkIHRhc2sgcGFzc2VzIGZvciBpdC5cbiAqXG4gKiBUaGUgcGF0aCBpcyBtYWRlIHJlbGF0aXZlIHRvIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwgd2hlcmUgbmFuby1zdGFnZWQgYW5kIHRoZSB0YXNrIGJvdGggcnVuLCB3aGljaCByb3VnaGx5XG4gKiBoYWx2ZXMgaXRzIGxlbmd0aCBhbmQgc28gdGhlIG51bWJlciBvZiBiYXRjaGVzOyBhIHBhdGggb3V0c2lkZSBpdCBzdGF5cyBhYnNvbHV0ZS4gQSByZWxhdGl2ZSBwYXRoIHN0YXJ0aW5nXG4gKiB3aXRoIGAtYCBnZXRzIGAuL2AsIHNvIG5vIHRvb2wgcmVhZHMgaXQgYXMgYW4gb3B0aW9uLlxuICpcbiAqIFdoaXRlc3BhY2UgYW5kIHF1b3RlcyBiZWNvbWUgYD9gLCBiZWNhdXNlIG5hbm8tc3RhZ2VkJ3MgdG9rZW5pemVyIGNhbm5vdCBjYXJyeSB0aGVtIChzZWVcbiAqIHtAbGluayBUT0tFTklaRVJfVU5TQUZFX0NIQVJBQ1RFUlNfUkVHX0VYUH0pLiBFdmVyeSB0b29sIHRoZSB0YXNrcyBydW4gKEVTTGludCwgZHByaW50LCBjc3BlbGwsXG4gKiBtYXJrZG93bmxpbnQtY2xpMikgdGFrZXMgaXRzIHBhdGhzIGFzIGdsb2JzLCBhbmQgYD9gIG1hdGNoZXMgZXhhY3RseSB0aGUgb25lIGNoYXJhY3RlciBpdCByZXBsYWNlZCwgc28gdGhlXG4gKiBmaWxlIGlzIHN0aWxsIGZvdW5kOyBhIHNpYmxpbmcgZGlmZmVyaW5nIG9ubHkgaW4gdGhhdCBjaGFyYWN0ZXIgd291bGQgbWF0Y2ggdG9vLCB3aGljaCBjb3N0cyBhIGxpbnQgb2YgYW5cbiAqIGV4dHJhIGZpbGUsIG5vdCBhIG1pc3NlZCBvbmUuXG4gKlxuICogQHBhcmFtIGZpbGVuYW1lIC0gVGhlIGFic29sdXRlIHBhdGggb2YgdGhlIHN0YWdlZCBmaWxlLlxuICogQHJldHVybnMgVGhlIGFyZ3VtZW50LlxuICovXG5mdW5jdGlvbiB0b0NvbW1hbmRBcmd1bWVudChmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgcmVsYXRpdmVQYXRoID0gcmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgZmlsZW5hbWUpO1xuICBsZXQgY29tbWFuZEFyZ3VtZW50ID0gKHJlbGF0aXZlUGF0aC5zdGFydHNXaXRoKCcuLicpIHx8IGlzQWJzb2x1dGUocmVsYXRpdmVQYXRoKSA/IGZpbGVuYW1lIDogcmVsYXRpdmVQYXRoKS5yZXBsYWNlQWxsKCdcXFxcJywgJy8nKTtcbiAgaWYgKGNvbW1hbmRBcmd1bWVudC5zdGFydHNXaXRoKCctJykpIHtcbiAgICBjb21tYW5kQXJndW1lbnQgPSBgLi8ke2NvbW1hbmRBcmd1bWVudH1gO1xuICB9XG4gIHJldHVybiBjb21tYW5kQXJndW1lbnQucmVwbGFjZUFsbChUT0tFTklaRVJfVU5TQUZFX0NIQVJBQ1RFUlNfUkVHX0VYUCwgJz8nKTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGNvbW1hbmQgcHJlZml4IHRoYXQgcnVucyBhbiBucG0gc2NyaXB0IG92ZXIgdGhlIHBhdGhzIGFwcGVuZGVkIHRvIGl0LlxuICpcbiAqIEBwYXJhbSBzY3JpcHROYW1lIC0gVGhlIHNjcmlwdCBuYW1lLlxuICogQHJldHVybnMgVGhlIGNvbW1hbmQgcHJlZml4LCBzdWNoIGFzIGBucG0gcnVuIGxpbnQ6Zml4IC0tYC5cbiAqL1xuZnVuY3Rpb24gdG9TY3JpcHRDb21tYW5kKHNjcmlwdE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtQQUNLQUdFX01BTkFHRVJfUlVOX0NPTU1BTkR9ICR7c2NyaXB0TmFtZX0gLS1gO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgc2hhcmVkIHdyaXRlciB0YXNrcyBmcm9tIHtAbGluayBXUklURVJfU0NSSVBUX05BTUVTfSwga2VlcGluZyBvbmx5IHRoZSBzY3JpcHRzIGEgZmlsdGVyIGFjY2VwdHNcbiAqIGFuZCBkcm9wcGluZyBhIHBhdHRlcm4gbGVmdCB3aXRoIG5vbmUuXG4gKlxuICogQHBhcmFtIHNob3VsZEluY2x1ZGVTY3JpcHQgLSBXaGV0aGVyIHRvIHJ1biBhIGdpdmVuIHNjcmlwdC5cbiAqIEByZXR1cm5zIFRoZSB3cml0ZXIgdGFza3MsIGtleWVkIGJ5IHRoZSBwYXR0ZXJuIHRoYXQgY2xhaW1zIHRoZWlyIGZpbGVzLlxuICovXG5mdW5jdGlvbiB0b1dyaXRlclRhc2tzKHNob3VsZEluY2x1ZGVTY3JpcHQ6IChzY3JpcHROYW1lOiBzdHJpbmcpID0+IGJvb2xlYW4pOiBSZWNvcmQ8c3RyaW5nLCByZWFkb25seSBzdHJpbmdbXT4ge1xuICBjb25zdCB3cml0ZXJUYXNrczogUmVjb3JkPHN0cmluZywgcmVhZG9ubHkgc3RyaW5nW10+ID0ge307XG4gIGZvciAoY29uc3QgW3BhdHRlcm4sIHNjcmlwdE5hbWVzXSBvZiBPYmplY3QuZW50cmllcyhXUklURVJfU0NSSVBUX05BTUVTKSkge1xuICAgIGNvbnN0IGNvbW1hbmRzID0gc2NyaXB0TmFtZXMuZmlsdGVyKChzY3JpcHROYW1lKSA9PiBzaG91bGRJbmNsdWRlU2NyaXB0KHNjcmlwdE5hbWUpKS5tYXAoKHNjcmlwdE5hbWUpID0+IHRvU2NyaXB0Q29tbWFuZChzY3JpcHROYW1lKSk7XG4gICAgaWYgKGNvbW1hbmRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHdyaXRlclRhc2tzW3BhdHRlcm5dID0gY29tbWFuZHM7XG4gICAgfVxuICB9XG4gIHJldHVybiB3cml0ZXJUYXNrcztcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLHVCQUdPO0FBQ1AsMEJBQW9CO0FBRXBCLHdCQUdPO0FBQ1Asa0JBR087QUFDUCxpQkFBb0M7QUFDcEMsNkJBQTRDO0FBMkM1QyxNQUFNLGtDQUE4QixvREFBNEIsRUFBRSxLQUFLLEdBQUc7QUFFMUUsTUFBTSx5QkFBeUI7QUFFL0IsTUFBTSxxQkFBcUIsZ0JBQWdCLHNCQUFzQjtBQVFqRSxNQUFNLDBCQUEwQjtBQVNoQyxNQUFNLHNDQUFzQztBQWlCNUMsTUFBTSxzQkFBbUU7QUFBQSxFQUN2RSxrQkFBa0IsQ0FBQyxZQUFZLFFBQVE7QUFBQSxFQUN2QyxRQUFRLENBQUMsYUFBYTtBQUN4QjtBQUVBLE1BQU0sZUFBNEQsY0FBYyxNQUFNLElBQUk7QUFpQm5GLE1BQU0seUJB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
|
|
@@ -66,6 +66,10 @@ export declare const obsidianDevUtilsConfig: NanoStagedConfig;
|
|
|
66
66
|
* which case its files fall to the spellcheck-only key. The `additionalWriterTasks` are the caller's own and
|
|
67
67
|
* are kept as given.
|
|
68
68
|
*
|
|
69
|
+
* A positive integer `BULK_CORES` budget serializes the generated commands into one group. nano-staged
|
|
70
|
+
* has no concurrency option, so this keeps its processes within even a one-core budget. Without a valid
|
|
71
|
+
* budget the usual parallel groups are retained.
|
|
72
|
+
*
|
|
69
73
|
* `NANO_STAGED` is not an npm script, so it carries its own switch rather than the script-name-derived one
|
|
70
74
|
* every npm script gets — but both share the same notion of an off value, via {@link isEnvVariableOff}.
|
|
71
75
|
*
|
|
@@ -130,13 +130,13 @@ function getIssueReferences(params) {
|
|
|
130
130
|
const closingFlagByNumber = /* @__PURE__ */ new Map();
|
|
131
131
|
for (const commitMessage of commitMessages) {
|
|
132
132
|
for (const match of commitMessage.matchAll(regExp)) {
|
|
133
|
-
const number = Number(
|
|
133
|
+
const $number = Number(
|
|
134
134
|
(0, import_reg_exp.getOptionalNamedGroup)(match, "urlNumber") ?? (0, import_reg_exp.getOptionalNamedGroup)(match, "slugNumber") ?? (0, import_reg_exp.getOptionalNamedGroup)(match, "bareNumber")
|
|
135
135
|
);
|
|
136
|
-
closingFlagByNumber.set(number, (closingFlagByNumber.get(number) ?? false) || (0, import_reg_exp.getOptionalNamedGroup)(match, "keyword") !== null);
|
|
136
|
+
closingFlagByNumber.set($number, (closingFlagByNumber.get($number) ?? false) || (0, import_reg_exp.getOptionalNamedGroup)(match, "keyword") !== null);
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
-
return [...closingFlagByNumber].sort(([number1], [number2]) => number1 - number2).map(([number, isClosing]) => ({ isClosing, number }));
|
|
139
|
+
return [...closingFlagByNumber].sort(([number1], [number2]) => number1 - number2).map(([$number, isClosing]) => ({ isClosing, number: $number }));
|
|
140
140
|
}
|
|
141
141
|
async function hasCommentContaining(repoSlug, issueNumber, text) {
|
|
142
142
|
const bodies = await (0, import_root.execFromRoot)(["gh", "api", "--paginate", `repos/${repoSlug}/issues/${String(issueNumber)}/comments`, "--jq", ".[].body"], {
|
|
@@ -153,4 +153,4 @@ function toRepoSlug(repoUrl) {
|
|
|
153
153
|
closeReleasedIssues,
|
|
154
154
|
getIssueReferences
|
|
155
155
|
});
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWxlYXNlZC1pc3N1ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENsb3NlcyB0aGUgR2l0SHViIGlzc3VlcyBhIHJlbGVhc2UgY2Fycmllcywgd2l0aCBhIGNvbW1lbnQgbGlua2luZyB0aGUgcmVsZWFzZS5cbiAqXG4gKiBBbiBpc3N1ZSB0aGF0IGEgY29tbWl0IGluIHRoZSByZWxlYXNlIG5hbWVzIHdpdGggYSBjbG9zaW5nIGtleXdvcmQgKGBmaXhlcyAjMTJgLCBgY2xvc2VzICMxMmAsIGByZXNvbHZlcyAjMTJgLFxuICogYW5kIHRoZWlyIG90aGVyIHRlbnNlcykgaXMgY2xvc2VkIGFzIGNvbXBsZXRlZCwgd2l0aCBgRml4ZWQgaW4gPHJlbGVhc2UgVVJMPmAgd2hlbiBpdCBjYXJyaWVzIGEgYGJ1Z2AgbGFiZWwgYW5kXG4gKiBgSW1wbGVtZW50ZWQgaW4gPHJlbGVhc2UgVVJMPmAgb3RoZXJ3aXNlLiBUaGUgVVJMIGlzIHRoZSBgcmVsZWFzZXMvdGFnLzx2ZXJzaW9uPmAgcGFnZSwgd2hpY2ggZXhpc3RzIGJ5IHRoZSB0aW1lXG4gKiB0aGlzIHJ1bnMuXG4gKlxuICogT25seSBhIGNsb3Npbmcga2V5d29yZCBjbG9zZXMgYW55dGhpbmcuIEEgYmFyZSBtZW50aW9uIChgcmUgIzEyYCwgYCgjMTIpYCwgdGhlIGlzc3VlIFVSTCkgaXMgb2Z0ZW4gb25lIHN0ZXAgb2ZcbiAqIHVuZmluaXNoZWQgd29yaywgYW5kIHRoaXMgbW9kdWxlIGNhbm5vdCBrbm93IHdoZXRoZXIgdGhlIHJlc3QgaGFzIGxhbmRlZCwgc28gc3VjaCBhbiBpc3N1ZSBpcyBsaXN0ZWQgYXMgbGVmdCBvcGVuXG4gKiBhbmQgbm90aGluZyBpcyBwb3N0ZWQgdG8gaXQuXG4gKlxuICogR2l0SHViIGl0c2VsZiBjbG9zZXMgYW4gaXNzdWUgbmFtZWQgd2l0aCBhIGNsb3Npbmcga2V5d29yZCBhcyBzb29uIGFzIHRoZSBjb21taXQgcmVhY2hlcyB0aGUgZGVmYXVsdCBicmFuY2gg4oCUXG4gKiBiZWZvcmUgdGhlIHJlbGVhc2UsIGFuZCB3aXRob3V0IHNheWluZyB3aGljaCByZWxlYXNlIGNhcnJpZXMgdGhlIGNoYW5nZS4gU28gYW4gaXNzdWUgdGhhdCBpcyBhbHJlYWR5IGNsb3NlZCBhc1xuICogY29tcGxldGVkIHN0aWxsIGdldHMgdGhlIHJlbGVhc2UgbGluaywgdW5sZXNzIG9uZSBvZiBpdHMgY29tbWVudHMgYWxyZWFkeSBjYXJyaWVzIHRoaXMgcmVsZWFzZSdzIFVSTCwgd2hpY2ggYWxzb1xuICogbWFrZXMgYSBzZWNvbmQgcnVuIHBvc3Qgbm90aGluZy5cbiAqL1xuXG5pbXBvcnQgeyBlcnJvclRvU3RyaW5nIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Vycm9yJztcbmltcG9ydCB7XG4gIGVzY2FwZVJlZ0V4cCxcbiAgZ2V0T3B0aW9uYWxOYW1lZEdyb3VwXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcblxuaW1wb3J0IHsgZXhlY0Zyb21Sb290IH0gZnJvbSAnLi9yb290LnRzJztcblxuLyoqXG4gKiBQYXJhbXMgZm9yIHtAbGluayBjbG9zZVJlbGVhc2VkSXNzdWVzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbG9zZVJlbGVhc2VkSXNzdWVzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIGp1c3QgcmVsZWFzZWQuIEl0cyB0YWcgbXVzdCBleGlzdCBsb2NhbGx5IGFuZCBpdHMgR2l0SHViIHJlbGVhc2UgbXVzdCBiZSBwdWJsaXNoZWQuXG4gICAqL1xuICByZWFkb25seSBuZXdWZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1zIGZvciB7QGxpbmsgZ2V0SXNzdWVSZWZlcmVuY2VzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRJc3N1ZVJlZmVyZW5jZXNQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGNvbW1pdCBtZXNzYWdlcyB0byByZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWl0TWVzc2FnZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgYDxvd25lcj4vPG5hbWU+YCBvZiB0aGUgcmVwb3NpdG9yeSB3aG9zZSBpc3N1ZXMgY291bnQuIEEgcmVmZXJlbmNlIGludG8gYW55IG90aGVyIHJlcG9zaXRvcnkgaXMgaWdub3JlZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9TbHVnOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQW4gaXNzdWUgbnVtYmVyIG5hbWVkIGJ5IHRoZSBjb21taXQgbWVzc2FnZXMgb2YgYSByZWxlYXNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElzc3VlUmVmZXJlbmNlIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgYXQgbGVhc3Qgb25lIG1lbnRpb24gdXNlZCBhIGNsb3Npbmcga2V5d29yZC5cbiAgICovXG4gIHJlYWRvbmx5IGlzQ2xvc2luZzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGlzc3VlIG9yIHB1bGwgcmVxdWVzdCBudW1iZXIuXG4gICAqL1xuICByZWFkb25seSBudW1iZXI6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIEdpdEh1Yklzc3VlIHtcbiAgcmVhZG9ubHkgbGFiZWxzOiByZWFkb25seSBHaXRIdWJMYWJlbFtdO1xuICByZWFkb25seSBwdWxsX3JlcXVlc3Q/OiB1bmtub3duO1xuICByZWFkb25seSBzdGF0ZTogc3RyaW5nO1xuICByZWFkb25seSBzdGF0ZV9yZWFzb24/OiBudWxsIHwgc3RyaW5nO1xuICByZWFkb25seSB0aXRsZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgR2l0SHViTGFiZWwge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2xvc2VzIHRoZSBpc3N1ZXMgdGhlIHJlbGVhc2Ugb2Yge0BsaW5rIENsb3NlUmVsZWFzZWRJc3N1ZXNQYXJhbXMubmV3VmVyc2lvbn0gY2FycmllcywgYXMgZGVzY3JpYmVkIGluIHRoZSBmaWxlXG4gKiBvdmVydmlldy5cbiAqXG4gKiBBIGZhaWx1cmUgdG8gcmVhZCBvciB1cGRhdGUgb25lIGlzc3VlIGlzIHJlcG9ydGVkIGFuZCB0aGUgcmVzdCBhcmUgc3RpbGwgcHJvY2Vzc2VkLCBiZWNhdXNlIHRoZSByZWxlYXNlIGlzXG4gKiBhbHJlYWR5IHB1Ymxpc2hlZCBieSB0aGUgdGltZSB0aGlzIHJ1bnMgYW5kIG5vdGhpbmcgYWJvdXQgaXQgY2FuIGJlIHVuZG9uZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBDbG9zZVJlbGVhc2VkSXNzdWVzUGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIG51bWJlcnMgb2YgdGhlIGlzc3VlcyB0aGF0IGNvdWxkIG5vdCBiZSBwcm9jZXNzZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjbG9zZVJlbGVhc2VkSXNzdWVzKHBhcmFtczogQ2xvc2VSZWxlYXNlZElzc3Vlc1BhcmFtcyk6IFByb21pc2U8bnVtYmVyW10+IHtcbiAgY29uc3QgeyBuZXdWZXJzaW9uIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHJlcG9VcmwgPSBhd2FpdCBleGVjRnJvbVJvb3QoJ2doIHJlcG8gdmlldyAtLWpzb24gdXJsIC1xIC51cmwnLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIGNvbnN0IHJlcG9TbHVnID0gdG9SZXBvU2x1ZyhyZXBvVXJsKTtcbiAgaWYgKCFyZXBvU2x1Zykge1xuICAgIGNvbnNvbGUud2FybihgTm90IGNsb3NpbmcgdGhlIHJlbGVhc2VkIGlzc3VlczogJyR7cmVwb1VybH0nIGlzIG5vdCBhIEdpdEh1YiByZXBvc2l0b3J5IFVSTC5gKTtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBwcmV2aW91c1RhZyA9IGF3YWl0IGV4ZWNGcm9tUm9vdChbJ2dpdCcsICdkZXNjcmliZScsICctLXRhZ3MnLCAnLS1hYmJyZXY9MCcsIGAke25ld1ZlcnNpb259XmBdLCB7XG4gICAgaXNRdWlldDogdHJ1ZSxcbiAgICBzaG91bGRJZ25vcmVFeGl0Q29kZTogdHJ1ZVxuICB9KTtcbiAgY29uc3QgY29tbWl0UmFuZ2UgPSBwcmV2aW91c1RhZyA/IGAke3ByZXZpb3VzVGFnfS4uJHtuZXdWZXJzaW9ufWAgOiBuZXdWZXJzaW9uO1xuICBjb25zdCBjb21taXRNZXNzYWdlc1N0cmluZyA9IGF3YWl0IGV4ZWNGcm9tUm9vdChbJ2dpdCcsICdsb2cnLCBjb21taXRSYW5nZSwgJy0tZm9ybWF0PSVCJywgJy16J10sIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgY29uc3QgcmVmZXJlbmNlcyA9IGdldElzc3VlUmVmZXJlbmNlcyh7IGNvbW1pdE1lc3NhZ2VzOiBjb21taXRNZXNzYWdlc1N0cmluZy5zcGxpdCgnXFwwJyksIHJlcG9TbHVnIH0pO1xuICBjb25zdCByZWxlYXNlVXJsID0gYCR7cmVwb1VybH0vcmVsZWFzZXMvdGFnLyR7bmV3VmVyc2lvbn1gO1xuICBjb25zdCBmYWlsZWROdW1iZXJzOiBudW1iZXJbXSA9IFtdO1xuICBjb25zdCBsZWZ0T3BlbkxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaXNzdWUgPSBKU09OLnBhcnNlKGF3YWl0IGV4ZWNGcm9tUm9vdChbJ2doJywgJ2FwaScsIGByZXBvcy8ke3JlcG9TbHVnfS9pc3N1ZXMvJHtTdHJpbmcocmVmZXJlbmNlLm51bWJlcil9YF0sIHsgaXNRdWlldDogdHJ1ZSB9KSkgYXMgR2l0SHViSXNzdWU7XG4gICAgICBpZiAoaXNzdWUucHVsbF9yZXF1ZXN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbW1lbnQgPSBgJHtpc3N1ZS5sYWJlbHMuc29tZSgobGFiZWwpID0+IC9idWcvaS50ZXN0KGxhYmVsLm5hbWUpKSA/ICdGaXhlZCBpbicgOiAnSW1wbGVtZW50ZWQgaW4nfSAke3JlbGVhc2VVcmx9YDtcbiAgICAgIGNvbnN0IGlzT3BlbiA9IGlzc3VlLnN0YXRlID09PSAnb3Blbic7XG5cbiAgICAgIGlmICghcmVmZXJlbmNlLmlzQ2xvc2luZykge1xuICAgICAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAgICAgbGVmdE9wZW5MaW5lcy5wdXNoKGAgICMke1N0cmluZyhyZWZlcmVuY2UubnVtYmVyKX0gJHtpc3N1ZS50aXRsZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzT3Blbikge1xuICAgICAgICBhd2FpdCBleGVjRnJvbVJvb3QoWydnaCcsICdpc3N1ZScsICdjbG9zZScsIFN0cmluZyhyZWZlcmVuY2UubnVtYmVyKSwgJy1SJywgcmVwb1NsdWcsICctLXJlYXNvbicsICdjb21wbGV0ZWQnLCAnLS1jb21tZW50JywgY29tbWVudF0sIHtcbiAgICAgICAgICBpc1F1aWV0OiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zb2xlLndhcm4oYENsb3NlZCAjJHtTdHJpbmcocmVmZXJlbmNlLm51bWJlcil9ICR7aXNzdWUudGl0bGV9OiAke2NvbW1lbnR9YCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNzdWUuc3RhdGVfcmVhc29uICE9PSAnY29tcGxldGVkJyB8fCBhd2FpdCBoYXNDb21tZW50Q29udGFpbmluZyhyZXBvU2x1ZywgcmVmZXJlbmNlLm51bWJlciwgcmVsZWFzZVVybCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ2doJywgJ2lzc3VlJywgJ2NvbW1lbnQnLCBTdHJpbmcocmVmZXJlbmNlLm51bWJlciksICctUicsIHJlcG9TbHVnLCAnLS1ib2R5JywgY29tbWVudF0sIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgICAgIGNvbnNvbGUud2FybihgQ29tbWVudGVkIG9uIHRoZSBhbHJlYWR5IGNsb3NlZCAjJHtTdHJpbmcocmVmZXJlbmNlLm51bWJlcil9ICR7aXNzdWUudGl0bGV9OiAke2NvbW1lbnR9YCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGZhaWxlZE51bWJlcnMucHVzaChyZWZlcmVuY2UubnVtYmVyKTtcbiAgICAgIGNvbnNvbGUud2FybihgQ291bGQgbm90IHByb2Nlc3MgaXNzdWUgIyR7U3RyaW5nKHJlZmVyZW5jZS5udW1iZXIpfSBvZiAke3JlcG9TbHVnfTogJHtlcnJvclRvU3RyaW5nKGVycm9yKX1gKTtcbiAgICB9XG4gIH1cblxuICBpZiAobGVmdE9wZW5MaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgYExlZnQgb3BlbjogdGhlIHJlbGVhc2UgbmFtZXMgdGhlc2UgaXNzdWVzIHdpdGhvdXQgYSBjbG9zaW5nIGtleXdvcmQsIHNvIHdoZXRoZXIgdGhleSBhcmUgZmluaXNoZWQgaXMgbm90IGtub3duIGhlcmU6XFxuJHtsZWZ0T3BlbkxpbmVzLmpvaW4oJ1xcbicpfWBcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGZhaWxlZE51bWJlcnM7XG59XG5cbi8qKlxuICogQ29sbGVjdHMgdGhlIGlzc3VlIG51bWJlcnMgb2Ygb25lIHJlcG9zaXRvcnkgdGhhdCBhIHNldCBvZiBjb21taXQgbWVzc2FnZXMgbmFtZXMsIGFuZCB3aGV0aGVyIGVhY2ggd2FzIG5hbWVkIHdpdGhcbiAqIGEgY2xvc2luZyBrZXl3b3JkLlxuICpcbiAqIFRocmVlIGZvcm1zIGNvdW50OiBhIGJhcmUgYCMxMmAsIGA8b3duZXI+LzxuYW1lPiMxMmAsIGFuZCB0aGUgcmVwb3NpdG9yeSdzIGBpc3N1ZXMvMTJgIG9yIGBwdWxsLzEyYCBVUkwuIEEgYmFyZVxuICogYCMxMmAgZ2x1ZWQgdG8gYSBwcmVjZWRpbmcgdG9rZW4gKGBvdGhlciMxMmAsIGBvdGhlci9yZXBvIzEyYCwgYCYjMTJgKSBkb2VzIG5vdC4gQSBtZW50aW9uIGlzIGNsb3Npbmcgd2hlblxuICogR2l0SHViJ3Mgb3duIGNsb3Npbmcga2V5d29yZCBwcmVjZWRlcyBpdCBkaXJlY3RseTogYGNsb3NlYCwgYGNsb3Nlc2AsIGBjbG9zZWRgLCBgZml4YCwgYGZpeGVzYCwgYGZpeGVkYCxcbiAqIGByZXNvbHZlYCwgYHJlc29sdmVzYCBvciBgcmVzb2x2ZWRgLCBpbiBhbnkgY2FzZSwgb3B0aW9uYWxseSBmb2xsb3dlZCBieSBhIGNvbG9uLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIEdldElzc3VlUmVmZXJlbmNlc1BhcmFtc30uXG4gKiBAcmV0dXJucyBUaGUgcmVmZXJlbmNlcywgc29ydGVkIGJ5IG51bWJlciwgb25lIHBlciBudW1iZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJc3N1ZVJlZmVyZW5jZXMocGFyYW1zOiBHZXRJc3N1ZVJlZmVyZW5jZXNQYXJhbXMpOiBJc3N1ZVJlZmVyZW5jZVtdIHtcbiAgY29uc3QgeyBjb21taXRNZXNzYWdlcywgcmVwb1NsdWcgfSA9IHBhcmFtcztcbiAgY29uc3QgZXNjYXBlZFNsdWcgPSBlc2NhcGVSZWdFeHAocmVwb1NsdWcpO1xuICBjb25zdCByZWdFeHAgPSBuZXcgUmVnRXhwKFxuICAgIFN0cmluZy5yYXdgKD88a2V5d29yZD5cXGIoPzpjbG9zZVtzZF0/fGZpeCg/OmVbc2RdKT98cmVzb2x2ZVtzZF0/KTo/XFxzKyk/KD86aHR0cHM/Oi8vZ2l0aHViXFwuY29tLyR7ZXNjYXBlZFNsdWd9Lyg/Omlzc3Vlc3xwdWxsKS8oPzx1cmxOdW1iZXI+XFxkKyl8KD88IVtcXHcuLV0pJHtlc2NhcGVkU2x1Z30jKD88c2x1Z051bWJlcj5cXGQrKVxcYnwoPzwhW1xcdy8mIy4tXSkjKD88YmFyZU51bWJlcj5cXGR7MSw2fSlcXGIpYCxcbiAgICAnZ2knXG4gICk7XG4gIGNvbnN0IGNsb3NpbmdGbGFnQnlOdW1iZXIgPSBuZXcgTWFwPG51bWJlciwgYm9vbGVhbj4oKTtcblxuICBmb3IgKGNvbnN0IGNvbW1pdE1lc3NhZ2Ugb2YgY29tbWl0TWVzc2FnZXMpIHtcbiAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIGNvbW1pdE1lc3NhZ2UubWF0Y2hBbGwocmVnRXhwKSkge1xuICAgICAgY29uc3QgbnVtYmVyID0gTnVtYmVyKFxuICAgICAgICBnZXRPcHRpb25hbE5hbWVkR3JvdXAobWF0Y2gsICd1cmxOdW1iZXInKSA/PyBnZXRPcHRpb25hbE5hbWVkR3JvdXAobWF0Y2gsICdzbHVnTnVtYmVyJykgPz8gZ2V0T3B0aW9uYWxOYW1lZEdyb3VwKG1hdGNoLCAnYmFyZU51bWJlcicpXG4gICAgICApO1xuICAgICAgY2xvc2luZ0ZsYWdCeU51bWJlci5zZXQobnVtYmVyLCAoY2xvc2luZ0ZsYWdCeU51bWJlci5nZXQobnVtYmVyKSA/PyBmYWxzZSkgfHwgZ2V0T3B0aW9uYWxOYW1lZEdyb3VwKG1hdGNoLCAna2V5d29yZCcpICE9PSBudWxsKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gWy4uLmNsb3NpbmdGbGFnQnlOdW1iZXJdXG4gICAgLnNvcnQoKFtudW1iZXIxXSwgW251bWJlcjJdKSA9PiBudW1iZXIxIC0gbnVtYmVyMilcbiAgICAubWFwKChbbnVtYmVyLCBpc0Nsb3NpbmddKSA9PiAoeyBpc0Nsb3NpbmcsIG51bWJlciB9KSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGhhc0NvbW1lbnRDb250YWluaW5nKHJlcG9TbHVnOiBzdHJpbmcsIGlzc3VlTnVtYmVyOiBudW1iZXIsIHRleHQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBib2RpZXMgPSBhd2FpdCBleGVjRnJvbVJvb3QoWydnaCcsICdhcGknLCAnLS1wYWdpbmF0ZScsIGByZXBvcy8ke3JlcG9TbHVnfS9pc3N1ZXMvJHtTdHJpbmcoaXNzdWVOdW1iZXIpfS9jb21tZW50c2AsICctLWpxJywgJy5bXS5ib2R5J10sIHtcbiAgICBpc1F1aWV0OiB0cnVlXG4gIH0pO1xuICByZXR1cm4gYm9kaWVzLmluY2x1ZGVzKHRleHQpO1xufVxuXG5mdW5jdGlvbiB0b1JlcG9TbHVnKHJlcG9Vcmw6IHN0cmluZyk6IG51bGwgfCBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IC9eaHR0cHM6XFwvXFwvZ2l0aHViXFwuY29tXFwvKD88c2x1Zz5bXi9dK1xcL1teL10rPylcXC8/JC8uZXhlYyhyZXBvVXJsKTtcbiAgcmV0dXJuIG1hdGNoPy5ncm91cHM/Llsnc2x1ZyddID8/IG51bGw7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBb0JBLG1CQUE4QjtBQUM5QixxQkFHTztBQUVQLGtCQUE2QjtBQWdFN0IsZUFBc0Isb0JBQW9CLFFBQXNEO0FBQzlGLFFBQU0sRUFBRSxXQUFXLElBQUk7QUFDdkIsUUFBTSxVQUFVLFVBQU0sMEJBQWEsbUNBQW1DLEVBQUUsU0FBUyxLQUFLLENBQUM7QUFDdkYsUUFBTSxXQUFXLFdBQVcsT0FBTztBQUNuQyxNQUFJLENBQUMsVUFBVTtBQUNiLFlBQVEsS0FBSyxxQ0FBcUMsT0FBTyxtQ0FBbUM7QUFDNUYsV0FBTyxDQUFDO0FBQUEsRUFDVjtBQUVBLFFBQU0sY0FBYyxVQUFNLDBCQUFhLENBQUMsT0FBTyxZQUFZLFVBQVUsY0FBYyxHQUFHLFVBQVUsR0FBRyxHQUFHO0FBQUEsSUFDcEcsU0FBUztBQUFBLElBQ1Qsc0JBQXNCO0FBQUEsRUFDeEIsQ0FBQztBQUNELFFBQU0sY0FBYyxjQUFjLEdBQUcsV0FBVyxLQUFLLFVBQVUsS0FBSztBQUNwRSxRQUFNLHVCQUF1QixVQUFNLDBCQUFhLENBQUMsT0FBTyxPQUFPLGFBQWEsZUFBZSxJQUFJLEdBQUcsRUFBRSxTQUFTLEtBQUssQ0FBQztBQUNuSCxRQUFNLGFBQWEsbUJBQW1CLEVBQUUsZ0JBQWdCLHFCQUFxQixNQUFNLElBQUksR0FBRyxTQUFTLENBQUM7QUFDcEcsUUFBTSxhQUFhLEdBQUcsT0FBTyxpQkFB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
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWxlYXNlZC1pc3N1ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENsb3NlcyB0aGUgR2l0SHViIGlzc3VlcyBhIHJlbGVhc2UgY2Fycmllcywgd2l0aCBhIGNvbW1lbnQgbGlua2luZyB0aGUgcmVsZWFzZS5cbiAqXG4gKiBBbiBpc3N1ZSB0aGF0IGEgY29tbWl0IGluIHRoZSByZWxlYXNlIG5hbWVzIHdpdGggYSBjbG9zaW5nIGtleXdvcmQgKGBmaXhlcyAjMTJgLCBgY2xvc2VzICMxMmAsIGByZXNvbHZlcyAjMTJgLFxuICogYW5kIHRoZWlyIG90aGVyIHRlbnNlcykgaXMgY2xvc2VkIGFzIGNvbXBsZXRlZCwgd2l0aCBgRml4ZWQgaW4gPHJlbGVhc2UgVVJMPmAgd2hlbiBpdCBjYXJyaWVzIGEgYGJ1Z2AgbGFiZWwgYW5kXG4gKiBgSW1wbGVtZW50ZWQgaW4gPHJlbGVhc2UgVVJMPmAgb3RoZXJ3aXNlLiBUaGUgVVJMIGlzIHRoZSBgcmVsZWFzZXMvdGFnLzx2ZXJzaW9uPmAgcGFnZSwgd2hpY2ggZXhpc3RzIGJ5IHRoZSB0aW1lXG4gKiB0aGlzIHJ1bnMuXG4gKlxuICogT25seSBhIGNsb3Npbmcga2V5d29yZCBjbG9zZXMgYW55dGhpbmcuIEEgYmFyZSBtZW50aW9uIChgcmUgIzEyYCwgYCgjMTIpYCwgdGhlIGlzc3VlIFVSTCkgaXMgb2Z0ZW4gb25lIHN0ZXAgb2ZcbiAqIHVuZmluaXNoZWQgd29yaywgYW5kIHRoaXMgbW9kdWxlIGNhbm5vdCBrbm93IHdoZXRoZXIgdGhlIHJlc3QgaGFzIGxhbmRlZCwgc28gc3VjaCBhbiBpc3N1ZSBpcyBsaXN0ZWQgYXMgbGVmdCBvcGVuXG4gKiBhbmQgbm90aGluZyBpcyBwb3N0ZWQgdG8gaXQuXG4gKlxuICogR2l0SHViIGl0c2VsZiBjbG9zZXMgYW4gaXNzdWUgbmFtZWQgd2l0aCBhIGNsb3Npbmcga2V5d29yZCBhcyBzb29uIGFzIHRoZSBjb21taXQgcmVhY2hlcyB0aGUgZGVmYXVsdCBicmFuY2gg4oCUXG4gKiBiZWZvcmUgdGhlIHJlbGVhc2UsIGFuZCB3aXRob3V0IHNheWluZyB3aGljaCByZWxlYXNlIGNhcnJpZXMgdGhlIGNoYW5nZS4gU28gYW4gaXNzdWUgdGhhdCBpcyBhbHJlYWR5IGNsb3NlZCBhc1xuICogY29tcGxldGVkIHN0aWxsIGdldHMgdGhlIHJlbGVhc2UgbGluaywgdW5sZXNzIG9uZSBvZiBpdHMgY29tbWVudHMgYWxyZWFkeSBjYXJyaWVzIHRoaXMgcmVsZWFzZSdzIFVSTCwgd2hpY2ggYWxzb1xuICogbWFrZXMgYSBzZWNvbmQgcnVuIHBvc3Qgbm90aGluZy5cbiAqL1xuXG5pbXBvcnQgeyBlcnJvclRvU3RyaW5nIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Vycm9yJztcbmltcG9ydCB7XG4gIGVzY2FwZVJlZ0V4cCxcbiAgZ2V0T3B0aW9uYWxOYW1lZEdyb3VwXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcblxuaW1wb3J0IHsgZXhlY0Zyb21Sb290IH0gZnJvbSAnLi9yb290LnRzJztcblxuLyoqXG4gKiBQYXJhbXMgZm9yIHtAbGluayBjbG9zZVJlbGVhc2VkSXNzdWVzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbG9zZVJlbGVhc2VkSXNzdWVzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIGp1c3QgcmVsZWFzZWQuIEl0cyB0YWcgbXVzdCBleGlzdCBsb2NhbGx5IGFuZCBpdHMgR2l0SHViIHJlbGVhc2UgbXVzdCBiZSBwdWJsaXNoZWQuXG4gICAqL1xuICByZWFkb25seSBuZXdWZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1zIGZvciB7QGxpbmsgZ2V0SXNzdWVSZWZlcmVuY2VzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRJc3N1ZVJlZmVyZW5jZXNQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGNvbW1pdCBtZXNzYWdlcyB0byByZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWl0TWVzc2FnZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgYDxvd25lcj4vPG5hbWU+YCBvZiB0aGUgcmVwb3NpdG9yeSB3aG9zZSBpc3N1ZXMgY291bnQuIEEgcmVmZXJlbmNlIGludG8gYW55IG90aGVyIHJlcG9zaXRvcnkgaXMgaWdub3JlZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9TbHVnOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQW4gaXNzdWUgbnVtYmVyIG5hbWVkIGJ5IHRoZSBjb21taXQgbWVzc2FnZXMgb2YgYSByZWxlYXNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElzc3VlUmVmZXJlbmNlIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgYXQgbGVhc3Qgb25lIG1lbnRpb24gdXNlZCBhIGNsb3Npbmcga2V5d29yZC5cbiAgICovXG4gIHJlYWRvbmx5IGlzQ2xvc2luZzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGlzc3VlIG9yIHB1bGwgcmVxdWVzdCBudW1iZXIuXG4gICAqL1xuICByZWFkb25seSBudW1iZXI6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIEdpdEh1Yklzc3VlIHtcbiAgcmVhZG9ubHkgbGFiZWxzOiByZWFkb25seSBHaXRIdWJMYWJlbFtdO1xuICByZWFkb25seSBwdWxsX3JlcXVlc3Q/OiB1bmtub3duO1xuICByZWFkb25seSBzdGF0ZTogc3RyaW5nO1xuICByZWFkb25seSBzdGF0ZV9yZWFzb24/OiBudWxsIHwgc3RyaW5nO1xuICByZWFkb25seSB0aXRsZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgR2l0SHViTGFiZWwge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2xvc2VzIHRoZSBpc3N1ZXMgdGhlIHJlbGVhc2Ugb2Yge0BsaW5rIENsb3NlUmVsZWFzZWRJc3N1ZXNQYXJhbXMubmV3VmVyc2lvbn0gY2FycmllcywgYXMgZGVzY3JpYmVkIGluIHRoZSBmaWxlXG4gKiBvdmVydmlldy5cbiAqXG4gKiBBIGZhaWx1cmUgdG8gcmVhZCBvciB1cGRhdGUgb25lIGlzc3VlIGlzIHJlcG9ydGVkIGFuZCB0aGUgcmVzdCBhcmUgc3RpbGwgcHJvY2Vzc2VkLCBiZWNhdXNlIHRoZSByZWxlYXNlIGlzXG4gKiBhbHJlYWR5IHB1Ymxpc2hlZCBieSB0aGUgdGltZSB0aGlzIHJ1bnMgYW5kIG5vdGhpbmcgYWJvdXQgaXQgY2FuIGJlIHVuZG9uZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBDbG9zZVJlbGVhc2VkSXNzdWVzUGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIG51bWJlcnMgb2YgdGhlIGlzc3VlcyB0aGF0IGNvdWxkIG5vdCBiZSBwcm9jZXNzZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjbG9zZVJlbGVhc2VkSXNzdWVzKHBhcmFtczogQ2xvc2VSZWxlYXNlZElzc3Vlc1BhcmFtcyk6IFByb21pc2U8bnVtYmVyW10+IHtcbiAgY29uc3QgeyBuZXdWZXJzaW9uIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHJlcG9VcmwgPSBhd2FpdCBleGVjRnJvbVJvb3QoJ2doIHJlcG8gdmlldyAtLWpzb24gdXJsIC1xIC51cmwnLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIGNvbnN0IHJlcG9TbHVnID0gdG9SZXBvU2x1ZyhyZXBvVXJsKTtcbiAgaWYgKCFyZXBvU2x1Zykge1xuICAgIGNvbnNvbGUud2FybihgTm90IGNsb3NpbmcgdGhlIHJlbGVhc2VkIGlzc3VlczogJyR7cmVwb1VybH0nIGlzIG5vdCBhIEdpdEh1YiByZXBvc2l0b3J5IFVSTC5gKTtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBwcmV2aW91c1RhZyA9IGF3YWl0IGV4ZWNGcm9tUm9vdChbJ2dpdCcsICdkZXNjcmliZScsICctLXRhZ3MnLCAnLS1hYmJyZXY9MCcsIGAke25ld1ZlcnNpb259XmBdLCB7XG4gICAgaXNRdWlldDogdHJ1ZSxcbiAgICBzaG91bGRJZ25vcmVFeGl0Q29kZTogdHJ1ZVxuICB9KTtcbiAgY29uc3QgY29tbWl0UmFuZ2UgPSBwcmV2aW91c1RhZyA/IGAke3ByZXZpb3VzVGFnfS4uJHtuZXdWZXJzaW9ufWAgOiBuZXdWZXJzaW9uO1xuICBjb25zdCBjb21taXRNZXNzYWdlc1N0cmluZyA9IGF3YWl0IGV4ZWNGcm9tUm9vdChbJ2dpdCcsICdsb2cnLCBjb21taXRSYW5nZSwgJy0tZm9ybWF0PSVCJywgJy16J10sIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgY29uc3QgcmVmZXJlbmNlcyA9IGdldElzc3VlUmVmZXJlbmNlcyh7IGNvbW1pdE1lc3NhZ2VzOiBjb21taXRNZXNzYWdlc1N0cmluZy5zcGxpdCgnXFwwJyksIHJlcG9TbHVnIH0pO1xuICBjb25zdCByZWxlYXNlVXJsID0gYCR7cmVwb1VybH0vcmVsZWFzZXMvdGFnLyR7bmV3VmVyc2lvbn1gO1xuICBjb25zdCBmYWlsZWROdW1iZXJzOiBudW1iZXJbXSA9IFtdO1xuICBjb25zdCBsZWZ0T3BlbkxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaXNzdWUgPSBKU09OLnBhcnNlKGF3YWl0IGV4ZWNGcm9tUm9vdChbJ2doJywgJ2FwaScsIGByZXBvcy8ke3JlcG9TbHVnfS9pc3N1ZXMvJHtTdHJpbmcocmVmZXJlbmNlLm51bWJlcil9YF0sIHsgaXNRdWlldDogdHJ1ZSB9KSkgYXMgR2l0SHViSXNzdWU7XG4gICAgICBpZiAoaXNzdWUucHVsbF9yZXF1ZXN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbW1lbnQgPSBgJHtpc3N1ZS5sYWJlbHMuc29tZSgobGFiZWwpID0+IC9idWcvaS50ZXN0KGxhYmVsLm5hbWUpKSA/ICdGaXhlZCBpbicgOiAnSW1wbGVtZW50ZWQgaW4nfSAke3JlbGVhc2VVcmx9YDtcbiAgICAgIGNvbnN0IGlzT3BlbiA9IGlzc3VlLnN0YXRlID09PSAnb3Blbic7XG5cbiAgICAgIGlmICghcmVmZXJlbmNlLmlzQ2xvc2luZykge1xuICAgICAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAgICAgbGVmdE9wZW5MaW5lcy5wdXNoKGAgICMke1N0cmluZyhyZWZlcmVuY2UubnVtYmVyKX0gJHtpc3N1ZS50aXRsZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzT3Blbikge1xuICAgICAgICBhd2FpdCBleGVjRnJvbVJvb3QoWydnaCcsICdpc3N1ZScsICdjbG9zZScsIFN0cmluZyhyZWZlcmVuY2UubnVtYmVyKSwgJy1SJywgcmVwb1NsdWcsICctLXJlYXNvbicsICdjb21wbGV0ZWQnLCAnLS1jb21tZW50JywgY29tbWVudF0sIHtcbiAgICAgICAgICBpc1F1aWV0OiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zb2xlLndhcm4oYENsb3NlZCAjJHtTdHJpbmcocmVmZXJlbmNlLm51bWJlcil9ICR7aXNzdWUudGl0bGV9OiAke2NvbW1lbnR9YCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNzdWUuc3RhdGVfcmVhc29uICE9PSAnY29tcGxldGVkJyB8fCBhd2FpdCBoYXNDb21tZW50Q29udGFpbmluZyhyZXBvU2x1ZywgcmVmZXJlbmNlLm51bWJlciwgcmVsZWFzZVVybCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ2doJywgJ2lzc3VlJywgJ2NvbW1lbnQnLCBTdHJpbmcocmVmZXJlbmNlLm51bWJlciksICctUicsIHJlcG9TbHVnLCAnLS1ib2R5JywgY29tbWVudF0sIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgICAgIGNvbnNvbGUud2FybihgQ29tbWVudGVkIG9uIHRoZSBhbHJlYWR5IGNsb3NlZCAjJHtTdHJpbmcocmVmZXJlbmNlLm51bWJlcil9ICR7aXNzdWUudGl0bGV9OiAke2NvbW1lbnR9YCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGZhaWxlZE51bWJlcnMucHVzaChyZWZlcmVuY2UubnVtYmVyKTtcbiAgICAgIGNvbnNvbGUud2FybihgQ291bGQgbm90IHByb2Nlc3MgaXNzdWUgIyR7U3RyaW5nKHJlZmVyZW5jZS5udW1iZXIpfSBvZiAke3JlcG9TbHVnfTogJHtlcnJvclRvU3RyaW5nKGVycm9yKX1gKTtcbiAgICB9XG4gIH1cblxuICBpZiAobGVmdE9wZW5MaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgYExlZnQgb3BlbjogdGhlIHJlbGVhc2UgbmFtZXMgdGhlc2UgaXNzdWVzIHdpdGhvdXQgYSBjbG9zaW5nIGtleXdvcmQsIHNvIHdoZXRoZXIgdGhleSBhcmUgZmluaXNoZWQgaXMgbm90IGtub3duIGhlcmU6XFxuJHtsZWZ0T3BlbkxpbmVzLmpvaW4oJ1xcbicpfWBcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGZhaWxlZE51bWJlcnM7XG59XG5cbi8qKlxuICogQ29sbGVjdHMgdGhlIGlzc3VlIG51bWJlcnMgb2Ygb25lIHJlcG9zaXRvcnkgdGhhdCBhIHNldCBvZiBjb21taXQgbWVzc2FnZXMgbmFtZXMsIGFuZCB3aGV0aGVyIGVhY2ggd2FzIG5hbWVkIHdpdGhcbiAqIGEgY2xvc2luZyBrZXl3b3JkLlxuICpcbiAqIFRocmVlIGZvcm1zIGNvdW50OiBhIGJhcmUgYCMxMmAsIGA8b3duZXI+LzxuYW1lPiMxMmAsIGFuZCB0aGUgcmVwb3NpdG9yeSdzIGBpc3N1ZXMvMTJgIG9yIGBwdWxsLzEyYCBVUkwuIEEgYmFyZVxuICogYCMxMmAgZ2x1ZWQgdG8gYSBwcmVjZWRpbmcgdG9rZW4gKGBvdGhlciMxMmAsIGBvdGhlci9yZXBvIzEyYCwgYCYjMTJgKSBkb2VzIG5vdC4gQSBtZW50aW9uIGlzIGNsb3Npbmcgd2hlblxuICogR2l0SHViJ3Mgb3duIGNsb3Npbmcga2V5d29yZCBwcmVjZWRlcyBpdCBkaXJlY3RseTogYGNsb3NlYCwgYGNsb3Nlc2AsIGBjbG9zZWRgLCBgZml4YCwgYGZpeGVzYCwgYGZpeGVkYCxcbiAqIGByZXNvbHZlYCwgYHJlc29sdmVzYCBvciBgcmVzb2x2ZWRgLCBpbiBhbnkgY2FzZSwgb3B0aW9uYWxseSBmb2xsb3dlZCBieSBhIGNvbG9uLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIEdldElzc3VlUmVmZXJlbmNlc1BhcmFtc30uXG4gKiBAcmV0dXJucyBUaGUgcmVmZXJlbmNlcywgc29ydGVkIGJ5IG51bWJlciwgb25lIHBlciBudW1iZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJc3N1ZVJlZmVyZW5jZXMocGFyYW1zOiBHZXRJc3N1ZVJlZmVyZW5jZXNQYXJhbXMpOiBJc3N1ZVJlZmVyZW5jZVtdIHtcbiAgY29uc3QgeyBjb21taXRNZXNzYWdlcywgcmVwb1NsdWcgfSA9IHBhcmFtcztcbiAgY29uc3QgZXNjYXBlZFNsdWcgPSBlc2NhcGVSZWdFeHAocmVwb1NsdWcpO1xuICBjb25zdCByZWdFeHAgPSBuZXcgUmVnRXhwKFxuICAgIFN0cmluZy5yYXdgKD88a2V5d29yZD5cXGIoPzpjbG9zZVtzZF0/fGZpeCg/OmVbc2RdKT98cmVzb2x2ZVtzZF0/KTo/XFxzKyk/KD86aHR0cHM/Oi8vZ2l0aHViXFwuY29tLyR7ZXNjYXBlZFNsdWd9Lyg/Omlzc3Vlc3xwdWxsKS8oPzx1cmxOdW1iZXI+XFxkKyl8KD88IVtcXHcuLV0pJHtlc2NhcGVkU2x1Z30jKD88c2x1Z051bWJlcj5cXGQrKVxcYnwoPzwhW1xcdy8mIy4tXSkjKD88YmFyZU51bWJlcj5cXGR7MSw2fSlcXGIpYCxcbiAgICAnZ2knXG4gICk7XG4gIGNvbnN0IGNsb3NpbmdGbGFnQnlOdW1iZXIgPSBuZXcgTWFwPG51bWJlciwgYm9vbGVhbj4oKTtcblxuICBmb3IgKGNvbnN0IGNvbW1pdE1lc3NhZ2Ugb2YgY29tbWl0TWVzc2FnZXMpIHtcbiAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIGNvbW1pdE1lc3NhZ2UubWF0Y2hBbGwocmVnRXhwKSkge1xuICAgICAgY29uc3QgJG51bWJlciA9IE51bWJlcihcbiAgICAgICAgZ2V0T3B0aW9uYWxOYW1lZEdyb3VwKG1hdGNoLCAndXJsTnVtYmVyJykgPz8gZ2V0T3B0aW9uYWxOYW1lZEdyb3VwKG1hdGNoLCAnc2x1Z051bWJlcicpID8/IGdldE9wdGlvbmFsTmFtZWRHcm91cChtYXRjaCwgJ2JhcmVOdW1iZXInKVxuICAgICAgKTtcbiAgICAgIGNsb3NpbmdGbGFnQnlOdW1iZXIuc2V0KCRudW1iZXIsIChjbG9zaW5nRmxhZ0J5TnVtYmVyLmdldCgkbnVtYmVyKSA/PyBmYWxzZSkgfHwgZ2V0T3B0aW9uYWxOYW1lZEdyb3VwKG1hdGNoLCAna2V5d29yZCcpICE9PSBudWxsKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gWy4uLmNsb3NpbmdGbGFnQnlOdW1iZXJdXG4gICAgLnNvcnQoKFtudW1iZXIxXSwgW251bWJlcjJdKSA9PiBudW1iZXIxIC0gbnVtYmVyMilcbiAgICAubWFwKChbJG51bWJlciwgaXNDbG9zaW5nXSkgPT4gKHsgaXNDbG9zaW5nLCBudW1iZXI6ICRudW1iZXIgfSkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYXNDb21tZW50Q29udGFpbmluZyhyZXBvU2x1Zzogc3RyaW5nLCBpc3N1ZU51bWJlcjogbnVtYmVyLCB0ZXh0OiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgYm9kaWVzID0gYXdhaXQgZXhlY0Zyb21Sb290KFsnZ2gnLCAnYXBpJywgJy0tcGFnaW5hdGUnLCBgcmVwb3MvJHtyZXBvU2x1Z30vaXNzdWVzLyR7U3RyaW5nKGlzc3VlTnVtYmVyKX0vY29tbWVudHNgLCAnLS1qcScsICcuW10uYm9keSddLCB7XG4gICAgaXNRdWlldDogdHJ1ZVxuICB9KTtcbiAgcmV0dXJuIGJvZGllcy5pbmNsdWRlcyh0ZXh0KTtcbn1cblxuZnVuY3Rpb24gdG9SZXBvU2x1ZyhyZXBvVXJsOiBzdHJpbmcpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgbWF0Y2ggPSAvXmh0dHBzOlxcL1xcL2dpdGh1YlxcLmNvbVxcLyg/PHNsdWc+W14vXStcXC9bXi9dKz8pXFwvPyQvLmV4ZWMocmVwb1VybCk7XG4gIHJldHVybiBtYXRjaD8uZ3JvdXBzPy5bJ3NsdWcnXSA/PyBudWxsO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW9CQSxtQkFBOEI7QUFDOUIscUJBR087QUFFUCxrQkFBNkI7QUFnRTdCLGVBQXNCLG9CQUFvQixRQUFzRDtBQUM5RixRQUFNLEVBQUUsV0FBVyxJQUFJO0FBQ3ZCLFFBQU0sVUFBVSxVQUFNLDBCQUFhLG1DQUFtQyxFQUFFLFNBQVMsS0FBSyxDQUFDO0FBQ3ZGLFFBQU0sV0FBVyxXQUFXLE9BQU87QUFDbkMsTUFBSSxDQUFDLFVBQVU7QUFDYixZQUFRLEtBQUsscUNBQXFDLE9BQU8sbUNBQW1DO0FBQzVGLFdBQU8sQ0FBQztBQUFBLEVBQ1Y7QUFFQSxRQUFNLGNBQWMsVUFBTSwwQkFBYSxDQUFDLE9BQU8sWUFBWSxVQUFVLGNBQWMsR0FBRyxVQUFVLEdBQUcsR0FBRztBQUFBLElBQ3BHLFNBQVM7QUFBQSxJQUNULHNCQUFzQjtBQUFBLEVBQ3hCLENBQUM7QUFDRCxRQUFNLGNBQWMsY0FBYyxHQUFHLFdBQVcsS0FBSyxVQUFVLEtBQUs7QUFDcEUsUUFBTSx1QkFBdUIsVUFBTSwwQkFBYSxDQUFDLE9BQU8sT0FBTyxhQUFhLGVBQWUsSUFBSSxHQUFHLEVBQUUsU0FBUyxLQUFLLENBQUM7QUFDbkgsUUFBTSxhQUFhLG1CQUFtQixFQUFFLGdCQUFnQixxQkFBcUIsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDO0FBQ3BHLFFBQU0sYUFBYSxH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
|
|
@@ -80,4 +80,4 @@ async function testWatch(options = {}) {
|
|
|
80
80
|
testCoverage,
|
|
81
81
|
testWatch
|
|
82
82
|
});
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVubmVycy9hdXRvLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUnVucyB0aGUgdGVzdHMgd2l0aCB3aGljaGV2ZXIgcnVubmVyIHRoZSBwcm9qZWN0IGNvbmZpZ3VyZXM6IHZpdGVzdCBvciBqZXN0LlxuICovXG5cbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcblxuaW1wb3J0IHsgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUgfSBmcm9tICcuLi9yb290LnRzJztcbmltcG9ydCB7XG4gIGhhc0plc3RDb25maWcsXG4gIHRlc3QgYXMgamVzdFRlc3QsXG4gIHRlc3RDb3ZlcmFnZSBhcyBqZXN0VGVzdENvdmVyYWdlLFxuICB0ZXN0V2F0Y2ggYXMgamVzdFRlc3RXYXRjaFxufSBmcm9tICcuL2plc3QudHMnO1xuaW1wb3J0IHtcbiAgdGVzdCBhcyB2aXRlc3RUZXN0LFxuICB0ZXN0Q292ZXJhZ2UgYXMgdml0ZXN0VGVzdENvdmVyYWdlLFxuICB0ZXN0V2F0Y2ggYXMgdml0ZXN0VGVzdFdhdGNoXG59IGZyb20gJy4vdml0ZXN0LnRzJztcblxuLyoqXG4gKiBBIHRlc3QgcnVubmVyIHRoZSB0b29sa2l0IHJ1bnMuXG4gKi9cbmV4cG9ydCB0eXBlIFRlc3RSdW5uZXIgPSAnamVzdCcgfCAndml0ZXN0JztcblxuLyoqXG4gKiBFdmVyeSBmaWxlIHZpdGVzdCByZWFkcyBpdHMgY29uZmlndXJhdGlvbiBmcm9tLlxuICpcbiAqIGB2aXRlLmNvbmZpZy4qYCBpcyBkZWxpYmVyYXRlbHkgbm90IGFtb25nIHRoZW06IGEgcHJvamVjdCB0aGF0IGJ1bmRsZXMgd2l0aCB2aXRlIGFuZCB0ZXN0cyB3aXRoIGplc3QgaGFzIG9uZS5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnL31cbiAqL1xuZXhwb3J0IGNvbnN0IFZJVEVTVF9DT05GSUdfRklMRV9OQU1FUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbXG4gICd2aXRlc3QuY29uZmlnLmNqcycsXG4gICd2aXRlc3QuY29uZmlnLmN0cycsXG4gICd2aXRlc3QuY29uZmlnLmpzJyxcbiAgJ3ZpdGVzdC5jb25maWcubWpzJyxcbiAgJ3ZpdGVzdC5jb25maWcubXRzJyxcbiAgJ3ZpdGVzdC5jb25maWcudHMnXG5dO1xuXG5pbnRlcmZhY2UgUnVubmVyRnVuY3Rpb25zIHtcbiAgcmVhZG9ubHkgdGVzdDogKG9wdGlvbnM6IFRlc3RPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuICByZWFkb25seSB0ZXN0Q292ZXJhZ2U6IChvcHRpb25zOiBUZXN0Q292ZXJhZ2VPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuICByZWFkb25seSB0ZXN0V2F0Y2g6IChvcHRpb25zOiBUZXN0V2F0Y2hPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVubmVycy9hdXRvLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUnVucyB0aGUgdGVzdHMgd2l0aCB3aGljaGV2ZXIgcnVubmVyIHRoZSBwcm9qZWN0IGNvbmZpZ3VyZXM6IHZpdGVzdCBvciBqZXN0LlxuICovXG5cbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcblxuaW1wb3J0IHsgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUgfSBmcm9tICcuLi9yb290LnRzJztcbmltcG9ydCB7XG4gIGhhc0plc3RDb25maWcsXG4gIHRlc3QgYXMgamVzdFRlc3QsXG4gIHRlc3RDb3ZlcmFnZSBhcyBqZXN0VGVzdENvdmVyYWdlLFxuICB0ZXN0V2F0Y2ggYXMgamVzdFRlc3RXYXRjaFxufSBmcm9tICcuL2plc3QudHMnO1xuaW1wb3J0IHtcbiAgdGVzdCBhcyB2aXRlc3RUZXN0LFxuICB0ZXN0Q292ZXJhZ2UgYXMgdml0ZXN0VGVzdENvdmVyYWdlLFxuICB0ZXN0V2F0Y2ggYXMgdml0ZXN0VGVzdFdhdGNoXG59IGZyb20gJy4vdml0ZXN0LnRzJztcblxuLyoqXG4gKiBBIHRlc3QgcnVubmVyIHRoZSB0b29sa2l0IHJ1bnMuXG4gKi9cbmV4cG9ydCB0eXBlIFRlc3RSdW5uZXIgPSAnamVzdCcgfCAndml0ZXN0JztcblxuLyoqXG4gKiBFdmVyeSBmaWxlIHZpdGVzdCByZWFkcyBpdHMgY29uZmlndXJhdGlvbiBmcm9tLlxuICpcbiAqIGB2aXRlLmNvbmZpZy4qYCBpcyBkZWxpYmVyYXRlbHkgbm90IGFtb25nIHRoZW06IGEgcHJvamVjdCB0aGF0IGJ1bmRsZXMgd2l0aCB2aXRlIGFuZCB0ZXN0cyB3aXRoIGplc3QgaGFzIG9uZS5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnL31cbiAqL1xuZXhwb3J0IGNvbnN0IFZJVEVTVF9DT05GSUdfRklMRV9OQU1FUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbXG4gICd2aXRlc3QuY29uZmlnLmNqcycsXG4gICd2aXRlc3QuY29uZmlnLmN0cycsXG4gICd2aXRlc3QuY29uZmlnLmpzJyxcbiAgJ3ZpdGVzdC5jb25maWcubWpzJyxcbiAgJ3ZpdGVzdC5jb25maWcubXRzJyxcbiAgJ3ZpdGVzdC5jb25maWcudHMnXG5dO1xuXG5pbnRlcmZhY2UgUnVubmVyRnVuY3Rpb25zIHtcbiAgcmVhZG9ubHkgdGVzdDogKG9wdGlvbnM6IFRlc3RPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuICByZWFkb25seSB0ZXN0Q292ZXJhZ2U6IChvcHRpb25zOiBUZXN0Q292ZXJhZ2VPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuICByZWFkb25seSB0ZXN0V2F0Y2g6IChvcHRpb25zOiBUZXN0V2F0Y2hPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5jb25zdCBSVU5ORVJTOiBSZWFkb25seTxSZWNvcmQ8VGVzdFJ1bm5lciwgUnVubmVyRnVuY3Rpb25zPj4gPSB7XG4gIGplc3Q6IHtcbiAgICB0ZXN0OiBqZXN0VGVzdCxcbiAgICB0ZXN0Q292ZXJhZ2U6IGplc3RUZXN0Q292ZXJhZ2UsXG4gICAgdGVzdFdhdGNoOiBqZXN0VGVzdFdhdGNoXG4gIH0sXG4gIHZpdGVzdDoge1xuICAgIHRlc3Q6IHZpdGVzdFRlc3QsXG4gICAgdGVzdENvdmVyYWdlOiB2aXRlc3RUZXN0Q292ZXJhZ2UsXG4gICAgdGVzdFdhdGNoOiB2aXRlc3RUZXN0V2F0Y2hcbiAgfVxufTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBydW5uaW5nIHRlc3RzIHdpdGggY292ZXJhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdENvdmVyYWdlT3B0aW9ucyBleHRlbmRzIFRlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIE1pbmltdW0gY292ZXJhZ2UgcGVyY2VudGFnZSByZXF1aXJlZCwgZm9yIGxpbmVzLCBmdW5jdGlvbnMsIGJyYW5jaGVzIGFuZCBzdGF0ZW1lbnRzIGFsaWtlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgMGBcbiAgICovXG4gIHJlYWRvbmx5IG1pbkNvdmVyYWdlSW5QZXJjZW50cz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBydW5uaW5nIHRlc3RzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIEZ1cnRoZXIgQ0xJIGFyZ3VtZW50cyBmb3IgdGhlIHJ1bm5lciwgYXBwZW5kZWQgYWZ0ZXIgdGhlIHdyYXBwZXIncyBvd246IGZpbGUgZmlsdGVycywgYC10YCwgYC0tbWF4V29ya2Vyc2AuIEFuXG4gICAqIGFyZ3VtZW50IG5hbWluZyBhbiBvcHRpb24gdGhlIHdyYXBwZXIgc2V0cyBpdHNlbGYgKHByb2plY3RzLCBjb3ZlcmFnZSwgd2F0Y2ggbW9kZSkgdGhyb3dzLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbEFyZ3VtZW50cz86IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGplc3QgcnVucyB0aGUgc3VpdGUgYXMgRVMgbW9kdWxlcy4gVml0ZXN0IGlnbm9yZXMgaXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYCB3aGVuIGBwYWNrYWdlLmpzb25gIGRlY2xhcmVzIGBcInR5cGVcIjogXCJtb2R1bGVcImBcbiAgICovXG4gIHJlYWRvbmx5IGVzbT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9qZWN0cyB0byBydW4uIFZpdGVzdCBhbHNvIHJ1bnMgZWFjaCBvbmUncyBgbmFtZToqYCBzdWItcHJvamVjdHM7IGplc3QgbWF0Y2hlcyBhIGBkaXNwbGF5TmFtZWAgZXhhY3RseS5cbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3RzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBydW5uZXIgdG8gdXNlLiBPbWl0dGVkLCB7QGxpbmsgZGV0ZWN0VGVzdFJ1bm5lcn0gY2hvb3NlcyBpdC5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bm5lcj86IFRlc3RSdW5uZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcnVubmluZyB0ZXN0cyBpbiB3YXRjaCBtb2RlLlxuICovXG5leHBvcnQgdHlwZSBUZXN0V2F0Y2hPcHRpb25zID0gVGVzdE9wdGlvbnM7XG5cbi8qKlxuICogQ2hvb3NlcyB0aGUgdGVzdCBydW5uZXIgZnJvbSB0aGUgY29uZmlndXJhdGlvbiBmaWxlcyBhdCB0aGUgcHJvamVjdCByb290LlxuICpcbiAqIFRoZSBvcmRlciBpcyBhIHZpdGVzdCBjb25maWd1cmF0aW9uLCB0aGVuIGEgamVzdCBvbmUgKGEgZmlsZSwgb3IgYSBgamVzdGAga2V5IGluIGBwYWNrYWdlLmpzb25gKS4gQSBwcm9qZWN0IHdpdGhcbiAqIG5laXRoZXIgZ2V0cyB2aXRlc3QsIHRoZSBydW5uZXIgZXZlcnkgcGFja2FnZSBvbiB0aGlzIHRvb2xjaGFpbiB1c2VkIGJlZm9yZSBqZXN0IHdhcyBzdXBwb3J0ZWQuXG4gKlxuICogQHJldHVybnMgVGhlIHJ1bm5lciB0byB1c2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZXRlY3RUZXN0UnVubmVyKCk6IFByb21pc2U8VGVzdFJ1bm5lcj4ge1xuICBpZiAoVklURVNUX0NPTkZJR19GSUxFX05BTUVTLnNvbWUoKGZpbGVOYW1lKSA9PiBleGlzdHNTeW5jKHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogZmlsZU5hbWUgfSkpKSkge1xuICAgIHJldHVybiAndml0ZXN0JztcbiAgfVxuXG4gIHJldHVybiBhd2FpdCBoYXNKZXN0Q29uZmlnKCkgPyAnamVzdCcgOiAndml0ZXN0Jztcbn1cblxuLyoqXG4gKiBSdW5zIHRoZSB0ZXN0IHN1aXRlIHdpdGggdGhlIHByb2plY3QncyBydW5uZXIuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIFRlc3RPcHRpb25zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdGVzdHMgaGF2ZSBjb21wbGV0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0KG9wdGlvbnM6IFRlc3RPcHRpb25zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBydW5uZXIgPSBhd2FpdCBkZXRlY3RUZXN0UnVubmVyKCksIC4uLnJ1bm5lck9wdGlvbnMgfSA9IG9wdGlvbnM7XG4gIGF3YWl0IFJVTk5FUlNbcnVubmVyXS50ZXN0KHJ1bm5lck9wdGlvbnMpO1xufVxuXG4vKipcbiAqIFJ1bnMgdGhlIHRlc3Qgc3VpdGUgd2l0aCBjb3ZlcmFnZSwgd2l0aCB0aGUgcHJvamVjdCdzIHJ1bm5lci5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB7QGxpbmsgVGVzdENvdmVyYWdlT3B0aW9uc30uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRlc3RzIGhhdmUgY29tcGxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdENvdmVyYWdlKG9wdGlvbnM6IFRlc3RDb3ZlcmFnZU9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHJ1bm5lciA9IGF3YWl0IGRldGVjdFRlc3RSdW5uZXIoKSwgLi4ucnVubmVyT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgYXdhaXQgUlVOTkVSU1tydW5uZXJdLnRlc3RDb3ZlcmFnZShydW5uZXJPcHRpb25zKTtcbn1cblxuLyoqXG4gKiBSdW5zIHRoZSB0ZXN0IHN1aXRlIGluIHdhdGNoIG1vZGUsIHdpdGggdGhlIHByb2plY3QncyBydW5uZXIuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIFRlc3RXYXRjaE9wdGlvbnN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB3YXRjaGVyIGV4aXRzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdFdhdGNoKG9wdGlvbnM6IFRlc3RXYXRjaE9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHJ1bm5lciA9IGF3YWl0IGRldGVjdFRlc3RSdW5uZXIoKSwgLi4ucnVubmVyT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgYXdhaXQgUlVOTkVSU1tydW5uZXJdLnRlc3RXYXRjaChydW5uZXJPcHRpb25zKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEscUJBQTJCO0FBRTNCLGtCQUF3QztBQUN4QyxrQkFLTztBQUNQLG9CQUlPO0FBY0EsTUFBTSwyQkFBOEM7QUFBQSxFQUN6RDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7QUFRQSxNQUFNLFVBQXlEO0FBQUEsRUFDN0QsTUFBTTtBQUFBLElBQ0osTUFBTSxZQUFBQTtBQUFBLElBQ04sY0FBYyxZQUFBQztBQUFBLElBQ2QsV0FBVyxZQUFBQztBQUFBLEVBQ2I7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNOLE1BQU0sY0FBQUM7QUFBQSxJQUNOLGNBQWMsY0FBQUM7QUFBQSxJQUNkLFdBQVcsY0FBQUM7QUFBQSxFQUNiO0FBQ0Y7QUF1REEsZUFBc0IsbUJBQXdDO0FBQzVELE1BQUkseUJBQXlCLEtBQUssQ0FBQyxpQkFBYSwrQkFBVyxxQ0FBd0IsRUFBRSxNQUFNLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRztBQUN4RyxXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8sVUFBTSwyQkFBYyxJQUFJLFNBQVM7QUFDMUM7QUFRQSxlQUFzQixLQUFLLFVBQXVCLENBQUMsR0FBa0I7QUFDbkUsUUFBTSxFQUFFLFNBQVMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLGNBQWMsSUFBSTtBQUNoRSxRQUFNLFFBQVEsTUFBTSxFQUFFLEtBQUssYUFBYTtBQUMxQztBQVFBLGVBQXNCLGFBQWEsVUFBK0IsQ0FBQyxHQUFrQjtBQUNuRixRQUFNLEVBQUUsU0FBUyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsY0FBYyxJQUFJO0FBQ2hFLFFBQU0sUUFBUSxNQUFNLEVBQUUsYUFBYSxhQUFhO0FBQ2xEO0FBUUEsZUFBc0IsVUFBVSxVQUE0QixDQUFDLEdBQWtCO0FBQzdFLFFBQU0sRUFBRSxTQUFTLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxjQUFjLElBQUk7QUFDaEUsUUFBTSxRQUFRLE1BQU0sRUFBRSxVQUFVLGFBQWE7QUFDL0M7IiwKICAibmFtZXMiOiBbImplc3RUZXN0IiwgImplc3RUZXN0Q292ZXJhZ2UiLCAiamVzdFRlc3RXYXRjaCIsICJ2aXRlc3RUZXN0IiwgInZpdGVzdFRlc3RDb3ZlcmFnZSIsICJ2aXRlc3RUZXN0V2F0Y2giXQp9Cg==
|
|
@@ -31,6 +31,11 @@ export interface TestCoverageOptions extends TestOptions {
|
|
|
31
31
|
* Options for running tests.
|
|
32
32
|
*/
|
|
33
33
|
export interface TestOptions {
|
|
34
|
+
/**
|
|
35
|
+
* Further CLI arguments for the runner, appended after the wrapper's own: file filters, `-t`, `--maxWorkers`. An
|
|
36
|
+
* argument naming an option the wrapper sets itself (projects, coverage, watch mode) throws.
|
|
37
|
+
*/
|
|
38
|
+
readonly additionalArguments?: readonly string[];
|
|
34
39
|
/**
|
|
35
40
|
* Whether jest runs the suite as ES modules. Vitest ignores it.
|
|
36
41
|
*
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
9
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __export = (target, all) => {
|
|
12
|
+
for (var name in all)
|
|
13
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from))
|
|
18
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
19
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
20
|
+
}
|
|
21
|
+
return to;
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
+
var forwarded_arguments_exports = {};
|
|
25
|
+
__export(forwarded_arguments_exports, {
|
|
26
|
+
assertNoOwnedArguments: () => assertNoOwnedArguments
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(forwarded_arguments_exports);
|
|
29
|
+
function assertNoOwnedArguments(params) {
|
|
30
|
+
const { forwardedArguments, ownedOptions, runnerName } = params;
|
|
31
|
+
const problems = [];
|
|
32
|
+
for (const argument of forwardedArguments) {
|
|
33
|
+
const option = ownedOptions.find((candidate) => isOwnedArgument(argument, candidate));
|
|
34
|
+
if (option) {
|
|
35
|
+
problems.push(`${argument} (use ${option.replacement} instead)`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (problems.length > 0) {
|
|
39
|
+
throw new Error(`The ${runnerName} wrapper sets these options itself, so they cannot be forwarded: ${problems.join(", ")}.`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function isOwnedArgument(argument, option) {
|
|
43
|
+
const name = argument.replace(/[=].*$/su, "");
|
|
44
|
+
return option.names.includes(name) || (option.prefixes ?? []).some((prefix) => argument.startsWith(prefix));
|
|
45
|
+
}
|
|
46
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
47
|
+
0 && (module.exports = {
|
|
48
|
+
assertNoOwnedArguments
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVubmVycy9mb3J3YXJkZWQtYXJndW1lbnRzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogR3VhcmRzIHRoZSBDTEkgYXJndW1lbnRzIGEgdGVzdCB3cmFwcGVyIGZvcndhcmRzIHRvIGl0cyBydW5uZXIgYWdhaW5zdCB0aGUgb3B0aW9ucyB0aGUgd3JhcHBlciBzZXRzIGl0c2VsZi5cbiAqL1xuXG4vKipcbiAqIFBhcmFtcyBmb3Ige0BsaW5rIGFzc2VydE5vT3duZWRBcmd1bWVudHN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2VydE5vT3duZWRBcmd1bWVudHNQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGFyZ3VtZW50cyB0aGUgY2FsbGVyIGZvcndhcmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9yd2FyZGVkQXJndW1lbnRzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG9wdGlvbnMgdGhlIHdyYXBwZXIgc2V0cyBpdHNlbGYuXG4gICAqL1xuICByZWFkb25seSBvd25lZE9wdGlvbnM6IHJlYWRvbmx5IE93bmVkT3B0aW9uW107XG5cbiAgLyoqXG4gICAqIFRoZSBydW5uZXIncyBuYW1lLCBzaG93biBpbiB0aGUgZXJyb3IuXG4gICAqL1xuICByZWFkb25seSBydW5uZXJOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQW4gb3B0aW9uIGEgdGVzdCB3cmFwcGVyIHNldHMgaXRzZWxmLCBzbyBhIGZvcndhcmRlZCBhcmd1bWVudCBtYXkgbm90IG5hbWUgaXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3duZWRPcHRpb24ge1xuICAvKipcbiAgICogVGhlIHNwZWxsaW5ncyB0aGF0IG5hbWUgdGhlIG9wdGlvbiwgZWFjaCBtYXRjaGVkIGFsb25lIChgLS1wcm9qZWN0YCkgb3Igd2l0aCBhIHZhbHVlIChgLS1wcm9qZWN0PXhgKS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUHJlZml4ZXMgdGhhdCBuYW1lIHRoZSBvcHRpb24ncyBzdWItb3B0aW9ucywgc3VjaCBhcyBgLS1jb3ZlcmFnZS5gLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4ZXM/OiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hhdCB0byB1c2UgaW5zdGVhZCwgc2hvd24gaW4gdGhlIGVycm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwbGFjZW1lbnQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaHJvd3Mgd2hlbiBhIGZvcndhcmRlZCBhcmd1bWVudCBuYW1lcyBhbiBvcHRpb24gdGhlIHdyYXBwZXIgc2V0cyBpdHNlbGYuXG4gKlxuICogTGV0dGluZyBpdCB0aHJvdWdoIHdvdWxkIG5vdCBvdmVycmlkZSB0aGUgd3JhcHBlciByZWxpYWJseTogdml0ZXN0IGFkZHMgZXZlcnkgYC0tcHJvamVjdGAgdG8gdGhlIHdyYXBwZXIncyBvd24sIGFuZCBhXG4gKiBsYXRlciBgLS1jb3ZlcmFnZS50aHJlc2hvbGRzLmxpbmVzYCB3b3VsZCBxdWlldGx5IGxvd2VyIGEgY292ZXJhZ2UgZ2F0ZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBBc3NlcnROb093bmVkQXJndW1lbnRzUGFyYW1zfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydE5vT3duZWRBcmd1bWVudHMocGFyYW1zOiBBc3NlcnROb093bmVkQXJndW1lbnRzUGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHsgZm9yd2FyZGVkQXJndW1lbnRzLCBvd25lZE9wdGlvbnMsIHJ1bm5lck5hbWUgfSA9IHBhcmFtcztcbiAgY29uc3QgcHJvYmxlbXM6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgYXJndW1lbnQgb2YgZm9yd2FyZGVkQXJndW1lbnRzKSB7XG4gICAgY29uc3Qgb3B0aW9uID0gb3duZWRPcHRpb25zLmZpbmQoKGNhbmRpZGF0ZSkgPT4gaXNPd25lZEFyZ3VtZW50KGFyZ3VtZW50LCBjYW5kaWRhdGUpKTtcbiAgICBpZiAob3B0aW9uKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKGAke2FyZ3VtZW50fSAodXNlICR7b3B0aW9uLnJlcGxhY2VtZW50fSBpbnN0ZWFkKWApO1xuICAgIH1cbiAgfVxuXG4gIGlmIChwcm9ibGVtcy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgJHtydW5uZXJOYW1lfSB3cmFwcGVyIHNldHMgdGhlc2Ugb3B0aW9ucyBpdHNlbGYsIHNvIHRoZXkgY2Fubm90IGJlIGZvcndhcmRlZDogJHtwcm9ibGVtcy5qb2luKCcsICcpfS5gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc093bmVkQXJndW1lbnQoYXJndW1lbnQ6IHN0cmluZywgb3B0aW9uOiBPd25lZE9wdGlvbik6IGJvb2xlYW4ge1xuICBjb25zdCBuYW1lID0gYXJndW1lbnQucmVwbGFjZSgvWz1dLiokL3N1LCAnJyk7XG4gIHJldHVybiBvcHRpb24ubmFtZXMuaW5jbHVkZXMobmFtZSkgfHwgKG9wdGlvbi5wcmVmaXhlcyA/PyBbXSkuc29tZSgocHJlZml4KSA9PiBhcmd1bWVudC5zdGFydHNXaXRoKHByZWZpeCkpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBc0RPLFNBQVMsdUJBQXVCLFFBQTRDO0FBQ2pGLFFBQU0sRUFBRSxvQkFBb0IsY0FBYyxXQUFXLElBQUk7QUFDekQsUUFBTSxXQUFxQixDQUFDO0FBQzVCLGFBQVcsWUFBWSxvQkFBb0I7QUFDekMsVUFBTSxTQUFTLGFBQWEsS0FBSyxDQUFDLGNBQWMsZ0JBQWdCLFVBQVUsU0FBUyxDQUFDO0FBQ3BGLFFBQUksUUFBUTtBQUNWLGVBQVMsS0FBSyxHQUFHLFFBQVEsU0FBUyxPQUFPLFdBQVcsV0FBVztBQUFBLElBQ2pFO0FBQUEsRUFDRjtBQUVBLE1BQUksU0FBUyxTQUFTLEdBQUc7QUFDdkIsVUFBTSxJQUFJLE1BQU0sT0FBTyxVQUFVLG9FQUFvRSxTQUFTLEtBQUssSUFBSSxDQUFDLEdBQUc7QUFBQSxFQUM3SDtBQUNGO0FBRUEsU0FBUyxnQkFBZ0IsVUFBa0IsUUFBOEI7QUFDdkUsUUFBTSxPQUFPLFNBQVMsUUFBUSxZQUFZLEVBQUU7QUFDNUMsU0FBTyxPQUFPLE1BQU0sU0FBUyxJQUFJLE1BQU0sT0FBTyxZQUFZLENBQUMsR0FBRyxLQUFLLENBQUMsV0FBVyxTQUFTLFdBQVcsTUFBTSxDQUFDO0FBQzVHOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/// <reference path="../library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Guards the CLI arguments a test wrapper forwards to its runner against the options the wrapper sets itself.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Params for {@link assertNoOwnedArguments}.
|
|
9
|
+
*/
|
|
10
|
+
export interface AssertNoOwnedArgumentsParams {
|
|
11
|
+
/**
|
|
12
|
+
* The arguments the caller forwards.
|
|
13
|
+
*/
|
|
14
|
+
readonly forwardedArguments: readonly string[];
|
|
15
|
+
/**
|
|
16
|
+
* The options the wrapper sets itself.
|
|
17
|
+
*/
|
|
18
|
+
readonly ownedOptions: readonly OwnedOption[];
|
|
19
|
+
/**
|
|
20
|
+
* The runner's name, shown in the error.
|
|
21
|
+
*/
|
|
22
|
+
readonly runnerName: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* An option a test wrapper sets itself, so a forwarded argument may not name it.
|
|
26
|
+
*/
|
|
27
|
+
export interface OwnedOption {
|
|
28
|
+
/**
|
|
29
|
+
* The spellings that name the option, each matched alone (`--project`) or with a value (`--project=x`).
|
|
30
|
+
*/
|
|
31
|
+
readonly names: readonly string[];
|
|
32
|
+
/**
|
|
33
|
+
* Prefixes that name the option's sub-options, such as `--coverage.`.
|
|
34
|
+
*/
|
|
35
|
+
readonly prefixes?: readonly string[];
|
|
36
|
+
/**
|
|
37
|
+
* What to use instead, shown in the error.
|
|
38
|
+
*/
|
|
39
|
+
readonly replacement: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Throws when a forwarded argument names an option the wrapper sets itself.
|
|
43
|
+
*
|
|
44
|
+
* Letting it through would not override the wrapper reliably: vitest adds every `--project` to the wrapper's own, and a
|
|
45
|
+
* later `--coverage.thresholds.lines` would quietly lower a coverage gate.
|
|
46
|
+
*
|
|
47
|
+
* @param params - The {@link AssertNoOwnedArgumentsParams}.
|
|
48
|
+
*/
|
|
49
|
+
export declare function assertNoOwnedArguments(params: AssertNoOwnedArgumentsParams): void;
|
|
@@ -34,6 +34,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
34
34
|
var test_runners_exports = {};
|
|
35
35
|
__export(test_runners_exports, {
|
|
36
36
|
auto: () => auto,
|
|
37
|
+
"forwarded-arguments": () => forwarded_arguments,
|
|
37
38
|
jest: () => jest,
|
|
38
39
|
"jest-config": () => jest_config,
|
|
39
40
|
stryker: () => stryker,
|
|
@@ -43,6 +44,7 @@ __export(test_runners_exports, {
|
|
|
43
44
|
});
|
|
44
45
|
module.exports = __toCommonJS(test_runners_exports);
|
|
45
46
|
var auto = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./auto.cjs')), 1);
|
|
47
|
+
var forwarded_arguments = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./forwarded-arguments.cjs')), 1);
|
|
46
48
|
var jest_config = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./jest-config.cjs')), 1);
|
|
47
49
|
var jest = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./jest.cjs')), 1);
|
|
48
50
|
var stryker_config = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./stryker-config.cjs')), 1);
|
|
@@ -52,6 +54,7 @@ var vitest = __toESM(((module) => module && module.__esModule && 'default' in mo
|
|
|
52
54
|
// Annotate the CommonJS export names for ESM import in node:
|
|
53
55
|
0 && (module.exports = {
|
|
54
56
|
auto,
|
|
57
|
+
"forwarded-arguments": null,
|
|
55
58
|
jest,
|
|
56
59
|
"jest-config": null,
|
|
57
60
|
stryker,
|
|
@@ -59,4 +62,4 @@ var vitest = __toESM(((module) => module && module.__esModule && 'default' in mo
|
|
|
59
62
|
vitest,
|
|
60
63
|
"vitest-config": null
|
|
61
64
|
});
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVubmVycy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdhdXRvJyBmcm9tICcuL2F1dG8udHMnO1xuZXhwb3J0ICogYXMgJ2ZvcndhcmRlZC1hcmd1bWVudHMnIGZyb20gJy4vZm9yd2FyZGVkLWFyZ3VtZW50cy50cyc7XG5leHBvcnQgKiBhcyAnamVzdC1jb25maWcnIGZyb20gJy4vamVzdC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ2plc3QnIGZyb20gJy4vamVzdC50cyc7XG5leHBvcnQgKiBhcyAnc3RyeWtlci1jb25maWcnIGZyb20gJy4vc3RyeWtlci1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ3N0cnlrZXInIGZyb20gJy4vc3RyeWtlci50cyc7XG5leHBvcnQgKiBhcyAndml0ZXN0LWNvbmZpZycgZnJvbSAnLi92aXRlc3QtY29uZmlnLnRzJztcbmV4cG9ydCAqIGFzICd2aXRlc3QnIGZyb20gJy4vdml0ZXN0LnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBLCtCQUFBQTtBQUFBLEVBQUE7QUFBQSx1QkFBQUM7QUFBQSxFQUFBO0FBQUEsMEJBQUFDO0FBQUEsRUFBQTtBQUFBLHlCQUFBQztBQUFBO0FBQUE7QUFFQSxXQUF3QjtBQUN4QixJQUFBSCxzQkFBdUM7QUFDdkMsSUFBQUMsY0FBK0I7QUFDL0IsV0FBd0I7QUFDeEIsSUFBQUMsaUJBQWtDO0FBQ2xDLGNBQTJCO0FBQzNCLElBQUFDLGdCQUFpQztBQUNqQyxhQUEwQjsiLAogICJuYW1lcyI6IFsiZm9yd2FyZGVkLWFyZ3VtZW50cyIsICJqZXN0LWNvbmZpZyIsICJzdHJ5a2VyLWNvbmZpZyIsICJ2aXRlc3QtY29uZmlnIl0KfQo=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference path="../library-references.d.cts" />
|
|
2
2
|
export * as 'auto' from './auto.cjs';
|
|
3
|
+
export * as 'forwarded-arguments' from './forwarded-arguments.cjs';
|
|
3
4
|
export * as 'jest-config' from './jest-config.cjs';
|
|
4
5
|
export * as 'jest' from './jest.cjs';
|
|
5
6
|
export * as 'stryker-config' from './stryker-config.cjs';
|
|
@@ -47,7 +47,16 @@ var import_npm = require('../npm.cjs');
|
|
|
47
47
|
var import_package_manager = require('../package-manager.cjs');
|
|
48
48
|
var import_repo_paths = require('../repo-paths.cjs');
|
|
49
49
|
var import_root = require('../root.cjs');
|
|
50
|
+
var import_forwarded_arguments = require('./forwarded-arguments.cjs');
|
|
50
51
|
var import_jest_config = require('./jest-config.cjs');
|
|
52
|
+
const OWNED_OPTIONS = [
|
|
53
|
+
{ names: ["--selectProjects", "--select-projects"], replacement: "the `projects` option" },
|
|
54
|
+
{ names: ["--watch", "--watchAll", "--watch-all"], replacement: "the `testWatch` wrapper" },
|
|
55
|
+
{
|
|
56
|
+
names: ["--coverage", "--no-coverage", "--collectCoverage", "--collect-coverage", "--no-collectCoverage", "--coverageThreshold", "--coverage-threshold"],
|
|
57
|
+
replacement: "the `testCoverage` wrapper and its `minCoverageInPercents` option"
|
|
58
|
+
}
|
|
59
|
+
];
|
|
51
60
|
const JEST_CONFIG_FILE_NAMES = [
|
|
52
61
|
"jest.config.cjs",
|
|
53
62
|
"jest.config.cts",
|
|
@@ -94,10 +103,14 @@ function addExperimentalVmModulesFlag(nodeOptions) {
|
|
|
94
103
|
return flags.join(" ");
|
|
95
104
|
}
|
|
96
105
|
async function runJest(runArguments, options, isInteractive = false) {
|
|
97
|
-
const { esm = (0, import_jest_config.isEsmPackage)(), projects = [] } = options;
|
|
106
|
+
const { additionalArguments = [], esm = (0, import_jest_config.isEsmPackage)(), projects = [] } = options;
|
|
107
|
+
(0, import_forwarded_arguments.assertNoOwnedArguments)({ forwardedArguments: additionalArguments, ownedOptions: OWNED_OPTIONS, runnerName: "jest" });
|
|
98
108
|
const projectArguments = projects.length > 0 ? ["--selectProjects", ...projects] : [];
|
|
99
109
|
const env = esm ? { NODE_OPTIONS: addExperimentalVmModulesFlag(import_node_process.default.env["NODE_OPTIONS"]) } : {};
|
|
100
|
-
await (0, import_root.execFromRoot)([...(0, import_package_manager.resolveToolCommand)({ tool: "jest" }), ...runArguments, ...projectArguments], {
|
|
110
|
+
await (0, import_root.execFromRoot)([...(0, import_package_manager.resolveToolCommand)({ tool: "jest" }), ...runArguments, ...projectArguments, ...additionalArguments], {
|
|
111
|
+
env,
|
|
112
|
+
isInteractive
|
|
113
|
+
});
|
|
101
114
|
}
|
|
102
115
|
// Annotate the CommonJS export names for ESM import in node:
|
|
103
116
|
0 && (module.exports = {
|
|
@@ -108,4 +121,4 @@ async function runJest(runArguments, options, isInteractive = false) {
|
|
|
108
121
|
testCoverage,
|
|
109
122
|
testWatch
|
|
110
123
|
});
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVubmVycy9qZXN0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgZnVuY3Rpb25zIGZvciBydW5uaW5nIHRlc3RzIHVzaW5nIHRoZSBKZXN0IGZyYW1ld29yay5cbiAqL1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQgeyByZWFkUGFja2FnZUpzb24gfSBmcm9tICcuLi9ucG0udHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVRvb2xDb21tYW5kIH0gZnJvbSAnLi4vcGFja2FnZS1tYW5hZ2VyLnRzJztcbmltcG9ydCB7IFJlcG9QYXRocyB9IGZyb20gJy4uL3JlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZXhlY0Zyb21Sb290LFxuICByZXNvbHZlUGF0aEZyb21Sb290U2FmZVxufSBmcm9tICcuLi9yb290LnRzJztcbmltcG9ydCB7IGlzRXNtUGFja2FnZSB9IGZyb20gJy4vamVzdC1jb25maWcudHMnO1xuXG4vKipcbiAqIEV2ZXJ5IGZpbGUgamVzdCByZWFkcyBpdHMgY29uZmlndXJhdGlvbiBmcm9tLCBiZXNpZGVzIHRoZSBgamVzdGAga2V5IG9mIGBwYWNrYWdlLmpzb25gLlxuICpcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vamVzdGpzLmlvL2RvY3MvY29uZmlndXJhdGlvbn1cbiAqL1xuZXhwb3J0IGNvbnN0IEpFU1RfQ09ORklHX0ZJTEVfTkFNRVM6IHJlYWRvbmx5IHN0cmluZ1tdID0gW1xuICAnamVzdC5jb25maWcuY2pzJyxcbiAgJ2plc3QuY29uZmlnLmN0cycsXG4gICdqZXN0LmNvbmZpZy5qcycsXG4gICdqZXN0LmNvbmZpZy5qc29uJyxcbiAgJ2plc3QuY29uZmlnLm1qcycsXG4gICdqZXN0LmNvbmZpZy5tdHMnLFxuICAnamVzdC5jb25maWcudHMnXG5dO1xuXG4vKipcbiAqIFRoZSBOb2RlIGZsYWcgamVzdCdzIEVTTSBsb2FkZXIgbmVlZHM6IGl0IGlzIGJ1aWx0IG9uIGB2bS5TeW50aGV0aWNNb2R1bGVgLCB3aGljaCBOb2RlIG9ubHkgZXhwb3NlcyB1bmRlciBpdC5cbiAqIFdpdGhvdXQgaXQgZXZlcnkgRVNNIHN1aXRlIGZhaWxzIHRvIGxvYWQgd2l0aCBgTXVzdCB1c2UgaW1wb3J0IHRvIGxvYWQgRVMgTW9kdWxlYC5cbiAqL1xuZXhwb3J0IGNvbnN0IEVYUEVSSU1FTlRBTF9WTV9NT0RVTEVTX0ZMQUcgPSAnLS1leHBlcmltZW50YWwtdm0tbW9kdWxlcyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcnVubmluZyB0ZXN0cyB3aXRoIGNvdmVyYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RDb3ZlcmFnZU9wdGlvbnMgZXh0ZW5kcyBUZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIGNvdmVyYWdlIHBlcmNlbnRhZ2UgcmVxdWlyZWQsIGZvciBsaW5lcywgZnVuY3Rpb25zLCBicmFuY2hlcyBhbmQgc3RhdGVtZW50cyBhbGlrZS4gSWYgdGhlIGFjdHVhbCBjb3ZlcmFnZVxuICAgKiBmYWxscyBiZWxvdyBpdCwgamVzdCBleGl0cyB3aXRoIGEgbm9uLXplcm8gY29kZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYDBgXG4gICAqL1xuICByZWFkb25seSBtaW5Db3ZlcmFnZUluUGVyY2VudHM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcnVubmluZyB0ZXN0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIGplc3QgcnVucyB0aGUgc3VpdGUgYXMgRVMgbW9kdWxlcywgd2hpY2ggYWRkcyB7QGxpbmsgRVhQRVJJTUVOVEFMX1ZNX01PRFVMRVNfRkxBR30gdG8gYE5PREVfT1BUSU9OU2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYCB3aGVuIGBwYWNrYWdlLmpzb25gIGRlY2xhcmVzIGBcInR5cGVcIjogXCJtb2R1bGVcImAsIHRoZSBydWxlIGBkZWZpbmVKZXN0Q29uZmlnYCBmb2xsb3dzIHRvb1xuICAgKi9cbiAgcmVhZG9ubHkgZXNtPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHByb2plY3RzIHRvIHJ1biwgYnkgdGhlaXIgYGRpc3BsYXlOYW1lYCwgcGFzc2VkIHRvIGplc3QncyBgLS1zZWxlY3RQcm9qZWN0c2AuIFVubGlrZSB2aXRlc3QncyBydW5uZXIsIGEgbmFtZVxuICAgKiBtYXRjaGVzIG9ubHkgaXRzZWxmOiBqZXN0IGhhcyBubyBgbmFtZToqYCBmb3JtLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdHM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBydW5uaW5nIHRlc3RzIGluIHdhdGNoIG1vZGUuXG4gKi9cbmV4cG9ydCB0eXBlIFRlc3RXYXRjaE9wdGlvbnMgPSBUZXN0T3B0aW9ucztcblxuLyoqXG4gKiBTYXlzIHdoZXRoZXIgdGhlIHByb2plY3QgY29uZmlndXJlcyBqZXN0LlxuICpcbiAqIEByZXR1cm5zIFdoZXRoZXIgYSBqZXN0IGNvbmZpZ3VyYXRpb24gZmlsZSwgb3IgYSBgamVzdGAga2V5IGluIGBwYWNrYWdlLmpzb25gLCBleGlzdHMgYXQgdGhlIHByb2plY3Qgcm9vdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhc0plc3RDb25maWcoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGlmIChKRVNUX0NPTkZJR19GSUxFX05BTUVTLnNvbWUoKGZpbGVOYW1lKSA9PiBleGlzdHNTeW5jKHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogZmlsZU5hbWUgfSkpKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKCFleGlzdHNTeW5jKHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogUmVwb1BhdGhzLlBhY2thZ2VKc29uIH0pKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKCk7XG4gIHJldHVybiBPYmplY3QuaGFzT3duKHBhY2thZ2VKc29uLCAnamVzdCcpO1xufVxuXG4vKipcbiAqIFJ1bnMgdGhlIHRlc3Qgc3VpdGUuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIHRlc3QuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRlc3RzIGhhdmUgY29tcGxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdChvcHRpb25zOiBUZXN0T3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHJ1bkplc3QoW10sIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIFJ1bnMgdGhlIHRlc3Qgc3VpdGUgd2l0aCBjb3ZlcmFnZS5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIGNvdmVyYWdlIGNvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRlc3RzIGhhdmUgY29tcGxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdENvdmVyYWdlKG9wdGlvbnM6IFRlc3RDb3ZlcmFnZU9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB0aHJlc2hvbGQgPSBvcHRpb25zLm1pbkNvdmVyYWdlSW5QZXJjZW50cyA/PyAwO1xuICBjb25zdCBjb3ZlcmFnZVRocmVzaG9sZCA9IHtcbiAgICBnbG9iYWw6IHtcbiAgICAgIGJyYW5jaGVzOiB0aHJlc2hvbGQsXG4gICAgICBmdW5jdGlvbnM6IHRocmVzaG9sZCxcbiAgICAgIGxpbmVzOiB0aHJlc2hvbGQsXG4gICAgICBzdGF0ZW1lbnRzOiB0aHJlc2hvbGRcbiAgICB9XG4gIH07XG4gIGF3YWl0IHJ1bkplc3QoWyctLWNvdmVyYWdlJywgYC0tY292ZXJhZ2VUaHJlc2hvbGQ9JHtKU09OLnN0cmluZ2lmeShjb3ZlcmFnZVRocmVzaG9sZCl9YF0sIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIFJ1bnMgdGhlIHRlc3Qgc3VpdGUgaW4gd2F0Y2ggbW9kZSwgcmUtcnVubmluZyB0aGUgdGVzdHMgdGhlIGNoYW5nZWQgZmlsZXMgYWZmZWN0LiBKZXN0IG5lZWRzIGEgZ2l0IG9yIE1lcmN1cmlhbFxuICogcmVwb3NpdG9yeSBmb3IgdGhhdC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgdGVzdC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgd2F0Y2hlciBleGl0cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRlc3RXYXRjaChvcHRpb25zOiBUZXN0V2F0Y2hPcHRpb25zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcnVuSmVzdChbJy0td2F0Y2gnXSwgb3B0aW9ucywgdHJ1ZSk7XG59XG5cbi8qKlxuICogQXBwZW5kcyB7QGxpbmsgRVhQRVJJTUVOVEFMX1ZNX01PRFVMRVNfRkxBR30gdG8gYSBgTk9ERV9PUFRJT05TYCB2YWx1ZSwga2VlcGluZyB3aGF0ZXZlciBpdCBhbHJlYWR5IGhvbGRzLlxuICpcbiAqIEBwYXJhbSBub2RlT3B0aW9ucyAtIFRoZSBpbmhlcml0ZWQgYE5PREVfT1BUSU9OU2AuXG4gKiBAcmV0dXJucyBUaGUgYE5PREVfT1BUSU9OU2AgamVzdCBydW5zIHdpdGguXG4gKi9cbmZ1bmN0aW9uIGFkZEV4cGVyaW1lbnRhbFZtTW9kdWxlc0ZsYWcobm9kZU9wdGlvbnM6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIGNvbnN0IGZsYWdzID0gKG5vZGVPcHRpb25zID8/ICcnKS5zcGxpdCgvXFxzKy8pLmZpbHRlcihCb29sZWFuKTtcbiAgaWYgKCFmbGFncy5pbmNsdWRlcyhFWFBFUklNRU5UQUxfVk1fTU9EVUxFU19GTEFHKSkge1xuICAgIGZsYWdzLnB1c2goRVhQRVJJTUVOVEFMX1ZNX01PRFVMRVNfRkxBRyk7XG4gIH1cblxuICByZXR1cm4gZmxhZ3Muam9pbignICcpO1xufVxuXG4vKipcbiAqIFJ1bnMgdGhlIGplc3QgQ0xJIGZyb20gdGhlIHByb2plY3Qgcm9vdC5cbiAqXG4gKiBAcGFyYW0gcnVuQXJndW1lbnRzIC0gVGhlIGFyZ3VtZW50cyB0aGF0IHNlbGVjdCB3aGF0IGplc3QgZG9lcy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBUZXN0T3B0aW9uc30uXG4gKiBAcGFyYW0gaXNJbnRlcmFjdGl2ZSAtIFdoZXRoZXIgamVzdCBnZXRzIHRoZSB0ZXJtaW5hbCwgYXMgaXRzIHdhdGNoIG1vZGUgbmVlZHMgdG8gcmVhZCBrZXlzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIGplc3QgZXhpdHMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJ1bkplc3QocnVuQXJndW1lbnRzOiBzdHJpbmdbXSwgb3B0aW9uczogVGVzdE9wdGlvbnMsIGlzSW50ZXJhY3RpdmUgPSBmYWxzZSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGVzbSA9IGlzRXNtUGFja2FnZSgpLCBwcm9qZWN0cyA9IFtdIH0gPSBvcHRpb25zO1xuICBjb25zdCBwcm9qZWN0QXJndW1lbnRzID0gcHJvamVjdHMubGVuZ3RoID4gMCA/IFsnLS1zZWxlY3RQcm9qZWN0cycsIC4uLnByb2plY3RzXSA6IFtdO1xuICBjb25zdCBlbnYgPSBlc20gPyB7IE5PREVfT1BUSU9OUzogYWRkRXhwZXJpbWVudGFsVm1Nb2R1bGVzRmxhZyhwcm9jZXNzLmVudlsnTk9ERV9PUFRJT05TJ10pIH0gOiB7fTtcblxuICBhd2FpdCBleGVjRnJvbVJvb3QoWy4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICdqZXN0JyB9KSwgLi4ucnVuQXJndW1lbnRzLCAuLi5wcm9qZWN0QXJndW1lbnRzXSwgeyBlbnYsIGlzSW50ZXJhY3RpdmUgfSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLHFCQUEyQjtBQUMzQiwwQkFBb0I7QUFFcEIsaUJBQWdDO0FBQ2hDLDZCQUFtQztBQUNuQyx3QkFBMEI7QUFDMUIsa0JBR087QUFDUCx5QkFBNkI7QUFPdEIsTUFBTSx5QkFBNEM7QUFBQSxFQUN2RDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGO0FBTU8sTUFBTSwrQkFBK0I7QUEyQzVDLGVBQXNCLGdCQUFrQztBQUN0RCxNQUFJLHVCQUF1QixLQUFLLENBQUMsaUJBQWEsK0JBQVcscUNBQXdCLEVBQUUsTUFBTSxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUc7QUFDdEcsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLEtBQUMsK0JBQVcscUNBQXdCLEVBQUUsTUFBTSw0QkFBVSxZQUFZLENBQUMsQ0FBQyxHQUFHO0FBQ3pFLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxjQUFjLFVBQU0sNEJBQWdCO0FBQzFDLFNBQU8sT0FBTyxPQUFPLGFBQWEsTUFBTTtBQUMxQztBQVFBLGVBQXNCLEtBQUssVUFBdUIsQ0FBQyxHQUFrQjtBQUNuRSxRQUFNLFFBQVEsQ0FBQyxHQUFHLE9BQU87QUFDM0I7QUFRQSxlQUFzQixhQUFhLFVBQStCLENBQUMsR0FBa0I7QUFDbkYsUUFBTSxZQUFZLFFBQVEseUJBQXlCO0FBQ25ELFFBQU0sb0JBQW9CO0FBQUEsSUFDeEIsUUFBUTtBQUFBLE1BQ04sVUFBVTtBQUFBLE1BQ1YsV0FBVztBQUFBLE1BQ1gsT0FBTztBQUFBLE1BQ1AsWUFBWTtBQUFBLElBQ2Q7QUFBQSxFQUNGO0FBQ0EsUUFBTSxRQUFRLENBQUMsY0FBYyx1QkFBdUIsS0FBSyxVQUFVLGlCQUFpQixDQUFDLEVBQUUsR0FBRyxPQUFPO0FBQ25HO0FBU0EsZUFBc0IsVUFBVSxVQUE0QixDQUFDLEdBQWtCO0FBQzdFLFFBQU0sUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLElBQUk7QUFDMUM7QUFRQSxTQUFTLDZCQUE2QixhQUF5QztBQUM3RSxRQUFNLFNBQVMsZUFBZSxJQUFJLE1BQU0sS0FBSyxFQUFFLE9BQU8sT0FBTztBQUM3RCxNQUFJLENBQUMsTUFBTSxTQUFTLDRCQUE0QixHQUFHO0FBQ2pELFVBQU0sS0FBSyw0QkFBNEI7QUFBQSxFQUN6QztBQUVBLFNBQU8sTUFBTSxLQUFLLEdBQUc7QUFDdkI7QUFVQSxlQUFlLFFBQVEsY0FBd0IsU0FBc0IsZ0JBQWdCLE9BQXNCO0FBQ3pHLFFBQU0sRUFBRSxVQUFNLGlDQUFhLEdBQUcsV0FBVyxDQUFDLEVBQUUsSUFBSTtBQUNoRCxRQUFNLG1CQUFtQixTQUFTLFNBQVMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsSUFBSSxDQUFDO0FBQ3BGLFFBQU0sTUFBTSxNQUFNLEVBQUUsY0FBYyw2QkFBNkIsb0JBQUFBLFFBQVEsSUFBSSxjQUFjLENBQUMsRUFBRSxJQUFJLENBQUM7QUFFakcsWUFBTSwwQkFBYSxDQUFDLE9BQUcsMkNBQW1CLEVBQUUsTUFBTSxPQUFPLENBQUMsR0FBRyxHQUFHLGNBQWMsR0FBRyxnQkFBZ0IsR0FBRyxFQUFFLEtBQUssY0FBYyxDQUFDO0FBQzVIOyIsCiAgIm5hbWVzIjogWyJwcm9jZXNzIl0KfQo=
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVubmVycy9qZXN0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgZnVuY3Rpb25zIGZvciBydW5uaW5nIHRlc3RzIHVzaW5nIHRoZSBKZXN0IGZyYW1ld29yay5cbiAqL1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQgdHlwZSB7IE93bmVkT3B0aW9uIH0gZnJvbSAnLi9mb3J3YXJkZWQtYXJndW1lbnRzLnRzJztcblxuaW1wb3J0IHsgcmVhZFBhY2thZ2VKc29uIH0gZnJvbSAnLi4vbnBtLnRzJztcbmltcG9ydCB7IHJlc29sdmVUb29sQ29tbWFuZCB9IGZyb20gJy4uL3BhY2thZ2UtbWFuYWdlci50cyc7XG5pbXBvcnQgeyBSZXBvUGF0aHMgfSBmcm9tICcuLi9yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi4vcm9vdC50cyc7XG5pbXBvcnQgeyBhc3NlcnROb093bmVkQXJndW1lbnRzIH0gZnJvbSAnLi9mb3J3YXJkZWQtYXJndW1lbnRzLnRzJztcbmltcG9ydCB7IGlzRXNtUGFja2FnZSB9IGZyb20gJy4vamVzdC1jb25maWcudHMnO1xuXG5jb25zdCBPV05FRF9PUFRJT05TOiByZWFkb25seSBPd25lZE9wdGlvbltdID0gW1xuICB7IG5hbWVzOiBbJy0tc2VsZWN0UHJvamVjdHMnLCAnLS1zZWxlY3QtcHJvamVjdHMnXSwgcmVwbGFjZW1lbnQ6ICd0aGUgYHByb2plY3RzYCBvcHRpb24nIH0sXG4gIHsgbmFtZXM6IFsnLS13YXRjaCcsICctLXdhdGNoQWxsJywgJy0td2F0Y2gtYWxsJ10sIHJlcGxhY2VtZW50OiAndGhlIGB0ZXN0V2F0Y2hgIHdyYXBwZXInIH0sXG4gIHtcbiAgICBuYW1lczogWyctLWNvdmVyYWdlJywgJy0tbm8tY292ZXJhZ2UnLCAnLS1jb2xsZWN0Q292ZXJhZ2UnLCAnLS1jb2xsZWN0LWNvdmVyYWdlJywgJy0tbm8tY29sbGVjdENvdmVyYWdlJywgJy0tY292ZXJhZ2VUaHJlc2hvbGQnLCAnLS1jb3ZlcmFnZS10aHJlc2hvbGQnXSxcbiAgICByZXBsYWNlbWVudDogJ3RoZSBgdGVzdENvdmVyYWdlYCB3cmFwcGVyIGFuZCBpdHMgYG1pbkNvdmVyYWdlSW5QZXJjZW50c2Agb3B0aW9uJ1xuICB9XG5dO1xuXG4vKipcbiAqIEV2ZXJ5IGZpbGUgamVzdCByZWFkcyBpdHMgY29uZmlndXJhdGlvbiBmcm9tLCBiZXNpZGVzIHRoZSBgamVzdGAga2V5IG9mIGBwYWNrYWdlLmpzb25gLlxuICpcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vamVzdGpzLmlvL2RvY3MvY29uZmlndXJhdGlvbn1cbiAqL1xuZXhwb3J0IGNvbnN0IEpFU1RfQ09ORklHX0ZJTEVfTkFNRVM6IHJlYWRvbmx5IHN0cmluZ1tdID0gW1xuICAnamVzdC5jb25maWcuY2pzJyxcbiAgJ2plc3QuY29uZmlnLmN0cycsXG4gICdqZXN0LmNvbmZpZy5qcycsXG4gICdqZXN0LmNvbmZpZy5qc29uJyxcbiAgJ2plc3QuY29uZmlnLm1qcycsXG4gICdqZXN0LmNvbmZpZy5tdHMnLFxuICAnamVzdC5jb25maWcudHMnXG5dO1xuXG4vKipcbiAqIFRoZSBOb2RlIGZsYWcgamVzdCdzIEVTTSBsb2FkZXIgbmVlZHM6IGl0IGlzIGJ1aWx0IG9uIGB2bS5TeW50aGV0aWNNb2R1bGVgLCB3aGljaCBOb2RlIG9ubHkgZXhwb3NlcyB1bmRlciBpdC5cbiAqIFdpdGhvdXQgaXQgZXZlcnkgRVNNIHN1aXRlIGZhaWxzIHRvIGxvYWQgd2l0aCBgTXVzdCB1c2UgaW1wb3J0IHRvIGxvYWQgRVMgTW9kdWxlYC5cbiAqL1xuZXhwb3J0IGNvbnN0IEVYUEVSSU1FTlRBTF9WTV9NT0RVTEVTX0ZMQUcgPSAnLS1leHBlcmltZW50YWwtdm0tbW9kdWxlcyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcnVubmluZyB0ZXN0cyB3aXRoIGNvdmVyYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RDb3ZlcmFnZU9wdGlvbnMgZXh0ZW5kcyBUZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIGNvdmVyYWdlIHBlcmNlbnRhZ2UgcmVxdWlyZWQsIGZvciBsaW5lcywgZnVuY3Rpb25zLCBicmFuY2hlcyBhbmQgc3RhdGVtZW50cyBhbGlrZS4gSWYgdGhlIGFjdHVhbCBjb3ZlcmFnZVxuICAgKiBmYWxscyBiZWxvdyBpdCwgamVzdCBleGl0cyB3aXRoIGEgbm9uLXplcm8gY29kZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYDBgXG4gICAqL1xuICByZWFkb25seSBtaW5Db3ZlcmFnZUluUGVyY2VudHM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcnVubmluZyB0ZXN0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBGdXJ0aGVyIGplc3QgQ0xJIGFyZ3VtZW50cywgYXBwZW5kZWQgYWZ0ZXIgdGhlIHdyYXBwZXIncyBvd246IHRlc3QgcGF0aCBwYXR0ZXJucywgYC10YCwgYC0tbWF4V29ya2Vyc2AsIGAtLWJhaWxgLlxuICAgKiBBbiBhcmd1bWVudCBuYW1pbmcgYW4gb3B0aW9uIHRoZSB3cmFwcGVyIHNldHMgaXRzZWxmIChgLS1zZWxlY3RQcm9qZWN0c2AsIGAtLWNvdmVyYWdlKmAsIGAtLXdhdGNoKmApIHRocm93cy5cbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxBcmd1bWVudHM/OiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hldGhlciBqZXN0IHJ1bnMgdGhlIHN1aXRlIGFzIEVTIG1vZHVsZXMsIHdoaWNoIGFkZHMge0BsaW5rIEVYUEVSSU1FTlRBTF9WTV9NT0RVTEVTX0ZMQUd9IHRvIGBOT0RFX09QVElPTlNgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWAgd2hlbiBgcGFja2FnZS5qc29uYCBkZWNsYXJlcyBgXCJ0eXBlXCI6IFwibW9kdWxlXCJgLCB0aGUgcnVsZSBgZGVmaW5lSmVzdENvbmZpZ2AgZm9sbG93cyB0b29cbiAgICovXG4gIHJlYWRvbmx5IGVzbT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBwcm9qZWN0cyB0byBydW4sIGJ5IHRoZWlyIGBkaXNwbGF5TmFtZWAsIHBhc3NlZCB0byBqZXN0J3MgYC0tc2VsZWN0UHJvamVjdHNgLiBVbmxpa2Ugdml0ZXN0J3MgcnVubmVyLCBhIG5hbWVcbiAgICogbWF0Y2hlcyBvbmx5IGl0c2VsZjogamVzdCBoYXMgbm8gYG5hbWU6KmAgZm9ybS5cbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3RzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcnVubmluZyB0ZXN0cyBpbiB3YXRjaCBtb2RlLlxuICovXG5leHBvcnQgdHlwZSBUZXN0V2F0Y2hPcHRpb25zID0gVGVzdE9wdGlvbnM7XG5cbi8qKlxuICogU2F5cyB3aGV0aGVyIHRoZSBwcm9qZWN0IGNvbmZpZ3VyZXMgamVzdC5cbiAqXG4gKiBAcmV0dXJucyBXaGV0aGVyIGEgamVzdCBjb25maWd1cmF0aW9uIGZpbGUsIG9yIGEgYGplc3RgIGtleSBpbiBgcGFja2FnZS5qc29uYCwgZXhpc3RzIGF0IHRoZSBwcm9qZWN0IHJvb3QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYXNKZXN0Q29uZmlnKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBpZiAoSkVTVF9DT05GSUdfRklMRV9OQU1FUy5zb21lKChmaWxlTmFtZSkgPT4gZXhpc3RzU3luYyhyZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IGZpbGVOYW1lIH0pKSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICghZXhpc3RzU3luYyhyZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IFJlcG9QYXRocy5QYWNrYWdlSnNvbiB9KSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBwYWNrYWdlSnNvbiA9IGF3YWl0IHJlYWRQYWNrYWdlSnNvbigpO1xuICByZXR1cm4gT2JqZWN0Lmhhc093bihwYWNrYWdlSnNvbiwgJ2plc3QnKTtcbn1cblxuLyoqXG4gKiBSdW5zIHRoZSB0ZXN0IHN1aXRlLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSB0ZXN0LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0ZXN0cyBoYXZlIGNvbXBsZXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRlc3Qob3B0aW9uczogVGVzdE9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBydW5KZXN0KFtdLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBSdW5zIHRoZSB0ZXN0IHN1aXRlIHdpdGggY292ZXJhZ2UuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBjb3ZlcmFnZSBjb25maWd1cmF0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0ZXN0cyBoYXZlIGNvbXBsZXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRlc3RDb3ZlcmFnZShvcHRpb25zOiBUZXN0Q292ZXJhZ2VPcHRpb25zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgdGhyZXNob2xkID0gb3B0aW9ucy5taW5Db3ZlcmFnZUluUGVyY2VudHMgPz8gMDtcbiAgY29uc3QgY292ZXJhZ2VUaHJlc2hvbGQgPSB7XG4gICAgZ2xvYmFsOiB7XG4gICAgICBicmFuY2hlczogdGhyZXNob2xkLFxuICAgICAgZnVuY3Rpb25zOiB0aHJlc2hvbGQsXG4gICAgICBsaW5lczogdGhyZXNob2xkLFxuICAgICAgc3RhdGVtZW50czogdGhyZXNob2xkXG4gICAgfVxuICB9O1xuICBhd2FpdCBydW5KZXN0KFsnLS1jb3ZlcmFnZScsIGAtLWNvdmVyYWdlVGhyZXNob2xkPSR7SlNPTi5zdHJpbmdpZnkoY292ZXJhZ2VUaHJlc2hvbGQpfWBdLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBSdW5zIHRoZSB0ZXN0IHN1aXRlIGluIHdhdGNoIG1vZGUsIHJlLXJ1bm5pbmcgdGhlIHRlc3RzIHRoZSBjaGFuZ2VkIGZpbGVzIGFmZmVjdC4gSmVzdCBuZWVkcyBhIGdpdCBvciBNZXJjdXJpYWxcbiAqIHJlcG9zaXRvcnkgZm9yIHRoYXQuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIHRlc3QuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHdhdGNoZXIgZXhpdHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0V2F0Y2gob3B0aW9uczogVGVzdFdhdGNoT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHJ1bkplc3QoWyctLXdhdGNoJ10sIG9wdGlvbnMsIHRydWUpO1xufVxuXG4vKipcbiAqIEFwcGVuZHMge0BsaW5rIEVYUEVSSU1FTlRBTF9WTV9NT0RVTEVTX0ZMQUd9IHRvIGEgYE5PREVfT1BUSU9OU2AgdmFsdWUsIGtlZXBpbmcgd2hhdGV2ZXIgaXQgYWxyZWFkeSBob2xkcy5cbiAqXG4gKiBAcGFyYW0gbm9kZU9wdGlvbnMgLSBUaGUgaW5oZXJpdGVkIGBOT0RFX09QVElPTlNgLlxuICogQHJldHVybnMgVGhlIGBOT0RFX09QVElPTlNgIGplc3QgcnVucyB3aXRoLlxuICovXG5mdW5jdGlvbiBhZGRFeHBlcmltZW50YWxWbU1vZHVsZXNGbGFnKG5vZGVPcHRpb25zOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICBjb25zdCBmbGFncyA9IChub2RlT3B0aW9ucyA/PyAnJykuc3BsaXQoL1xccysvKS5maWx0ZXIoQm9vbGVhbik7XG4gIGlmICghZmxhZ3MuaW5jbHVkZXMoRVhQRVJJTUVOVEFMX1ZNX01PRFVMRVNfRkxBRykpIHtcbiAgICBmbGFncy5wdXNoKEVYUEVSSU1FTlRBTF9WTV9NT0RVTEVTX0ZMQUcpO1xuICB9XG5cbiAgcmV0dXJuIGZsYWdzLmpvaW4oJyAnKTtcbn1cblxuLyoqXG4gKiBSdW5zIHRoZSBqZXN0IENMSSBmcm9tIHRoZSBwcm9qZWN0IHJvb3QuXG4gKlxuICogQHBhcmFtIHJ1bkFyZ3VtZW50cyAtIFRoZSBhcmd1bWVudHMgdGhhdCBzZWxlY3Qgd2hhdCBqZXN0IGRvZXMuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB7QGxpbmsgVGVzdE9wdGlvbnN9LlxuICogQHBhcmFtIGlzSW50ZXJhY3RpdmUgLSBXaGV0aGVyIGplc3QgZ2V0cyB0aGUgdGVybWluYWwsIGFzIGl0cyB3YXRjaCBtb2RlIG5lZWRzIHRvIHJlYWQga2V5cy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiBqZXN0IGV4aXRzLlxuICovXG5hc3luYyBmdW5jdGlvbiBydW5KZXN0KHJ1bkFyZ3VtZW50czogc3RyaW5nW10sIG9wdGlvbnM6IFRlc3RPcHRpb25zLCBpc0ludGVyYWN0aXZlID0gZmFsc2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBhZGRpdGlvbmFsQXJndW1lbnRzID0gW10sIGVzbSA9IGlzRXNtUGFja2FnZSgpLCBwcm9qZWN0cyA9IFtdIH0gPSBvcHRpb25zO1xuICBhc3NlcnROb093bmVkQXJndW1lbnRzKHsgZm9yd2FyZGVkQXJndW1lbnRzOiBhZGRpdGlvbmFsQXJndW1lbnRzLCBvd25lZE9wdGlvbnM6IE9XTkVEX09QVElPTlMsIHJ1bm5lck5hbWU6ICdqZXN0JyB9KTtcbiAgY29uc3QgcHJvamVjdEFyZ3VtZW50cyA9IHByb2plY3RzLmxlbmd0aCA+IDAgPyBbJy0tc2VsZWN0UHJvamVjdHMnLCAuLi5wcm9qZWN0c10gOiBbXTtcbiAgY29uc3QgZW52ID0gZXNtID8geyBOT0RFX09QVElPTlM6IGFkZEV4cGVyaW1lbnRhbFZtTW9kdWxlc0ZsYWcocHJvY2Vzcy5lbnZbJ05PREVfT1BUSU9OUyddKSB9IDoge307XG5cbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsuLi5yZXNvbHZlVG9vbENvbW1hbmQoeyB0b29sOiAnamVzdCcgfSksIC4uLnJ1bkFyZ3VtZW50cywgLi4ucHJvamVjdEFyZ3VtZW50cywgLi4uYWRkaXRpb25hbEFyZ3VtZW50c10sIHtcbiAgICBlbnYsXG4gICAgaXNJbnRlcmFjdGl2ZVxuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEscUJBQTJCO0FBQzNCLDBCQUFvQjtBQUlwQixpQkFBZ0M7QUFDaEMsNkJBQW1DO0FBQ25DLHdCQUEwQjtBQUMxQixrQkFHTztBQUNQLGlDQUF1QztBQUN2Qyx5QkFBNkI7QUFFN0IsTUFBTSxnQkFBd0M7QUFBQSxFQUM1QyxFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsbUJBQW1CLEdBQUcsYUFBYSx3QkFBd0I7QUFBQSxFQUN6RixFQUFFLE9BQU8sQ0FBQyxXQUFXLGNBQWMsYUFBYSxHQUFHLGFBQWEsMEJBQTBCO0FBQUEsRUFDMUY7QUFBQSxJQUNFLE9BQU8sQ0FBQyxjQUFjLGlCQUFpQixxQkFBcUIsc0JBQXNCLHdCQUF3Qix1QkFBdUIsc0JBQXNCO0FBQUEsSUFDdkosYUFBYTtBQUFBLEVBQ2Y7QUFDRjtBQU9PLE1BQU0seUJBQTRDO0FBQUEsRUFDdkQ7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFDRjtBQU1PLE1BQU0sK0JBQStCO0FBaUQ1QyxlQUFzQixnQkFBa0M7QUFDdEQsTUFBSSx1QkFBdUIsS0FBSyxDQUFDLGlCQUFhLCtCQUFXLHFDQUF3QixFQUFFLE1BQU0sU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHO0FBQ3RHLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxLQUFDLCtCQUFXLHFDQUF3QixFQUFFLE1BQU0sNEJBQVUsWUFBWSxDQUFDLENBQUMsR0FBRztBQUN6RSxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sY0FBYyxVQUFNLDRCQUFnQjtBQUMxQyxTQUFPLE9BQU8sT0FBTyxhQUFhLE1BQU07QUFDMUM7QUFRQSxlQUFzQixLQUFLLFVBQXVCLENBQUMsR0FBa0I7QUFDbkUsUUFBTSxRQUFRLENBQUMsR0FBRyxPQUFPO0FBQzNCO0FBUUEsZUFBc0IsYUFBYSxVQUErQixDQUFDLEdBQWtCO0FBQ25GLFFBQU0sWUFBWSxRQUFRLHlCQUF5QjtBQUNuRCxRQUFNLG9CQUFvQjtBQUFBLElBQ3hCLFFBQVE7QUFBQSxNQUNOLFVBQVU7QUFBQSxNQUNWLFdBQVc7QUFBQSxNQUNYLE9BQU87QUFBQSxNQUNQLFlBQVk7QUFBQSxJQUNkO0FBQUEsRUFDRjtBQUNBLFFBQU0sUUFBUSxDQUFDLGNBQWMsdUJBQXVCLEtBQUssVUFBVSxpQkFBaUIsQ0FBQyxFQUFFLEdBQUcsT0FBTztBQUNuRztBQVNBLGVBQXNCLFVBQVUsVUFBNEIsQ0FBQyxHQUFrQjtBQUM3RSxRQUFNLFFBQVEsQ0FBQyxTQUFTLEdBQUcsU0FBUyxJQUFJO0FBQzFDO0FBUUEsU0FBUyw2QkFBNkIsYUFBeUM7QUFDN0UsUUFBTSxTQUFTLGVBQWUsSUFBSSxNQUFNLEtBQUssRUFBRSxPQUFPLE9BQU87QUFDN0QsTUFBSSxDQUFDLE1BQU0sU0FBUyw0QkFBNEIsR0FBRztBQUNqRCxVQUFNLEtBQUssNEJBQTRCO0FBQUEsRUFDekM7QUFFQSxTQUFPLE1BQU0sS0FBSyxHQUFHO0FBQ3ZCO0FBVUEsZUFBZSxRQUFRLGNBQXdCLFNBQXNCLGdCQUFnQixPQUFzQjtBQUN6RyxRQUFNLEVBQUUsc0JBQXNCLENBQUMsR0FBRyxVQUFNLGlDQUFhLEdBQUcsV0FBVyxDQUFDLEVBQUUsSUFBSTtBQUMxRSx5REFBdUIsRUFBRSxvQkFBb0IscUJBQXFCLGNBQWMsZUFBZSxZQUFZLE9BQU8sQ0FBQztBQUNuSCxRQUFNLG1CQUFtQixTQUFTLFNBQVMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsSUFBSSxDQUFDO0FBQ3BGLFFBQU0sTUFBTSxNQUFNLEVBQUUsY0FBYyw2QkFBNkIsb0JBQUFBLFFBQVEsSUFBSSxjQUFjLENBQUMsRUFBRSxJQUFJLENBQUM7QUFFakcsWUFBTSwwQkFBYSxDQUFDLE9BQUcsMkNBQW1CLEVBQUUsTUFBTSxPQUFPLENBQUMsR0FBRyxHQUFHLGNBQWMsR0FBRyxrQkFBa0IsR0FBRyxtQkFBbUIsR0FBRztBQUFBLElBQzFIO0FBQUEsSUFDQTtBQUFBLEVBQ0YsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogWyJwcm9jZXNzIl0KfQo=
|
|
@@ -31,6 +31,11 @@ export interface TestCoverageOptions extends TestOptions {
|
|
|
31
31
|
* Options for running tests.
|
|
32
32
|
*/
|
|
33
33
|
export interface TestOptions {
|
|
34
|
+
/**
|
|
35
|
+
* Further jest CLI arguments, appended after the wrapper's own: test path patterns, `-t`, `--maxWorkers`, `--bail`.
|
|
36
|
+
* An argument naming an option the wrapper sets itself (`--selectProjects`, `--coverage*`, `--watch*`) throws.
|
|
37
|
+
*/
|
|
38
|
+
readonly additionalArguments?: readonly string[];
|
|
34
39
|
/**
|
|
35
40
|
* Whether jest runs the suite as ES modules, which adds {@link EXPERIMENTAL_VM_MODULES_FLAG} to `NODE_OPTIONS`.
|
|
36
41
|
*
|