@codeperfect/eslint-plugin 2.5.0 → 2.6.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 +2 -0
- package/dist/application/custom-rules.d.ts +3 -0
- package/dist/application/custom-rules.d.ts.map +1 -1
- package/dist/application/custom-rules.js +6 -2
- package/dist/application/index.d.ts +1 -1
- package/dist/application/index.d.ts.map +1 -1
- package/dist/application/index.js +2 -2
- package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +1 -11
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +3 -13
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +2 -12
- package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/rule.js +4 -3
- package/dist/domain/architecture/no-unused-exports/rule.js +4 -2
- package/dist/domain/core/index.d.ts +1 -0
- package/dist/domain/core/index.d.ts.map +1 -1
- package/dist/domain/core/index.js +2 -1
- package/dist/domain/core/no-useless-delegation/index.d.ts +2 -0
- package/dist/domain/core/no-useless-delegation/index.d.ts.map +1 -0
- package/dist/domain/core/no-useless-delegation/index.js +2 -0
- package/dist/domain/core/no-useless-delegation/rule.d.ts +5 -0
- package/dist/domain/core/no-useless-delegation/rule.d.ts.map +1 -0
- package/dist/domain/core/no-useless-delegation/rule.js +200 -0
- package/dist/domain/index.d.ts +1 -1
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/infrastructure/codeperfect-plugin.d.ts +2 -0
- package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -1
- package/dist/infrastructure/codeperfect-plugin.js +3 -2
- package/dist/infrastructure/presets.d.ts.map +1 -1
- package/dist/infrastructure/presets.js +3 -1
- package/package.json +37 -43
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts +0 -49
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts.map +0 -1
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.js +0 -49
package/README.md
CHANGED
|
@@ -100,8 +100,10 @@ void preferInterfaceTypesRule;
|
|
|
100
100
|
- `codeperfect/no-import-export-aliases`
|
|
101
101
|
- `codeperfect/no-import-export-extensions`
|
|
102
102
|
- `codeperfect/no-interface-member-docs`
|
|
103
|
+
- `codeperfect/no-multiple-declarators`
|
|
103
104
|
- `codeperfect/no-reexports-outside-barrels`
|
|
104
105
|
- `codeperfect/no-unused-exports`
|
|
106
|
+
- `codeperfect/no-useless-delegation`
|
|
105
107
|
- `codeperfect/prefer-interface-types`
|
|
106
108
|
- `codeperfect/prefer-vi-mocked-import`
|
|
107
109
|
- `codeperfect/require-act-result-capture`
|
|
@@ -34,6 +34,9 @@ declare const customRules: readonly [{
|
|
|
34
34
|
}, {
|
|
35
35
|
readonly rule: Rule.RuleModule;
|
|
36
36
|
readonly ruleName: "no-multiple-declarators";
|
|
37
|
+
}, {
|
|
38
|
+
readonly rule: Rule.RuleModule;
|
|
39
|
+
readonly ruleName: "no-useless-delegation";
|
|
37
40
|
}, {
|
|
38
41
|
readonly rule: Rule.RuleModule;
|
|
39
42
|
readonly ruleName: "prefer-interface-types";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-rules.d.ts","sourceRoot":"","sources":["../../src/application/custom-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"custom-rules.d.ts","sourceRoot":"","sources":["../../src/application/custom-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAuBnC,+DAA+D;AAC/D,UAAU,eAAe;IACvB,kCAAkC;IAClC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;IAEtB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mEAAmE;AACnE,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyE8B,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnusedExportsRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "../domain/index.js";
|
|
1
|
+
import { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnusedExportsRule, noUselessDelegationRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "../domain/index.js";
|
|
2
2
|
/** Source-of-truth registry for all package-owned custom rules. */
|
|
3
3
|
const customRules = [
|
|
4
4
|
{
|
|
@@ -37,6 +37,10 @@ const customRules = [
|
|
|
37
37
|
rule: noMultipleDeclaratorsRule,
|
|
38
38
|
ruleName: "no-multiple-declarators",
|
|
39
39
|
},
|
|
40
|
+
{
|
|
41
|
+
rule: noUselessDelegationRule,
|
|
42
|
+
ruleName: "no-useless-delegation",
|
|
43
|
+
},
|
|
40
44
|
{
|
|
41
45
|
rule: preferInterfaceTypesRule,
|
|
42
46
|
ruleName: "prefer-interface-types",
|
|
@@ -71,4 +75,4 @@ const customRules = [
|
|
|
71
75
|
},
|
|
72
76
|
];
|
|
73
77
|
export { customRules };
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcGxpY2F0aW9uL2N1c3RvbS1ydWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsa0NBQWtDLEVBQ2xDLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQ3hCLDJCQUEyQixFQUMzQiwwQkFBMEIsRUFDMUIsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixtQkFBbUIsR0FDcEIsTUFBTSxXQUFXLENBQUM7QUFXbkIsbUVBQW1FO0FBQ25FLE1BQU0sV0FBVyxHQUFHO0lBQ2xCO1FBQ0UsSUFBSSxFQUFFLDZCQUE2QjtRQUNuQyxRQUFRLEVBQUUsOEJBQThCO0tBQ3pDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsMEJBQTBCO1FBQ2hDLFFBQVEsRUFBRSwyQkFBMkI7S0FDdEM7SUFDRDtRQUNFLElBQUksRUFBRSx5QkFBeUI7UUFDL0IsUUFBUSxFQUFFLHlCQUF5QjtLQUNwQztJQUNEO1FBQ0UsSUFBSSxFQUFFLHVCQUF1QjtRQUM3QixRQUFRLEVBQUUsdUJBQXVCO0tBQ2xDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUseUJBQXlCO1FBQy9CLFFBQVEsRUFBRSwwQkFBMEI7S0FDckM7SUFDRDtRQUNFLElBQUksRUFBRSw0QkFBNEI7UUFDbEMsUUFBUSxFQUFFLDZCQUE2QjtLQUN4QztJQUNEO1FBQ0UsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixRQUFRLEVBQUUsbUJBQW1CO0tBQzlCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsNkJBQTZCO1FBQ25DLFFBQVEsRUFBRSw4QkFBOEI7S0FDekM7SUFDRDtRQUNFLElBQUksRUFBRSx5QkFBeUI7UUFDL0IsUUFBUSxFQUFFLHlCQUF5QjtLQUNwQztJQUNEO1FBQ0UsSUFBSSxFQUFFLHVCQUF1QjtRQUM3QixRQUFRLEVBQUUsdUJBQXVCO0tBQ2xDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsd0JBQXdCO1FBQzlCLFFBQVEsRUFBRSx3QkFBd0I7S0FDbkM7SUFDRDtRQUNFLElBQUksRUFBRSxrQ0FBa0M7UUFDeEMsUUFBUSxFQUFFLDBCQUEwQjtLQUNyQztJQUNEO1FBQ0UsSUFBSSxFQUFFLDBCQUEwQjtRQUNoQyxRQUFRLEVBQUUsMEJBQTBCO0tBQ3JDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFFBQVEsRUFBRSxtQkFBbUI7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsUUFBUSxFQUFFLHlCQUF5QjtLQUNwQztJQUNEO1FBQ0UsSUFBSSxFQUFFLDJCQUEyQjtRQUNqQyxRQUFRLEVBQUUsNEJBQTRCO0tBQ3ZDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsd0JBQXdCO1FBQzlCLFFBQVEsRUFBRSx3QkFBd0I7S0FDbkM7SUFDRDtRQUNFLElBQUksRUFBRSxzQkFBc0I7UUFDNUIsUUFBUSxFQUFFLHNCQUFzQjtLQUNqQztDQUM0QyxDQUFDO0FBRWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHtcbiAgYXNzZXJ0QWN0dWFsRXhwZWN0ZWROYW1lc1J1bGUsXG4gIGJhcnJlbEZpbGVzRXhwb3J0c09ubHlSdWxlLFxuICBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlLFxuICBlbmZvcmNlQWFhU3RydWN0dXJlUnVsZSxcbiAgbm9JbXBvcnRFeHBvcnRBbGlhc2VzUnVsZSxcbiAgbm9JbXBvcnRFeHBvcnRFeHRlbnNpb25zUnVsZSxcbiAgbm9JbnRlcmZhY2VNZW1iZXJEb2N1bWVudGF0aW9uUnVsZSxcbiAgbm9NdWx0aXBsZURlY2xhcmF0b3JzUnVsZSxcbiAgbm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc1J1bGUsXG4gIG5vVW51c2VkRXhwb3J0c1J1bGUsXG4gIG5vVXNlbGVzc0RlbGVnYXRpb25SdWxlLFxuICBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGUsXG4gIHByZWZlclZpTW9ja2VkSW1wb3J0UnVsZSxcbiAgcmVxdWlyZUFjdFJlc3VsdENhcHR1cmVSdWxlLFxuICByZXF1aXJlRXhhbXBsZUxhbmd1YWdlUnVsZSxcbiAgcmVxdWlyZVRlc3RDb21wYW5pb25SdWxlLFxuICBzaW5nbGVBY3RTdGF0ZW1lbnRSdWxlLFxuICBzaW5nbGVMaW5lSnNkb2NSdWxlLFxufSBmcm9tIFwiLi4vZG9tYWluXCI7XG5cbi8qKiBJbnRlcm5hbCByZWdpc3RyeSBlbnRyeSBmb3IgYSBwYWNrYWdlLW93bmVkIGN1c3RvbSBydWxlLiAqL1xuaW50ZXJmYWNlIEN1c3RvbVJ1bGVFbnRyeSB7XG4gIC8qKiBFU0xpbnQgcnVsZSBpbXBsZW1lbnRhdGlvbi4gKi9cbiAgcnVsZTogUnVsZS5SdWxlTW9kdWxlO1xuXG4gIC8qKiBFU0xpbnQgcnVsZSBuYW1lIHdpdGhvdXQgdGhlIHBsdWdpbiBwcmVmaXguICovXG4gIHJ1bGVOYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBTb3VyY2Utb2YtdHJ1dGggcmVnaXN0cnkgZm9yIGFsbCBwYWNrYWdlLW93bmVkIGN1c3RvbSBydWxlcy4gKi9cbmNvbnN0IGN1c3RvbVJ1bGVzID0gW1xuICB7XG4gICAgcnVsZTogYXNzZXJ0QWN0dWFsRXhwZWN0ZWROYW1lc1J1bGUsXG4gICAgcnVsZU5hbWU6IFwiYXNzZXJ0LWFjdHVhbC1leHBlY3RlZC1uYW1lc1wiLFxuICB9LFxuICB7XG4gICAgcnVsZTogYmFycmVsRmlsZXNFeHBvcnRzT25seVJ1bGUsXG4gICAgcnVsZU5hbWU6IFwiYmFycmVsLWZpbGVzLWV4cG9ydHMtb25seVwiLFxuICB9LFxuICB7XG4gICAgcnVsZTogY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZSxcbiAgICBydWxlTmFtZTogXCJjb25zaXN0ZW50LWJhcnJlbC1maWxlc1wiLFxuICB9LFxuICB7XG4gICAgcnVsZTogZW5mb3JjZUFhYVN0cnVjdHVyZVJ1bGUsXG4gICAgcnVsZU5hbWU6IFwiZW5mb3JjZS1hYWEtc3RydWN0dXJlXCIsXG4gIH0sXG4gIHtcbiAgICBydWxlOiBub0ltcG9ydEV4cG9ydEFsaWFzZXNSdWxlLFxuICAgIHJ1bGVOYW1lOiBcIm5vLWltcG9ydC1leHBvcnQtYWxpYXNlc1wiLFxuICB9LFxuICB7XG4gICAgcnVsZTogbm9JbXBvcnRFeHBvcnRFeHRlbnNpb25zUnVsZSxcbiAgICBydWxlTmFtZTogXCJuby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnNcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IG5vVW51c2VkRXhwb3J0c1J1bGUsXG4gICAgcnVsZU5hbWU6IFwibm8tdW51c2VkLWV4cG9ydHNcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IG5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNSdWxlLFxuICAgIHJ1bGVOYW1lOiBcIm5vLXJlZXhwb3J0cy1vdXRzaWRlLWJhcnJlbHNcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IG5vTXVsdGlwbGVEZWNsYXJhdG9yc1J1bGUsXG4gICAgcnVsZU5hbWU6IFwibm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IG5vVXNlbGVzc0RlbGVnYXRpb25SdWxlLFxuICAgIHJ1bGVOYW1lOiBcIm5vLXVzZWxlc3MtZGVsZWdhdGlvblwiLFxuICB9LFxuICB7XG4gICAgcnVsZTogcHJlZmVySW50ZXJmYWNlVHlwZXNSdWxlLFxuICAgIHJ1bGVOYW1lOiBcInByZWZlci1pbnRlcmZhY2UtdHlwZXNcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IG5vSW50ZXJmYWNlTWVtYmVyRG9jdW1lbnRhdGlvblJ1bGUsXG4gICAgcnVsZU5hbWU6IFwibm8taW50ZXJmYWNlLW1lbWJlci1kb2NzXCIsXG4gIH0sXG4gIHtcbiAgICBydWxlOiByZXF1aXJlRXhhbXBsZUxhbmd1YWdlUnVsZSxcbiAgICBydWxlTmFtZTogXCJyZXF1aXJlLWV4YW1wbGUtbGFuZ3VhZ2VcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IHNpbmdsZUxpbmVKc2RvY1J1bGUsXG4gICAgcnVsZU5hbWU6IFwic2luZ2xlLWxpbmUtanNkb2NcIixcbiAgfSxcbiAge1xuICAgIHJ1bGU6IHByZWZlclZpTW9ja2VkSW1wb3J0UnVsZSxcbiAgICBydWxlTmFtZTogXCJwcmVmZXItdmktbW9ja2VkLWltcG9ydFwiLFxuICB9LFxuICB7XG4gICAgcnVsZTogcmVxdWlyZUFjdFJlc3VsdENhcHR1cmVSdWxlLFxuICAgIHJ1bGVOYW1lOiBcInJlcXVpcmUtYWN0LXJlc3VsdC1jYXB0dXJlXCIsXG4gIH0sXG4gIHtcbiAgICBydWxlOiByZXF1aXJlVGVzdENvbXBhbmlvblJ1bGUsXG4gICAgcnVsZU5hbWU6IFwicmVxdWlyZS10ZXN0LWNvbXBhbmlvblwiLFxuICB9LFxuICB7XG4gICAgcnVsZTogc2luZ2xlQWN0U3RhdGVtZW50UnVsZSxcbiAgICBydWxlTmFtZTogXCJzaW5nbGUtYWN0LXN0YXRlbWVudFwiLFxuICB9LFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgQ3VzdG9tUnVsZUVudHJ5W107XG5cbmV4cG9ydCB7IGN1c3RvbVJ1bGVzIH07XG5leHBvcnQgdHlwZSB7IEN1c3RvbVJ1bGVFbnRyeSB9O1xuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnsafeVitestMockFactoryCastRule, noUnusedExportsRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "../domain/index.js";
|
|
1
|
+
export { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnsafeVitestMockFactoryCastRule, noUnusedExportsRule, noUselessDelegationRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "../domain/index.js";
|
|
2
2
|
export { customRules } from "./custom-rules.js";
|
|
3
3
|
export type { CustomRuleEntry } from "./custom-rules.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/application/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,EACzB,6BAA6B,EAC7B,iCAAiC,EACjC,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/application/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,EACzB,6BAA6B,EAC7B,iCAAiC,EACjC,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnsafeVitestMockFactoryCastRule, noUnusedExportsRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "../domain/index.js";
|
|
1
|
+
export { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnsafeVitestMockFactoryCastRule, noUnusedExportsRule, noUselessDelegationRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "../domain/index.js";
|
|
2
2
|
export { customRules } from "./custom-rules.js";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwbGljYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzVCLGtDQUFrQyxFQUNsQyx5QkFBeUIsRUFDekIsNkJBQTZCLEVBQzdCLGlDQUFpQyxFQUNqQyxtQkFBbUIsRUFDbkIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIsMkJBQTJCLEVBQzNCLDBCQUEwQixFQUMxQix3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixHQUNwQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBhc3NlcnRBY3R1YWxFeHBlY3RlZE5hbWVzUnVsZSxcbiAgYmFycmVsRmlsZXNFeHBvcnRzT25seVJ1bGUsXG4gIGNvbnNpc3RlbnRCYXJyZWxGaWxlc1J1bGUsXG4gIGVuZm9yY2VBYWFTdHJ1Y3R1cmVSdWxlLFxuICBub0ltcG9ydEV4cG9ydEFsaWFzZXNSdWxlLFxuICBub0ltcG9ydEV4cG9ydEV4dGVuc2lvbnNSdWxlLFxuICBub0ludGVyZmFjZU1lbWJlckRvY3VtZW50YXRpb25SdWxlLFxuICBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlLFxuICBub1JlZXhwb3J0c091dHNpZGVCYXJyZWxzUnVsZSxcbiAgbm9VbnNhZmVWaXRlc3RNb2NrRmFjdG9yeUNhc3RSdWxlLFxuICBub1VudXNlZEV4cG9ydHNSdWxlLFxuICBub1VzZWxlc3NEZWxlZ2F0aW9uUnVsZSxcbiAgcHJlZmVySW50ZXJmYWNlVHlwZXNSdWxlLFxuICBwcmVmZXJWaU1vY2tlZEltcG9ydFJ1bGUsXG4gIHJlcXVpcmVBY3RSZXN1bHRDYXB0dXJlUnVsZSxcbiAgcmVxdWlyZUV4YW1wbGVMYW5ndWFnZVJ1bGUsXG4gIHJlcXVpcmVUZXN0Q29tcGFuaW9uUnVsZSxcbiAgc2luZ2xlQWN0U3RhdGVtZW50UnVsZSxcbiAgc2luZ2xlTGluZUpzZG9jUnVsZSxcbn0gZnJvbSBcIi4uL2RvbWFpblwiO1xuZXhwb3J0IHsgY3VzdG9tUnVsZXMgfSBmcm9tIFwiLi9jdXN0b20tcnVsZXNcIjtcbmV4cG9ydCB0eXBlIHsgQ3VzdG9tUnVsZUVudHJ5IH0gZnJvbSBcIi4vY3VzdG9tLXJ1bGVzXCI7XG4iXX0=
|
|
Binary file
|
package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts
CHANGED
|
@@ -19,16 +19,6 @@ interface ConsistentBarrelFilesState {
|
|
|
19
19
|
* ```
|
|
20
20
|
*/
|
|
21
21
|
declare const getOptions: (options: readonly unknown[]) => ConsistentBarrelFilesState;
|
|
22
|
-
/**
|
|
23
|
-
* Determines whether a filename is eligible for linting.
|
|
24
|
-
* @param filename Filename to inspect.
|
|
25
|
-
* @returns True when the filename is a lintable module file.
|
|
26
|
-
* @example
|
|
27
|
-
* ```typescript
|
|
28
|
-
* const lintable = isLintableFilename(`${cwd()}/src/index.ts`);
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
declare const isLintableFilename: (filename: string) => boolean;
|
|
32
22
|
/**
|
|
33
23
|
* Determines whether the rule should lint a file.
|
|
34
24
|
* @param filename Filename to inspect.
|
|
@@ -40,6 +30,6 @@ declare const isLintableFilename: (filename: string) => boolean;
|
|
|
40
30
|
* ```
|
|
41
31
|
*/
|
|
42
32
|
declare const shouldLintFile: (filename: string, allowedNames: string[]) => boolean;
|
|
43
|
-
export { getOptions,
|
|
33
|
+
export { getOptions, shouldLintFile };
|
|
44
34
|
export type { ConsistentBarrelFilesState };
|
|
45
35
|
//# sourceMappingURL=consistent-barrel-files-options.d.ts.map
|
package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consistent-barrel-files-options.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.ts"],"names":[],"mappings":"AASA,qCAAqC;AACrC,UAAU,0BAA0B;IAClC,gCAAgC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,mCAAmC;IACnC,eAAe,EAAE,MAAM,CAAC;IAExB,mCAAmC;IACnC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE7B,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,GACd,SAAS,SAAS,OAAO,EAAE,KAC1B,0BAcF,CAAC;
|
|
1
|
+
{"version":3,"file":"consistent-barrel-files-options.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.ts"],"names":[],"mappings":"AASA,qCAAqC;AACrC,UAAU,0BAA0B;IAClC,gCAAgC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,mCAAmC;IACnC,eAAe,EAAE,MAAM,CAAC;IAExB,mCAAmC;IACnC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE7B,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,GACd,SAAS,SAAS,OAAO,EAAE,KAC1B,0BAcF,CAAC;AAkBF;;;;;;;;;GASG;AACH,QAAA,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,cAAc,MAAM,EAAE,KAAG,OAMlE,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACtC,YAAY,EAAE,0BAA0B,EAAE,CAAC"}
|
|
@@ -23,16 +23,6 @@ const getOptions = (options) => {
|
|
|
23
23
|
enforce,
|
|
24
24
|
};
|
|
25
25
|
};
|
|
26
|
-
/**
|
|
27
|
-
* Determines whether a filename is eligible for linting.
|
|
28
|
-
* @param filename Filename to inspect.
|
|
29
|
-
* @returns True when the filename is a lintable module file.
|
|
30
|
-
* @example
|
|
31
|
-
* ```typescript
|
|
32
|
-
* const lintable = isLintableFilename(`${cwd()}/src/index.ts`);
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
const isLintableFilename = (filename) => isLintableModuleFile(filename);
|
|
36
26
|
/**
|
|
37
27
|
* Checks whether a path is nested inside a src directory.
|
|
38
28
|
* @param filename Filename to inspect.
|
|
@@ -58,9 +48,9 @@ const isInSourceDirectory = (filename) => {
|
|
|
58
48
|
* ```
|
|
59
49
|
*/
|
|
60
50
|
const shouldLintFile = (filename, allowedNames) => {
|
|
61
|
-
return (
|
|
51
|
+
return (isLintableModuleFile(filename) &&
|
|
62
52
|
isInSourceDirectory(filename) &&
|
|
63
53
|
allowedNames.length > 0);
|
|
64
54
|
};
|
|
65
|
-
export { getOptions,
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
export { getOptions, shouldLintFile };
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2lzdGVudC1iYXJyZWwtZmlsZXMtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vYXJjaGl0ZWN0dXJlL2NvbnNpc3RlbnQtYmFycmVsLWZpbGVzL2NvbnNpc3RlbnQtYmFycmVsLWZpbGVzLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBSTdCLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsMkJBQTJCLEdBQzVCLE1BQU0seUJBQXlCLENBQUM7QUFpQmpDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLEdBQUcsQ0FDakIsT0FBMkIsRUFDQyxFQUFFO0lBQzlCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQTZDLENBQUM7SUFDMUUsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUM7SUFDNUMsTUFBTSxZQUFZLEdBQUcsMkJBQTJCLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzNFLE1BQU0sZUFBZSxHQUFHLFlBQVk7U0FDakMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFYixPQUFPO1FBQ0wsWUFBWTtRQUNaLGVBQWU7UUFDZixlQUFlLEVBQUUsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDO1FBQ3RDLE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQUMsUUFBZ0IsRUFBVyxFQUFFO0lBQ3hELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXBFLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGNBQWMsR0FBRyxDQUFDLFFBQWdCLEVBQUUsWUFBc0IsRUFBVyxFQUFFO0lBQzNFLE9BQU8sQ0FDTCxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7UUFDOUIsbUJBQW1CLENBQUMsUUFBUSxDQUFDO1FBQzdCLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUN4QixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcblxuaW1wb3J0IHR5cGUgeyBDb25zaXN0ZW50QmFycmVsRmlsZXNPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHtcbiAgaXNMaW50YWJsZU1vZHVsZUZpbGUsXG4gIG5vcm1hbGl6ZUFsbG93ZWRCYXJyZWxOYW1lcyxcbn0gZnJvbSBcIi4vYmFycmVsLWZpbGUtdXRpbGl0aWVzXCI7XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBDb25zaXN0ZW50QmFycmVsRmlsZXNTdGF0ZSB7XG4gIC8qKiBBbGxvd2VkTmFtZXMgZmllbGQgdmFsdWUuICovXG4gIGFsbG93ZWROYW1lczogc3RyaW5nW107XG5cbiAgLyoqIEFsbG93ZWROYW1lc0tleSBmaWVsZCB2YWx1ZS4gKi9cbiAgYWxsb3dlZE5hbWVzS2V5OiBzdHJpbmc7XG5cbiAgLyoqIEFsbG93ZWROYW1lc1NldCBmaWVsZCB2YWx1ZS4gKi9cbiAgYWxsb3dlZE5hbWVzU2V0OiBTZXQ8c3RyaW5nPjtcblxuICAvKiogRW5mb3JjZSBmaWVsZCB2YWx1ZS4gKi9cbiAgZW5mb3JjZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBCdWlsZHMgbm9ybWFsaXplZCBydWxlIG9wdGlvbnMgZnJvbSByYXcgcnVsZSBpbnB1dC5cbiAqIEBwYXJhbSBvcHRpb25zIFJhdyBydWxlIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBUaGUgbm9ybWFsaXplZCBydWxlIHN0YXRlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHN0YXRlID0gZ2V0T3B0aW9ucyhbe31dKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRPcHRpb25zID0gKFxuICBvcHRpb25zOiByZWFkb25seSB1bmtub3duW10sXG4pOiBDb25zaXN0ZW50QmFycmVsRmlsZXNTdGF0ZSA9PiB7XG4gIGNvbnN0IHJhd09wdGlvbnMgPSBvcHRpb25zWzBdIGFzIENvbnNpc3RlbnRCYXJyZWxGaWxlc09wdGlvbnMgfCB1bmRlZmluZWQ7XG4gIGNvbnN0IGVuZm9yY2UgPSByYXdPcHRpb25zPy5lbmZvcmNlID8/IHRydWU7XG4gIGNvbnN0IGFsbG93ZWROYW1lcyA9IG5vcm1hbGl6ZUFsbG93ZWRCYXJyZWxOYW1lcyhyYXdPcHRpb25zPy5hbGxvd2VkTmFtZXMpO1xuICBjb25zdCBhbGxvd2VkTmFtZXNLZXkgPSBhbGxvd2VkTmFtZXNcbiAgICAudG9Tb3J0ZWQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSlcbiAgICAuam9pbihcInxcIik7XG5cbiAgcmV0dXJuIHtcbiAgICBhbGxvd2VkTmFtZXMsXG4gICAgYWxsb3dlZE5hbWVzS2V5LFxuICAgIGFsbG93ZWROYW1lc1NldDogbmV3IFNldChhbGxvd2VkTmFtZXMpLFxuICAgIGVuZm9yY2UsXG4gIH07XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgcGF0aCBpcyBuZXN0ZWQgaW5zaWRlIGEgc3JjIGRpcmVjdG9yeS5cbiAqIEBwYXJhbSBmaWxlbmFtZSBGaWxlbmFtZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBmaWxlIHBhdGggY29udGFpbnMgYSBzcmMgcGF0aCBzZWdtZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGluU3JjID0gaXNJblNvdXJjZURpcmVjdG9yeShgJHtjd2QoKX0vc3JjL2luZGV4LnRzYCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNJblNvdXJjZURpcmVjdG9yeSA9IChmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gcGF0aC5ub3JtYWxpemUoZmlsZW5hbWUpO1xuICBjb25zdCBwYXRoU2VnbWVudHMgPSBub3JtYWxpemVkUGF0aC5zcGxpdChwYXRoLnNlcCkuZmlsdGVyKEJvb2xlYW4pO1xuXG4gIHJldHVybiBwYXRoU2VnbWVudHMuaW5jbHVkZXMoXCJzcmNcIik7XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB0aGUgcnVsZSBzaG91bGQgbGludCBhIGZpbGUuXG4gKiBAcGFyYW0gZmlsZW5hbWUgRmlsZW5hbWUgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSBhbGxvd2VkTmFtZXMgQWxsb3dlZCBiYXJyZWwgbmFtZXMgZm9yIHRoZSBydWxlIHJ1bi5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiB0aGUgZmlsZSBzaG91bGQgYmUgY2hlY2tlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzaG91bGRMaW50ID0gc2hvdWxkTGludEZpbGUoYCR7Y3dkKCl9L3NyYy9pbmRleC50c2AsIFtcImluZGV4XCJdKTtcbiAqIGBgYFxuICovXG5jb25zdCBzaG91bGRMaW50RmlsZSA9IChmaWxlbmFtZTogc3RyaW5nLCBhbGxvd2VkTmFtZXM6IHN0cmluZ1tdKTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiAoXG4gICAgaXNMaW50YWJsZU1vZHVsZUZpbGUoZmlsZW5hbWUpICYmXG4gICAgaXNJblNvdXJjZURpcmVjdG9yeShmaWxlbmFtZSkgJiZcbiAgICBhbGxvd2VkTmFtZXMubGVuZ3RoID4gMFxuICApO1xufTtcblxuZXhwb3J0IHsgZ2V0T3B0aW9ucywgc2hvdWxkTGludEZpbGUgfTtcbmV4cG9ydCB0eXBlIHsgQ29uc2lzdGVudEJhcnJlbEZpbGVzU3RhdGUgfTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-reexports-outside-barrels-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAUlC,qCAAqC;AACrC,UAAU,8BAA8B;IACtC,sCAAsC;IACtC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAE7B,yCAAyC;IACzC,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,GACd,SAAS,SAAS,OAAO,EAAE,KAC1B,8BAUF,CAAC;
|
|
1
|
+
{"version":3,"file":"no-reexports-outside-barrels-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAUlC,qCAAqC;AACrC,UAAU,8BAA8B;IACtC,sCAAsC;IACtC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAE7B,yCAAyC;IACzC,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,GACd,SAAS,SAAS,OAAO,EAAE,KAC1B,8BAUF,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,cAAc,GAClB,UAAU,MAAM,EAChB,SAAS,8BAA8B,KACtC,OAIF,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,YAAY,GAChB,UAAU,MAAM,EAChB,SAAS,8BAA8B,KACtC,OAEF,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,oBAAoB,GAAI,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAG,GAAG,CAAC,MAAM,CAYnE,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,iBAAiB,GACrB,WAAW,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EACtC,eAAe,GAAG,CAAC,MAAM,CAAC,KACzB,OAcF,CAAC;AAEF,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,CAAC"}
|
package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js
CHANGED
|
@@ -16,16 +16,6 @@ const getOptions = (options) => {
|
|
|
16
16
|
allowedBarrelNamesSet: new Set(allowedBarrelNames),
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
|
-
/**
|
|
20
|
-
* Checks whether the filename is valid for linting.
|
|
21
|
-
* @param filename Absolute filename.
|
|
22
|
-
* @returns True when the filename is lintable.
|
|
23
|
-
* @example
|
|
24
|
-
* ```typescript
|
|
25
|
-
* const ok = isLintableFilename("/repo/src/index.ts");
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
const isLintableFilename = (filename) => isLintableModuleFile(filename);
|
|
29
19
|
/**
|
|
30
20
|
* Determines whether a file should be linted by this rule.
|
|
31
21
|
* @param filename Absolute filename.
|
|
@@ -37,7 +27,7 @@ const isLintableFilename = (filename) => isLintableModuleFile(filename);
|
|
|
37
27
|
* ```
|
|
38
28
|
*/
|
|
39
29
|
const shouldLintFile = (filename, options) => {
|
|
40
|
-
return
|
|
30
|
+
return (isLintableModuleFile(filename) && options.allowedBarrelNames.length > 0);
|
|
41
31
|
};
|
|
42
32
|
/**
|
|
43
33
|
* Determines whether a file is a barrel file under the rule options.
|
|
@@ -92,4 +82,4 @@ const hasImportedExport = (statement, importedNames) => {
|
|
|
92
82
|
importedNames.has(specifier.local.name));
|
|
93
83
|
};
|
|
94
84
|
export { collectImportedNames, getOptions, hasImportedExport, isBarrelFile, shouldLintFile, };
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcmVleHBvcnRzLW91dHNpZGUtYmFycmVscy11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9jb25zaXN0ZW50LWJhcnJlbC1maWxlcy9uby1yZWV4cG9ydHMtb3V0c2lkZS1iYXJyZWxzLXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQ0wsWUFBWSxJQUFJLGtCQUFrQixFQUNsQyxvQkFBb0IsRUFDcEIsMkJBQTJCLEdBQzVCLE1BQU0seUJBQXlCLENBQUM7QUFXakM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsR0FBRyxDQUNqQixPQUEyQixFQUNLLEVBQUU7SUFDbEMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBaUQsQ0FBQztJQUM5RSxNQUFNLGtCQUFrQixHQUFHLDJCQUEyQixDQUNwRCxVQUFVLEVBQUUsa0JBQWtCLENBQy9CLENBQUM7SUFFRixPQUFPO1FBQ0wsa0JBQWtCO1FBQ2xCLHFCQUFxQixFQUFFLElBQUksR0FBRyxDQUFDLGtCQUFrQixDQUFDO0tBQ25ELENBQUM7QUFDSixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGNBQWMsR0FBRyxDQUNyQixRQUFnQixFQUNoQixPQUF1QyxFQUM5QixFQUFFO0lBQ1gsT0FBTyxDQUNMLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUN4RSxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxZQUFZLEdBQUcsQ0FDbkIsUUFBZ0IsRUFDaEIsT0FBdUMsRUFDOUIsRUFBRTtJQUNYLE9BQU8sa0JBQWtCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3JFLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLElBQXlCLEVBQWUsRUFBRTtJQUN0RSxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBRXhDLEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLG1CQUFtQixFQUFFLENBQUM7WUFDM0MsS0FBSyxNQUFNLFNBQVMsSUFBSSxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzdDLGFBQWEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGlCQUFpQixHQUFHLENBQ3hCLFNBQXNDLEVBQ3RDLGFBQTBCLEVBQ2pCLEVBQUU7SUFDWCxJQUNFLFNBQVMsQ0FBQyxJQUFJLEtBQUssd0JBQXdCO1FBQzNDLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQztRQUMxRCxDQUFDLFNBQVMsQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLFNBQVMsQ0FBQyxXQUFXLEtBQUssS0FBSyxDQUFDLENBQUMsRUFDcEUsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQzlCLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDWixTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxZQUFZO1FBQ3JDLGFBQWEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FDMUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osY0FBYyxHQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFTVCB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHR5cGUgeyBOb1JlZXhwb3J0c091dHNpZGVCYXJyZWxzT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmltcG9ydCB7XG4gIGlzQmFycmVsRmlsZSBhcyBpc0JhcnJlbE1vZHVsZUZpbGUsXG4gIGlzTGludGFibGVNb2R1bGVGaWxlLFxuICBub3JtYWxpemVBbGxvd2VkQmFycmVsTmFtZXMsXG59IGZyb20gXCIuL2JhcnJlbC1maWxlLXV0aWxpdGllc1wiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgTm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc1N0YXRlIHtcbiAgLyoqIEFsbG93ZWRCYXJyZWxOYW1lcyBmaWVsZCB2YWx1ZS4gKi9cbiAgYWxsb3dlZEJhcnJlbE5hbWVzOiBzdHJpbmdbXTtcblxuICAvKiogQWxsb3dlZEJhcnJlbE5hbWVzU2V0IGZpZWxkIHZhbHVlLiAqL1xuICBhbGxvd2VkQmFycmVsTmFtZXNTZXQ6IFNldDxzdHJpbmc+O1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgcnVsZSBvcHRpb25zIHN0YXRlIGZyb20gcmF3IG9wdGlvbnMuXG4gKiBAcGFyYW0gb3B0aW9ucyBSYXcgcnVsZSBvcHRpb25zLlxuICogQHJldHVybnMgTm9ybWFsaXplZCBydWxlIG9wdGlvbnMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc3RhdGUgPSBnZXRPcHRpb25zKFt7fV0pO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldE9wdGlvbnMgPSAoXG4gIG9wdGlvbnM6IHJlYWRvbmx5IHVua25vd25bXSxcbik6IE5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNTdGF0ZSA9PiB7XG4gIGNvbnN0IHJhd09wdGlvbnMgPSBvcHRpb25zWzBdIGFzIE5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNPcHRpb25zIHwgdW5kZWZpbmVkO1xuICBjb25zdCBhbGxvd2VkQmFycmVsTmFtZXMgPSBub3JtYWxpemVBbGxvd2VkQmFycmVsTmFtZXMoXG4gICAgcmF3T3B0aW9ucz8uYWxsb3dlZEJhcnJlbE5hbWVzLFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgYWxsb3dlZEJhcnJlbE5hbWVzLFxuICAgIGFsbG93ZWRCYXJyZWxOYW1lc1NldDogbmV3IFNldChhbGxvd2VkQmFycmVsTmFtZXMpLFxuICB9O1xufTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBmaWxlIHNob3VsZCBiZSBsaW50ZWQgYnkgdGhpcyBydWxlLlxuICogQHBhcmFtIGZpbGVuYW1lIEFic29sdXRlIGZpbGVuYW1lLlxuICogQHBhcmFtIG9wdGlvbnMgTm9ybWFsaXplZCBydWxlIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGZpbGUgc2hvdWxkIGJlIGNoZWNrZWQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb2sgPSBzaG91bGRMaW50RmlsZShcIi9yZXBvL3NyYy9pbmRleC50c1wiLCBzdGF0ZSk7XG4gKiBgYGBcbiAqL1xuY29uc3Qgc2hvdWxkTGludEZpbGUgPSAoXG4gIGZpbGVuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IE5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNTdGF0ZSxcbik6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gKFxuICAgIGlzTGludGFibGVNb2R1bGVGaWxlKGZpbGVuYW1lKSAmJiBvcHRpb25zLmFsbG93ZWRCYXJyZWxOYW1lcy5sZW5ndGggPiAwXG4gICk7XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGZpbGUgaXMgYSBiYXJyZWwgZmlsZSB1bmRlciB0aGUgcnVsZSBvcHRpb25zLlxuICogQHBhcmFtIGZpbGVuYW1lIEFic29sdXRlIGZpbGVuYW1lLlxuICogQHBhcmFtIG9wdGlvbnMgTm9ybWFsaXplZCBydWxlIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGZpbGUgaXMgYSBiYXJyZWwgZmlsZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBvayA9IGlzQmFycmVsRmlsZShcIi9yZXBvL3NyYy9pbmRleC50c1wiLCBzdGF0ZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNCYXJyZWxGaWxlID0gKFxuICBmaWxlbmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBOb1JlZXhwb3J0c091dHNpZGVCYXJyZWxzU3RhdGUsXG4pOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIGlzQmFycmVsTW9kdWxlRmlsZShmaWxlbmFtZSwgb3B0aW9ucy5hbGxvd2VkQmFycmVsTmFtZXNTZXQpO1xufTtcblxuLyoqXG4gKiBDb2xsZWN0cyBpbXBvcnRlZCBpZGVudGlmaWVycyBmcm9tIHRoZSBwcm9ncmFtIGJvZHkuXG4gKiBAcGFyYW0gYm9keSBQcm9ncmFtIGJvZHkgc3RhdGVtZW50cy5cbiAqIEByZXR1cm5zIFNldCBvZiBsb2NhbCBpbXBvcnRlZCBpZGVudGlmaWVycy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBuYW1lcyA9IGNvbGxlY3RJbXBvcnRlZE5hbWVzKHByb2dyYW0uYm9keSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY29sbGVjdEltcG9ydGVkTmFtZXMgPSAoYm9keTogQVNULlByb2dyYW1bXCJib2R5XCJdKTogU2V0PHN0cmluZz4gPT4ge1xuICBjb25zdCBpbXBvcnRlZE5hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2YgYm9keSkge1xuICAgIGlmIChzdGF0ZW1lbnQudHlwZSA9PT0gXCJJbXBvcnREZWNsYXJhdGlvblwiKSB7XG4gICAgICBmb3IgKGNvbnN0IHNwZWNpZmllciBvZiBzdGF0ZW1lbnQuc3BlY2lmaWVycykge1xuICAgICAgICBpbXBvcnRlZE5hbWVzLmFkZChzcGVjaWZpZXIubG9jYWwubmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGltcG9ydGVkTmFtZXM7XG59O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIGV4cG9ydCBzcGVjaWZpZXIgcmVmZXJlbmNlcyBhbiBpbXBvcnRlZCBpZGVudGlmaWVyLlxuICogQHBhcmFtIHN0YXRlbWVudCBFeHBvcnQgbmFtZWQgZGVjbGFyYXRpb24gc3RhdGVtZW50LlxuICogQHBhcmFtIGltcG9ydGVkTmFtZXMgU2V0IG9mIGltcG9ydGVkIGlkZW50aWZpZXJzLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIGFueSBleHBvcnQgc3BlY2lmaWVyIHJlZmVyZW5jZXMgYW4gaW1wb3J0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG9rID0gaGFzSW1wb3J0ZWRFeHBvcnQoc3RhdGVtZW50LCBuYW1lcyk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaGFzSW1wb3J0ZWRFeHBvcnQgPSAoXG4gIHN0YXRlbWVudDogQVNULlByb2dyYW1bXCJib2R5XCJdW251bWJlcl0sXG4gIGltcG9ydGVkTmFtZXM6IFNldDxzdHJpbmc+LFxuKTogYm9vbGVhbiA9PiB7XG4gIGlmIChcbiAgICBzdGF0ZW1lbnQudHlwZSAhPT0gXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIgfHxcbiAgICAoc3RhdGVtZW50LnNvdXJjZSAhPT0gbnVsbCAmJiBzdGF0ZW1lbnQuc291cmNlICE9PSB2b2lkIDApIHx8XG4gICAgKHN0YXRlbWVudC5kZWNsYXJhdGlvbiAhPT0gbnVsbCAmJiBzdGF0ZW1lbnQuZGVjbGFyYXRpb24gIT09IHZvaWQgMClcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudC5zcGVjaWZpZXJzLnNvbWUoXG4gICAgKHNwZWNpZmllcikgPT5cbiAgICAgIHNwZWNpZmllci5sb2NhbC50eXBlID09PSBcIklkZW50aWZpZXJcIiAmJlxuICAgICAgaW1wb3J0ZWROYW1lcy5oYXMoc3BlY2lmaWVyLmxvY2FsLm5hbWUpLFxuICApO1xufTtcblxuZXhwb3J0IHtcbiAgY29sbGVjdEltcG9ydGVkTmFtZXMsXG4gIGdldE9wdGlvbnMsXG4gIGhhc0ltcG9ydGVkRXhwb3J0LFxuICBpc0JhcnJlbEZpbGUsXG4gIHNob3VsZExpbnRGaWxlLFxufTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAMnC;;;;;;GAMG;AACH,QAAA,MAAM,yBAAyB,EAAE,IAAI,CAAC,UA6CrC,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { isLintableModuleFile } from "./barrel-file-utilities.js";
|
|
1
2
|
import { buildListenerForFile } from "./consistent-barrel-files-listeners.js";
|
|
2
|
-
import { getOptions
|
|
3
|
+
import { getOptions } from "./consistent-barrel-files-options.js";
|
|
3
4
|
/**
|
|
4
5
|
* ESLint rule requiring consistent barrel file usage by folder.
|
|
5
6
|
* @example
|
|
@@ -10,7 +11,7 @@ import { getOptions, isLintableFilename, } from "./consistent-barrel-files-optio
|
|
|
10
11
|
const consistentBarrelFilesRule = {
|
|
11
12
|
create(context) {
|
|
12
13
|
const { filename, options } = context;
|
|
13
|
-
if (!
|
|
14
|
+
if (!isLintableModuleFile(filename)) {
|
|
14
15
|
return {};
|
|
15
16
|
}
|
|
16
17
|
return buildListenerForFile(context, filename, getOptions(options));
|
|
@@ -47,4 +48,4 @@ const consistentBarrelFilesRule = {
|
|
|
47
48
|
},
|
|
48
49
|
};
|
|
49
50
|
export { consistentBarrelFilesRule };
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vYXJjaGl0ZWN0dXJlL2NvbnNpc3RlbnQtYmFycmVsLWZpbGVzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRS9EOzs7Ozs7R0FNRztBQUNILE1BQU0seUJBQXlCLEdBQW9CO0lBQ2pELE1BQU0sQ0FBQyxPQUF5QjtRQUM5QixNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUV0QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxPQUFPLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNELElBQUksRUFBRTtRQUNKLGNBQWMsRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzVELElBQUksRUFBRTtZQUNKLFdBQVcsRUFDVCxnRUFBZ0U7WUFDbEUsV0FBVyxFQUFFLEtBQUs7WUFDbEIsR0FBRyxFQUFFLDBGQUEwRjtTQUNoRztRQUNELFFBQVEsRUFBRTtZQUNSLGVBQWUsRUFDYixnRUFBZ0U7WUFDbEUsYUFBYSxFQUNYLGtGQUFrRjtTQUNyRjtRQUNELE1BQU0sRUFBRTtZQUNOO2dCQUNFLG9CQUFvQixFQUFFLEtBQUs7Z0JBQzNCLFVBQVUsRUFBRTtvQkFDVixZQUFZLEVBQUU7d0JBQ1osV0FBVyxFQUNULG1FQUFtRTt3QkFDckUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTt3QkFDekIsSUFBSSxFQUFFLE9BQU87cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFdBQVcsRUFDVCxnRkFBZ0Y7d0JBQ2xGLElBQUksRUFBRSxTQUFTO3FCQUNoQjtpQkFDRjtnQkFDRCxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsU0FBUztLQUNoQjtDQUNGLENBQUM7QUFFRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHsgaXNMaW50YWJsZU1vZHVsZUZpbGUgfSBmcm9tIFwiLi9iYXJyZWwtZmlsZS11dGlsaXRpZXNcIjtcbmltcG9ydCB7IGJ1aWxkTGlzdGVuZXJGb3JGaWxlIH0gZnJvbSBcIi4vY29uc2lzdGVudC1iYXJyZWwtZmlsZXMtbGlzdGVuZXJzXCI7XG5pbXBvcnQgeyBnZXRPcHRpb25zIH0gZnJvbSBcIi4vY29uc2lzdGVudC1iYXJyZWwtZmlsZXMtb3B0aW9uc1wiO1xuXG4vKipcbiAqIEVTTGludCBydWxlIHJlcXVpcmluZyBjb25zaXN0ZW50IGJhcnJlbCBmaWxlIHVzYWdlIGJ5IGZvbGRlci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBydWxlID0gY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZTtcbiAqIGBgYFxuICovXG5jb25zdCBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIge1xuICAgIGNvbnN0IHsgZmlsZW5hbWUsIG9wdGlvbnMgfSA9IGNvbnRleHQ7XG5cbiAgICBpZiAoIWlzTGludGFibGVNb2R1bGVGaWxlKGZpbGVuYW1lKSkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHJldHVybiBidWlsZExpc3RlbmVyRm9yRmlsZShjb250ZXh0LCBmaWxlbmFtZSwgZ2V0T3B0aW9ucyhvcHRpb25zKSk7XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkZWZhdWx0T3B0aW9uczogW3sgYWxsb3dlZE5hbWVzOiBbXCJpbmRleFwiXSwgZW5mb3JjZTogdHJ1ZSB9XSxcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJFbmZvcmNlIG9yIGZvcmJpZCBiYXJyZWwgZmlsZXMgd2l0aCBjb25zaXN0ZW50LCBhbGxvd2VkIG5hbWVzLlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvY29uc2lzdGVudC1iYXJyZWwtZmlsZXMubWRcIixcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBmb3JiaWRkZW5CYXJyZWw6XG4gICAgICAgIFwiQmFycmVsIGZpbGVzIGFyZSBmb3JiaWRkZW4uIFJlbW92ZSB0aGUgYmFycmVsIGZpbGUgJ3t7bmFtZX19Jy5cIixcbiAgICAgIG1pc3NpbmdCYXJyZWw6XG4gICAgICAgIFwiRWFjaCBmb2xkZXIgbXVzdCBpbmNsdWRlIGEgYmFycmVsIGZpbGUgbmFtZWQgd2l0aCBvbmUgb2YgdGhlc2Ugc3RlbXM6IHt7bmFtZXN9fS5cIixcbiAgICB9LFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBhbGxvd2VkTmFtZXM6IHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcIkFsbG93ZWQgYmFycmVsIGJhc2VuYW1lcyB0aGF0IHRoZSBydWxlIHJlY29nbml6ZXMgaW4gZWFjaCBmb2xkZXIuXCIsXG4gICAgICAgICAgICBpdGVtczogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbmZvcmNlOiB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgXCJXaGV0aGVyIGVhY2ggZWxpZ2libGUgZm9sZGVyIG11c3QgY29udGFpbiBvbmUgb2YgdGhlIGFsbG93ZWQgYmFycmVsIGZpbGVuYW1lcy5cIixcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICB9LFxuICAgIF0sXG4gICAgdHlwZTogXCJwcm9ibGVtXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlIH07XG4iXX0=
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
+
import { collectExportedElements } from "./no-unused-exports-declaration-utilities.js";
|
|
3
|
+
import { getTypeScriptProgram } from "./no-unused-exports-identifier-utilities.js";
|
|
2
4
|
import { DEFAULT_PUBLIC_API_FILES, DEFAULT_TEST_FILE_PATTERNS, getOptions, isLintableFilename, isPublicApiFile, } from "./no-unused-exports-options.js";
|
|
3
|
-
import { classifyExportUsage, collectCrossFileUsages,
|
|
5
|
+
import { classifyExportUsage, collectCrossFileUsages, } from "./no-unused-exports-usage-utilities.js";
|
|
4
6
|
/** ESLint rule flagging exports unused in production code. */
|
|
5
7
|
const noUnusedExportsRule = {
|
|
6
8
|
create(context) {
|
|
@@ -79,4 +81,4 @@ const noUnusedExportsRule = {
|
|
|
79
81
|
},
|
|
80
82
|
};
|
|
81
83
|
export { noUnusedExportsRule };
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vYXJjaGl0ZWN0dXJlL25vLXVudXNlZC1leHBvcnRzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsMEJBQTBCLEVBQzFCLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsZUFBZSxHQUNoQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsc0JBQXNCLEdBQ3ZCLE1BQU0scUNBQXFDLENBQUM7QUFFN0MsOERBQThEO0FBQzlELE1BQU0sbUJBQW1CLEdBQW9CO0lBQzNDLE1BQU0sQ0FBQyxPQUF5QjtRQUM5QixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFFbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUMsSUFBSSxPQUFPLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFFaEUsSUFBSSxlQUFlLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2xELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE9BQU87WUFDTCxPQUFPLENBQUMsSUFBSTtnQkFDVixNQUFNLGdCQUFnQixHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFNUQsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ2xDLE9BQU87Z0JBQ1QsQ0FBQztnQkFFRCxLQUFLLE1BQU0sT0FBTyxJQUFJLGdCQUFnQixFQUFFLENBQUM7b0JBQ3ZDLE1BQU0sbUJBQW1CLEdBQUcsbUJBQW1CLENBQzdDLHNCQUFzQixDQUNwQixPQUFPLEVBQ1AsUUFBUSxFQUNSLEtBQUssRUFDTCxXQUFXLEVBQ1gsT0FBTyxDQUNSLENBQ0YsQ0FBQztvQkFFRixJQUFJLG1CQUFtQixLQUFLLFlBQVksRUFBRSxDQUFDO3dCQUN6QyxTQUFTO29CQUNYLENBQUM7b0JBRUQsT0FBTyxDQUFDLE1BQU0sQ0FBQzt3QkFDYixJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVksRUFBRTt3QkFDNUMsU0FBUyxFQUNQLG1CQUFtQixLQUFLLFdBQVc7NEJBQ2pDLENBQUMsQ0FBQyxpQkFBaUI7NEJBQ25CLENBQUMsQ0FBQyxjQUFjO3dCQUNwQixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7cUJBQ25CLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxFQUFFO1FBQ0osY0FBYyxFQUFFO1lBQ2Q7Z0JBQ0UsY0FBYyxFQUFFLENBQUMsR0FBRyx3QkFBd0IsQ0FBQztnQkFDN0MsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLDBCQUEwQixDQUFDO2FBQ2xEO1NBQ0Y7UUFDRCxJQUFJLEVBQUU7WUFDSixXQUFXLEVBQ1Qsa0VBQWtFO1lBQ3BFLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLEdBQUcsRUFBRSxvRkFBb0Y7U0FDMUY7UUFDRCxRQUFRLEVBQUU7WUFDUixZQUFZLEVBQ1YsaUhBQWlIO1lBQ25ILGVBQWUsRUFDYixnSEFBZ0g7U0FDbkg7UUFDRCxNQUFNLEVBQUU7WUFDTjtnQkFDRSxvQkFBb0IsRUFBRSxLQUFLO2dCQUMzQixVQUFVLEVBQUU7b0JBQ1YsY0FBYyxFQUFFO3dCQUNkLFdBQVcsRUFBRSxvREFBb0Q7d0JBQ2pFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7d0JBQ3pCLFFBQVEsRUFBRSxDQUFDO3dCQUNYLElBQUksRUFBRSxPQUFPO3FCQUNkO29CQUNELGdCQUFnQixFQUFFO3dCQUNoQixXQUFXLEVBQ1QsZ0VBQWdFO3dCQUNsRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO3dCQUN6QixRQUFRLEVBQUUsQ0FBQzt3QkFDWCxJQUFJLEVBQUUsT0FBTztxQkFDZDtpQkFDRjtnQkFDRCxJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsU0FBUztLQUNoQjtDQUNGLENBQUM7QUFFRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuXG5pbXBvcnQgeyBjb2xsZWN0RXhwb3J0ZWRFbGVtZW50cyB9IGZyb20gXCIuL25vLXVudXNlZC1leHBvcnRzLWRlY2xhcmF0aW9uLXV0aWxpdGllc1wiO1xuaW1wb3J0IHsgZ2V0VHlwZVNjcmlwdFByb2dyYW0gfSBmcm9tIFwiLi9uby11bnVzZWQtZXhwb3J0cy1pZGVudGlmaWVyLXV0aWxpdGllc1wiO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9QVUJMSUNfQVBJX0ZJTEVTLFxuICBERUZBVUxUX1RFU1RfRklMRV9QQVRURVJOUyxcbiAgZ2V0T3B0aW9ucyxcbiAgaXNMaW50YWJsZUZpbGVuYW1lLFxuICBpc1B1YmxpY0FwaUZpbGUsXG59IGZyb20gXCIuL25vLXVudXNlZC1leHBvcnRzLW9wdGlvbnNcIjtcbmltcG9ydCB7XG4gIGNsYXNzaWZ5RXhwb3J0VXNhZ2UsXG4gIGNvbGxlY3RDcm9zc0ZpbGVVc2FnZXMsXG59IGZyb20gXCIuL25vLXVudXNlZC1leHBvcnRzLXVzYWdlLXV0aWxpdGllc1wiO1xuXG4vKiogRVNMaW50IHJ1bGUgZmxhZ2dpbmcgZXhwb3J0cyB1bnVzZWQgaW4gcHJvZHVjdGlvbiBjb2RlLiAqL1xuY29uc3Qgbm9VbnVzZWRFeHBvcnRzUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyIHtcbiAgICBjb25zdCBzdGF0ZSA9IGdldE9wdGlvbnMoY29udGV4dC5vcHRpb25zKTtcbiAgICBjb25zdCBmaWxlbmFtZSA9IGNvbnRleHQuZmlsZW5hbWU7XG5cbiAgICBpZiAoIWlzTGludGFibGVGaWxlbmFtZShmaWxlbmFtZSkpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9ncmFtID0gZ2V0VHlwZVNjcmlwdFByb2dyYW0oY29udGV4dCk7XG5cbiAgICBpZiAocHJvZ3JhbSA9PT0gdm9pZCAwKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29uc3QgcHJvamVjdFJvb3QgPSBwYXRoLnJlc29sdmUocHJvZ3JhbS5nZXRDdXJyZW50RGlyZWN0b3J5KCkpO1xuXG4gICAgaWYgKGlzUHVibGljQXBpRmlsZShmaWxlbmFtZSwgc3RhdGUsIHByb2plY3RSb290KSkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBQcm9ncmFtKG5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXhwb3J0ZWRFbGVtZW50cyA9IGNvbGxlY3RFeHBvcnRlZEVsZW1lbnRzKG5vZGUuYm9keSk7XG5cbiAgICAgICAgaWYgKGV4cG9ydGVkRWxlbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIGV4cG9ydGVkRWxlbWVudHMpIHtcbiAgICAgICAgICBjb25zdCB1c2FnZUNsYXNzaWZpY2F0aW9uID0gY2xhc3NpZnlFeHBvcnRVc2FnZShcbiAgICAgICAgICAgIGNvbGxlY3RDcm9zc0ZpbGVVc2FnZXMoXG4gICAgICAgICAgICAgIHByb2dyYW0sXG4gICAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgICAgcHJvamVjdFJvb3QsXG4gICAgICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAodXNhZ2VDbGFzc2lmaWNhdGlvbiA9PT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIGRhdGE6IHsgZXhwb3J0ZWROYW1lOiBlbGVtZW50LmV4cG9ydGVkTmFtZSB9LFxuICAgICAgICAgICAgbWVzc2FnZUlkOlxuICAgICAgICAgICAgICB1c2FnZUNsYXNzaWZpY2F0aW9uID09PSBcInRlc3Qtb25seVwiXG4gICAgICAgICAgICAgICAgPyBcInVzZWRPbmx5SW5UZXN0c1wiXG4gICAgICAgICAgICAgICAgOiBcInVudXNlZEV4cG9ydFwiLFxuICAgICAgICAgICAgbm9kZTogZWxlbWVudC5ub2RlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkZWZhdWx0T3B0aW9uczogW1xuICAgICAge1xuICAgICAgICBwdWJsaWNBcGlGaWxlczogWy4uLkRFRkFVTFRfUFVCTElDX0FQSV9GSUxFU10sXG4gICAgICAgIHRlc3RGaWxlUGF0dGVybnM6IFsuLi5ERUZBVUxUX1RFU1RfRklMRV9QQVRURVJOU10sXG4gICAgICB9LFxuICAgIF0sXG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiRGlzYWxsb3cgZXhwb3J0cyB0aGF0IGFyZSB1bnVzZWQgb3IgY29uc3VtZWQgb25seSBieSB0ZXN0IGZpbGVzLlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvbm8tdW51c2VkLWV4cG9ydHMubWRcIixcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICB1bnVzZWRFeHBvcnQ6XG4gICAgICAgIFwiRXhwb3J0ICd7e2V4cG9ydGVkTmFtZX19JyBpcyBuZXZlciBjb25zdW1lZCBieSBhbnkgZmlsZSBpbiB0aGUgcHJvamVjdDsgbWFrZSBpdCBwcml2YXRlIGJ5IHJlbW92aW5nIHRoZSBleHBvcnQuXCIsXG4gICAgICB1c2VkT25seUluVGVzdHM6XG4gICAgICAgIFwiRXhwb3J0ICd7e2V4cG9ydGVkTmFtZX19JyBpcyBjb25zdW1lZCBvbmx5IGJ5IHRlc3QgZmlsZXM7IG1vdmUgaXQgdG8gdGhlIHRlc3QgZmlsZSBvciBhIHRlc3QgdXRpbGl0aWVzIGZvbGRlci5cIixcbiAgICB9LFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBwdWJsaWNBcGlGaWxlczoge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRmlsZSBnbG9icyB0aGF0IGRlZmluZSBwdWJsaWMgQVBJIGV4cG9ydCBzdXJmYWNlcy5cIixcbiAgICAgICAgICAgIGl0ZW1zOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGVzdEZpbGVQYXR0ZXJuczoge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiRmlsZSBnbG9icyB0cmVhdGVkIGFzIHRlc3RzIHdoZW4gY2xhc3NpZnlpbmcgZXhwb3J0IGNvbnN1bWVycy5cIixcbiAgICAgICAgICAgIGl0ZW1zOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICB9LFxuICAgIF0sXG4gICAgdHlwZTogXCJwcm9ibGVtXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyBub1VudXNlZEV4cG9ydHNSdWxlIH07XG4iXX0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { noMultipleDeclaratorsRule } from "./no-multiple-declarators/index.js";
|
|
2
|
+
export { noUselessDelegationRule } from "./no-useless-delegation/index.js";
|
|
2
3
|
export { preferInterfaceTypesRule } from "./prefer-interface-types/index.js";
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { noMultipleDeclaratorsRule } from "./no-multiple-declarators/index.js";
|
|
2
|
+
export { noUselessDelegationRule } from "./no-useless-delegation/index.js";
|
|
2
3
|
export { preferInterfaceTypesRule } from "./prefer-interface-types/index.js";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZG9tYWluL2NvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlIH0gZnJvbSBcIi4vbm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIjtcbmV4cG9ydCB7IG5vVXNlbGVzc0RlbGVnYXRpb25SdWxlIH0gZnJvbSBcIi4vbm8tdXNlbGVzcy1kZWxlZ2F0aW9uXCI7XG5leHBvcnQgeyBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGUgfSBmcm9tIFwiLi9wcmVmZXItaW50ZXJmYWNlLXR5cGVzXCI7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-useless-delegation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { noUselessDelegationRule } from "./rule.js";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2NvcmUvbm8tdXNlbGVzcy1kZWxlZ2F0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IG5vVXNlbGVzc0RlbGVnYXRpb25SdWxlIH0gZnJvbSBcIi4vcnVsZVwiO1xuIl19
|
|
@@ -0,0 +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;AA0OnC,kFAAkF;AAClF,QAAA,MAAM,uBAAuB,EAAE,IAAI,CAAC,UAqCnC,CAAC;AAEF,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves a node value when it is an ESTree node.
|
|
3
|
+
* @param value Candidate AST value.
|
|
4
|
+
* @returns The value as an ESTree node when it has a type discriminator.
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* const node = asNode({ type: "Identifier" });
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
const asNode = (value) => typeof value === "object" && value !== null && "type" in value
|
|
11
|
+
? value
|
|
12
|
+
: void 0;
|
|
13
|
+
/**
|
|
14
|
+
* Resolves a node array while rejecting malformed AST data.
|
|
15
|
+
* @param value Candidate AST value.
|
|
16
|
+
* @returns AST nodes when every array item is a node.
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const nodes = asNodeArray([{ type: "Identifier" }]);
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
const asNodeArray = (value) => Array.isArray(value) && value.every((item) => asNode(item) !== void 0)
|
|
23
|
+
? value
|
|
24
|
+
: void 0;
|
|
25
|
+
/**
|
|
26
|
+
* Reads an identifier name from a node.
|
|
27
|
+
* @param node Candidate identifier node.
|
|
28
|
+
* @returns Identifier name when the node is an identifier.
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const name = getIdentifierName({ name: "run", type: "Identifier" });
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
const getIdentifierName = (node) => node?.type === "Identifier" && typeof node["name"] === "string"
|
|
35
|
+
? node["name"]
|
|
36
|
+
: void 0;
|
|
37
|
+
/**
|
|
38
|
+
* Gets the called expression from a function with one return statement.
|
|
39
|
+
* @param functionNode Function node to inspect.
|
|
40
|
+
* @returns The directly returned call expression when present.
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const call = getDelegatedCall(functionNode);
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
const getDelegatedCall = (functionNode) => {
|
|
47
|
+
if (functionNode.async === true || functionNode.generator === true) {
|
|
48
|
+
return void 0;
|
|
49
|
+
}
|
|
50
|
+
const body = asNode(functionNode["body"]);
|
|
51
|
+
if (body === void 0) {
|
|
52
|
+
return void 0;
|
|
53
|
+
}
|
|
54
|
+
if (body.type === "CallExpression") {
|
|
55
|
+
return body;
|
|
56
|
+
}
|
|
57
|
+
const statements = asNodeArray(body["body"]);
|
|
58
|
+
if (body.type !== "BlockStatement" || statements?.length !== 1) {
|
|
59
|
+
return void 0;
|
|
60
|
+
}
|
|
61
|
+
const returnStatement = statements[0];
|
|
62
|
+
return returnStatement?.type === "ReturnStatement"
|
|
63
|
+
? asNode(returnStatement["argument"])
|
|
64
|
+
: void 0;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Gets parameter names and whether each parameter is a rest parameter.
|
|
68
|
+
* @param functionNode Function node to inspect.
|
|
69
|
+
* @returns Named parameter metadata when every parameter is supported.
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* const parameters = getParameters(functionNode);
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
const getParameters = (functionNode) => {
|
|
76
|
+
const parameters = asNodeArray(functionNode["params"]);
|
|
77
|
+
if (parameters === void 0) {
|
|
78
|
+
return void 0;
|
|
79
|
+
}
|
|
80
|
+
const result = [];
|
|
81
|
+
for (const parameter of parameters) {
|
|
82
|
+
const isRest = parameter.type === "RestElement";
|
|
83
|
+
const name = getIdentifierName(isRest ? asNode(parameter["argument"]) : parameter);
|
|
84
|
+
if (name === void 0) {
|
|
85
|
+
return void 0;
|
|
86
|
+
}
|
|
87
|
+
result.push({ isRest, name });
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Determines whether one call argument forwards its corresponding parameter.
|
|
93
|
+
* @param argument Call argument to inspect.
|
|
94
|
+
* @param parameter Corresponding function parameter.
|
|
95
|
+
* @returns Whether the argument forwards the parameter without change.
|
|
96
|
+
* @example
|
|
97
|
+
* ```typescript
|
|
98
|
+
* const forwards = forwardsParameter(argument, parameter);
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
const forwardsParameter = (argument, parameter) => {
|
|
102
|
+
if (parameter.isRest) {
|
|
103
|
+
return (argument.type === "SpreadElement" &&
|
|
104
|
+
getIdentifierName(asNode(argument["argument"])) === parameter.name);
|
|
105
|
+
}
|
|
106
|
+
return getIdentifierName(argument) === parameter.name;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Determines whether a call invokes a method on a literal value.
|
|
110
|
+
* @param callee Call target to inspect.
|
|
111
|
+
* @returns Whether the target is a member access on a literal receiver.
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* const isLiteralCall = isLiteralMemberCall(callee);
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
const isLiteralMemberCall = (callee) => callee.type === "MemberExpression" &&
|
|
118
|
+
asNode(callee["object"])?.type === "Literal";
|
|
119
|
+
/**
|
|
120
|
+
* Determines whether a function does nothing except directly call another function.
|
|
121
|
+
* @param functionNode Function node to inspect.
|
|
122
|
+
* @param functionName Declared wrapper function name.
|
|
123
|
+
* @returns Whether the function is an exact synchronous delegation.
|
|
124
|
+
* @example
|
|
125
|
+
* ```typescript
|
|
126
|
+
* const isDelegation = isUselessDelegation(functionNode, "run");
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
const isUselessDelegation = (functionNode, functionName) => {
|
|
130
|
+
const call = getDelegatedCall(functionNode);
|
|
131
|
+
const parameters = getParameters(functionNode);
|
|
132
|
+
const arguments_ = asNodeArray(call?.["arguments"]);
|
|
133
|
+
const callee = asNode(call?.["callee"]);
|
|
134
|
+
if (call?.type !== "CallExpression" ||
|
|
135
|
+
parameters === void 0 ||
|
|
136
|
+
arguments_ === void 0 ||
|
|
137
|
+
callee === void 0 ||
|
|
138
|
+
isLiteralMemberCall(callee) ||
|
|
139
|
+
getIdentifierName(callee) === functionName ||
|
|
140
|
+
arguments_.length !== parameters.length) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
return arguments_.every((argument, index) => {
|
|
144
|
+
const parameter = parameters[index];
|
|
145
|
+
return parameter !== void 0 && forwardsParameter(argument, parameter);
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* Reports a function when it is a no-op delegation.
|
|
150
|
+
* @param context Rule execution context.
|
|
151
|
+
* @param functionNode Function node to inspect.
|
|
152
|
+
* @param nameNode Declared wrapper name node.
|
|
153
|
+
* @example
|
|
154
|
+
* ```typescript
|
|
155
|
+
* reportIfUselessDelegation(context, functionNode, nameNode);
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
const reportIfUselessDelegation = (context, functionNode, nameNode) => {
|
|
159
|
+
const functionName = getIdentifierName(nameNode);
|
|
160
|
+
if (functionName === void 0 ||
|
|
161
|
+
!isUselessDelegation(functionNode, functionName)) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
context.report({
|
|
165
|
+
messageId: "uselessDelegation",
|
|
166
|
+
node: nameNode,
|
|
167
|
+
});
|
|
168
|
+
};
|
|
169
|
+
/** ESLint rule implementation for functions that only forward their arguments. */
|
|
170
|
+
const noUselessDelegationRule = {
|
|
171
|
+
create: (context) => ({
|
|
172
|
+
FunctionDeclaration: (node) => {
|
|
173
|
+
const functionNode = node;
|
|
174
|
+
reportIfUselessDelegation(context, functionNode, asNode(functionNode["id"]));
|
|
175
|
+
},
|
|
176
|
+
VariableDeclarator: (node) => {
|
|
177
|
+
const declarator = node;
|
|
178
|
+
const initializer = asNode(declarator["init"]);
|
|
179
|
+
if (initializer?.type !== "ArrowFunctionExpression" &&
|
|
180
|
+
initializer?.type !== "FunctionExpression") {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
reportIfUselessDelegation(context, initializer, asNode(declarator["id"]));
|
|
184
|
+
},
|
|
185
|
+
}),
|
|
186
|
+
meta: {
|
|
187
|
+
docs: {
|
|
188
|
+
description: "Disallow named functions that only delegate directly to another call.",
|
|
189
|
+
recommended: false,
|
|
190
|
+
url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/no-useless-delegation.md",
|
|
191
|
+
},
|
|
192
|
+
messages: {
|
|
193
|
+
uselessDelegation: "This function only delegates to another call; remove the wrapper or call the target directly.",
|
|
194
|
+
},
|
|
195
|
+
schema: [],
|
|
196
|
+
type: "suggestion",
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
export { noUselessDelegationRule };
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vY29yZS9uby11c2VsZXNzLWRlbGVnYXRpb24vcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQkE7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQWMsRUFBb0IsRUFBRSxDQUNsRCxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxNQUFNLElBQUksS0FBSztJQUM1RCxDQUFDLENBQUUsS0FBYztJQUNqQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFYjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBYyxFQUFzQixFQUFFLENBQ3pELEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUMsQ0FBRSxLQUFnQjtJQUNuQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFYjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFzQixFQUFzQixFQUFFLENBQ3ZFLElBQUksRUFBRSxJQUFJLEtBQUssWUFBWSxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFFBQVE7SUFDN0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDZCxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFYjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxZQUFrQixFQUFvQixFQUFFO0lBQ2hFLElBQUksWUFBWSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNuRSxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDMUMsSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0MsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGdCQUFnQixJQUFJLFVBQVUsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDL0QsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLE9BQU8sZUFBZSxFQUFFLElBQUksS0FBSyxpQkFBaUI7UUFDaEQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2IsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGFBQWEsR0FBRyxDQUNwQixZQUFrQixFQUNnQixFQUFFO0lBQ3BDLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN2RCxJQUFJLFVBQVUsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUF5QixFQUFFLENBQUM7SUFDeEMsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNuQyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQztRQUNoRCxNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FDNUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDbkQsQ0FBQztRQUNGLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsT0FBTyxLQUFLLENBQUMsQ0FBQztRQUNoQixDQUFDO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGlCQUFpQixHQUFHLENBQ3hCLFFBQWMsRUFDZCxTQUE2QixFQUNwQixFQUFFO0lBQ1gsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsT0FBTyxDQUNMLFFBQVEsQ0FBQyxJQUFJLEtBQUssZUFBZTtZQUNqQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUNuRSxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8saUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQztBQUN4RCxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxNQUFZLEVBQVcsRUFBRSxDQUNwRCxNQUFNLENBQUMsSUFBSSxLQUFLLGtCQUFrQjtJQUNsQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxLQUFLLFNBQVMsQ0FBQztBQUUvQzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQzFCLFlBQWtCLEVBQ2xCLFlBQW9CLEVBQ1gsRUFBRTtJQUNYLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVDLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNwRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUV4QyxJQUNFLElBQUksRUFBRSxJQUFJLEtBQUssZ0JBQWdCO1FBQy9CLFVBQVUsS0FBSyxLQUFLLENBQUM7UUFDckIsVUFBVSxLQUFLLEtBQUssQ0FBQztRQUNyQixNQUFNLEtBQUssS0FBSyxDQUFDO1FBQ2pCLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztRQUMzQixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxZQUFZO1FBQzFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLE1BQU0sRUFDdkMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUMxQyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsT0FBTyxTQUFTLEtBQUssS0FBSyxDQUFDLElBQUksaUJBQWlCLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSx5QkFBeUIsR0FBRyxDQUNoQyxPQUF5QixFQUN6QixZQUFrQixFQUNsQixRQUEwQixFQUNwQixFQUFFO0lBQ1IsTUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsSUFDRSxZQUFZLEtBQUssS0FBSyxDQUFDO1FBQ3ZCLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUNoRCxDQUFDO1FBQ0QsT0FBTztJQUNULENBQUM7SUFFRCxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ2IsU0FBUyxFQUFFLG1CQUFtQjtRQUM5QixJQUFJLEVBQUUsUUFBZ0M7S0FDdkMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsa0ZBQWtGO0FBQ2xGLE1BQU0sdUJBQXVCLEdBQW9CO0lBQy9DLE1BQU0sRUFBRSxDQUFDLE9BQXlCLEVBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELG1CQUFtQixFQUFFLENBQUMsSUFBZSxFQUFRLEVBQUU7WUFDN0MsTUFBTSxZQUFZLEdBQUcsSUFBdUIsQ0FBQztZQUM3Qyx5QkFBeUIsQ0FDdkIsT0FBTyxFQUNQLFlBQVksRUFDWixNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzNCLENBQUM7UUFDSixDQUFDO1FBQ0Qsa0JBQWtCLEVBQUUsQ0FBQyxJQUFlLEVBQVEsRUFBRTtZQUM1QyxNQUFNLFVBQVUsR0FBRyxJQUF1QixDQUFDO1lBQzNDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUMvQyxJQUNFLFdBQVcsRUFBRSxJQUFJLEtBQUsseUJBQXlCO2dCQUMvQyxXQUFXLEVBQUUsSUFBSSxLQUFLLG9CQUFvQixFQUMxQyxDQUFDO2dCQUNELE9BQU87WUFDVCxDQUFDO1lBRUQseUJBQXlCLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RSxDQUFDO0tBQ0YsQ0FBQztJQUNGLElBQUksRUFBRTtRQUNKLElBQUksRUFBRTtZQUNKLFdBQVcsRUFDVCx1RUFBdUU7WUFDekUsV0FBVyxFQUFFLEtBQUs7WUFDbEIsR0FBRyxFQUFFLHdGQUF3RjtTQUM5RjtRQUNELFFBQVEsRUFBRTtZQUNSLGlCQUFpQixFQUNmLCtGQUErRjtTQUNsRztRQUNELE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7S0FDbkI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbi8qKiBPbmUgbmFtZWQgcGFyYW1ldGVyIGFuZCB3aGV0aGVyIGl0IG11c3QgYmUgc3ByZWFkIGF0IHRoZSBjYWxsIHNpdGUuICovXG5pbnRlcmZhY2UgRGVsZWdhdGVkUGFyYW1ldGVyIHtcbiAgLyoqIFdoZXRoZXIgdGhpcyBwYXJhbWV0ZXIgdXNlcyByZXN0IHN5bnRheC4gKi9cbiAgaXNSZXN0OiBib29sZWFuO1xuICAvKiogUGFyYW1ldGVyIGlkZW50aWZpZXIgbmFtZS4gKi9cbiAgbmFtZTogc3RyaW5nO1xufVxuXG4vKiogTWluaW1hbCBFU1RyZWUgbm9kZSBzaGFwZSB1c2VkIHRvIGluc3BlY3QgcGFzcy10aHJvdWdoIGZ1bmN0aW9ucy4gKi9cbmludGVyZmFjZSBOb2RlIHtcbiAgLyoqIER5bmFtaWNhbGx5IHJlYWQgY2hpbGQgbm9kZXMgYW5kIHBhcnNlci1zcGVjaWZpYyBwcm9wZXJ0aWVzLiAqL1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICAvKiogV2hldGhlciB0aGUgZnVuY3Rpb24gaXMgYXN5bmNocm9ub3VzLiAqL1xuICBhc3luYz86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRoZSBmdW5jdGlvbiBpcyBhIGdlbmVyYXRvci4gKi9cbiAgZ2VuZXJhdG9yPzogYm9vbGVhbjtcbiAgLyoqIEVTVHJlZSBkaXNjcmltaW5hdG9yLiAqL1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgYSBub2RlIHZhbHVlIHdoZW4gaXQgaXMgYW4gRVNUcmVlIG5vZGUuXG4gKiBAcGFyYW0gdmFsdWUgQ2FuZGlkYXRlIEFTVCB2YWx1ZS5cbiAqIEByZXR1cm5zIFRoZSB2YWx1ZSBhcyBhbiBFU1RyZWUgbm9kZSB3aGVuIGl0IGhhcyBhIHR5cGUgZGlzY3JpbWluYXRvci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBub2RlID0gYXNOb2RlKHsgdHlwZTogXCJJZGVudGlmaWVyXCIgfSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgYXNOb2RlID0gKHZhbHVlOiB1bmtub3duKTogTm9kZSB8IHVuZGVmaW5lZCA9PlxuICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgdmFsdWUgIT09IG51bGwgJiYgXCJ0eXBlXCIgaW4gdmFsdWVcbiAgICA/ICh2YWx1ZSBhcyBOb2RlKVxuICAgIDogdm9pZCAwO1xuXG4vKipcbiAqIFJlc29sdmVzIGEgbm9kZSBhcnJheSB3aGlsZSByZWplY3RpbmcgbWFsZm9ybWVkIEFTVCBkYXRhLlxuICogQHBhcmFtIHZhbHVlIENhbmRpZGF0ZSBBU1QgdmFsdWUuXG4gKiBAcmV0dXJucyBBU1Qgbm9kZXMgd2hlbiBldmVyeSBhcnJheSBpdGVtIGlzIGEgbm9kZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBub2RlcyA9IGFzTm9kZUFycmF5KFt7IHR5cGU6IFwiSWRlbnRpZmllclwiIH1dKTtcbiAqIGBgYFxuICovXG5jb25zdCBhc05vZGVBcnJheSA9ICh2YWx1ZTogdW5rbm93bik6IE5vZGVbXSB8IHVuZGVmaW5lZCA9PlxuICBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5ldmVyeSgoaXRlbSkgPT4gYXNOb2RlKGl0ZW0pICE9PSB2b2lkIDApXG4gICAgPyAodmFsdWUgYXMgTm9kZVtdKVxuICAgIDogdm9pZCAwO1xuXG4vKipcbiAqIFJlYWRzIGFuIGlkZW50aWZpZXIgbmFtZSBmcm9tIGEgbm9kZS5cbiAqIEBwYXJhbSBub2RlIENhbmRpZGF0ZSBpZGVudGlmaWVyIG5vZGUuXG4gKiBAcmV0dXJucyBJZGVudGlmaWVyIG5hbWUgd2hlbiB0aGUgbm9kZSBpcyBhbiBpZGVudGlmaWVyLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5hbWUgPSBnZXRJZGVudGlmaWVyTmFtZSh7IG5hbWU6IFwicnVuXCIsIHR5cGU6IFwiSWRlbnRpZmllclwiIH0pO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldElkZW50aWZpZXJOYW1lID0gKG5vZGU6IE5vZGUgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT5cbiAgbm9kZT8udHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiYgdHlwZW9mIG5vZGVbXCJuYW1lXCJdID09PSBcInN0cmluZ1wiXG4gICAgPyBub2RlW1wibmFtZVwiXVxuICAgIDogdm9pZCAwO1xuXG4vKipcbiAqIEdldHMgdGhlIGNhbGxlZCBleHByZXNzaW9uIGZyb20gYSBmdW5jdGlvbiB3aXRoIG9uZSByZXR1cm4gc3RhdGVtZW50LlxuICogQHBhcmFtIGZ1bmN0aW9uTm9kZSBGdW5jdGlvbiBub2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUaGUgZGlyZWN0bHkgcmV0dXJuZWQgY2FsbCBleHByZXNzaW9uIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBjYWxsID0gZ2V0RGVsZWdhdGVkQ2FsbChmdW5jdGlvbk5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldERlbGVnYXRlZENhbGwgPSAoZnVuY3Rpb25Ob2RlOiBOb2RlKTogTm9kZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChmdW5jdGlvbk5vZGUuYXN5bmMgPT09IHRydWUgfHwgZnVuY3Rpb25Ob2RlLmdlbmVyYXRvciA9PT0gdHJ1ZSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBib2R5ID0gYXNOb2RlKGZ1bmN0aW9uTm9kZVtcImJvZHlcIl0pO1xuICBpZiAoYm9keSA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGlmIChib2R5LnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIikge1xuICAgIHJldHVybiBib2R5O1xuICB9XG5cbiAgY29uc3Qgc3RhdGVtZW50cyA9IGFzTm9kZUFycmF5KGJvZHlbXCJib2R5XCJdKTtcbiAgaWYgKGJvZHkudHlwZSAhPT0gXCJCbG9ja1N0YXRlbWVudFwiIHx8IHN0YXRlbWVudHM/Lmxlbmd0aCAhPT0gMSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCByZXR1cm5TdGF0ZW1lbnQgPSBzdGF0ZW1lbnRzWzBdO1xuICByZXR1cm4gcmV0dXJuU3RhdGVtZW50Py50eXBlID09PSBcIlJldHVyblN0YXRlbWVudFwiXG4gICAgPyBhc05vZGUocmV0dXJuU3RhdGVtZW50W1wiYXJndW1lbnRcIl0pXG4gICAgOiB2b2lkIDA7XG59O1xuXG4vKipcbiAqIEdldHMgcGFyYW1ldGVyIG5hbWVzIGFuZCB3aGV0aGVyIGVhY2ggcGFyYW1ldGVyIGlzIGEgcmVzdCBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0gZnVuY3Rpb25Ob2RlIEZ1bmN0aW9uIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIE5hbWVkIHBhcmFtZXRlciBtZXRhZGF0YSB3aGVuIGV2ZXJ5IHBhcmFtZXRlciBpcyBzdXBwb3J0ZWQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcGFyYW1ldGVycyA9IGdldFBhcmFtZXRlcnMoZnVuY3Rpb25Ob2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRQYXJhbWV0ZXJzID0gKFxuICBmdW5jdGlvbk5vZGU6IE5vZGUsXG4pOiBEZWxlZ2F0ZWRQYXJhbWV0ZXJbXSB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHBhcmFtZXRlcnMgPSBhc05vZGVBcnJheShmdW5jdGlvbk5vZGVbXCJwYXJhbXNcIl0pO1xuICBpZiAocGFyYW1ldGVycyA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogRGVsZWdhdGVkUGFyYW1ldGVyW10gPSBbXTtcbiAgZm9yIChjb25zdCBwYXJhbWV0ZXIgb2YgcGFyYW1ldGVycykge1xuICAgIGNvbnN0IGlzUmVzdCA9IHBhcmFtZXRlci50eXBlID09PSBcIlJlc3RFbGVtZW50XCI7XG4gICAgY29uc3QgbmFtZSA9IGdldElkZW50aWZpZXJOYW1lKFxuICAgICAgaXNSZXN0ID8gYXNOb2RlKHBhcmFtZXRlcltcImFyZ3VtZW50XCJdKSA6IHBhcmFtZXRlcixcbiAgICApO1xuICAgIGlmIChuYW1lID09PSB2b2lkIDApIHtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuXG4gICAgcmVzdWx0LnB1c2goeyBpc1Jlc3QsIG5hbWUgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgb25lIGNhbGwgYXJndW1lbnQgZm9yd2FyZHMgaXRzIGNvcnJlc3BvbmRpbmcgcGFyYW1ldGVyLlxuICogQHBhcmFtIGFyZ3VtZW50IENhbGwgYXJndW1lbnQgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSBwYXJhbWV0ZXIgQ29ycmVzcG9uZGluZyBmdW5jdGlvbiBwYXJhbWV0ZXIuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBmb3J3YXJkcyB0aGUgcGFyYW1ldGVyIHdpdGhvdXQgY2hhbmdlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGZvcndhcmRzID0gZm9yd2FyZHNQYXJhbWV0ZXIoYXJndW1lbnQsIHBhcmFtZXRlcik7XG4gKiBgYGBcbiAqL1xuY29uc3QgZm9yd2FyZHNQYXJhbWV0ZXIgPSAoXG4gIGFyZ3VtZW50OiBOb2RlLFxuICBwYXJhbWV0ZXI6IERlbGVnYXRlZFBhcmFtZXRlcixcbik6IGJvb2xlYW4gPT4ge1xuICBpZiAocGFyYW1ldGVyLmlzUmVzdCkge1xuICAgIHJldHVybiAoXG4gICAgICBhcmd1bWVudC50eXBlID09PSBcIlNwcmVhZEVsZW1lbnRcIiAmJlxuICAgICAgZ2V0SWRlbnRpZmllck5hbWUoYXNOb2RlKGFyZ3VtZW50W1wiYXJndW1lbnRcIl0pKSA9PT0gcGFyYW1ldGVyLm5hbWVcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGdldElkZW50aWZpZXJOYW1lKGFyZ3VtZW50KSA9PT0gcGFyYW1ldGVyLm5hbWU7XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGNhbGwgaW52b2tlcyBhIG1ldGhvZCBvbiBhIGxpdGVyYWwgdmFsdWUuXG4gKiBAcGFyYW0gY2FsbGVlIENhbGwgdGFyZ2V0IHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSB0YXJnZXQgaXMgYSBtZW1iZXIgYWNjZXNzIG9uIGEgbGl0ZXJhbCByZWNlaXZlci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBpc0xpdGVyYWxDYWxsID0gaXNMaXRlcmFsTWVtYmVyQ2FsbChjYWxsZWUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzTGl0ZXJhbE1lbWJlckNhbGwgPSAoY2FsbGVlOiBOb2RlKTogYm9vbGVhbiA9PlxuICBjYWxsZWUudHlwZSA9PT0gXCJNZW1iZXJFeHByZXNzaW9uXCIgJiZcbiAgYXNOb2RlKGNhbGxlZVtcIm9iamVjdFwiXSk/LnR5cGUgPT09IFwiTGl0ZXJhbFwiO1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGZ1bmN0aW9uIGRvZXMgbm90aGluZyBleGNlcHQgZGlyZWN0bHkgY2FsbCBhbm90aGVyIGZ1bmN0aW9uLlxuICogQHBhcmFtIGZ1bmN0aW9uTm9kZSBGdW5jdGlvbiBub2RlIHRvIGluc3BlY3QuXG4gKiBAcGFyYW0gZnVuY3Rpb25OYW1lIERlY2xhcmVkIHdyYXBwZXIgZnVuY3Rpb24gbmFtZS5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGZ1bmN0aW9uIGlzIGFuIGV4YWN0IHN5bmNocm9ub3VzIGRlbGVnYXRpb24uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaXNEZWxlZ2F0aW9uID0gaXNVc2VsZXNzRGVsZWdhdGlvbihmdW5jdGlvbk5vZGUsIFwicnVuXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzVXNlbGVzc0RlbGVnYXRpb24gPSAoXG4gIGZ1bmN0aW9uTm9kZTogTm9kZSxcbiAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4pOiBib29sZWFuID0+IHtcbiAgY29uc3QgY2FsbCA9IGdldERlbGVnYXRlZENhbGwoZnVuY3Rpb25Ob2RlKTtcbiAgY29uc3QgcGFyYW1ldGVycyA9IGdldFBhcmFtZXRlcnMoZnVuY3Rpb25Ob2RlKTtcbiAgY29uc3QgYXJndW1lbnRzXyA9IGFzTm9kZUFycmF5KGNhbGw/LltcImFyZ3VtZW50c1wiXSk7XG4gIGNvbnN0IGNhbGxlZSA9IGFzTm9kZShjYWxsPy5bXCJjYWxsZWVcIl0pO1xuXG4gIGlmIChcbiAgICBjYWxsPy50eXBlICE9PSBcIkNhbGxFeHByZXNzaW9uXCIgfHxcbiAgICBwYXJhbWV0ZXJzID09PSB2b2lkIDAgfHxcbiAgICBhcmd1bWVudHNfID09PSB2b2lkIDAgfHxcbiAgICBjYWxsZWUgPT09IHZvaWQgMCB8fFxuICAgIGlzTGl0ZXJhbE1lbWJlckNhbGwoY2FsbGVlKSB8fFxuICAgIGdldElkZW50aWZpZXJOYW1lKGNhbGxlZSkgPT09IGZ1bmN0aW9uTmFtZSB8fFxuICAgIGFyZ3VtZW50c18ubGVuZ3RoICE9PSBwYXJhbWV0ZXJzLmxlbmd0aFxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gYXJndW1lbnRzXy5ldmVyeSgoYXJndW1lbnQsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgcGFyYW1ldGVyID0gcGFyYW1ldGVyc1tpbmRleF07XG4gICAgcmV0dXJuIHBhcmFtZXRlciAhPT0gdm9pZCAwICYmIGZvcndhcmRzUGFyYW1ldGVyKGFyZ3VtZW50LCBwYXJhbWV0ZXIpO1xuICB9KTtcbn07XG5cbi8qKlxuICogUmVwb3J0cyBhIGZ1bmN0aW9uIHdoZW4gaXQgaXMgYSBuby1vcCBkZWxlZ2F0aW9uLlxuICogQHBhcmFtIGNvbnRleHQgUnVsZSBleGVjdXRpb24gY29udGV4dC5cbiAqIEBwYXJhbSBmdW5jdGlvbk5vZGUgRnVuY3Rpb24gbm9kZSB0byBpbnNwZWN0LlxuICogQHBhcmFtIG5hbWVOb2RlIERlY2xhcmVkIHdyYXBwZXIgbmFtZSBub2RlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydElmVXNlbGVzc0RlbGVnYXRpb24oY29udGV4dCwgZnVuY3Rpb25Ob2RlLCBuYW1lTm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVwb3J0SWZVc2VsZXNzRGVsZWdhdGlvbiA9IChcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgZnVuY3Rpb25Ob2RlOiBOb2RlLFxuICBuYW1lTm9kZTogTm9kZSB8IHVuZGVmaW5lZCxcbik6IHZvaWQgPT4ge1xuICBjb25zdCBmdW5jdGlvbk5hbWUgPSBnZXRJZGVudGlmaWVyTmFtZShuYW1lTm9kZSk7XG4gIGlmIChcbiAgICBmdW5jdGlvbk5hbWUgPT09IHZvaWQgMCB8fFxuICAgICFpc1VzZWxlc3NEZWxlZ2F0aW9uKGZ1bmN0aW9uTm9kZSwgZnVuY3Rpb25OYW1lKVxuICApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb250ZXh0LnJlcG9ydCh7XG4gICAgbWVzc2FnZUlkOiBcInVzZWxlc3NEZWxlZ2F0aW9uXCIsXG4gICAgbm9kZTogbmFtZU5vZGUgYXMgdW5rbm93biBhcyBSdWxlLk5vZGUsXG4gIH0pO1xufTtcblxuLyoqIEVTTGludCBydWxlIGltcGxlbWVudGF0aW9uIGZvciBmdW5jdGlvbnMgdGhhdCBvbmx5IGZvcndhcmQgdGhlaXIgYXJndW1lbnRzLiAqL1xuY29uc3Qgbm9Vc2VsZXNzRGVsZWdhdGlvblJ1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlOiAoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyID0+ICh7XG4gICAgRnVuY3Rpb25EZWNsYXJhdGlvbjogKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgZnVuY3Rpb25Ob2RlID0gbm9kZSBhcyB1bmtub3duIGFzIE5vZGU7XG4gICAgICByZXBvcnRJZlVzZWxlc3NEZWxlZ2F0aW9uKFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBmdW5jdGlvbk5vZGUsXG4gICAgICAgIGFzTm9kZShmdW5jdGlvbk5vZGVbXCJpZFwiXSksXG4gICAgICApO1xuICAgIH0sXG4gICAgVmFyaWFibGVEZWNsYXJhdG9yOiAobm9kZTogUnVsZS5Ob2RlKTogdm9pZCA9PiB7XG4gICAgICBjb25zdCBkZWNsYXJhdG9yID0gbm9kZSBhcyB1bmtub3duIGFzIE5vZGU7XG4gICAgICBjb25zdCBpbml0aWFsaXplciA9IGFzTm9kZShkZWNsYXJhdG9yW1wiaW5pdFwiXSk7XG4gICAgICBpZiAoXG4gICAgICAgIGluaXRpYWxpemVyPy50eXBlICE9PSBcIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCIgJiZcbiAgICAgICAgaW5pdGlhbGl6ZXI/LnR5cGUgIT09IFwiRnVuY3Rpb25FeHByZXNzaW9uXCJcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJlcG9ydElmVXNlbGVzc0RlbGVnYXRpb24oY29udGV4dCwgaW5pdGlhbGl6ZXIsIGFzTm9kZShkZWNsYXJhdG9yW1wiaWRcIl0pKTtcbiAgICB9LFxuICB9KSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkRpc2FsbG93IG5hbWVkIGZ1bmN0aW9ucyB0aGF0IG9ubHkgZGVsZWdhdGUgZGlyZWN0bHkgdG8gYW5vdGhlciBjYWxsLlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvbm8tdXNlbGVzcy1kZWxlZ2F0aW9uLm1kXCIsXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgdXNlbGVzc0RlbGVnYXRpb246XG4gICAgICAgIFwiVGhpcyBmdW5jdGlvbiBvbmx5IGRlbGVnYXRlcyB0byBhbm90aGVyIGNhbGw7IHJlbW92ZSB0aGUgd3JhcHBlciBvciBjYWxsIHRoZSB0YXJnZXQgZGlyZWN0bHkuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6IFwic3VnZ2VzdGlvblwiLFxuICB9LFxufTtcblxuZXhwb3J0IHsgbm9Vc2VsZXNzRGVsZWdhdGlvblJ1bGUgfTtcbiJdfQ==
|
package/dist/domain/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noImportExportAliasesRule, noImportExportExtensionsRule, noReexportsOutsideBarrelsRule, noUnusedExportsRule, } from "./architecture/index.js";
|
|
2
|
-
export { noMultipleDeclaratorsRule, preferInterfaceTypesRule } from "./core/index.js";
|
|
2
|
+
export { noMultipleDeclaratorsRule, noUselessDelegationRule, preferInterfaceTypesRule, } from "./core/index.js";
|
|
3
3
|
export { noInterfaceMemberDocumentationRule, requireExampleLanguageRule, singleLineJsdocRule, } from "./docs/index.js";
|
|
4
4
|
export { assertActualExpectedNamesRule, enforceAaaStructureRule, noUnsafeVitestMockFactoryCastRule, preferViMockedImportRule, requireActResultCaptureRule, requireTestCompanionRule, singleActStatementRule, } from "./testing/index.js";
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,4BAA4B,EAC5B,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,4BAA4B,EAC5B,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,kCAAkC,EAClC,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,iCAAiC,EACjC,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,WAAW,CAAC"}
|
package/dist/domain/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noImportExportAliasesRule, noImportExportExtensionsRule, noReexportsOutsideBarrelsRule, noUnusedExportsRule, } from "./architecture/index.js";
|
|
2
|
-
export { noMultipleDeclaratorsRule, preferInterfaceTypesRule } from "./core/index.js";
|
|
2
|
+
export { noMultipleDeclaratorsRule, noUselessDelegationRule, preferInterfaceTypesRule, } from "./core/index.js";
|
|
3
3
|
export { noInterfaceMemberDocumentationRule, requireExampleLanguageRule, singleLineJsdocRule, } from "./docs/index.js";
|
|
4
4
|
export { assertActualExpectedNamesRule, enforceAaaStructureRule, noUnsafeVitestMockFactoryCastRule, preferViMockedImportRule, requireActResultCaptureRule, requireTestCompanionRule, singleActStatementRule, } from "./testing/index.js";
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9tYWluL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixHQUN6QixNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQ0wsa0NBQWtDLEVBQ2xDLDBCQUEwQixFQUMxQixtQkFBbUIsR0FDcEIsTUFBTSxRQUFRLENBQUM7QUFDaEIsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qix1QkFBdUIsRUFDdkIsaUNBQWlDLEVBQ2pDLHdCQUF3QixFQUN4QiwyQkFBMkIsRUFDM0Isd0JBQXdCLEVBQ3hCLHNCQUFzQixHQUN2QixNQUFNLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIGJhcnJlbEZpbGVzRXhwb3J0c09ubHlSdWxlLFxuICBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlLFxuICBub0ltcG9ydEV4cG9ydEFsaWFzZXNSdWxlLFxuICBub0ltcG9ydEV4cG9ydEV4dGVuc2lvbnNSdWxlLFxuICBub1JlZXhwb3J0c091dHNpZGVCYXJyZWxzUnVsZSxcbiAgbm9VbnVzZWRFeHBvcnRzUnVsZSxcbn0gZnJvbSBcIi4vYXJjaGl0ZWN0dXJlXCI7XG5leHBvcnQge1xuICBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlLFxuICBub1VzZWxlc3NEZWxlZ2F0aW9uUnVsZSxcbiAgcHJlZmVySW50ZXJmYWNlVHlwZXNSdWxlLFxufSBmcm9tIFwiLi9jb3JlXCI7XG5leHBvcnQge1xuICBub0ludGVyZmFjZU1lbWJlckRvY3VtZW50YXRpb25SdWxlLFxuICByZXF1aXJlRXhhbXBsZUxhbmd1YWdlUnVsZSxcbiAgc2luZ2xlTGluZUpzZG9jUnVsZSxcbn0gZnJvbSBcIi4vZG9jc1wiO1xuZXhwb3J0IHtcbiAgYXNzZXJ0QWN0dWFsRXhwZWN0ZWROYW1lc1J1bGUsXG4gIGVuZm9yY2VBYWFTdHJ1Y3R1cmVSdWxlLFxuICBub1Vuc2FmZVZpdGVzdE1vY2tGYWN0b3J5Q2FzdFJ1bGUsXG4gIHByZWZlclZpTW9ja2VkSW1wb3J0UnVsZSxcbiAgcmVxdWlyZUFjdFJlc3VsdENhcHR1cmVSdWxlLFxuICByZXF1aXJlVGVzdENvbXBhbmlvblJ1bGUsXG4gIHNpbmdsZUFjdFN0YXRlbWVudFJ1bGUsXG59IGZyb20gXCIuL3Rlc3RpbmdcIjtcbiJdfQ==
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnusedExportsRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "./application/index.js";
|
|
1
|
+
export { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnusedExportsRule, noUselessDelegationRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "./application/index.js";
|
|
2
2
|
export type { CustomRuleEntry } from "./application/index.js";
|
|
3
3
|
export { aaa, all, architecture, codeperfectPlugin, core, customRules, documentation, testing, } from "./infrastructure/index.js";
|
|
4
4
|
export type { CodeperfectPreset } from "./infrastructure/index.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACL,GAAG,EACH,GAAG,EACH,YAAY,EACZ,iBAAiB,EACjB,IAAI,EACJ,WAAW,EACX,aAAa,EACb,OAAO,GACR,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACL,GAAG,EACH,GAAG,EACH,YAAY,EACZ,iBAAiB,EACjB,IAAI,EACJ,WAAW,EACX,aAAa,EACb,OAAO,GACR,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnusedExportsRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "./application/index.js";
|
|
1
|
+
export { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnusedExportsRule, noUselessDelegationRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "./application/index.js";
|
|
2
2
|
export { aaa, all, architecture, codeperfectPlugin, core, customRules, documentation, testing, } from "./infrastructure/index.js";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzVCLGtDQUFrQyxFQUNsQyx5QkFBeUIsRUFDekIsNkJBQTZCLEVBQzdCLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QiwyQkFBMkIsRUFDM0IsMEJBQTBCLEVBQzFCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsbUJBQW1CLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxHQUFHLEVBQ0gsR0FBRyxFQUNILFlBQVksRUFDWixpQkFBaUIsRUFDakIsSUFBSSxFQUNKLFdBQVcsRUFDWCxhQUFhLEVBQ2IsT0FBTyxHQUNSLE1BQU0sa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBhc3NlcnRBY3R1YWxFeHBlY3RlZE5hbWVzUnVsZSxcbiAgYmFycmVsRmlsZXNFeHBvcnRzT25seVJ1bGUsXG4gIGNvbnNpc3RlbnRCYXJyZWxGaWxlc1J1bGUsXG4gIGVuZm9yY2VBYWFTdHJ1Y3R1cmVSdWxlLFxuICBub0ltcG9ydEV4cG9ydEFsaWFzZXNSdWxlLFxuICBub0ltcG9ydEV4cG9ydEV4dGVuc2lvbnNSdWxlLFxuICBub0ludGVyZmFjZU1lbWJlckRvY3VtZW50YXRpb25SdWxlLFxuICBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlLFxuICBub1JlZXhwb3J0c091dHNpZGVCYXJyZWxzUnVsZSxcbiAgbm9VbnVzZWRFeHBvcnRzUnVsZSxcbiAgbm9Vc2VsZXNzRGVsZWdhdGlvblJ1bGUsXG4gIHByZWZlckludGVyZmFjZVR5cGVzUnVsZSxcbiAgcHJlZmVyVmlNb2NrZWRJbXBvcnRSdWxlLFxuICByZXF1aXJlQWN0UmVzdWx0Q2FwdHVyZVJ1bGUsXG4gIHJlcXVpcmVFeGFtcGxlTGFuZ3VhZ2VSdWxlLFxuICByZXF1aXJlVGVzdENvbXBhbmlvblJ1bGUsXG4gIHNpbmdsZUFjdFN0YXRlbWVudFJ1bGUsXG4gIHNpbmdsZUxpbmVKc2RvY1J1bGUsXG59IGZyb20gXCIuL2FwcGxpY2F0aW9uXCI7XG5leHBvcnQgdHlwZSB7IEN1c3RvbVJ1bGVFbnRyeSB9IGZyb20gXCIuL2FwcGxpY2F0aW9uXCI7XG5leHBvcnQge1xuICBhYWEsXG4gIGFsbCxcbiAgYXJjaGl0ZWN0dXJlLFxuICBjb2RlcGVyZmVjdFBsdWdpbixcbiAgY29yZSxcbiAgY3VzdG9tUnVsZXMsXG4gIGRvY3VtZW50YXRpb24sXG4gIHRlc3RpbmcsXG59IGZyb20gXCIuL2luZnJhc3RydWN0dXJlXCI7XG5leHBvcnQgdHlwZSB7IENvZGVwZXJmZWN0UHJlc2V0IH0gZnJvbSBcIi4vaW5mcmFzdHJ1Y3R1cmVcIjtcbiJdfQ==
|
|
@@ -12,6 +12,7 @@ declare const codeperfectRules: {
|
|
|
12
12
|
readonly "no-reexports-outside-barrels": Rule.RuleModule;
|
|
13
13
|
readonly "no-unsafe-vitest-mock-factory-cast": Rule.RuleModule;
|
|
14
14
|
readonly "no-unused-exports": Rule.RuleModule;
|
|
15
|
+
readonly "no-useless-delegation": Rule.RuleModule;
|
|
15
16
|
readonly "prefer-interface-types": Rule.RuleModule;
|
|
16
17
|
readonly "prefer-vi-mocked-import": Rule.RuleModule;
|
|
17
18
|
readonly "require-act-result-capture": Rule.RuleModule;
|
|
@@ -37,6 +38,7 @@ declare const codeperfectPlugin: {
|
|
|
37
38
|
readonly "no-reexports-outside-barrels": Rule.RuleModule;
|
|
38
39
|
readonly "no-unsafe-vitest-mock-factory-cast": Rule.RuleModule;
|
|
39
40
|
readonly "no-unused-exports": Rule.RuleModule;
|
|
41
|
+
readonly "no-useless-delegation": Rule.RuleModule;
|
|
40
42
|
readonly "prefer-interface-types": Rule.RuleModule;
|
|
41
43
|
readonly "prefer-vi-mocked-import": Rule.RuleModule;
|
|
42
44
|
readonly "require-act-result-capture": Rule.RuleModule;
|
|
@@ -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;
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;CAKkC,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnsafeVitestMockFactoryCastRule, noUnusedExportsRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "../application/index.js";
|
|
1
|
+
import { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaStructureRule, noImportExportAliasesRule, noImportExportExtensionsRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, noUnsafeVitestMockFactoryCastRule, noUnusedExportsRule, noUselessDelegationRule, preferInterfaceTypesRule, preferViMockedImportRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "../application/index.js";
|
|
2
2
|
/** Rule registry exposed by the package plugin. */
|
|
3
3
|
const codeperfectRules = {
|
|
4
4
|
"assert-actual-expected-names": assertActualExpectedNamesRule,
|
|
@@ -12,6 +12,7 @@ const codeperfectRules = {
|
|
|
12
12
|
"no-reexports-outside-barrels": noReexportsOutsideBarrelsRule,
|
|
13
13
|
"no-unsafe-vitest-mock-factory-cast": noUnsafeVitestMockFactoryCastRule,
|
|
14
14
|
"no-unused-exports": noUnusedExportsRule,
|
|
15
|
+
"no-useless-delegation": noUselessDelegationRule,
|
|
15
16
|
"prefer-interface-types": preferInterfaceTypesRule,
|
|
16
17
|
"prefer-vi-mocked-import": preferViMockedImportRule,
|
|
17
18
|
"require-act-result-capture": requireActResultCaptureRule,
|
|
@@ -28,4 +29,4 @@ const codeperfectPlugin = {
|
|
|
28
29
|
rules: codeperfectRules,
|
|
29
30
|
};
|
|
30
31
|
export { codeperfectPlugin, codeperfectRules };
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXBlcmZlY3QtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZnJhc3RydWN0dXJlL2NvZGVwZXJmZWN0LXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsa0NBQWtDLEVBQ2xDLHlCQUF5QixFQUN6Qiw2QkFBNkIsRUFDN0IsaUNBQWlDLEVBQ2pDLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QiwyQkFBMkIsRUFDM0IsMEJBQTBCLEVBQzFCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsbUJBQW1CLEdBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsbURBQW1EO0FBQ25ELE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsOEJBQThCLEVBQUUsNkJBQTZCO0lBQzdELDJCQUEyQixFQUFFLDBCQUEwQjtJQUN2RCx5QkFBeUIsRUFBRSx5QkFBeUI7SUFDcEQsdUJBQXVCLEVBQUUsdUJBQXVCO0lBQ2hELDBCQUEwQixFQUFFLHlCQUF5QjtJQUNyRCw2QkFBNkIsRUFBRSw0QkFBNEI7SUFDM0QsMEJBQTBCLEVBQUUsa0NBQWtDO0lBQzlELHlCQUF5QixFQUFFLHlCQUF5QjtJQUNwRCw4QkFBOEIsRUFBRSw2QkFBNkI7SUFDN0Qsb0NBQW9DLEVBQUUsaUNBQWlDO0lBQ3ZFLG1CQUFtQixFQUFFLG1CQUFtQjtJQUN4Qyx1QkFBdUIsRUFBRSx1QkFBdUI7SUFDaEQsd0JBQXdCLEVBQUUsd0JBQXdCO0lBQ2xELHlCQUF5QixFQUFFLHdCQUF3QjtJQUNuRCw0QkFBNEIsRUFBRSwyQkFBMkI7SUFDekQsMEJBQTBCLEVBQUUsMEJBQTBCO0lBQ3RELHdCQUF3QixFQUFFLHdCQUF3QjtJQUNsRCxzQkFBc0IsRUFBRSxzQkFBc0I7SUFDOUMsbUJBQW1CLEVBQUUsbUJBQW1CO0NBQ1UsQ0FBQztBQUVyRCxvREFBb0Q7QUFDcEQsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsNEJBQTRCO0tBQ25DO0lBQ0QsS0FBSyxFQUFFLGdCQUFnQjtDQUNnQyxDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaW50ZXIsIFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7XG4gIGFzc2VydEFjdHVhbEV4cGVjdGVkTmFtZXNSdWxlLFxuICBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSxcbiAgY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZSxcbiAgZW5mb3JjZUFhYVN0cnVjdHVyZVJ1bGUsXG4gIG5vSW1wb3J0RXhwb3J0QWxpYXNlc1J1bGUsXG4gIG5vSW1wb3J0RXhwb3J0RXh0ZW5zaW9uc1J1bGUsXG4gIG5vSW50ZXJmYWNlTWVtYmVyRG9jdW1lbnRhdGlvblJ1bGUsXG4gIG5vTXVsdGlwbGVEZWNsYXJhdG9yc1J1bGUsXG4gIG5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNSdWxlLFxuICBub1Vuc2FmZVZpdGVzdE1vY2tGYWN0b3J5Q2FzdFJ1bGUsXG4gIG5vVW51c2VkRXhwb3J0c1J1bGUsXG4gIG5vVXNlbGVzc0RlbGVnYXRpb25SdWxlLFxuICBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGUsXG4gIHByZWZlclZpTW9ja2VkSW1wb3J0UnVsZSxcbiAgcmVxdWlyZUFjdFJlc3VsdENhcHR1cmVSdWxlLFxuICByZXF1aXJlRXhhbXBsZUxhbmd1YWdlUnVsZSxcbiAgcmVxdWlyZVRlc3RDb21wYW5pb25SdWxlLFxuICBzaW5nbGVBY3RTdGF0ZW1lbnRSdWxlLFxuICBzaW5nbGVMaW5lSnNkb2NSdWxlLFxufSBmcm9tIFwiLi4vYXBwbGljYXRpb25cIjtcblxuLyoqIFJ1bGUgcmVnaXN0cnkgZXhwb3NlZCBieSB0aGUgcGFja2FnZSBwbHVnaW4uICovXG5jb25zdCBjb2RlcGVyZmVjdFJ1bGVzID0ge1xuICBcImFzc2VydC1hY3R1YWwtZXhwZWN0ZWQtbmFtZXNcIjogYXNzZXJ0QWN0dWFsRXhwZWN0ZWROYW1lc1J1bGUsXG4gIFwiYmFycmVsLWZpbGVzLWV4cG9ydHMtb25seVwiOiBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSxcbiAgXCJjb25zaXN0ZW50LWJhcnJlbC1maWxlc1wiOiBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlLFxuICBcImVuZm9yY2UtYWFhLXN0cnVjdHVyZVwiOiBlbmZvcmNlQWFhU3RydWN0dXJlUnVsZSxcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWFsaWFzZXNcIjogbm9JbXBvcnRFeHBvcnRBbGlhc2VzUnVsZSxcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnNcIjogbm9JbXBvcnRFeHBvcnRFeHRlbnNpb25zUnVsZSxcbiAgXCJuby1pbnRlcmZhY2UtbWVtYmVyLWRvY3NcIjogbm9JbnRlcmZhY2VNZW1iZXJEb2N1bWVudGF0aW9uUnVsZSxcbiAgXCJuby1tdWx0aXBsZS1kZWNsYXJhdG9yc1wiOiBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlLFxuICBcIm5vLXJlZXhwb3J0cy1vdXRzaWRlLWJhcnJlbHNcIjogbm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc1J1bGUsXG4gIFwibm8tdW5zYWZlLXZpdGVzdC1tb2NrLWZhY3RvcnktY2FzdFwiOiBub1Vuc2FmZVZpdGVzdE1vY2tGYWN0b3J5Q2FzdFJ1bGUsXG4gIFwibm8tdW51c2VkLWV4cG9ydHNcIjogbm9VbnVzZWRFeHBvcnRzUnVsZSxcbiAgXCJuby11c2VsZXNzLWRlbGVnYXRpb25cIjogbm9Vc2VsZXNzRGVsZWdhdGlvblJ1bGUsXG4gIFwicHJlZmVyLWludGVyZmFjZS10eXBlc1wiOiBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGUsXG4gIFwicHJlZmVyLXZpLW1vY2tlZC1pbXBvcnRcIjogcHJlZmVyVmlNb2NrZWRJbXBvcnRSdWxlLFxuICBcInJlcXVpcmUtYWN0LXJlc3VsdC1jYXB0dXJlXCI6IHJlcXVpcmVBY3RSZXN1bHRDYXB0dXJlUnVsZSxcbiAgXCJyZXF1aXJlLWV4YW1wbGUtbGFuZ3VhZ2VcIjogcmVxdWlyZUV4YW1wbGVMYW5ndWFnZVJ1bGUsXG4gIFwicmVxdWlyZS10ZXN0LWNvbXBhbmlvblwiOiByZXF1aXJlVGVzdENvbXBhbmlvblJ1bGUsXG4gIFwic2luZ2xlLWFjdC1zdGF0ZW1lbnRcIjogc2luZ2xlQWN0U3RhdGVtZW50UnVsZSxcbiAgXCJzaW5nbGUtbGluZS1qc2RvY1wiOiBzaW5nbGVMaW5lSnNkb2NSdWxlLFxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgUnVsZS5SdWxlTW9kdWxlPjtcblxuLyoqIEVTTGludCBwbHVnaW4gb2JqZWN0IGV4cG9ydGVkIGJ5IHRoZSBwYWNrYWdlLiAqL1xuY29uc3QgY29kZXBlcmZlY3RQbHVnaW4gPSB7XG4gIG1ldGE6IHtcbiAgICBuYW1lOiBcIkBjb2RlcGVyZmVjdC9lc2xpbnQtcGx1Z2luXCIsXG4gIH0sXG4gIHJ1bGVzOiBjb2RlcGVyZmVjdFJ1bGVzLFxufSBzYXRpc2ZpZXMgTm9uTnVsbGFibGU8TGludGVyLkNvbmZpZ1tcInBsdWdpbnNcIl0+W3N0cmluZ107XG5cbmV4cG9ydCB7IGNvZGVwZXJmZWN0UGx1Z2luLCBjb2RlcGVyZmVjdFJ1bGVzIH07XG4iXX0=
|
|
@@ -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;AAiHlE,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"}
|
|
@@ -11,6 +11,7 @@ const architectureRuleNames = [
|
|
|
11
11
|
/** Rule names grouped into the core preset. */
|
|
12
12
|
const coreRuleNames = [
|
|
13
13
|
"no-multiple-declarators",
|
|
14
|
+
"no-useless-delegation",
|
|
14
15
|
"prefer-interface-types",
|
|
15
16
|
];
|
|
16
17
|
/** Rule names grouped into the documentation preset. */
|
|
@@ -43,6 +44,7 @@ const allRuleNames = [
|
|
|
43
44
|
"no-import-export-extensions",
|
|
44
45
|
"no-interface-member-docs",
|
|
45
46
|
"no-multiple-declarators",
|
|
47
|
+
"no-useless-delegation",
|
|
46
48
|
"no-reexports-outside-barrels",
|
|
47
49
|
"no-unused-exports",
|
|
48
50
|
"no-unsafe-vitest-mock-factory-cast",
|
|
@@ -96,4 +98,4 @@ const testing = createPreset(testingRuleNames);
|
|
|
96
98
|
/** Preset that enables AAA-specific testing rules. */
|
|
97
99
|
const aaa = createPreset(aaaRuleNames);
|
|
98
100
|
export { aaa, all, architecture, core, documentation, testing };
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9wcmVzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBZ0IzRSx1REFBdUQ7QUFDdkQsTUFBTSxxQkFBcUIsR0FBRztJQUM1QiwyQkFBMkI7SUFDM0IseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUMxQiw2QkFBNkI7SUFDN0IsbUJBQW1CO0lBQ25CLDhCQUE4QjtDQUNtQixDQUFDO0FBRXBELCtDQUErQztBQUMvQyxNQUFNLGFBQWEsR0FBRztJQUNwQix5QkFBeUI7SUFDekIsdUJBQXVCO0lBQ3ZCLHdCQUF3QjtDQUN5QixDQUFDO0FBRXBELHdEQUF3RDtBQUN4RCxNQUFNLHNCQUFzQixHQUFHO0lBQzdCLDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsbUJBQW1CO0NBQzhCLENBQUM7QUFFcEQsc0RBQXNEO0FBQ3RELE1BQU0sWUFBWSxHQUFHO0lBQ25CLHVCQUF1QjtDQUMwQixDQUFDO0FBRXBELDBEQUEwRDtBQUMxRCxNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLDhCQUE4QjtJQUM5Qix1QkFBdUI7SUFDdkIsb0NBQW9DO0lBQ3BDLHlCQUF5QjtJQUN6Qiw0QkFBNEI7SUFDNUIsd0JBQXdCO0lBQ3hCLHNCQUFzQjtDQUMyQixDQUFDO0FBRXBELCtDQUErQztBQUMvQyxNQUFNLFlBQVksR0FBRztJQUNuQiw4QkFBOEI7SUFDOUIsMkJBQTJCO0lBQzNCLHlCQUF5QjtJQUN6Qix1QkFBdUI7SUFDdkIsMEJBQTBCO0lBQzFCLDZCQUE2QjtJQUM3QiwwQkFBMEI7SUFDMUIseUJBQXlCO0lBQ3pCLHVCQUF1QjtJQUN2Qiw4QkFBOEI7SUFDOUIsbUJBQW1CO0lBQ25CLG9DQUFvQztJQUNwQyx3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLDRCQUE0QjtJQUM1QiwwQkFBMEI7SUFDMUIsd0JBQXdCO0lBQ3hCLHNCQUFzQjtJQUN0QixtQkFBbUI7Q0FDOEIsQ0FBQztBQUVwRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsWUFBWSxDQUNuQixTQUF5QztJQUV6QyxPQUFPO1FBQ0wsT0FBTyxFQUFFO1lBQ1AsV0FBVyxFQUFFLGlCQUFpQjtTQUMvQjtRQUNELEtBQUssRUFBRSxXQUFXLENBQUMsU0FBUyxDQUFDO0tBQzlCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLFdBQVcsQ0FDbEIsU0FBeUM7SUFFekMsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGVBQWUsUUFBUSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FDbEUsQ0FBQztBQUNKLENBQUM7QUFFRCxvREFBb0Q7QUFDcEQsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRXZDLHNEQUFzRDtBQUN0RCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUV6RCxzQ0FBc0M7QUFDdEMsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBRXpDLCtDQUErQztBQUMvQyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUUzRCx5Q0FBeUM7QUFDekMsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFL0Msc0RBQXNEO0FBQ3RELE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUV2QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBjb2RlcGVyZmVjdFBsdWdpbiwgY29kZXBlcmZlY3RSdWxlcyB9IGZyb20gXCIuL2NvZGVwZXJmZWN0LXBsdWdpblwiO1xuXG4vKiogUmVwcmVzZW50cyBhIHJlYWR5LXRvLXVzZSBwcmVzZXQgZXhwb3J0ZWQgYnkgdGhlIHBhY2thZ2UuICovXG50eXBlIENvZGVwZXJmZWN0UHJlc2V0ID0gUGljazxMaW50ZXIuQ29uZmlnLCBcInBsdWdpbnNcIiB8IFwicnVsZXNcIj47XG5cbi8qKiBSZXByZXNlbnRzIHRoZSBlbmFibGVkIHJ1bGUgZW50cmllcyBpbnNpZGUgYSBwcmVzZXQuICovXG50eXBlIENvZGVwZXJmZWN0UnVsZUVudHJpZXMgPSBQYXJ0aWFsPFxuICBSZWNvcmQ8Q29kZXBlcmZlY3RSdWxlS2V5LCBMaW50ZXIuUnVsZUVudHJ5PlxuPjtcblxuLyoqIE5hbWVzcGFjZXMgYSBwYWNrYWdlLW93bmVkIHJ1bGUgdW5kZXIgdGhlIGBjb2RlcGVyZmVjdC9gIHByZWZpeC4gKi9cbnR5cGUgQ29kZXBlcmZlY3RSdWxlS2V5ID0gYGNvZGVwZXJmZWN0LyR7Q29kZXBlcmZlY3RSdWxlTmFtZX1gO1xuXG4vKiogRW51bWVyYXRlcyB0aGUgcGFja2FnZS1vd25lZCBydWxlIG5hbWVzLiAqL1xudHlwZSBDb2RlcGVyZmVjdFJ1bGVOYW1lID0ga2V5b2YgdHlwZW9mIGNvZGVwZXJmZWN0UnVsZXM7XG5cbi8qKiBSdWxlIG5hbWVzIGdyb3VwZWQgaW50byB0aGUgYXJjaGl0ZWN0dXJlIHByZXNldC4gKi9cbmNvbnN0IGFyY2hpdGVjdHVyZVJ1bGVOYW1lcyA9IFtcbiAgXCJiYXJyZWwtZmlsZXMtZXhwb3J0cy1vbmx5XCIsXG4gIFwiY29uc2lzdGVudC1iYXJyZWwtZmlsZXNcIixcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWFsaWFzZXNcIixcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnNcIixcbiAgXCJuby11bnVzZWQtZXhwb3J0c1wiLFxuICBcIm5vLXJlZXhwb3J0cy1vdXRzaWRlLWJhcnJlbHNcIixcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IENvZGVwZXJmZWN0UnVsZU5hbWVbXTtcblxuLyoqIFJ1bGUgbmFtZXMgZ3JvdXBlZCBpbnRvIHRoZSBjb3JlIHByZXNldC4gKi9cbmNvbnN0IGNvcmVSdWxlTmFtZXMgPSBbXG4gIFwibm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIixcbiAgXCJuby11c2VsZXNzLWRlbGVnYXRpb25cIixcbiAgXCJwcmVmZXItaW50ZXJmYWNlLXR5cGVzXCIsXG5dIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBDb2RlcGVyZmVjdFJ1bGVOYW1lW107XG5cbi8qKiBSdWxlIG5hbWVzIGdyb3VwZWQgaW50byB0aGUgZG9jdW1lbnRhdGlvbiBwcmVzZXQuICovXG5jb25zdCBkb2N1bWVudGF0aW9uUnVsZU5hbWVzID0gW1xuICBcIm5vLWludGVyZmFjZS1tZW1iZXItZG9jc1wiLFxuICBcInJlcXVpcmUtZXhhbXBsZS1sYW5ndWFnZVwiLFxuICBcInNpbmdsZS1saW5lLWpzZG9jXCIsXG5dIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBDb2RlcGVyZmVjdFJ1bGVOYW1lW107XG5cbi8qKiBSdWxlIG5hbWVzIGdyb3VwZWQgaW50byB0aGUgQUFBLWZvY3VzZWQgcHJlc2V0LiAqL1xuY29uc3QgYWFhUnVsZU5hbWVzID0gW1xuICBcImVuZm9yY2UtYWFhLXN0cnVjdHVyZVwiLFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgQ29kZXBlcmZlY3RSdWxlTmFtZVtdO1xuXG4vKiogUnVsZSBuYW1lcyBncm91cGVkIGludG8gdGhlIGJyb2FkZXIgdGVzdGluZyBwcmVzZXQuICovXG5jb25zdCB0ZXN0aW5nUnVsZU5hbWVzID0gW1xuICBcImFzc2VydC1hY3R1YWwtZXhwZWN0ZWQtbmFtZXNcIixcbiAgXCJlbmZvcmNlLWFhYS1zdHJ1Y3R1cmVcIixcbiAgXCJuby11bnNhZmUtdml0ZXN0LW1vY2stZmFjdG9yeS1jYXN0XCIsXG4gIFwicHJlZmVyLXZpLW1vY2tlZC1pbXBvcnRcIixcbiAgXCJyZXF1aXJlLWFjdC1yZXN1bHQtY2FwdHVyZVwiLFxuICBcInJlcXVpcmUtdGVzdC1jb21wYW5pb25cIixcbiAgXCJzaW5nbGUtYWN0LXN0YXRlbWVudFwiLFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgQ29kZXBlcmZlY3RSdWxlTmFtZVtdO1xuXG4vKiogUnVsZSBuYW1lcyB1c2VkIGJ5IHRoZSBhbGwtcnVsZXMgcHJlc2V0LiAqL1xuY29uc3QgYWxsUnVsZU5hbWVzID0gW1xuICBcImFzc2VydC1hY3R1YWwtZXhwZWN0ZWQtbmFtZXNcIixcbiAgXCJiYXJyZWwtZmlsZXMtZXhwb3J0cy1vbmx5XCIsXG4gIFwiY29uc2lzdGVudC1iYXJyZWwtZmlsZXNcIixcbiAgXCJlbmZvcmNlLWFhYS1zdHJ1Y3R1cmVcIixcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWFsaWFzZXNcIixcbiAgXCJuby1pbXBvcnQtZXhwb3J0LWV4dGVuc2lvbnNcIixcbiAgXCJuby1pbnRlcmZhY2UtbWVtYmVyLWRvY3NcIixcbiAgXCJuby1tdWx0aXBsZS1kZWNsYXJhdG9yc1wiLFxuICBcIm5vLXVzZWxlc3MtZGVsZWdhdGlvblwiLFxuICBcIm5vLXJlZXhwb3J0cy1vdXRzaWRlLWJhcnJlbHNcIixcbiAgXCJuby11bnVzZWQtZXhwb3J0c1wiLFxuICBcIm5vLXVuc2FmZS12aXRlc3QtbW9jay1mYWN0b3J5LWNhc3RcIixcbiAgXCJwcmVmZXItaW50ZXJmYWNlLXR5cGVzXCIsXG4gIFwicHJlZmVyLXZpLW1vY2tlZC1pbXBvcnRcIixcbiAgXCJyZXF1aXJlLWFjdC1yZXN1bHQtY2FwdHVyZVwiLFxuICBcInJlcXVpcmUtZXhhbXBsZS1sYW5ndWFnZVwiLFxuICBcInJlcXVpcmUtdGVzdC1jb21wYW5pb25cIixcbiAgXCJzaW5nbGUtYWN0LXN0YXRlbWVudFwiLFxuICBcInNpbmdsZS1saW5lLWpzZG9jXCIsXG5dIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBDb2RlcGVyZmVjdFJ1bGVOYW1lW107XG5cbi8qKlxuICogQ3JlYXRlcyBhIHByZXNldCBmb3IgdGhlIHByb3ZpZGVkIHJ1bGUgbmFtZXMuXG4gKiBAcGFyYW0gcnVsZU5hbWVzIFJ1bGUgbmFtZXMgdG8gZW5hYmxlLlxuICogQHJldHVybnMgRVNMaW50IHByZXNldCBjb250YWluaW5nIHRoZSBwYWNrYWdlIHBsdWdpbiBhbmQgZW5hYmxlZCBydWxlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwcmVzZXQgPSBjcmVhdGVQcmVzZXQoW1wibm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIl0pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVByZXNldChcbiAgcnVsZU5hbWVzOiByZWFkb25seSBDb2RlcGVyZmVjdFJ1bGVOYW1lW10sXG4pOiBDb2RlcGVyZmVjdFByZXNldCB7XG4gIHJldHVybiB7XG4gICAgcGx1Z2luczoge1xuICAgICAgY29kZXBlcmZlY3Q6IGNvZGVwZXJmZWN0UGx1Z2luLFxuICAgIH0sXG4gICAgcnVsZXM6IGNyZWF0ZVJ1bGVzKHJ1bGVOYW1lcyksXG4gIH07XG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgcnVsZSBlbnRyeSBtYXAgZm9yIGEgcHJlc2V0LlxuICogQHBhcmFtIHJ1bGVOYW1lcyBSdWxlIG5hbWVzIHRvIGVuYWJsZS5cbiAqIEByZXR1cm5zIFJ1bGUgZW50cnkgbWFwIGtleWVkIGJ5IGBjb2RlcGVyZmVjdC9gIHJ1bGUgbmFtZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBydWxlcyA9IGNyZWF0ZVJ1bGVzKFtcInByZWZlci1pbnRlcmZhY2UtdHlwZXNcIl0pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVJ1bGVzKFxuICBydWxlTmFtZXM6IHJlYWRvbmx5IENvZGVwZXJmZWN0UnVsZU5hbWVbXSxcbik6IENvZGVwZXJmZWN0UnVsZUVudHJpZXMge1xuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIHJ1bGVOYW1lcy5tYXAoKHJ1bGVOYW1lKSA9PiBbYGNvZGVwZXJmZWN0LyR7cnVsZU5hbWV9YCwgXCJlcnJvclwiXSksXG4gICk7XG59XG5cbi8qKiBQcmVzZXQgdGhhdCBlbmFibGVzIGV2ZXJ5IHBhY2thZ2Utb3duZWQgcnVsZS4gKi9cbmNvbnN0IGFsbCA9IGNyZWF0ZVByZXNldChhbGxSdWxlTmFtZXMpO1xuXG4vKiogUHJlc2V0IHRoYXQgZW5hYmxlcyBhcmNoaXRlY3R1cmUtZm9jdXNlZCBydWxlcy4gKi9cbmNvbnN0IGFyY2hpdGVjdHVyZSA9IGNyZWF0ZVByZXNldChhcmNoaXRlY3R1cmVSdWxlTmFtZXMpO1xuXG4vKiogUHJlc2V0IHRoYXQgZW5hYmxlcyBjb3JlIHJ1bGVzLiAqL1xuY29uc3QgY29yZSA9IGNyZWF0ZVByZXNldChjb3JlUnVsZU5hbWVzKTtcblxuLyoqIFByZXNldCB0aGF0IGVuYWJsZXMgZG9jdW1lbnRhdGlvbiBydWxlcy4gKi9cbmNvbnN0IGRvY3VtZW50YXRpb24gPSBjcmVhdGVQcmVzZXQoZG9jdW1lbnRhdGlvblJ1bGVOYW1lcyk7XG5cbi8qKiBQcmVzZXQgdGhhdCBlbmFibGVzIHRlc3RpbmcgcnVsZXMuICovXG5jb25zdCB0ZXN0aW5nID0gY3JlYXRlUHJlc2V0KHRlc3RpbmdSdWxlTmFtZXMpO1xuXG4vKiogUHJlc2V0IHRoYXQgZW5hYmxlcyBBQUEtc3BlY2lmaWMgdGVzdGluZyBydWxlcy4gKi9cbmNvbnN0IGFhYSA9IGNyZWF0ZVByZXNldChhYWFSdWxlTmFtZXMpO1xuXG5leHBvcnQgeyBhYWEsIGFsbCwgYXJjaGl0ZWN0dXJlLCBjb3JlLCBkb2N1bWVudGF0aW9uLCB0ZXN0aW5nIH07XG5leHBvcnQgdHlwZSB7IENvZGVwZXJmZWN0UHJlc2V0IH07XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,24 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codeperfect/eslint-plugin",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"description": "Custom ESLint rules for TypeScript repositories",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"eslint",
|
|
7
|
-
"eslintplugin",
|
|
8
|
-
"eslint-plugin",
|
|
9
|
-
"custom-rules",
|
|
10
|
-
"typescript",
|
|
11
|
-
"linting"
|
|
12
|
-
],
|
|
13
|
-
"homepage": "https://github.com/parloti/eslint-plugin#readme",
|
|
14
|
-
"bugs": {
|
|
15
|
-
"url": "https://github.com/parloti/eslint-plugin/issues"
|
|
16
|
-
},
|
|
17
|
-
"repository": {
|
|
18
|
-
"type": "git",
|
|
19
|
-
"url": "git+https://github.com/parloti/eslint-plugin.git"
|
|
20
|
-
},
|
|
21
5
|
"license": "MIT",
|
|
6
|
+
"repository": "github:parloti/eslint-plugin",
|
|
7
|
+
"homepage": "https://github.com/parloti/eslint-plugin#readme",
|
|
8
|
+
"bugs": "https://github.com/parloti/eslint-plugin/issues",
|
|
22
9
|
"author": "CodePerfect",
|
|
23
10
|
"type": "module",
|
|
24
11
|
"exports": {
|
|
@@ -28,17 +15,18 @@
|
|
|
28
15
|
"default": "./dist/index.js"
|
|
29
16
|
}
|
|
30
17
|
},
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
18
|
+
"sideEffects": false,
|
|
19
|
+
"engines": {
|
|
20
|
+
"node": ">=24"
|
|
21
|
+
},
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public"
|
|
24
|
+
},
|
|
36
25
|
"scripts": {
|
|
37
26
|
"\n# ---------------- GENERAL ---------------- #": "",
|
|
38
|
-
"
|
|
27
|
+
"prepare": "patch-package && husky",
|
|
39
28
|
"\n# ------------------ SCM ------------------ #": "",
|
|
40
29
|
"commit": "npx --yes git-cz",
|
|
41
|
-
"prepare": "husky",
|
|
42
30
|
"\n# ---------------- BUILDING ---------------- #": "",
|
|
43
31
|
"build": "npm run clean && npm run compile && npm run resolve-paths",
|
|
44
32
|
"clean": "npx --yes rimraf dist",
|
|
@@ -56,7 +44,7 @@
|
|
|
56
44
|
"eslint:fix": "npm run check:rules && npm run eslint -- --fix",
|
|
57
45
|
"lint:fix": "npm run prettier:write && npm run eslint:fix",
|
|
58
46
|
"lint:staged": "npx --yes tsx scripts/lint-staged.ts",
|
|
59
|
-
"prettier:write": "
|
|
47
|
+
"prettier:write": "npx --yes prettier --ignore-unknown --write .",
|
|
60
48
|
"\n • ------------ helpers ------------ •": "",
|
|
61
49
|
"check:rules": "npx --yes eslint-config-prettier eslint.config.ts",
|
|
62
50
|
"eslint:inspect": "npx --yes @eslint/config-inspector",
|
|
@@ -65,8 +53,7 @@
|
|
|
65
53
|
"mutation": "npx --yes stryker run",
|
|
66
54
|
"test:all": "npm run test && npm run e2e && npm run mutation",
|
|
67
55
|
"typecheck": "tsc --noEmit",
|
|
68
|
-
"
|
|
69
|
-
"validate": "npm run lint && npm run typecheck && npm run typecheck:spec && npm run test:all && npm run build --if-present && npm run pack --if-present",
|
|
56
|
+
"validate": "npm run lint && npm run typecheck && npm run test:all && npm run build --if-present && npm run pack --if-present",
|
|
70
57
|
"\n • -------------- unit -------------- •": "",
|
|
71
58
|
"test": "npx --yes vitest run",
|
|
72
59
|
"tdd": "npm run test -- --watch --silent=true --coverage.enabled=false",
|
|
@@ -75,16 +62,24 @@
|
|
|
75
62
|
"docs:api": "npx --yes typedoc --options typedoc.json",
|
|
76
63
|
"docs:clean": "npx --yes rimraf docs/api"
|
|
77
64
|
},
|
|
65
|
+
"files": [
|
|
66
|
+
"dist"
|
|
67
|
+
],
|
|
68
|
+
"keywords": [
|
|
69
|
+
"eslint",
|
|
70
|
+
"eslintplugin",
|
|
71
|
+
"eslint-plugin",
|
|
72
|
+
"custom-rules",
|
|
73
|
+
"typescript",
|
|
74
|
+
"linting"
|
|
75
|
+
],
|
|
78
76
|
"dependencies": {
|
|
79
|
-
"@typescript-eslint/utils": "^8.
|
|
77
|
+
"@typescript-eslint/utils": "^8.68.0",
|
|
80
78
|
"minimatch": "^10.2.6"
|
|
81
79
|
},
|
|
82
|
-
"peerDependencies": {
|
|
83
|
-
"eslint": ">=10.9.0"
|
|
84
|
-
},
|
|
85
80
|
"devDependencies": {
|
|
86
81
|
"@codeperfect/commitlint-config-emoji": "^1.0.0",
|
|
87
|
-
"@codeperfect/eslint-config": "^1.
|
|
82
|
+
"@codeperfect/eslint-config": "^1.14.0",
|
|
88
83
|
"@commitlint/cz-commitlint": "^21.2.2",
|
|
89
84
|
"@eslint-community/eslint-plugin-eslint-comments": "^4.7.2",
|
|
90
85
|
"@eslint/js": "^10.0.1",
|
|
@@ -93,29 +88,28 @@
|
|
|
93
88
|
"@stryker-mutator/vitest-runner": "^10.0.0",
|
|
94
89
|
"@stylistic/eslint-plugin": "^5.10.0",
|
|
95
90
|
"@types/lodash-es": "^4.17.12",
|
|
96
|
-
"@types/node": "^26.
|
|
97
|
-
"@
|
|
98
|
-
"@typescript-eslint/rule-tester": "^8.67.0",
|
|
91
|
+
"@types/node": "^26.4.0",
|
|
92
|
+
"@typescript-eslint/rule-tester": "^8.68.0",
|
|
99
93
|
"@vitest/coverage-v8": "^4.1.11",
|
|
100
94
|
"@vitest/eslint-plugin": "^1.6.27",
|
|
101
95
|
"chalk": "^6.0.0",
|
|
102
|
-
"eslint": "^10.9.
|
|
96
|
+
"eslint": "^10.9.1",
|
|
103
97
|
"eslint-config-prettier": "^10.1.8",
|
|
104
98
|
"eslint-import-resolver-typescript": "^4.4.5",
|
|
105
99
|
"eslint-plugin-boundaries": "^7.2.0",
|
|
106
100
|
"eslint-plugin-eslint-plugin": "^7.6.2",
|
|
107
101
|
"eslint-plugin-import-x": "^4.17.1",
|
|
108
102
|
"eslint-plugin-jasmine": "^4.2.2",
|
|
109
|
-
"eslint-plugin-jest": "^29.16.
|
|
103
|
+
"eslint-plugin-jest": "^29.16.5",
|
|
110
104
|
"eslint-plugin-jsdoc": "^64.2.1",
|
|
111
105
|
"eslint-plugin-perfectionist": "^5.10.1",
|
|
112
106
|
"eslint-plugin-prettier": "^5.5.6",
|
|
113
|
-
"eslint-plugin-rxjs-x": "^1.0.
|
|
107
|
+
"eslint-plugin-rxjs-x": "^1.0.6",
|
|
114
108
|
"eslint-plugin-unicorn": "^73.0.0",
|
|
115
109
|
"globals": "^17.11.0",
|
|
116
110
|
"husky": "^9.1.7",
|
|
117
111
|
"jiti": "^2.7.0",
|
|
118
|
-
"lint-staged": "^17.
|
|
112
|
+
"lint-staged": "^17.4.1",
|
|
119
113
|
"lodash-es": "^4.18.1",
|
|
120
114
|
"patch-package": "^8.0.1",
|
|
121
115
|
"prettier": "^3.9.6",
|
|
@@ -123,12 +117,12 @@
|
|
|
123
117
|
"semantic-release": "^25.0.9",
|
|
124
118
|
"tsc-alias": "^1.9.2",
|
|
125
119
|
"typedoc": "^0.28.20",
|
|
126
|
-
"typedoc-plugin-markdown": "^4.
|
|
120
|
+
"typedoc-plugin-markdown": "^4.13.0",
|
|
127
121
|
"typescript": "^6.0.3",
|
|
128
|
-
"typescript-eslint": "^8.
|
|
122
|
+
"typescript-eslint": "^8.68.0",
|
|
129
123
|
"vitest": "^4.1.11"
|
|
130
124
|
},
|
|
131
|
-
"
|
|
132
|
-
"
|
|
125
|
+
"peerDependencies": {
|
|
126
|
+
"eslint": ">=10.9.1"
|
|
133
127
|
}
|
|
134
128
|
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { AST, Rule } from "eslint";
|
|
2
|
-
import type * as ts from "typescript";
|
|
3
|
-
import type { ExportedElement, ExportUsage, NoUnusedExportsState } from "./types.js";
|
|
4
|
-
/**
|
|
5
|
-
* Classifies one exported name based on cross-file usages.
|
|
6
|
-
* @param usages Collected usages.
|
|
7
|
-
* @returns Classification label.
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* const classification = classifyExportUsage(usages);
|
|
11
|
-
* ```
|
|
12
|
-
*/
|
|
13
|
-
declare const classifyExportUsage: (usages: ExportUsage[]) => "production" | "test-only" | "unused";
|
|
14
|
-
/**
|
|
15
|
-
* Collects concrete usages of one exported element across the program.
|
|
16
|
-
* @param program TypeScript program.
|
|
17
|
-
* @param sourceFilename Source filename where export is defined.
|
|
18
|
-
* @param state Normalized rule options.
|
|
19
|
-
* @param repoRoot Absolute repository root used for test-file classification.
|
|
20
|
-
* @param exportedElement Exported element to classify.
|
|
21
|
-
* @returns Concrete usages for the exported element.
|
|
22
|
-
* @example
|
|
23
|
-
* ```typescript
|
|
24
|
-
* const usages = collectCrossFileUsages(program, "/repo/src/feature.ts", state, "/repo", exportedElement);
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
declare const collectCrossFileUsages: (program: ts.Program, sourceFilename: string, state: NoUnusedExportsState, repoRoot: string, exportedElement: ExportedElement) => ExportUsage[];
|
|
28
|
-
/**
|
|
29
|
-
* Collects exported elements from one program body.
|
|
30
|
-
* @param body Program body statements.
|
|
31
|
-
* @returns Exported elements in declaration order.
|
|
32
|
-
* @example
|
|
33
|
-
* ```typescript
|
|
34
|
-
* const exported = collectExportedElements(program.body);
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
declare const collectExportedElements: (body: AST.Program["body"]) => ExportedElement[];
|
|
38
|
-
/**
|
|
39
|
-
* Resolves TypeScript parser services program when available.
|
|
40
|
-
* @param context Rule context.
|
|
41
|
-
* @returns TypeScript program when available.
|
|
42
|
-
* @example
|
|
43
|
-
* ```typescript
|
|
44
|
-
* const program = getTypeScriptProgram(context);
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
declare const getTypeScriptProgram: (context: Rule.RuleContext) => ts.Program | undefined;
|
|
48
|
-
export { classifyExportUsage, collectCrossFileUsages, collectExportedElements, getTypeScriptProgram, };
|
|
49
|
-
//# sourceMappingURL=no-unused-exports-utilities.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"no-unused-exports-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-unused-exports/no-unused-exports-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,oBAAoB,EACrB,MAAM,SAAS,CAAC;AASjB;;;;;;;;GAQG;AACH,QAAA,MAAM,mBAAmB,GACvB,QAAQ,WAAW,EAAE,KACpB,YAAY,GAAG,WAAW,GAAG,QACO,CAAC;AAExC;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,sBAAsB,GAC1B,SAAS,EAAE,CAAC,OAAO,EACnB,gBAAgB,MAAM,EACtB,OAAO,oBAAoB,EAC3B,UAAU,MAAM,EAChB,iBAAiB,eAAe,KAC/B,WAAW,EAOX,CAAC;AAEJ;;;;;;;;GAQG;AACH,QAAA,MAAM,uBAAuB,GAC3B,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KACxB,eAAe,EAAmD,CAAC;AAEtE;;;;;;;;GAQG;AACH,QAAA,MAAM,oBAAoB,GACxB,SAAS,IAAI,CAAC,WAAW,KACxB,EAAE,CAAC,OAAO,GAAG,SAAsD,CAAC;AAEvE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,GACrB,CAAC"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { collectExportedElements as collectExportedElementsFromDeclarations } from "./no-unused-exports-declaration-utilities.js";
|
|
2
|
-
import { getTypeScriptProgram as getTypeScriptProgramFromServices } from "./no-unused-exports-identifier-utilities.js";
|
|
3
|
-
import { classifyExportUsage as classifyExportUsageFromUsages, collectCrossFileUsages as collectCrossFileUsagesFromUsages, } from "./no-unused-exports-usage-utilities.js";
|
|
4
|
-
/**
|
|
5
|
-
* Classifies one exported name based on cross-file usages.
|
|
6
|
-
* @param usages Collected usages.
|
|
7
|
-
* @returns Classification label.
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* const classification = classifyExportUsage(usages);
|
|
11
|
-
* ```
|
|
12
|
-
*/
|
|
13
|
-
const classifyExportUsage = (usages) => classifyExportUsageFromUsages(usages);
|
|
14
|
-
/**
|
|
15
|
-
* Collects concrete usages of one exported element across the program.
|
|
16
|
-
* @param program TypeScript program.
|
|
17
|
-
* @param sourceFilename Source filename where export is defined.
|
|
18
|
-
* @param state Normalized rule options.
|
|
19
|
-
* @param repoRoot Absolute repository root used for test-file classification.
|
|
20
|
-
* @param exportedElement Exported element to classify.
|
|
21
|
-
* @returns Concrete usages for the exported element.
|
|
22
|
-
* @example
|
|
23
|
-
* ```typescript
|
|
24
|
-
* const usages = collectCrossFileUsages(program, "/repo/src/feature.ts", state, "/repo", exportedElement);
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
const collectCrossFileUsages = (program, sourceFilename, state, repoRoot, exportedElement) => collectCrossFileUsagesFromUsages(program, sourceFilename, state, repoRoot, exportedElement);
|
|
28
|
-
/**
|
|
29
|
-
* Collects exported elements from one program body.
|
|
30
|
-
* @param body Program body statements.
|
|
31
|
-
* @returns Exported elements in declaration order.
|
|
32
|
-
* @example
|
|
33
|
-
* ```typescript
|
|
34
|
-
* const exported = collectExportedElements(program.body);
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
const collectExportedElements = (body) => collectExportedElementsFromDeclarations(body);
|
|
38
|
-
/**
|
|
39
|
-
* Resolves TypeScript parser services program when available.
|
|
40
|
-
* @param context Rule context.
|
|
41
|
-
* @returns TypeScript program when available.
|
|
42
|
-
* @example
|
|
43
|
-
* ```typescript
|
|
44
|
-
* const program = getTypeScriptProgram(context);
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
const getTypeScriptProgram = (context) => getTypeScriptProgramFromServices(context);
|
|
48
|
-
export { classifyExportUsage, collectCrossFileUsages, collectExportedElements, getTypeScriptProgram, };
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tdW51c2VkLWV4cG9ydHMtdXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi9hcmNoaXRlY3R1cmUvbm8tdW51c2VkLWV4cG9ydHMvbm8tdW51c2VkLWV4cG9ydHMtdXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSx1QkFBdUIsSUFBSSx1Q0FBdUMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9ILE9BQU8sRUFBRSxvQkFBb0IsSUFBSSxnQ0FBZ0MsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BILE9BQU8sRUFDTCxtQkFBbUIsSUFBSSw2QkFBNkIsRUFDcEQsc0JBQXNCLElBQUksZ0NBQWdDLEdBQzNELE1BQU0scUNBQXFDLENBQUM7QUFFN0M7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQzFCLE1BQXFCLEVBQ2tCLEVBQUUsQ0FDekMsNkJBQTZCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFeEM7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxzQkFBc0IsR0FBRyxDQUM3QixPQUFtQixFQUNuQixjQUFzQixFQUN0QixLQUEyQixFQUMzQixRQUFnQixFQUNoQixlQUFnQyxFQUNqQixFQUFFLENBQ2pCLGdDQUFnQyxDQUM5QixPQUFPLEVBQ1AsY0FBYyxFQUNkLEtBQUssRUFDTCxRQUFRLEVBQ1IsZUFBZSxDQUNoQixDQUFDO0FBRUo7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHVCQUF1QixHQUFHLENBQzlCLElBQXlCLEVBQ04sRUFBRSxDQUFDLHVDQUF1QyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRXRFOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxDQUMzQixPQUF5QixFQUNELEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUV2RSxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsb0JBQW9CLEdBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFTVCwgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB0eXBlICogYXMgdHMgZnJvbSBcInR5cGVzY3JpcHRcIjtcblxuaW1wb3J0IHR5cGUge1xuICBFeHBvcnRlZEVsZW1lbnQsXG4gIEV4cG9ydFVzYWdlLFxuICBOb1VudXNlZEV4cG9ydHNTdGF0ZSxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHsgY29sbGVjdEV4cG9ydGVkRWxlbWVudHMgYXMgY29sbGVjdEV4cG9ydGVkRWxlbWVudHNGcm9tRGVjbGFyYXRpb25zIH0gZnJvbSBcIi4vbm8tdW51c2VkLWV4cG9ydHMtZGVjbGFyYXRpb24tdXRpbGl0aWVzXCI7XG5pbXBvcnQgeyBnZXRUeXBlU2NyaXB0UHJvZ3JhbSBhcyBnZXRUeXBlU2NyaXB0UHJvZ3JhbUZyb21TZXJ2aWNlcyB9IGZyb20gXCIuL25vLXVudXNlZC1leHBvcnRzLWlkZW50aWZpZXItdXRpbGl0aWVzXCI7XG5pbXBvcnQge1xuICBjbGFzc2lmeUV4cG9ydFVzYWdlIGFzIGNsYXNzaWZ5RXhwb3J0VXNhZ2VGcm9tVXNhZ2VzLFxuICBjb2xsZWN0Q3Jvc3NGaWxlVXNhZ2VzIGFzIGNvbGxlY3RDcm9zc0ZpbGVVc2FnZXNGcm9tVXNhZ2VzLFxufSBmcm9tIFwiLi9uby11bnVzZWQtZXhwb3J0cy11c2FnZS11dGlsaXRpZXNcIjtcblxuLyoqXG4gKiBDbGFzc2lmaWVzIG9uZSBleHBvcnRlZCBuYW1lIGJhc2VkIG9uIGNyb3NzLWZpbGUgdXNhZ2VzLlxuICogQHBhcmFtIHVzYWdlcyBDb2xsZWN0ZWQgdXNhZ2VzLlxuICogQHJldHVybnMgQ2xhc3NpZmljYXRpb24gbGFiZWwuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgY2xhc3NpZmljYXRpb24gPSBjbGFzc2lmeUV4cG9ydFVzYWdlKHVzYWdlcyk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY2xhc3NpZnlFeHBvcnRVc2FnZSA9IChcbiAgdXNhZ2VzOiBFeHBvcnRVc2FnZVtdLFxuKTogXCJwcm9kdWN0aW9uXCIgfCBcInRlc3Qtb25seVwiIHwgXCJ1bnVzZWRcIiA9PlxuICBjbGFzc2lmeUV4cG9ydFVzYWdlRnJvbVVzYWdlcyh1c2FnZXMpO1xuXG4vKipcbiAqIENvbGxlY3RzIGNvbmNyZXRlIHVzYWdlcyBvZiBvbmUgZXhwb3J0ZWQgZWxlbWVudCBhY3Jvc3MgdGhlIHByb2dyYW0uXG4gKiBAcGFyYW0gcHJvZ3JhbSBUeXBlU2NyaXB0IHByb2dyYW0uXG4gKiBAcGFyYW0gc291cmNlRmlsZW5hbWUgU291cmNlIGZpbGVuYW1lIHdoZXJlIGV4cG9ydCBpcyBkZWZpbmVkLlxuICogQHBhcmFtIHN0YXRlIE5vcm1hbGl6ZWQgcnVsZSBvcHRpb25zLlxuICogQHBhcmFtIHJlcG9Sb290IEFic29sdXRlIHJlcG9zaXRvcnkgcm9vdCB1c2VkIGZvciB0ZXN0LWZpbGUgY2xhc3NpZmljYXRpb24uXG4gKiBAcGFyYW0gZXhwb3J0ZWRFbGVtZW50IEV4cG9ydGVkIGVsZW1lbnQgdG8gY2xhc3NpZnkuXG4gKiBAcmV0dXJucyBDb25jcmV0ZSB1c2FnZXMgZm9yIHRoZSBleHBvcnRlZCBlbGVtZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHVzYWdlcyA9IGNvbGxlY3RDcm9zc0ZpbGVVc2FnZXMocHJvZ3JhbSwgXCIvcmVwby9zcmMvZmVhdHVyZS50c1wiLCBzdGF0ZSwgXCIvcmVwb1wiLCBleHBvcnRlZEVsZW1lbnQpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNvbGxlY3RDcm9zc0ZpbGVVc2FnZXMgPSAoXG4gIHByb2dyYW06IHRzLlByb2dyYW0sXG4gIHNvdXJjZUZpbGVuYW1lOiBzdHJpbmcsXG4gIHN0YXRlOiBOb1VudXNlZEV4cG9ydHNTdGF0ZSxcbiAgcmVwb1Jvb3Q6IHN0cmluZyxcbiAgZXhwb3J0ZWRFbGVtZW50OiBFeHBvcnRlZEVsZW1lbnQsXG4pOiBFeHBvcnRVc2FnZVtdID0+XG4gIGNvbGxlY3RDcm9zc0ZpbGVVc2FnZXNGcm9tVXNhZ2VzKFxuICAgIHByb2dyYW0sXG4gICAgc291cmNlRmlsZW5hbWUsXG4gICAgc3RhdGUsXG4gICAgcmVwb1Jvb3QsXG4gICAgZXhwb3J0ZWRFbGVtZW50LFxuICApO1xuXG4vKipcbiAqIENvbGxlY3RzIGV4cG9ydGVkIGVsZW1lbnRzIGZyb20gb25lIHByb2dyYW0gYm9keS5cbiAqIEBwYXJhbSBib2R5IFByb2dyYW0gYm9keSBzdGF0ZW1lbnRzLlxuICogQHJldHVybnMgRXhwb3J0ZWQgZWxlbWVudHMgaW4gZGVjbGFyYXRpb24gb3JkZXIuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZXhwb3J0ZWQgPSBjb2xsZWN0RXhwb3J0ZWRFbGVtZW50cyhwcm9ncmFtLmJvZHkpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNvbGxlY3RFeHBvcnRlZEVsZW1lbnRzID0gKFxuICBib2R5OiBBU1QuUHJvZ3JhbVtcImJvZHlcIl0sXG4pOiBFeHBvcnRlZEVsZW1lbnRbXSA9PiBjb2xsZWN0RXhwb3J0ZWRFbGVtZW50c0Zyb21EZWNsYXJhdGlvbnMoYm9keSk7XG5cbi8qKlxuICogUmVzb2x2ZXMgVHlwZVNjcmlwdCBwYXJzZXIgc2VydmljZXMgcHJvZ3JhbSB3aGVuIGF2YWlsYWJsZS5cbiAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgY29udGV4dC5cbiAqIEByZXR1cm5zIFR5cGVTY3JpcHQgcHJvZ3JhbSB3aGVuIGF2YWlsYWJsZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwcm9ncmFtID0gZ2V0VHlwZVNjcmlwdFByb2dyYW0oY29udGV4dCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0VHlwZVNjcmlwdFByb2dyYW0gPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4pOiB0cy5Qcm9ncmFtIHwgdW5kZWZpbmVkID0+IGdldFR5cGVTY3JpcHRQcm9ncmFtRnJvbVNlcnZpY2VzKGNvbnRleHQpO1xuXG5leHBvcnQge1xuICBjbGFzc2lmeUV4cG9ydFVzYWdlLFxuICBjb2xsZWN0Q3Jvc3NGaWxlVXNhZ2VzLFxuICBjb2xsZWN0RXhwb3J0ZWRFbGVtZW50cyxcbiAgZ2V0VHlwZVNjcmlwdFByb2dyYW0sXG59O1xuIl19
|