@codeperfect/eslint-plugin 2.6.0 → 2.8.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 +3 -7
- package/dist/application/custom-rules.d.ts.map +1 -1
- package/dist/application/custom-rules.js +15 -57
- package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +1 -1
- 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/consistent-barrel-files/no-import-export-aliases-rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.js +3 -9
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +3 -9
- 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 +171 -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-multiple-declarators/types.js +1 -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/core/prefer-interface-types/autofix.d.ts +15 -0
- package/dist/domain/core/prefer-interface-types/autofix.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/autofix.js +196 -0
- package/dist/domain/core/prefer-interface-types/declaration-names.d.ts +23 -0
- package/dist/domain/core/prefer-interface-types/declaration-names.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/declaration-names.js +139 -0
- package/dist/domain/core/prefer-interface-types/naming.d.ts +45 -0
- package/dist/domain/core/prefer-interface-types/naming.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/naming.js +179 -0
- package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts +2 -0
- package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts.map +1 -1
- package/dist/domain/core/prefer-interface-types/rule-utilities.js +1 -1
- package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -1
- package/dist/domain/core/prefer-interface-types/rule.js +40 -16
- package/dist/domain/core/prefer-interface-types/types.d.ts +80 -0
- package/dist/domain/core/prefer-interface-types/types.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/types.js +2 -0
- package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.js +2 -7
- package/dist/domain/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +2 -6
- package/dist/domain/docs/no-interface-member-docs/parameter-utilities.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +2 -5
- 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/examples.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/examples.js +2 -6
- package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/reporting.js +34 -7
- 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/analyzer.analysis.helpers.js +1 -1
- package/dist/domain/testing/aaa/analyzer.analysis.js +1 -1
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +27 -3
- package/dist/domain/testing/aaa/analyzer.assertions.operands.js +1 -1
- package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.classification.helpers.js +29 -4
- package/dist/domain/testing/aaa/analyzer.classification.traversal.js +1 -1
- package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.super.helpers.js +1 -1
- package/dist/domain/testing/aaa/analyzer.super.js +10 -3
- 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-phase-purity/phase-purity-identifiers.js +1 -1
- package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.js +3 -2
- 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 +44 -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/fix-import-statements.js +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-imports.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-imports.js +2 -6
- 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/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -1
- package/dist/domain/testing/require-act-result-capture/rule.js +10 -5
- package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -1
- package/dist/domain/testing/require-test-companion/rule.js +4 -13
- package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -1
- package/dist/infrastructure/codeperfect-plugin.js +2 -4
- package/dist/infrastructure/index.js +1 -1
- package/dist/infrastructure/presets.d.ts.map +1 -1
- package/dist/infrastructure/presets.js +2 -4
- package/package.json +24 -23
- 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
|
@@ -9,12 +9,16 @@ const preferViMockedImportRule = {
|
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
11
11
|
for (const [index, match] of matches.entries()) {
|
|
12
|
+
const fix = index === 0
|
|
13
|
+
? (fixer) => buildFixes(matches, fixer)
|
|
14
|
+
: void 0;
|
|
12
15
|
context.report({
|
|
13
|
-
fix
|
|
14
|
-
? (fixer) => buildFixes(matches, fixer)
|
|
15
|
-
: void 0,
|
|
16
|
+
...(fix !== void 0 && { fix }),
|
|
16
17
|
messageId: "preferViMockedImport",
|
|
17
18
|
node: match.node,
|
|
19
|
+
...(fix !== void 0 && {
|
|
20
|
+
suggest: [{ fix, messageId: "inlineViMockedImport" }],
|
|
21
|
+
}),
|
|
18
22
|
});
|
|
19
23
|
}
|
|
20
24
|
},
|
|
@@ -26,7 +30,9 @@ const preferViMockedImportRule = {
|
|
|
26
30
|
url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/prefer-vi-mocked-import.md",
|
|
27
31
|
},
|
|
28
32
|
fixable: "code",
|
|
33
|
+
hasSuggestions: true,
|
|
29
34
|
messages: {
|
|
35
|
+
inlineViMockedImport: "Inline the vi.fn mocks and use vi.mocked(...) for calls.",
|
|
30
36
|
preferViMockedImport: "Inline vi.fn mocks in the vi.mock/vi.doMock factory and use vi.mocked(...) for calls.",
|
|
31
37
|
},
|
|
32
38
|
schema: [],
|
|
@@ -34,4 +40,4 @@ const preferViMockedImportRule = {
|
|
|
34
40
|
},
|
|
35
41
|
};
|
|
36
42
|
export { preferViMockedImportRule };
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9wcmVmZXItdmktbW9ja2VkLWltcG9ydC9ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDbkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV6Qyw2RUFBNkU7QUFDN0UsTUFBTSx3QkFBd0IsR0FBb0I7SUFDaEQsTUFBTSxFQUFFLENBQUMsT0FBeUIsRUFBcUIsRUFBRSxDQUN2RCxDQUFDO1FBQ0MsT0FBTyxFQUFFLEdBQVMsRUFBRTtZQUNsQixNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFeEMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN6QixPQUFPO1lBQ1QsQ0FBQztZQUVELEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztnQkFDL0MsTUFBTSxHQUFHLEdBQ1AsS0FBSyxLQUFLLENBQUM7b0JBQ1QsQ0FBQyxDQUFDLENBQUMsS0FBcUIsRUFBYyxFQUFFLENBQ3BDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO29CQUM5QixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRWIsT0FBTyxDQUFDLE1BQU0sQ0FBQztvQkFDYixHQUFHLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7b0JBQzlCLFNBQVMsRUFBRSxzQkFBc0I7b0JBQ2pDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtvQkFDaEIsR0FBRyxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsSUFBSTt3QkFDcEIsT0FBTyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLENBQUM7cUJBQ3RELENBQUM7aUJBQ0gsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7S0FDRixDQUE2QjtJQUNoQyxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUU7WUFDSixXQUFXLEVBQ1Qsc0ZBQXNGO1lBQ3hGLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLEdBQUcsRUFBRSwwRkFBMEY7U0FDaEc7UUFDRCxPQUFPLEVBQUUsTUFBTTtRQUNmLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFFBQVEsRUFBRTtZQUNSLG9CQUFvQixFQUNsQiwwREFBMEQ7WUFDNUQsb0JBQW9CLEVBQ2xCLHVGQUF1RjtTQUMxRjtRQUNELE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7S0FDbkI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7IGJ1aWxkRml4ZXMgfSBmcm9tIFwiLi9maXhcIjtcbmltcG9ydCB7IGNvbGxlY3RNYXRjaGVzIH0gZnJvbSBcIi4vbWF0Y2hcIjtcblxuLyoqIEVuZm9yY2UgaW5saW5lIGB2aS5mbigpYCBtb2NrcyBpbnNpZGUgYHZpLm1vY2tgL2B2aS5kb01vY2tgIGZhY3Rvcmllcy4gKi9cbmNvbnN0IHByZWZlclZpTW9ja2VkSW1wb3J0UnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGU6IChjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIgPT5cbiAgICAoe1xuICAgICAgUHJvZ3JhbTogKCk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBtYXRjaGVzID0gY29sbGVjdE1hdGNoZXMoY29udGV4dCk7XG5cbiAgICAgICAgaWYgKG1hdGNoZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBbaW5kZXgsIG1hdGNoXSBvZiBtYXRjaGVzLmVudHJpZXMoKSkge1xuICAgICAgICAgIGNvbnN0IGZpeCA9XG4gICAgICAgICAgICBpbmRleCA9PT0gMFxuICAgICAgICAgICAgICA/IChmaXhlcjogUnVsZS5SdWxlRml4ZXIpOiBSdWxlLkZpeFtdID0+XG4gICAgICAgICAgICAgICAgICBidWlsZEZpeGVzKG1hdGNoZXMsIGZpeGVyKVxuICAgICAgICAgICAgICA6IHZvaWQgMDtcblxuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIC4uLihmaXggIT09IHZvaWQgMCAmJiB7IGZpeCB9KSxcbiAgICAgICAgICAgIG1lc3NhZ2VJZDogXCJwcmVmZXJWaU1vY2tlZEltcG9ydFwiLFxuICAgICAgICAgICAgbm9kZTogbWF0Y2gubm9kZSxcbiAgICAgICAgICAgIC4uLihmaXggIT09IHZvaWQgMCAmJiB7XG4gICAgICAgICAgICAgIHN1Z2dlc3Q6IFt7IGZpeCwgbWVzc2FnZUlkOiBcImlubGluZVZpTW9ja2VkSW1wb3J0XCIgfV0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KSBzYXRpc2ZpZXMgUnVsZS5SdWxlTGlzdGVuZXIsXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJQcmVmZXIgaW5saW5pbmcgdmkuZm4gbW9ja3MgaW4gdmkubW9jay92aS5kb01vY2sgZmFjdG9yaWVzIGFuZCB1c2luZyB2aS5tb2NrZWQoLi4uKS5cIixcbiAgICAgIHJlY29tbWVuZGVkOiBmYWxzZSxcbiAgICAgIHVybDogXCJodHRwczovL2dpdGh1Yi5jb20vcGFybG90aS9lc2xpbnQtcGx1Z2luL2Jsb2IvbWFpbi9kb2NzL3J1bGVzL3ByZWZlci12aS1tb2NrZWQtaW1wb3J0Lm1kXCIsXG4gICAgfSxcbiAgICBmaXhhYmxlOiBcImNvZGVcIixcbiAgICBoYXNTdWdnZXN0aW9uczogdHJ1ZSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgaW5saW5lVmlNb2NrZWRJbXBvcnQ6XG4gICAgICAgIFwiSW5saW5lIHRoZSB2aS5mbiBtb2NrcyBhbmQgdXNlIHZpLm1vY2tlZCguLi4pIGZvciBjYWxscy5cIixcbiAgICAgIHByZWZlclZpTW9ja2VkSW1wb3J0OlxuICAgICAgICBcIklubGluZSB2aS5mbiBtb2NrcyBpbiB0aGUgdmkubW9jay92aS5kb01vY2sgZmFjdG9yeSBhbmQgdXNlIHZpLm1vY2tlZCguLi4pIGZvciBjYWxscy5cIixcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogXCJzdWdnZXN0aW9uXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyBwcmVmZXJWaU1vY2tlZEltcG9ydFJ1bGUgfTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-act-result-capture/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-act-result-capture/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA0KnC,mFAAmF;AACnF,QAAA,MAAM,2BAA2B,EAAE,IAAI,CAAC,UAuCvC,CAAC;AAEF,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
|
|
@@ -112,14 +112,19 @@ function isRuleCreateCall(expression) {
|
|
|
112
112
|
*/
|
|
113
113
|
function returnsVoid(context, statement) {
|
|
114
114
|
if (statement.type !== "ExpressionStatement" ||
|
|
115
|
-
statement.expression.type
|
|
115
|
+
!["AwaitExpression", "CallExpression"].includes(statement.expression.type)) {
|
|
116
116
|
return false;
|
|
117
117
|
}
|
|
118
118
|
try {
|
|
119
119
|
const services = ESLintUtils.getParserServices(context);
|
|
120
|
-
const
|
|
121
|
-
const
|
|
122
|
-
|
|
120
|
+
const expression = statement.expression;
|
|
121
|
+
const typeNode = services.esTreeNodeToTSNodeMap.get((expression.type === "AwaitExpression"
|
|
122
|
+
? expression.argument
|
|
123
|
+
: expression));
|
|
124
|
+
const checker = services.program.getTypeChecker();
|
|
125
|
+
const type = checker.getTypeAtLocation(typeNode);
|
|
126
|
+
const awaitedType = checker.getAwaitedType(type);
|
|
127
|
+
return ((awaitedType ?? type).flags & ts.TypeFlags.Void) !== 0;
|
|
123
128
|
}
|
|
124
129
|
catch {
|
|
125
130
|
return false;
|
|
@@ -161,4 +166,4 @@ const requireActResultCaptureRule = {
|
|
|
161
166
|
},
|
|
162
167
|
};
|
|
163
168
|
export { requireActResultCaptureRule };
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9yZXF1aXJlLWFjdC1yZXN1bHQtY2FwdHVyZS9ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUVoRixnRkFBZ0Y7QUFDaEYsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDOUIscUJBQXFCO0lBQ3JCLGFBQWE7SUFDYixTQUFTO0NBQ1YsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FDMUIsTUFBeUM7SUFFekMsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFDRSxNQUFNLENBQUMsSUFBSSxLQUFLLGtCQUFrQjtRQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQ3JDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLG1CQUFtQixDQUFDLFVBQWlDO0lBQzVELE9BQU8sQ0FDTCxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxrQkFBa0I7UUFDN0MsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFlBQVk7UUFDOUMsVUFBVSxDQUFDLE1BQU0sQ0FB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QUFJLFFBQVEsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN4QixPQUFPO1lBQ1QsQ0FBQztZQUVELEtBQUssTUFBTSxTQUFTLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUM1QyxJQUNFLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztvQkFDaEMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7b0JBQ3BDLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztvQkFDbEMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztvQkFDdEMsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDckMsQ0FBQztvQkFDRCxPQUFPLENBQUMsTUFBTSxDQUFDO3dCQUNiLFNBQVMsRUFBRSxrQkFBa0I7d0JBQzdCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtxQkFDckIsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztLQUNGLENBQTZCO0lBQ2hDLElBQUksRUFBRTtRQUNKLElBQUksRUFBRTtZQUNKLFdBQVcsRUFDVCxrRkFBa0Y7WUFDcEYsV0FBVyxFQUFFLEtBQUs7WUFDbEIsR0FBRyxFQUFFLDZGQUE2RjtTQUNuRztRQUNELFFBQVEsRUFBRTtZQUNSLGdCQUFnQixFQUNkLHVFQUF1RTtTQUMxRTtRQUNELE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7S0FDbkI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5pbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbmltcG9ydCB7IEVTTGludFV0aWxzIH0gZnJvbSBcIkB0eXBlc2NyaXB0LWVzbGludC91dGlsc1wiO1xuaW1wb3J0ICogYXMgdHMgZnJvbSBcInR5cGVzY3JpcHRcIjtcblxuaW1wb3J0IHsgYW5hbHl6ZVRlc3RCbG9jayB9IGZyb20gXCIuLi9hYWEvYW5hbHl6ZXIuYW5hbHlzaXNcIjtcbmltcG9ydCB7IGhhc0NhcHR1cmFibGVBY3RSZXN1bHQgfSBmcm9tIFwiLi4vYWFhL2FuYWx5emVyLmNsYXNzaWZpY2F0aW9uLmhlbHBlcnNcIjtcblxuLyoqIEtub3duIGhlbHBlciB3cmFwcGVycyB3aG9zZSByZXR1cm4gdmFsdWUgaXMgaW50ZW50aW9uYWxseSBpZ25vcmVkIGluIEFjdC4gKi9cbmNvbnN0IGtub3duQWN0SGVscGVycyA9IG5ldyBTZXQoW1xuICBcInJ1bkZ1bmN0aW9uTGlzdGVuZXJcIixcbiAgXCJydW5MaXN0ZW5lclwiLFxuICBcInJ1blJ1bGVcIixcbl0pO1xuXG4vKipcbiAqIEdldHMgdGhlIG5lYXJlc3QgaWRlbnRpZmllci1saWtlIG5hbWUgZnJvbSBhIG1lbWJlciBleHByZXNzaW9uIG9iamVjdC5cbiAqIEBwYXJhbSBvYmplY3QgTWVtYmVyIGV4cHJlc3Npb24gb2JqZWN0IG5vZGUuXG4gKiBAcmV0dXJucyBJZGVudGlmaWVyLWxpa2UgbmFtZSB3aGVuIGl0IGNhbiBiZSByZXNvbHZlZCBzdGF0aWNhbGx5LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5hbWUgPSBnZXRNZW1iZXJPYmplY3ROYW1lKHt9IGFzIEVTVHJlZS5NZW1iZXJFeHByZXNzaW9uW1wib2JqZWN0XCJdKTtcbiAqIHZvaWQgbmFtZTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRNZW1iZXJPYmplY3ROYW1lKFxuICBvYmplY3Q6IEVTVHJlZS5NZW1iZXJFeHByZXNzaW9uW1wib2JqZWN0XCJdLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iamVjdC50eXBlID09PSBcIklkZW50aWZpZXJcIikge1xuICAgIHJldHVybiBvYmplY3QubmFtZTtcbiAgfVxuXG4gIGlmIChcbiAgICBvYmplY3QudHlwZSA9PT0gXCJNZW1iZXJFeHByZXNzaW9uXCIgJiZcbiAgICBvYmplY3QucHJvcGVydHkudHlwZSA9PT0gXCJJZGVudGlmaWVyXCJcbiAgKSB7XG4gICAgcmV0dXJuIG9iamVjdC5wcm9wZXJ0eS5uYW1lO1xuICB9XG5cbiAgcmV0dXJuIHZvaWQgMDtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbGwgcmVwb3J0cyB0aHJvdWdoIGBjb250ZXh0LnJlcG9ydCguLi4pYC5cbiAqIEBwYXJhbSBleHByZXNzaW9uIENhbGwgZXhwcmVzc2lvbiB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBjYWxsIHRhcmdldHMgYGNvbnRleHQucmVwb3J0YC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBtYXRjaGVzID0gaXNDb250ZXh0UmVwb3J0Q2FsbCh7fSBhcyBFU1RyZWUuQ2FsbEV4cHJlc3Npb24pO1xuICogdm9pZCBtYXRjaGVzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGlzQ29udGV4dFJlcG9ydENhbGwoZXhwcmVzc2lvbjogRVNUcmVlLkNhbGxFeHByZXNzaW9uKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUudHlwZSA9PT0gXCJNZW1iZXJFeHByZXNzaW9uXCIgJiZcbiAgICBleHByZXNzaW9uLmNhbGxlZS5vYmplY3QudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiZcbiAgICBleHByZXNzaW9uLmNhbGxlZS5vYmplY3QubmFtZSA9PT0gXCJjb250ZXh0XCIgJiZcbiAgICBleHByZXNzaW9uLmNhbGxlZS5wcm9wZXJ0eS50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnByb3BlcnR5Lm5hbWUgPT09IFwicmVwb3J0XCJcbiAgKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhbiBBY3Qgc3RhdGVtZW50IGlzIGFscmVhZHkgZGVsZWdhdGVkIHRvIGEga25vd24gaGVscGVyLlxuICogQHBhcmFtIHN0YXRlbWVudCBTdGF0ZW1lbnQgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiB0aGUgc3RhdGVtZW50IGlzIGhhbmRsZWQgYnkgYSBoZWxwZXIgd3JhcHBlci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBoYW5kbGVkID0gaXNIZWxwZXJEcml2ZW5BY3Qoe30gYXMgRVNUcmVlLlN0YXRlbWVudCk7XG4gKiB2b2lkIGhhbmRsZWQ7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaXNIZWxwZXJEcml2ZW5BY3Qoc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50KTogYm9vbGVhbiB7XG4gIGlmIChzdGF0ZW1lbnQudHlwZSAhPT0gXCJFeHByZXNzaW9uU3RhdGVtZW50XCIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCB7IGV4cHJlc3Npb24gfSA9IHN0YXRlbWVudDtcbiAgaWYgKGV4cHJlc3Npb24udHlwZSAhPT0gXCJDYWxsRXhwcmVzc2lvblwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICBpc0NvbnRleHRSZXBvcnRDYWxsKGV4cHJlc3Npb24pIHx8XG4gICAgaXNOYW1lZEhlbHBlckNhbGwoZXhwcmVzc2lvbikgfHxcbiAgICBpc1J1bGVDcmVhdGVDYWxsKGV4cHJlc3Npb24pXG4gICk7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBjYWxsIHRhcmdldHMgb25lIG9mIHRoZSBrbm93biBBY3QgaGVscGVyIHdyYXBwZXJzLlxuICogQHBhcmFtIGV4cHJlc3Npb24gQ2FsbCBleHByZXNzaW9uIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGhlbHBlciBuYW1lIG1hdGNoZXMgdGhlIGFsbG93bGlzdC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBtYXRjaGVzID0gaXNOYW1lZEhlbHBlckNhbGwoe30gYXMgRVNUcmVlLkNhbGxFeHByZXNzaW9uKTtcbiAqIHZvaWQgbWF0Y2hlcztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBpc05hbWVkSGVscGVyQ2FsbChleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBleHByZXNzaW9uLmNhbGxlZS50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxuICAgIGtub3duQWN0SGVscGVycy5oYXMoZXhwcmVzc2lvbi5jYWxsZWUubmFtZSlcbiAgKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbGwgdGFyZ2V0cyBgKi5SdWxlLmNyZWF0ZSguLi4pYC5cbiAqIEBwYXJhbSBleHByZXNzaW9uIENhbGwgZXhwcmVzc2lvbiB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBjYWxsIHRhcmdldHMgYSBydWxlIGZhY3RvcnkgY3JlYXRlIG1ldGhvZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBtYXRjaGVzID0gaXNSdWxlQ3JlYXRlQ2FsbCh7fSBhcyBFU1RyZWUuQ2FsbEV4cHJlc3Npb24pO1xuICogdm9pZCBtYXRjaGVzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGlzUnVsZUNyZWF0ZUNhbGwoZXhwcmVzc2lvbjogRVNUcmVlLkNhbGxFeHByZXNzaW9uKTogYm9vbGVhbiB7XG4gIGlmIChcbiAgICBleHByZXNzaW9uLmNhbGxlZS50eXBlICE9PSBcIk1lbWJlckV4cHJlc3Npb25cIiB8fFxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnByb3BlcnR5LnR5cGUgIT09IFwiSWRlbnRpZmllclwiIHx8XG4gICAgZXhwcmVzc2lvbi5jYWxsZWUucHJvcGVydHkubmFtZSAhPT0gXCJjcmVhdGVcIlxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBvYmplY3ROYW1lID0gZ2V0TWVtYmVyT2JqZWN0TmFtZShleHByZXNzaW9uLmNhbGxlZS5vYmplY3QpO1xuXG4gIHJldHVybiBvYmplY3ROYW1lICE9PSB2b2lkIDAgJiYgb2JqZWN0TmFtZS5lbmRzV2l0aChcIlJ1bGVcIik7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBjYWxsJ3MgVHlwZVNjcmlwdCByZXR1cm4gdHlwZSBpcyB2b2lkLlxuICogQHBhcmFtIGNvbnRleHQgUnVsZSBjb250ZXh0IHRoYXQgbWF5IGV4cG9zZSBUeXBlU2NyaXB0IHBhcnNlciBzZXJ2aWNlcy5cbiAqIEBwYXJhbSBzdGF0ZW1lbnQgQWN0IHN0YXRlbWVudCB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSByZXNvbHZlZCByZXR1cm4gdHlwZSBpcyB2b2lkOyBvdGhlcndpc2UgZmFsc2UuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmV0dXJuc1ZvaWQoe30gYXMgUnVsZS5SdWxlQ29udGV4dCwge30gYXMgRVNUcmVlLlN0YXRlbWVudCk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gcmV0dXJuc1ZvaWQoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIHN0YXRlbWVudDogRVNUcmVlLlN0YXRlbWVudCxcbik6IGJvb2xlYW4ge1xuICBpZiAoXG4gICAgc3RhdGVtZW50LnR5cGUgIT09IFwiRXhwcmVzc2lvblN0YXRlbWVudFwiIHx8XG4gICAgc3RhdGVtZW50LmV4cHJlc3Npb24udHlwZSAhPT0gXCJDYWxsRXhwcmVzc2lvblwiXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3Qgc2VydmljZXMgPSBFU0xpbnRVdGlscy5nZXRQYXJzZXJTZXJ2aWNlcyhjb250ZXh0IGFzIG5ldmVyKTtcbiAgICBjb25zdCB0eXBlTm9kZSA9IHNlcnZpY2VzLmVzVHJlZU5vZGVUb1RTTm9kZU1hcC5nZXQoXG4gICAgICBzdGF0ZW1lbnQuZXhwcmVzc2lvbiBhcyBuZXZlcixcbiAgICApO1xuICAgIGNvbnN0IHR5cGUgPSBzZXJ2aWNlcy5wcm9ncmFtLmdldFR5cGVDaGVja2VyKCkuZ2V0VHlwZUF0TG9jYXRpb24odHlwZU5vZGUpO1xuXG4gICAgcmV0dXJuICh0eXBlLmZsYWdzICYgdHMuVHlwZUZsYWdzLlZvaWQpICE9PSAwO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqIFJlcXVpcmVzIEFjdC1waGFzZSBleHByZXNzaW9ucyB0byBjYXB0dXJlIG5vbi12b2lkIHJlc3VsdHMgYmVmb3JlIGFzc2VydGluZy4gKi9cbmNvbnN0IHJlcXVpcmVBY3RSZXN1bHRDYXB0dXJlUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGU6IChjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIgPT5cbiAgICAoe1xuICAgICAgQ2FsbEV4cHJlc3Npb24obm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBhbmFseXNpcyA9IGFuYWx5emVUZXN0QmxvY2soY29udGV4dCwgbm9kZSk7XG4gICAgICAgIGlmIChhbmFseXNpcyA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2YgYW5hbHlzaXMuc3RhdGVtZW50cykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHN0YXRlbWVudC5waGFzZXMuaW5jbHVkZXMoXCJBY3RcIikgJiZcbiAgICAgICAgICAgICFzdGF0ZW1lbnQucGhhc2VzLmluY2x1ZGVzKFwiQXNzZXJ0XCIpICYmXG4gICAgICAgICAgICAhaXNIZWxwZXJEcml2ZW5BY3Qoc3RhdGVtZW50Lm5vZGUpICYmXG4gICAgICAgICAgICBoYXNDYXB0dXJhYmxlQWN0UmVzdWx0KHN0YXRlbWVudC5ub2RlKSAmJlxuICAgICAgICAgICAgIXJldHVybnNWb2lkKGNvbnRleHQsIHN0YXRlbWVudC5ub2RlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICBtZXNzYWdlSWQ6IFwiY2FwdHVyZUFjdFJlc3VsdFwiLFxuICAgICAgICAgICAgICBub2RlOiBzdGF0ZW1lbnQubm9kZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KSBzYXRpc2ZpZXMgUnVsZS5SdWxlTGlzdGVuZXIsXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSZXF1aXJlIG5vbi12b2lkIEFjdCBleHByZXNzaW9ucyB0byBzdG9yZSB0aGUgb2JzZXJ2ZWQgcmVzdWx0IGJlZm9yZSBhc3NlcnRpb25zLlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvcmVxdWlyZS1hY3QtcmVzdWx0LWNhcHR1cmUubWRcIixcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBjYXB0dXJlQWN0UmVzdWx0OlxuICAgICAgICBcIkNhcHR1cmUgdGhlIC8vIEFjdCByZXN1bHQgaW4gYSBuYW1lZCB2YXJpYWJsZSBiZWZvcmUgYXNzZXJ0aW5nIG9uIGl0LlwiLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiBcInN1Z2dlc3Rpb25cIixcbiAgfSxcbn07XG5cbmV4cG9ydCB7IHJlcXVpcmVBY3RSZXN1bHRDYXB0dXJlUnVsZSB9O1xuIl19
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9yZXF1aXJlLWFjdC1yZXN1bHQtY2FwdHVyZS9ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUVoRixnRkFBZ0Y7QUFDaEYsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDOUIscUJBQXFCO0lBQ3JCLGFBQWE7SUFDYixTQUFTO0NBQ1YsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FDMUIsTUFBeUM7SUFFekMsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFDRSxNQUFNLENBQUMsSUFBSSxLQUFLLGtCQUFrQjtRQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQ3JDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLG1CQUFtQixDQUFDLFVBQWlDO0lBQzVELE9BQU8sQ0FDTCxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxrQkFBa0I7UUFDN0MsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFlBQVk7UUFDOUMsVUFBVSxDQUFDLE1BQU0sQ0FB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O1NBQzFFO1FBQ0QsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsWUFBWTtLQUNuQjtDQUNGLENBQUM7QUFFRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcblxuaW1wb3J0IHsgRVNMaW50VXRpbHMgfSBmcm9tIFwiQHR5cGVzY3JpcHQtZXNsaW50L3V0aWxzXCI7XG5pbXBvcnQgKiBhcyB0cyBmcm9tIFwidHlwZXNjcmlwdFwiO1xuXG5pbXBvcnQgeyBhbmFseXplVGVzdEJsb2NrIH0gZnJvbSBcIi4uL2FhYS9hbmFseXplci5hbmFseXNpc1wiO1xuaW1wb3J0IHsgaGFzQ2FwdHVyYWJsZUFjdFJlc3VsdCB9IGZyb20gXCIuLi9hYWEvYW5hbHl6ZXIuY2xhc3NpZmljYXRpb24uaGVscGVyc1wiO1xuXG4vKiogS25vd24gaGVscGVyIHdyYXBwZXJzIHdob3NlIHJldHVybiB2YWx1ZSBpcyBpbnRlbnRpb25hbGx5IGlnbm9yZWQgaW4gQWN0LiAqL1xuY29uc3Qga25vd25BY3RIZWxwZXJzID0gbmV3IFNldChbXG4gIFwicnVuRnVuY3Rpb25MaXN0ZW5lclwiLFxuICBcInJ1bkxpc3RlbmVyXCIsXG4gIFwicnVuUnVsZVwiLFxuXSk7XG5cbi8qKlxuICogR2V0cyB0aGUgbmVhcmVzdCBpZGVudGlmaWVyLWxpa2UgbmFtZSBmcm9tIGEgbWVtYmVyIGV4cHJlc3Npb24gb2JqZWN0LlxuICogQHBhcmFtIG9iamVjdCBNZW1iZXIgZXhwcmVzc2lvbiBvYmplY3Qgbm9kZS5cbiAqIEByZXR1cm5zIElkZW50aWZpZXItbGlrZSBuYW1lIHdoZW4gaXQgY2FuIGJlIHJlc29sdmVkIHN0YXRpY2FsbHkuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbmFtZSA9IGdldE1lbWJlck9iamVjdE5hbWUoe30gYXMgRVNUcmVlLk1lbWJlckV4cHJlc3Npb25bXCJvYmplY3RcIl0pO1xuICogdm9pZCBuYW1lO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldE1lbWJlck9iamVjdE5hbWUoXG4gIG9iamVjdDogRVNUcmVlLk1lbWJlckV4cHJlc3Npb25bXCJvYmplY3RcIl0sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAob2JqZWN0LnR5cGUgPT09IFwiSWRlbnRpZmllclwiKSB7XG4gICAgcmV0dXJuIG9iamVjdC5uYW1lO1xuICB9XG5cbiAgaWYgKFxuICAgIG9iamVjdC50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJlxuICAgIG9iamVjdC5wcm9wZXJ0eS50eXBlID09PSBcIklkZW50aWZpZXJcIlxuICApIHtcbiAgICByZXR1cm4gb2JqZWN0LnByb3BlcnR5Lm5hbWU7XG4gIH1cblxuICByZXR1cm4gdm9pZCAwO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgY2FsbCByZXBvcnRzIHRocm91Z2ggYGNvbnRleHQucmVwb3J0KC4uLilgLlxuICogQHBhcmFtIGV4cHJlc3Npb24gQ2FsbCBleHByZXNzaW9uIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGNhbGwgdGFyZ2V0cyBgY29udGV4dC5yZXBvcnRgLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG1hdGNoZXMgPSBpc0NvbnRleHRSZXBvcnRDYWxsKHt9IGFzIEVTVHJlZS5DYWxsRXhwcmVzc2lvbik7XG4gKiB2b2lkIG1hdGNoZXM7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaXNDb250ZXh0UmVwb3J0Q2FsbChleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBleHByZXNzaW9uLmNhbGxlZS50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJlxuICAgIGV4cHJlc3Npb24uY2FsbGVlLm9iamVjdC50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxuICAgIGV4cHJlc3Npb24uY2FsbGVlLm9iamVjdC5uYW1lID09PSBcImNvbnRleHRcIiAmJlxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnByb3BlcnR5LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUucHJvcGVydHkubmFtZSA9PT0gXCJyZXBvcnRcIlxuICApO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIEFjdCBzdGF0ZW1lbnQgaXMgYWxyZWFkeSBkZWxlZ2F0ZWQgdG8gYSBrbm93biBoZWxwZXIuXG4gKiBAcGFyYW0gc3RhdGVtZW50IFN0YXRlbWVudCB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBzdGF0ZW1lbnQgaXMgaGFuZGxlZCBieSBhIGhlbHBlciB3cmFwcGVyLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGhhbmRsZWQgPSBpc0hlbHBlckRyaXZlbkFjdCh7fSBhcyBFU1RyZWUuU3RhdGVtZW50KTtcbiAqIHZvaWQgaGFuZGxlZDtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBpc0hlbHBlckRyaXZlbkFjdChzdGF0ZW1lbnQ6IEVTVHJlZS5TdGF0ZW1lbnQpOiBib29sZWFuIHtcbiAgaWYgKHN0YXRlbWVudC50eXBlICE9PSBcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHsgZXhwcmVzc2lvbiB9ID0gc3RhdGVtZW50O1xuICBpZiAoZXhwcmVzc2lvbi50eXBlICE9PSBcIkNhbGxFeHByZXNzaW9uXCIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIGlzQ29udGV4dFJlcG9ydENhbGwoZXhwcmVzc2lvbikgfHxcbiAgICBpc05hbWVkSGVscGVyQ2FsbChleHByZXNzaW9uKSB8fFxuICAgIGlzUnVsZUNyZWF0ZUNhbGwoZXhwcmVzc2lvbilcbiAgKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbGwgdGFyZ2V0cyBvbmUgb2YgdGhlIGtub3duIEFjdCBoZWxwZXIgd3JhcHBlcnMuXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBDYWxsIGV4cHJlc3Npb24gdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiB0aGUgaGVscGVyIG5hbWUgbWF0Y2hlcyB0aGUgYWxsb3dsaXN0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG1hdGNoZXMgPSBpc05hbWVkSGVscGVyQ2FsbCh7fSBhcyBFU1RyZWUuQ2FsbEV4cHJlc3Npb24pO1xuICogdm9pZCBtYXRjaGVzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGlzTmFtZWRIZWxwZXJDYWxsKGV4cHJlc3Npb246IEVTVHJlZS5DYWxsRXhwcmVzc2lvbik6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAga25vd25BY3RIZWxwZXJzLmhhcyhleHByZXNzaW9uLmNhbGxlZS5uYW1lKVxuICApO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgY2FsbCB0YXJnZXRzIGAqLlJ1bGUuY3JlYXRlKC4uLilgLlxuICogQHBhcmFtIGV4cHJlc3Npb24gQ2FsbCBleHByZXNzaW9uIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGNhbGwgdGFyZ2V0cyBhIHJ1bGUgZmFjdG9yeSBjcmVhdGUgbWV0aG9kLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG1hdGNoZXMgPSBpc1J1bGVDcmVhdGVDYWxsKHt9IGFzIEVTVHJlZS5DYWxsRXhwcmVzc2lvbik7XG4gKiB2b2lkIG1hdGNoZXM7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaXNSdWxlQ3JlYXRlQ2FsbChleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24pOiBib29sZWFuIHtcbiAgaWYgKFxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnR5cGUgIT09IFwiTWVtYmVyRXhwcmVzc2lvblwiIHx8XG4gICAgZXhwcmVzc2lvbi5jYWxsZWUucHJvcGVydHkudHlwZSAhPT0gXCJJZGVudGlmaWVyXCIgfHxcbiAgICBleHByZXNzaW9uLmNhbGxlZS5wcm9wZXJ0eS5uYW1lICE9PSBcImNyZWF0ZVwiXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IG9iamVjdE5hbWUgPSBnZXRNZW1iZXJPYmplY3ROYW1lKGV4cHJlc3Npb24uY2FsbGVlLm9iamVjdCk7XG5cbiAgcmV0dXJuIG9iamVjdE5hbWUgIT09IHZvaWQgMCAmJiBvYmplY3ROYW1lLmVuZHNXaXRoKFwiUnVsZVwiKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbGwncyBUeXBlU2NyaXB0IHJldHVybiB0eXBlIGlzIHZvaWQuXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGNvbnRleHQgdGhhdCBtYXkgZXhwb3NlIFR5cGVTY3JpcHQgcGFyc2VyIHNlcnZpY2VzLlxuICogQHBhcmFtIHN0YXRlbWVudCBBY3Qgc3RhdGVtZW50IHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIHJlc29sdmVkIHJldHVybiB0eXBlIGlzIHZvaWQ7IG90aGVyd2lzZSBmYWxzZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiByZXR1cm5zVm9pZCh7fSBhcyBSdWxlLlJ1bGVDb250ZXh0LCB7fSBhcyBFU1RyZWUuU3RhdGVtZW50KTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiByZXR1cm5zVm9pZChcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgc3RhdGVtZW50OiBFU1RyZWUuU3RhdGVtZW50LFxuKTogYm9vbGVhbiB7XG4gIGlmIChcbiAgICBzdGF0ZW1lbnQudHlwZSAhPT0gXCJFeHByZXNzaW9uU3RhdGVtZW50XCIgfHxcbiAgICAhW1wiQXdhaXRFeHByZXNzaW9uXCIsIFwiQ2FsbEV4cHJlc3Npb25cIl0uaW5jbHVkZXMoc3RhdGVtZW50LmV4cHJlc3Npb24udHlwZSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBzZXJ2aWNlcyA9IEVTTGludFV0aWxzLmdldFBhcnNlclNlcnZpY2VzKGNvbnRleHQgYXMgbmV2ZXIpO1xuICAgIGNvbnN0IGV4cHJlc3Npb24gPSBzdGF0ZW1lbnQuZXhwcmVzc2lvbjtcbiAgICBjb25zdCB0eXBlTm9kZSA9IHNlcnZpY2VzLmVzVHJlZU5vZGVUb1RTTm9kZU1hcC5nZXQoXG4gICAgICAoZXhwcmVzc2lvbi50eXBlID09PSBcIkF3YWl0RXhwcmVzc2lvblwiXG4gICAgICAgID8gZXhwcmVzc2lvbi5hcmd1bWVudFxuICAgICAgICA6IGV4cHJlc3Npb24pIGFzIG5ldmVyLFxuICAgICk7XG4gICAgY29uc3QgY2hlY2tlciA9IHNlcnZpY2VzLnByb2dyYW0uZ2V0VHlwZUNoZWNrZXIoKTtcbiAgICBjb25zdCB0eXBlID0gY2hlY2tlci5nZXRUeXBlQXRMb2NhdGlvbih0eXBlTm9kZSk7XG4gICAgY29uc3QgYXdhaXRlZFR5cGUgPSBjaGVja2VyLmdldEF3YWl0ZWRUeXBlKHR5cGUpO1xuXG4gICAgcmV0dXJuICgoYXdhaXRlZFR5cGUgPz8gdHlwZSkuZmxhZ3MgJiB0cy5UeXBlRmxhZ3MuVm9pZCkgIT09IDA7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKiogUmVxdWlyZXMgQWN0LXBoYXNlIGV4cHJlc3Npb25zIHRvIGNhcHR1cmUgbm9uLXZvaWQgcmVzdWx0cyBiZWZvcmUgYXNzZXJ0aW5nLiAqL1xuY29uc3QgcmVxdWlyZUFjdFJlc3VsdENhcHR1cmVSdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZTogKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBSdWxlLlJ1bGVMaXN0ZW5lciA9PlxuICAgICh7XG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFuYWx5c2lzID0gYW5hbHl6ZVRlc3RCbG9jayhjb250ZXh0LCBub2RlKTtcbiAgICAgICAgaWYgKGFuYWx5c2lzID09PSB2b2lkIDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBhbmFseXNpcy5zdGF0ZW1lbnRzKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgc3RhdGVtZW50LnBoYXNlcy5pbmNsdWRlcyhcIkFjdFwiKSAmJlxuICAgICAgICAgICAgIXN0YXRlbWVudC5waGFzZXMuaW5jbHVkZXMoXCJBc3NlcnRcIikgJiZcbiAgICAgICAgICAgICFpc0hlbHBlckRyaXZlbkFjdChzdGF0ZW1lbnQubm9kZSkgJiZcbiAgICAgICAgICAgIGhhc0NhcHR1cmFibGVBY3RSZXN1bHQoc3RhdGVtZW50Lm5vZGUpICYmXG4gICAgICAgICAgICAhcmV0dXJuc1ZvaWQoY29udGV4dCwgc3RhdGVtZW50Lm5vZGUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG1lc3NhZ2VJZDogXCJjYXB0dXJlQWN0UmVzdWx0XCIsXG4gICAgICAgICAgICAgIG5vZGU6IHN0YXRlbWVudC5ub2RlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pIHNhdGlzZmllcyBSdWxlLlJ1bGVMaXN0ZW5lcixcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlJlcXVpcmUgbm9uLXZvaWQgQWN0IGV4cHJlc3Npb25zIHRvIHN0b3JlIHRoZSBvYnNlcnZlZCByZXN1bHQgYmVmb3JlIGFzc2VydGlvbnMuXCIsXG4gICAgICByZWNvbW1lbmRlZDogZmFsc2UsXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL3BhcmxvdGkvZXNsaW50LXBsdWdpbi9ibG9iL21haW4vZG9jcy9ydWxlcy9yZXF1aXJlLWFjdC1yZXN1bHQtY2FwdHVyZS5tZFwiLFxuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIGNhcHR1cmVBY3RSZXN1bHQ6XG4gICAgICAgIFwiQ2FwdHVyZSB0aGUgLy8gQWN0IHJlc3VsdCBpbiBhIG5hbWVkIHZhcmlhYmxlIGJlZm9yZSBhc3NlcnRpbmcgb24gaXQuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6IFwic3VnZ2VzdGlvblwiLFxuICB9LFxufTtcblxuZXhwb3J0IHsgcmVxdWlyZUFjdFJlc3VsdENhcHR1cmVSdWxlIH07XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-test-companion/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAOnC,sEAAsE;AACtE,QAAA,MAAM,wBAAwB,EAAE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-test-companion/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAOnC,sEAAsE;AACtE,QAAA,MAAM,wBAAwB,EAAE,IAAI,CAAC,UA2EpC,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -27,10 +27,7 @@ const requireTestCompanionRule = {
|
|
|
27
27
|
enforceIn: {
|
|
28
28
|
description: "Glob patterns that define where test files must have matching source companions.",
|
|
29
29
|
oneOf: [
|
|
30
|
-
{
|
|
31
|
-
description: "A single glob pattern.",
|
|
32
|
-
type: "string",
|
|
33
|
-
},
|
|
30
|
+
{ description: "A single glob pattern.", type: "string" },
|
|
34
31
|
{
|
|
35
32
|
description: "A list of glob patterns.",
|
|
36
33
|
items: { type: "string" },
|
|
@@ -42,10 +39,7 @@ const requireTestCompanionRule = {
|
|
|
42
39
|
ignorePatterns: {
|
|
43
40
|
description: "Glob patterns that should be excluded from test-to-source companion checks.",
|
|
44
41
|
oneOf: [
|
|
45
|
-
{
|
|
46
|
-
description: "A single ignore glob pattern.",
|
|
47
|
-
type: "string",
|
|
48
|
-
},
|
|
42
|
+
{ description: "A single ignore glob pattern.", type: "string" },
|
|
49
43
|
{
|
|
50
44
|
description: "A list of ignore glob patterns.",
|
|
51
45
|
items: { type: "string" },
|
|
@@ -57,10 +51,7 @@ const requireTestCompanionRule = {
|
|
|
57
51
|
testSuffixes: {
|
|
58
52
|
description: "Filename suffixes that are recognized as valid test companions.",
|
|
59
53
|
oneOf: [
|
|
60
|
-
{
|
|
61
|
-
description: "A single test filename suffix.",
|
|
62
|
-
type: "string",
|
|
63
|
-
},
|
|
54
|
+
{ description: "A single test filename suffix.", type: "string" },
|
|
64
55
|
{
|
|
65
56
|
description: "A list of test filename suffixes.",
|
|
66
57
|
items: { type: "string" },
|
|
@@ -77,4 +68,4 @@ const requireTestCompanionRule = {
|
|
|
77
68
|
},
|
|
78
69
|
};
|
|
79
70
|
export { requireTestCompanionRule };
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9yZXF1aXJlLXRlc3QtY29tcGFuaW9uL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFOUQsc0VBQXNFO0FBQ3RFLE1BQU0sd0JBQXdCLEdBQW9CO0lBQ2hELE1BQU0sRUFBRSxDQUFDLE9BQXlCLEVBQXFCLEVBQUUsQ0FDdkQsd0JBQXdCLENBQ3RCLE9BQU8sRUFDUCxPQUFPLENBQUMsUUFBUSxFQUNoQixVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUMzQixPQUFPLE9BQU8sQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FDdEQ7SUFDSCxJQUFJLEVBQUU7UUFDSixjQUFjLEVBQUU7WUFDZDtnQkFDRSxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3JCLGNBQWMsRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUM7Z0JBQ3hDLFlBQVksRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7YUFDL0I7U0FDRjtRQUNELElBQUksRUFBRTtZQUNKLFdBQVcsRUFDVCxtRUFBbUU7WUFDckUsV0FBVyxFQUFFLEtBQUs7WUFDbEIsR0FBRyxFQUFFLHlGQUF5RjtTQUMvRjtRQUNELFFBQVEsRUFBRTtZQUNSLGFBQWEsRUFDWCx3TEFBd0w7U0FDM0w7UUFDRCxNQUFNLEVBQUU7WUFDTjtnQkFDRSxvQkFBb0IsRUFBRSxLQUFLO2dCQUMzQixVQUFVLEVBQUU7b0JBQ1YsU0FBUyxFQUFFO3dCQUNULFdBQVcsRUFDVCxrRkFBa0Y7d0JBQ3BGLEtBQUssRUFBRTs0QkFDTCxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFOzRCQUN6RDtnQ0FDRSxXQUFXLEVBQUUsMEJBQTBCO2dDQUN2QyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2dDQUN6QixRQUFRLEVBQUUsQ0FBQztnQ0FDWCxJQUFJLEVBQUUsT0FBTzs2QkFDZDt5QkFDRjtxQkFDRjtvQkFDRCxjQUFjLEVBQUU7d0JBQ2QsV0FBVyxFQUNULDZFQUE2RTt3QkFDL0UsS0FBSyxFQUFFOzRCQUNMLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7NEJBQ2hFO2dDQUNFLFdBQVcsRUFBRSxpQ0FBaUM7Z0NBQzlDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7Z0NBQ3pCLFFBQVEsRUFBRSxDQUFDO2dDQUNYLElBQUksRUFBRSxPQUFPOzZCQUNkO3lCQUNGO3FCQUNGO29CQUNELFlBQVksRUFBRTt3QkFDWixXQUFXLEVBQ1QsaUVBQWlFO3dCQUNuRSxLQUFLLEVBQUU7NEJBQ0wsRUFBRSxXQUFXLEVBQUUsZ0NBQWdDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTs0QkFDakU7Z0NBQ0UsV0FBVyxFQUFFLG1DQUFtQztnQ0FDaEQsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtnQ0FDekIsUUFBUSxFQUFFLENBQUM7Z0NBQ1gsSUFBSSxFQUFFLE9BQU87NkJBQ2Q7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7Z0JBQ0QsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO1FBQ0QsSUFBSSxFQUFFLFNBQVM7S0FDaEI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7IGN3ZCB9IGZyb20gXCJub2RlOnByb2Nlc3NcIjtcblxuaW1wb3J0IHsgYnVpbGRMaXN0ZW5lckZvckZpbGVuYW1lIH0gZnJvbSBcIi4vcmVxdWlyZS10ZXN0LWNvbXBhbmlvbi1saXN0ZW5lcnNcIjtcbmltcG9ydCB7IGdldE9wdGlvbnMgfSBmcm9tIFwiLi9yZXF1aXJlLXRlc3QtY29tcGFuaW9uLW9wdGlvbnNcIjtcblxuLyoqIEVTTGludCBydWxlIGVuZm9yY2luZyAxOjEgdGVzdCBjb21wYW5pb25zIGZvciBUeXBlU2NyaXB0IGZpbGVzLiAqL1xuY29uc3QgcmVxdWlyZVRlc3RDb21wYW5pb25SdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZTogKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBSdWxlLlJ1bGVMaXN0ZW5lciA9PlxuICAgIGJ1aWxkTGlzdGVuZXJGb3JGaWxlbmFtZShcbiAgICAgIGNvbnRleHQsXG4gICAgICBjb250ZXh0LmZpbGVuYW1lLFxuICAgICAgZ2V0T3B0aW9ucyhjb250ZXh0Lm9wdGlvbnMpLFxuICAgICAgdHlwZW9mIGNvbnRleHQuY3dkID09PSBcInN0cmluZ1wiID8gY29udGV4dC5jd2QgOiBjd2QoKSxcbiAgICApLFxuICBtZXRhOiB7XG4gICAgZGVmYXVsdE9wdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgZW5mb3JjZUluOiBbXCJzcmMvKipcIl0sXG4gICAgICAgIGlnbm9yZVBhdHRlcm5zOiBbXCIvKi5kLnRzXCIsIFwiL2luZGV4LnRzXCJdLFxuICAgICAgICB0ZXN0U3VmZml4ZXM6IFtcInNwZWNcIiwgXCJ0ZXN0XCJdLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlJlcXVpcmUgZWFjaCB0ZXN0IGZpbGUgdG8gaGF2ZSBhIG1hdGNoaW5nIFR5cGVTY3JpcHQgc291cmNlIGZpbGUuXCIsXG4gICAgICByZWNvbW1lbmRlZDogZmFsc2UsXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL3BhcmxvdGkvZXNsaW50LXBsdWdpbi9ibG9iL21haW4vZG9jcy9ydWxlcy9yZXF1aXJlLXRlc3QtY29tcGFuaW9uLm1kXCIsXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgbWlzc2luZ1NvdXJjZTpcbiAgICAgICAgXCJUZXN0IGZpbGUgcmVxdWlyZXMgYSBtYXRjaGluZyBzb3VyY2UgZmlsZSAne3tzb3VyY2VGaWxlfX0nIGluIHRoZSBzYW1lIGZvbGRlci4gSWYgdGhpcyB0ZXN0IGZpbGUgaXMgb3JwaGFuZWQsIG1vdmUgaXRzIHRlc3RzIHRvIHRoZSBjb3JyZWN0IGNvbXBhbmlvbiBmaWxlIG9yIGRlbGV0ZSB0aGlzIG9ycGhhbiBmaWxlLlwiLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIGVuZm9yY2VJbjoge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiR2xvYiBwYXR0ZXJucyB0aGF0IGRlZmluZSB3aGVyZSB0ZXN0IGZpbGVzIG11c3QgaGF2ZSBtYXRjaGluZyBzb3VyY2UgY29tcGFuaW9ucy5cIixcbiAgICAgICAgICAgIG9uZU9mOiBbXG4gICAgICAgICAgICAgIHsgZGVzY3JpcHRpb246IFwiQSBzaW5nbGUgZ2xvYiBwYXR0ZXJuLlwiLCB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJBIGxpc3Qgb2YgZ2xvYiBwYXR0ZXJucy5cIixcbiAgICAgICAgICAgICAgICBpdGVtczogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgICAgbWluSXRlbXM6IDEsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlnbm9yZVBhdHRlcm5zOiB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgXCJHbG9iIHBhdHRlcm5zIHRoYXQgc2hvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gdGVzdC10by1zb3VyY2UgY29tcGFuaW9uIGNoZWNrcy5cIixcbiAgICAgICAgICAgIG9uZU9mOiBbXG4gICAgICAgICAgICAgIHsgZGVzY3JpcHRpb246IFwiQSBzaW5nbGUgaWdub3JlIGdsb2IgcGF0dGVybi5cIiwgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQSBsaXN0IG9mIGlnbm9yZSBnbG9iIHBhdHRlcm5zLlwiLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgICBtaW5JdGVtczogMSxcbiAgICAgICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGVzdFN1ZmZpeGVzOiB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgXCJGaWxlbmFtZSBzdWZmaXhlcyB0aGF0IGFyZSByZWNvZ25pemVkIGFzIHZhbGlkIHRlc3QgY29tcGFuaW9ucy5cIixcbiAgICAgICAgICAgIG9uZU9mOiBbXG4gICAgICAgICAgICAgIHsgZGVzY3JpcHRpb246IFwiQSBzaW5nbGUgdGVzdCBmaWxlbmFtZSBzdWZmaXguXCIsIHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkEgbGlzdCBvZiB0ZXN0IGZpbGVuYW1lIHN1ZmZpeGVzLlwiLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgICBtaW5JdGVtczogMSxcbiAgICAgICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICB9LFxuICAgIF0sXG4gICAgdHlwZTogXCJwcm9ibGVtXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyByZXF1aXJlVGVzdENvbXBhbmlvblJ1bGUgfTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeperfect-plugin.d.ts","sourceRoot":"","sources":["../../src/infrastructure/codeperfect-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,IAAI,EAAE,MAAM,QAAQ,CAAC;AAwB3C,mDAAmD;AACnD,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;CAoB8B,CAAC;AAErD,oDAAoD;AACpD,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"codeperfect-plugin.d.ts","sourceRoot":"","sources":["../../src/infrastructure/codeperfect-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,IAAI,EAAE,MAAM,QAAQ,CAAC;AAwB3C,mDAAmD;AACnD,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;CAoB8B,CAAC;AAErD,oDAAoD;AACpD,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;CAGkC,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -23,10 +23,8 @@ const codeperfectRules = {
|
|
|
23
23
|
};
|
|
24
24
|
/** ESLint plugin object exported by the package. */
|
|
25
25
|
const codeperfectPlugin = {
|
|
26
|
-
meta: {
|
|
27
|
-
name: "@codeperfect/eslint-plugin",
|
|
28
|
-
},
|
|
26
|
+
meta: { name: "@codeperfect/eslint-plugin" },
|
|
29
27
|
rules: codeperfectRules,
|
|
30
28
|
};
|
|
31
29
|
export { codeperfectPlugin, codeperfectRules };
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXBlcmZlY3QtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZnJhc3RydWN0dXJlL2NvZGVwZXJmZWN0LXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsa0NBQWtDLEVBQ2xDLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IsaUNBQWlDLEVBQ2pDLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QiwyQkFBMkIsRUFDM0IsMEJBQTBCLEVBQzFCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsbUJBQW1CLEdBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsbURBQW1EO0FBQ25ELE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsOEJBQThCLEVBQUUsNkJBQTZCO0lBQzdELDJCQUEyQixFQUFFLDBCQUEwQjtJQUN2RCx5QkFBeUIsRUFBRSx5QkFBeUI7SUFDcEQsdUJBQXVCLEVBQUUsdUJBQXVCO0lBQ2hELDBCQUEwQixFQUFFLHlCQUF5QjtJQUNyRCw2QkFBNkIsRUFBRSw0QkFBNEI7SUFDM0QsMEJBQTBCLEVBQUUsa0NBQWtDO0lBQzlELHlCQUF5QixFQUFFLHlCQUF5QjtJQUNwRCw4QkFBOEIsRUFBRSw2QkFBNkI7SUFDN0Qsb0NBQW9DLEVBQUUsaUNBQWlDO0lBQ3ZFLG1CQUFtQixFQUFFLG1CQUFtQjtJQUN4Qyx1QkFBdUIsRUFBRSx1QkFBdUI7SUFDaEQsd0JBQXdCLEVBQUUsd0JBQXdCO0lBQ2xELHlCQUF5QixFQUFFLHdCQUF3QjtJQUNuRCw0QkFBNEIsRUFBRSwyQkFBMkI7SUFDekQsMEJBQTBCLEVBQUUsMEJBQTBCO0lBQ3RELHdCQUF3QixFQUFFLHdCQUF3QjtJQUNsRCxzQkFBc0IsRUFBRSxzQkFBc0I7SUFDOUMsbUJBQW1CLEVBQUUsbUJBQW1CO0NBQ1UsQ0FBQztBQUVyRCxvREFBb0Q7QUFDcEQsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsNEJBQTRCLEVBQUU7SUFDNUMsS0FBSyxFQUFFLGdCQUFnQjtDQUNnQyxDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaW50ZXIsIFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7XG4gIGFzc2VydEFjdHVhbEV4cGVjdGVkTmFtZXNSdWxlLFxuICBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSxcbiAgY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZSxcbiAgZW5mb3JjZUFhYVN0cnVjdHVyZVJ1bGUsXG4gIG5vSW1wb3J0RXhwb3J0QWxpYXNlc1J1bGUsXG4gIG5vSW1wb3J0RXhwb3J0RXh0ZW5zaW9uc1J1bGUsXG4gIG5vSW50ZXJmYWNlTWVtYmVyRG9jdW1lbnRhdGlvblJ1bGUsXG4gIG5vTXVsdGlwbGVEZWNsYXJhdG9yc1J1bGUsXG4gIG5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNSdWxlLFxuICBub1Vuc2FmZVZpdGVzdE1vY2tGYWN0b3J5Q2FzdFJ1bGUsXG4gIG5vVW51c2VkRXhwb3J0c1J1bGUsXG4gIG5vVXNlbGVzc0RlbGVnYXRpb25SdWxlLFxuICBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGUsXG4gIHByZWZlclZpTW9ja2VkSW1wb3J0UnVsZSxcbiAgcmVxdWlyZUFjdFJlc3VsdENhcHR1cmVSdWxlLFxuICByZXF1aXJlRXhhbXBsZUxhbmd1YWdlUnVsZSxcbiAgcmVxdWlyZVRlc3RDb21wYW5pb25SdWxlLFxuICBzaW5nbGVBY3RTdGF0ZW1lbnRSdWxlLFxuICBzaW5nbGVMaW5lSnNkb2NSdWxlLFxufSBmcm9tIFwiLi4vYXBwbGljYXRpb25cIjtcblxuLyoqIFJ1bGUgcmVnaXN0cnkgZXhwb3NlZCBieSB0aGUgcGFja2FnZSBwbHVnaW4uICovXG5jb25zdCBjb2RlcGVyZmVjdFJ1bGVzID0ge1xuICBcImFzc2VydC1hY3R1YWwtZXhwZWN0ZWQtbmFtZXNcIjogYXNzZXJ0QWN0dWFsRXhwZWN0ZWROYW1lc1J1bGUsXG4gIFwiYmFycmVsLWZpbGVzLWV4cG9ydHMtb25seVwiOiBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSxcbiAgXCJjb25zaXN0ZW50LWJhcnJlbC1maWxlc1wiOiBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlLFxuICBcImVuZm9yY2UtYWFhLXN0cnVjdHVyZVwiOiBlbmZvcmNlQWFhU3RydWN0dXJlUnVsZSxcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWFsaWFzZXNcIjogbm9JbXBvcnRFeHBvcnRBbGlhc2VzUnVsZSxcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnNcIjogbm9JbXBvcnRFeHBvcnRFeHRlbnNpb25zUnVsZSxcbiAgXCJuby1pbnRlcmZhY2UtbWVtYmVyLWRvY3NcIjogbm9JbnRlcmZhY2VNZW1iZXJEb2N1bWVudGF0aW9uUnVsZSxcbiAgXCJuby1tdWx0aXBsZS1kZWNsYXJhdG9yc1wiOiBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlLFxuICBcIm5vLXJlZXhwb3J0cy1vdXRzaWRlLWJhcnJlbHNcIjogbm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc1J1bGUsXG4gIFwibm8tdW5zYWZlLXZpdGVzdC1tb2NrLWZhY3RvcnktY2FzdFwiOiBub1Vuc2FmZVZpdGVzdE1vY2tGYWN0b3J5Q2FzdFJ1bGUsXG4gIFwibm8tdW51c2VkLWV4cG9ydHNcIjogbm9VbnVzZWRFeHBvcnRzUnVsZSxcbiAgXCJuby11c2VsZXNzLWRlbGVnYXRpb25cIjogbm9Vc2VsZXNzRGVsZWdhdGlvblJ1bGUsXG4gIFwicHJlZmVyLWludGVyZmFjZS10eXBlc1wiOiBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGUsXG4gIFwicHJlZmVyLXZpLW1vY2tlZC1pbXBvcnRcIjogcHJlZmVyVmlNb2NrZWRJbXBvcnRSdWxlLFxuICBcInJlcXVpcmUtYWN0LXJlc3VsdC1jYXB0dXJlXCI6IHJlcXVpcmVBY3RSZXN1bHRDYXB0dXJlUnVsZSxcbiAgXCJyZXF1aXJlLWV4YW1wbGUtbGFuZ3VhZ2VcIjogcmVxdWlyZUV4YW1wbGVMYW5ndWFnZVJ1bGUsXG4gIFwicmVxdWlyZS10ZXN0LWNvbXBhbmlvblwiOiByZXF1aXJlVGVzdENvbXBhbmlvblJ1bGUsXG4gIFwic2luZ2xlLWFjdC1zdGF0ZW1lbnRcIjogc2luZ2xlQWN0U3RhdGVtZW50UnVsZSxcbiAgXCJzaW5nbGUtbGluZS1qc2RvY1wiOiBzaW5nbGVMaW5lSnNkb2NSdWxlLFxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgUnVsZS5SdWxlTW9kdWxlPjtcblxuLyoqIEVTTGludCBwbHVnaW4gb2JqZWN0IGV4cG9ydGVkIGJ5IHRoZSBwYWNrYWdlLiAqL1xuY29uc3QgY29kZXBlcmZlY3RQbHVnaW4gPSB7XG4gIG1ldGE6IHsgbmFtZTogXCJAY29kZXBlcmZlY3QvZXNsaW50LXBsdWdpblwiIH0sXG4gIHJ1bGVzOiBjb2RlcGVyZmVjdFJ1bGVzLFxufSBzYXRpc2ZpZXMgTm9uTnVsbGFibGU8TGludGVyLkNvbmZpZ1tcInBsdWdpbnNcIl0+W3N0cmluZ107XG5cbmV4cG9ydCB7IGNvZGVwZXJmZWN0UGx1Z2luLCBjb2RlcGVyZmVjdFJ1bGVzIH07XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { customRules } from "../application/index.js";
|
|
2
2
|
export { codeperfectPlugin, codeperfectRules } from "./codeperfect-plugin.js";
|
|
3
3
|
export { aaa, all, architecture, core, documentation, testing, } from "./presets.js";
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFDTCxHQUFHLEVBQ0gsR0FBRyxFQUNILFlBQVksRUFDWixJQUFJLEVBQ0osYUFBYSxFQUNiLE9BQU8sR0FDUixNQUFNLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGN1c3RvbVJ1bGVzIH0gZnJvbSBcIi4uL2FwcGxpY2F0aW9uXCI7XG5leHBvcnQgeyBjb2RlcGVyZmVjdFBsdWdpbiwgY29kZXBlcmZlY3RSdWxlcyB9IGZyb20gXCIuL2NvZGVwZXJmZWN0LXBsdWdpblwiO1xuZXhwb3J0IHtcbiAgYWFhLFxuICBhbGwsXG4gIGFyY2hpdGVjdHVyZSxcbiAgY29yZSxcbiAgZG9jdW1lbnRhdGlvbixcbiAgdGVzdGluZyxcbn0gZnJvbSBcIi4vcHJlc2V0c1wiO1xuZXhwb3J0IHR5cGUgeyBDb2RlcGVyZmVjdFByZXNldCB9IGZyb20gXCIuL3ByZXNldHNcIjtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/infrastructure/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,gEAAgE;AAChE,KAAK,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/infrastructure/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,gEAAgE;AAChE,KAAK,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC;AA+GlE,oDAAoD;AACpD,QAAA,MAAM,GAAG,mBAA6B,CAAC;AAEvC,sDAAsD;AACtD,QAAA,MAAM,YAAY,mBAAsC,CAAC;AAEzD,sCAAsC;AACtC,QAAA,MAAM,IAAI,mBAA8B,CAAC;AAEzC,+CAA+C;AAC/C,QAAA,MAAM,aAAa,mBAAuC,CAAC;AAE3D,yCAAyC;AACzC,QAAA,MAAM,OAAO,mBAAiC,CAAC;AAE/C,sDAAsD;AACtD,QAAA,MAAM,GAAG,mBAA6B,CAAC;AAEvC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;AAChE,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -67,9 +67,7 @@ const allRuleNames = [
|
|
|
67
67
|
*/
|
|
68
68
|
function createPreset(ruleNames) {
|
|
69
69
|
return {
|
|
70
|
-
plugins: {
|
|
71
|
-
codeperfect: codeperfectPlugin,
|
|
72
|
-
},
|
|
70
|
+
plugins: { codeperfect: codeperfectPlugin },
|
|
73
71
|
rules: createRules(ruleNames),
|
|
74
72
|
};
|
|
75
73
|
}
|
|
@@ -98,4 +96,4 @@ const testing = createPreset(testingRuleNames);
|
|
|
98
96
|
/** Preset that enables AAA-specific testing rules. */
|
|
99
97
|
const aaa = createPreset(aaaRuleNames);
|
|
100
98
|
export { aaa, all, architecture, core, documentation, testing };
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9wcmVzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBZ0IzRSx1REFBdUQ7QUFDdkQsTUFBTSxxQkFBcUIsR0FBRztJQUM1QiwyQkFBMkI7SUFDM0IseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUMxQiw2QkFBNkI7SUFDN0IsbUJBQW1CO0lBQ25CLDhCQUE4QjtDQUNtQixDQUFDO0FBRXBELCtDQUErQztBQUMvQyxNQUFNLGFBQWEsR0FBRztJQUNwQix5QkFBeUI7SUFDekIsdUJBQXVCO0lBQ3ZCLHdCQUF3QjtDQUN5QixDQUFDO0FBRXBELHdEQUF3RDtBQUN4RCxNQUFNLHNCQUFzQixHQUFHO0lBQzdCLDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsbUJBQW1CO0NBQzhCLENBQUM7QUFFcEQsc0RBQXNEO0FBQ3RELE1BQU0sWUFBWSxHQUFHO0lBQ25CLHVCQUF1QjtDQUMwQixDQUFDO0FBRXBELDBEQUEwRDtBQUMxRCxNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLDhCQUE4QjtJQUM5Qix1QkFBdUI7SUFDdkIsb0NBQW9DO0lBQ3BDLHlCQUF5QjtJQUN6Qiw0QkFBNEI7SUFDNUIsd0JBQXdCO0lBQ3hCLHNCQUFzQjtDQUMyQixDQUFDO0FBRXBELCtDQUErQztBQUMvQyxNQUFNLFlBQVksR0FBRztJQUNuQiw4QkFBOEI7SUFDOUIsMkJBQTJCO0lBQzNCLHlCQUF5QjtJQUN6Qix1QkFBdUI7SUFDdkIsMEJBQTBCO0lBQzFCLDZCQUE2QjtJQUM3QiwwQkFBMEI7SUFDMUIseUJBQXlCO0lBQ3pCLHVCQUF1QjtJQUN2Qiw4QkFBOEI7SUFDOUIsbUJBQW1CO0lBQ25CLG9DQUFvQztJQUNwQyx3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLDRCQUE0QjtJQUM1QiwwQkFBMEI7SUFDMUIsd0JBQXdCO0lBQ3hCLHNCQUFzQjtJQUN0QixtQkFBbUI7Q0FDOEIsQ0FBQztBQUVwRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsWUFBWSxDQUNuQixTQUF5QztJQUV6QyxPQUFPO1FBQ0wsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFO1FBQzNDLEtBQUssRUFBRSxXQUFXLENBQUMsU0FBUyxDQUFDO0tBQzlCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLFdBQVcsQ0FDbEIsU0FBeUM7SUFFekMsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGVBQWUsUUFBUSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FDbEUsQ0FBQztBQUNKLENBQUM7QUFFRCxvREFBb0Q7QUFDcEQsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRXZDLHNEQUFzRDtBQUN0RCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUV6RCxzQ0FBc0M7QUFDdEMsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBRXpDLCtDQUErQztBQUMvQyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUUzRCx5Q0FBeUM7QUFDekMsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFL0Msc0RBQXNEO0FBQ3RELE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUV2QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBjb2RlcGVyZmVjdFBsdWdpbiwgY29kZXBlcmZlY3RSdWxlcyB9IGZyb20gXCIuL2NvZGVwZXJmZWN0LXBsdWdpblwiO1xuXG4vKiogUmVwcmVzZW50cyBhIHJlYWR5LXRvLXVzZSBwcmVzZXQgZXhwb3J0ZWQgYnkgdGhlIHBhY2thZ2UuICovXG50eXBlIENvZGVwZXJmZWN0UHJlc2V0ID0gUGljazxMaW50ZXIuQ29uZmlnLCBcInBsdWdpbnNcIiB8IFwicnVsZXNcIj47XG5cbi8qKiBSZXByZXNlbnRzIHRoZSBlbmFibGVkIHJ1bGUgZW50cmllcyBpbnNpZGUgYSBwcmVzZXQuICovXG50eXBlIENvZGVwZXJmZWN0UnVsZUVudHJpZXMgPSBQYXJ0aWFsPFxuICBSZWNvcmQ8Q29kZXBlcmZlY3RSdWxlS2V5LCBMaW50ZXIuUnVsZUVudHJ5PlxuPjtcblxuLyoqIE5hbWVzcGFjZXMgYSBwYWNrYWdlLW93bmVkIHJ1bGUgdW5kZXIgdGhlIGBjb2RlcGVyZmVjdC9gIHByZWZpeC4gKi9cbnR5cGUgQ29kZXBlcmZlY3RSdWxlS2V5ID0gYGNvZGVwZXJmZWN0LyR7Q29kZXBlcmZlY3RSdWxlTmFtZX1gO1xuXG4vKiogRW51bWVyYXRlcyB0aGUgcGFja2FnZS1vd25lZCBydWxlIG5hbWVzLiAqL1xudHlwZSBDb2RlcGVyZmVjdFJ1bGVOYW1lID0ga2V5b2YgdHlwZW9mIGNvZGVwZXJmZWN0UnVsZXM7XG5cbi8qKiBSdWxlIG5hbWVzIGdyb3VwZWQgaW50byB0aGUgYXJjaGl0ZWN0dXJlIHByZXNldC4gKi9cbmNvbnN0IGFyY2hpdGVjdHVyZVJ1bGVOYW1lcyA9IFtcbiAgXCJiYXJyZWwtZmlsZXMtZXhwb3J0cy1vbmx5XCIsXG4gIFwiY29uc2lzdGVudC1iYXJyZWwtZmlsZXNcIixcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWFsaWFzZXNcIixcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnNcIixcbiAgXCJuby11bnVzZWQtZXhwb3J0c1wiLFxuICBcIm5vLXJlZXhwb3J0cy1vdXRzaWRlLWJhcnJlbHNcIixcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IENvZGVwZXJmZWN0UnVsZU5hbWVbXTtcblxuLyoqIFJ1bGUgbmFtZXMgZ3JvdXBlZCBpbnRvIHRoZSBjb3JlIHByZXNldC4gKi9cbmNvbnN0IGNvcmVSdWxlTmFtZXMgPSBbXG4gIFwibm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIixcbiAgXCJuby11c2VsZXNzLWRlbGVnYXRpb25cIixcbiAgXCJwcmVmZXItaW50ZXJmYWNlLXR5cGVzXCIsXG5dIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBDb2RlcGVyZmVjdFJ1bGVOYW1lW107XG5cbi8qKiBSdWxlIG5hbWVzIGdyb3VwZWQgaW50byB0aGUgZG9jdW1lbnRhdGlvbiBwcmVzZXQuICovXG5jb25zdCBkb2N1bWVudGF0aW9uUnVsZU5hbWVzID0gW1xuICBcIm5vLWludGVyZmFjZS1tZW1iZXItZG9jc1wiLFxuICBcInJlcXVpcmUtZXhhbXBsZS1sYW5ndWFnZVwiLFxuICBcInNpbmdsZS1saW5lLWpzZG9jXCIsXG5dIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBDb2RlcGVyZmVjdFJ1bGVOYW1lW107XG5cbi8qKiBSdWxlIG5hbWVzIGdyb3VwZWQgaW50byB0aGUgQUFBLWZvY3VzZWQgcHJlc2V0LiAqL1xuY29uc3QgYWFhUnVsZU5hbWVzID0gW1xuICBcImVuZm9yY2UtYWFhLXN0cnVjdHVyZVwiLFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgQ29kZXBlcmZlY3RSdWxlTmFtZVtdO1xuXG4vKiogUnVsZSBuYW1lcyBncm91cGVkIGludG8gdGhlIGJyb2FkZXIgdGVzdGluZyBwcmVzZXQuICovXG5jb25zdCB0ZXN0aW5nUnVsZU5hbWVzID0gW1xuICBcImFzc2VydC1hY3R1YWwtZXhwZWN0ZWQtbmFtZXNcIixcbiAgXCJlbmZvcmNlLWFhYS1zdHJ1Y3R1cmVcIixcbiAgXCJuby11bnNhZmUtdml0ZXN0LW1vY2stZmFjdG9yeS1jYXN0XCIsXG4gIFwicHJlZmVyLXZpLW1vY2tlZC1pbXBvcnRcIixcbiAgXCJyZXF1aXJlLWFjdC1yZXN1bHQtY2FwdHVyZVwiLFxuICBcInJlcXVpcmUtdGVzdC1jb21wYW5pb25cIixcbiAgXCJzaW5nbGUtYWN0LXN0YXRlbWVudFwiLFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgQ29kZXBlcmZlY3RSdWxlTmFtZVtdO1xuXG4vKiogUnVsZSBuYW1lcyB1c2VkIGJ5IHRoZSBhbGwtcnVsZXMgcHJlc2V0LiAqL1xuY29uc3QgYWxsUnVsZU5hbWVzID0gW1xuICBcImFzc2VydC1hY3R1YWwtZXhwZWN0ZWQtbmFtZXNcIixcbiAgXCJiYXJyZWwtZmlsZXMtZXhwb3J0cy1vbmx5XCIsXG4gIFwiY29uc2lzdGVudC1iYXJyZWwtZmlsZXNcIixcbiAgXCJlbmZvcmNlLWFhYS1zdHJ1Y3R1cmVcIixcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWFsaWFzZXNcIixcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnNcIixcbiAgXCJuby1pbnRlcmZhY2UtbWVtYmVyLWRvY3NcIixcbiAgXCJuby1tdWx0aXBsZS1kZWNsYXJhdG9yc1wiLFxuICBcIm5vLXVzZWxlc3MtZGVsZWdhdGlvblwiLFxuICBcIm5vLXJlZXhwb3J0cy1vdXRzaWRlLWJhcnJlbHNcIixcbiAgXCJuby11bnVzZWQtZXhwb3J0c1wiLFxuICBcIm5vLXVuc2FmZS12aXRlc3QtbW9jay1mYWN0b3J5LWNhc3RcIixcbiAgXCJwcmVmZXItaW50ZXJmYWNlLXR5cGVzXCIsXG4gIFwicHJlZmVyLXZpLW1vY2tlZC1pbXBvcnRcIixcbiAgXCJyZXF1aXJlLWFjdC1yZXN1bHQtY2FwdHVyZVwiLFxuICBcInJlcXVpcmUtZXhhbXBsZS1sYW5ndWFnZVwiLFxuICBcInJlcXVpcmUtdGVzdC1jb21wYW5pb25cIixcbiAgXCJzaW5nbGUtYWN0LXN0YXRlbWVudFwiLFxuICBcInNpbmdsZS1saW5lLWpzZG9jXCIsXG5dIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBDb2RlcGVyZmVjdFJ1bGVOYW1lW107XG5cbi8qKlxuICogQ3JlYXRlcyBhIHByZXNldCBmb3IgdGhlIHByb3ZpZGVkIHJ1bGUgbmFtZXMuXG4gKiBAcGFyYW0gcnVsZU5hbWVzIFJ1bGUgbmFtZXMgdG8gZW5hYmxlLlxuICogQHJldHVybnMgRVNMaW50IHByZXNldCBjb250YWluaW5nIHRoZSBwYWNrYWdlIHBsdWdpbiBhbmQgZW5hYmxlZCBydWxlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwcmVzZXQgPSBjcmVhdGVQcmVzZXQoW1wibm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIl0pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVByZXNldChcbiAgcnVsZU5hbWVzOiByZWFkb25seSBDb2RlcGVyZmVjdFJ1bGVOYW1lW10sXG4pOiBDb2RlcGVyZmVjdFByZXNldCB7XG4gIHJldHVybiB7XG4gICAgcGx1Z2luczogeyBjb2RlcGVyZmVjdDogY29kZXBlcmZlY3RQbHVnaW4gfSxcbiAgICBydWxlczogY3JlYXRlUnVsZXMocnVsZU5hbWVzKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBydWxlIGVudHJ5IG1hcCBmb3IgYSBwcmVzZXQuXG4gKiBAcGFyYW0gcnVsZU5hbWVzIFJ1bGUgbmFtZXMgdG8gZW5hYmxlLlxuICogQHJldHVybnMgUnVsZSBlbnRyeSBtYXAga2V5ZWQgYnkgYGNvZGVwZXJmZWN0L2AgcnVsZSBuYW1lLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJ1bGVzID0gY3JlYXRlUnVsZXMoW1wicHJlZmVyLWludGVyZmFjZS10eXBlc1wiXSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gY3JlYXRlUnVsZXMoXG4gIHJ1bGVOYW1lczogcmVhZG9ubHkgQ29kZXBlcmZlY3RSdWxlTmFtZVtdLFxuKTogQ29kZXBlcmZlY3RSdWxlRW50cmllcyB7XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgcnVsZU5hbWVzLm1hcCgocnVsZU5hbWUpID0+IFtgY29kZXBlcmZlY3QvJHtydWxlTmFtZX1gLCBcImVycm9yXCJdKSxcbiAgKTtcbn1cblxuLyoqIFByZXNldCB0aGF0IGVuYWJsZXMgZXZlcnkgcGFja2FnZS1vd25lZCBydWxlLiAqL1xuY29uc3QgYWxsID0gY3JlYXRlUHJlc2V0KGFsbFJ1bGVOYW1lcyk7XG5cbi8qKiBQcmVzZXQgdGhhdCBlbmFibGVzIGFyY2hpdGVjdHVyZS1mb2N1c2VkIHJ1bGVzLiAqL1xuY29uc3QgYXJjaGl0ZWN0dXJlID0gY3JlYXRlUHJlc2V0KGFyY2hpdGVjdHVyZVJ1bGVOYW1lcyk7XG5cbi8qKiBQcmVzZXQgdGhhdCBlbmFibGVzIGNvcmUgcnVsZXMuICovXG5jb25zdCBjb3JlID0gY3JlYXRlUHJlc2V0KGNvcmVSdWxlTmFtZXMpO1xuXG4vKiogUHJlc2V0IHRoYXQgZW5hYmxlcyBkb2N1bWVudGF0aW9uIHJ1bGVzLiAqL1xuY29uc3QgZG9jdW1lbnRhdGlvbiA9IGNyZWF0ZVByZXNldChkb2N1bWVudGF0aW9uUnVsZU5hbWVzKTtcblxuLyoqIFByZXNldCB0aGF0IGVuYWJsZXMgdGVzdGluZyBydWxlcy4gKi9cbmNvbnN0IHRlc3RpbmcgPSBjcmVhdGVQcmVzZXQodGVzdGluZ1J1bGVOYW1lcyk7XG5cbi8qKiBQcmVzZXQgdGhhdCBlbmFibGVzIEFBQS1zcGVjaWZpYyB0ZXN0aW5nIHJ1bGVzLiAqL1xuY29uc3QgYWFhID0gY3JlYXRlUHJlc2V0KGFhYVJ1bGVOYW1lcyk7XG5cbmV4cG9ydCB7IGFhYSwgYWxsLCBhcmNoaXRlY3R1cmUsIGNvcmUsIGRvY3VtZW50YXRpb24sIHRlc3RpbmcgfTtcbmV4cG9ydCB0eXBlIHsgQ29kZXBlcmZlY3RQcmVzZXQgfTtcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codeperfect/eslint-plugin",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.0",
|
|
4
4
|
"description": "Custom ESLint rules for TypeScript repositories",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "github:parloti/eslint-plugin",
|
|
@@ -32,19 +32,19 @@
|
|
|
32
32
|
"clean": "npx --yes rimraf dist",
|
|
33
33
|
"\n • ---------- compilation ---------- •": "",
|
|
34
34
|
"pack": "npm pack --pack-destination dist",
|
|
35
|
-
"compile": "tsc --build --force ./tsconfig.
|
|
36
|
-
"resolve-paths": "npx --yes tsc-alias --project ./tsconfig.
|
|
35
|
+
"compile": "tsc --build --force ./tsconfig.app.json",
|
|
36
|
+
"resolve-paths": "npx --yes tsc-alias --project ./tsconfig.app.json --resolve-full-paths",
|
|
37
37
|
"\n# ---------------- LINTING ---------------- #": "",
|
|
38
38
|
"\n • ------------ checking ------------ •": "",
|
|
39
39
|
"eslint": "npx --yes eslint --max-warnings=0",
|
|
40
40
|
"lint": "npm run lint:run",
|
|
41
|
-
"lint:run": "npm run prettier
|
|
41
|
+
"lint:run": "concurrently --names=\"prettier,eslint\" --timestamp-format=\"HH:mm:ss\" --prefix=\"[{time} {name}]\" --kill-others-on-fail \"npm run prettier\" \"npm run eslint\"",
|
|
42
42
|
"prettier": "npx --yes prettier --ignore-unknown --check .",
|
|
43
43
|
"\n • ------------- fixing ------------- •": "",
|
|
44
44
|
"eslint:fix": "npm run check:rules && npm run eslint -- --fix",
|
|
45
|
-
"lint:fix": "npm run
|
|
45
|
+
"lint:fix": "npm run fmt && npm run eslint:fix",
|
|
46
46
|
"lint:staged": "npx --yes tsx scripts/lint-staged.ts",
|
|
47
|
-
"
|
|
47
|
+
"fmt": "npm run prettier -- --write",
|
|
48
48
|
"\n • ------------ helpers ------------ •": "",
|
|
49
49
|
"check:rules": "npx --yes eslint-config-prettier eslint.config.ts",
|
|
50
50
|
"eslint:inspect": "npx --yes @eslint/config-inspector",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"mutation": "npx --yes stryker run",
|
|
54
54
|
"test:all": "npm run test && npm run e2e && npm run mutation",
|
|
55
55
|
"typecheck": "tsc --noEmit",
|
|
56
|
-
"validate": "npm run lint
|
|
56
|
+
"validate": "concurrently --names=\"lint,typecheck,test:all,build & pack\" --timestamp-format=\"HH:mm:ss\" --prefix=\"[{time} {name}]\" --kill-others-on-fail \"npm run lint\" \"npm run typecheck\" \"npm run test:all\" \"npm run build && npm run pack\"",
|
|
57
57
|
"\n • -------------- unit -------------- •": "",
|
|
58
58
|
"test": "npx --yes vitest run",
|
|
59
59
|
"tdd": "npm run test -- --watch --silent=true --coverage.enabled=false",
|
|
@@ -74,55 +74,56 @@
|
|
|
74
74
|
"linting"
|
|
75
75
|
],
|
|
76
76
|
"dependencies": {
|
|
77
|
-
"@typescript-eslint/utils": "^8.
|
|
77
|
+
"@typescript-eslint/utils": "^8.70.0",
|
|
78
78
|
"minimatch": "^10.2.6"
|
|
79
79
|
},
|
|
80
80
|
"devDependencies": {
|
|
81
|
-
"@codeperfect/commitlint-config-emoji": "^1.
|
|
82
|
-
"@codeperfect/eslint-config": "^1.
|
|
81
|
+
"@codeperfect/commitlint-config-emoji": "^1.1.0",
|
|
82
|
+
"@codeperfect/eslint-config": "^1.15.0",
|
|
83
83
|
"@commitlint/cz-commitlint": "^21.2.2",
|
|
84
|
-
"@eslint-community/eslint-plugin-eslint-comments": "^4.
|
|
84
|
+
"@eslint-community/eslint-plugin-eslint-comments": "^4.8.0",
|
|
85
85
|
"@eslint/js": "^10.0.1",
|
|
86
86
|
"@stryker-mutator/core": "^10.0.0",
|
|
87
87
|
"@stryker-mutator/typescript-checker": "^10.0.0",
|
|
88
88
|
"@stryker-mutator/vitest-runner": "^10.0.0",
|
|
89
89
|
"@stylistic/eslint-plugin": "^5.10.0",
|
|
90
90
|
"@types/lodash-es": "^4.17.12",
|
|
91
|
-
"@types/node": "^
|
|
92
|
-
"@typescript-eslint/rule-tester": "^8.
|
|
91
|
+
"@types/node": "^22.20.2",
|
|
92
|
+
"@typescript-eslint/rule-tester": "^8.70.0",
|
|
93
93
|
"@vitest/coverage-v8": "^4.1.11",
|
|
94
94
|
"@vitest/eslint-plugin": "^1.6.27",
|
|
95
95
|
"chalk": "^6.0.0",
|
|
96
|
-
"
|
|
96
|
+
"concurrently": "^10.0.5",
|
|
97
|
+
"eslint": "^10.10.0",
|
|
97
98
|
"eslint-config-prettier": "^10.1.8",
|
|
98
99
|
"eslint-import-resolver-typescript": "^4.4.5",
|
|
99
100
|
"eslint-plugin-boundaries": "^7.2.0",
|
|
100
101
|
"eslint-plugin-eslint-plugin": "^7.6.2",
|
|
101
102
|
"eslint-plugin-import-x": "^4.17.1",
|
|
102
103
|
"eslint-plugin-jasmine": "^4.2.2",
|
|
103
|
-
"eslint-plugin-jest": "^29.16.
|
|
104
|
-
"eslint-plugin-jsdoc": "^64.
|
|
105
|
-
"eslint-plugin-perfectionist": "^5.
|
|
104
|
+
"eslint-plugin-jest": "^29.16.6",
|
|
105
|
+
"eslint-plugin-jsdoc": "^64.3.9",
|
|
106
|
+
"eslint-plugin-perfectionist": "^5.11.0",
|
|
106
107
|
"eslint-plugin-prettier": "^5.5.6",
|
|
107
108
|
"eslint-plugin-rxjs-x": "^1.0.6",
|
|
108
|
-
"eslint-plugin-unicorn": "^
|
|
109
|
-
"globals": "^17.
|
|
109
|
+
"eslint-plugin-unicorn": "^74.0.0",
|
|
110
|
+
"globals": "^17.12.0",
|
|
110
111
|
"husky": "^9.1.7",
|
|
111
112
|
"jiti": "^2.7.0",
|
|
112
|
-
"lint-staged": "^17.
|
|
113
|
+
"lint-staged": "^17.5.1",
|
|
113
114
|
"lodash-es": "^4.18.1",
|
|
114
115
|
"patch-package": "^8.0.1",
|
|
115
116
|
"prettier": "^3.9.6",
|
|
116
117
|
"rimraf": "^6.1.3",
|
|
117
118
|
"semantic-release": "^25.0.9",
|
|
118
|
-
"tsc-alias": "^1.9.
|
|
119
|
+
"tsc-alias": "^1.9.5",
|
|
119
120
|
"typedoc": "^0.28.20",
|
|
120
121
|
"typedoc-plugin-markdown": "^4.13.0",
|
|
121
122
|
"typescript": "^6.0.3",
|
|
122
|
-
"typescript-eslint": "^8.
|
|
123
|
+
"typescript-eslint": "^8.70.0",
|
|
123
124
|
"vitest": "^4.1.11"
|
|
124
125
|
},
|
|
125
126
|
"peerDependencies": {
|
|
126
|
-
"eslint": ">=10.
|
|
127
|
+
"eslint": ">=10.10.0"
|
|
127
128
|
}
|
|
128
129
|
}
|
package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"no-import-export-extensions-rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAgJnC,8FAA8F;AAC9F,QAAA,MAAM,4BAA4B,EAAE,IAAI,CAAC,UA0BxC,CAAC;AAEF,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
|
package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
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
|
-
* Checks whether a source literal should be reported.
|
|
51
|
-
* @param sourceLiteral Source literal node.
|
|
52
|
-
* @returns True when the source includes a disallowed file extension.
|
|
53
|
-
* @example
|
|
54
|
-
* ```typescript
|
|
55
|
-
* const forbidden = hasDisallowedExtension(sourceLiteral);
|
|
56
|
-
* ```
|
|
57
|
-
*/
|
|
58
|
-
const hasDisallowedExtension = (sourceLiteral) => {
|
|
59
|
-
if (typeof sourceLiteral.value !== "string") {
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
62
|
-
const extension = getTrailingExtension(sourceLiteral.value);
|
|
63
|
-
return extension !== void 0 && disallowedExtensions.has(extension);
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* Reports a statement when it references a source with disallowed extension.
|
|
67
|
-
* @param context Rule execution context.
|
|
68
|
-
* @param statement Statement that may include a source literal.
|
|
69
|
-
* @example
|
|
70
|
-
* ```typescript
|
|
71
|
-
* reportWhenSourceHasExtension(context, statement);
|
|
72
|
-
* ```
|
|
73
|
-
*/
|
|
74
|
-
const reportWhenSourceHasExtension = (context, statement) => {
|
|
75
|
-
const sourceLiteral = statement.source;
|
|
76
|
-
if (sourceLiteral === null || sourceLiteral === void 0) {
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
if (!hasDisallowedExtension(sourceLiteral)) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
context.report({
|
|
83
|
-
messageId: "unexpectedExtension",
|
|
84
|
-
node: sourceLiteral,
|
|
85
|
-
});
|
|
86
|
-
};
|
|
87
|
-
/**
|
|
88
|
-
* Narrows one program statement to the source-bearing declarations this rule inspects.
|
|
89
|
-
* @param statement Program statement node.
|
|
90
|
-
* @returns Source-bearing declaration when supported.
|
|
91
|
-
* @example
|
|
92
|
-
* ```typescript
|
|
93
|
-
* const declaration = asSourceDeclaration(statement);
|
|
94
|
-
* ```
|
|
95
|
-
*/
|
|
96
|
-
const asSourceDeclaration = (statement) => {
|
|
97
|
-
if (statement.type === "ExportAllDeclaration") {
|
|
98
|
-
return statement;
|
|
99
|
-
}
|
|
100
|
-
if (statement.type === "ExportNamedDeclaration") {
|
|
101
|
-
return statement;
|
|
102
|
-
}
|
|
103
|
-
if (statement.type === "ImportDeclaration") {
|
|
104
|
-
return statement;
|
|
105
|
-
}
|
|
106
|
-
return void 0;
|
|
107
|
-
};
|
|
108
|
-
/** ESLint rule that forbids import/export module specifiers with explicit file extensions. */
|
|
109
|
-
const noImportExportExtensionsRule = {
|
|
110
|
-
create: (context) => ({
|
|
111
|
-
Program(node) {
|
|
112
|
-
for (const statement of node.body) {
|
|
113
|
-
const declaration = asSourceDeclaration(statement);
|
|
114
|
-
if (declaration !== void 0) {
|
|
115
|
-
reportWhenSourceHasExtension(context, declaration);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
}),
|
|
120
|
-
meta: {
|
|
121
|
-
docs: {
|
|
122
|
-
description: "Forbid explicit file extensions in import/export module specifiers.",
|
|
123
|
-
recommended: false,
|
|
124
|
-
url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/no-import-export-extensions.md",
|
|
125
|
-
},
|
|
126
|
-
messages: {
|
|
127
|
-
unexpectedExtension: "Avoid file extensions in import/export module specifiers.",
|
|
128
|
-
},
|
|
129
|
-
schema: [],
|
|
130
|
-
type: "problem",
|
|
131
|
-
},
|
|
132
|
-
};
|
|
133
|
-
export { noImportExportExtensionsRule };
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8taW1wb3J0LWV4cG9ydC1leHRlbnNpb25zLXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9jb25zaXN0ZW50LWJhcnJlbC1maWxlcy9uby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnMtcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSwwREFBMEQ7QUFDMUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUNuQyxNQUFNO0lBQ04sTUFBTTtJQUNOLEtBQUs7SUFDTCxNQUFNO0lBQ04sTUFBTTtJQUNOLE1BQU07SUFDTixLQUFLO0lBQ0wsTUFBTTtDQUNQLENBQUMsQ0FBQztBQUVIOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE1BQWMsRUFBVSxFQUFFO0lBQ3RELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxNQUFNLGtCQUFrQixHQUFHLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FDdkQsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQ3RCLENBQUM7SUFFRixPQUFPLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTTtRQUNmLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxNQUFjLEVBQXNCLEVBQUU7SUFDbEUsTUFBTSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsTUFBTSxh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Q0osV0FBVyxFQUNULHFFQUFxRTtZQUN2RSxXQUFXLEVBQUUsS0FBSztZQUNsQixHQUFHLEVBQUUsOEZBQThGO1NBQ3BHO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsbUJBQW1CLEVBQ2pCLDJEQUEyRDtTQUM5RDtRQUNELE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFNBQVM7S0FDaEI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XHJcbmltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcclxuXHJcbi8qKiBTZXQgb2YgZGlzYWxsb3dlZCBtb2R1bGUtc3BlY2lmaWVyIGZpbGUgZXh0ZW5zaW9ucy4gKi9cclxuY29uc3QgZGlzYWxsb3dlZEV4dGVuc2lvbnMgPSBuZXcgU2V0KFtcclxuICBcIi5janNcIixcclxuICBcIi5jdHNcIixcclxuICBcIi5qc1wiLFxyXG4gIFwiLmpzeFwiLFxyXG4gIFwiLm1qc1wiLFxyXG4gIFwiLm10c1wiLFxyXG4gIFwiLnRzXCIsXHJcbiAgXCIudHN4XCIsXHJcbl0pO1xyXG5cclxuLyoqXHJcbiAqIEdldHMgdGhlIHRyYWlsaW5nIGV4dGVuc2lvbiBmcm9tIGEgbW9kdWxlIHNwZWNpZmllciBzdHJpbmcuXHJcbiAqIEBwYXJhbSBzb3VyY2UgTW9kdWxlIHNwZWNpZmllciB0ZXh0LlxyXG4gKiBAcmV0dXJucyBGaWxlIGV4dGVuc2lvbiBpbmNsdWRpbmcgdGhlIGxlYWRpbmcgZG90IHdoZW4gcHJlc2VudC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBleHRlbnNpb24gPSBnZXRUcmFpbGluZ0V4dGVuc2lvbihcIi4vZmVhdHVyZS50c1wiKTtcclxuICogYGBgXHJcbiAqL1xyXG5jb25zdCBnZXRTcGVjaWZpZXJFbmRJbmRleCA9IChzb3VyY2U6IHN0cmluZyk6IG51bWJlciA9PiB7XHJcbiAgY29uc3QgcXVlcnlJbmRleCA9IHNvdXJjZS5pbmRleE9mKFwiP1wiKTtcclxuICBjb25zdCBoYXNoSW5kZXggPSBzb3VyY2UuaW5kZXhPZihcIiNcIik7XHJcbiAgY29uc3QgZW5kSW5kZXhDYW5kaWRhdGVzID0gW3F1ZXJ5SW5kZXgsIGhhc2hJbmRleF0uZmlsdGVyKFxyXG4gICAgKGluZGV4KSA9PiBpbmRleCA+PSAwLFxyXG4gICk7XHJcblxyXG4gIHJldHVybiBlbmRJbmRleENhbmRpZGF0ZXMubGVuZ3RoID09PSAwXHJcbiAgICA/IHNvdXJjZS5sZW5ndGhcclxuICAgIDogTWF0aC5taW4oLi4uZW5kSW5kZXhDYW5kaWRhdGVzKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBHZXRzIHRoZSB0cmFpbGluZyBleHRlbnNpb24gZnJvbSBhIG1vZHVsZSBzcGVjaWZpZXIgc3RyaW5nLlxyXG4gKiBAcGFyYW0gc291cmNlIE1vZHVsZSBzcGVjaWZpZXIgdGV4dC5cclxuICogQHJldHVybnMgRmlsZSBleHRlbnNpb24gaW5jbHVkaW5nIHRoZSBsZWFkaW5nIGRvdCB3aGVuIHByZXNlbnQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZXh0ZW5zaW9uID0gZ2V0VHJhaWxpbmdFeHRlbnNpb24oXCIuL2ZlYXR1cmUudHNcIik7XHJcbiAqIGBgYFxyXG4gKi9cclxuY29uc3QgZ2V0VHJhaWxpbmdFeHRlbnNpb24gPSAoc291cmNlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xyXG4gIGNvbnN0IGVuZEluZGV4ID0gZ2V0U3BlY2lmaWVyRW5kSW5kZXgoc291cmNlKTtcclxuICBjb25zdCBjbGVhbmVkU291cmNlID0gc291cmNlLnNsaWNlKDAsIGVuZEluZGV4KTtcclxuICBjb25zdCBsYXN0U2xhc2hJbmRleCA9IE1hdGgubWF4KFxyXG4gICAgY2xlYW5lZFNvdXJjZS5sYXN0SW5kZXhPZihcIi9cIiksXHJcbiAgICBjbGVhbmVkU291cmNlLmxhc3RJbmRleE9mKFwiXFxcXFwiKSxcclxuICApO1xyXG4gIGNvbnN0IGJhc2VuYW1lID0gY2xlYW5lZFNvdXJjZS5zbGljZShsYXN0U2xhc2hJbmRleCArIDEpO1xyXG4gIGNvbnN0IGRvdEluZGV4ID0gYmFzZW5hbWUubGFzdEluZGV4T2YoXCIuXCIpO1xyXG5cclxuICBpZiAoZG90SW5kZXggPD0gMCkge1xyXG4gICAgcmV0dXJuIHZvaWQgMDtcclxuICB9XHJcblxyXG4gIHJldHVybiBiYXNlbmFtZS5zbGljZShkb3RJbmRleCkudG9Mb3dlckNhc2UoKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIHNvdXJjZSBsaXRlcmFsIHNob3VsZCBiZSByZXBvcnRlZC5cclxuICogQHBhcmFtIHNvdXJjZUxpdGVyYWwgU291cmNlIGxpdGVyYWwgbm9kZS5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBzb3VyY2UgaW5jbHVkZXMgYSBkaXNhbGxvd2VkIGZpbGUgZXh0ZW5zaW9uLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGZvcmJpZGRlbiA9IGhhc0Rpc2FsbG93ZWRFeHRlbnNpb24oc291cmNlTGl0ZXJhbCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuY29uc3QgaGFzRGlzYWxsb3dlZEV4dGVuc2lvbiA9IChzb3VyY2VMaXRlcmFsOiBFU1RyZWUuTGl0ZXJhbCk6IGJvb2xlYW4gPT4ge1xyXG4gIGlmICh0eXBlb2Ygc291cmNlTGl0ZXJhbC52YWx1ZSAhPT0gXCJzdHJpbmdcIikge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZXh0ZW5zaW9uID0gZ2V0VHJhaWxpbmdFeHRlbnNpb24oc291cmNlTGl0ZXJhbC52YWx1ZSk7XHJcblxyXG4gIHJldHVybiBleHRlbnNpb24gIT09IHZvaWQgMCAmJiBkaXNhbGxvd2VkRXh0ZW5zaW9ucy5oYXMoZXh0ZW5zaW9uKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXBvcnRzIGEgc3RhdGVtZW50IHdoZW4gaXQgcmVmZXJlbmNlcyBhIHNvdXJjZSB3aXRoIGRpc2FsbG93ZWQgZXh0ZW5zaW9uLlxyXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGV4ZWN1dGlvbiBjb250ZXh0LlxyXG4gKiBAcGFyYW0gc3RhdGVtZW50IFN0YXRlbWVudCB0aGF0IG1heSBpbmNsdWRlIGEgc291cmNlIGxpdGVyYWwuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogcmVwb3J0V2hlblNvdXJjZUhhc0V4dGVuc2lvbihjb250ZXh0LCBzdGF0ZW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmNvbnN0IHJlcG9ydFdoZW5Tb3VyY2VIYXNFeHRlbnNpb24gPSAoXHJcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcclxuICBzdGF0ZW1lbnQ6XHJcbiAgICB8IEVTVHJlZS5FeHBvcnRBbGxEZWNsYXJhdGlvblxyXG4gICAgfCBFU1RyZWUuRXhwb3J0TmFtZWREZWNsYXJhdGlvblxyXG4gICAgfCBFU1RyZWUuSW1wb3J0RGVjbGFyYXRpb24sXHJcbik6IHZvaWQgPT4ge1xyXG4gIGNvbnN0IHNvdXJjZUxpdGVyYWwgPSBzdGF0ZW1lbnQuc291cmNlO1xyXG5cclxuICBpZiAoc291cmNlTGl0ZXJhbCA9PT0gbnVsbCB8fCBzb3VyY2VMaXRlcmFsID09PSB2b2lkIDApIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGlmICghaGFzRGlzYWxsb3dlZEV4dGVuc2lvbihzb3VyY2VMaXRlcmFsKSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgY29udGV4dC5yZXBvcnQoe1xyXG4gICAgbWVzc2FnZUlkOiBcInVuZXhwZWN0ZWRFeHRlbnNpb25cIixcclxuICAgIG5vZGU6IHNvdXJjZUxpdGVyYWwsXHJcbiAgfSk7XHJcbn07XHJcblxyXG4vKipcclxuICogTmFycm93cyBvbmUgcHJvZ3JhbSBzdGF0ZW1lbnQgdG8gdGhlIHNvdXJjZS1iZWFyaW5nIGRlY2xhcmF0aW9ucyB0aGlzIHJ1bGUgaW5zcGVjdHMuXHJcbiAqIEBwYXJhbSBzdGF0ZW1lbnQgUHJvZ3JhbSBzdGF0ZW1lbnQgbm9kZS5cclxuICogQHJldHVybnMgU291cmNlLWJlYXJpbmcgZGVjbGFyYXRpb24gd2hlbiBzdXBwb3J0ZWQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZGVjbGFyYXRpb24gPSBhc1NvdXJjZURlY2xhcmF0aW9uKHN0YXRlbWVudCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuY29uc3QgYXNTb3VyY2VEZWNsYXJhdGlvbiA9IChcclxuICBzdGF0ZW1lbnQ6IEVTVHJlZS5Qcm9ncmFtW1wiYm9keVwiXVtudW1iZXJdLFxyXG4pOlxyXG4gIHwgRVNUcmVlLkV4cG9ydEFsbERlY2xhcmF0aW9uXHJcbiAgfCBFU1RyZWUuRXhwb3J0TmFtZWREZWNsYXJhdGlvblxyXG4gIHwgRVNUcmVlLkltcG9ydERlY2xhcmF0aW9uXHJcbiAgfCB1bmRlZmluZWQgPT4ge1xyXG4gIGlmIChzdGF0ZW1lbnQudHlwZSA9PT0gXCJFeHBvcnRBbGxEZWNsYXJhdGlvblwiKSB7XHJcbiAgICByZXR1cm4gc3RhdGVtZW50O1xyXG4gIH1cclxuXHJcbiAgaWYgKHN0YXRlbWVudC50eXBlID09PSBcIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIikge1xyXG4gICAgcmV0dXJuIHN0YXRlbWVudDtcclxuICB9XHJcblxyXG4gIGlmIChzdGF0ZW1lbnQudHlwZSA9PT0gXCJJbXBvcnREZWNsYXJhdGlvblwiKSB7XHJcbiAgICByZXR1cm4gc3RhdGVtZW50O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHZvaWQgMDtcclxufTtcclxuXHJcbi8qKiBFU0xpbnQgcnVsZSB0aGF0IGZvcmJpZHMgaW1wb3J0L2V4cG9ydCBtb2R1bGUgc3BlY2lmaWVycyB3aXRoIGV4cGxpY2l0IGZpbGUgZXh0ZW5zaW9ucy4gKi9cclxuY29uc3Qgbm9JbXBvcnRFeHBvcnRFeHRlbnNpb25zUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xyXG4gIGNyZWF0ZTogKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBSdWxlLlJ1bGVMaXN0ZW5lciA9PiAoe1xyXG4gICAgUHJvZ3JhbShub2RlOiBFU1RyZWUuUHJvZ3JhbSk6IHZvaWQge1xyXG4gICAgICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBub2RlLmJvZHkpIHtcclxuICAgICAgICBjb25zdCBkZWNsYXJhdGlvbiA9IGFzU291cmNlRGVjbGFyYXRpb24oc3RhdGVtZW50KTtcclxuXHJcbiAgICAgICAgaWYgKGRlY2xhcmF0aW9uICE9PSB2b2lkIDApIHtcclxuICAgICAgICAgIHJlcG9ydFdoZW5Tb3VyY2VIYXNFeHRlbnNpb24oY29udGV4dCwgZGVjbGFyYXRpb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICB9KSxcclxuICBtZXRhOiB7XHJcbiAgICBkb2NzOiB7XHJcbiAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgIFwiRm9yYmlkIGV4cGxpY2l0IGZpbGUgZXh0ZW5zaW9ucyBpbiBpbXBvcnQvZXhwb3J0IG1vZHVsZSBzcGVjaWZpZXJzLlwiLFxyXG4gICAgICByZWNvbW1lbmRlZDogZmFsc2UsXHJcbiAgICAgIHVybDogXCJodHRwczovL2dpdGh1Yi5jb20vcGFybG90aS9lc2xpbnQtcGx1Z2luL2Jsb2IvbWFpbi9kb2NzL3J1bGVzL25vLWltcG9ydC1leHBvcnQtZXh0ZW5zaW9ucy5tZFwiLFxyXG4gICAgfSxcclxuICAgIG1lc3NhZ2VzOiB7XHJcbiAgICAgIHVuZXhwZWN0ZWRFeHRlbnNpb246XHJcbiAgICAgICAgXCJBdm9pZCBmaWxlIGV4dGVuc2lvbnMgaW4gaW1wb3J0L2V4cG9ydCBtb2R1bGUgc3BlY2lmaWVycy5cIixcclxuICAgIH0sXHJcbiAgICBzY2hlbWE6IFtdLFxyXG4gICAgdHlwZTogXCJwcm9ibGVtXCIsXHJcbiAgfSxcclxufTtcclxuXHJcbmV4cG9ydCB7IG5vSW1wb3J0RXhwb3J0RXh0ZW5zaW9uc1J1bGUgfTtcclxuIl19
|