obsidian-dev-utils 74.0.0 → 74.2.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/CHANGELOG.md +21 -0
- package/README.md +1 -0
- package/dist/dev/main.js +225 -135
- package/dist/lib/cjs/async.cjs +37 -5
- package/dist/lib/cjs/async.d.cts +21 -0
- package/dist/lib/cjs/function.cjs +9 -1
- package/dist/lib/cjs/function.d.cts +10 -0
- package/dist/lib/cjs/library.cjs +1 -1
- package/dist/lib/cjs/object-utils.cjs +1 -1
- package/dist/lib/cjs/object-utils.d.cts +3 -2
- package/dist/lib/cjs/obsidian/components/monkey-around-component.cjs +26 -4
- package/dist/lib/cjs/obsidian/components/monkey-around-component.d.cts +95 -14
- package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.cjs +118 -99
- package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.d.cts +0 -1
- package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.cjs +21 -17
- package/dist/lib/cjs/obsidian/dataview.cjs +1 -1
- package/dist/lib/cjs/obsidian/dataview.d.cts +4 -3
- package/dist/lib/cjs/obsidian/file-change.cjs +1 -1
- package/dist/lib/cjs/obsidian/file-change.d.cts +9 -18
- package/dist/lib/cjs/obsidian/markdown.cjs +24 -15
- package/dist/lib/cjs/script-utils/fs.cjs +1 -1
- package/dist/lib/cjs/script-utils/fs.d.cts +16 -12
- package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +2 -1
- package/dist/lib/cjs/script-utils/linters/eslint-no-restricted-syntax.cjs +5 -21
- package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +4 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/index.d.cts +1 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-unused-params-members.cjs +315 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-unused-params-members.d.cts +35 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +3 -1
- package/dist/lib/cjs/setup/async-operation-tracking-jest-setup.cjs +115 -0
- package/dist/lib/cjs/setup/async-operation-tracking-jest-setup.d.cts +12 -0
- package/dist/lib/cjs/setup/async-operation-tracking-setup.cjs +140 -0
- package/dist/lib/cjs/setup/async-operation-tracking-setup.d.cts +47 -0
- package/dist/lib/cjs/setup/async-operation-tracking-vitest-setup.cjs +115 -0
- package/dist/lib/cjs/setup/async-operation-tracking-vitest-setup.d.cts +10 -0
- package/dist/lib/cjs/strict-proxy.cjs +1 -1
- package/dist/lib/cjs/strict-proxy.d.cts +4 -2
- package/dist/lib/esm/async.d.mts +21 -0
- package/dist/lib/esm/async.mjs +33 -4
- package/dist/lib/esm/function.d.mts +10 -0
- package/dist/lib/esm/function.mjs +8 -1
- package/dist/lib/esm/library.mjs +1 -1
- package/dist/lib/esm/object-utils.d.mts +3 -2
- package/dist/lib/esm/object-utils.mjs +1 -1
- package/dist/lib/esm/obsidian/components/monkey-around-component.d.mts +95 -14
- package/dist/lib/esm/obsidian/components/monkey-around-component.mjs +26 -4
- package/dist/lib/esm/obsidian/components/rename-delete-handler-component.d.mts +0 -1
- package/dist/lib/esm/obsidian/components/rename-delete-handler-component.mjs +118 -99
- package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.mjs +21 -17
- package/dist/lib/esm/obsidian/dataview.d.mts +4 -3
- package/dist/lib/esm/obsidian/dataview.mjs +1 -1
- package/dist/lib/esm/obsidian/file-change.d.mts +9 -18
- package/dist/lib/esm/obsidian/file-change.mjs +1 -1
- package/dist/lib/esm/obsidian/markdown.mjs +24 -15
- package/dist/lib/esm/script-utils/fs.d.mts +16 -12
- package/dist/lib/esm/script-utils/fs.mjs +1 -1
- package/dist/lib/esm/script-utils/linters/eslint-config.mjs +2 -1
- package/dist/lib/esm/script-utils/linters/eslint-no-restricted-syntax.mjs +5 -21
- package/dist/lib/esm/script-utils/linters/eslint-rules/index.d.mts +1 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-unused-params-members.d.mts +35 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-unused-params-members.mjs +206 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +3 -1
- package/dist/lib/esm/setup/async-operation-tracking-jest-setup.d.mts +12 -0
- package/dist/lib/esm/setup/async-operation-tracking-jest-setup.mjs +33 -0
- package/dist/lib/esm/setup/async-operation-tracking-setup.d.mts +47 -0
- package/dist/lib/esm/setup/async-operation-tracking-setup.mjs +35 -0
- package/dist/lib/esm/setup/async-operation-tracking-vitest-setup.d.mts +10 -0
- package/dist/lib/esm/setup/async-operation-tracking-vitest-setup.mjs +33 -0
- package/dist/lib/esm/strict-proxy.d.mts +4 -2
- package/dist/lib/esm/strict-proxy.mjs +1 -1
- package/package.json +17 -6
- package/script-utils/linters/eslint-rules/no-unused-params-members/package.json +6 -0
- package/setup/async-operation-tracking-jest-setup/package.json +6 -0
- package/setup/async-operation-tracking-setup/package.json +6 -0
- package/setup/async-operation-tracking-vitest-setup/package.json +6 -0
|
@@ -10,7 +10,16 @@ import type { Dirent, ObjectEncodingOptions, PathLike } from 'node:fs';
|
|
|
10
10
|
*
|
|
11
11
|
* `directory` is used instead of `folder` to preserve compatibility with `node:fs` module.
|
|
12
12
|
*/
|
|
13
|
-
export type BufferResultOptions = 'buffer' |
|
|
13
|
+
export type BufferResultOptions = 'buffer' | BufferResultObjectOptions;
|
|
14
|
+
/**
|
|
15
|
+
* Options for controlling the format of the result when returning Dirent objects.
|
|
16
|
+
*/
|
|
17
|
+
export type DirentResultOptions = DirentResultBaseOptions & ObjectEncodingOptions;
|
|
18
|
+
/**
|
|
19
|
+
* Options for controlling the format of the result when returning strings.
|
|
20
|
+
*/
|
|
21
|
+
export type StringResultOptions = ObjectEncodingOptions & StringResultBaseOptions | undefined;
|
|
22
|
+
interface BufferResultObjectOptions {
|
|
14
23
|
/**
|
|
15
24
|
* Should be set to "buffer" to return buffers.
|
|
16
25
|
*/
|
|
@@ -23,11 +32,8 @@ export type BufferResultOptions = 'buffer' | {
|
|
|
23
32
|
* Should be set to `false` to return buffers.
|
|
24
33
|
*/
|
|
25
34
|
readonly withFileTypes?: false;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
* Options for controlling the format of the result when returning Dirent objects.
|
|
29
|
-
*/
|
|
30
|
-
export type DirentResultOptions = {
|
|
35
|
+
}
|
|
36
|
+
interface DirentResultBaseOptions {
|
|
31
37
|
/**
|
|
32
38
|
* Whether to include subdirectories when reading the directory. If not provided, defaults to `false`.
|
|
33
39
|
*/
|
|
@@ -36,11 +42,8 @@ export type DirentResultOptions = {
|
|
|
36
42
|
* Should be set to `true` to return Dirent objects.
|
|
37
43
|
*/
|
|
38
44
|
readonly withFileTypes: true;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
* Options for controlling the format of the result when returning strings.
|
|
42
|
-
*/
|
|
43
|
-
export type StringResultOptions = {
|
|
45
|
+
}
|
|
46
|
+
interface StringResultBaseOptions {
|
|
44
47
|
/**
|
|
45
48
|
* Whether to include subdirectories when reading the directory. If not provided, defaults to `false`.
|
|
46
49
|
*/
|
|
@@ -49,7 +52,7 @@ export type StringResultOptions = {
|
|
|
49
52
|
* Should be set to `false` to return strings.
|
|
50
53
|
*/
|
|
51
54
|
readonly withFileTypes?: false;
|
|
52
|
-
}
|
|
55
|
+
}
|
|
53
56
|
/**
|
|
54
57
|
* Reads the contents of a directory and returns an array of strings with POSIX paths.
|
|
55
58
|
*
|
|
@@ -74,3 +77,4 @@ export declare function readdirPosix(path: PathLike, options: BufferResultOption
|
|
|
74
77
|
* @returns A {@link Promise} that resolves with an array of POSIX-formatted Dirent objects.
|
|
75
78
|
*/
|
|
76
79
|
export declare function readdirPosix(path: PathLike, options: DirentResultOptions): Promise<Dirent[]>;
|
|
80
|
+
export {};
|
|
@@ -74,4 +74,4 @@ function isStringResultOptions(options) {
|
|
|
74
74
|
export {
|
|
75
75
|
readdirPosix
|
|
76
76
|
};
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9mcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBmaWxlIHN5c3RlbSBvcGVyYXRpb25zLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgRGlyZW50LFxuICBPYmplY3RFbmNvZGluZ09wdGlvbnMsXG4gIFBhdGhMaWtlXG59IGZyb20gJ25vZGU6ZnMnO1xuXG5pbXBvcnQgeyByZWFkZGlyIH0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5cbmltcG9ydCB7XG4gIHRvUG9zaXhCdWZmZXIsXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgYXNzZXJ0Tm9uTnVsbGFibGUgfSBmcm9tICcuLi90eXBlLWd1YXJkcy50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29udHJvbGxpbmcgdGhlIGZvcm1hdCBvZiB0aGUgcmVzdWx0IHdoZW4gcmV0dXJuaW5nIGJ1ZmZlcnMuXG4gKlxuICogYGRpcmVjdG9yeWAgaXMgdXNlZCBpbnN0ZWFkIG9mIGBmb2xkZXJgIHRvIHByZXNlcnZlIGNvbXBhdGliaWxpdHkgd2l0aCBgbm9kZTpmc2AgbW9kdWxlLlxuICovXG5leHBvcnQgdHlwZSBCdWZmZXJSZXN1bHRPcHRpb25zID0gJ2J1ZmZlcicgfCBCdWZmZXJSZXN1bHRPYmplY3RPcHRpb25zO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNvbnRyb2xsaW5nIHRoZSBmb3JtYXQgb2YgdGhlIHJlc3VsdCB3aGVuIHJldHVybmluZyBEaXJlbnQgb2JqZWN0cy5cbiAqL1xuZXhwb3J0IHR5cGUgRGlyZW50UmVzdWx0T3B0aW9ucyA9IERpcmVudFJlc3VsdEJhc2VPcHRpb25zICYgT2JqZWN0RW5jb2RpbmdPcHRpb25zO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNvbnRyb2xsaW5nIHRoZSBmb3JtYXQgb2YgdGhlIHJlc3VsdCB3aGVuIHJldHVybmluZyBzdHJpbmdzLlxuICovXG5leHBvcnQgdHlwZSBTdHJpbmdSZXN1bHRPcHRpb25zID1cbiAgfCBPYmplY3RFbmNvZGluZ09wdGlvbnMgJiBTdHJpbmdSZXN1bHRCYXNlT3B0aW9uc1xuICB8IHVuZGVmaW5lZDtcblxuaW50ZXJmYWNlIEJ1ZmZlclJlc3VsdE9iamVjdE9wdGlvbnMge1xuICAvKipcbiAgICogU2hvdWxkIGJlIHNldCB0byBcImJ1ZmZlclwiIHRvIHJldHVybiBidWZmZXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jb2Rpbmc6ICdidWZmZXInO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgc3ViZGlyZWN0b3JpZXMgd2hlbiByZWFkaW5nIHRoZSBkaXJlY3RvcnkuIElmIG5vdCBwcm92aWRlZCwgZGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgICovXG4gIHJlYWRvbmx5IHJlY3Vyc2l2ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNob3VsZCBiZSBzZXQgdG8gYGZhbHNlYCB0byByZXR1cm4gYnVmZmVycy5cbiAgICovXG4gIHJlYWRvbmx5IHdpdGhGaWxlVHlwZXM/OiBmYWxzZTtcbn1cblxuLyoqXG4gKiBDb21tb24gb3B0aW9ucyBmb3IgY29udHJvbGxpbmcgdGhlIGZvcm1hdCBvZiB0aGUgcmVzdWx0LlxuICovXG5pbnRlcmZhY2UgQ29tbW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBFbmNvZGluZyB0byB1c2Ugd2hlbiByZXR1cm5pbmcgc3RyaW5ncy5cbiAgICovXG4gIHJlYWRvbmx5IGVuY29kaW5nPzogJ2J1ZmZlcicgfCBOb2RlSlMuQnVmZmVyRW5jb2Rpbmc7XG5cbiAgLyoqXG4gICAqIFNldCBgdHJ1ZWAgdG8gcmV0dXJuIERpcmVudCBvYmplY3RzIG9yIGBmYWxzZWAgdG8gcmV0dXJuIHN0cmluZ3Mgb3IgYnVmZmVycy5cbiAgICovXG4gIHJlYWRvbmx5IHdpdGhGaWxlVHlwZXM/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgRGlyZW50UmVzdWx0QmFzZU9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHN1YmRpcmVjdG9yaWVzIHdoZW4gcmVhZGluZyB0aGUgZGlyZWN0b3J5LiBJZiBub3QgcHJvdmlkZWQsIGRlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICByZWFkb25seSByZWN1cnNpdmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgYmUgc2V0IHRvIGB0cnVlYCB0byByZXR1cm4gRGlyZW50IG9iamVjdHMuXG4gICAqL1xuICByZWFkb25seSB3aXRoRmlsZVR5cGVzOiB0cnVlO1xufVxuXG5pbnRlcmZhY2UgU3RyaW5nUmVzdWx0QmFzZU9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHN1YmRpcmVjdG9yaWVzIHdoZW4gcmVhZGluZyB0aGUgZGlyZWN0b3J5LiBJZiBub3QgcHJvdmlkZWQsIGRlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICByZWFkb25seSByZWN1cnNpdmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgYmUgc2V0IHRvIGBmYWxzZWAgdG8gcmV0dXJuIHN0cmluZ3MuXG4gICAqL1xuICByZWFkb25seSB3aXRoRmlsZVR5cGVzPzogZmFsc2U7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGNvbnRlbnRzIG9mIGEgZGlyZWN0b3J5IGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCBQT1NJWCBwYXRocy5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBkaXJlY3RvcnkuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbnMgdG8gY29udHJvbCB0aGUgZm9ybWF0IG9mIHRoZSByZXN1bHQuIElmIG5vdCBwcm92aWRlZCwgcmV0dXJucyBzdHJpbmdzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIGFuIGFycmF5IG9mIFBPU0lYLWZvcm1hdHRlZCBmaWxlIHBhdGhzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZGRpclBvc2l4KHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zPzogU3RyaW5nUmVzdWx0T3B0aW9ucyk6IFByb21pc2U8c3RyaW5nW10+O1xuLyoqXG4gKiBSZWFkcyB0aGUgY29udGVudHMgb2YgYSBkaXJlY3RvcnkgYW5kIHJldHVybnMgYW4gYXJyYXkgb2YgYnVmZmVycyB3aXRoIFBPU0lYIHBhdGhzLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyB0byBjb250cm9sIHRoZSBmb3JtYXQgb2YgdGhlIHJlc3VsdC4gU3BlY2lmeSBcImJ1ZmZlclwiIHRvIHJldHVybiBidWZmZXJzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIGFuIGFycmF5IG9mIFBPU0lYLWZvcm1hdHRlZCBidWZmZXJzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZGRpclBvc2l4KHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zOiBCdWZmZXJSZXN1bHRPcHRpb25zKTogUHJvbWlzZTxCdWZmZXJbXT47XG4vKipcbiAqIFJlYWRzIHRoZSBjb250ZW50cyBvZiBhIGRpcmVjdG9yeSBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiBEaXJlbnQgb2JqZWN0cyB3aXRoIFBPU0lYIHBhdGhzLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyB0byBjb250cm9sIHRoZSBmb3JtYXQgb2YgdGhlIHJlc3VsdC4gU3BlY2lmeSBgd2l0aEZpbGVUeXBlczogdHJ1ZWAgdG8gcmV0dXJuIERpcmVudCBvYmplY3RzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIGFuIGFycmF5IG9mIFBPU0lYLWZvcm1hdHRlZCBEaXJlbnQgb2JqZWN0cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRkaXJQb3NpeChwYXRoOiBQYXRoTGlrZSwgb3B0aW9uczogRGlyZW50UmVzdWx0T3B0aW9ucyk6IFByb21pc2U8RGlyZW50W10+O1xuLyoqXG4gKiBSZWFkcyB0aGUgY29udGVudHMgb2YgYSBkaXJlY3RvcnkgYW5kIGNvbnZlcnRzIGZpbGUgcGF0aHMgb3IgYnVmZmVyIHJlc3VsdHMgdG8gUE9TSVggZm9ybWF0LlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyB0byBjb250cm9sIHRoZSBmb3JtYXQgb2YgdGhlIHJlc3VsdC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCBhbiBhcnJheSBvZiBQT1NJWC1mb3JtYXR0ZWQgZmlsZSBwYXRocywgYnVmZmVycywgb3IgRGlyZW50IG9iamVjdHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkZGlyUG9zaXgoXG4gIHBhdGg6IFBhdGhMaWtlLFxuICBvcHRpb25zOiBCdWZmZXJSZXN1bHRPcHRpb25zIHwgRGlyZW50UmVzdWx0T3B0aW9ucyB8IFN0cmluZ1Jlc3VsdE9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxCdWZmZXJbXSB8IERpcmVudFtdIHwgc3RyaW5nW10+IHtcbiAgaWYgKGlzU3RyaW5nUmVzdWx0T3B0aW9ucyhvcHRpb25zKSkge1xuICAgIGNvbnN0IHBhdGhzID0gYXdhaXQgcmVhZGRpcihwYXRoLCBvcHRpb25zKTtcbiAgICByZXR1cm4gcGF0aHMubWFwKHRvUG9zaXhQYXRoKTtcbiAgfVxuXG4gIGlmIChpc0J1ZmZlclJlc3VsdE9wdGlvbnMob3B0aW9ucykpIHtcbiAgICBjb25zdCBidWZmZXJzID0gYXdhaXQgcmVhZGRpcihwYXRoLCBvcHRpb25zKTtcbiAgICByZXR1cm4gYnVmZmVycy5tYXAodG9Qb3NpeEJ1ZmZlcik7XG4gIH1cblxuICBjb25zdCBkaXJlbnRzID0gYXdhaXQgcmVhZGRpcihwYXRoLCBvcHRpb25zKTtcbiAgZm9yIChjb25zdCBkaXJlbnQgb2YgZGlyZW50cykge1xuICAgIGRpcmVudC5uYW1lID0gdG9Qb3NpeFBhdGgoZGlyZW50Lm5hbWUpO1xuICAgIGRpcmVudC5wYXJlbnRQYXRoID0gdG9Qb3NpeFBhdGgoZGlyZW50LnBhcmVudFBhdGgpO1xuICB9XG5cbiAgcmV0dXJuIGRpcmVudHM7XG59XG5cbi8qKlxuICogVHlwZSBndWFyZCB0byBjaGVjayBpZiB0aGUgb3B0aW9ucyBhcmUgZm9yIHJldHVybmluZyBidWZmZXJzLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG9wdGlvbnMgYXJlIGZvciByZXR1cm5pbmcgYnVmZmVycywgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzQnVmZmVyUmVzdWx0T3B0aW9ucyhvcHRpb25zOiBCdWZmZXJSZXN1bHRPcHRpb25zIHwgRGlyZW50UmVzdWx0T3B0aW9ucyB8IFN0cmluZ1Jlc3VsdE9wdGlvbnMpOiBvcHRpb25zIGlzIEJ1ZmZlclJlc3VsdE9wdGlvbnMge1xuICBhc3NlcnROb25OdWxsYWJsZShvcHRpb25zKTtcblxuICBpZiAob3B0aW9ucyA9PT0gJ2J1ZmZlcicpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IGNvbW1vbk9wdGlvbnMgPSBvcHRpb25zIGFzIENvbW1vbk9wdGlvbnM7XG5cbiAgaWYgKGNvbW1vbk9wdGlvbnMud2l0aEZpbGVUeXBlcyA9PT0gdHJ1ZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBEZWFkIGNvZGU6IGlzU3RyaW5nUmVzdWx0T3B0aW9ucyBhbHJlYWR5IGhhbmRsZXMgbm9uLWJ1ZmZlciBlbmNvZGluZyBiZWZvcmUgdGhpcyBpcyBjYWxsZWQuICovXG4gIGlmIChjb21tb25PcHRpb25zLmVuY29kaW5nICE9PSAnYnVmZmVyJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgdGhlIG9wdGlvbnMgYXJlIGZvciByZXR1cm5pbmcgc3RyaW5ncy5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBvcHRpb25zIGFyZSBmb3IgcmV0dXJuaW5nIHN0cmluZ3MsIG90aGVyd2lzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc1N0cmluZ1Jlc3VsdE9wdGlvbnMob3B0aW9uczogQnVmZmVyUmVzdWx0T3B0aW9ucyB8IERpcmVudFJlc3VsdE9wdGlvbnMgfCBTdHJpbmdSZXN1bHRPcHRpb25zKTogb3B0aW9ucyBpcyBTdHJpbmdSZXN1bHRPcHRpb25zIHtcbiAgYXNzZXJ0Tm9uTnVsbGFibGUob3B0aW9ucyk7XG5cbiAgaWYgKG9wdGlvbnMgPT09ICdidWZmZXInKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgY29tbW9uT3B0aW9ucyA9IG9wdGlvbnMgYXMgQ29tbW9uT3B0aW9ucztcblxuICBpZiAoY29tbW9uT3B0aW9ucy5lbmNvZGluZyA9PT0gJ2J1ZmZlcicpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoY29tbW9uT3B0aW9ucy53aXRoRmlsZVR5cGVzID09PSB0cnVlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVlBLFNBQVMsZUFBZTtBQUV4QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMseUJBQXlCO0FBNEdsQyxlQUFzQixhQUNwQixNQUNBLFVBQTJFLENBQUMsR0FDbkM7QUFDekMsTUFBSSxzQkFBc0IsT0FBTyxHQUFHO0FBQ2xDLFVBQU0sUUFBUSxNQUFNLFFBQVEsTUFBTSxPQUFPO0FBQ3pDLFdBQU8sTUFBTSxJQUFJLFdBQVc7QUFBQSxFQUM5QjtBQUVBLE1BQUksc0JBQXNCLE9BQU8sR0FBRztBQUNsQyxVQUFNLFVBQVUsTUFBTSxRQUFRLE1BQU0sT0FBTztBQUMzQyxXQUFPLFFBQVEsSUFBSSxhQUFhO0FBQUEsRUFDbEM7QUFFQSxRQUFNLFVBQVUsTUFBTSxRQUFRLE1BQU0sT0FBTztBQUMzQyxhQUFXLFVBQVUsU0FBUztBQUM1QixXQUFPLE9BQU8sWUFBWSxPQUFPLElBQUk7QUFDckMsV0FBTyxhQUFhLFlBQVksT0FBTyxVQUFVO0FBQUEsRUFDbkQ7QUFFQSxTQUFPO0FBQ1Q7QUFRQSxTQUFTLHNCQUFzQixTQUEwRztBQUN2SSxvQkFBa0IsT0FBTztBQUV6QixNQUFJLFlBQVksVUFBVTtBQUN4QixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sZ0JBQWdCO0FBRXRCLE1BQUksY0FBYyxrQkFBa0IsTUFBTTtBQUN4QyxXQUFPO0FBQUEsRUFDVDtBQUdBLE1BQUksY0FBYyxhQUFhLFVBQVU7QUFDdkMsV0FBTztBQUFBLEVBQ1Q7QUFHQSxTQUFPO0FBQ1Q7QUFRQSxTQUFTLHNCQUFzQixTQUEwRztBQUN2SSxvQkFBa0IsT0FBTztBQUV6QixNQUFJLFlBQVksVUFBVTtBQUN4QixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sZ0JBQWdCO0FBRXRCLE1BQUksY0FBYyxhQUFhLFVBQVU7QUFDdkMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLGNBQWMsa0JBQWtCLE1BQU07QUFDeEMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -395,6 +395,7 @@ function getObsidianDevUtilsPluginConfigs(context) {
|
|
|
395
395
|
},
|
|
396
396
|
rules: {
|
|
397
397
|
"obsidian-dev-utils/no-async-callback-to-unsafe-return": "error",
|
|
398
|
+
"obsidian-dev-utils/no-unused-params-members": "error",
|
|
398
399
|
"obsidian-dev-utils/no-used-underscore-variables": "error",
|
|
399
400
|
"obsidian-dev-utils/params-options-name-match": "error",
|
|
400
401
|
"obsidian-dev-utils/prefer-noop-async": "error",
|
|
@@ -581,4 +582,4 @@ export {
|
|
|
581
582
|
EslintConfigContext,
|
|
582
583
|
defineEslintConfigs
|
|
583
584
|
};
|
|
584
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgY29uZmlndXJhdGlvbiBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cyB3aXRoIHZhcmlvdXMgcGx1Z2lucy5cbiAqXG4gKiBUaGlzIG1vZHVsZSBleHBvcnRzIEVTTGludCBjb25maWd1cmF0aW9ucyBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cywgaW50ZWdyYXRpbmcgbXVsdGlwbGUgRVNMaW50IHBsdWdpbnNcbiAqIHN1Y2ggYXMgYEB0eXBlc2NyaXB0LWVzbGludC9wYXJzZXJgLCBgQHR5cGVzY3JpcHQtZXNsaW50L2VzbGludC1wbHVnaW5gLFxuICogYGVzbGludC1wbHVnaW4tbW9kdWxlcy1uZXdsaW5lc2AsIGBAc3R5bGlzdGljL2VzbGludC1wbHVnaW5gLlxuICogSXQgc2V0cyB1cCBwYXJzZXJzLCBwbHVnaW5zLCBhbmQgcnVsZXMgZm9yIG1haW50YWluaW5nIGNvZGUgcXVhbGl0eSBhbmQgY29uc2lzdGVuY3kuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlY2xhcmF0aXZlIEVTTGludCBydWxlL3BsdWdpbiBjb25maWd1cmF0aW9uOyBjb3JyZWN0bmVzcyBpcyB2ZXJpZmllZCBieSBydW5uaW5nIEVTTGludCwgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSAnZXNsaW50JztcblxuLyogZXNsaW50LWRpc2FibGUgbm8tbWFnaWMtbnVtYmVycyAtLSBXZSBkaXNhYmxlZCBtYWdpYyBudW1iZXJzIGJlY2F1c2UgdGhleSBhcmUgdXNlZCBhbGwgb3ZlciB0aGUgY29uZmlncy4gKi9cbmltcG9ydCBjb21tZW50c0NvbmZpZ3MgZnJvbSAnQGVzbGludC1jb21tdW5pdHkvZXNsaW50LXBsdWdpbi1lc2xpbnQtY29tbWVudHMvY29uZmlncyc7XG5pbXBvcnQgeyBpbmNsdWRlSWdub3JlRmlsZSB9IGZyb20gJ0Blc2xpbnQvY29uZmlnLWhlbHBlcnMnO1xuaW1wb3J0IGVzbGludCBmcm9tICdAZXNsaW50L2pzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1yZW5hbWUtZGVmYXVsdCAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgcGx1Z2luYCBpcyB0b28gY29uZnVzaW5nLlxuaW1wb3J0IHN0eWxpc3RpYyBmcm9tICdAc3R5bGlzdGljL2VzbGludC1wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlVHlwZVNjcmlwdEltcG9ydFJlc29sdmVyIH0gZnJvbSAnZXNsaW50LWltcG9ydC1yZXNvbHZlci10eXBlc2NyaXB0JztcbmltcG9ydCB7IGZsYXRDb25maWdzIGFzIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncyB9IGZyb20gJ2VzbGludC1wbHVnaW4taW1wb3J0LXgnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBfZGVmYXVsdGAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBub2RlUGx1Z2luIGZyb20gJ2VzbGludC1wbHVnaW4tbic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYHBsdWdpbmAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBvYnNpZGlhbm1kIGZyb20gJ2VzbGludC1wbHVnaW4tb2JzaWRpYW5tZCc7XG5pbXBvcnQgeyBjb25maWdzIGFzIHBlcmZlY3Rpb25pc3RDb25maWdzIH0gZnJvbSAnZXNsaW50LXBsdWdpbi1wZXJmZWN0aW9uaXN0JztcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gJ2VzbGludC9jb25maWcnO1xuaW1wb3J0IGdsb2JhbHMgZnJvbSAnZ2xvYmFscyc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuaW1wb3J0IHRzZXNsaW50IGZyb20gJ3R5cGVzY3JpcHQtZXNsaW50JztcblxuaW1wb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuLi8uLi9vYnNpZGlhbi9wbHVnaW4vb2JzaWRpYW4tcGx1Z2luLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJy4uLy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgZ2V0Um9vdEZvbGRlciB9IGZyb20gJy4uL3Jvb3QudHMnO1xuaW1wb3J0IHsgbm9SZXN0cmljdGVkU3ludGF4UnVsZUVudHJpZXMgfSBmcm9tICcuL2VzbGludC1uby1yZXN0cmljdGVkLXN5bnRheC50cyc7XG5pbXBvcnQgeyBvYnNpZGlhbkRldlV0aWxzUGx1Z2luIH0gZnJvbSAnLi9lc2xpbnQtcnVsZXMvb2JzaWRpYW4tZGV2LXV0aWxzLXBsdWdpbi50cyc7XG5cbi8qKlxuICogVGhlIHBhcmFtZXRlcnMgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWZpbmVFc2xpbnRDb25maWdzUGFyYW1zIHtcbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCBidWlsZHMgY3VzdG9tIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRleHQgLSBUaGUgRVNMaW50IGNvbmZpZ3VyYXRpb24gY29udGV4dC5cbiAgICogQHJldHVybnMgVGhlIGN1c3RvbSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gICAqL1xuICBjdXN0b21Db25maWdzPyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRoYXQgZWRpdHMgdGhlIEVTTGludCBjb25maWd1cmF0aW9uIGNvbnRleHQuXG4gICAqXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIEVTTGludCBjb25maWd1cmF0aW9uIGNvbnRleHQuXG4gICAqL1xuICBlZGl0Q29udGV4dD8oY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IHZvaWQ7XG59XG5cbi8qKlxuICogVGhlIGNvbnRleHQgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEVzbGludENvbmZpZ0NvbnRleHQge1xuICAvKipcbiAgICogVGhlIHJvb3QgY29uZmlndXJhdGlvbiBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb290Q29uZmlnRmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBzY3JpcHQgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2NyaXB0RmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlRmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXN0IGZpbGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRlc3RGaWxlczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogVGhlIGFsbCBmaWxlcy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGFsbCBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyBhbGxGaWxlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnRlc3RGaWxlcywgLi4udGhpcy5zY3JpcHRGaWxlcywgLi4udGhpcy5yb290Q29uZmlnRmlsZXMsIC4uLnRoaXMuc291cmNlRmlsZXNdO1xuICB9XG59XG5cbi8qKlxuICogQnVpbGQgRVNMaW50IGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gYnVpbGRzIEVTTGludCBjb25maWd1cmF0aW9ucyBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cywgaW50ZWdyYXRpbmcgbXVsdGlwbGUgRVNMaW50IHBsdWdpbnNcbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqIEByZXR1cm5zIFRoZSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVFc2xpbnRDb25maWdzKHBhcmFtczogRGVmaW5lRXNsaW50Q29uZmlnc1BhcmFtcyA9IHt9KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgY29uc3QgY29udGV4dCA9IG5ldyBFc2xpbnRDb25maWdDb250ZXh0KCk7XG4gIGNvbnRleHQucm9vdENvbmZpZ0ZpbGVzLnB1c2goXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ29tbWl0bGludENvbmZpZ1RzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ010cyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5WaXRlc3RDb25maWdUc1xuICApO1xuICBjb250ZXh0LnNjcmlwdEZpbGVzLnB1c2goXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TY3JpcHRzLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcylcbiAgKTtcbiAgY29udGV4dC5zb3VyY2VGaWxlcy5wdXNoKFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcyksXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TcmMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzeClcbiAgKTtcbiAgY29udGV4dC50ZXN0RmlsZXMucHVzaChcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlRlc3RzLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcyksXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Nb2NrcywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpLFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUZXN0VHMpXG4gICk7XG5cbiAgaWYgKHBhcmFtcy5lZGl0Q29udGV4dCkge1xuICAgIHBhcmFtcy5lZGl0Q29udGV4dChjb250ZXh0KTtcbiAgfVxuXG4gIGNvbnN0IGN1c3RvbUNvbmZpZ3MgPSBwYXJhbXMuY3VzdG9tQ29uZmlncz8uKGNvbnRleHQpID8/IFtdO1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcoXG4gICAgLi4uZ2V0R2l0SWdub3JlQ29uZmlncygpLFxuICAgIC8vIE9ic2lkaWFubWQgY29uZmlncyBydW4gZmlyc3Qgc28gb3VyIHN0cmljdGVyIHJ1bGVzIG92ZXJyaWRlIHRoZWlyIHJlbGF4ZWQgZGVmYXVsdHNcbiAgICAuLi5nZXRPYnNpZGlhbkxpbnRDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldEVzbGludENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0VHNlc2xpbnRDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldFN0eWxpc3RpY0NvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0SW1wb3J0WENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0UGVyZmVjdGlvbmlzdENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0RXNsaW50SW1wb3J0UmVzb2x2ZXJUeXBlc2NyaXB0Q29uZmlncygpLFxuICAgIC4uLmdldEVzbGludENvbW1lbnRzQ29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRPYnNpZGlhbkRldlV0aWxzUGx1Z2luQ29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXROb2RlQ29tcGF0Q29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5jdXN0b21Db25maWdzXG4gICk7XG59XG5cbmZ1bmN0aW9uIGdldEVzbGludENvbW1lbnRzQ29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyIC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGByZWNvbW1lbmRlZGAgaXMgdG9vIGNvbmZ1c2luZy5cbiAgICAgIGV4dGVuZHM6IFtjb21tZW50c0NvbmZpZ3MucmVjb21tZW5kZWRdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAZXNsaW50LWNvbW11bml0eS9lc2xpbnQtY29tbWVudHMvcmVxdWlyZS1kZXNjcmlwdGlvbic6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRFc2xpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbZXNsaW50LmNvbmZpZ3MucmVjb21tZW5kZWRdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdhY2Nlc3Nvci1wYWlycyc6ICdlcnJvcicsXG4gICAgICAgICdhcnJheS1jYWxsYmFjay1yZXR1cm4nOiAnZXJyb3InLFxuICAgICAgICAnY2FtZWxjYXNlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2NhcGl0YWxpemVkLWNvbW1lbnRzJzogWydlcnJvcicsICdhbHdheXMnLCB7IGJsb2NrOiB7IGlnbm9yZVBhdHRlcm46ICd2OCcgfSB9XSxcbiAgICAgICAgJ2NvbXBsZXhpdHknOiAnZXJyb3InLFxuICAgICAgICAnY29uc2lzdGVudC10aGlzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2N1cmx5JzogJ2Vycm9yJyxcbiAgICAgICAgJ2RlZmF1bHQtY2FzZSc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LWNhc2UtbGFzdCc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LXBhcmFtLWxhc3QnOiAnZXJyb3InLFxuICAgICAgICAnZXFlcWVxJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtbmFtZS1tYXRjaGluZyc6ICdlcnJvcicsXG4gICAgICAgICdmdW5jLW5hbWVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtc3R5bGUnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAnZGVjbGFyYXRpb24nLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93QXJyb3dGdW5jdGlvbnM6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnZ3JvdXBlZC1hY2Nlc3Nvci1wYWlycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdnZXRCZWZvcmVTZXQnXG4gICAgICAgIF0sXG4gICAgICAgICdndWFyZC1mb3ItaW4nOiAnZXJyb3InLFxuICAgICAgICAnbm8tYWxlcnQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tYXJyYXktY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tYml0d2lzZSc6ICdlcnJvcicsXG4gICAgICAgICduby1jYWxsZXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tY29uc29sZSc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93OiBbXG4gICAgICAgICAgICAgICd3YXJuJyxcbiAgICAgICAgICAgICAgJ2Vycm9yJ1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLWNvbnN0cnVjdG9yLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICduby1kaXYtcmVnZXgnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZWxzZS1yZXR1cm4nOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvd0Vsc2VJZjogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1lbXB0eS1mdW5jdGlvbic6ICdlcnJvcicsXG4gICAgICAgICduby1leHRlbmQtbmF0aXZlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWV4dHJhLWJpbmQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZXh0cmEtbGFiZWwnOiAnZXJyb3InLFxuICAgICAgICAnbm8taW1wbGljaXQtY29lcmNpb24nOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnISEnXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnbm8taW1wbGllZC1ldmFsJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWlubmVyLWRlY2xhcmF0aW9ucyc6ICdlcnJvcicsXG4gICAgICAgICduby1pdGVyYXRvcic6ICdlcnJvcicsXG4gICAgICAgICduby1sYWJlbC12YXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tbGFiZWxzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvbmUtYmxvY2tzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvbmVseS1pZic6ICdlcnJvcicsXG4gICAgICAgICduby1sb29wLWZ1bmMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tbWFnaWMtbnVtYmVycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRldGVjdE9iamVjdHM6IHRydWUsXG4gICAgICAgICAgICBlbmZvcmNlQ29uc3Q6IHRydWUsXG4gICAgICAgICAgICBpZ25vcmU6IFtcbiAgICAgICAgICAgICAgLTEsXG4gICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1tdWx0aS1hc3NpZ24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tbXVsdGktc3RyJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5lZ2F0ZWQtY29uZGl0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5lc3RlZC10ZXJuYXJ5JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5ldy1mdW5jJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5ldy13cmFwcGVycyc6ICdlcnJvcicsXG4gICAgICAgICduby1vYmplY3QtY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tb2N0YWwtZXNjYXBlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXByb21pc2UtZXhlY3V0b3ItcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXByb3RvJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXJlc3RyaWN0ZWQtc3ludGF4JzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgLi4ubm9SZXN0cmljdGVkU3ludGF4UnVsZUVudHJpZXNcbiAgICAgICAgXSxcbiAgICAgICAgJ25vLXJldHVybi1hc3NpZ24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2NyaXB0LXVybCc6ICdlcnJvcicsXG4gICAgICAgICduby1zZWxmLWNvbXBhcmUnOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2VxdWVuY2VzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXNoYWRvdyc6ICdlcnJvcicsXG4gICAgICAgICduby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmcnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdGhyb3ctbGl0ZXJhbCc6ICdlcnJvcicsXG4gICAgICAgICduby11bm1vZGlmaWVkLWxvb3AtY29uZGl0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVubmVlZGVkLXRlcm5hcnknOiAnZXJyb3InLFxuICAgICAgICAnbm8tdW5yZWFjaGFibGUtbG9vcCc6ICdlcnJvcicsXG4gICAgICAgICduby11bnVzZWQtZXhwcmVzc2lvbnMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1hc3NpZ25tZW50JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtY2FsbCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbXB1dGVkLWtleSc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbmNhdCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbnN0cnVjdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtcmVuYW1lJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXZhcic6ICdlcnJvcicsXG4gICAgICAgICduby12b2lkJzogJ2Vycm9yJyxcbiAgICAgICAgJ29iamVjdC1zaG9ydGhhbmQnOiAnZXJyb3InLFxuICAgICAgICAnb3BlcmF0b3ItYXNzaWdubWVudCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItYXJyb3ctY2FsbGJhY2snOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLWNvbnN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1leHBvbmVudGlhdGlvbi1vcGVyYXRvcic6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItbmFtZWQtY2FwdHVyZS1ncm91cCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItbnVtZXJpYy1saXRlcmFscyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItb2JqZWN0LWhhcy1vd24nOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW9iamVjdC1zcHJlYWQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXByb21pc2UtcmVqZWN0LWVycm9ycyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItcmVnZXgtbGl0ZXJhbHMnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXJlc3QtcGFyYW1zJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1zcHJlYWQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXRlbXBsYXRlJzogJ2Vycm9yJyxcbiAgICAgICAgJ3JhZGl4JzogJ2Vycm9yJyxcbiAgICAgICAgJ3JlcXVpcmUtYXRvbWljLXVwZGF0ZXMnOiAnZXJyb3InLFxuICAgICAgICAncmVxdWlyZS1hd2FpdCc6ICdlcnJvcicsXG4gICAgICAgICdzeW1ib2wtZGVzY3JpcHRpb24nOiAnZXJyb3InLFxuICAgICAgICAndW5pY29kZS1ib20nOiAnZXJyb3InLFxuICAgICAgICAndmFycy1vbi10b3AnOiAnZXJyb3InLFxuICAgICAgICAneW9kYSc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnRlc3RGaWxlcyxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICduby1tYWdpYy1udW1iZXJzJzogJ29mZidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRFc2xpbnRJbXBvcnRSZXNvbHZlclR5cGVzY3JpcHRDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICdpbXBvcnQteC9yZXNvbHZlci1uZXh0JzogW1xuICAgICAgICAgIGNyZWF0ZVR5cGVTY3JpcHRJbXBvcnRSZXNvbHZlcih7XG4gICAgICAgICAgICBhbHdheXNUcnlUeXBlczogdHJ1ZVxuICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRHaXRJZ25vcmVDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIGNvbnN0IGdpdGlnbm9yZVBhdGggPSBqb2luKGdldFJvb3RGb2xkZXIoKSA/PyAnJywgJy5naXRpZ25vcmUnKTtcbiAgaWYgKCFleGlzdHNTeW5jKGdpdGlnbm9yZVBhdGgpKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiBbaW5jbHVkZUlnbm9yZUZpbGUoZ2l0aWdub3JlUGF0aCldO1xufVxuXG5mdW5jdGlvbiBnZXRJbXBvcnRYQ29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW1xuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MucmVjb21tZW5kZWQsXG4gICAgICAgIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncy50eXBlc2NyaXB0LFxuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MuZXJyb3JzLFxuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3Mud2FybmluZ3NcbiAgICAgIF0sXG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ2ltcG9ydC14L2NvbnNpc3RlbnQtdHlwZS1zcGVjaWZpZXItc3R5bGUnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvZXh0ZW5zaW9ucyc6IFsnZXJyb3InLCAnaWdub3JlUGFja2FnZXMnXSxcbiAgICAgICAgJ2ltcG9ydC14L2ZpcnN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L2ltcG9ydHMtZmlyc3QnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbmV3bGluZS1hZnRlci1pbXBvcnQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tYWJzb2x1dGUtcGF0aCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1hbWQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tYW5vbnltb3VzLWRlZmF1bHQtZXhwb3J0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWNvbW1vbmpzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWN5Y2xlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWRlZmF1bHQtZXhwb3J0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWRlcHJlY2F0ZWQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZHVwbGljYXRlcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1keW5hbWljLXJlcXVpcmUnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZW1wdHktbmFtZWQtYmxvY2tzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWltcG9ydC1tb2R1bGUtZXhwb3J0cyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1tdXRhYmxlLWV4cG9ydHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbmFtZWQtZGVmYXVsdCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1uYW1lc3BhY2UnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbm9kZWpzLW1vZHVsZXMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tcmVsYXRpdmUtcGFja2FnZXMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tcmVzdHJpY3RlZC1wYXRocyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1zZWxmLWltcG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby11bmFzc2lnbmVkLWltcG9ydCc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93OiBbXG4gICAgICAgICAgICAgICcqKi8qLmNzcycsXG4gICAgICAgICAgICAgICcqKi8qLnNhc3MnLFxuICAgICAgICAgICAgICAnKiovKi5zY3NzJ1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ2ltcG9ydC14L25vLXVudXNlZC1tb2R1bGVzJzogJ29mZicsXG4gICAgICAgICdpbXBvcnQteC9uby11c2VsZXNzLXBhdGgtc2VnbWVudHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8td2VicGFjay1sb2FkZXItc3ludGF4JzogJ2Vycm9yJ1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IGNvbnRleHQuc2NyaXB0RmlsZXMsXG4gICAgICBydWxlczoge1xuICAgICAgICAnaW1wb3J0LXgvbm8tbm9kZWpzLW1vZHVsZXMnOiAnb2ZmJ1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IFtcbiAgICAgICAgLi4uY29udGV4dC5yb290Q29uZmlnRmlsZXMsXG4gICAgICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYWluVHMpXG4gICAgICBdLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ2ltcG9ydC14L25vLWRlZmF1bHQtZXhwb3J0JzogJ29mZidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXROb2RlQ29tcGF0Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgLy8gVGhlIG1pbmltdW0gT2JzaWRpYW4gaW5zdGFsbGVyIHRoYXQgc3RpbGwgcmVjZWl2ZXMgYXBwIHVwZGF0ZXMgKDAuMTQuNSkgc2hpcHMgRWxlY3Ryb24gMTguMC4zLCB3aGljaCBydW5zIE5vZGUgMTYuMTMuMi5cbiAgLy8gU2hpcHBlZCBzb3VyY2UgbXVzdCB0aGVyZWZvcmUgYXZvaWQgTm9kZS9FUyBydW50aW1lIGJ1aWx0aW5zIHVuYXZhaWxhYmxlIGluIHRoYXQgdmVyc2lvbi4gVGVzdHMgYW5kIHNjcmlwdHMgYXJlIGRldi1vbmx5IGFuZCBleGVtcHQuXG4gIGNvbnN0IG1pbmltdW1Ob2RlVmVyc2lvbiA9ICc+PTE2LjEzLjInO1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnNvdXJjZUZpbGVzLFxuICAgICAgaWdub3JlczogW1xuICAgICAgICAuLi5jb250ZXh0LnRlc3RGaWxlcyxcbiAgICAgICAgLy8gRGV2LW9ubHkgdG9vbGluZyAoYnVpbGQsIGxpbnQsIHZlcnNpb24pIHVuZGVyIGBzcmMvc2NyaXB0LXV0aWxzLyoqYCBydW5zIHZpYSBgaml0aWAgaW4gdGhlIGNvbnN1bWVyJ3MgTm9kZSBlbnZpcm9ubWVudCB3aGVuIGJ1aWxkaW5nIGEgcGx1Z2luIGFuZCBuZXZlciBzaGlwcyBpbnRvIHRoZSBPYnNpZGlhbiBydW50aW1lLCBzbyB0aGUgTm9kZS0xNiBmbG9vciBkb2VzIG5vdCBhcHBseSB0byBpdC5cbiAgICAgICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TY3JpcHRVdGlscywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpXG4gICAgICBdLFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICBuOiBub2RlUGx1Z2luXG4gICAgICB9LFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ24vbm8tdW5zdXBwb3J0ZWQtZmVhdHVyZXMvZXMtYnVpbHRpbnMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2ZXJzaW9uOiBtaW5pbXVtTm9kZVZlcnNpb25cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyBgQmxvYmAgYW5kIGBGaWxlYCBhcmUgRE9NIHdlYiBnbG9iYWxzIGFsd2F5cyBwcmVzZW50IGluIHRoZSBPYnNpZGlhbi9FbGVjdHJvbiByZW5kZXJlciAoZXZlcnkgc3VwcG9ydGVkIENocm9taXVtKSwgYnV0IHRoZSBydWxlIGFsc28ga25vd3MgdGhlbSBhcyBOb2RlJ3MgZXhwZXJpbWVudGFsIGJ1aWx0aW5zIGFuZCBjYW5ub3QgdGVsbCB3aGljaCBpcyBtZWFudC4gSWdub3JlIHRoZW0gZ2xvYmFsbHk7IGdlbnVpbmVseSBuZXdlciBBUElzIChlLmcuIGBBYm9ydFNpZ25hbC5hbnlgKSBzdGF5IGZsYWdnZWQuXG4gICAgICAgICAgICBpZ25vcmVzOiBbXG4gICAgICAgICAgICAgICdCbG9iJyxcbiAgICAgICAgICAgICAgJ0ZpbGUnXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdmVyc2lvbjogbWluaW11bU5vZGVWZXJzaW9uXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0T2JzaWRpYW5EZXZVdGlsc1BsdWdpbkNvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKCksXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMnOiBvYnNpZGlhbkRldlV0aWxzUGx1Z2luXG4gICAgICB9LFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9uby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9uby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9wcmVmZXItbm9vcC1hc3luYyc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvcmVhZG9ubHktcGFyYW1zLW9wdGlvbnMtcmVzdWx0LW1lbWJlcnMnOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXV0aWxzL3JlcXVpcmUtY29tcG9uZW50LXN1ZmZpeCc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvcmVxdWlyZS1tZXRob2QtdGVtcGxhdGUnOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXV0aWxzL3JlcXVpcmUtc3VwZXItY2FsbCc6ICdvZmYnXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0T2JzaWRpYW5MaW50Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgY29uc3Qgb2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MgPSBvYnNpZGlhbm1kLmNvbmZpZ3MucmVjb21tZW5kZWQ7XG5cbiAgY29uc3Qgc2NvcGVkT2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MgPSBvYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncy5tYXAoKGNvbmZpZykgPT4ge1xuICAgIGlmIChjb25maWcuZmlsZXM/LmluY2x1ZGVzKCdwYWNrYWdlLmpzb24nKSkge1xuICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgZmlsZXM6IGNvbnRleHQuc291cmNlRmlsZXNcbiAgICB9O1xuICB9KTtcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICAuLi5zY29wZWRPYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncyxcbiAgICB7XG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIG9ic2lkaWFubWRcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgICBnbG9iYWxzOiB7XG4gICAgICAgICAgLi4uZ2xvYmFscy5icm93c2VyLFxuICAgICAgICAgIC4uLmdsb2JhbHMubm9kZSxcbiAgICAgICAgICBhY3RpdmVEb2N1bWVudDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBhY3RpdmVXaW5kb3c6ICdyZWFkb25seScsXG4gICAgICAgICAgYWpheDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBhamF4UHJvbWlzZTogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVEaXY6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlRWw6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlRnJhZ21lbnQ6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlU3BhbjogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVTdmc6ICdyZWFkb25seScsXG4gICAgICAgICAgRG9tRWxlbWVudEluZm86ICdyZWFkb25seScsXG4gICAgICAgICAgZmlzaDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBmaXNoQWxsOiAncmVhZG9ubHknLFxuICAgICAgICAgIGlzQm9vbGVhbjogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBuZXh0RnJhbWU6ICdyZWFkb25seScsXG4gICAgICAgICAgTm9kZUpTOiAncmVhZG9ubHknLFxuICAgICAgICAgIHJlYWR5OiAncmVhZG9ubHknLFxuICAgICAgICAgIHNsZWVwOiAncmVhZG9ubHknXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRQZXJmZWN0aW9uaXN0Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbe1xuICAgIGV4dGVuZHM6IFtwZXJmZWN0aW9uaXN0Q29uZmlnc1sncmVjb21tZW5kZWQtYWxwaGFiZXRpY2FsJ11dLFxuICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKClcbiAgfV0pO1xufVxuXG5mdW5jdGlvbiBnZXRTdHlsaXN0aWNDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbXG4gICAgICAgIHN0eWxpc3RpYy5jb25maWdzLnJlY29tbWVuZGVkLFxuICAgICAgICBzdHlsaXN0aWMuY29uZmlncy5jdXN0b21pemUoe1xuICAgICAgICAgIGFycm93UGFyZW5zOiB0cnVlLFxuICAgICAgICAgIGJyYWNlU3R5bGU6ICcxdGJzJyxcbiAgICAgICAgICBjb21tYURhbmdsZTogJ25ldmVyJyxcbiAgICAgICAgICBzZW1pOiB0cnVlXG4gICAgICAgIH0pXG4gICAgICBdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAc3R5bGlzdGljL2dlbmVyYXRvci1zdGFyLXNwYWNpbmcnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvaW5kZW50JzogJ29mZicsXG4gICAgICAgICdAc3R5bGlzdGljL2luZGVudC1iaW5hcnktb3BzJzogJ29mZicsXG4gICAgICAgICdAc3R5bGlzdGljL2pzeC1vbmUtZXhwcmVzc2lvbi1wZXItbGluZSc6ICdvZmYnLFxuICAgICAgICAnQHN0eWxpc3RpYy9uby1leHRyYS1zZW1pJzogJ2Vycm9yJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvb2JqZWN0LWN1cmx5LW5ld2xpbmUnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBFeHBvcnREZWNsYXJhdGlvbjoge1xuICAgICAgICAgICAgICBtaW5Qcm9wZXJ0aWVzOiAyLFxuICAgICAgICAgICAgICBtdWx0aWxpbmU6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBJbXBvcnREZWNsYXJhdGlvbjoge1xuICAgICAgICAgICAgICBtaW5Qcm9wZXJ0aWVzOiAyLFxuICAgICAgICAgICAgICBtdWx0aWxpbmU6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdAc3R5bGlzdGljL29wZXJhdG9yLWxpbmVicmVhayc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdiZWZvcmUnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG92ZXJyaWRlczoge1xuICAgICAgICAgICAgICAnPSc6ICdhZnRlcidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdAc3R5bGlzdGljL3F1b3Rlcyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdzaW5nbGUnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93VGVtcGxhdGVMaXRlcmFsczogJ25ldmVyJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldFRzZXNsaW50Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXIgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuICAgICAgICAuLi50c2VzbGludC5jb25maWdzLnN0cmljdFR5cGVDaGVja2VkLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXIgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuICAgICAgICAuLi50c2VzbGludC5jb25maWdzLnN0eWxpc3RpY1R5cGVDaGVja2VkXG4gICAgICBdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgICBwYXJzZXJPcHRpb25zOiB7XG4gICAgICAgICAgZWNtYUZlYXR1cmVzOiB7XG4gICAgICAgICAgICBqc3g6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHByb2plY3RTZXJ2aWNlOiB0cnVlLFxuICAgICAgICAgIHRzY29uZmlnUm9vdERpcjogZ2V0Um9vdEZvbGRlcigpID8/ICcnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LWZ1bmN0aW9uLXJldHVybi10eXBlJzogJ2Vycm9yJyxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tZW1iZXItYWNjZXNzaWJpbGl0eSc6ICdlcnJvcicsXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbWV0aG9kLXNpZ25hdHVyZS1zdHlsZSc6IFsnZXJyb3InLCAnbWV0aG9kJ10sXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXMnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGNoZWNrVGhlbmFibGVzOiB0cnVlXG4gICAgICAgIH1dLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L25vLWludmFsaWQtdm9pZC10eXBlJzogWydlcnJvcicsIHtcbiAgICAgICAgICBhbGxvd0FzVGhpc1BhcmFtZXRlcjogdHJ1ZVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzJzogWydlcnJvcicsIHtcbiAgICAgICAgICBhbGxvd2VkTmFtZXM6IFtcbiAgICAgICAgICAgICd0aGF0J1xuICAgICAgICAgIF1cbiAgICAgICAgfV0sXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhcmdzOiAnYWxsJyxcbiAgICAgICAgICAgIGFyZ3NJZ25vcmVQYXR0ZXJuOiAnXl8nLFxuICAgICAgICAgICAgY2F1Z2h0RXJyb3JzOiAnYWxsJyxcbiAgICAgICAgICAgIGNhdWdodEVycm9yc0lnbm9yZVBhdHRlcm46ICdeXycsXG4gICAgICAgICAgICBkZXN0cnVjdHVyZWRBcnJheUlnbm9yZVBhdHRlcm46ICdeXycsXG4gICAgICAgICAgICBpZ25vcmVSZXN0U2libGluZ3M6IHRydWUsXG4gICAgICAgICAgICB2YXJzSWdub3JlUGF0dGVybjogJ15fJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItcmVhZG9ubHknOiAnZXJyb3InXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogY29udGV4dC50ZXN0RmlsZXMsXG4gICAgICBydWxlczoge1xuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L2RvdC1ub3RhdGlvbic6IFsnZXJyb3InLCB7XG4gICAgICAgICAgYWxsb3dQcml2YXRlQ2xhc3NQcm9wZXJ0eUFjY2VzczogdHJ1ZSxcbiAgICAgICAgICBhbGxvd1Byb3RlY3RlZENsYXNzUHJvcGVydHlBY2Nlc3M6IHRydWVcbiAgICAgICAgfV0sXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvdW5ib3VuZC1tZXRob2QnOiAnb2ZmJ1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgcmVhY3Q6IHtcbiAgICAgICAgICB2ZXJzaW9uOiAnZGV0ZWN0J1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuLyogZXNsaW50LWVuYWJsZSBuby1tYWdpYy1udW1iZXJzIC0tIFdlIGRpc2FibGVkIG1hZ2ljIG51bWJlcnMgYmVjYXVzZSB0aGV5IGFyZSB1c2VkIGFsbCBvdmVyIHRoZSBjb25maWdzLiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsT0FBTyxxQkFBcUI7QUFDNUIsU0FBUyx5QkFBeUI7QUFDbEMsT0FBTyxZQUFZO0FBRW5CLE9BQU8sZUFBZTtBQUN0QixTQUFTLHNDQUFzQztBQUMvQyxTQUFTLGVBQWUsc0NBQXNDO0FBRTlELE9BQU8sZ0JBQWdCO0FBRXZCLE9BQU8sZ0JBQWdCO0FBQ3ZCLFNBQVMsV0FBVyw0QkFBNEI7QUFDaEQsU0FBUyxvQkFBb0I7QUFDN0IsT0FBTyxhQUFhO0FBQ3BCLFNBQVMsa0JBQWtCO0FBRTNCLE9BQU8sY0FBYztBQUVyQixTQUFTLCtCQUErQjtBQUN4QyxTQUFTLFlBQVk7QUFDckIsU0FBUyxxQkFBcUI7QUFDOUIsU0FBUyxxQ0FBcUM7QUFDOUMsU0FBUyw4QkFBOEI7QUF5QmhDLE1BQU0sb0JBQW9CO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJZixrQkFBNEIsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSzdCLGNBQXdCLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUt6QixjQUF3QixD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
|
|
585
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgY29uZmlndXJhdGlvbiBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cyB3aXRoIHZhcmlvdXMgcGx1Z2lucy5cbiAqXG4gKiBUaGlzIG1vZHVsZSBleHBvcnRzIEVTTGludCBjb25maWd1cmF0aW9ucyBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cywgaW50ZWdyYXRpbmcgbXVsdGlwbGUgRVNMaW50IHBsdWdpbnNcbiAqIHN1Y2ggYXMgYEB0eXBlc2NyaXB0LWVzbGludC9wYXJzZXJgLCBgQHR5cGVzY3JpcHQtZXNsaW50L2VzbGludC1wbHVnaW5gLFxuICogYGVzbGludC1wbHVnaW4tbW9kdWxlcy1uZXdsaW5lc2AsIGBAc3R5bGlzdGljL2VzbGludC1wbHVnaW5gLlxuICogSXQgc2V0cyB1cCBwYXJzZXJzLCBwbHVnaW5zLCBhbmQgcnVsZXMgZm9yIG1haW50YWluaW5nIGNvZGUgcXVhbGl0eSBhbmQgY29uc2lzdGVuY3kuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlY2xhcmF0aXZlIEVTTGludCBydWxlL3BsdWdpbiBjb25maWd1cmF0aW9uOyBjb3JyZWN0bmVzcyBpcyB2ZXJpZmllZCBieSBydW5uaW5nIEVTTGludCwgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSAnZXNsaW50JztcblxuLyogZXNsaW50LWRpc2FibGUgbm8tbWFnaWMtbnVtYmVycyAtLSBXZSBkaXNhYmxlZCBtYWdpYyBudW1iZXJzIGJlY2F1c2UgdGhleSBhcmUgdXNlZCBhbGwgb3ZlciB0aGUgY29uZmlncy4gKi9cbmltcG9ydCBjb21tZW50c0NvbmZpZ3MgZnJvbSAnQGVzbGludC1jb21tdW5pdHkvZXNsaW50LXBsdWdpbi1lc2xpbnQtY29tbWVudHMvY29uZmlncyc7XG5pbXBvcnQgeyBpbmNsdWRlSWdub3JlRmlsZSB9IGZyb20gJ0Blc2xpbnQvY29uZmlnLWhlbHBlcnMnO1xuaW1wb3J0IGVzbGludCBmcm9tICdAZXNsaW50L2pzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1yZW5hbWUtZGVmYXVsdCAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgcGx1Z2luYCBpcyB0b28gY29uZnVzaW5nLlxuaW1wb3J0IHN0eWxpc3RpYyBmcm9tICdAc3R5bGlzdGljL2VzbGludC1wbHVnaW4nO1xuaW1wb3J0IHsgY3JlYXRlVHlwZVNjcmlwdEltcG9ydFJlc29sdmVyIH0gZnJvbSAnZXNsaW50LWltcG9ydC1yZXNvbHZlci10eXBlc2NyaXB0JztcbmltcG9ydCB7IGZsYXRDb25maWdzIGFzIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncyB9IGZyb20gJ2VzbGludC1wbHVnaW4taW1wb3J0LXgnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBfZGVmYXVsdGAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBub2RlUGx1Z2luIGZyb20gJ2VzbGludC1wbHVnaW4tbic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYHBsdWdpbmAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBvYnNpZGlhbm1kIGZyb20gJ2VzbGludC1wbHVnaW4tb2JzaWRpYW5tZCc7XG5pbXBvcnQgeyBjb25maWdzIGFzIHBlcmZlY3Rpb25pc3RDb25maWdzIH0gZnJvbSAnZXNsaW50LXBsdWdpbi1wZXJmZWN0aW9uaXN0JztcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gJ2VzbGludC9jb25maWcnO1xuaW1wb3J0IGdsb2JhbHMgZnJvbSAnZ2xvYmFscyc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuaW1wb3J0IHRzZXNsaW50IGZyb20gJ3R5cGVzY3JpcHQtZXNsaW50JztcblxuaW1wb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuLi8uLi9vYnNpZGlhbi9wbHVnaW4vb2JzaWRpYW4tcGx1Z2luLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJy4uLy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgZ2V0Um9vdEZvbGRlciB9IGZyb20gJy4uL3Jvb3QudHMnO1xuaW1wb3J0IHsgbm9SZXN0cmljdGVkU3ludGF4UnVsZUVudHJpZXMgfSBmcm9tICcuL2VzbGludC1uby1yZXN0cmljdGVkLXN5bnRheC50cyc7XG5pbXBvcnQgeyBvYnNpZGlhbkRldlV0aWxzUGx1Z2luIH0gZnJvbSAnLi9lc2xpbnQtcnVsZXMvb2JzaWRpYW4tZGV2LXV0aWxzLXBsdWdpbi50cyc7XG5cbi8qKlxuICogVGhlIHBhcmFtZXRlcnMgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWZpbmVFc2xpbnRDb25maWdzUGFyYW1zIHtcbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCBidWlsZHMgY3VzdG9tIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRleHQgLSBUaGUgRVNMaW50IGNvbmZpZ3VyYXRpb24gY29udGV4dC5cbiAgICogQHJldHVybnMgVGhlIGN1c3RvbSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gICAqL1xuICBjdXN0b21Db25maWdzPyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRoYXQgZWRpdHMgdGhlIEVTTGludCBjb25maWd1cmF0aW9uIGNvbnRleHQuXG4gICAqXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIEVTTGludCBjb25maWd1cmF0aW9uIGNvbnRleHQuXG4gICAqL1xuICBlZGl0Q29udGV4dD8oY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IHZvaWQ7XG59XG5cbi8qKlxuICogVGhlIGNvbnRleHQgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEVzbGludENvbmZpZ0NvbnRleHQge1xuICAvKipcbiAgICogVGhlIHJvb3QgY29uZmlndXJhdGlvbiBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb290Q29uZmlnRmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBzY3JpcHQgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2NyaXB0RmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlRmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXN0IGZpbGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRlc3RGaWxlczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogVGhlIGFsbCBmaWxlcy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGFsbCBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyBhbGxGaWxlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnRlc3RGaWxlcywgLi4udGhpcy5zY3JpcHRGaWxlcywgLi4udGhpcy5yb290Q29uZmlnRmlsZXMsIC4uLnRoaXMuc291cmNlRmlsZXNdO1xuICB9XG59XG5cbi8qKlxuICogQnVpbGQgRVNMaW50IGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gYnVpbGRzIEVTTGludCBjb25maWd1cmF0aW9ucyBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cywgaW50ZWdyYXRpbmcgbXVsdGlwbGUgRVNMaW50IHBsdWdpbnNcbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqIEByZXR1cm5zIFRoZSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVFc2xpbnRDb25maWdzKHBhcmFtczogRGVmaW5lRXNsaW50Q29uZmlnc1BhcmFtcyA9IHt9KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgY29uc3QgY29udGV4dCA9IG5ldyBFc2xpbnRDb25maWdDb250ZXh0KCk7XG4gIGNvbnRleHQucm9vdENvbmZpZ0ZpbGVzLnB1c2goXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ29tbWl0bGludENvbmZpZ1RzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ010cyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5WaXRlc3RDb25maWdUc1xuICApO1xuICBjb250ZXh0LnNjcmlwdEZpbGVzLnB1c2goXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TY3JpcHRzLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcylcbiAgKTtcbiAgY29udGV4dC5zb3VyY2VGaWxlcy5wdXNoKFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcyksXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TcmMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzeClcbiAgKTtcbiAgY29udGV4dC50ZXN0RmlsZXMucHVzaChcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlRlc3RzLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcyksXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Nb2NrcywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpLFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUZXN0VHMpXG4gICk7XG5cbiAgaWYgKHBhcmFtcy5lZGl0Q29udGV4dCkge1xuICAgIHBhcmFtcy5lZGl0Q29udGV4dChjb250ZXh0KTtcbiAgfVxuXG4gIGNvbnN0IGN1c3RvbUNvbmZpZ3MgPSBwYXJhbXMuY3VzdG9tQ29uZmlncz8uKGNvbnRleHQpID8/IFtdO1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcoXG4gICAgLi4uZ2V0R2l0SWdub3JlQ29uZmlncygpLFxuICAgIC8vIE9ic2lkaWFubWQgY29uZmlncyBydW4gZmlyc3Qgc28gb3VyIHN0cmljdGVyIHJ1bGVzIG92ZXJyaWRlIHRoZWlyIHJlbGF4ZWQgZGVmYXVsdHNcbiAgICAuLi5nZXRPYnNpZGlhbkxpbnRDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldEVzbGludENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0VHNlc2xpbnRDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldFN0eWxpc3RpY0NvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0SW1wb3J0WENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0UGVyZmVjdGlvbmlzdENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0RXNsaW50SW1wb3J0UmVzb2x2ZXJUeXBlc2NyaXB0Q29uZmlncygpLFxuICAgIC4uLmdldEVzbGludENvbW1lbnRzQ29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRPYnNpZGlhbkRldlV0aWxzUGx1Z2luQ29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXROb2RlQ29tcGF0Q29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5jdXN0b21Db25maWdzXG4gICk7XG59XG5cbmZ1bmN0aW9uIGdldEVzbGludENvbW1lbnRzQ29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyIC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGByZWNvbW1lbmRlZGAgaXMgdG9vIGNvbmZ1c2luZy5cbiAgICAgIGV4dGVuZHM6IFtjb21tZW50c0NvbmZpZ3MucmVjb21tZW5kZWRdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAZXNsaW50LWNvbW11bml0eS9lc2xpbnQtY29tbWVudHMvcmVxdWlyZS1kZXNjcmlwdGlvbic6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRFc2xpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbZXNsaW50LmNvbmZpZ3MucmVjb21tZW5kZWRdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdhY2Nlc3Nvci1wYWlycyc6ICdlcnJvcicsXG4gICAgICAgICdhcnJheS1jYWxsYmFjay1yZXR1cm4nOiAnZXJyb3InLFxuICAgICAgICAnY2FtZWxjYXNlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2NhcGl0YWxpemVkLWNvbW1lbnRzJzogWydlcnJvcicsICdhbHdheXMnLCB7IGJsb2NrOiB7IGlnbm9yZVBhdHRlcm46ICd2OCcgfSB9XSxcbiAgICAgICAgJ2NvbXBsZXhpdHknOiAnZXJyb3InLFxuICAgICAgICAnY29uc2lzdGVudC10aGlzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2N1cmx5JzogJ2Vycm9yJyxcbiAgICAgICAgJ2RlZmF1bHQtY2FzZSc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LWNhc2UtbGFzdCc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LXBhcmFtLWxhc3QnOiAnZXJyb3InLFxuICAgICAgICAnZXFlcWVxJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtbmFtZS1tYXRjaGluZyc6ICdlcnJvcicsXG4gICAgICAgICdmdW5jLW5hbWVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtc3R5bGUnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAnZGVjbGFyYXRpb24nLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93QXJyb3dGdW5jdGlvbnM6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnZ3JvdXBlZC1hY2Nlc3Nvci1wYWlycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdnZXRCZWZvcmVTZXQnXG4gICAgICAgIF0sXG4gICAgICAgICdndWFyZC1mb3ItaW4nOiAnZXJyb3InLFxuICAgICAgICAnbm8tYWxlcnQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tYXJyYXktY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tYml0d2lzZSc6ICdlcnJvcicsXG4gICAgICAgICduby1jYWxsZXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tY29uc29sZSc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93OiBbXG4gICAgICAgICAgICAgICd3YXJuJyxcbiAgICAgICAgICAgICAgJ2Vycm9yJ1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLWNvbnN0cnVjdG9yLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICduby1kaXYtcmVnZXgnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZWxzZS1yZXR1cm4nOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvd0Vsc2VJZjogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1lbXB0eS1mdW5jdGlvbic6ICdlcnJvcicsXG4gICAgICAgICduby1leHRlbmQtbmF0aXZlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWV4dHJhLWJpbmQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZXh0cmEtbGFiZWwnOiAnZXJyb3InLFxuICAgICAgICAnbm8taW1wbGljaXQtY29lcmNpb24nOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnISEnXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnbm8taW1wbGllZC1ldmFsJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWlubmVyLWRlY2xhcmF0aW9ucyc6ICdlcnJvcicsXG4gICAgICAgICduby1pdGVyYXRvcic6ICdlcnJvcicsXG4gICAgICAgICduby1sYWJlbC12YXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tbGFiZWxzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvbmUtYmxvY2tzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvbmVseS1pZic6ICdlcnJvcicsXG4gICAgICAgICduby1sb29wLWZ1bmMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tbWFnaWMtbnVtYmVycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRldGVjdE9iamVjdHM6IHRydWUsXG4gICAgICAgICAgICBlbmZvcmNlQ29uc3Q6IHRydWUsXG4gICAgICAgICAgICBpZ25vcmU6IFtcbiAgICAgICAgICAgICAgLTEsXG4gICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1tdWx0aS1hc3NpZ24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tbXVsdGktc3RyJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5lZ2F0ZWQtY29uZGl0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5lc3RlZC10ZXJuYXJ5JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5ldy1mdW5jJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5ldy13cmFwcGVycyc6ICdlcnJvcicsXG4gICAgICAgICduby1vYmplY3QtY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tb2N0YWwtZXNjYXBlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXByb21pc2UtZXhlY3V0b3ItcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXByb3RvJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXJlc3RyaWN0ZWQtc3ludGF4JzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgLi4ubm9SZXN0cmljdGVkU3ludGF4UnVsZUVudHJpZXNcbiAgICAgICAgXSxcbiAgICAgICAgJ25vLXJldHVybi1hc3NpZ24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2NyaXB0LXVybCc6ICdlcnJvcicsXG4gICAgICAgICduby1zZWxmLWNvbXBhcmUnOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2VxdWVuY2VzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXNoYWRvdyc6ICdlcnJvcicsXG4gICAgICAgICduby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmcnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdGhyb3ctbGl0ZXJhbCc6ICdlcnJvcicsXG4gICAgICAgICduby11bm1vZGlmaWVkLWxvb3AtY29uZGl0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVubmVlZGVkLXRlcm5hcnknOiAnZXJyb3InLFxuICAgICAgICAnbm8tdW5yZWFjaGFibGUtbG9vcCc6ICdlcnJvcicsXG4gICAgICAgICduby11bnVzZWQtZXhwcmVzc2lvbnMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1hc3NpZ25tZW50JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtY2FsbCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbXB1dGVkLWtleSc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbmNhdCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbnN0cnVjdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtcmVuYW1lJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXZhcic6ICdlcnJvcicsXG4gICAgICAgICduby12b2lkJzogJ2Vycm9yJyxcbiAgICAgICAgJ29iamVjdC1zaG9ydGhhbmQnOiAnZXJyb3InLFxuICAgICAgICAnb3BlcmF0b3ItYXNzaWdubWVudCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItYXJyb3ctY2FsbGJhY2snOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLWNvbnN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1leHBvbmVudGlhdGlvbi1vcGVyYXRvcic6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItbmFtZWQtY2FwdHVyZS1ncm91cCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItbnVtZXJpYy1saXRlcmFscyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItb2JqZWN0LWhhcy1vd24nOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW9iamVjdC1zcHJlYWQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXByb21pc2UtcmVqZWN0LWVycm9ycyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItcmVnZXgtbGl0ZXJhbHMnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXJlc3QtcGFyYW1zJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1zcHJlYWQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXRlbXBsYXRlJzogJ2Vycm9yJyxcbiAgICAgICAgJ3JhZGl4JzogJ2Vycm9yJyxcbiAgICAgICAgJ3JlcXVpcmUtYXRvbWljLXVwZGF0ZXMnOiAnZXJyb3InLFxuICAgICAgICAncmVxdWlyZS1hd2FpdCc6ICdlcnJvcicsXG4gICAgICAgICdzeW1ib2wtZGVzY3JpcHRpb24nOiAnZXJyb3InLFxuICAgICAgICAndW5pY29kZS1ib20nOiAnZXJyb3InLFxuICAgICAgICAndmFycy1vbi10b3AnOiAnZXJyb3InLFxuICAgICAgICAneW9kYSc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnRlc3RGaWxlcyxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICduby1tYWdpYy1udW1iZXJzJzogJ29mZidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRFc2xpbnRJbXBvcnRSZXNvbHZlclR5cGVzY3JpcHRDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICdpbXBvcnQteC9yZXNvbHZlci1uZXh0JzogW1xuICAgICAgICAgIGNyZWF0ZVR5cGVTY3JpcHRJbXBvcnRSZXNvbHZlcih7XG4gICAgICAgICAgICBhbHdheXNUcnlUeXBlczogdHJ1ZVxuICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRHaXRJZ25vcmVDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIGNvbnN0IGdpdGlnbm9yZVBhdGggPSBqb2luKGdldFJvb3RGb2xkZXIoKSA/PyAnJywgJy5naXRpZ25vcmUnKTtcbiAgaWYgKCFleGlzdHNTeW5jKGdpdGlnbm9yZVBhdGgpKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiBbaW5jbHVkZUlnbm9yZUZpbGUoZ2l0aWdub3JlUGF0aCldO1xufVxuXG5mdW5jdGlvbiBnZXRJbXBvcnRYQ29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW1xuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MucmVjb21tZW5kZWQsXG4gICAgICAgIGVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncy50eXBlc2NyaXB0LFxuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MuZXJyb3JzLFxuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3Mud2FybmluZ3NcbiAgICAgIF0sXG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ2ltcG9ydC14L2NvbnNpc3RlbnQtdHlwZS1zcGVjaWZpZXItc3R5bGUnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvZXh0ZW5zaW9ucyc6IFsnZXJyb3InLCAnaWdub3JlUGFja2FnZXMnXSxcbiAgICAgICAgJ2ltcG9ydC14L2ZpcnN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L2ltcG9ydHMtZmlyc3QnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbmV3bGluZS1hZnRlci1pbXBvcnQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tYWJzb2x1dGUtcGF0aCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1hbWQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tYW5vbnltb3VzLWRlZmF1bHQtZXhwb3J0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWNvbW1vbmpzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWN5Y2xlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWRlZmF1bHQtZXhwb3J0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWRlcHJlY2F0ZWQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZHVwbGljYXRlcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1keW5hbWljLXJlcXVpcmUnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZW1wdHktbmFtZWQtYmxvY2tzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWltcG9ydC1tb2R1bGUtZXhwb3J0cyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1tdXRhYmxlLWV4cG9ydHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbmFtZWQtZGVmYXVsdCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1uYW1lc3BhY2UnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbm9kZWpzLW1vZHVsZXMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tcmVsYXRpdmUtcGFja2FnZXMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tcmVzdHJpY3RlZC1wYXRocyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1zZWxmLWltcG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby11bmFzc2lnbmVkLWltcG9ydCc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93OiBbXG4gICAgICAgICAgICAgICcqKi8qLmNzcycsXG4gICAgICAgICAgICAgICcqKi8qLnNhc3MnLFxuICAgICAgICAgICAgICAnKiovKi5zY3NzJ1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ2ltcG9ydC14L25vLXVudXNlZC1tb2R1bGVzJzogJ29mZicsXG4gICAgICAgICdpbXBvcnQteC9uby11c2VsZXNzLXBhdGgtc2VnbWVudHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8td2VicGFjay1sb2FkZXItc3ludGF4JzogJ2Vycm9yJ1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IGNvbnRleHQuc2NyaXB0RmlsZXMsXG4gICAgICBydWxlczoge1xuICAgICAgICAnaW1wb3J0LXgvbm8tbm9kZWpzLW1vZHVsZXMnOiAnb2ZmJ1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IFtcbiAgICAgICAgLi4uY29udGV4dC5yb290Q29uZmlnRmlsZXMsXG4gICAgICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYWluVHMpXG4gICAgICBdLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ2ltcG9ydC14L25vLWRlZmF1bHQtZXhwb3J0JzogJ29mZidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXROb2RlQ29tcGF0Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgLy8gVGhlIG1pbmltdW0gT2JzaWRpYW4gaW5zdGFsbGVyIHRoYXQgc3RpbGwgcmVjZWl2ZXMgYXBwIHVwZGF0ZXMgKDAuMTQuNSkgc2hpcHMgRWxlY3Ryb24gMTguMC4zLCB3aGljaCBydW5zIE5vZGUgMTYuMTMuMi5cbiAgLy8gU2hpcHBlZCBzb3VyY2UgbXVzdCB0aGVyZWZvcmUgYXZvaWQgTm9kZS9FUyBydW50aW1lIGJ1aWx0aW5zIHVuYXZhaWxhYmxlIGluIHRoYXQgdmVyc2lvbi4gVGVzdHMgYW5kIHNjcmlwdHMgYXJlIGRldi1vbmx5IGFuZCBleGVtcHQuXG4gIGNvbnN0IG1pbmltdW1Ob2RlVmVyc2lvbiA9ICc+PTE2LjEzLjInO1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnNvdXJjZUZpbGVzLFxuICAgICAgaWdub3JlczogW1xuICAgICAgICAuLi5jb250ZXh0LnRlc3RGaWxlcyxcbiAgICAgICAgLy8gRGV2LW9ubHkgdG9vbGluZyAoYnVpbGQsIGxpbnQsIHZlcnNpb24pIHVuZGVyIGBzcmMvc2NyaXB0LXV0aWxzLyoqYCBydW5zIHZpYSBgaml0aWAgaW4gdGhlIGNvbnN1bWVyJ3MgTm9kZSBlbnZpcm9ubWVudCB3aGVuIGJ1aWxkaW5nIGEgcGx1Z2luIGFuZCBuZXZlciBzaGlwcyBpbnRvIHRoZSBPYnNpZGlhbiBydW50aW1lLCBzbyB0aGUgTm9kZS0xNiBmbG9vciBkb2VzIG5vdCBhcHBseSB0byBpdC5cbiAgICAgICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TY3JpcHRVdGlscywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpXG4gICAgICBdLFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICBuOiBub2RlUGx1Z2luXG4gICAgICB9LFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ24vbm8tdW5zdXBwb3J0ZWQtZmVhdHVyZXMvZXMtYnVpbHRpbnMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2ZXJzaW9uOiBtaW5pbXVtTm9kZVZlcnNpb25cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyBgQmxvYmAgYW5kIGBGaWxlYCBhcmUgRE9NIHdlYiBnbG9iYWxzIGFsd2F5cyBwcmVzZW50IGluIHRoZSBPYnNpZGlhbi9FbGVjdHJvbiByZW5kZXJlciAoZXZlcnkgc3VwcG9ydGVkIENocm9taXVtKSwgYnV0IHRoZSBydWxlIGFsc28ga25vd3MgdGhlbSBhcyBOb2RlJ3MgZXhwZXJpbWVudGFsIGJ1aWx0aW5zIGFuZCBjYW5ub3QgdGVsbCB3aGljaCBpcyBtZWFudC4gSWdub3JlIHRoZW0gZ2xvYmFsbHk7IGdlbnVpbmVseSBuZXdlciBBUElzIChlLmcuIGBBYm9ydFNpZ25hbC5hbnlgKSBzdGF5IGZsYWdnZWQuXG4gICAgICAgICAgICBpZ25vcmVzOiBbXG4gICAgICAgICAgICAgICdCbG9iJyxcbiAgICAgICAgICAgICAgJ0ZpbGUnXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdmVyc2lvbjogbWluaW11bU5vZGVWZXJzaW9uXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0T2JzaWRpYW5EZXZVdGlsc1BsdWdpbkNvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKCksXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMnOiBvYnNpZGlhbkRldlV0aWxzUGx1Z2luXG4gICAgICB9LFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9uby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9uby11bnVzZWQtcGFyYW1zLW1lbWJlcnMnOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXV0aWxzL25vLXVzZWQtdW5kZXJzY29yZS12YXJpYWJsZXMnOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXV0aWxzL3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2gnOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXV0aWxzL3ByZWZlci1ub29wLWFzeW5jJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9yZWFkb25seS1wYXJhbXMtb3B0aW9ucy1yZXN1bHQtbWVtYmVycyc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvcmVxdWlyZS1jb21wb25lbnQtc3VmZml4JzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9yZXF1aXJlLW1ldGhvZC10ZW1wbGF0ZSc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvcmVxdWlyZS1zdXBlci1jYWxsJzogJ29mZidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRPYnNpZGlhbkxpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICBjb25zdCBvYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncyA9IG9ic2lkaWFubWQuY29uZmlncy5yZWNvbW1lbmRlZDtcblxuICBjb25zdCBzY29wZWRPYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncyA9IG9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzLm1hcCgoY29uZmlnKSA9PiB7XG4gICAgaWYgKGNvbmZpZy5maWxlcz8uaW5jbHVkZXMoJ3BhY2thZ2UuanNvbicpKSB7XG4gICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBmaWxlczogY29udGV4dC5zb3VyY2VGaWxlc1xuICAgIH07XG4gIH0pO1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIC4uLnNjb3BlZE9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzLFxuICAgIHtcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgb2JzaWRpYW5tZFxuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbGFuZ3VhZ2VPcHRpb25zOiB7XG4gICAgICAgIGdsb2JhbHM6IHtcbiAgICAgICAgICAuLi5nbG9iYWxzLmJyb3dzZXIsXG4gICAgICAgICAgLi4uZ2xvYmFscy5ub2RlLFxuICAgICAgICAgIGFjdGl2ZURvY3VtZW50OiAncmVhZG9ubHknLFxuICAgICAgICAgIGFjdGl2ZVdpbmRvdzogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBhamF4OiAncmVhZG9ubHknLFxuICAgICAgICAgIGFqYXhQcm9taXNlOiAncmVhZG9ubHknLFxuICAgICAgICAgIGNyZWF0ZURpdjogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVFbDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVGcmFnbWVudDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVTcGFuOiAncmVhZG9ubHknLFxuICAgICAgICAgIGNyZWF0ZVN2ZzogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBEb21FbGVtZW50SW5mbzogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBmaXNoOiAncmVhZG9ubHknLFxuICAgICAgICAgIGZpc2hBbGw6ICdyZWFkb25seScsXG4gICAgICAgICAgaXNCb29sZWFuOiAncmVhZG9ubHknLFxuICAgICAgICAgIG5leHRGcmFtZTogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBOb2RlSlM6ICdyZWFkb25seScsXG4gICAgICAgICAgcmVhZHk6ICdyZWFkb25seScsXG4gICAgICAgICAgc2xlZXA6ICdyZWFkb25seSdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldFBlcmZlY3Rpb25pc3RDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFt7XG4gICAgZXh0ZW5kczogW3BlcmZlY3Rpb25pc3RDb25maWdzWydyZWNvbW1lbmRlZC1hbHBoYWJldGljYWwnXV0sXG4gICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKVxuICB9XSk7XG59XG5cbmZ1bmN0aW9uIGdldFN0eWxpc3RpY0NvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGV4dGVuZHM6IFtcbiAgICAgICAgc3R5bGlzdGljLmNvbmZpZ3MucmVjb21tZW5kZWQsXG4gICAgICAgIHN0eWxpc3RpYy5jb25maWdzLmN1c3RvbWl6ZSh7XG4gICAgICAgICAgYXJyb3dQYXJlbnM6IHRydWUsXG4gICAgICAgICAgYnJhY2VTdHlsZTogJzF0YnMnLFxuICAgICAgICAgIGNvbW1hRGFuZ2xlOiAnbmV2ZXInLFxuICAgICAgICAgIHNlbWk6IHRydWVcbiAgICAgICAgfSlcbiAgICAgIF0sXG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ0BzdHlsaXN0aWMvZ2VuZXJhdG9yLXN0YXItc3BhY2luZyc6ICdvZmYnLFxuICAgICAgICAnQHN0eWxpc3RpYy9pbmRlbnQnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvaW5kZW50LWJpbmFyeS1vcHMnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvanN4LW9uZS1leHByZXNzaW9uLXBlci1saW5lJzogJ29mZicsXG4gICAgICAgICdAc3R5bGlzdGljL25vLWV4dHJhLXNlbWknOiAnZXJyb3InLFxuICAgICAgICAnQHN0eWxpc3RpYy9vYmplY3QtY3VybHktbmV3bGluZSc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIEV4cG9ydERlY2xhcmF0aW9uOiB7XG4gICAgICAgICAgICAgIG1pblByb3BlcnRpZXM6IDIsXG4gICAgICAgICAgICAgIG11bHRpbGluZTogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEltcG9ydERlY2xhcmF0aW9uOiB7XG4gICAgICAgICAgICAgIG1pblByb3BlcnRpZXM6IDIsXG4gICAgICAgICAgICAgIG11bHRpbGluZTogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ0BzdHlsaXN0aWMvb3BlcmF0b3ItbGluZWJyZWFrJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgJ2JlZm9yZScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3ZlcnJpZGVzOiB7XG4gICAgICAgICAgICAgICc9JzogJ2FmdGVyJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ0BzdHlsaXN0aWMvcXVvdGVzJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgJ3NpbmdsZScsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxsb3dUZW1wbGF0ZUxpdGVyYWxzOiAnbmV2ZXInXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHNlc2xpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlciAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgX2RlZmF1bHRgIGlzIHRvbyBjb25mdXNpbmcuXG4gICAgICAgIC4uLnRzZXNsaW50LmNvbmZpZ3Muc3RyaWN0VHlwZUNoZWNrZWQsXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlciAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgX2RlZmF1bHRgIGlzIHRvbyBjb25mdXNpbmcuXG4gICAgICAgIC4uLnRzZXNsaW50LmNvbmZpZ3Muc3R5bGlzdGljVHlwZUNoZWNrZWRcbiAgICAgIF0sXG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgbGFuZ3VhZ2VPcHRpb25zOiB7XG4gICAgICAgIHBhcnNlck9wdGlvbnM6IHtcbiAgICAgICAgICBlY21hRmVhdHVyZXM6IHtcbiAgICAgICAgICAgIGpzeDogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcHJvamVjdFNlcnZpY2U6IHRydWUsXG4gICAgICAgICAgdHNjb25maWdSb290RGlyOiBnZXRSb290Rm9sZGVyKCkgPz8gJydcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtZnVuY3Rpb24tcmV0dXJuLXR5cGUnOiAnZXJyb3InLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1lbWJlci1hY2Nlc3NpYmlsaXR5JzogJ2Vycm9yJyxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9tZXRob2Qtc2lnbmF0dXJlLXN0eWxlJzogWydlcnJvcicsICdtZXRob2QnXSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby1mbG9hdGluZy1wcm9taXNlcyc6IFsnZXJyb3InLCB7XG4gICAgICAgICAgY2hlY2tUaGVuYWJsZXM6IHRydWVcbiAgICAgICAgfV0sXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGUnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGFsbG93QXNUaGlzUGFyYW1ldGVyOiB0cnVlXG4gICAgICAgIH1dLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXMnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGFsbG93ZWROYW1lczogW1xuICAgICAgICAgICAgJ3RoYXQnXG4gICAgICAgICAgXVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFyZ3M6ICdhbGwnLFxuICAgICAgICAgICAgYXJnc0lnbm9yZVBhdHRlcm46ICdeXycsXG4gICAgICAgICAgICBjYXVnaHRFcnJvcnM6ICdhbGwnLFxuICAgICAgICAgICAgY2F1Z2h0RXJyb3JzSWdub3JlUGF0dGVybjogJ15fJyxcbiAgICAgICAgICAgIGRlc3RydWN0dXJlZEFycmF5SWdub3JlUGF0dGVybjogJ15fJyxcbiAgICAgICAgICAgIGlnbm9yZVJlc3RTaWJsaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIHZhcnNJZ25vcmVQYXR0ZXJuOiAnXl8nXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1yZWFkb25seSc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnRlc3RGaWxlcyxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvZG90LW5vdGF0aW9uJzogWydlcnJvcicsIHtcbiAgICAgICAgICBhbGxvd1ByaXZhdGVDbGFzc1Byb3BlcnR5QWNjZXNzOiB0cnVlLFxuICAgICAgICAgIGFsbG93UHJvdGVjdGVkQ2xhc3NQcm9wZXJ0eUFjY2VzczogdHJ1ZVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCc6ICdvZmYnXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICByZWFjdDoge1xuICAgICAgICAgIHZlcnNpb246ICdkZXRlY3QnXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG4vKiBlc2xpbnQtZW5hYmxlIG5vLW1hZ2ljLW51bWJlcnMgLS0gV2UgZGlzYWJsZWQgbWFnaWMgbnVtYmVycyBiZWNhdXNlIHRoZXkgYXJlIHVzZWQgYWxsIG92ZXIgdGhlIGNvbmZpZ3MuICovXG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxPQUFPLHFCQUFxQjtBQUM1QixTQUFTLHlCQUF5QjtBQUNsQyxPQUFPLFlBQVk7QUFFbkIsT0FBTyxlQUFlO0FBQ3RCLFNBQVMsc0NBQXNDO0FBQy9DLFNBQVMsZUFBZSxzQ0FBc0M7QUFFOUQsT0FBTyxnQkFBZ0I7QUFFdkIsT0FBTyxnQkFBZ0I7QUFDdkIsU0FBUyxXQUFXLDRCQUE0QjtBQUNoRCxTQUFTLG9CQUFvQjtBQUM3QixPQUFPLGFBQWE7QUFDcEIsU0FBUyxrQkFBa0I7QUFFM0IsT0FBTyxjQUFjO0FBRXJCLFNBQVMsK0JBQStCO0FBQ3hDLFNBQVMsWUFBWTtBQUNyQixTQUFTLHFCQUFxQjtBQUM5QixTQUFTLHFDQUFxQztBQUM5QyxTQUFTLDhCQUE4QjtBQXlCaEMsTUFBTSxvQkFBb0I7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUlmLGtCQUE0QixDQUFDO0FBQUE7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
|
|
@@ -31,28 +31,12 @@ const noRestrictedSyntaxRuleEntries = [
|
|
|
31
31
|
selector: "TSAbstractPropertyDefinition[definite=true]"
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
|
-
message: "Do not use anonymous inline object types
|
|
35
|
-
selector: ":
|
|
34
|
+
message: "Do not use anonymous inline object types. Define a named interface or `type` alias instead.",
|
|
35
|
+
selector: "TSTypeLiteral:not(TSTypeAliasDeclaration > TSTypeLiteral)"
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
|
-
message: "Do not use anonymous inline
|
|
39
|
-
selector: ":
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
message: "Do not use anonymous inline object types in interface/method signatures. Define a named interface instead.",
|
|
43
|
-
selector: "TSMethodSignature TSTypeLiteral"
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
message: "Do not use anonymous inline object types as type arguments. Define a named interface instead.",
|
|
47
|
-
selector: "TSTypeParameterInstantiation TSTypeLiteral"
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
message: "Do not use anonymous inline object types in type annotations. Define a named interface instead.",
|
|
51
|
-
selector: "TSTypeAnnotation TSTypeLiteral"
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
message: "Do not use anonymous inline object types in type assertions. Define a named interface instead.",
|
|
55
|
-
selector: "TSAsExpression TSTypeLiteral"
|
|
38
|
+
message: "Do not use anonymous inline mapped types. Define a named `type` alias instead.",
|
|
39
|
+
selector: "TSMappedType:not(TSTypeAliasDeclaration > TSMappedType)"
|
|
56
40
|
},
|
|
57
41
|
{
|
|
58
42
|
message: "Do not use double type assertions (as X as Y).",
|
|
@@ -90,4 +74,4 @@ const noRestrictedSyntaxRuleEntries = [
|
|
|
90
74
|
export {
|
|
91
75
|
noRestrictedSyntaxRuleEntries
|
|
92
76
|
};
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1uby1yZXN0cmljdGVkLXN5bnRheC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIGBuby1yZXN0cmljdGVkLXN5bnRheGAgcnVsZSBlbnRyaWVzIGZvciB0aGUgc2hhcmVkIEVTTGludCBjb25maWcuXG4gKlxuICogRXhwb3J0ZWQgYXMgYSBzdGFuZGFsb25lIGNvbnN0YW50IHNvIGVhY2ggc2VsZWN0b3IgY2FuIGJlIHVuaXQtdGVzdGVkXG4gKiBpbmRlcGVuZGVudGx5IG9mIHRoZSBsYXJnZXIgZGVjbGFyYXRpdmUgY29uZmlnLlxuICovXG5cbi8qKlxuICogQSBzaW5nbGUgYG5vLXJlc3RyaWN0ZWQtc3ludGF4YCBlbnRyeSBwYWlyaW5nIGFuIEVTTGludCBBU1Qgc2VsZWN0b3Igd2l0aCBhXG4gKiBodW1hbi1yZWFkYWJsZSBtZXNzYWdlIGV4cGxhaW5pbmcgd2h5IHRoZSBwYXR0ZXJuIGlzIGJhbm5lZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb1Jlc3RyaWN0ZWRTeW50YXhSdWxlRW50cnkge1xuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbWVzc2FnZSBzaG93biB3aGVuIHRoZSBzZWxlY3RvciBtYXRjaGVzLlxuICAgKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFU0xpbnQgQVNUIHNlbGVjdG9yIGlkZW50aWZ5aW5nIHRoZSBiYW5uZWQgcGF0dGVybi5cbiAgICovXG4gIHNlbGVjdG9yOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzdHJpY3RlZC1zeW50YXggZW50cmllcyBlbmZvcmNlZCBieSB0aGUgc2hhcmVkIEVTTGludCBjb25maWcuXG4gKi9cbmV4cG9ydCBjb25zdCBub1Jlc3RyaWN0ZWRTeW50YXhSdWxlRW50cmllczogcmVhZG9ubHkgTm9SZXN0cmljdGVkU3ludGF4UnVsZUVudHJ5W10gPSBbXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBkZWZpbml0ZSBhc3NpZ25tZW50IGFzc2VydGlvbnMgKCEpLiBJbml0aWFsaXplIHRoZSBmaWVsZCBvciBtYWtlIGl0IG9wdGlvbmFsLicsXG4gICAgc2VsZWN0b3I6ICdQcm9wZXJ0eURlZmluaXRpb25bZGVmaW5pdGU9dHJ1ZV0nXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBkZWZpbml0ZSBhc3NpZ25tZW50IGFzc2VydGlvbnMgKCEpIG9uIGFic3RyYWN0IGZpZWxkcy4nLFxuICAgIHNlbGVjdG9yOiAnVFNBYnN0cmFjdFByb3BlcnR5RGVmaW5pdGlvbltkZWZpbml0ZT10cnVlXSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGFub255bW91cyBpbmxpbmUgb2JqZWN0IHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBpbnRlcmZhY2Ugb3IgYHR5cGVgIGFsaWFzIGluc3RlYWQuJyxcbiAgICBzZWxlY3RvcjogJ1RTVHlwZUxpdGVyYWw6bm90KFRTVHlwZUFsaWFzRGVjbGFyYXRpb24gPiBUU1R5cGVMaXRlcmFsKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGFub255bW91cyBpbmxpbmUgbWFwcGVkIHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBgdHlwZWAgYWxpYXMgaW5zdGVhZC4nLFxuICAgIHNlbGVjdG9yOiAnVFNNYXBwZWRUeXBlOm5vdChUU1R5cGVBbGlhc0RlY2xhcmF0aW9uID4gVFNNYXBwZWRUeXBlKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGRvdWJsZSB0eXBlIGFzc2VydGlvbnMgKGFzIFggYXMgWSkuJyxcbiAgICBzZWxlY3RvcjogJ1RTQXNFeHByZXNzaW9uID4gVFNBc0V4cHJlc3Npb24nXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBgYXMgbmV2ZXJgLiBJdCBzaWxlbnRseSBzYXRpc2ZpZXMgdHlwZSBjb25zdHJhaW50cyBieSBjbGFpbWluZyBcInRoaXMgdmFsdWUgaXMgb2YgZXZlcnkgdHlwZVwiIFx1MjAxNCBhbG1vc3QgYWx3YXlzIG1hc2tzIGEgcmVhbCB0eXBlIG1pc21hdGNoLiBGaXggdGhlIHVuZGVybHlpbmcgdHlwZXMgaW5zdGVhZC4nLFxuICAgIHNlbGVjdG9yOiAnVFNBc0V4cHJlc3Npb24gPiBUU05ldmVyS2V5d29yZCdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGA8bmV2ZXI+YCB0eXBlIGFzc2VydGlvbnMuIFNhbWUgcmVhc29uaW5nIGFzIGBhcyBuZXZlcmAuJyxcbiAgICBzZWxlY3RvcjogJ1RTVHlwZUFzc2VydGlvbiA+IFRTTmV2ZXJLZXl3b3JkJ1xuICB9LFxuICB7XG4gICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgXyBwcmVmaXggb24gbWV0aG9kcyBvciBmdW5jdGlvbnMuIFRoZSBfIHByZWZpeCBpcyBmb3IgdW51c2VkIHBhcmFtZXRlcnMgb25seS4nLFxuICAgIHNlbGVjdG9yOiAnTWV0aG9kRGVmaW5pdGlvbltrZXkubmFtZT0vXl8vXTpub3QoW292ZXJyaWRlPXRydWVdKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIF8gcHJlZml4IG9uIG1ldGhvZHMgb3IgZnVuY3Rpb25zLiBUaGUgXyBwcmVmaXggaXMgZm9yIHVudXNlZCBwYXJhbWV0ZXJzIG9ubHkuJyxcbiAgICBzZWxlY3RvcjogJ0Z1bmN0aW9uRGVjbGFyYXRpb25baWQubmFtZT0vXl8vXSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdEbyBub3QgcmVuYW1lIGltcG9ydHMgd2l0aCBcIk1vY2tcIiBpbiB0aGUgYWxpYXMuIE1vY2sgY2xhc3NlcyBhcmUgdGhlIGNhbm9uaWNhbCB0eXBlcyBcdTIwMTQgdXNlIHRoZSBvcmlnaW5hbCBuYW1lLicsXG4gICAgc2VsZWN0b3I6ICdJbXBvcnRTcGVjaWZpZXJbbG9jYWwubmFtZT0vTW9jay9dOm5vdChbaW1wb3J0ZWQubmFtZT0vTW9jay9dKSdcbiAgfSxcbiAge1xuICAgIG1lc3NhZ2U6ICdBdm9pZCBkeW5hbWljIGltcG9ydCgpLiBVc2Ugc3RhdGljIGltcG9ydHMgaW5zdGVhZC4gT25seSB1c2UgZHluYW1pYyBpbXBvcnRzIGZvciBsYXp5L2NvbmRpdGlvbmFsIGxvYWRpbmcuJyxcbiAgICBzZWxlY3RvcjogJ0ltcG9ydEV4cHJlc3Npb24nXG4gIH0sXG4gIHtcbiAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBgZGVjbGFyZWAgb24gY2xhc3MgcHJvcGVydGllcy4gSW5pdGlhbGl6ZSB0aGUgcHJvcGVydHkgb3IgdXNlIGEgcmVndWxhciB0eXBlIGFubm90YXRpb24uJyxcbiAgICBzZWxlY3RvcjogJ1Byb3BlcnR5RGVmaW5pdGlvbltkZWNsYXJlPXRydWVdJ1xuICB9XG5dO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0Qk8sTUFBTSxnQ0FBd0U7QUFBQSxFQUNuRjtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLElBQ0UsU0FBUztBQUFBLElBQ1QsVUFBVTtBQUFBLEVBQ1o7QUFBQSxFQUNBO0FBQUEsSUFDRSxTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxFQUNaO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference path="../../../library.d.mts" />
|
|
2
2
|
export * as 'no-async-callback-to-unsafe-return' from './no-async-callback-to-unsafe-return.mjs';
|
|
3
|
+
export * as 'no-unused-params-members' from './no-unused-params-members.mjs';
|
|
3
4
|
export * as 'no-used-underscore-variables' from './no-used-underscore-variables.mjs';
|
|
4
5
|
export * as 'obsidian-dev-utils-plugin' from './obsidian-dev-utils-plugin.mjs';
|
|
5
6
|
export * as 'params-options-name-match' from './params-options-name-match.mjs';
|
|
@@ -22,6 +22,7 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
22
22
|
})();
|
|
23
23
|
|
|
24
24
|
import * as no_async_callback_to_unsafe_return from "./no-async-callback-to-unsafe-return.mjs";
|
|
25
|
+
import * as no_unused_params_members from "./no-unused-params-members.mjs";
|
|
25
26
|
import * as no_used_underscore_variables from "./no-used-underscore-variables.mjs";
|
|
26
27
|
import * as obsidian_dev_utils_plugin from "./obsidian-dev-utils-plugin.mjs";
|
|
27
28
|
import * as params_options_name_match from "./params-options-name-match.mjs";
|
|
@@ -33,6 +34,7 @@ import * as require_super_call from "./require-super-call.mjs";
|
|
|
33
34
|
import * as rule_tester_helper from "./rule-tester-helper.mjs";
|
|
34
35
|
export {
|
|
35
36
|
no_async_callback_to_unsafe_return as "no-async-callback-to-unsafe-return",
|
|
37
|
+
no_unused_params_members as "no-unused-params-members",
|
|
36
38
|
no_used_underscore_variables as "no-used-underscore-variables",
|
|
37
39
|
obsidian_dev_utils_plugin as "obsidian-dev-utils-plugin",
|
|
38
40
|
params_options_name_match as "params-options-name-match",
|
|
@@ -43,4 +45,4 @@ export {
|
|
|
43
45
|
require_super_call as "require-super-call",
|
|
44
46
|
rule_tester_helper as "rule-tester-helper"
|
|
45
47
|
};
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICduby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuJyBmcm9tICcuL25vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm4udHMnO1xuZXhwb3J0ICogYXMgJ25vLXVudXNlZC1wYXJhbXMtbWVtYmVycycgZnJvbSAnLi9uby11bnVzZWQtcGFyYW1zLW1lbWJlcnMudHMnO1xuZXhwb3J0ICogYXMgJ25vLXVzZWQtdW5kZXJzY29yZS12YXJpYWJsZXMnIGZyb20gJy4vbm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcy50cyc7XG5leHBvcnQgKiBhcyAnb2JzaWRpYW4tZGV2LXV0aWxzLXBsdWdpbicgZnJvbSAnLi9vYnNpZGlhbi1kZXYtdXRpbHMtcGx1Z2luLnRzJztcbmV4cG9ydCAqIGFzICdwYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoJyBmcm9tICcuL3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2gudHMnO1xuZXhwb3J0ICogYXMgJ3ByZWZlci1ub29wLWFzeW5jJyBmcm9tICcuL3ByZWZlci1ub29wLWFzeW5jLnRzJztcbmV4cG9ydCAqIGFzICdyZWFkb25seS1wYXJhbXMtb3B0aW9ucy1yZXN1bHQtbWVtYmVycycgZnJvbSAnLi9yZWFkb25seS1wYXJhbXMtb3B0aW9ucy1yZXN1bHQtbWVtYmVycy50cyc7XG5leHBvcnQgKiBhcyAncmVxdWlyZS1jb21wb25lbnQtc3VmZml4JyBmcm9tICcuL3JlcXVpcmUtY29tcG9uZW50LXN1ZmZpeC50cyc7XG5leHBvcnQgKiBhcyAncmVxdWlyZS1tZXRob2QtdGVtcGxhdGUnIGZyb20gJy4vcmVxdWlyZS1tZXRob2QtdGVtcGxhdGUudHMnO1xuZXhwb3J0ICogYXMgJ3JlcXVpcmUtc3VwZXItY2FsbCcgZnJvbSAnLi9yZXF1aXJlLXN1cGVyLWNhbGwudHMnO1xuZXhwb3J0ICogYXMgJ3J1bGUtdGVzdGVyLWhlbHBlcicgZnJvbSAnLi9ydWxlLXRlc3Rlci1oZWxwZXIudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxZQUFZQSx3Q0FBMEM7QUFDdEQsWUFBWUMsOEJBQWdDO0FBQzVDLFlBQVlDLGtDQUFvQztBQUNoRCxZQUFZQywrQkFBaUM7QUFDN0MsWUFBWUMsK0JBQWlDO0FBQzdDLFlBQVlDLHVCQUF5QjtBQUNyQyxZQUFZQyw0Q0FBOEM7QUFDMUQsWUFBWUMsOEJBQWdDO0FBQzVDLFlBQVlDLDZCQUErQjtBQUMzQyxZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWUMsd0JBQTBCOyIsCiAgIm5hbWVzIjogWyJuby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuIiwgIm5vLXVudXNlZC1wYXJhbXMtbWVtYmVycyIsICJuby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzIiwgIm9ic2lkaWFuLWRldi11dGlscy1wbHVnaW4iLCAicGFyYW1zLW9wdGlvbnMtbmFtZS1tYXRjaCIsICJwcmVmZXItbm9vcC1hc3luYyIsICJyZWFkb25seS1wYXJhbXMtb3B0aW9ucy1yZXN1bHQtbWVtYmVycyIsICJyZXF1aXJlLWNvbXBvbmVudC1zdWZmaXgiLCAicmVxdWlyZS1tZXRob2QtdGVtcGxhdGUiLCAicmVxdWlyZS1zdXBlci1jYWxsIiwgInJ1bGUtdGVzdGVyLWhlbHBlciJdCn0K
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/// <reference path="../../../library.d.mts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* ESLint rule: no-unused-params-members
|
|
6
|
+
*
|
|
7
|
+
* Flags members of a `*Params` / `*Options` parameter-bag interface that are
|
|
8
|
+
* never accessed within the function/method/constructor that receives the
|
|
9
|
+
* interface as a parameter.
|
|
10
|
+
*
|
|
11
|
+
* Detection is per-function, using scope analysis to find the real references
|
|
12
|
+
* to the parameter (not unrelated same-named identifiers). A member counts as
|
|
13
|
+
* used when it is referenced by name — `params.member`, `params['member']`, or
|
|
14
|
+
* `const { member } = params` (plus a destructured signature
|
|
15
|
+
* `fn({ member }: FooParams)`).
|
|
16
|
+
*
|
|
17
|
+
* Crucially, if the object ever ESCAPES whole — spread (`{ ...params }`), rest
|
|
18
|
+
* (`const { ...rest } = params`), passed as an argument (`f(params)`), returned,
|
|
19
|
+
* or stored (`this.params = params`) — every member is treated as used and
|
|
20
|
+
* nothing is reported for that interface. Such an escape either reads every
|
|
21
|
+
* member (spread/rest) or hands the object to code this rule cannot see, so
|
|
22
|
+
* member deadness cannot be decided locally.
|
|
23
|
+
*
|
|
24
|
+
* A member is therefore flagged only when it is never referenced by name AND
|
|
25
|
+
* the object never escapes — i.e. the "a `params.x` usage was deleted but `x`
|
|
26
|
+
* was left on the interface" case. A member that is actually still needed (read
|
|
27
|
+
* via an escape) is never wrongly flagged; a member that is escaped but dead
|
|
28
|
+
* downstream is a tolerated false negative (its deadness is not local).
|
|
29
|
+
*
|
|
30
|
+
* Only interfaces declared in the same file are checked; an imported parameter
|
|
31
|
+
* type is skipped. Only identifier-named members are tracked.
|
|
32
|
+
*/
|
|
33
|
+
import type { Rule } from 'eslint';
|
|
34
|
+
export declare const MESSAGE_ID = "unusedParamsMember";
|
|
35
|
+
export declare const noUnusedParamsMembers: Rule.RuleModule;
|