@codeperfect/eslint-plugin 2.6.0 → 2.7.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/README.md +1 -0
- package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts +0 -1
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/index.js +1 -2
- package/dist/domain/architecture/index.d.ts +2 -1
- package/dist/domain/architecture/index.d.ts.map +1 -1
- package/dist/domain/architecture/index.js +3 -2
- package/dist/domain/architecture/no-import-export-extensions/index.d.ts +2 -0
- package/dist/domain/architecture/no-import-export-extensions/index.d.ts.map +1 -0
- package/dist/domain/architecture/no-import-export-extensions/index.js +2 -0
- package/dist/domain/architecture/no-import-export-extensions/no-import-export-extensions-rule.d.ts.map +1 -0
- package/dist/domain/architecture/no-import-export-extensions/no-import-export-extensions-rule.js +178 -0
- package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
- package/dist/domain/core/no-multiple-declarators/rule.js +6 -1
- package/dist/domain/core/no-useless-delegation/rule.d.ts.map +1 -1
- package/dist/domain/core/no-useless-delegation/rule.js +12 -8
- package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/rule.js +6 -2
- package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/reporting.js +38 -3
- package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/rule.js +6 -1
- package/dist/domain/docs/single-line-jsdoc/rule.d.ts.map +1 -1
- package/dist/domain/docs/single-line-jsdoc/rule.js +5 -3
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +1 -1
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +4 -2
- package/dist/domain/testing/aaa/index.d.ts +1 -1
- package/dist/domain/testing/aaa/index.d.ts.map +1 -1
- package/dist/domain/testing/aaa/index.js +1 -1
- package/dist/domain/testing/aaa/types.d.ts +7 -9
- package/dist/domain/testing/aaa/types.d.ts.map +1 -1
- package/dist/domain/testing/aaa/types.js +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +2 -18
- package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.js +49 -58
- package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-structure/rule.js +4 -1
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.d.ts.map +1 -1
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.js +10 -4
- package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/rule.js +10 -4
- package/package.json +15 -15
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts.map +0 -1
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js +0 -134
- /package/dist/domain/architecture/{consistent-barrel-files → no-import-export-extensions}/no-import-export-extensions-rule.d.ts +0 -0
package/README.md
CHANGED
|
@@ -102,6 +102,7 @@ void preferInterfaceTypesRule;
|
|
|
102
102
|
- `codeperfect/no-interface-member-docs`
|
|
103
103
|
- `codeperfect/no-multiple-declarators`
|
|
104
104
|
- `codeperfect/no-reexports-outside-barrels`
|
|
105
|
+
- `codeperfect/no-unsafe-vitest-mock-factory-cast`
|
|
105
106
|
- `codeperfect/no-unused-exports`
|
|
106
107
|
- `codeperfect/no-useless-delegation`
|
|
107
108
|
- `codeperfect/prefer-interface-types`
|
|
Binary file
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { barrelFilesExportsOnlyRule } from "./exports-only-rule.js";
|
|
2
2
|
export { noImportExportAliasesRule } from "./no-import-export-aliases-rule.js";
|
|
3
|
-
export { noImportExportExtensionsRule } from "./no-import-export-extensions-rule.js";
|
|
4
3
|
export { noReexportsOutsideBarrelsRule } from "./no-reexports-outside-barrels-rule.js";
|
|
5
4
|
export { consistentBarrelFilesRule } from "./rule.js";
|
|
6
5
|
export type { BarrelFilesExportsOnlyOptions, ConsistentBarrelFilesOptions, NoReexportsOutsideBarrelsOptions, } from "./types.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AACnD,YAAY,EACV,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,SAAS,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { barrelFilesExportsOnlyRule } from "./exports-only-rule.js";
|
|
2
2
|
export { noImportExportAliasesRule } from "./no-import-export-aliases-rule.js";
|
|
3
|
-
export { noImportExportExtensionsRule } from "./no-import-export-extensions-rule.js";
|
|
4
3
|
export { noReexportsOutsideBarrelsRule } from "./no-reexports-outside-barrels-rule.js";
|
|
5
4
|
export { consistentBarrelFilesRule } from "./rule.js";
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9jb25zaXN0ZW50LWJhcnJlbC1maWxlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSB9IGZyb20gXCIuL2V4cG9ydHMtb25seS1ydWxlXCI7XG5leHBvcnQgeyBub0ltcG9ydEV4cG9ydEFsaWFzZXNSdWxlIH0gZnJvbSBcIi4vbm8taW1wb3J0LWV4cG9ydC1hbGlhc2VzLXJ1bGVcIjtcbmV4cG9ydCB7IG5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNSdWxlIH0gZnJvbSBcIi4vbm8tcmVleHBvcnRzLW91dHNpZGUtYmFycmVscy1ydWxlXCI7XG5leHBvcnQgeyBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlIH0gZnJvbSBcIi4vcnVsZVwiO1xuZXhwb3J0IHR5cGUge1xuICBCYXJyZWxGaWxlc0V4cG9ydHNPbmx5T3B0aW9ucyxcbiAgQ29uc2lzdGVudEJhcnJlbEZpbGVzT3B0aW9ucyxcbiAgTm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc09wdGlvbnMsXG59IGZyb20gXCIuL3R5cGVzXCI7XG4iXX0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noImportExportAliasesRule,
|
|
1
|
+
export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noImportExportAliasesRule, noReexportsOutsideBarrelsRule, } from "./consistent-barrel-files/index.js";
|
|
2
|
+
export { noImportExportExtensionsRule } from "./no-import-export-extensions/index.js";
|
|
2
3
|
export { noUnusedExportsRule } from "./no-unused-exports/index.js";
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/architecture/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/architecture/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noImportExportAliasesRule,
|
|
1
|
+
export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noImportExportAliasesRule, noReexportsOutsideBarrelsRule, } from "./consistent-barrel-files/index.js";
|
|
2
|
+
export { noImportExportExtensionsRule } from "./no-import-export-extensions/index.js";
|
|
2
3
|
export { noUnusedExportsRule } from "./no-unused-exports/index.js";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsNkJBQTZCLEdBQzlCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSxcbiAgY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZSxcbiAgbm9JbXBvcnRFeHBvcnRBbGlhc2VzUnVsZSxcbiAgbm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc1J1bGUsXG59IGZyb20gXCIuL2NvbnNpc3RlbnQtYmFycmVsLWZpbGVzXCI7XG5leHBvcnQgeyBub0ltcG9ydEV4cG9ydEV4dGVuc2lvbnNSdWxlIH0gZnJvbSBcIi4vbm8taW1wb3J0LWV4cG9ydC1leHRlbnNpb25zXCI7XG5leHBvcnQgeyBub1VudXNlZEV4cG9ydHNSdWxlIH0gZnJvbSBcIi4vbm8tdW51c2VkLWV4cG9ydHNcIjtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-import-export-extensions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { noImportExportExtensionsRule } from "./no-import-export-extensions-rule.js";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9uby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBub0ltcG9ydEV4cG9ydEV4dGVuc2lvbnNSdWxlIH0gZnJvbSBcIi4vbm8taW1wb3J0LWV4cG9ydC1leHRlbnNpb25zLXJ1bGVcIjtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-import-export-extensions-rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-import-export-extensions/no-import-export-extensions-rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA2MnC,8FAA8F;AAC9F,QAAA,MAAM,4BAA4B,EAAE,IAAI,CAAC,UA6BxC,CAAC;AAEF,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
|
package/dist/domain/architecture/no-import-export-extensions/no-import-export-extensions-rule.js
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/** Set of disallowed module-specifier file extensions. */
|
|
2
|
+
const disallowedExtensions = new Set([
|
|
3
|
+
".cjs",
|
|
4
|
+
".cts",
|
|
5
|
+
".js",
|
|
6
|
+
".jsx",
|
|
7
|
+
".mjs",
|
|
8
|
+
".mts",
|
|
9
|
+
".ts",
|
|
10
|
+
".tsx",
|
|
11
|
+
]);
|
|
12
|
+
/**
|
|
13
|
+
* Gets the trailing extension from a module specifier string.
|
|
14
|
+
* @param source Module specifier text.
|
|
15
|
+
* @returns File extension including the leading dot when present.
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const extension = getTrailingExtension("./feature.ts");
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
const getSpecifierEndIndex = (source) => {
|
|
22
|
+
const queryIndex = source.indexOf("?");
|
|
23
|
+
const hashIndex = source.indexOf("#");
|
|
24
|
+
const endIndexCandidates = [queryIndex, hashIndex].filter((index) => index >= 0);
|
|
25
|
+
return endIndexCandidates.length === 0
|
|
26
|
+
? source.length
|
|
27
|
+
: Math.min(...endIndexCandidates);
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Gets the trailing extension from a module specifier string.
|
|
31
|
+
* @param source Module specifier text.
|
|
32
|
+
* @returns File extension including the leading dot when present.
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const extension = getTrailingExtension("./feature.ts");
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
const getTrailingExtension = (source) => {
|
|
39
|
+
const endIndex = getSpecifierEndIndex(source);
|
|
40
|
+
const cleanedSource = source.slice(0, endIndex);
|
|
41
|
+
const lastSlashIndex = Math.max(cleanedSource.lastIndexOf("/"), cleanedSource.lastIndexOf("\\"));
|
|
42
|
+
const basename = cleanedSource.slice(lastSlashIndex + 1);
|
|
43
|
+
const dotIndex = basename.lastIndexOf(".");
|
|
44
|
+
if (dotIndex <= 0) {
|
|
45
|
+
return void 0;
|
|
46
|
+
}
|
|
47
|
+
return basename.slice(dotIndex).toLowerCase();
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Builds the fixed source literal text with the disallowed extension removed.
|
|
51
|
+
* @param sourceLiteral Source literal node to fix.
|
|
52
|
+
* @returns Fixed source text including surrounding quotes.
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* const fixed = buildFixedSource(sourceLiteral);
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
const buildFixedSource = (sourceLiteral) => {
|
|
59
|
+
const raw = sourceLiteral.raw;
|
|
60
|
+
const value = sourceLiteral.value;
|
|
61
|
+
if (typeof value !== "string" || raw === void 0) {
|
|
62
|
+
return void 0;
|
|
63
|
+
}
|
|
64
|
+
const quoteChar = raw[0];
|
|
65
|
+
const endIndex = getSpecifierEndIndex(value);
|
|
66
|
+
const cleanedSource = value.slice(0, endIndex);
|
|
67
|
+
const suffix = value.slice(endIndex);
|
|
68
|
+
const lastSlashIndex = Math.max(cleanedSource.lastIndexOf("/"), cleanedSource.lastIndexOf("\\"));
|
|
69
|
+
const basename = cleanedSource.slice(lastSlashIndex + 1);
|
|
70
|
+
const dotIndex = basename.lastIndexOf(".");
|
|
71
|
+
if (dotIndex <= 0) {
|
|
72
|
+
return void 0;
|
|
73
|
+
}
|
|
74
|
+
const withoutExtension = cleanedSource.slice(0, cleanedSource.length - basename.length + dotIndex);
|
|
75
|
+
return `${String(quoteChar)}${withoutExtension}${suffix}${String(quoteChar)}`;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Checks whether a source literal should be reported.
|
|
79
|
+
* @param sourceLiteral Source literal node.
|
|
80
|
+
* @returns True when the source includes a disallowed file extension.
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* const forbidden = hasDisallowedExtension(sourceLiteral);
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
const hasDisallowedExtension = (sourceLiteral) => {
|
|
87
|
+
if (typeof sourceLiteral.value !== "string") {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
const extension = getTrailingExtension(sourceLiteral.value);
|
|
91
|
+
return extension !== void 0 && disallowedExtensions.has(extension);
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Reports a statement when it references a source with disallowed extension.
|
|
95
|
+
* @param context Rule execution context.
|
|
96
|
+
* @param statement Statement that may include a source literal.
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* reportWhenSourceHasExtension(context, statement);
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
const reportWhenSourceHasExtension = (context, statement) => {
|
|
103
|
+
const sourceLiteral = statement.source;
|
|
104
|
+
if (sourceLiteral === null || sourceLiteral === void 0) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (!hasDisallowedExtension(sourceLiteral)) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const fixedSource = buildFixedSource(sourceLiteral);
|
|
111
|
+
const fix = fixedSource === void 0
|
|
112
|
+
? void 0
|
|
113
|
+
: (fixer) => fixer.replaceText(sourceLiteral, fixedSource);
|
|
114
|
+
context.report({
|
|
115
|
+
...(fix !== void 0 && { fix }),
|
|
116
|
+
messageId: "unexpectedExtension",
|
|
117
|
+
node: sourceLiteral,
|
|
118
|
+
...(fix !== void 0 && {
|
|
119
|
+
suggest: [
|
|
120
|
+
{
|
|
121
|
+
fix,
|
|
122
|
+
messageId: "removeExtension",
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
}),
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Narrows one program statement to the source-bearing declarations this rule inspects.
|
|
130
|
+
* @param statement Program statement node.
|
|
131
|
+
* @returns Source-bearing declaration when supported.
|
|
132
|
+
* @example
|
|
133
|
+
* ```typescript
|
|
134
|
+
* const declaration = asSourceDeclaration(statement);
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
const asSourceDeclaration = (statement) => {
|
|
138
|
+
if (statement.type === "ExportAllDeclaration") {
|
|
139
|
+
return statement;
|
|
140
|
+
}
|
|
141
|
+
if (statement.type === "ExportNamedDeclaration") {
|
|
142
|
+
return statement;
|
|
143
|
+
}
|
|
144
|
+
if (statement.type === "ImportDeclaration") {
|
|
145
|
+
return statement;
|
|
146
|
+
}
|
|
147
|
+
return void 0;
|
|
148
|
+
};
|
|
149
|
+
/** ESLint rule that forbids import/export module specifiers with explicit file extensions. */
|
|
150
|
+
const noImportExportExtensionsRule = {
|
|
151
|
+
create: (context) => ({
|
|
152
|
+
Program(node) {
|
|
153
|
+
for (const statement of node.body) {
|
|
154
|
+
const declaration = asSourceDeclaration(statement);
|
|
155
|
+
if (declaration !== void 0) {
|
|
156
|
+
reportWhenSourceHasExtension(context, declaration);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
}),
|
|
161
|
+
meta: {
|
|
162
|
+
docs: {
|
|
163
|
+
description: "Forbid explicit file extensions in import/export module specifiers.",
|
|
164
|
+
recommended: false,
|
|
165
|
+
url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/no-import-export-extensions.md",
|
|
166
|
+
},
|
|
167
|
+
fixable: "code",
|
|
168
|
+
hasSuggestions: true,
|
|
169
|
+
messages: {
|
|
170
|
+
removeExtension: "Remove the file extension from this module specifier.",
|
|
171
|
+
unexpectedExtension: "Avoid file extensions in import/export module specifiers.",
|
|
172
|
+
},
|
|
173
|
+
schema: [],
|
|
174
|
+
type: "problem",
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
export { noImportExportExtensionsRule };
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8taW1wb3J0LWV4cG9ydC1leHRlbnNpb25zLXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9uby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnMvbm8taW1wb3J0LWV4cG9ydC1leHRlbnNpb25zLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsMERBQTBEO0FBQzFELE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDbkMsTUFBTTtJQUNOLE1BQU07SUFDTixLQUFLO0lBQ0wsTUFBTTtJQUNOLE1BQU07SUFDTixNQUFNO0lBQ04sS0FBSztJQUNMLE1BQU07Q0FDUCxDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxNQUFjLEVBQVUsRUFBRTtJQUN0RCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQ3ZELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUN0QixDQUFDO0lBRUYsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUNwQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU07UUFDZixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLG9CQUFvQixHQUFHLENBQUMsTUFBYyxFQUFzQixFQUFFO0lBQ2xFLE1BQU0sUUFBUSxHQUFHLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLE1B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U0FBUyxDQUFDLElBQUksS0FBSyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLDhGQUE4RjtBQUM5RixNQUFNLDRCQUE0QixHQUFvQjtJQUNwRCxNQUFNLEVBQUUsQ0FBQyxPQUF5QixFQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RCxPQUFPLENBQUMsSUFBb0I7WUFDMUIsS0FBSyxNQUFNLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUVuRCxJQUFJLFdBQVcsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUMzQiw0QkFBNEIsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQ3JELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztLQUNGLENBQUM7SUFDRixJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUU7WUFDSixXQUFXLEVBQ1QscUVBQXFFO1lBQ3ZFLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLEdBQUcsRUFBRSw4RkFBOEY7U0FDcEc7UUFDRCxPQUFPLEVBQUUsTUFBTTtRQUNmLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFFBQVEsRUFBRTtZQUNSLGVBQWUsRUFBRSx1REFBdUQ7WUFDeEUsbUJBQW1CLEVBQ2pCLDJEQUEyRDtTQUM5RDtRQUNELE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFNBQVM7S0FDaEI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5pbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbi8qKiBTZXQgb2YgZGlzYWxsb3dlZCBtb2R1bGUtc3BlY2lmaWVyIGZpbGUgZXh0ZW5zaW9ucy4gKi9cbmNvbnN0IGRpc2FsbG93ZWRFeHRlbnNpb25zID0gbmV3IFNldChbXG4gIFwiLmNqc1wiLFxuICBcIi5jdHNcIixcbiAgXCIuanNcIixcbiAgXCIuanN4XCIsXG4gIFwiLm1qc1wiLFxuICBcIi5tdHNcIixcbiAgXCIudHNcIixcbiAgXCIudHN4XCIsXG5dKTtcblxuLyoqXG4gKiBHZXRzIHRoZSB0cmFpbGluZyBleHRlbnNpb24gZnJvbSBhIG1vZHVsZSBzcGVjaWZpZXIgc3RyaW5nLlxuICogQHBhcmFtIHNvdXJjZSBNb2R1bGUgc3BlY2lmaWVyIHRleHQuXG4gKiBAcmV0dXJucyBGaWxlIGV4dGVuc2lvbiBpbmNsdWRpbmcgdGhlIGxlYWRpbmcgZG90IHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBleHRlbnNpb24gPSBnZXRUcmFpbGluZ0V4dGVuc2lvbihcIi4vZmVhdHVyZS50c1wiKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRTcGVjaWZpZXJFbmRJbmRleCA9IChzb3VyY2U6IHN0cmluZyk6IG51bWJlciA9PiB7XG4gIGNvbnN0IHF1ZXJ5SW5kZXggPSBzb3VyY2UuaW5kZXhPZihcIj9cIik7XG4gIGNvbnN0IGhhc2hJbmRleCA9IHNvdXJjZS5pbmRleE9mKFwiI1wiKTtcbiAgY29uc3QgZW5kSW5kZXhDYW5kaWRhdGVzID0gW3F1ZXJ5SW5kZXgsIGhhc2hJbmRleF0uZmlsdGVyKFxuICAgIChpbmRleCkgPT4gaW5kZXggPj0gMCxcbiAgKTtcblxuICByZXR1cm4gZW5kSW5kZXhDYW5kaWRhdGVzLmxlbmd0aCA9PT0gMFxuICAgID8gc291cmNlLmxlbmd0aFxuICAgIDogTWF0aC5taW4oLi4uZW5kSW5kZXhDYW5kaWRhdGVzKTtcbn07XG5cbi8qKlxuICogR2V0cyB0aGUgdHJhaWxpbmcgZXh0ZW5zaW9uIGZyb20gYSBtb2R1bGUgc3BlY2lmaWVyIHN0cmluZy5cbiAqIEBwYXJhbSBzb3VyY2UgTW9kdWxlIHNwZWNpZmllciB0ZXh0LlxuICogQHJldHVybnMgRmlsZSBleHRlbnNpb24gaW5jbHVkaW5nIHRoZSBsZWFkaW5nIGRvdCB3aGVuIHByZXNlbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZXh0ZW5zaW9uID0gZ2V0VHJhaWxpbmdFeHRlbnNpb24oXCIuL2ZlYXR1cmUudHNcIik7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0VHJhaWxpbmdFeHRlbnNpb24gPSAoc291cmNlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBlbmRJbmRleCA9IGdldFNwZWNpZmllckVuZEluZGV4KHNvdXJjZSk7XG4gIGNvbnN0IGNsZWFuZWRTb3VyY2UgPSBzb3VyY2Uuc2xpY2UoMCwgZW5kSW5kZXgpO1xuICBjb25zdCBsYXN0U2xhc2hJbmRleCA9IE1hdGgubWF4KFxuICAgIGNsZWFuZWRTb3VyY2UubGFzdEluZGV4T2YoXCIvXCIpLFxuICAgIGNsZWFuZWRTb3VyY2UubGFzdEluZGV4T2YoXCJcXFxcXCIpLFxuICApO1xuICBjb25zdCBiYXNlbmFtZSA9IGNsZWFuZWRTb3VyY2Uuc2xpY2UobGFzdFNsYXNoSW5kZXggKyAxKTtcbiAgY29uc3QgZG90SW5kZXggPSBiYXNlbmFtZS5sYXN0SW5kZXhPZihcIi5cIik7XG5cbiAgaWYgKGRvdEluZGV4IDw9IDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgcmV0dXJuIGJhc2VuYW1lLnNsaWNlKGRvdEluZGV4KS50b0xvd2VyQ2FzZSgpO1xufTtcblxuLyoqXG4gKiBCdWlsZHMgdGhlIGZpeGVkIHNvdXJjZSBsaXRlcmFsIHRleHQgd2l0aCB0aGUgZGlzYWxsb3dlZCBleHRlbnNpb24gcmVtb3ZlZC5cbiAqIEBwYXJhbSBzb3VyY2VMaXRlcmFsIFNvdXJjZSBsaXRlcmFsIG5vZGUgdG8gZml4LlxuICogQHJldHVybnMgRml4ZWQgc291cmNlIHRleHQgaW5jbHVkaW5nIHN1cnJvdW5kaW5nIHF1b3Rlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaXhlZCA9IGJ1aWxkRml4ZWRTb3VyY2Uoc291cmNlTGl0ZXJhbCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgYnVpbGRGaXhlZFNvdXJjZSA9IChcbiAgc291cmNlTGl0ZXJhbDogRVNUcmVlLkxpdGVyYWwsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCByYXcgPSBzb3VyY2VMaXRlcmFsLnJhdztcbiAgY29uc3QgdmFsdWUgPSBzb3VyY2VMaXRlcmFsLnZhbHVlO1xuXG4gIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgfHwgcmF3ID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgcXVvdGVDaGFyID0gcmF3WzBdO1xuICBjb25zdCBlbmRJbmRleCA9IGdldFNwZWNpZmllckVuZEluZGV4KHZhbHVlKTtcbiAgY29uc3QgY2xlYW5lZFNvdXJjZSA9IHZhbHVlLnNsaWNlKDAsIGVuZEluZGV4KTtcbiAgY29uc3Qgc3VmZml4ID0gdmFsdWUuc2xpY2UoZW5kSW5kZXgpO1xuICBjb25zdCBsYXN0U2xhc2hJbmRleCA9IE1hdGgubWF4KFxuICAgIGNsZWFuZWRTb3VyY2UubGFzdEluZGV4T2YoXCIvXCIpLFxuICAgIGNsZWFuZWRTb3VyY2UubGFzdEluZGV4T2YoXCJcXFxcXCIpLFxuICApO1xuICBjb25zdCBiYXNlbmFtZSA9IGNsZWFuZWRTb3VyY2Uuc2xpY2UobGFzdFNsYXNoSW5kZXggKyAxKTtcbiAgY29uc3QgZG90SW5kZXggPSBiYXNlbmFtZS5sYXN0SW5kZXhPZihcIi5cIik7XG5cbiAgaWYgKGRvdEluZGV4IDw9IDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3Qgd2l0aG91dEV4dGVuc2lvbiA9IGNsZWFuZWRTb3VyY2Uuc2xpY2UoXG4gICAgMCxcbiAgICBjbGVhbmVkU291cmNlLmxlbmd0aCAtIGJhc2VuYW1lLmxlbmd0aCArIGRvdEluZGV4LFxuICApO1xuXG4gIHJldHVybiBgJHtTdHJpbmcocXVvdGVDaGFyKX0ke3dpdGhvdXRFeHRlbnNpb259JHtzdWZmaXh9JHtTdHJpbmcocXVvdGVDaGFyKX1gO1xufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIHNvdXJjZSBsaXRlcmFsIHNob3VsZCBiZSByZXBvcnRlZC5cbiAqIEBwYXJhbSBzb3VyY2VMaXRlcmFsIFNvdXJjZSBsaXRlcmFsIG5vZGUuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIHNvdXJjZSBpbmNsdWRlcyBhIGRpc2FsbG93ZWQgZmlsZSBleHRlbnNpb24uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZm9yYmlkZGVuID0gaGFzRGlzYWxsb3dlZEV4dGVuc2lvbihzb3VyY2VMaXRlcmFsKTtcbiAqIGBgYFxuICovXG5jb25zdCBoYXNEaXNhbGxvd2VkRXh0ZW5zaW9uID0gKHNvdXJjZUxpdGVyYWw6IEVTVHJlZS5MaXRlcmFsKTogYm9vbGVhbiA9PiB7XG4gIGlmICh0eXBlb2Ygc291cmNlTGl0ZXJhbC52YWx1ZSAhPT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGV4dGVuc2lvbiA9IGdldFRyYWlsaW5nRXh0ZW5zaW9uKHNvdXJjZUxpdGVyYWwudmFsdWUpO1xuXG4gIHJldHVybiBleHRlbnNpb24gIT09IHZvaWQgMCAmJiBkaXNhbGxvd2VkRXh0ZW5zaW9ucy5oYXMoZXh0ZW5zaW9uKTtcbn07XG5cbi8qKlxuICogUmVwb3J0cyBhIHN0YXRlbWVudCB3aGVuIGl0IHJlZmVyZW5jZXMgYSBzb3VyY2Ugd2l0aCBkaXNhbGxvd2VkIGV4dGVuc2lvbi5cbiAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgZXhlY3V0aW9uIGNvbnRleHQuXG4gKiBAcGFyYW0gc3RhdGVtZW50IFN0YXRlbWVudCB0aGF0IG1heSBpbmNsdWRlIGEgc291cmNlIGxpdGVyYWwuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVwb3J0V2hlblNvdXJjZUhhc0V4dGVuc2lvbihjb250ZXh0LCBzdGF0ZW1lbnQpO1xuICogYGBgXG4gKi9cbmNvbnN0IHJlcG9ydFdoZW5Tb3VyY2VIYXNFeHRlbnNpb24gPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIHN0YXRlbWVudDpcbiAgICB8IEVTVHJlZS5FeHBvcnRBbGxEZWNsYXJhdGlvblxuICAgIHwgRVNUcmVlLkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cbiAgICB8IEVTVHJlZS5JbXBvcnREZWNsYXJhdGlvbixcbik6IHZvaWQgPT4ge1xuICBjb25zdCBzb3VyY2VMaXRlcmFsID0gc3RhdGVtZW50LnNvdXJjZTtcblxuICBpZiAoc291cmNlTGl0ZXJhbCA9PT0gbnVsbCB8fCBzb3VyY2VMaXRlcmFsID09PSB2b2lkIDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoIWhhc0Rpc2FsbG93ZWRFeHRlbnNpb24oc291cmNlTGl0ZXJhbCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBmaXhlZFNvdXJjZSA9IGJ1aWxkRml4ZWRTb3VyY2Uoc291cmNlTGl0ZXJhbCk7XG5cbiAgY29uc3QgZml4ID1cbiAgICBmaXhlZFNvdXJjZSA9PT0gdm9pZCAwXG4gICAgICA/IHZvaWQgMFxuICAgICAgOiAoZml4ZXI6IFJ1bGUuUnVsZUZpeGVyKTogUnVsZS5GaXggPT5cbiAgICAgICAgICBmaXhlci5yZXBsYWNlVGV4dChzb3VyY2VMaXRlcmFsLCBmaXhlZFNvdXJjZSk7XG5cbiAgY29udGV4dC5yZXBvcnQoe1xuICAgIC4uLihmaXggIT09IHZvaWQgMCAmJiB7IGZpeCB9KSxcbiAgICBtZXNzYWdlSWQ6IFwidW5leHBlY3RlZEV4dGVuc2lvblwiLFxuICAgIG5vZGU6IHNvdXJjZUxpdGVyYWwsXG4gICAgLi4uKGZpeCAhPT0gdm9pZCAwICYmIHtcbiAgICAgIHN1Z2dlc3Q6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZpeCxcbiAgICAgICAgICBtZXNzYWdlSWQ6IFwicmVtb3ZlRXh0ZW5zaW9uXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pLFxuICB9KTtcbn07XG5cbi8qKlxuICogTmFycm93cyBvbmUgcHJvZ3JhbSBzdGF0ZW1lbnQgdG8gdGhlIHNvdXJjZS1iZWFyaW5nIGRlY2xhcmF0aW9ucyB0aGlzIHJ1bGUgaW5zcGVjdHMuXG4gKiBAcGFyYW0gc3RhdGVtZW50IFByb2dyYW0gc3RhdGVtZW50IG5vZGUuXG4gKiBAcmV0dXJucyBTb3VyY2UtYmVhcmluZyBkZWNsYXJhdGlvbiB3aGVuIHN1cHBvcnRlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBkZWNsYXJhdGlvbiA9IGFzU291cmNlRGVjbGFyYXRpb24oc3RhdGVtZW50KTtcbiAqIGBgYFxuICovXG5jb25zdCBhc1NvdXJjZURlY2xhcmF0aW9uID0gKFxuICBzdGF0ZW1lbnQ6IEVTVHJlZS5Qcm9ncmFtW1wiYm9keVwiXVtudW1iZXJdLFxuKTpcbiAgfCBFU1RyZWUuRXhwb3J0QWxsRGVjbGFyYXRpb25cbiAgfCBFU1RyZWUuRXhwb3J0TmFtZWREZWNsYXJhdGlvblxuICB8IEVTVHJlZS5JbXBvcnREZWNsYXJhdGlvblxuICB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChzdGF0ZW1lbnQudHlwZSA9PT0gXCJFeHBvcnRBbGxEZWNsYXJhdGlvblwiKSB7XG4gICAgcmV0dXJuIHN0YXRlbWVudDtcbiAgfVxuXG4gIGlmIChzdGF0ZW1lbnQudHlwZSA9PT0gXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIpIHtcbiAgICByZXR1cm4gc3RhdGVtZW50O1xuICB9XG5cbiAgaWYgKHN0YXRlbWVudC50eXBlID09PSBcIkltcG9ydERlY2xhcmF0aW9uXCIpIHtcbiAgICByZXR1cm4gc3RhdGVtZW50O1xuICB9XG5cbiAgcmV0dXJuIHZvaWQgMDtcbn07XG5cbi8qKiBFU0xpbnQgcnVsZSB0aGF0IGZvcmJpZHMgaW1wb3J0L2V4cG9ydCBtb2R1bGUgc3BlY2lmaWVycyB3aXRoIGV4cGxpY2l0IGZpbGUgZXh0ZW5zaW9ucy4gKi9cbmNvbnN0IG5vSW1wb3J0RXhwb3J0RXh0ZW5zaW9uc1J1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlOiAoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyID0+ICh7XG4gICAgUHJvZ3JhbShub2RlOiBFU1RyZWUuUHJvZ3JhbSk6IHZvaWQge1xuICAgICAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2Ygbm9kZS5ib2R5KSB7XG4gICAgICAgIGNvbnN0IGRlY2xhcmF0aW9uID0gYXNTb3VyY2VEZWNsYXJhdGlvbihzdGF0ZW1lbnQpO1xuXG4gICAgICAgIGlmIChkZWNsYXJhdGlvbiAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgcmVwb3J0V2hlblNvdXJjZUhhc0V4dGVuc2lvbihjb250ZXh0LCBkZWNsYXJhdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICB9KSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkZvcmJpZCBleHBsaWNpdCBmaWxlIGV4dGVuc2lvbnMgaW4gaW1wb3J0L2V4cG9ydCBtb2R1bGUgc3BlY2lmaWVycy5cIixcbiAgICAgIHJlY29tbWVuZGVkOiBmYWxzZSxcbiAgICAgIHVybDogXCJodHRwczovL2dpdGh1Yi5jb20vcGFybG90aS9lc2xpbnQtcGx1Z2luL2Jsb2IvbWFpbi9kb2NzL3J1bGVzL25vLWltcG9ydC1leHBvcnQtZXh0ZW5zaW9ucy5tZFwiLFxuICAgIH0sXG4gICAgZml4YWJsZTogXCJjb2RlXCIsXG4gICAgaGFzU3VnZ2VzdGlvbnM6IHRydWUsXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIHJlbW92ZUV4dGVuc2lvbjogXCJSZW1vdmUgdGhlIGZpbGUgZXh0ZW5zaW9uIGZyb20gdGhpcyBtb2R1bGUgc3BlY2lmaWVyLlwiLFxuICAgICAgdW5leHBlY3RlZEV4dGVuc2lvbjpcbiAgICAgICAgXCJBdm9pZCBmaWxlIGV4dGVuc2lvbnMgaW4gaW1wb3J0L2V4cG9ydCBtb2R1bGUgc3BlY2lmaWVycy5cIixcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogXCJwcm9ibGVtXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyBub0ltcG9ydEV4cG9ydEV4dGVuc2lvbnNSdWxlIH07XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-multiple-declarators/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-multiple-declarators/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAmFnC,4EAA4E;AAC5E,QAAA,MAAM,yBAAyB,EAAE,IAAI,CAAC,UAwBrC,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -42,6 +42,9 @@ const reportVariableDeclaration = (context, node) => {
|
|
|
42
42
|
...(fix !== void 0 && { fix }),
|
|
43
43
|
messageId: "singleDeclarator",
|
|
44
44
|
node: node,
|
|
45
|
+
...(fix !== void 0 && {
|
|
46
|
+
suggest: [{ fix, messageId: "splitDeclaration" }],
|
|
47
|
+
}),
|
|
45
48
|
});
|
|
46
49
|
};
|
|
47
50
|
/** ESLint rule implementation for single-declarator variable statements. */
|
|
@@ -58,12 +61,14 @@ const noMultipleDeclaratorsRule = {
|
|
|
58
61
|
url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/no-multiple-declarators.md",
|
|
59
62
|
},
|
|
60
63
|
fixable: "code",
|
|
64
|
+
hasSuggestions: true,
|
|
61
65
|
messages: {
|
|
62
66
|
singleDeclarator: "Declare exactly one variable per declaration statement.",
|
|
67
|
+
splitDeclaration: "Split this declaration into separate single-variable statements.",
|
|
63
68
|
},
|
|
64
69
|
schema: [],
|
|
65
70
|
type: "suggestion",
|
|
66
71
|
},
|
|
67
72
|
};
|
|
68
73
|
export { noMultipleDeclaratorsRule };
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vY29yZS9uby1tdWx0aXBsZS1kZWNsYXJhdG9ycy9ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLHFCQUFxQixFQUNyQixhQUFhLEVBQ2IsYUFBYSxHQUNkLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVyQzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxDQUMzQixJQUE2QixFQUM3QixZQUErQyxFQUMvQyxVQUE0QixFQUN1QixFQUFFO0lBQ3JELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUU3QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNqRSxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9ELElBQUksa0JBQWtCLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBcUIsRUFBWSxFQUFFLENBQ3pDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDcEIsSUFBSSxDQUFDLEtBQUssRUFDVixnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLENBQ3ZELENBQUM7QUFDTixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0seUJBQXlCLEdBQUcsQ0FDaEMsT0FBeUIsRUFDekIsSUFBNkIsRUFDdkIsRUFBRTtJQUNSLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO0lBRTdDLElBQUksWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxNQUFNLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRWpFLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDYixHQUFHLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDOUIsU0FBUyxFQUFFLGtCQUFrQjtRQUM3QixJQUFJLEVBQUUsSUFBNEI7UUFDbEMsR0FBRyxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsSUFBSTtZQUNwQixPQUFPLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztTQUNsRCxDQUFDO0tBQ0gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsNEVBQTRFO0FBQzVFLE1BQU0seUJBQXlCLEdBQW9CO0lBQ2pELE1BQU0sRUFBRSxDQUFDLE9BQXlCLEVBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELG1CQUFtQixFQUFFLENBQUMsSUFBZSxFQUFRLEVBQUU7WUFDN0MseUJBQXlCLENBQUMsT0FBTyxFQUFFLElBQStCLENBQUMsQ0FBQztRQUN0RSxDQUFDO0tBQ0YsQ0FBQztJQUNGLElBQUksRUFBRTtRQUNKLElBQUksRUFBRTtZQUNKLFdBQVcsRUFDVCxnRkFBZ0Y7WUFDbEYsV0FBVyxFQUFFLEtBQUs7WUFDbEIsR0FBRyxFQUFFLDBGQUEwRjtTQUNoRztRQUNELE9BQU8sRUFBRSxNQUFNO1FBQ2YsY0FBYyxFQUFFLElBQUk7UUFDcEIsUUFBUSxFQUFFO1lBQ1IsZ0JBQWdCLEVBQ2QseURBQXlEO1lBQzNELGdCQUFnQixFQUNkLGtFQUFrRTtTQUNyRTtRQUNELE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7S0FDbkI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB0eXBlIHtcbiAgU291cmNlQ29kZUFjY2VzcyxcbiAgVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsXG4gIFZhcmlhYmxlRGVjbGFyYXRvck5vZGUsXG59IGZyb20gXCIuL3R5cGVzXCI7XG5cbmltcG9ydCB7XG4gIGJ1aWxkUmVwbGFjZW1lbnQsXG4gIGNhbkZpeCxcbiAgZ2V0UmFuZ2VkRGVjbGFyYXRpb25zLFxuICBnZXRTb3VyY2VDb2RlLFxuICBnZXRTb3VyY2VUZXh0LFxufSBmcm9tIFwiLi9ydWxlLXV0aWxpdGllc1wiO1xuaW1wb3J0IHsgaGFzRml4RGF0YSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhdXRvZml4IGNhbGxiYWNrIHdoZW4gdGhlIGRlY2xhcmF0aW9uIGNhbiBiZSByZXdyaXR0ZW4gc2FmZWx5LlxuICogQHBhcmFtIG5vZGUgRGVjbGFyYXRpb24gbm9kZSB0byBpbnNwZWN0LlxuICogQHBhcmFtIGRlY2xhcmF0aW9ucyBEZWNsYXJhdG9ycyBmcm9tIHRoZSBkZWNsYXJhdGlvbiBzdGF0ZW1lbnQuXG4gKiBAcGFyYW0gc291cmNlQ29kZSBTb3VyY2UgYWNjZXNzIHdyYXBwZXIuXG4gKiBAcmV0dXJucyBGaXggY2FsbGJhY2sgd2hlbiB0aGUgZGVjbGFyYXRpb24gaXMgc2FmZSB0byBzcGxpdC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaXggPSBjcmVhdGVEZWNsYXJhdGlvbkZpeChub2RlLCBkZWNsYXJhdGlvbnMsIHNvdXJjZUNvZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZURlY2xhcmF0aW9uRml4ID0gKFxuICBub2RlOiBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSxcbiAgZGVjbGFyYXRpb25zOiByZWFkb25seSBWYXJpYWJsZURlY2xhcmF0b3JOb2RlW10sXG4gIHNvdXJjZUNvZGU6IFNvdXJjZUNvZGVBY2Nlc3MsXG4pOiAoKGZpeGVyOiBSdWxlLlJ1bGVGaXhlcikgPT4gUnVsZS5GaXgpIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3Qgc291cmNlVGV4dCA9IGdldFNvdXJjZVRleHQoc291cmNlQ29kZSk7XG5cbiAgaWYgKCFjYW5GaXgobm9kZSwgZGVjbGFyYXRpb25zLCBzb3VyY2VUZXh0KSB8fCAhaGFzRml4RGF0YShub2RlKSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCByYW5nZWREZWNsYXJhdGlvbnMgPSBnZXRSYW5nZWREZWNsYXJhdGlvbnMoZGVjbGFyYXRpb25zKTtcbiAgaWYgKHJhbmdlZERlY2xhcmF0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIHJldHVybiAoZml4ZXI6IFJ1bGUuUnVsZUZpeGVyKTogUnVsZS5GaXggPT5cbiAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKFxuICAgICAgbm9kZS5yYW5nZSxcbiAgICAgIGJ1aWxkUmVwbGFjZW1lbnQobm9kZSwgcmFuZ2VkRGVjbGFyYXRpb25zLCBzb3VyY2VDb2RlKSxcbiAgICApO1xufTtcblxuLyoqXG4gKiBSZXBvcnRzIGRlY2xhcmF0aW9ucyB0aGF0IGNvbnRhaW4gbW9yZSB0aGFuIG9uZSBkZWNsYXJhdG9yLlxuICogQHBhcmFtIGNvbnRleHQgUnVsZSBleGVjdXRpb24gY29udGV4dC5cbiAqIEBwYXJhbSBub2RlIERlY2xhcmF0aW9uIG5vZGUgdG8gcmVwb3J0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydFZhcmlhYmxlRGVjbGFyYXRpb24oY29udGV4dCwgbm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVwb3J0VmFyaWFibGVEZWNsYXJhdGlvbiA9IChcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgbm9kZTogVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgZGVjbGFyYXRpb25zID0gbm9kZS5kZWNsYXJhdGlvbnMgPz8gW107XG5cbiAgaWYgKGRlY2xhcmF0aW9ucy5sZW5ndGggPD0gMSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHNvdXJjZUNvZGUgPSBnZXRTb3VyY2VDb2RlKGNvbnRleHQpO1xuICBjb25zdCBmaXggPSBjcmVhdGVEZWNsYXJhdGlvbkZpeChub2RlLCBkZWNsYXJhdGlvbnMsIHNvdXJjZUNvZGUpO1xuXG4gIGNvbnRleHQucmVwb3J0KHtcbiAgICAuLi4oZml4ICE9PSB2b2lkIDAgJiYgeyBmaXggfSksXG4gICAgbWVzc2FnZUlkOiBcInNpbmdsZURlY2xhcmF0b3JcIixcbiAgICBub2RlOiBub2RlIGFzIHVua25vd24gYXMgUnVsZS5Ob2RlLFxuICAgIC4uLihmaXggIT09IHZvaWQgMCAmJiB7XG4gICAgICBzdWdnZXN0OiBbeyBmaXgsIG1lc3NhZ2VJZDogXCJzcGxpdERlY2xhcmF0aW9uXCIgfV0sXG4gICAgfSksXG4gIH0pO1xufTtcblxuLyoqIEVTTGludCBydWxlIGltcGxlbWVudGF0aW9uIGZvciBzaW5nbGUtZGVjbGFyYXRvciB2YXJpYWJsZSBzdGF0ZW1lbnRzLiAqL1xuY29uc3Qgbm9NdWx0aXBsZURlY2xhcmF0b3JzUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGU6IChjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIgPT4gKHtcbiAgICBWYXJpYWJsZURlY2xhcmF0aW9uOiAobm9kZTogUnVsZS5Ob2RlKTogdm9pZCA9PiB7XG4gICAgICByZXBvcnRWYXJpYWJsZURlY2xhcmF0aW9uKGNvbnRleHQsIG5vZGUgYXMgVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpO1xuICAgIH0sXG4gIH0pLFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiUmVxdWlyZSB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgdG8gY29udGFpbiBleGFjdGx5IG9uZSBkZWNsYXJhdG9yIHBlciBzdGF0ZW1lbnQuXCIsXG4gICAgICByZWNvbW1lbmRlZDogZmFsc2UsXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL3BhcmxvdGkvZXNsaW50LXBsdWdpbi9ibG9iL21haW4vZG9jcy9ydWxlcy9uby1tdWx0aXBsZS1kZWNsYXJhdG9ycy5tZFwiLFxuICAgIH0sXG4gICAgZml4YWJsZTogXCJjb2RlXCIsXG4gICAgaGFzU3VnZ2VzdGlvbnM6IHRydWUsXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIHNpbmdsZURlY2xhcmF0b3I6XG4gICAgICAgIFwiRGVjbGFyZSBleGFjdGx5IG9uZSB2YXJpYWJsZSBwZXIgZGVjbGFyYXRpb24gc3RhdGVtZW50LlwiLFxuICAgICAgc3BsaXREZWNsYXJhdGlvbjpcbiAgICAgICAgXCJTcGxpdCB0aGlzIGRlY2xhcmF0aW9uIGludG8gc2VwYXJhdGUgc2luZ2xlLXZhcmlhYmxlIHN0YXRlbWVudHMuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6IFwic3VnZ2VzdGlvblwiLFxuICB9LFxufTtcblxuZXhwb3J0IHsgbm9NdWx0aXBsZURlY2xhcmF0b3JzUnVsZSB9O1xuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-useless-delegation/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-useless-delegation/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA6OnC,kFAAkF;AAClF,QAAA,MAAM,uBAAuB,EAAE,IAAI,CAAC,UAqCnC,CAAC;AAEF,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -106,16 +106,15 @@ const forwardsParameter = (argument, parameter) => {
|
|
|
106
106
|
return getIdentifierName(argument) === parameter.name;
|
|
107
107
|
};
|
|
108
108
|
/**
|
|
109
|
-
* Determines whether a
|
|
110
|
-
* @param
|
|
111
|
-
* @returns Whether the
|
|
109
|
+
* Determines whether a node is a plain named reference.
|
|
110
|
+
* @param node Candidate receiver node to inspect.
|
|
111
|
+
* @returns Whether the node is a plain identifier reference.
|
|
112
112
|
* @example
|
|
113
113
|
* ```typescript
|
|
114
|
-
* const
|
|
114
|
+
* const isNamed = isNamedReceiver({ type: "Identifier" });
|
|
115
115
|
* ```
|
|
116
116
|
*/
|
|
117
|
-
const
|
|
118
|
-
asNode(callee["object"])?.type === "Literal";
|
|
117
|
+
const isNamedReceiver = (node) => node?.type === "Identifier";
|
|
119
118
|
/**
|
|
120
119
|
* Determines whether a function does nothing except directly call another function.
|
|
121
120
|
* @param functionNode Function node to inspect.
|
|
@@ -135,7 +134,12 @@ const isUselessDelegation = (functionNode, functionName) => {
|
|
|
135
134
|
parameters === void 0 ||
|
|
136
135
|
arguments_ === void 0 ||
|
|
137
136
|
callee === void 0 ||
|
|
138
|
-
|
|
137
|
+
// A method call is only a replaceable delegation when its receiver is a
|
|
138
|
+
// plain named reference (e.g. `service.run`). Expression receivers such
|
|
139
|
+
// as type assertions, calls, or literals cannot be inlined at the call
|
|
140
|
+
// site, so the wrapper is not useless.
|
|
141
|
+
(callee.type === "MemberExpression" &&
|
|
142
|
+
!isNamedReceiver(asNode(callee["object"]))) ||
|
|
139
143
|
getIdentifierName(callee) === functionName ||
|
|
140
144
|
arguments_.length !== parameters.length) {
|
|
141
145
|
return false;
|
|
@@ -197,4 +201,4 @@ const noUselessDelegationRule = {
|
|
|
197
201
|
},
|
|
198
202
|
};
|
|
199
203
|
export { noUselessDelegationRule };
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vY29yZS9uby11c2VsZXNzLWRlbGVnYXRpb24vcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQkE7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQWMsRUFBb0IsRUFBRSxDQUNsRCxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxNQUFNLElBQUksS0FBSztJQUM1RCxDQUFDLENBQUUsS0FBYztJQUNqQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFYjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBYyxFQUFzQixFQUFFLENBQ3pELEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUMsQ0FBRSxLQUFnQjtJQUNuQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFYjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFzQixFQUFzQixFQUFFLENBQ3ZFLElBQUksRUFBRSxJQUFJLEtBQUssWUFBWSxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFFBQVE7SUFDN0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDZCxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFYjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxZQUFrQixFQUFvQixFQUFFO0lBQ2hFLElBQUksWUFBWSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNuRSxPQUFP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Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbi8qKiBPbmUgbmFtZWQgcGFyYW1ldGVyIGFuZCB3aGV0aGVyIGl0IG11c3QgYmUgc3ByZWFkIGF0IHRoZSBjYWxsIHNpdGUuICovXG5pbnRlcmZhY2UgRGVsZWdhdGVkUGFyYW1ldGVyIHtcbiAgLyoqIFdoZXRoZXIgdGhpcyBwYXJhbWV0ZXIgdXNlcyByZXN0IHN5bnRheC4gKi9cbiAgaXNSZXN0OiBib29sZWFuO1xuICAvKiogUGFyYW1ldGVyIGlkZW50aWZpZXIgbmFtZS4gKi9cbiAgbmFtZTogc3RyaW5nO1xufVxuXG4vKiogTWluaW1hbCBFU1RyZWUgbm9kZSBzaGFwZSB1c2VkIHRvIGluc3BlY3QgcGFzcy10aHJvdWdoIGZ1bmN0aW9ucy4gKi9cbmludGVyZmFjZSBOb2RlIHtcbiAgLyoqIER5bmFtaWNhbGx5IHJlYWQgY2hpbGQgbm9kZXMgYW5kIHBhcnNlci1zcGVjaWZpYyBwcm9wZXJ0aWVzLiAqL1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICAvKiogV2hldGhlciB0aGUgZnVuY3Rpb24gaXMgYXN5bmNocm9ub3VzLiAqL1xuICBhc3luYz86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRoZSBmdW5jdGlvbiBpcyBhIGdlbmVyYXRvci4gKi9cbiAgZ2VuZXJhdG9yPzogYm9vbGVhbjtcbiAgLyoqIEVTVHJlZSBkaXNjcmltaW5hdG9yLiAqL1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgYSBub2RlIHZhbHVlIHdoZW4gaXQgaXMgYW4gRVNUcmVlIG5vZGUuXG4gKiBAcGFyYW0gdmFsdWUgQ2FuZGlkYXRlIEFTVCB2YWx1ZS5cbiAqIEByZXR1cm5zIFRoZSB2YWx1ZSBhcyBhbiBFU1RyZWUgbm9kZSB3aGVuIGl0IGhhcyBhIHR5cGUgZGlzY3JpbWluYXRvci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBub2RlID0gYXNOb2RlKHsgdHlwZTogXCJJZGVudGlmaWVyXCIgfSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgYXNOb2RlID0gKHZhbHVlOiB1bmtub3duKTogTm9kZSB8IHVuZGVmaW5lZCA9PlxuICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgdmFsdWUgIT09IG51bGwgJiYgXCJ0eXBlXCIgaW4gdmFsdWVcbiAgICA/ICh2YWx1ZSBhcyBOb2RlKVxuICAgIDogdm9pZCAwO1xuXG4vKipcbiAqIFJlc29sdmVzIGEgbm9kZSBhcnJheSB3aGlsZSByZWplY3RpbmcgbWFsZm9ybWVkIEFTVCBkYXRhLlxuICogQHBhcmFtIHZhbHVlIENhbmRpZGF0ZSBBU1QgdmFsdWUuXG4gKiBAcmV0dXJucyBBU1Qgbm9kZXMgd2hlbiBldmVyeSBhcnJheSBpdGVtIGlzIGEgbm9kZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBub2RlcyA9IGFzTm9kZUFycmF5KFt7IHR5cGU6IFwiSWRlbnRpZmllclwiIH1dKTtcbiAqIGBgYFxuICovXG5jb25zdCBhc05vZGVBcnJheSA9ICh2YWx1ZTogdW5rbm93bik6IE5vZGVbXSB8IHVuZGVmaW5lZCA9PlxuICBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5ldmVyeSgoaXRlbSkgPT4gYXNOb2RlKGl0ZW0pICE9PSB2b2lkIDApXG4gICAgPyAodmFsdWUgYXMgTm9kZVtdKVxuICAgIDogdm9pZCAwO1xuXG4vKipcbiAqIFJlYWRzIGFuIGlkZW50aWZpZXIgbmFtZSBmcm9tIGEgbm9kZS5cbiAqIEBwYXJhbSBub2RlIENhbmRpZGF0ZSBpZGVudGlmaWVyIG5vZGUuXG4gKiBAcmV0dXJucyBJZGVudGlmaWVyIG5hbWUgd2hlbiB0aGUgbm9kZSBpcyBhbiBpZGVudGlmaWVyLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5hbWUgPSBnZXRJZGVudGlmaWVyTmFtZSh7IG5hbWU6IFwicnVuXCIsIHR5cGU6IFwiSWRlbnRpZmllclwiIH0pO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldElkZW50aWZpZXJOYW1lID0gKG5vZGU6IE5vZGUgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT5cbiAgbm9kZT8udHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiYgdHlwZW9mIG5vZGVbXCJuYW1lXCJdID09PSBcInN0cmluZ1wiXG4gICAgPyBub2RlW1wibmFtZVwiXVxuICAgIDogdm9pZCAwO1xuXG4vKipcbiAqIEdldHMgdGhlIGNhbGxlZCBleHByZXNzaW9uIGZyb20gYSBmdW5jdGlvbiB3aXRoIG9uZSByZXR1cm4gc3RhdGVtZW50LlxuICogQHBhcmFtIGZ1bmN0aW9uTm9kZSBGdW5jdGlvbiBub2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUaGUgZGlyZWN0bHkgcmV0dXJuZWQgY2FsbCBleHByZXNzaW9uIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBjYWxsID0gZ2V0RGVsZWdhdGVkQ2FsbChmdW5jdGlvbk5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldERlbGVnYXRlZENhbGwgPSAoZnVuY3Rpb25Ob2RlOiBOb2RlKTogTm9kZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChmdW5jdGlvbk5vZGUuYXN5bmMgPT09IHRydWUgfHwgZnVuY3Rpb25Ob2RlLmdlbmVyYXRvciA9PT0gdHJ1ZSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBib2R5ID0gYXNOb2RlKGZ1bmN0aW9uTm9kZVtcImJvZHlcIl0pO1xuICBpZiAoYm9keSA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGlmIChib2R5LnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIikge1xuICAgIHJldHVybiBib2R5O1xuICB9XG5cbiAgY29uc3Qgc3RhdGVtZW50cyA9IGFzTm9kZUFycmF5KGJvZHlbXCJib2R5XCJdKTtcbiAgaWYgKGJvZHkudHlwZSAhPT0gXCJCbG9ja1N0YXRlbWVudFwiIHx8IHN0YXRlbWVudHM/Lmxlbmd0aCAhPT0gMSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCByZXR1cm5TdGF0ZW1lbnQgPSBzdGF0ZW1lbnRzWzBdO1xuICByZXR1cm4gcmV0dXJuU3RhdGVtZW50Py50eXBlID09PSBcIlJldHVyblN0YXRlbWVudFwiXG4gICAgPyBhc05vZGUocmV0dXJuU3RhdGVtZW50W1wiYXJndW1lbnRcIl0pXG4gICAgOiB2b2lkIDA7XG59O1xuXG4vKipcbiAqIEdldHMgcGFyYW1ldGVyIG5hbWVzIGFuZCB3aGV0aGVyIGVhY2ggcGFyYW1ldGVyIGlzIGEgcmVzdCBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0gZnVuY3Rpb25Ob2RlIEZ1bmN0aW9uIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIE5hbWVkIHBhcmFtZXRlciBtZXRhZGF0YSB3aGVuIGV2ZXJ5IHBhcmFtZXRlciBpcyBzdXBwb3J0ZWQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcGFyYW1ldGVycyA9IGdldFBhcmFtZXRlcnMoZnVuY3Rpb25Ob2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRQYXJhbWV0ZXJzID0gKFxuICBmdW5jdGlvbk5vZGU6IE5vZGUsXG4pOiBEZWxlZ2F0ZWRQYXJhbWV0ZXJbXSB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHBhcmFtZXRlcnMgPSBhc05vZGVBcnJheShmdW5jdGlvbk5vZGVbXCJwYXJhbXNcIl0pO1xuICBpZiAocGFyYW1ldGVycyA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogRGVsZWdhdGVkUGFyYW1ldGVyW10gPSBbXTtcbiAgZm9yIChjb25zdCBwYXJhbWV0ZXIgb2YgcGFyYW1ldGVycykge1xuICAgIGNvbnN0IGlzUmVzdCA9IHBhcmFtZXRlci50eXBlID09PSBcIlJlc3RFbGVtZW50XCI7XG4gICAgY29uc3QgbmFtZSA9IGdldElkZW50aWZpZXJOYW1lKFxuICAgICAgaXNSZXN0ID8gYXNOb2RlKHBhcmFtZXRlcltcImFyZ3VtZW50XCJdKSA6IHBhcmFtZXRlcixcbiAgICApO1xuICAgIGlmIChuYW1lID09PSB2b2lkIDApIHtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuXG4gICAgcmVzdWx0LnB1c2goeyBpc1Jlc3QsIG5hbWUgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgb25lIGNhbGwgYXJndW1lbnQgZm9yd2FyZHMgaXRzIGNvcnJlc3BvbmRpbmcgcGFyYW1ldGVyLlxuICogQHBhcmFtIGFyZ3VtZW50IENhbGwgYXJndW1lbnQgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSBwYXJhbWV0ZXIgQ29ycmVzcG9uZGluZyBmdW5jdGlvbiBwYXJhbWV0ZXIuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBmb3J3YXJkcyB0aGUgcGFyYW1ldGVyIHdpdGhvdXQgY2hhbmdlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGZvcndhcmRzID0gZm9yd2FyZHNQYXJhbWV0ZXIoYXJndW1lbnQsIHBhcmFtZXRlcik7XG4gKiBgYGBcbiAqL1xuY29uc3QgZm9yd2FyZHNQYXJhbWV0ZXIgPSAoXG4gIGFyZ3VtZW50OiBOb2RlLFxuICBwYXJhbWV0ZXI6IERlbGVnYXRlZFBhcmFtZXRlcixcbik6IGJvb2xlYW4gPT4ge1xuICBpZiAocGFyYW1ldGVyLmlzUmVzdCkge1xuICAgIHJldHVybiAoXG4gICAgICBhcmd1bWVudC50eXBlID09PSBcIlNwcmVhZEVsZW1lbnRcIiAmJlxuICAgICAgZ2V0SWRlbnRpZmllck5hbWUoYXNOb2RlKGFyZ3VtZW50W1wiYXJndW1lbnRcIl0pKSA9PT0gcGFyYW1ldGVyLm5hbWVcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGdldElkZW50aWZpZXJOYW1lKGFyZ3VtZW50KSA9PT0gcGFyYW1ldGVyLm5hbWU7XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGNhbGwgaW52b2tlcyBhIG1ldGhvZCBvbiBhIGxpdGVyYWwgdmFsdWUuXG4gKiBAcGFyYW0gY2FsbGVlIENhbGwgdGFyZ2V0IHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSB0YXJnZXQgaXMgYSBtZW1iZXIgYWNjZXNzIG9uIGEgbGl0ZXJhbCByZWNlaXZlci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBpc0xpdGVyYWxDYWxsID0gaXNMaXRlcmFsTWVtYmVyQ2FsbChjYWxsZWUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzTGl0ZXJhbE1lbWJlckNhbGwgPSAoY2FsbGVlOiBOb2RlKTogYm9vbGVhbiA9PlxuICBjYWxsZWUudHlwZSA9PT0gXCJNZW1iZXJFeHByZXNzaW9uXCIgJiZcbiAgYXNOb2RlKGNhbGxlZVtcIm9iamVjdFwiXSk/LnR5cGUgPT09IFwiTGl0ZXJhbFwiO1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGZ1bmN0aW9uIGRvZXMgbm90aGluZyBleGNlcHQgZGlyZWN0bHkgY2FsbCBhbm90aGVyIGZ1bmN0aW9uLlxuICogQHBhcmFtIGZ1bmN0aW9uTm9kZSBGdW5jdGlvbiBub2RlIHRvIGluc3BlY3QuXG4gKiBAcGFyYW0gZnVuY3Rpb25OYW1lIERlY2xhcmVkIHdyYXBwZXIgZnVuY3Rpb24gbmFtZS5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGZ1bmN0aW9uIGlzIGFuIGV4YWN0IHN5bmNocm9ub3VzIGRlbGVnYXRpb24uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaXNEZWxlZ2F0aW9uID0gaXNVc2VsZXNzRGVsZWdhdGlvbihmdW5jdGlvbk5vZGUsIFwicnVuXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzVXNlbGVzc0RlbGVnYXRpb24gPSAoXG4gIGZ1bmN0aW9uTm9kZTogTm9kZSxcbiAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4pOiBib29sZWFuID0+IHtcbiAgY29uc3QgY2FsbCA9IGdldERlbGVnYXRlZENhbGwoZnVuY3Rpb25Ob2RlKTtcbiAgY29uc3QgcGFyYW1ldGVycyA9IGdldFBhcmFtZXRlcnMoZnVuY3Rpb25Ob2RlKTtcbiAgY29uc3QgYXJndW1lbnRzXyA9IGFzTm9kZUFycmF5KGNhbGw/LltcImFyZ3VtZW50c1wiXSk7XG4gIGNvbnN0IGNhbGxlZSA9IGFzTm9kZShjYWxsPy5bXCJjYWxsZWVcIl0pO1xuXG4gIGlmIChcbiAgICBjYWxsPy50eXBlICE9PSBcIkNhbGxFeHByZXNzaW9uXCIgfHxcbiAgICBwYXJhbWV0ZXJzID09PSB2b2lkIDAgfHxcbiAgICBhcmd1bWVudHNfID09PSB2b2lkIDAgfHxcbiAgICBjYWxsZWUgPT09IHZvaWQgMCB8fFxuICAgIGlzTGl0ZXJhbE1lbWJlckNhbGwoY2FsbGVlKSB8fFxuICAgIGdldElkZW50aWZpZXJOYW1lKGNhbGxlZSkgPT09IGZ1bmN0aW9uTmFtZSB8fFxuICAgIGFyZ3VtZW50c18ubGVuZ3RoICE9PSBwYXJhbWV0ZXJzLmxlbmd0aFxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gYXJndW1lbnRzXy5ldmVyeSgoYXJndW1lbnQsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgcGFyYW1ldGVyID0gcGFyYW1ldGVyc1tpbmRleF07XG4gICAgcmV0dXJuIHBhcmFtZXRlciAhPT0gdm9pZCAwICYmIGZvcndhcmRzUGFyYW1ldGVyKGFyZ3VtZW50LCBwYXJhbWV0ZXIpO1xuICB9KTtcbn07XG5cbi8qKlxuICogUmVwb3J0cyBhIGZ1bmN0aW9uIHdoZW4gaXQgaXMgYSBuby1vcCBkZWxlZ2F0aW9uLlxuICogQHBhcmFtIGNvbnRleHQgUnVsZSBleGVjdXRpb24gY29udGV4dC5cbiAqIEBwYXJhbSBmdW5jdGlvbk5vZGUgRnVuY3Rpb24gbm9kZSB0byBpbnNwZWN0LlxuICogQHBhcmFtIG5hbWVOb2RlIERlY2xhcmVkIHdyYXBwZXIgbmFtZSBub2RlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydElmVXNlbGVzc0RlbGVnYXRpb24oY29udGV4dCwgZnVuY3Rpb25Ob2RlLCBuYW1lTm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVwb3J0SWZVc2VsZXNzRGVsZWdhdGlvbiA9IChcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgZnVuY3Rpb25Ob2RlOiBOb2RlLFxuICBuYW1lTm9kZTogTm9kZSB8IHVuZGVmaW5lZCxcbik6IHZvaWQgPT4ge1xuICBjb25zdCBmdW5jdGlvbk5hbWUgPSBnZXRJZGVudGlmaWVyTmFtZShuYW1lTm9kZSk7XG4gIGlmIChcbiAgICBmdW5jdGlvbk5hbWUgPT09IHZvaWQgMCB8fFxuICAgICFpc1VzZWxlc3NEZWxlZ2F0aW9uKGZ1bmN0aW9uTm9kZSwgZnVuY3Rpb25OYW1lKVxuICApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb250ZXh0LnJlcG9ydCh7XG4gICAgbWVzc2FnZUlkOiBcInVzZWxlc3NEZWxlZ2F0aW9uXCIsXG4gICAgbm9kZTogbmFtZU5vZGUgYXMgdW5rbm93biBhcyBSdWxlLk5vZGUsXG4gIH0pO1xufTtcblxuLyoqIEVTTGludCBydWxlIGltcGxlbWVudGF0aW9uIGZvciBmdW5jdGlvbnMgdGhhdCBvbmx5IGZvcndhcmQgdGhlaXIgYXJndW1lbnRzLiAqL1xuY29uc3Qgbm9Vc2VsZXNzRGVsZWdhdGlvblJ1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlOiAoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyID0+ICh7XG4gICAgRnVuY3Rpb25EZWNsYXJhdGlvbjogKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgZnVuY3Rpb25Ob2RlID0gbm9kZSBhcyB1bmtub3duIGFzIE5vZGU7XG4gICAgICByZXBvcnRJZlVzZWxlc3NEZWxlZ2F0aW9uKFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBmdW5jdGlvbk5vZGUsXG4gICAgICAgIGFzTm9kZShmdW5jdGlvbk5vZGVbXCJpZFwiXSksXG4gICAgICApO1xuICAgIH0sXG4gICAgVmFyaWFibGVEZWNsYXJhdG9yOiAobm9kZTogUnVsZS5Ob2RlKTogdm9pZCA9PiB7XG4gICAgICBjb25zdCBkZWNsYXJhdG9yID0gbm9kZSBhcyB1bmtub3duIGFzIE5vZGU7XG4gICAgICBjb25zdCBpbml0aWFsaXplciA9IGFzTm9kZShkZWNsYXJhdG9yW1wiaW5pdFwiXSk7XG4gICAgICBpZiAoXG4gICAgICAgIGluaXRpYWxpemVyPy50eXBlICE9PSBcIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCIgJiZcbiAgICAgICAgaW5pdGlhbGl6ZXI/LnR5cGUgIT09IFwiRnVuY3Rpb25FeHByZXNzaW9uXCJcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJlcG9ydElmVXNlbGVzc0RlbGVnYXRpb24oY29udGV4dCwgaW5pdGlhbGl6ZXIsIGFzTm9kZShkZWNsYXJhdG9yW1wiaWRcIl0pKTtcbiAgICB9LFxuICB9KSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkRpc2FsbG93IG5hbWVkIGZ1bmN0aW9ucyB0aGF0IG9ubHkgZGVsZWdhdGUgZGlyZWN0bHkgdG8gYW5vdGhlciBjYWxsLlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvbm8tdXNlbGVzcy1kZWxlZ2F0aW9uLm1kXCIsXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgdXNlbGVzc0RlbGVnYXRpb246XG4gICAgICAgIFwiVGhpcyBmdW5jdGlvbiBvbmx5IGRlbGVnYXRlcyB0byBhbm90aGVyIGNhbGw7IHJlbW92ZSB0aGUgd3JhcHBlciBvciBjYWxsIHRoZSB0YXJnZXQgZGlyZWN0bHkuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6IFwic3VnZ2VzdGlvblwiLFxuICB9LFxufTtcblxuZXhwb3J0IHsgbm9Vc2VsZXNzRGVsZWdhdGlvblJ1bGUgfTtcbiJdfQ==
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vY29yZS9uby11c2VsZXNzLWRlbGVnYXRpb24vcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQkE7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQWMsRUFBb0IsRUFBRSxDQUNsRCxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxNQUFNLElBQUksS0FBSztJQUM1RCxDQUFDLENBQUUsS0FBYztJQUNqQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFYjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBYyxFQUFzQixFQUFFLENBQ3pELEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUMsQ0FBRSxLQUFnQjtJQUNuQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFYjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFzQixFQUFzQixFQUFFLENBQ3ZFLElBQUksRUFBRSxJQUFJLEtBQUssWUFBWSxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFFBQVE7SUFDN0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDZCxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFYjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxZQUFrQixFQUFvQixFQUFFO0lBQ2hFLElBQUksWUFBWSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNuRSxPQUFP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Q2YsK0ZBQStGO1NBQ2xHO1FBQ0QsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsWUFBWTtLQUNuQjtDQUNGLENBQUM7QUFFRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuLyoqIE9uZSBuYW1lZCBwYXJhbWV0ZXIgYW5kIHdoZXRoZXIgaXQgbXVzdCBiZSBzcHJlYWQgYXQgdGhlIGNhbGwgc2l0ZS4gKi9cbmludGVyZmFjZSBEZWxlZ2F0ZWRQYXJhbWV0ZXIge1xuICAvKiogV2hldGhlciB0aGlzIHBhcmFtZXRlciB1c2VzIHJlc3Qgc3ludGF4LiAqL1xuICBpc1Jlc3Q6IGJvb2xlYW47XG4gIC8qKiBQYXJhbWV0ZXIgaWRlbnRpZmllciBuYW1lLiAqL1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBNaW5pbWFsIEVTVHJlZSBub2RlIHNoYXBlIHVzZWQgdG8gaW5zcGVjdCBwYXNzLXRocm91Z2ggZnVuY3Rpb25zLiAqL1xuaW50ZXJmYWNlIE5vZGUge1xuICAvKiogRHluYW1pY2FsbHkgcmVhZCBjaGlsZCBub2RlcyBhbmQgcGFyc2VyLXNwZWNpZmljIHByb3BlcnRpZXMuICovXG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gIC8qKiBXaGV0aGVyIHRoZSBmdW5jdGlvbiBpcyBhc3luY2hyb25vdXMuICovXG4gIGFzeW5jPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdGhlIGZ1bmN0aW9uIGlzIGEgZ2VuZXJhdG9yLiAqL1xuICBnZW5lcmF0b3I/OiBib29sZWFuO1xuICAvKiogRVNUcmVlIGRpc2NyaW1pbmF0b3IuICovXG4gIHR5cGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBhIG5vZGUgdmFsdWUgd2hlbiBpdCBpcyBhbiBFU1RyZWUgbm9kZS5cbiAqIEBwYXJhbSB2YWx1ZSBDYW5kaWRhdGUgQVNUIHZhbHVlLlxuICogQHJldHVybnMgVGhlIHZhbHVlIGFzIGFuIEVTVHJlZSBub2RlIHdoZW4gaXQgaGFzIGEgdHlwZSBkaXNjcmltaW5hdG9yLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5vZGUgPSBhc05vZGUoeyB0eXBlOiBcIklkZW50aWZpZXJcIiB9KTtcbiAqIGBgYFxuICovXG5jb25zdCBhc05vZGUgPSAodmFsdWU6IHVua25vd24pOiBOb2RlIHwgdW5kZWZpbmVkID0+XG4gIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPT0gbnVsbCAmJiBcInR5cGVcIiBpbiB2YWx1ZVxuICAgID8gKHZhbHVlIGFzIE5vZGUpXG4gICAgOiB2b2lkIDA7XG5cbi8qKlxuICogUmVzb2x2ZXMgYSBub2RlIGFycmF5IHdoaWxlIHJlamVjdGluZyBtYWxmb3JtZWQgQVNUIGRhdGEuXG4gKiBAcGFyYW0gdmFsdWUgQ2FuZGlkYXRlIEFTVCB2YWx1ZS5cbiAqIEByZXR1cm5zIEFTVCBub2RlcyB3aGVuIGV2ZXJ5IGFycmF5IGl0ZW0gaXMgYSBub2RlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5vZGVzID0gYXNOb2RlQXJyYXkoW3sgdHlwZTogXCJJZGVudGlmaWVyXCIgfV0pO1xuICogYGBgXG4gKi9cbmNvbnN0IGFzTm9kZUFycmF5ID0gKHZhbHVlOiB1bmtub3duKTogTm9kZVtdIHwgdW5kZWZpbmVkID0+XG4gIEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmV2ZXJ5KChpdGVtKSA9PiBhc05vZGUoaXRlbSkgIT09IHZvaWQgMClcbiAgICA/ICh2YWx1ZSBhcyBOb2RlW10pXG4gICAgOiB2b2lkIDA7XG5cbi8qKlxuICogUmVhZHMgYW4gaWRlbnRpZmllciBuYW1lIGZyb20gYSBub2RlLlxuICogQHBhcmFtIG5vZGUgQ2FuZGlkYXRlIGlkZW50aWZpZXIgbm9kZS5cbiAqIEByZXR1cm5zIElkZW50aWZpZXIgbmFtZSB3aGVuIHRoZSBub2RlIGlzIGFuIGlkZW50aWZpZXIuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbmFtZSA9IGdldElkZW50aWZpZXJOYW1lKHsgbmFtZTogXCJydW5cIiwgdHlwZTogXCJJZGVudGlmaWVyXCIgfSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0SWRlbnRpZmllck5hbWUgPSAobm9kZTogTm9kZSB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PlxuICBub2RlPy50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJiB0eXBlb2Ygbm9kZVtcIm5hbWVcIl0gPT09IFwic3RyaW5nXCJcbiAgICA/IG5vZGVbXCJuYW1lXCJdXG4gICAgOiB2b2lkIDA7XG5cbi8qKlxuICogR2V0cyB0aGUgY2FsbGVkIGV4cHJlc3Npb24gZnJvbSBhIGZ1bmN0aW9uIHdpdGggb25lIHJldHVybiBzdGF0ZW1lbnQuXG4gKiBAcGFyYW0gZnVuY3Rpb25Ob2RlIEZ1bmN0aW9uIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFRoZSBkaXJlY3RseSByZXR1cm5lZCBjYWxsIGV4cHJlc3Npb24gd2hlbiBwcmVzZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGNhbGwgPSBnZXREZWxlZ2F0ZWRDYWxsKGZ1bmN0aW9uTm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0RGVsZWdhdGVkQ2FsbCA9IChmdW5jdGlvbk5vZGU6IE5vZGUpOiBOb2RlIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKGZ1bmN0aW9uTm9kZS5hc3luYyA9PT0gdHJ1ZSB8fCBmdW5jdGlvbk5vZGUuZ2VuZXJhdG9yID09PSB0cnVlKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IGJvZHkgPSBhc05vZGUoZnVuY3Rpb25Ob2RlW1wiYm9keVwiXSk7XG4gIGlmIChib2R5ID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgaWYgKGJvZHkudHlwZSA9PT0gXCJDYWxsRXhwcmVzc2lvblwiKSB7XG4gICAgcmV0dXJuIGJvZHk7XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRzID0gYXNOb2RlQXJyYXkoYm9keVtcImJvZHlcIl0pO1xuICBpZiAoYm9keS50eXBlICE9PSBcIkJsb2NrU3RhdGVtZW50XCIgfHwgc3RhdGVtZW50cz8ubGVuZ3RoICE9PSAxKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IHJldHVyblN0YXRlbWVudCA9IHN0YXRlbWVudHNbMF07XG4gIHJldHVybiByZXR1cm5TdGF0ZW1lbnQ/LnR5cGUgPT09IFwiUmV0dXJuU3RhdGVtZW50XCJcbiAgICA/IGFzTm9kZShyZXR1cm5TdGF0ZW1lbnRbXCJhcmd1bWVudFwiXSlcbiAgICA6IHZvaWQgMDtcbn07XG5cbi8qKlxuICogR2V0cyBwYXJhbWV0ZXIgbmFtZXMgYW5kIHdoZXRoZXIgZWFjaCBwYXJhbWV0ZXIgaXMgYSByZXN0IHBhcmFtZXRlci5cbiAqIEBwYXJhbSBmdW5jdGlvbk5vZGUgRnVuY3Rpb24gbm9kZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgTmFtZWQgcGFyYW1ldGVyIG1ldGFkYXRhIHdoZW4gZXZlcnkgcGFyYW1ldGVyIGlzIHN1cHBvcnRlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwYXJhbWV0ZXJzID0gZ2V0UGFyYW1ldGVycyhmdW5jdGlvbk5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFBhcmFtZXRlcnMgPSAoXG4gIGZ1bmN0aW9uTm9kZTogTm9kZSxcbik6IERlbGVnYXRlZFBhcmFtZXRlcltdIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgcGFyYW1ldGVycyA9IGFzTm9kZUFycmF5KGZ1bmN0aW9uTm9kZVtcInBhcmFtc1wiXSk7XG4gIGlmIChwYXJhbWV0ZXJzID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBEZWxlZ2F0ZWRQYXJhbWV0ZXJbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHBhcmFtZXRlciBvZiBwYXJhbWV0ZXJzKSB7XG4gICAgY29uc3QgaXNSZXN0ID0gcGFyYW1ldGVyLnR5cGUgPT09IFwiUmVzdEVsZW1lbnRcIjtcbiAgICBjb25zdCBuYW1lID0gZ2V0SWRlbnRpZmllck5hbWUoXG4gICAgICBpc1Jlc3QgPyBhc05vZGUocGFyYW1ldGVyW1wiYXJndW1lbnRcIl0pIDogcGFyYW1ldGVyLFxuICAgICk7XG4gICAgaWYgKG5hbWUgPT09IHZvaWQgMCkge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG5cbiAgICByZXN1bHQucHVzaCh7IGlzUmVzdCwgbmFtZSB9KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBvbmUgY2FsbCBhcmd1bWVudCBmb3J3YXJkcyBpdHMgY29ycmVzcG9uZGluZyBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0gYXJndW1lbnQgQ2FsbCBhcmd1bWVudCB0byBpbnNwZWN0LlxuICogQHBhcmFtIHBhcmFtZXRlciBDb3JyZXNwb25kaW5nIGZ1bmN0aW9uIHBhcmFtZXRlci5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGZvcndhcmRzIHRoZSBwYXJhbWV0ZXIgd2l0aG91dCBjaGFuZ2UuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZm9yd2FyZHMgPSBmb3J3YXJkc1BhcmFtZXRlcihhcmd1bWVudCwgcGFyYW1ldGVyKTtcbiAqIGBgYFxuICovXG5jb25zdCBmb3J3YXJkc1BhcmFtZXRlciA9IChcbiAgYXJndW1lbnQ6IE5vZGUsXG4gIHBhcmFtZXRlcjogRGVsZWdhdGVkUGFyYW1ldGVyLFxuKTogYm9vbGVhbiA9PiB7XG4gIGlmIChwYXJhbWV0ZXIuaXNSZXN0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGFyZ3VtZW50LnR5cGUgPT09IFwiU3ByZWFkRWxlbWVudFwiICYmXG4gICAgICBnZXRJZGVudGlmaWVyTmFtZShhc05vZGUoYXJndW1lbnRbXCJhcmd1bWVudFwiXSkpID09PSBwYXJhbWV0ZXIubmFtZVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gZ2V0SWRlbnRpZmllck5hbWUoYXJndW1lbnQpID09PSBwYXJhbWV0ZXIubmFtZTtcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbm9kZSBpcyBhIHBsYWluIG5hbWVkIHJlZmVyZW5jZS5cbiAqIEBwYXJhbSBub2RlIENhbmRpZGF0ZSByZWNlaXZlciBub2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBub2RlIGlzIGEgcGxhaW4gaWRlbnRpZmllciByZWZlcmVuY2UuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaXNOYW1lZCA9IGlzTmFtZWRSZWNlaXZlcih7IHR5cGU6IFwiSWRlbnRpZmllclwiIH0pO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzTmFtZWRSZWNlaXZlciA9IChub2RlPzogTm9kZSk6IGJvb2xlYW4gPT4gbm9kZT8udHlwZSA9PT0gXCJJZGVudGlmaWVyXCI7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZnVuY3Rpb24gZG9lcyBub3RoaW5nIGV4Y2VwdCBkaXJlY3RseSBjYWxsIGFub3RoZXIgZnVuY3Rpb24uXG4gKiBAcGFyYW0gZnVuY3Rpb25Ob2RlIEZ1bmN0aW9uIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSBmdW5jdGlvbk5hbWUgRGVjbGFyZWQgd3JhcHBlciBmdW5jdGlvbiBuYW1lLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgZnVuY3Rpb24gaXMgYW4gZXhhY3Qgc3luY2hyb25vdXMgZGVsZWdhdGlvbi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBpc0RlbGVnYXRpb24gPSBpc1VzZWxlc3NEZWxlZ2F0aW9uKGZ1bmN0aW9uTm9kZSwgXCJydW5cIik7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNVc2VsZXNzRGVsZWdhdGlvbiA9IChcbiAgZnVuY3Rpb25Ob2RlOiBOb2RlLFxuICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbik6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBjYWxsID0gZ2V0RGVsZWdhdGVkQ2FsbChmdW5jdGlvbk5vZGUpO1xuICBjb25zdCBwYXJhbWV0ZXJzID0gZ2V0UGFyYW1ldGVycyhmdW5jdGlvbk5vZGUpO1xuICBjb25zdCBhcmd1bWVudHNfID0gYXNOb2RlQXJyYXkoY2FsbD8uW1wiYXJndW1lbnRzXCJdKTtcbiAgY29uc3QgY2FsbGVlID0gYXNOb2RlKGNhbGw/LltcImNhbGxlZVwiXSk7XG5cbiAgaWYgKFxuICAgIGNhbGw/LnR5cGUgIT09IFwiQ2FsbEV4cHJlc3Npb25cIiB8fFxuICAgIHBhcmFtZXRlcnMgPT09IHZvaWQgMCB8fFxuICAgIGFyZ3VtZW50c18gPT09IHZvaWQgMCB8fFxuICAgIGNhbGxlZSA9PT0gdm9pZCAwIHx8XG4gICAgLy8gQSBtZXRob2QgY2FsbCBpcyBvbmx5IGEgcmVwbGFjZWFibGUgZGVsZWdhdGlvbiB3aGVuIGl0cyByZWNlaXZlciBpcyBhXG4gICAgLy8gcGxhaW4gbmFtZWQgcmVmZXJlbmNlIChlLmcuIGBzZXJ2aWNlLnJ1bmApLiBFeHByZXNzaW9uIHJlY2VpdmVycyBzdWNoXG4gICAgLy8gYXMgdHlwZSBhc3NlcnRpb25zLCBjYWxscywgb3IgbGl0ZXJhbHMgY2Fubm90IGJlIGlubGluZWQgYXQgdGhlIGNhbGxcbiAgICAvLyBzaXRlLCBzbyB0aGUgd3JhcHBlciBpcyBub3QgdXNlbGVzcy5cbiAgICAoY2FsbGVlLnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiICYmXG4gICAgICAhaXNOYW1lZFJlY2VpdmVyKGFzTm9kZShjYWxsZWVbXCJvYmplY3RcIl0pKSkgfHxcbiAgICBnZXRJZGVudGlmaWVyTmFtZShjYWxsZWUpID09PSBmdW5jdGlvbk5hbWUgfHxcbiAgICBhcmd1bWVudHNfLmxlbmd0aCAhPT0gcGFyYW1ldGVycy5sZW5ndGhcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGFyZ3VtZW50c18uZXZlcnkoKGFyZ3VtZW50LCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHBhcmFtZXRlciA9IHBhcmFtZXRlcnNbaW5kZXhdO1xuICAgIHJldHVybiBwYXJhbWV0ZXIgIT09IHZvaWQgMCAmJiBmb3J3YXJkc1BhcmFtZXRlcihhcmd1bWVudCwgcGFyYW1ldGVyKTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIFJlcG9ydHMgYSBmdW5jdGlvbiB3aGVuIGl0IGlzIGEgbm8tb3AgZGVsZWdhdGlvbi5cbiAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgZXhlY3V0aW9uIGNvbnRleHQuXG4gKiBAcGFyYW0gZnVuY3Rpb25Ob2RlIEZ1bmN0aW9uIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSBuYW1lTm9kZSBEZWNsYXJlZCB3cmFwcGVyIG5hbWUgbm9kZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiByZXBvcnRJZlVzZWxlc3NEZWxlZ2F0aW9uKGNvbnRleHQsIGZ1bmN0aW9uTm9kZSwgbmFtZU5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IHJlcG9ydElmVXNlbGVzc0RlbGVnYXRpb24gPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIGZ1bmN0aW9uTm9kZTogTm9kZSxcbiAgbmFtZU5vZGU6IE5vZGUgfCB1bmRlZmluZWQsXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgZnVuY3Rpb25OYW1lID0gZ2V0SWRlbnRpZmllck5hbWUobmFtZU5vZGUpO1xuICBpZiAoXG4gICAgZnVuY3Rpb25OYW1lID09PSB2b2lkIDAgfHxcbiAgICAhaXNVc2VsZXNzRGVsZWdhdGlvbihmdW5jdGlvbk5vZGUsIGZ1bmN0aW9uTmFtZSlcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29udGV4dC5yZXBvcnQoe1xuICAgIG1lc3NhZ2VJZDogXCJ1c2VsZXNzRGVsZWdhdGlvblwiLFxuICAgIG5vZGU6IG5hbWVOb2RlIGFzIHVua25vd24gYXMgUnVsZS5Ob2RlLFxuICB9KTtcbn07XG5cbi8qKiBFU0xpbnQgcnVsZSBpbXBsZW1lbnRhdGlvbiBmb3IgZnVuY3Rpb25zIHRoYXQgb25seSBmb3J3YXJkIHRoZWlyIGFyZ3VtZW50cy4gKi9cbmNvbnN0IG5vVXNlbGVzc0RlbGVnYXRpb25SdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZTogKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBSdWxlLlJ1bGVMaXN0ZW5lciA9PiAoe1xuICAgIEZ1bmN0aW9uRGVjbGFyYXRpb246IChub2RlOiBSdWxlLk5vZGUpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IGZ1bmN0aW9uTm9kZSA9IG5vZGUgYXMgdW5rbm93biBhcyBOb2RlO1xuICAgICAgcmVwb3J0SWZVc2VsZXNzRGVsZWdhdGlvbihcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgZnVuY3Rpb25Ob2RlLFxuICAgICAgICBhc05vZGUoZnVuY3Rpb25Ob2RlW1wiaWRcIl0pLFxuICAgICAgKTtcbiAgICB9LFxuICAgIFZhcmlhYmxlRGVjbGFyYXRvcjogKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgZGVjbGFyYXRvciA9IG5vZGUgYXMgdW5rbm93biBhcyBOb2RlO1xuICAgICAgY29uc3QgaW5pdGlhbGl6ZXIgPSBhc05vZGUoZGVjbGFyYXRvcltcImluaXRcIl0pO1xuICAgICAgaWYgKFxuICAgICAgICBpbml0aWFsaXplcj8udHlwZSAhPT0gXCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiICYmXG4gICAgICAgIGluaXRpYWxpemVyPy50eXBlICE9PSBcIkZ1bmN0aW9uRXhwcmVzc2lvblwiXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICByZXBvcnRJZlVzZWxlc3NEZWxlZ2F0aW9uKGNvbnRleHQsIGluaXRpYWxpemVyLCBhc05vZGUoZGVjbGFyYXRvcltcImlkXCJdKSk7XG4gICAgfSxcbiAgfSksXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJEaXNhbGxvdyBuYW1lZCBmdW5jdGlvbnMgdGhhdCBvbmx5IGRlbGVnYXRlIGRpcmVjdGx5IHRvIGFub3RoZXIgY2FsbC5cIixcbiAgICAgIHJlY29tbWVuZGVkOiBmYWxzZSxcbiAgICAgIHVybDogXCJodHRwczovL2dpdGh1Yi5jb20vcGFybG90aS9lc2xpbnQtcGx1Z2luL2Jsb2IvbWFpbi9kb2NzL3J1bGVzL25vLXVzZWxlc3MtZGVsZWdhdGlvbi5tZFwiLFxuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIHVzZWxlc3NEZWxlZ2F0aW9uOlxuICAgICAgICBcIlRoaXMgZnVuY3Rpb24gb25seSBkZWxlZ2F0ZXMgdG8gYW5vdGhlciBjYWxsOyByZW1vdmUgdGhlIHdyYXBwZXIgb3IgY2FsbCB0aGUgdGFyZ2V0IGRpcmVjdGx5LlwiLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiBcInN1Z2dlc3Rpb25cIixcbiAgfSxcbn07XG5cbmV4cG9ydCB7IG5vVXNlbGVzc0RlbGVnYXRpb25SdWxlIH07XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/no-interface-member-docs/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/no-interface-member-docs/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA+PnC,+EAA+E;AAC/E,QAAA,MAAM,kCAAkC,EAAE,IAAI,CAAC,UAqC9C,CAAC;AAEF,OAAO,EAAE,kCAAkC,EAAE,CAAC"}
|
|
@@ -45,11 +45,13 @@ const reportMemberDocumentation = (context, details) => {
|
|
|
45
45
|
const { commentStart, commentText, memberTags, node } = details;
|
|
46
46
|
for (const tag of memberTags) {
|
|
47
47
|
const removalRange = buildRemovalRange(commentStart, commentText, tag.line);
|
|
48
|
+
const fix = (fixer) => fixer.removeRange(removalRange);
|
|
48
49
|
context.report({
|
|
49
50
|
data: { parameterName: tag.fullName },
|
|
50
|
-
fix
|
|
51
|
+
fix,
|
|
51
52
|
messageId: "interfaceMemberDoc",
|
|
52
53
|
node,
|
|
54
|
+
suggest: [{ fix, messageId: "removeMemberDoc" }],
|
|
53
55
|
});
|
|
54
56
|
}
|
|
55
57
|
};
|
|
@@ -166,12 +168,14 @@ const noInterfaceMemberDocumentationRule = {
|
|
|
166
168
|
url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/no-interface-member-docs.md",
|
|
167
169
|
},
|
|
168
170
|
fixable: "code",
|
|
171
|
+
hasSuggestions: true,
|
|
169
172
|
messages: {
|
|
170
173
|
interfaceMemberDoc: "Document interface members on the interface instead of using @param for {{parameterName}}.",
|
|
174
|
+
removeMemberDoc: "Remove the @param tag documenting this interface member.",
|
|
171
175
|
},
|
|
172
176
|
schema: [],
|
|
173
177
|
type: "problem",
|
|
174
178
|
},
|
|
175
179
|
};
|
|
176
180
|
export { noInterfaceMemberDocumentationRule };
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vZG9jcy9uby1pbnRlcmZhY2UtbWVtYmVyLWRvY3MvcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLG9CQUFvQixHQUNyQixNQUFNLHVCQUF1QixDQUFDO0FBa0QvQjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQzFCLEdBQW1DLEVBQ25DLGNBQStDLEVBQ3BCLEVBQUU7SUFDN0IsSUFBSSxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV2RCxPQUFPLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FDeEIsV0FBbUIsRUFDbkIsY0FBK0MsRUFDekIsRUFBRSxDQUN4QixlQUFlLENBQUMsV0FBVyxDQUFDO0tBQ3pCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDMUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUUvRDs7Ozs7Ozs7R0FRRztBQUNILE1B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QUNULGdHQUFnRztZQUNsRyxXQUFXLEVBQUUsS0FBSztZQUNsQixHQUFHLEVBQUUsMkZBQTJGO1NBQ2pHO1FBQ0QsT0FBTyxFQUFFLE1BQU07UUFDZixRQUFRLEVBQUU7WUFDUixrQkFBa0IsRUFDaEIsNEZBQTRGO1NBQy9GO1FBQ0QsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsU0FBUztLQUNoQjtDQUNGLENBQUM7QUFFRixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHR5cGUgeyBDb21tZW50LCBQYXJhbWV0ZXJNZW1iZXJUYWcsIFR5cGVBbm5vdGF0aW9uTm9kZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmltcG9ydCB7IGJ1aWxkUmVtb3ZhbFJhbmdlLCBnZXRDb21tZW50TGluZXMgfSBmcm9tIFwiLi9jb21tZW50LXJlbW92YWwtcmFuZ2VzXCI7XG5pbXBvcnQgeyBnZXRDb21tZW50VGV4dCwgZ2V0SnNkb2NDb21tZW50IH0gZnJvbSBcIi4vY29tbWVudC11dGlsaXRpZXNcIjtcbmltcG9ydCB7IHBhcnNlUGFyYW1ldGVyVGFnTGluZSB9IGZyb20gXCIuL3BhcmFtZXRlci10YWdzXCI7XG5pbXBvcnQge1xuICBnZXRQYXJhbWV0ZXJUeXBlTG9va3VwLFxuICBpc05hbWVkVHlwZVJlZmVyZW5jZSxcbn0gZnJvbSBcIi4vcGFyYW1ldGVyLXV0aWxpdGllc1wiO1xuXG4vKiogSlNEb2MgZGF0YSBleHRyYWN0ZWQgZnJvbSBhIGZ1bmN0aW9uLWxpa2Ugbm9kZS4gKi9cbmludGVyZmFjZSBKc2RvY0RhdGEge1xuICAvKiogQ29tbWVudCBmaWVsZCB2YWx1ZS4gKi9cbiAgY29tbWVudDogQ29tbWVudDtcblxuICAvKiogQ29tbWVudFN0YXJ0IGZpZWxkIHZhbHVlLiAqL1xuICBjb21tZW50U3RhcnQ6IG51bWJlcjtcblxuICAvKiogVGV4dCBmaWVsZCB2YWx1ZS4gKi9cbiAgdGV4dDogc3RyaW5nO1xufVxuXG4vKiogTWVtYmVyLXRhZyBjb250ZXh0IHJlc29sdmVkIGZvciByZXBvcnRpbmcuICovXG5pbnRlcmZhY2UgTWVtYmVyVGFnQ29udGV4dCB7XG4gIC8qKiBDb21tZW50IGZpZWxkIHZhbHVlLiAqL1xuICBjb21tZW50OiBDb21tZW50O1xuXG4gIC8qKiBDb21tZW50U3RhcnQgZmllbGQgdmFsdWUuICovXG4gIGNvbW1lbnRTdGFydDogbnVtYmVyO1xuXG4gIC8qKiBDb21tZW50VGV4dCBmaWVsZCB2YWx1ZS4gKi9cbiAgY29tbWVudFRleHQ6IHN0cmluZztcblxuICAvKiogTWVtYmVyVGFncyBmaWVsZCB2YWx1ZS4gKi9cbiAgbWVtYmVyVGFnczogUGFyYW1ldGVyTWVtYmVyVGFnW107XG59XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBSZXBvcnRNZW1iZXJEb2N1bWVudGF0aW9uQ29udGV4dCB7XG4gIC8qKiBDb21tZW50IGZpZWxkIHZhbHVlLiAqL1xuICBjb21tZW50OiBDb21tZW50O1xuXG4gIC8qKiBDb21tZW50U3RhcnQgZmllbGQgdmFsdWUuICovXG4gIGNvbW1lbnRTdGFydDogbnVtYmVyO1xuXG4gIC8qKiBDb21tZW50VGV4dCBmaWVsZCB2YWx1ZS4gKi9cbiAgY29tbWVudFRleHQ6IHN0cmluZztcblxuICAvKiogTWVtYmVyVGFncyBmaWVsZCB2YWx1ZS4gKi9cbiAgbWVtYmVyVGFnczogUGFyYW1ldGVyTWVtYmVyVGFnW107XG5cbiAgLyoqIE5vZGUgZmllbGQgdmFsdWUuICovXG4gIG5vZGU6IFJ1bGUuTm9kZTtcblxuICAvKiogU291cmNlQ29kZSBmaWVsZCB2YWx1ZS4gKi9cbiAgc291cmNlQ29kZTogUnVsZS5SdWxlQ29udGV4dFtcInNvdXJjZUNvZGVcIl07XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBwYXJhbWV0ZXIgbWVtYmVyIHRhZyBtYXRjaGVzIGEgbmFtZWQgdHlwZSByZWZlcmVuY2UuXG4gKiBAcGFyYW0gdGFnIFBhcnNlZCBwYXJhbWV0ZXIgbWVtYmVyIHRhZy5cbiAqIEBwYXJhbSBwYXJhbWV0ZXJUeXBlcyBQYXJhbWV0ZXIgdHlwZSBsb29rdXAuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIHRhZyBtYXRjaGVzIGEgbmFtZWQgdHlwZSByZWZlcmVuY2UuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb2sgPSBpc01hdGNoaW5nTWVtYmVyVGFnKHRhZywgcGFyYW1ldGVyVHlwZXMpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzTWF0Y2hpbmdNZW1iZXJUYWcgPSAoXG4gIHRhZzogUGFyYW1ldGVyTWVtYmVyVGFnIHwgdW5kZWZpbmVkLFxuICBwYXJhbWV0ZXJUeXBlczogTWFwPHN0cmluZywgVHlwZUFubm90YXRpb25Ob2RlPixcbik6IHRhZyBpcyBQYXJhbWV0ZXJNZW1iZXJUYWcgPT4ge1xuICBpZiAodGFnID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBwYXJhbWV0ZXJUeXBlID0gcGFyYW1ldGVyVHlwZXMuZ2V0KHRhZy5iYXNlbmFtZSk7XG5cbiAgcmV0dXJuIGlzTmFtZWRUeXBlUmVmZXJlbmNlKHBhcmFtZXRlclR5cGUpO1xufTtcblxuLyoqXG4gKiBDb2xsZWN0cyBtZW1iZXIgdGFncyBmcm9tIGEgSlNEb2MgY29tbWVudC5cbiAqIEBwYXJhbSBjb21tZW50VGV4dCBGdWxsIGNvbW1lbnQgdGV4dC5cbiAqIEBwYXJhbSBwYXJhbWV0ZXJUeXBlcyBQYXJhbWV0ZXIgdHlwZSBsb29rdXAuXG4gKiBAcmV0dXJucyBNZW1iZXIgdGFncyB0aGF0IG1hdGNoIG5hbWVkIHR5cGUgcmVmZXJlbmNlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB0YWdzID0gY29sbGVjdE1lbWJlclRhZ3MoY29tbWVudFRleHQsIHBhcmFtZXRlclR5cGVzKTtcbiAqIGBgYFxuICovXG5jb25zdCBjb2xsZWN0TWVtYmVyVGFncyA9IChcbiAgY29tbWVudFRleHQ6IHN0cmluZyxcbiAgcGFyYW1ldGVyVHlwZXM6IE1hcDxzdHJpbmcsIFR5cGVBbm5vdGF0aW9uTm9kZT4sXG4pOiBQYXJhbWV0ZXJNZW1iZXJUYWdbXSA9PlxuICBnZXRDb21tZW50TGluZXMoY29tbWVudFRleHQpXG4gICAgLm1hcCgobGluZSkgPT4gcGFyc2VQYXJhbWV0ZXJUYWdMaW5lKGxpbmUpKVxuICAgIC5maWx0ZXIoKHRhZykgPT4gaXNNYXRjaGluZ01lbWJlclRhZyh0YWcsIHBhcmFtZXRlclR5cGVzKSk7XG5cbi8qKlxuICogUmVwb3J0cyBpbnRlcmZhY2UgbWVtYmVyIGRvY3VtZW50YXRpb24gZW50cmllcyBmb3IgcmVtb3ZhbC5cbiAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgZXhlY3V0aW9uIGNvbnRleHQuXG4gKiBAcGFyYW0gZGV0YWlscyBDb2xsZWN0ZWQgcnVsZSBkZXRhaWxzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydE1lbWJlckRvY3VtZW50YXRpb24oY29udGV4dCwgZGV0YWlscyk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVwb3J0TWVtYmVyRG9jdW1lbnRhdGlvbiA9IChcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgZGV0YWlsczogUmVwb3J0TWVtYmVyRG9jdW1lbnRhdGlvbkNvbnRleHQsXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgeyBjb21tZW50U3RhcnQsIGNvbW1lbnRUZXh0LCBtZW1iZXJUYWdzLCBub2RlIH0gPSBkZXRhaWxzO1xuXG4gIGZvciAoY29uc3QgdGFnIG9mIG1lbWJlclRhZ3MpIHtcbiAgICBjb25zdCByZW1vdmFsUmFuZ2UgPSBidWlsZFJlbW92YWxSYW5nZShjb21tZW50U3RhcnQsIGNvbW1lbnRUZXh0LCB0YWcubGluZSk7XG5cbiAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICBkYXRhOiB7IHBhcmFtZXRlck5hbWU6IHRhZy5mdWxsTmFtZSB9LFxuICAgICAgZml4OiAoZml4ZXI6IFJ1bGUuUnVsZUZpeGVyKTogUnVsZS5GaXggPT4gZml4ZXIucmVtb3ZlUmFuZ2UocmVtb3ZhbFJhbmdlKSxcbiAgICAgIG1lc3NhZ2VJZDogXCJpbnRlcmZhY2VNZW1iZXJEb2NcIixcbiAgICAgIG5vZGUsXG4gICAgfSk7XG4gIH1cbn07XG5cbi8qKlxuICogR2V0cyBwYXJhbWV0ZXIgdHlwZSByZWZlcmVuY2VzIGZvciBhIG5vZGUuXG4gKiBAcGFyYW0gbm9kZSBGdW5jdGlvbi1saWtlIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFBhcmFtZXRlciB0eXBlIGxvb2t1cCB3aGVuIHByZXNlbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbG9va3VwID0gZ2V0UGFyYW1ldGVyVHlwZXMobm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0UGFyYW1ldGVyVHlwZXMgPSAoXG4gIG5vZGU6IFJ1bGUuTm9kZSxcbik6IE1hcDxzdHJpbmcsIFR5cGVBbm5vdGF0aW9uTm9kZT4gfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBwYXJhbWV0ZXJUeXBlcyA9IGdldFBhcmFtZXRlclR5cGVMb29rdXAobm9kZSk7XG5cbiAgcmV0dXJuIHBhcmFtZXRlclR5cGVzLnNpemUgPiAwID8gcGFyYW1ldGVyVHlwZXMgOiB2b2lkIDA7XG59O1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBKU0RvYyBjb21tZW50IGRhdGEgZm9yIGEgbm9kZS5cbiAqIEBwYXJhbSBzb3VyY2VDb2RlIFNvdXJjZUNvZGUgd3JhcHBlci5cbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIEpTRG9jIGRhdGEgd2hlbiBhdmFpbGFibGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGF0YSA9IGdldEpzZG9jRGF0YShzb3VyY2VDb2RlLCBub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRKc2RvY0RhdGEgPSAoXG4gIHNvdXJjZUNvZGU6IFJ1bGUuUnVsZUNvbnRleHRbXCJzb3VyY2VDb2RlXCJdLFxuICBub2RlOiBSdWxlLk5vZGUsXG4pOiBKc2RvY0RhdGEgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBjb21tZW50ID0gZ2V0SnNkb2NDb21tZW50KHNvdXJjZUNvZGUsIG5vZGUpO1xuXG4gIGlmIChjb21tZW50ID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgY29tbWVudFN0YXJ0ID0gY29tbWVudC5yYW5nZT8uWzBdO1xuXG4gIGlmICh0eXBlb2YgY29tbWVudFN0YXJ0ICE9PSBcIm51bWJlclwiKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IHRleHQgPSBnZXRDb21tZW50VGV4dChzb3VyY2VDb2RlLCBjb21tZW50KTtcblxuICByZXR1cm4geyBjb21tZW50LCBjb21tZW50U3RhcnQsIHRleHQgfTtcbn07XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIG1lbWJlciB0YWcgY29udGV4dCBmb3IgYSBub2RlLlxuICogQHBhcmFtIGNvbnRleHQgUnVsZSBleGVjdXRpb24gY29udGV4dC5cbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIE1lbWJlciB0YWcgY29udGV4dCB3aGVuIGF2YWlsYWJsZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBjb250ZXh0ID0gcmVzb2x2ZU1lbWJlclRhZ0NvbnRleHQoY29udGV4dCwgbm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVzb2x2ZU1lbWJlclRhZ0NvbnRleHQgPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIG5vZGU6IFJ1bGUuTm9kZSxcbik6IE1lbWJlclRhZ0NvbnRleHQgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBwYXJhbWV0ZXJUeXBlcyA9IGdldFBhcmFtZXRlclR5cGVzKG5vZGUpO1xuICBjb25zdCBqc2RvY0RhdGEgPSBnZXRKc2RvY0RhdGEoY29udGV4dC5zb3VyY2VDb2RlLCBub2RlKTtcblxuICBpZiAocGFyYW1ldGVyVHlwZXMgPT09IHZvaWQgMCB8fCBqc2RvY0RhdGEgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBtZW1iZXJUYWdzID0gY29sbGVjdE1lbWJlclRhZ3MoanNkb2NEYXRhLnRleHQsIHBhcmFtZXRlclR5cGVzKTtcblxuICByZXR1cm4gbWVtYmVyVGFncy5sZW5ndGggPiAwXG4gICAgPyB7XG4gICAgICAgIGNvbW1lbnQ6IGpzZG9jRGF0YS5jb21tZW50LFxuICAgICAgICBjb21tZW50U3RhcnQ6IGpzZG9jRGF0YS5jb21tZW50U3RhcnQsXG4gICAgICAgIGNvbW1lbnRUZXh0OiBqc2RvY0RhdGEudGV4dCxcbiAgICAgICAgbWVtYmVyVGFncyxcbiAgICAgIH1cbiAgICA6IHZvaWQgMDtcbn07XG5cbi8qKiBIYW5kbGVzIGZ1bmN0aW9uLWxpa2Ugbm9kZXMgZm9yIHRoZSBuby1pbnRlcmZhY2UtbWVtYmVyLWRvY3MgcnVsZS4gKi9cbmludGVyZmFjZSBOb2RlVmFsdWUge1xuICAvKipcbiAgICogVmFsdWUgZmllbGQgZm9yIG1ldGhvZCBkZWZpbml0aW9uczsgZnVuY3Rpb24tbGlrZSBub2RlcyBoYXZlIG5vIHZhbHVlIGZpZWxkLCBzbyB0aGlzIGlzIG9wdGlvbmFsLlxuICAgKi9cbiAgdmFsdWU/OiBSdWxlLk5vZGU7XG59XG5cbi8qKlxuICogSGFuZGxlcyBmdW5jdGlvbi1saWtlIG5vZGVzIGZvciB0aGlzIHJ1bGUuXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGV4ZWN1dGlvbiBjb250ZXh0LlxuICogQHBhcmFtIG5vZGUgTm9kZSB0byBpbnNwZWN0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGhhbmRsZUZ1bmN0aW9uTGlrZShjb250ZXh0LCBub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBoYW5kbGVGdW5jdGlvbkxpa2UgPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIG5vZGU6IFJ1bGUuTm9kZSxcbik6IHZvaWQgPT4ge1xuICBjb25zdCBmdW5jdGlvbkxpa2VOb2RlID1cbiAgICBub2RlLnR5cGUgPT09IFwiTWV0aG9kRGVmaW5pdGlvblwiXG4gICAgICA/ICgobm9kZSBhcyB1bmtub3duIGFzIE5vZGVWYWx1ZSkudmFsdWUgPz8gbm9kZSlcbiAgICAgIDogbm9kZTtcblxuICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVNZW1iZXJUYWdDb250ZXh0KGNvbnRleHQsIGZ1bmN0aW9uTGlrZU5vZGUpO1xuXG4gIGlmIChyZXNvbHZlZCA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVwb3J0TWVtYmVyRG9jdW1lbnRhdGlvbihjb250ZXh0LCB7XG4gICAgY29tbWVudDogcmVzb2x2ZWQuY29tbWVudCxcbiAgICBjb21tZW50U3RhcnQ6IHJlc29sdmVkLmNvbW1lbnRTdGFydCxcbiAgICBjb21tZW50VGV4dDogcmVzb2x2ZWQuY29tbWVudFRleHQsXG4gICAgbWVtYmVyVGFnczogcmVzb2x2ZWQubWVtYmVyVGFncyxcbiAgICBub2RlLFxuICAgIHNvdXJjZUNvZGU6IGNvbnRleHQuc291cmNlQ29kZSxcbiAgfSk7XG59O1xuXG4vKiogRVNMaW50IHJ1bGUgZGlzYWxsb3dpbmcgaW50ZXJmYWNlIG1lbWJlciBkb2N1bWVudGF0aW9uIGluIGBAcGFyYW1gIHRhZ3MuICovXG5jb25zdCBub0ludGVyZmFjZU1lbWJlckRvY3VtZW50YXRpb25SdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIge1xuICAgIGNvbnN0IGxpc3RlbmVyID0gKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgaGFuZGxlRnVuY3Rpb25MaWtlKGNvbnRleHQsIG5vZGUpO1xuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246IGxpc3RlbmVyLFxuICAgICAgRnVuY3Rpb25EZWNsYXJhdGlvbjogbGlzdGVuZXIsXG4gICAgICBGdW5jdGlvbkV4cHJlc3Npb246IGxpc3RlbmVyLFxuICAgICAgTWV0aG9kRGVmaW5pdGlvbjogbGlzdGVuZXIsXG4gICAgICBUU0Fic3RyYWN0TWV0aG9kRGVmaW5pdGlvbjogbGlzdGVuZXIsXG4gICAgICBUU0NhbGxTaWduYXR1cmVEZWNsYXJhdGlvbjogbGlzdGVuZXIsXG4gICAgICBUU0NvbnN0cnVjdFNpZ25hdHVyZURlY2xhcmF0aW9uOiBsaXN0ZW5lcixcbiAgICAgIFRTRGVjbGFyZUZ1bmN0aW9uOiBsaXN0ZW5lcixcbiAgICAgIFRTRnVuY3Rpb25UeXBlOiBsaXN0ZW5lcixcbiAgICAgIFRTTWV0aG9kU2lnbmF0dXJlOiBsaXN0ZW5lcixcbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiRGlzYWxsb3cgZG9jdW1lbnRpbmcgaW50ZXJmYWNlIG1lbWJlcnMgaW4gQHBhcmFtIHRhZ3M7IGRvY3VtZW50IHRoZW0gb24gdGhlIGludGVyZmFjZSBpbnN0ZWFkLlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvbm8taW50ZXJmYWNlLW1lbWJlci1kb2NzLm1kXCIsXG4gICAgfSxcbiAgICBmaXhhYmxlOiBcImNvZGVcIixcbiAgICBtZXNzYWdlczoge1xuICAgICAgaW50ZXJmYWNlTWVtYmVyRG9jOlxuICAgICAgICBcIkRvY3VtZW50IGludGVyZmFjZSBtZW1iZXJzIG9uIHRoZSBpbnRlcmZhY2UgaW5zdGVhZCBvZiB1c2luZyBAcGFyYW0gZm9yIHt7cGFyYW1ldGVyTmFtZX19LlwiLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiBcInByb2JsZW1cIixcbiAgfSxcbn07XG5cbmV4cG9ydCB7IG5vSW50ZXJmYWNlTWVtYmVyRG9jdW1lbnRhdGlvblJ1bGUgfTtcbiJdfQ==
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vZG9jcy9uby1pbnRlcmZhY2UtbWVtYmVyLWRvY3MvcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLG9CQUFvQixHQUNyQixNQUFNLHVCQUF1QixDQUFDO0FBa0QvQjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQzFCLEdBQW1DLEVBQ25DLGNBQStDLEVBQ3BCLEVBQUU7SUFDN0IsSUFBSSxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV2RCxPQUFPLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FDeEIsV0FBbUIsRUFDbkIsY0FBK0MsRUFDekIsRUFBRSxDQUN4QixlQUFlLENBQUMsV0FBVyxDQUFDO0tBQ3pCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDMUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUUvRDs7Ozs7Ozs7R0FRRztBQUNILE1B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QUN4QixpQkFBaUIsRUFBRSxRQUFRO1NBQzVCLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUNULGdHQUFnRztZQUNsRyxXQUFXLEVBQUUsS0FBSztZQUNsQixHQUFHLEVBQUUsMkZBQTJGO1NBQ2pHO1FBQ0QsT0FBTyxFQUFFLE1BQU07UUFDZixjQUFjLEVBQUUsSUFBSTtRQUNwQixRQUFRLEVBQUU7WUFDUixrQkFBa0IsRUFDaEIsNEZBQTRGO1lBQzlGLGVBQWUsRUFDYiwwREFBMEQ7U0FDN0Q7UUFDRCxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxTQUFTO0tBQ2hCO0NBQ0YsQ0FBQztBQUVGLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1lbnQsIFBhcmFtZXRlck1lbWJlclRhZywgVHlwZUFubm90YXRpb25Ob2RlIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHsgYnVpbGRSZW1vdmFsUmFuZ2UsIGdldENvbW1lbnRMaW5lcyB9IGZyb20gXCIuL2NvbW1lbnQtcmVtb3ZhbC1yYW5nZXNcIjtcbmltcG9ydCB7IGdldENvbW1lbnRUZXh0LCBnZXRKc2RvY0NvbW1lbnQgfSBmcm9tIFwiLi9jb21tZW50LXV0aWxpdGllc1wiO1xuaW1wb3J0IHsgcGFyc2VQYXJhbWV0ZXJUYWdMaW5lIH0gZnJvbSBcIi4vcGFyYW1ldGVyLXRhZ3NcIjtcbmltcG9ydCB7XG4gIGdldFBhcmFtZXRlclR5cGVMb29rdXAsXG4gIGlzTmFtZWRUeXBlUmVmZXJlbmNlLFxufSBmcm9tIFwiLi9wYXJhbWV0ZXItdXRpbGl0aWVzXCI7XG5cbi8qKiBKU0RvYyBkYXRhIGV4dHJhY3RlZCBmcm9tIGEgZnVuY3Rpb24tbGlrZSBub2RlLiAqL1xuaW50ZXJmYWNlIEpzZG9jRGF0YSB7XG4gIC8qKiBDb21tZW50IGZpZWxkIHZhbHVlLiAqL1xuICBjb21tZW50OiBDb21tZW50O1xuXG4gIC8qKiBDb21tZW50U3RhcnQgZmllbGQgdmFsdWUuICovXG4gIGNvbW1lbnRTdGFydDogbnVtYmVyO1xuXG4gIC8qKiBUZXh0IGZpZWxkIHZhbHVlLiAqL1xuICB0ZXh0OiBzdHJpbmc7XG59XG5cbi8qKiBNZW1iZXItdGFnIGNvbnRleHQgcmVzb2x2ZWQgZm9yIHJlcG9ydGluZy4gKi9cbmludGVyZmFjZSBNZW1iZXJUYWdDb250ZXh0IHtcbiAgLyoqIENvbW1lbnQgZmllbGQgdmFsdWUuICovXG4gIGNvbW1lbnQ6IENvbW1lbnQ7XG5cbiAgLyoqIENvbW1lbnRTdGFydCBmaWVsZCB2YWx1ZS4gKi9cbiAgY29tbWVudFN0YXJ0OiBudW1iZXI7XG5cbiAgLyoqIENvbW1lbnRUZXh0IGZpZWxkIHZhbHVlLiAqL1xuICBjb21tZW50VGV4dDogc3RyaW5nO1xuXG4gIC8qKiBNZW1iZXJUYWdzIGZpZWxkIHZhbHVlLiAqL1xuICBtZW1iZXJUYWdzOiBQYXJhbWV0ZXJNZW1iZXJUYWdbXTtcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIFJlcG9ydE1lbWJlckRvY3VtZW50YXRpb25Db250ZXh0IHtcbiAgLyoqIENvbW1lbnQgZmllbGQgdmFsdWUuICovXG4gIGNvbW1lbnQ6IENvbW1lbnQ7XG5cbiAgLyoqIENvbW1lbnRTdGFydCBmaWVsZCB2YWx1ZS4gKi9cbiAgY29tbWVudFN0YXJ0OiBudW1iZXI7XG5cbiAgLyoqIENvbW1lbnRUZXh0IGZpZWxkIHZhbHVlLiAqL1xuICBjb21tZW50VGV4dDogc3RyaW5nO1xuXG4gIC8qKiBNZW1iZXJUYWdzIGZpZWxkIHZhbHVlLiAqL1xuICBtZW1iZXJUYWdzOiBQYXJhbWV0ZXJNZW1iZXJUYWdbXTtcblxuICAvKiogTm9kZSBmaWVsZCB2YWx1ZS4gKi9cbiAgbm9kZTogUnVsZS5Ob2RlO1xuXG4gIC8qKiBTb3VyY2VDb2RlIGZpZWxkIHZhbHVlLiAqL1xuICBzb3VyY2VDb2RlOiBSdWxlLlJ1bGVDb250ZXh0W1wic291cmNlQ29kZVwiXTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIHBhcmFtZXRlciBtZW1iZXIgdGFnIG1hdGNoZXMgYSBuYW1lZCB0eXBlIHJlZmVyZW5jZS5cbiAqIEBwYXJhbSB0YWcgUGFyc2VkIHBhcmFtZXRlciBtZW1iZXIgdGFnLlxuICogQHBhcmFtIHBhcmFtZXRlclR5cGVzIFBhcmFtZXRlciB0eXBlIGxvb2t1cC5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiB0aGUgdGFnIG1hdGNoZXMgYSBuYW1lZCB0eXBlIHJlZmVyZW5jZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBvayA9IGlzTWF0Y2hpbmdNZW1iZXJUYWcodGFnLCBwYXJhbWV0ZXJUeXBlcyk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNNYXRjaGluZ01lbWJlclRhZyA9IChcbiAgdGFnOiBQYXJhbWV0ZXJNZW1iZXJUYWcgfCB1bmRlZmluZWQsXG4gIHBhcmFtZXRlclR5cGVzOiBNYXA8c3RyaW5nLCBUeXBlQW5ub3RhdGlvbk5vZGU+LFxuKTogdGFnIGlzIFBhcmFtZXRlck1lbWJlclRhZyA9PiB7XG4gIGlmICh0YWcgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHBhcmFtZXRlclR5cGUgPSBwYXJhbWV0ZXJUeXBlcy5nZXQodGFnLmJhc2VuYW1lKTtcblxuICByZXR1cm4gaXNOYW1lZFR5cGVSZWZlcmVuY2UocGFyYW1ldGVyVHlwZSk7XG59O1xuXG4vKipcbiAqIENvbGxlY3RzIG1lbWJlciB0YWdzIGZyb20gYSBKU0RvYyBjb21tZW50LlxuICogQHBhcmFtIGNvbW1lbnRUZXh0IEZ1bGwgY29tbWVudCB0ZXh0LlxuICogQHBhcmFtIHBhcmFtZXRlclR5cGVzIFBhcmFtZXRlciB0eXBlIGxvb2t1cC5cbiAqIEByZXR1cm5zIE1lbWJlciB0YWdzIHRoYXQgbWF0Y2ggbmFtZWQgdHlwZSByZWZlcmVuY2VzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHRhZ3MgPSBjb2xsZWN0TWVtYmVyVGFncyhjb21tZW50VGV4dCwgcGFyYW1ldGVyVHlwZXMpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNvbGxlY3RNZW1iZXJUYWdzID0gKFxuICBjb21tZW50VGV4dDogc3RyaW5nLFxuICBwYXJhbWV0ZXJUeXBlczogTWFwPHN0cmluZywgVHlwZUFubm90YXRpb25Ob2RlPixcbik6IFBhcmFtZXRlck1lbWJlclRhZ1tdID0+XG4gIGdldENvbW1lbnRMaW5lcyhjb21tZW50VGV4dClcbiAgICAubWFwKChsaW5lKSA9PiBwYXJzZVBhcmFtZXRlclRhZ0xpbmUobGluZSkpXG4gICAgLmZpbHRlcigodGFnKSA9PiBpc01hdGNoaW5nTWVtYmVyVGFnKHRhZywgcGFyYW1ldGVyVHlwZXMpKTtcblxuLyoqXG4gKiBSZXBvcnRzIGludGVyZmFjZSBtZW1iZXIgZG9jdW1lbnRhdGlvbiBlbnRyaWVzIGZvciByZW1vdmFsLlxuICogQHBhcmFtIGNvbnRleHQgUnVsZSBleGVjdXRpb24gY29udGV4dC5cbiAqIEBwYXJhbSBkZXRhaWxzIENvbGxlY3RlZCBydWxlIGRldGFpbHMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVwb3J0TWVtYmVyRG9jdW1lbnRhdGlvbihjb250ZXh0LCBkZXRhaWxzKTtcbiAqIGBgYFxuICovXG5jb25zdCByZXBvcnRNZW1iZXJEb2N1bWVudGF0aW9uID0gKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBkZXRhaWxzOiBSZXBvcnRNZW1iZXJEb2N1bWVudGF0aW9uQ29udGV4dCxcbik6IHZvaWQgPT4ge1xuICBjb25zdCB7IGNvbW1lbnRTdGFydCwgY29tbWVudFRleHQsIG1lbWJlclRhZ3MsIG5vZGUgfSA9IGRldGFpbHM7XG5cbiAgZm9yIChjb25zdCB0YWcgb2YgbWVtYmVyVGFncykge1xuICAgIGNvbnN0IHJlbW92YWxSYW5nZSA9IGJ1aWxkUmVtb3ZhbFJhbmdlKGNvbW1lbnRTdGFydCwgY29tbWVudFRleHQsIHRhZy5saW5lKTtcblxuICAgIGNvbnN0IGZpeCA9IChmaXhlcjogUnVsZS5SdWxlRml4ZXIpOiBSdWxlLkZpeCA9PlxuICAgICAgZml4ZXIucmVtb3ZlUmFuZ2UocmVtb3ZhbFJhbmdlKTtcblxuICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgIGRhdGE6IHsgcGFyYW1ldGVyTmFtZTogdGFnLmZ1bGxOYW1lIH0sXG4gICAgICBmaXgsXG4gICAgICBtZXNzYWdlSWQ6IFwiaW50ZXJmYWNlTWVtYmVyRG9jXCIsXG4gICAgICBub2RlLFxuICAgICAgc3VnZ2VzdDogW3sgZml4LCBtZXNzYWdlSWQ6IFwicmVtb3ZlTWVtYmVyRG9jXCIgfV0sXG4gICAgfSk7XG4gIH1cbn07XG5cbi8qKlxuICogR2V0cyBwYXJhbWV0ZXIgdHlwZSByZWZlcmVuY2VzIGZvciBhIG5vZGUuXG4gKiBAcGFyYW0gbm9kZSBGdW5jdGlvbi1saWtlIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFBhcmFtZXRlciB0eXBlIGxvb2t1cCB3aGVuIHByZXNlbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbG9va3VwID0gZ2V0UGFyYW1ldGVyVHlwZXMobm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0UGFyYW1ldGVyVHlwZXMgPSAoXG4gIG5vZGU6IFJ1bGUuTm9kZSxcbik6IE1hcDxzdHJpbmcsIFR5cGVBbm5vdGF0aW9uTm9kZT4gfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBwYXJhbWV0ZXJUeXBlcyA9IGdldFBhcmFtZXRlclR5cGVMb29rdXAobm9kZSk7XG5cbiAgcmV0dXJuIHBhcmFtZXRlclR5cGVzLnNpemUgPiAwID8gcGFyYW1ldGVyVHlwZXMgOiB2b2lkIDA7XG59O1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBKU0RvYyBjb21tZW50IGRhdGEgZm9yIGEgbm9kZS5cbiAqIEBwYXJhbSBzb3VyY2VDb2RlIFNvdXJjZUNvZGUgd3JhcHBlci5cbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIEpTRG9jIGRhdGEgd2hlbiBhdmFpbGFibGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGF0YSA9IGdldEpzZG9jRGF0YShzb3VyY2VDb2RlLCBub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRKc2RvY0RhdGEgPSAoXG4gIHNvdXJjZUNvZGU6IFJ1bGUuUnVsZUNvbnRleHRbXCJzb3VyY2VDb2RlXCJdLFxuICBub2RlOiBSdWxlLk5vZGUsXG4pOiBKc2RvY0RhdGEgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBjb21tZW50ID0gZ2V0SnNkb2NDb21tZW50KHNvdXJjZUNvZGUsIG5vZGUpO1xuXG4gIGlmIChjb21tZW50ID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgY29tbWVudFN0YXJ0ID0gY29tbWVudC5yYW5nZT8uWzBdO1xuXG4gIGlmICh0eXBlb2YgY29tbWVudFN0YXJ0ICE9PSBcIm51bWJlclwiKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IHRleHQgPSBnZXRDb21tZW50VGV4dChzb3VyY2VDb2RlLCBjb21tZW50KTtcblxuICByZXR1cm4geyBjb21tZW50LCBjb21tZW50U3RhcnQsIHRleHQgfTtcbn07XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIG1lbWJlciB0YWcgY29udGV4dCBmb3IgYSBub2RlLlxuICogQHBhcmFtIGNvbnRleHQgUnVsZSBleGVjdXRpb24gY29udGV4dC5cbiAqIEBwYXJhbSBub2RlIE5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIE1lbWJlciB0YWcgY29udGV4dCB3aGVuIGF2YWlsYWJsZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBjb250ZXh0ID0gcmVzb2x2ZU1lbWJlclRhZ0NvbnRleHQoY29udGV4dCwgbm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVzb2x2ZU1lbWJlclRhZ0NvbnRleHQgPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIG5vZGU6IFJ1bGUuTm9kZSxcbik6IE1lbWJlclRhZ0NvbnRleHQgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBwYXJhbWV0ZXJUeXBlcyA9IGdldFBhcmFtZXRlclR5cGVzKG5vZGUpO1xuICBjb25zdCBqc2RvY0RhdGEgPSBnZXRKc2RvY0RhdGEoY29udGV4dC5zb3VyY2VDb2RlLCBub2RlKTtcblxuICBpZiAocGFyYW1ldGVyVHlwZXMgPT09IHZvaWQgMCB8fCBqc2RvY0RhdGEgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBtZW1iZXJUYWdzID0gY29sbGVjdE1lbWJlclRhZ3MoanNkb2NEYXRhLnRleHQsIHBhcmFtZXRlclR5cGVzKTtcblxuICByZXR1cm4gbWVtYmVyVGFncy5sZW5ndGggPiAwXG4gICAgPyB7XG4gICAgICAgIGNvbW1lbnQ6IGpzZG9jRGF0YS5jb21tZW50LFxuICAgICAgICBjb21tZW50U3RhcnQ6IGpzZG9jRGF0YS5jb21tZW50U3RhcnQsXG4gICAgICAgIGNvbW1lbnRUZXh0OiBqc2RvY0RhdGEudGV4dCxcbiAgICAgICAgbWVtYmVyVGFncyxcbiAgICAgIH1cbiAgICA6IHZvaWQgMDtcbn07XG5cbi8qKiBIYW5kbGVzIGZ1bmN0aW9uLWxpa2Ugbm9kZXMgZm9yIHRoZSBuby1pbnRlcmZhY2UtbWVtYmVyLWRvY3MgcnVsZS4gKi9cbmludGVyZmFjZSBOb2RlVmFsdWUge1xuICAvKipcbiAgICogVmFsdWUgZmllbGQgZm9yIG1ldGhvZCBkZWZpbml0aW9uczsgZnVuY3Rpb24tbGlrZSBub2RlcyBoYXZlIG5vIHZhbHVlIGZpZWxkLCBzbyB0aGlzIGlzIG9wdGlvbmFsLlxuICAgKi9cbiAgdmFsdWU/OiBSdWxlLk5vZGU7XG59XG5cbi8qKlxuICogSGFuZGxlcyBmdW5jdGlvbi1saWtlIG5vZGVzIGZvciB0aGlzIHJ1bGUuXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGV4ZWN1dGlvbiBjb250ZXh0LlxuICogQHBhcmFtIG5vZGUgTm9kZSB0byBpbnNwZWN0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGhhbmRsZUZ1bmN0aW9uTGlrZShjb250ZXh0LCBub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBoYW5kbGVGdW5jdGlvbkxpa2UgPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIG5vZGU6IFJ1bGUuTm9kZSxcbik6IHZvaWQgPT4ge1xuICBjb25zdCBmdW5jdGlvbkxpa2VOb2RlID1cbiAgICBub2RlLnR5cGUgPT09IFwiTWV0aG9kRGVmaW5pdGlvblwiXG4gICAgICA/ICgobm9kZSBhcyB1bmtub3duIGFzIE5vZGVWYWx1ZSkudmFsdWUgPz8gbm9kZSlcbiAgICAgIDogbm9kZTtcblxuICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVNZW1iZXJUYWdDb250ZXh0KGNvbnRleHQsIGZ1bmN0aW9uTGlrZU5vZGUpO1xuXG4gIGlmIChyZXNvbHZlZCA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVwb3J0TWVtYmVyRG9jdW1lbnRhdGlvbihjb250ZXh0LCB7XG4gICAgY29tbWVudDogcmVzb2x2ZWQuY29tbWVudCxcbiAgICBjb21tZW50U3RhcnQ6IHJlc29sdmVkLmNvbW1lbnRTdGFydCxcbiAgICBjb21tZW50VGV4dDogcmVzb2x2ZWQuY29tbWVudFRleHQsXG4gICAgbWVtYmVyVGFnczogcmVzb2x2ZWQubWVtYmVyVGFncyxcbiAgICBub2RlLFxuICAgIHNvdXJjZUNvZGU6IGNvbnRleHQuc291cmNlQ29kZSxcbiAgfSk7XG59O1xuXG4vKiogRVNMaW50IHJ1bGUgZGlzYWxsb3dpbmcgaW50ZXJmYWNlIG1lbWJlciBkb2N1bWVudGF0aW9uIGluIGBAcGFyYW1gIHRhZ3MuICovXG5jb25zdCBub0ludGVyZmFjZU1lbWJlckRvY3VtZW50YXRpb25SdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIge1xuICAgIGNvbnN0IGxpc3RlbmVyID0gKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgaGFuZGxlRnVuY3Rpb25MaWtlKGNvbnRleHQsIG5vZGUpO1xuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246IGxpc3RlbmVyLFxuICAgICAgRnVuY3Rpb25EZWNsYXJhdGlvbjogbGlzdGVuZXIsXG4gICAgICBGdW5jdGlvbkV4cHJlc3Npb246IGxpc3RlbmVyLFxuICAgICAgTWV0aG9kRGVmaW5pdGlvbjogbGlzdGVuZXIsXG4gICAgICBUU0Fic3RyYWN0TWV0aG9kRGVmaW5pdGlvbjogbGlzdGVuZXIsXG4gICAgICBUU0NhbGxTaWduYXR1cmVEZWNsYXJhdGlvbjogbGlzdGVuZXIsXG4gICAgICBUU0NvbnN0cnVjdFNpZ25hdHVyZURlY2xhcmF0aW9uOiBsaXN0ZW5lcixcbiAgICAgIFRTRGVjbGFyZUZ1bmN0aW9uOiBsaXN0ZW5lcixcbiAgICAgIFRTRnVuY3Rpb25UeXBlOiBsaXN0ZW5lcixcbiAgICAgIFRTTWV0aG9kU2lnbmF0dXJlOiBsaXN0ZW5lcixcbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiRGlzYWxsb3cgZG9jdW1lbnRpbmcgaW50ZXJmYWNlIG1lbWJlcnMgaW4gQHBhcmFtIHRhZ3M7IGRvY3VtZW50IHRoZW0gb24gdGhlIGludGVyZmFjZSBpbnN0ZWFkLlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvbm8taW50ZXJmYWNlLW1lbWJlci1kb2NzLm1kXCIsXG4gICAgfSxcbiAgICBmaXhhYmxlOiBcImNvZGVcIixcbiAgICBoYXNTdWdnZXN0aW9uczogdHJ1ZSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgaW50ZXJmYWNlTWVtYmVyRG9jOlxuICAgICAgICBcIkRvY3VtZW50IGludGVyZmFjZSBtZW1iZXJzIG9uIHRoZSBpbnRlcmZhY2UgaW5zdGVhZCBvZiB1c2luZyBAcGFyYW0gZm9yIHt7cGFyYW1ldGVyTmFtZX19LlwiLFxuICAgICAgcmVtb3ZlTWVtYmVyRG9jOlxuICAgICAgICBcIlJlbW92ZSB0aGUgQHBhcmFtIHRhZyBkb2N1bWVudGluZyB0aGlzIGludGVyZmFjZSBtZW1iZXIuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6IFwicHJvYmxlbVwiLFxuICB9LFxufTtcblxuZXhwb3J0IHsgbm9JbnRlcmZhY2VNZW1iZXJEb2N1bWVudGF0aW9uUnVsZSB9O1xuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporting.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/require-example-language/reporting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAW,MAAM,SAAS,CAAC;AAyCzD,qCAAqC;AACrC,UAAU,oBAAoB;IAC5B,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;IAEjB,2BAA2B;IAC3B,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC;IAE1B,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;IAEjB,oCAAoC;IACpC,gBAAgB,EAAE,OAAO,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"reporting.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/require-example-language/reporting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAW,MAAM,SAAS,CAAC;AAyCzD,qCAAqC;AACrC,UAAU,oBAAoB;IAC5B,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;IAEjB,2BAA2B;IAC3B,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC;IAE1B,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;IAEjB,oCAAoC;IACpC,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AA2MD;;;;;;;GAOG;AACH,iBAAS,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAiB1D;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|