@codeperfect/eslint-plugin 1.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -4
- package/dist/.tsbuildinfo +1 -1
- package/dist/{custom-rules.d.ts → application/custom-rules.d.ts} +3 -0
- package/dist/application/custom-rules.d.ts.map +1 -0
- package/dist/application/custom-rules.js +74 -0
- package/dist/application/index.d.ts +4 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +3 -0
- package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts +56 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +149 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/consistent-barrel-files-listeners.d.ts +4 -4
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +98 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +45 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +64 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/exports-only-rule-test-utilities.d.ts +5 -4
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +87 -0
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +145 -0
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts +5 -0
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/index.js +4 -0
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +90 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts +1 -1
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +91 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts +4 -6
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +95 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.js +51 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts +4 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.js +4 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/test-helpers.d.ts +48 -48
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts +20 -0
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.js +25 -0
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.js +235 -0
- package/dist/domain/architecture/consistent-barrel-files/types.d.ts +19 -0
- package/dist/domain/architecture/consistent-barrel-files/types.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/types.js +2 -0
- package/dist/{architecture → domain/architecture}/index.d.ts +1 -1
- package/dist/domain/architecture/index.d.ts.map +1 -0
- package/dist/domain/architecture/index.js +2 -0
- package/dist/{core → domain/core}/index.d.ts +2 -2
- package/dist/domain/core/index.d.ts.map +1 -0
- package/dist/domain/core/index.js +3 -0
- package/dist/domain/core/no-multiple-declarators/index.d.ts +2 -0
- package/dist/domain/core/no-multiple-declarators/index.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/index.js +2 -0
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts +101 -0
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.js +108 -0
- package/dist/{core → domain/core}/no-multiple-declarators/rule.d.ts +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts +35 -0
- package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.fixes.js +95 -0
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts +4 -0
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.js +4 -0
- package/dist/domain/core/no-multiple-declarators/rule.js +222 -0
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts +4 -0
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.js +4 -0
- package/dist/domain/core/no-multiple-declarators/types.d.ts +77 -0
- package/dist/domain/core/no-multiple-declarators/types.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/types.js +38 -0
- package/dist/domain/core/prefer-interface-types/index.d.ts +2 -0
- package/dist/domain/core/prefer-interface-types/index.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/index.js +2 -0
- package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/rule.js +148 -0
- package/dist/domain/core/prefer-interface-types/test-helpers.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/test-helpers.js +116 -0
- package/dist/{custom-rule-documentation.d.ts → domain/custom-rule-documentation.d.ts} +3 -1
- package/dist/domain/custom-rule-documentation.d.ts.map +1 -0
- package/dist/domain/custom-rule-documentation.js +36 -0
- package/dist/domain/docs/index.d.ts +4 -0
- package/dist/domain/docs/index.d.ts.map +1 -0
- package/dist/domain/docs/index.js +4 -0
- package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.js +129 -0
- package/dist/{docs → domain/docs}/no-interface-member-docs/comment-utilities.d.ts +1 -1
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +146 -0
- package/dist/domain/docs/no-interface-member-docs/index.d.ts +2 -0
- package/dist/domain/docs/no-interface-member-docs/index.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/index.js +2 -0
- package/dist/{docs → domain/docs}/no-interface-member-docs/parameter-tags.d.ts +1 -1
- package/dist/domain/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +101 -0
- package/dist/{docs → domain/docs}/no-interface-member-docs/parameter-utilities.d.ts +1 -1
- package/dist/domain/docs/no-interface-member-docs/parameter-utilities.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +125 -0
- package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/rule.js +171 -0
- package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts.map +1 -0
- package/dist/{docs → domain/docs}/no-interface-member-docs/test-helpers.js +2 -2
- package/dist/{docs → domain/docs}/no-interface-member-docs/types.d.ts +2 -2
- package/dist/domain/docs/no-interface-member-docs/types.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/types.js +2 -0
- package/dist/domain/docs/require-example-language/create-fixer.d.ts +5 -0
- package/dist/domain/docs/require-example-language/create-fixer.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/create-fixer.js +5 -0
- package/dist/domain/docs/require-example-language/empty-fence-fixes.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/empty-fence-fixes.js +169 -0
- package/dist/domain/docs/require-example-language/example-utilities.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/example-utilities.js +76 -0
- package/dist/{docs → domain/docs}/require-example-language/examples.d.ts +1 -1
- package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/examples.js +181 -0
- package/dist/{docs → domain/docs}/require-example-language/fixes.d.ts +2 -2
- package/dist/domain/docs/require-example-language/fixes.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/fixes.js +182 -0
- package/dist/domain/docs/require-example-language/index.d.ts +3 -0
- package/dist/domain/docs/require-example-language/index.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/index.js +2 -0
- package/dist/{docs → domain/docs}/require-example-language/reporting.d.ts +1 -1
- package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/reporting.js +148 -0
- package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/rule.js +37 -0
- package/dist/domain/docs/require-example-language/types.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/types.js +2 -0
- package/dist/domain/docs/single-line-jsdoc/index.d.ts +2 -0
- package/dist/domain/docs/single-line-jsdoc/index.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/index.js +2 -0
- package/dist/domain/docs/single-line-jsdoc/rule.d.ts +4 -0
- package/dist/domain/docs/single-line-jsdoc/rule.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts +4 -0
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.js +5 -0
- package/dist/domain/docs/single-line-jsdoc/rule.js +201 -0
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts +4 -0
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.js +5 -0
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.js +95 -0
- package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-utilities.d.ts +1 -1
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +140 -0
- package/dist/domain/docs/test-helpers.d.ts.map +1 -0
- package/dist/domain/docs/test-helpers.js +107 -0
- package/dist/domain/index.d.ts +6 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +6 -0
- package/dist/domain/testing/aaa/analyzer.analysis.d.ts +34 -0
- package/dist/domain/testing/aaa/analyzer.analysis.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts +145 -0
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +203 -0
- package/dist/domain/testing/aaa/analyzer.analysis.js +82 -0
- package/dist/domain/testing/aaa/analyzer.analysis.unsupported.d.ts +4 -0
- package/dist/domain/testing/aaa/analyzer.analysis.unsupported.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.analysis.unsupported.js +4 -0
- package/dist/domain/testing/aaa/analyzer.assertions.d.ts +18 -0
- package/dist/domain/testing/aaa/analyzer.assertions.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.assertions.destructured.d.ts +4 -0
- package/dist/domain/testing/aaa/analyzer.assertions.destructured.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.assertions.destructured.js +4 -0
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts +95 -0
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +185 -0
- package/dist/domain/testing/aaa/analyzer.assertions.js +33 -0
- package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts +64 -0
- package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.assertions.operands.js +105 -0
- package/dist/domain/testing/aaa/analyzer.classification.d.ts +16 -0
- package/dist/domain/testing/aaa/analyzer.classification.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts +77 -0
- package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.helpers.js +203 -0
- package/dist/domain/testing/aaa/analyzer.classification.js +31 -0
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts +9 -0
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.js +10 -0
- package/dist/domain/testing/aaa/analyzer.classification.mutations.d.ts +4 -0
- package/dist/domain/testing/aaa/analyzer.classification.mutations.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.mutations.js +4 -0
- package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts +15 -0
- package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.traversal.js +34 -0
- package/dist/domain/testing/aaa/analyzer.d.ts +46 -0
- package/dist/domain/testing/aaa/analyzer.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.js +59 -0
- package/dist/domain/testing/aaa/analyzer.super.d.ts +106 -0
- package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts +27 -0
- package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.super.helpers.js +66 -0
- package/dist/domain/testing/aaa/analyzer.super.js +211 -0
- package/dist/{testing → domain/testing}/aaa/index.d.ts +2 -2
- package/dist/domain/testing/aaa/index.d.ts.map +1 -0
- package/dist/domain/testing/aaa/index.js +2 -0
- package/dist/domain/testing/aaa/types.d.ts +58 -0
- package/dist/domain/testing/aaa/types.d.ts.map +1 -0
- package/dist/domain/testing/aaa/types.js +2 -0
- package/dist/domain/testing/assert-actual-expected-names/index.d.ts +2 -0
- package/dist/domain/testing/assert-actual-expected-names/index.d.ts.map +1 -0
- package/dist/domain/testing/assert-actual-expected-names/index.js +2 -0
- package/dist/{testing → domain/testing}/assert-actual-expected-names/rule.d.ts +1 -0
- package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -0
- package/dist/domain/testing/assert-actual-expected-names/rule.js +116 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts +2 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/index.js +2 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts +13 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +134 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts +25 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.js +138 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.d.ts +4 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.js +4 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.d.ts +4 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.js +4 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts +4 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.js +4 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts +14 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +180 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts +42 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.js +188 -0
- package/dist/{testing → domain/testing}/enforce-aaa-phase-purity/rule.d.ts +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule.js +37 -0
- package/dist/domain/testing/enforce-aaa-structure/index.d.ts +2 -0
- package/dist/domain/testing/enforce-aaa-structure/index.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-structure/index.js +2 -0
- package/dist/{testing → domain/testing}/enforce-aaa-structure/rule.d.ts +1 -0
- package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-structure/rule.js +88 -0
- package/dist/{testing → domain/testing}/index.d.ts +9 -8
- package/dist/domain/testing/index.d.ts.map +1 -0
- package/dist/domain/testing/index.js +10 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts +29 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.js +90 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts +31 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +43 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts +16 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +205 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts +28 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix.js +171 -0
- package/dist/domain/testing/prefer-vi-mocked-import/index.d.ts +2 -0
- package/dist/domain/testing/prefer-vi-mocked-import/index.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/index.js +2 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-bindings.d.ts +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.js +52 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-declarations.d.ts +2 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.js +131 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.js +102 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-imports.d.ts +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-imports.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-imports.js +156 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-rewrites.d.ts +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +119 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-walk.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-walk.js +62 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts +26 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match.js +198 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts +20 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.js +39 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule.js +39 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/types.d.ts +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/types.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/types.js +2 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts +97 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.js +174 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts +2 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.js +2 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts +14 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.js +84 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts +13 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.js +195 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts +25 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.js +96 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts +32 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.js +164 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts +5 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.js +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.js +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.js +88 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.js +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts +24 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.js +113 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts +36 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.js +138 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts +187 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.js +2 -0
- package/dist/domain/testing/require-aaa-sections/index.d.ts +2 -0
- package/dist/domain/testing/require-aaa-sections/index.d.ts.map +1 -0
- package/dist/domain/testing/require-aaa-sections/index.js +2 -0
- package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts +17 -0
- package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts.map +1 -0
- package/dist/domain/testing/require-aaa-sections/missing-section-fixes.js +150 -0
- package/dist/{testing → domain/testing}/require-aaa-sections/rule.d.ts +1 -0
- package/dist/domain/testing/require-aaa-sections/rule.d.ts.map +1 -0
- package/dist/domain/testing/require-aaa-sections/rule.js +134 -0
- package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts +104 -0
- package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts.map +1 -0
- package/dist/domain/testing/require-aaa-sections/rule.reporting.js +216 -0
- package/dist/domain/testing/require-act-result-capture/index.d.ts +2 -0
- package/dist/domain/testing/require-act-result-capture/index.d.ts.map +1 -0
- package/dist/domain/testing/require-act-result-capture/index.js +2 -0
- package/dist/{testing → domain/testing}/require-act-result-capture/rule.d.ts +1 -0
- package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -0
- package/dist/domain/testing/require-act-result-capture/rule.js +109 -0
- package/dist/domain/testing/require-test-companion/index.d.ts +3 -0
- package/dist/domain/testing/require-test-companion/index.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/index.js +3 -0
- package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-listeners.d.ts +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-listeners.js +145 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-options.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-options.js +113 -0
- package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-test-helpers.d.ts +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.js +184 -0
- package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-utilities.d.ts +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-utilities.js +26 -0
- package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/rule.js +82 -0
- package/dist/domain/testing/require-test-companion/types.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/types.js +2 -0
- package/dist/domain/testing/single-act-statement/index.d.ts +2 -0
- package/dist/domain/testing/single-act-statement/index.d.ts.map +1 -0
- package/dist/domain/testing/single-act-statement/index.js +2 -0
- package/dist/{testing → domain/testing}/single-act-statement/rule.d.ts +1 -0
- package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -0
- package/dist/domain/testing/single-act-statement/rule.js +37 -0
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -6
- package/dist/{codeperfect-plugin.d.ts → infrastructure/codeperfect-plugin.d.ts} +2 -0
- package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -0
- package/dist/infrastructure/codeperfect-plugin.js +30 -0
- package/dist/infrastructure/index.d.ts +5 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +4 -0
- package/dist/infrastructure/presets.d.ts +18 -0
- package/dist/infrastructure/presets.d.ts.map +1 -0
- package/dist/infrastructure/presets.js +81 -0
- package/package.json +67 -32
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +0 -131
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +0 -48
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.js +0 -126
- package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +0 -90
- package/dist/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/exports-only-rule.js +0 -218
- package/dist/architecture/consistent-barrel-files/index.d.ts +0 -5
- package/dist/architecture/consistent-barrel-files/index.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/index.js +0 -4
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +0 -100
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +0 -90
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +0 -154
- package/dist/architecture/consistent-barrel-files/rule.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/rule.js +0 -58
- package/dist/architecture/consistent-barrel-files/test-helpers.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/test-helpers.js +0 -229
- package/dist/architecture/consistent-barrel-files/types.d.ts +0 -25
- package/dist/architecture/consistent-barrel-files/types.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/types.js +0 -2
- package/dist/architecture/index.d.ts.map +0 -1
- package/dist/architecture/index.js +0 -2
- package/dist/benchmark-rules.d.ts +0 -83
- package/dist/benchmark-rules.d.ts.map +0 -1
- package/dist/benchmark-rules.js +0 -175
- package/dist/codeperfect-plugin.d.ts.map +0 -1
- package/dist/codeperfect-plugin.js +0 -29
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -3
- package/dist/core/no-multiple-declarators/index.d.ts +0 -2
- package/dist/core/no-multiple-declarators/index.d.ts.map +0 -1
- package/dist/core/no-multiple-declarators/index.js +0 -2
- package/dist/core/no-multiple-declarators/rule.d.ts.map +0 -1
- package/dist/core/no-multiple-declarators/rule.js +0 -100
- package/dist/core/prefer-interface-types/index.d.ts +0 -2
- package/dist/core/prefer-interface-types/index.d.ts.map +0 -1
- package/dist/core/prefer-interface-types/index.js +0 -2
- package/dist/core/prefer-interface-types/rule.d.ts.map +0 -1
- package/dist/core/prefer-interface-types/rule.js +0 -145
- package/dist/core/prefer-interface-types/test-helpers.d.ts.map +0 -1
- package/dist/core/prefer-interface-types/test-helpers.js +0 -116
- package/dist/custom-rule-documentation.d.ts.map +0 -1
- package/dist/custom-rule-documentation.js +0 -35
- package/dist/custom-rules.d.ts.map +0 -1
- package/dist/custom-rules.js +0 -70
- package/dist/docs/index.d.ts +0 -4
- package/dist/docs/index.d.ts.map +0 -1
- package/dist/docs/index.js +0 -4
- package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.js +0 -129
- package/dist/docs/no-interface-member-docs/comment-utilities.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/comment-utilities.js +0 -146
- package/dist/docs/no-interface-member-docs/index.d.ts +0 -2
- package/dist/docs/no-interface-member-docs/index.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/index.js +0 -2
- package/dist/docs/no-interface-member-docs/parameter-tags.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/parameter-tags.js +0 -101
- package/dist/docs/no-interface-member-docs/parameter-utilities.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/parameter-utilities.js +0 -125
- package/dist/docs/no-interface-member-docs/rule.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/rule.js +0 -168
- package/dist/docs/no-interface-member-docs/test-helpers.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/types.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/types.js +0 -2
- package/dist/docs/require-example-language/empty-fence-fixes.d.ts.map +0 -1
- package/dist/docs/require-example-language/empty-fence-fixes.js +0 -169
- package/dist/docs/require-example-language/example-utilities.d.ts.map +0 -1
- package/dist/docs/require-example-language/example-utilities.js +0 -76
- package/dist/docs/require-example-language/examples.d.ts.map +0 -1
- package/dist/docs/require-example-language/examples.js +0 -181
- package/dist/docs/require-example-language/fixes.d.ts.map +0 -1
- package/dist/docs/require-example-language/fixes.js +0 -182
- package/dist/docs/require-example-language/index.d.ts +0 -3
- package/dist/docs/require-example-language/index.d.ts.map +0 -1
- package/dist/docs/require-example-language/index.js +0 -2
- package/dist/docs/require-example-language/reporting.d.ts.map +0 -1
- package/dist/docs/require-example-language/reporting.js +0 -145
- package/dist/docs/require-example-language/rule.d.ts.map +0 -1
- package/dist/docs/require-example-language/rule.js +0 -34
- package/dist/docs/require-example-language/types.d.ts.map +0 -1
- package/dist/docs/require-example-language/types.js +0 -2
- package/dist/docs/single-line-jsdoc/index.d.ts +0 -2
- package/dist/docs/single-line-jsdoc/index.d.ts.map +0 -1
- package/dist/docs/single-line-jsdoc/index.js +0 -2
- package/dist/docs/single-line-jsdoc/rule.d.ts +0 -5
- package/dist/docs/single-line-jsdoc/rule.d.ts.map +0 -1
- package/dist/docs/single-line-jsdoc/rule.js +0 -196
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +0 -1
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.js +0 -95
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +0 -1
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +0 -140
- package/dist/docs/test-helpers.d.ts.map +0 -1
- package/dist/docs/test-helpers.js +0 -107
- package/dist/presets.d.ts +0 -10
- package/dist/presets.d.ts.map +0 -1
- package/dist/presets.js +0 -50
- package/dist/rules/index.d.ts +0 -5
- package/dist/rules/index.d.ts.map +0 -1
- package/dist/rules/index.js +0 -6
- package/dist/testing/aaa/analyzer.d.ts +0 -36
- package/dist/testing/aaa/analyzer.d.ts.map +0 -1
- package/dist/testing/aaa/analyzer.js +0 -490
- package/dist/testing/aaa/index.d.ts.map +0 -1
- package/dist/testing/aaa/index.js +0 -2
- package/dist/testing/aaa/types.d.ts +0 -31
- package/dist/testing/aaa/types.d.ts.map +0 -1
- package/dist/testing/aaa/types.js +0 -2
- package/dist/testing/assert-actual-expected-names/index.d.ts +0 -2
- package/dist/testing/assert-actual-expected-names/index.d.ts.map +0 -1
- package/dist/testing/assert-actual-expected-names/index.js +0 -2
- package/dist/testing/assert-actual-expected-names/rule.d.ts.map +0 -1
- package/dist/testing/assert-actual-expected-names/rule.js +0 -54
- package/dist/testing/enforce-aaa-phase-purity/index.d.ts +0 -2
- package/dist/testing/enforce-aaa-phase-purity/index.d.ts.map +0 -1
- package/dist/testing/enforce-aaa-phase-purity/index.js +0 -2
- package/dist/testing/enforce-aaa-phase-purity/rule.d.ts.map +0 -1
- package/dist/testing/enforce-aaa-phase-purity/rule.js +0 -110
- package/dist/testing/enforce-aaa-structure/index.d.ts +0 -2
- package/dist/testing/enforce-aaa-structure/index.d.ts.map +0 -1
- package/dist/testing/enforce-aaa-structure/index.js +0 -2
- package/dist/testing/enforce-aaa-structure/rule.d.ts.map +0 -1
- package/dist/testing/enforce-aaa-structure/rule.js +0 -48
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js +0 -9
- package/dist/testing/prefer-vi-mocked-import/fix.d.ts +0 -16
- package/dist/testing/prefer-vi-mocked-import/fix.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/fix.js +0 -224
- package/dist/testing/prefer-vi-mocked-import/index.d.ts +0 -2
- package/dist/testing/prefer-vi-mocked-import/index.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/index.js +0 -2
- package/dist/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-bindings.js +0 -52
- package/dist/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-declarations.js +0 -99
- package/dist/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-helpers.js +0 -102
- package/dist/testing/prefer-vi-mocked-import/match-imports.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-imports.js +0 -156
- package/dist/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-rewrites.js +0 -119
- package/dist/testing/prefer-vi-mocked-import/match-walk.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-walk.js +0 -62
- package/dist/testing/prefer-vi-mocked-import/match.d.ts +0 -15
- package/dist/testing/prefer-vi-mocked-import/match.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match.js +0 -193
- package/dist/testing/prefer-vi-mocked-import/rule.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/rule.js +0 -32
- package/dist/testing/prefer-vi-mocked-import/types.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/types.js +0 -2
- package/dist/testing/require-aaa-sections/index.d.ts +0 -2
- package/dist/testing/require-aaa-sections/index.d.ts.map +0 -1
- package/dist/testing/require-aaa-sections/index.js +0 -2
- package/dist/testing/require-aaa-sections/rule.d.ts.map +0 -1
- package/dist/testing/require-aaa-sections/rule.js +0 -111
- package/dist/testing/require-act-result-capture/index.d.ts +0 -2
- package/dist/testing/require-act-result-capture/index.d.ts.map +0 -1
- package/dist/testing/require-act-result-capture/index.js +0 -2
- package/dist/testing/require-act-result-capture/rule.d.ts.map +0 -1
- package/dist/testing/require-act-result-capture/rule.js +0 -34
- package/dist/testing/require-test-companion/index.d.ts +0 -3
- package/dist/testing/require-test-companion/index.d.ts.map +0 -1
- package/dist/testing/require-test-companion/index.js +0 -3
- package/dist/testing/require-test-companion/require-test-companion-listeners.d.ts.map +0 -1
- package/dist/testing/require-test-companion/require-test-companion-listeners.js +0 -145
- package/dist/testing/require-test-companion/require-test-companion-options.d.ts.map +0 -1
- package/dist/testing/require-test-companion/require-test-companion-options.js +0 -112
- package/dist/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +0 -1
- package/dist/testing/require-test-companion/require-test-companion-test-helpers.js +0 -183
- package/dist/testing/require-test-companion/require-test-companion-utilities.d.ts.map +0 -1
- package/dist/testing/require-test-companion/require-test-companion-utilities.js +0 -26
- package/dist/testing/require-test-companion/rule.d.ts.map +0 -1
- package/dist/testing/require-test-companion/rule.js +0 -57
- package/dist/testing/require-test-companion/types.d.ts.map +0 -1
- package/dist/testing/require-test-companion/types.js +0 -2
- package/dist/testing/single-act-statement/index.d.ts +0 -2
- package/dist/testing/single-act-statement/index.d.ts.map +0 -1
- package/dist/testing/single-act-statement/index.js +0 -2
- package/dist/testing/single-act-statement/rule.d.ts.map +0 -1
- package/dist/testing/single-act-statement/rule.js +0 -33
- /package/dist/{architecture → domain/architecture}/consistent-barrel-files/exports-only-rule.d.ts +0 -0
- /package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts +0 -0
- /package/dist/{architecture → domain/architecture}/consistent-barrel-files/rule.d.ts +0 -0
- /package/dist/{core → domain/core}/prefer-interface-types/rule.d.ts +0 -0
- /package/dist/{core → domain/core}/prefer-interface-types/test-helpers.d.ts +0 -0
- /package/dist/{docs → domain/docs}/no-interface-member-docs/comment-utilities-test-helpers.d.ts +0 -0
- /package/dist/{docs → domain/docs}/no-interface-member-docs/rule.d.ts +0 -0
- /package/dist/{docs → domain/docs}/no-interface-member-docs/test-helpers.d.ts +0 -0
- /package/dist/{docs → domain/docs}/require-example-language/empty-fence-fixes.d.ts +0 -0
- /package/dist/{docs → domain/docs}/require-example-language/example-utilities.d.ts +0 -0
- /package/dist/{docs → domain/docs}/require-example-language/rule.d.ts +0 -0
- /package/dist/{docs → domain/docs}/require-example-language/types.d.ts +0 -0
- /package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-content.d.ts +0 -0
- /package/dist/{docs → domain/docs}/test-helpers.d.ts +0 -0
- /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-helpers.d.ts +0 -0
- /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-walk.d.ts +0 -0
- /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/rule.d.ts +0 -0
- /package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-options.d.ts +0 -0
- /package/dist/{testing → domain/testing}/require-test-companion/rule.d.ts +0 -0
- /package/dist/{testing → domain/testing}/require-test-companion/types.d.ts +0 -0
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { mkdirSync, mkdtempSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { cwd } from "node:process";
|
|
4
|
+
/**
|
|
5
|
+
* Creates a temporary repo directory for test fixtures.
|
|
6
|
+
* @param root Root folder to create the temporary directory under.
|
|
7
|
+
* @returns The generated temporary directory path.
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const directory = createRepoDirectory("tmp");
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
const createRepoDirectory = (root) => {
|
|
14
|
+
const baseDirectory = path.join(cwd(), root);
|
|
15
|
+
mkdirSync(baseDirectory, { recursive: true });
|
|
16
|
+
return mkdtempSync(path.join(baseDirectory, "barrel-files-"));
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Wraps statements in a program node for SourceCode construction.
|
|
20
|
+
* @param body Program body statements.
|
|
21
|
+
* @returns The AST program wrapper.
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const program = createProgram([]);
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
const createProgram = (body) => ({
|
|
28
|
+
body,
|
|
29
|
+
comments: [],
|
|
30
|
+
loc: { end: { column: 0, line: 1 }, start: { column: 0, line: 1 } },
|
|
31
|
+
range: [0, 0],
|
|
32
|
+
sourceType: "module",
|
|
33
|
+
tokens: [],
|
|
34
|
+
type: "Program",
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* Creates a string literal node for import and export statements.
|
|
38
|
+
* @param value Literal value to wrap.
|
|
39
|
+
* @returns The ESTree literal node.
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const literal = createLiteral("./feature");
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
const createLiteral = (value) => ({ raw: `'${value}'`, type: "Literal", value });
|
|
46
|
+
/**
|
|
47
|
+
* Converts a raw symbol name into the ESTree shape used by the fixture factories.
|
|
48
|
+
* @param name Raw symbol text to encode in the AST node.
|
|
49
|
+
* @returns An ESTree Identifier carrying the supplied symbol text.
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* const identifier = createIdentifier("feature");
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
const createIdentifier = (name) => ({ name, type: "Identifier" });
|
|
56
|
+
/**
|
|
57
|
+
* Creates an export specifier node.
|
|
58
|
+
* @param localName Local identifier name.
|
|
59
|
+
* @param exportedName Exported identifier name.
|
|
60
|
+
* @returns The ESTree export specifier.
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* const specifier = createExportSpecifier("feature");
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
const createExportSpecifier = (localName, exportedName = localName) => ({
|
|
67
|
+
exported: createIdentifier(exportedName),
|
|
68
|
+
local: createIdentifier(localName),
|
|
69
|
+
type: "ExportSpecifier",
|
|
70
|
+
});
|
|
71
|
+
/**
|
|
72
|
+
* Creates an import specifier node.
|
|
73
|
+
* @param localName Local identifier name.
|
|
74
|
+
* @param importedName Imported identifier name.
|
|
75
|
+
* @returns The ESTree import specifier.
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* const specifier = createImportSpecifier("feature");
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
const createImportSpecifier = (localName, importedName = localName) => ({
|
|
82
|
+
imported: createIdentifier(importedName),
|
|
83
|
+
local: createIdentifier(localName),
|
|
84
|
+
type: "ImportSpecifier",
|
|
85
|
+
});
|
|
86
|
+
/**
|
|
87
|
+
* Creates an import default specifier node.
|
|
88
|
+
* @param localName Local identifier name.
|
|
89
|
+
* @returns The ESTree default import specifier.
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* const specifier = createImportDefaultSpecifier("feature");
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
const createImportDefaultSpecifier = (localName) => ({
|
|
96
|
+
local: createIdentifier(localName),
|
|
97
|
+
type: "ImportDefaultSpecifier",
|
|
98
|
+
});
|
|
99
|
+
/**
|
|
100
|
+
* Creates an import declaration for fixture programs.
|
|
101
|
+
* @param specifiers Import specifiers to include.
|
|
102
|
+
* @returns The ESTree import declaration.
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* const declaration = createImportDeclaration();
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
const createImportDeclaration = (specifiers = []) => ({
|
|
109
|
+
attributes: [],
|
|
110
|
+
source: createLiteral("./feature"),
|
|
111
|
+
specifiers,
|
|
112
|
+
type: "ImportDeclaration",
|
|
113
|
+
});
|
|
114
|
+
/**
|
|
115
|
+
* Creates an export-all declaration for fixture programs.
|
|
116
|
+
* @returns The ESTree export-all declaration.
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* const declaration = createExportAll();
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
const createExportAll = () => ({
|
|
123
|
+
attributes: [],
|
|
124
|
+
exported: createIdentifier("all"),
|
|
125
|
+
source: createLiteral("./feature"),
|
|
126
|
+
type: "ExportAllDeclaration",
|
|
127
|
+
});
|
|
128
|
+
/**
|
|
129
|
+
* Creates an export-from declaration for fixture programs.
|
|
130
|
+
* @returns The ESTree named export declaration.
|
|
131
|
+
* @example
|
|
132
|
+
* ```typescript
|
|
133
|
+
* const declaration = createExportNamedFrom();
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
const createExportNamedFrom = () => ({
|
|
137
|
+
attributes: [],
|
|
138
|
+
source: createLiteral("./feature"),
|
|
139
|
+
specifiers: [],
|
|
140
|
+
type: "ExportNamedDeclaration",
|
|
141
|
+
});
|
|
142
|
+
/**
|
|
143
|
+
* Creates an export declaration with an inline variable declaration.
|
|
144
|
+
* @returns The ESTree named export declaration.
|
|
145
|
+
* @example
|
|
146
|
+
* ```typescript
|
|
147
|
+
* const declaration = createExportWithDeclaration();
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
const createExportWithDeclaration = () => {
|
|
151
|
+
const declaration = {
|
|
152
|
+
declarations: [],
|
|
153
|
+
kind: "const",
|
|
154
|
+
type: "VariableDeclaration",
|
|
155
|
+
};
|
|
156
|
+
return {
|
|
157
|
+
attributes: [],
|
|
158
|
+
declaration,
|
|
159
|
+
specifiers: [],
|
|
160
|
+
type: "ExportNamedDeclaration",
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* Creates an exported interface declaration for tests.
|
|
165
|
+
* @returns The exported interface declaration node.
|
|
166
|
+
* @example
|
|
167
|
+
* ```typescript
|
|
168
|
+
* const declaration = createExportInterfaceDeclaration();
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
const createExportInterfaceDeclaration = () => ({
|
|
172
|
+
declaration: {
|
|
173
|
+
body: { body: [], type: "TSInterfaceBody" },
|
|
174
|
+
id: createIdentifier("Feature"),
|
|
175
|
+
type: "TSInterfaceDeclaration",
|
|
176
|
+
},
|
|
177
|
+
specifiers: [],
|
|
178
|
+
type: "ExportNamedDeclaration",
|
|
179
|
+
});
|
|
180
|
+
/**
|
|
181
|
+
* Creates an exported type alias declaration for tests.
|
|
182
|
+
* @returns The exported type alias declaration node.
|
|
183
|
+
* @example
|
|
184
|
+
* ```typescript
|
|
185
|
+
* const declaration = createExportTypeAliasDeclaration();
|
|
186
|
+
* ```
|
|
187
|
+
*/
|
|
188
|
+
const createExportTypeAliasDeclaration = () => ({
|
|
189
|
+
declaration: {
|
|
190
|
+
id: createIdentifier("Feature"),
|
|
191
|
+
type: "TSTypeAliasDeclaration",
|
|
192
|
+
typeAnnotation: { type: "TSStringKeyword" },
|
|
193
|
+
},
|
|
194
|
+
specifiers: [],
|
|
195
|
+
type: "ExportNamedDeclaration",
|
|
196
|
+
});
|
|
197
|
+
/**
|
|
198
|
+
* Creates a named export without a source value.
|
|
199
|
+
* @param specifiers Export specifiers to include.
|
|
200
|
+
* @returns The ESTree named export declaration.
|
|
201
|
+
* @example
|
|
202
|
+
* ```typescript
|
|
203
|
+
* const declaration = createExportWithoutSource();
|
|
204
|
+
* ```
|
|
205
|
+
*/
|
|
206
|
+
const createExportWithoutSource = (specifiers = []) => ({
|
|
207
|
+
attributes: [],
|
|
208
|
+
specifiers,
|
|
209
|
+
type: "ExportNamedDeclaration",
|
|
210
|
+
});
|
|
211
|
+
/**
|
|
212
|
+
* Creates a default export declaration for an identifier.
|
|
213
|
+
* @param name Identifier to export.
|
|
214
|
+
* @returns The ESTree default export declaration.
|
|
215
|
+
* @example
|
|
216
|
+
* ```typescript
|
|
217
|
+
* const declaration = createExportDefaultIdentifier("feature");
|
|
218
|
+
* ```
|
|
219
|
+
*/
|
|
220
|
+
const createExportDefaultIdentifier = (name) => ({
|
|
221
|
+
declaration: createIdentifier(name),
|
|
222
|
+
type: "ExportDefaultDeclaration",
|
|
223
|
+
});
|
|
224
|
+
/**
|
|
225
|
+
* Collects statements into a program body.
|
|
226
|
+
* @param statements Statements to include in the body.
|
|
227
|
+
* @returns The program body array.
|
|
228
|
+
* @example
|
|
229
|
+
* ```typescript
|
|
230
|
+
* const body = createBody();
|
|
231
|
+
* ```
|
|
232
|
+
*/
|
|
233
|
+
const createBody = (...statements) => statements;
|
|
234
|
+
export { createBody, createExportAll, createExportDefaultIdentifier, createExportInterfaceDeclaration, createExportNamedFrom, createExportSpecifier, createExportTypeAliasDeclaration, createExportWithDeclaration, createExportWithoutSource, createImportDeclaration, createImportDefaultSpecifier, createImportSpecifier, createProgram, createRepoDirectory, };
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi9hcmNoaXRlY3R1cmUvY29uc2lzdGVudC1iYXJyZWwtZmlsZXMvdGVzdC1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pELE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRW5DOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLElBQW1CLEVBQVUsRUFBRTtJQUMxRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUE0QixFQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLElBQUk7SUFDSixRQUFRLEVBQUUsRUFBRTtJQUNaLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ25FLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDYixVQUFVLEVBQUUsUUFBUTtJQUNwQixNQUFNLEVBQUUsRUFBRTtJQUNWLElBQUksRUFBRSxTQUFTO0NBQ2hCLENBQUMsQ0FBQztBQUVIOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFhLEVBQWtCLEVBQUUsQ0FDdEQsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQTBCLENBQUM7QUFFM0U7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBWSxFQUFxQixFQUFFLENBQzNELENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUE2QixDQUFDO0FBRTdEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0scUJBQXFCLEdBQUcsQ0FDNUIsU0FBaUIsRUFDakIsWUFBWSxHQUFHLFNBQVMsRUFDQSxFQUFFLENBQzFCLENBQUM7SUFDQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO0lBQ3hDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7SUFDbEMsSUFBSSxFQUFFLGlCQUFpQjtDQUN4QixDQUFrQyxDQUFDO0FBRXRDOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0scUJBQXFCLEdBQUcsQ0FDNUIsU0FBaUIsRUFDakIsWUFBWSxHQUFHLFNBQVMsRUFDQSxFQUFFLENBQzFCLENBQUM7SUFDQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO0lBQ3hDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7SUFDbEMsSUFBSSxFQUFFLGlCQUFpQjtDQUN4QixDQUFrQyxDQUFDO0FBRXRDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSw0QkFBNEIsR0FBRyxDQUNuQyxTQUFpQixFQUNjLEVBQUUsQ0FDakMsQ0FBQztJQUNDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7SUFDbEMsSUFBSSxFQUFFLHdCQUF3QjtDQUMvQixDQUF5QyxDQUFDO0FBRTdDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxDQUM5QixhQUFxRCxFQUFFLEVBQzdCLEVBQUUsQ0FDNUIsQ0FBQztJQUNDLFVBQVUsRUFBRSxFQUFFO0lBQ2QsTUFBTSxFQUFFLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDbEMsVUFBVTtJQUNWLElBQUksRUFBRSxtQkFBbUI7Q0FDMUIsQ0FBb0MsQ0FBQztBQUV4Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxlQUFlLEdBQUcsR0FBZ0MsRUFBRSxDQUN4RCxDQUFDO0lBQ0MsVUFBVSxFQUFFLEVBQUU7SUFDZCxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0lBQ2pDLE1BQU0sRUFBRSxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQ2xDLElBQUksRUFBRSxzQkFBc0I7Q0FDN0IsQ0FBdUMsQ0FBQztBQUUzQzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxHQUFrQyxFQUFFLENBQ2hFLENBQUM7SUFDQyxVQUFVLEVBQUUsRUFBRTtJQUNkLE1BQU0sRUFBRSxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQ2xDLFVBQVUsRUFBRSxFQUFFO0lBQ2QsSUFBSSxFQUFFLHdCQUF3QjtDQUMvQixDQUF5QyxDQUFDO0FBRTdDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLDJCQUEyQixHQUFHLEdBQWtDLEVBQUU7SUFDdEUsTUFBTSxXQUFXLEdBQUc7UUFDbEIsWUFBWSxFQUFFLEVBQUU7UUFDaEIsSUFBSSxFQUFFLE9BQU87UUFDYixJQUFJLEVBQUUscUJBQXFCO0tBQ1MsQ0FBQztJQUV2QyxPQUFPO1FBQ0wsVUFBVSxFQUFFLEVBQUU7UUFDZCxXQUFXO1FBQ1gsVUFBVSxFQUFFLEVBQUU7UUFDZCxJQUFJLEVBQUUsd0JBQXdCO0tBQ1MsQ0FBQztBQUM1QyxDQUFDLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxnQ0FBZ0MsR0FBRyxHQUFtQyxFQUFFLENBQzVFLENBQUM7SUFDQyxXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTtRQUMzQyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO1FBQy9CLElBQUksRUFBRSx3QkFBd0I7S0FDL0I7SUFDRCxVQUFVLEVBQUUsRUFBRTtJQUNkLElBQUksRUFBRSx3QkFBd0I7Q0FDL0IsQ0FBOEMsQ0FBQztBQUVsRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxnQ0FBZ0MsR0FBRyxHQUFtQyxFQUFFLENBQzVFLENBQUM7SUFDQyxXQUFXLEVBQUU7UUFDWCxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO1FBQy9CLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO0tBQzVDO0lBQ0QsVUFBVSxFQUFFLEVBQUU7SUFDZCxJQUFJLEVBQUUsd0JBQXdCO0NBQy9CLENBQThDLENBQUM7QUFFbEQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHlCQUF5QixHQUFHLENBQ2hDLGFBQXVDLEVBQUUsRUFDVixFQUFFLENBQ2pDLENBQUM7SUFDQyxVQUFVLEVBQUUsRUFBRTtJQUNkLFVBQVU7SUFDVixJQUFJLEVBQUUsd0JBQXdCO0NBQy9CLENBQXlDLENBQUM7QUFFN0M7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLDZCQUE2QixHQUFHLENBQ3BDLElBQVksRUFDcUIsRUFBRSxDQUNuQyxDQUFDO0lBQ0MsV0FBVyxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQztJQUNuQyxJQUFJLEVBQUUsMEJBQTBCO0NBQ2pDLENBQTJDLENBQUM7QUFFL0M7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsR0FBRyxDQUNqQixHQUFHLFVBQTRDLEVBQ3ZCLEVBQUUsQ0FBQyxVQUFVLENBQUM7QUFFeEMsT0FBTyxFQUNMLFVBQVUsRUFDVixlQUFlLEVBQ2YsNkJBQTZCLEVBQzdCLGdDQUFnQyxFQUNoQyxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLGdDQUFnQyxFQUNoQywyQkFBMkIsRUFDM0IseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2Qiw0QkFBNEIsRUFDNUIscUJBQXFCLEVBQ3JCLGFBQWEsRUFDYixtQkFBbUIsR0FDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQVNUIH0gZnJvbSBcImVzbGludFwiO1xuaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xuXG5pbXBvcnQgeyBta2RpclN5bmMsIG1rZHRlbXBTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGN3ZCB9IGZyb20gXCJub2RlOnByb2Nlc3NcIjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgdGVtcG9yYXJ5IHJlcG8gZGlyZWN0b3J5IGZvciB0ZXN0IGZpeHR1cmVzLlxuICogQHBhcmFtIHJvb3QgUm9vdCBmb2xkZXIgdG8gY3JlYXRlIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHVuZGVyLlxuICogQHJldHVybnMgVGhlIGdlbmVyYXRlZCB0ZW1wb3JhcnkgZGlyZWN0b3J5IHBhdGguXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGlyZWN0b3J5ID0gY3JlYXRlUmVwb0RpcmVjdG9yeShcInRtcFwiKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVSZXBvRGlyZWN0b3J5ID0gKHJvb3Q6IFwic3JjXCIgfCBcInRtcFwiKTogc3RyaW5nID0+IHtcbiAgY29uc3QgYmFzZURpcmVjdG9yeSA9IHBhdGguam9pbihjd2QoKSwgcm9vdCk7XG4gIG1rZGlyU3luYyhiYXNlRGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgcmV0dXJuIG1rZHRlbXBTeW5jKHBhdGguam9pbihiYXNlRGlyZWN0b3J5LCBcImJhcnJlbC1maWxlcy1cIikpO1xufTtcblxuLyoqXG4gKiBXcmFwcyBzdGF0ZW1lbnRzIGluIGEgcHJvZ3JhbSBub2RlIGZvciBTb3VyY2VDb2RlIGNvbnN0cnVjdGlvbi5cbiAqIEBwYXJhbSBib2R5IFByb2dyYW0gYm9keSBzdGF0ZW1lbnRzLlxuICogQHJldHVybnMgVGhlIEFTVCBwcm9ncmFtIHdyYXBwZXIuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcHJvZ3JhbSA9IGNyZWF0ZVByb2dyYW0oW10pO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZVByb2dyYW0gPSAoYm9keTogRVNUcmVlLlByb2dyYW1bXCJib2R5XCJdKTogQVNULlByb2dyYW0gPT4gKHtcbiAgYm9keSxcbiAgY29tbWVudHM6IFtdLFxuICBsb2M6IHsgZW5kOiB7IGNvbHVtbjogMCwgbGluZTogMSB9LCBzdGFydDogeyBjb2x1bW46IDAsIGxpbmU6IDEgfSB9LFxuICByYW5nZTogWzAsIDBdLFxuICBzb3VyY2VUeXBlOiBcIm1vZHVsZVwiLFxuICB0b2tlbnM6IFtdLFxuICB0eXBlOiBcIlByb2dyYW1cIixcbn0pO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzdHJpbmcgbGl0ZXJhbCBub2RlIGZvciBpbXBvcnQgYW5kIGV4cG9ydCBzdGF0ZW1lbnRzLlxuICogQHBhcmFtIHZhbHVlIExpdGVyYWwgdmFsdWUgdG8gd3JhcC5cbiAqIEByZXR1cm5zIFRoZSBFU1RyZWUgbGl0ZXJhbCBub2RlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGxpdGVyYWwgPSBjcmVhdGVMaXRlcmFsKFwiLi9mZWF0dXJlXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUxpdGVyYWwgPSAodmFsdWU6IHN0cmluZyk6IEVTVHJlZS5MaXRlcmFsID0+XG4gICh7IHJhdzogYCcke3ZhbHVlfSdgLCB0eXBlOiBcIkxpdGVyYWxcIiwgdmFsdWUgfSkgc2F0aXNmaWVzIEVTVHJlZS5MaXRlcmFsO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgcmF3IHN5bWJvbCBuYW1lIGludG8gdGhlIEVTVHJlZSBzaGFwZSB1c2VkIGJ5IHRoZSBmaXh0dXJlIGZhY3Rvcmllcy5cbiAqIEBwYXJhbSBuYW1lIFJhdyBzeW1ib2wgdGV4dCB0byBlbmNvZGUgaW4gdGhlIEFTVCBub2RlLlxuICogQHJldHVybnMgQW4gRVNUcmVlIElkZW50aWZpZXIgY2FycnlpbmcgdGhlIHN1cHBsaWVkIHN5bWJvbCB0ZXh0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGlkZW50aWZpZXIgPSBjcmVhdGVJZGVudGlmaWVyKFwiZmVhdHVyZVwiKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVJZGVudGlmaWVyID0gKG5hbWU6IHN0cmluZyk6IEVTVHJlZS5JZGVudGlmaWVyID0+XG4gICh7IG5hbWUsIHR5cGU6IFwiSWRlbnRpZmllclwiIH0pIHNhdGlzZmllcyBFU1RyZWUuSWRlbnRpZmllcjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGV4cG9ydCBzcGVjaWZpZXIgbm9kZS5cbiAqIEBwYXJhbSBsb2NhbE5hbWUgTG9jYWwgaWRlbnRpZmllciBuYW1lLlxuICogQHBhcmFtIGV4cG9ydGVkTmFtZSBFeHBvcnRlZCBpZGVudGlmaWVyIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgRVNUcmVlIGV4cG9ydCBzcGVjaWZpZXIuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc3BlY2lmaWVyID0gY3JlYXRlRXhwb3J0U3BlY2lmaWVyKFwiZmVhdHVyZVwiKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVFeHBvcnRTcGVjaWZpZXIgPSAoXG4gIGxvY2FsTmFtZTogc3RyaW5nLFxuICBleHBvcnRlZE5hbWUgPSBsb2NhbE5hbWUsXG4pOiBFU1RyZWUuRXhwb3J0U3BlY2lmaWVyID0+XG4gICh7XG4gICAgZXhwb3J0ZWQ6IGNyZWF0ZUlkZW50aWZpZXIoZXhwb3J0ZWROYW1lKSxcbiAgICBsb2NhbDogY3JlYXRlSWRlbnRpZmllcihsb2NhbE5hbWUpLFxuICAgIHR5cGU6IFwiRXhwb3J0U3BlY2lmaWVyXCIsXG4gIH0pIHNhdGlzZmllcyBFU1RyZWUuRXhwb3J0U3BlY2lmaWVyO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gaW1wb3J0IHNwZWNpZmllciBub2RlLlxuICogQHBhcmFtIGxvY2FsTmFtZSBMb2NhbCBpZGVudGlmaWVyIG5hbWUuXG4gKiBAcGFyYW0gaW1wb3J0ZWROYW1lIEltcG9ydGVkIGlkZW50aWZpZXIgbmFtZS5cbiAqIEByZXR1cm5zIFRoZSBFU1RyZWUgaW1wb3J0IHNwZWNpZmllci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzcGVjaWZpZXIgPSBjcmVhdGVJbXBvcnRTcGVjaWZpZXIoXCJmZWF0dXJlXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUltcG9ydFNwZWNpZmllciA9IChcbiAgbG9jYWxOYW1lOiBzdHJpbmcsXG4gIGltcG9ydGVkTmFtZSA9IGxvY2FsTmFtZSxcbik6IEVTVHJlZS5JbXBvcnRTcGVjaWZpZXIgPT5cbiAgKHtcbiAgICBpbXBvcnRlZDogY3JlYXRlSWRlbnRpZmllcihpbXBvcnRlZE5hbWUpLFxuICAgIGxvY2FsOiBjcmVhdGVJZGVudGlmaWVyKGxvY2FsTmFtZSksXG4gICAgdHlwZTogXCJJbXBvcnRTcGVjaWZpZXJcIixcbiAgfSkgc2F0aXNmaWVzIEVTVHJlZS5JbXBvcnRTcGVjaWZpZXI7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBpbXBvcnQgZGVmYXVsdCBzcGVjaWZpZXIgbm9kZS5cbiAqIEBwYXJhbSBsb2NhbE5hbWUgTG9jYWwgaWRlbnRpZmllciBuYW1lLlxuICogQHJldHVybnMgVGhlIEVTVHJlZSBkZWZhdWx0IGltcG9ydCBzcGVjaWZpZXIuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc3BlY2lmaWVyID0gY3JlYXRlSW1wb3J0RGVmYXVsdFNwZWNpZmllcihcImZlYXR1cmVcIik7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlSW1wb3J0RGVmYXVsdFNwZWNpZmllciA9IChcbiAgbG9jYWxOYW1lOiBzdHJpbmcsXG4pOiBFU1RyZWUuSW1wb3J0RGVmYXVsdFNwZWNpZmllciA9PlxuICAoe1xuICAgIGxvY2FsOiBjcmVhdGVJZGVudGlmaWVyKGxvY2FsTmFtZSksXG4gICAgdHlwZTogXCJJbXBvcnREZWZhdWx0U3BlY2lmaWVyXCIsXG4gIH0pIHNhdGlzZmllcyBFU1RyZWUuSW1wb3J0RGVmYXVsdFNwZWNpZmllcjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGltcG9ydCBkZWNsYXJhdGlvbiBmb3IgZml4dHVyZSBwcm9ncmFtcy5cbiAqIEBwYXJhbSBzcGVjaWZpZXJzIEltcG9ydCBzcGVjaWZpZXJzIHRvIGluY2x1ZGUuXG4gKiBAcmV0dXJucyBUaGUgRVNUcmVlIGltcG9ydCBkZWNsYXJhdGlvbi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBkZWNsYXJhdGlvbiA9IGNyZWF0ZUltcG9ydERlY2xhcmF0aW9uKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlSW1wb3J0RGVjbGFyYXRpb24gPSAoXG4gIHNwZWNpZmllcnM6IEVTVHJlZS5JbXBvcnREZWNsYXJhdGlvbltcInNwZWNpZmllcnNcIl0gPSBbXSxcbik6IEVTVHJlZS5JbXBvcnREZWNsYXJhdGlvbiA9PlxuICAoe1xuICAgIGF0dHJpYnV0ZXM6IFtdLFxuICAgIHNvdXJjZTogY3JlYXRlTGl0ZXJhbChcIi4vZmVhdHVyZVwiKSxcbiAgICBzcGVjaWZpZXJzLFxuICAgIHR5cGU6IFwiSW1wb3J0RGVjbGFyYXRpb25cIixcbiAgfSkgc2F0aXNmaWVzIEVTVHJlZS5JbXBvcnREZWNsYXJhdGlvbjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGV4cG9ydC1hbGwgZGVjbGFyYXRpb24gZm9yIGZpeHR1cmUgcHJvZ3JhbXMuXG4gKiBAcmV0dXJucyBUaGUgRVNUcmVlIGV4cG9ydC1hbGwgZGVjbGFyYXRpb24uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGVjbGFyYXRpb24gPSBjcmVhdGVFeHBvcnRBbGwoKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVFeHBvcnRBbGwgPSAoKTogRVNUcmVlLkV4cG9ydEFsbERlY2xhcmF0aW9uID0+XG4gICh7XG4gICAgYXR0cmlidXRlczogW10sXG4gICAgZXhwb3J0ZWQ6IGNyZWF0ZUlkZW50aWZpZXIoXCJhbGxcIiksXG4gICAgc291cmNlOiBjcmVhdGVMaXRlcmFsKFwiLi9mZWF0dXJlXCIpLFxuICAgIHR5cGU6IFwiRXhwb3J0QWxsRGVjbGFyYXRpb25cIixcbiAgfSkgc2F0aXNmaWVzIEVTVHJlZS5FeHBvcnRBbGxEZWNsYXJhdGlvbjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGV4cG9ydC1mcm9tIGRlY2xhcmF0aW9uIGZvciBmaXh0dXJlIHByb2dyYW1zLlxuICogQHJldHVybnMgVGhlIEVTVHJlZSBuYW1lZCBleHBvcnQgZGVjbGFyYXRpb24uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGVjbGFyYXRpb24gPSBjcmVhdGVFeHBvcnROYW1lZEZyb20oKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVFeHBvcnROYW1lZEZyb20gPSAoKTogRVNUcmVlLkV4cG9ydE5hbWVkRGVjbGFyYXRpb24gPT5cbiAgKHtcbiAgICBhdHRyaWJ1dGVzOiBbXSxcbiAgICBzb3VyY2U6IGNyZWF0ZUxpdGVyYWwoXCIuL2ZlYXR1cmVcIiksXG4gICAgc3BlY2lmaWVyczogW10sXG4gICAgdHlwZTogXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIsXG4gIH0pIHNhdGlzZmllcyBFU1RyZWUuRXhwb3J0TmFtZWREZWNsYXJhdGlvbjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGV4cG9ydCBkZWNsYXJhdGlvbiB3aXRoIGFuIGlubGluZSB2YXJpYWJsZSBkZWNsYXJhdGlvbi5cbiAqIEByZXR1cm5zIFRoZSBFU1RyZWUgbmFtZWQgZXhwb3J0IGRlY2xhcmF0aW9uLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGRlY2xhcmF0aW9uID0gY3JlYXRlRXhwb3J0V2l0aERlY2xhcmF0aW9uKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlRXhwb3J0V2l0aERlY2xhcmF0aW9uID0gKCk6IEVTVHJlZS5FeHBvcnROYW1lZERlY2xhcmF0aW9uID0+IHtcbiAgY29uc3QgZGVjbGFyYXRpb24gPSB7XG4gICAgZGVjbGFyYXRpb25zOiBbXSxcbiAgICBraW5kOiBcImNvbnN0XCIsXG4gICAgdHlwZTogXCJWYXJpYWJsZURlY2xhcmF0aW9uXCIsXG4gIH0gc2F0aXNmaWVzIEVTVHJlZS5WYXJpYWJsZURlY2xhcmF0aW9uO1xuXG4gIHJldHVybiB7XG4gICAgYXR0cmlidXRlczogW10sXG4gICAgZGVjbGFyYXRpb24sXG4gICAgc3BlY2lmaWVyczogW10sXG4gICAgdHlwZTogXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIsXG4gIH0gc2F0aXNmaWVzIEVTVHJlZS5FeHBvcnROYW1lZERlY2xhcmF0aW9uO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGV4cG9ydGVkIGludGVyZmFjZSBkZWNsYXJhdGlvbiBmb3IgdGVzdHMuXG4gKiBAcmV0dXJucyBUaGUgZXhwb3J0ZWQgaW50ZXJmYWNlIGRlY2xhcmF0aW9uIG5vZGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGVjbGFyYXRpb24gPSBjcmVhdGVFeHBvcnRJbnRlcmZhY2VEZWNsYXJhdGlvbigpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUV4cG9ydEludGVyZmFjZURlY2xhcmF0aW9uID0gKCk6IEVTVHJlZS5Qcm9ncmFtW1wiYm9keVwiXVtudW1iZXJdID0+XG4gICh7XG4gICAgZGVjbGFyYXRpb246IHtcbiAgICAgIGJvZHk6IHsgYm9keTogW10sIHR5cGU6IFwiVFNJbnRlcmZhY2VCb2R5XCIgfSxcbiAgICAgIGlkOiBjcmVhdGVJZGVudGlmaWVyKFwiRmVhdHVyZVwiKSxcbiAgICAgIHR5cGU6IFwiVFNJbnRlcmZhY2VEZWNsYXJhdGlvblwiLFxuICAgIH0sXG4gICAgc3BlY2lmaWVyczogW10sXG4gICAgdHlwZTogXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIsXG4gIH0pIGFzIHVua25vd24gYXMgRVNUcmVlLlByb2dyYW1bXCJib2R5XCJdW251bWJlcl07XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBleHBvcnRlZCB0eXBlIGFsaWFzIGRlY2xhcmF0aW9uIGZvciB0ZXN0cy5cbiAqIEByZXR1cm5zIFRoZSBleHBvcnRlZCB0eXBlIGFsaWFzIGRlY2xhcmF0aW9uIG5vZGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGVjbGFyYXRpb24gPSBjcmVhdGVFeHBvcnRUeXBlQWxpYXNEZWNsYXJhdGlvbigpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUV4cG9ydFR5cGVBbGlhc0RlY2xhcmF0aW9uID0gKCk6IEVTVHJlZS5Qcm9ncmFtW1wiYm9keVwiXVtudW1iZXJdID0+XG4gICh7XG4gICAgZGVjbGFyYXRpb246IHtcbiAgICAgIGlkOiBjcmVhdGVJZGVudGlmaWVyKFwiRmVhdHVyZVwiKSxcbiAgICAgIHR5cGU6IFwiVFNUeXBlQWxpYXNEZWNsYXJhdGlvblwiLFxuICAgICAgdHlwZUFubm90YXRpb246IHsgdHlwZTogXCJUU1N0cmluZ0tleXdvcmRcIiB9LFxuICAgIH0sXG4gICAgc3BlY2lmaWVyczogW10sXG4gICAgdHlwZTogXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIsXG4gIH0pIGFzIHVua25vd24gYXMgRVNUcmVlLlByb2dyYW1bXCJib2R5XCJdW251bWJlcl07XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5hbWVkIGV4cG9ydCB3aXRob3V0IGEgc291cmNlIHZhbHVlLlxuICogQHBhcmFtIHNwZWNpZmllcnMgRXhwb3J0IHNwZWNpZmllcnMgdG8gaW5jbHVkZS5cbiAqIEByZXR1cm5zIFRoZSBFU1RyZWUgbmFtZWQgZXhwb3J0IGRlY2xhcmF0aW9uLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGRlY2xhcmF0aW9uID0gY3JlYXRlRXhwb3J0V2l0aG91dFNvdXJjZSgpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUV4cG9ydFdpdGhvdXRTb3VyY2UgPSAoXG4gIHNwZWNpZmllcnM6IEVTVHJlZS5FeHBvcnRTcGVjaWZpZXJbXSA9IFtdLFxuKTogRVNUcmVlLkV4cG9ydE5hbWVkRGVjbGFyYXRpb24gPT5cbiAgKHtcbiAgICBhdHRyaWJ1dGVzOiBbXSxcbiAgICBzcGVjaWZpZXJzLFxuICAgIHR5cGU6IFwiRXhwb3J0TmFtZWREZWNsYXJhdGlvblwiLFxuICB9KSBzYXRpc2ZpZXMgRVNUcmVlLkV4cG9ydE5hbWVkRGVjbGFyYXRpb247XG5cbi8qKlxuICogQ3JlYXRlcyBhIGRlZmF1bHQgZXhwb3J0IGRlY2xhcmF0aW9uIGZvciBhbiBpZGVudGlmaWVyLlxuICogQHBhcmFtIG5hbWUgSWRlbnRpZmllciB0byBleHBvcnQuXG4gKiBAcmV0dXJucyBUaGUgRVNUcmVlIGRlZmF1bHQgZXhwb3J0IGRlY2xhcmF0aW9uLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGRlY2xhcmF0aW9uID0gY3JlYXRlRXhwb3J0RGVmYXVsdElkZW50aWZpZXIoXCJmZWF0dXJlXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUV4cG9ydERlZmF1bHRJZGVudGlmaWVyID0gKFxuICBuYW1lOiBzdHJpbmcsXG4pOiBFU1RyZWUuRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uID0+XG4gICh7XG4gICAgZGVjbGFyYXRpb246IGNyZWF0ZUlkZW50aWZpZXIobmFtZSksXG4gICAgdHlwZTogXCJFeHBvcnREZWZhdWx0RGVjbGFyYXRpb25cIixcbiAgfSkgc2F0aXNmaWVzIEVTVHJlZS5FeHBvcnREZWZhdWx0RGVjbGFyYXRpb247XG5cbi8qKlxuICogQ29sbGVjdHMgc3RhdGVtZW50cyBpbnRvIGEgcHJvZ3JhbSBib2R5LlxuICogQHBhcmFtIHN0YXRlbWVudHMgU3RhdGVtZW50cyB0byBpbmNsdWRlIGluIHRoZSBib2R5LlxuICogQHJldHVybnMgVGhlIHByb2dyYW0gYm9keSBhcnJheS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBib2R5ID0gY3JlYXRlQm9keSgpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUJvZHkgPSAoXG4gIC4uLnN0YXRlbWVudHM6IEVTVHJlZS5Qcm9ncmFtW1wiYm9keVwiXVtudW1iZXJdW11cbik6IEVTVHJlZS5Qcm9ncmFtW1wiYm9keVwiXSA9PiBzdGF0ZW1lbnRzO1xuXG5leHBvcnQge1xuICBjcmVhdGVCb2R5LFxuICBjcmVhdGVFeHBvcnRBbGwsXG4gIGNyZWF0ZUV4cG9ydERlZmF1bHRJZGVudGlmaWVyLFxuICBjcmVhdGVFeHBvcnRJbnRlcmZhY2VEZWNsYXJhdGlvbixcbiAgY3JlYXRlRXhwb3J0TmFtZWRGcm9tLFxuICBjcmVhdGVFeHBvcnRTcGVjaWZpZXIsXG4gIGNyZWF0ZUV4cG9ydFR5cGVBbGlhc0RlY2xhcmF0aW9uLFxuICBjcmVhdGVFeHBvcnRXaXRoRGVjbGFyYXRpb24sXG4gIGNyZWF0ZUV4cG9ydFdpdGhvdXRTb3VyY2UsXG4gIGNyZWF0ZUltcG9ydERlY2xhcmF0aW9uLFxuICBjcmVhdGVJbXBvcnREZWZhdWx0U3BlY2lmaWVyLFxuICBjcmVhdGVJbXBvcnRTcGVjaWZpZXIsXG4gIGNyZWF0ZVByb2dyYW0sXG4gIGNyZWF0ZVJlcG9EaXJlY3RvcnksXG59O1xuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Type definition for rule data. */
|
|
2
|
+
interface BarrelFilesExportsOnlyOptions {
|
|
3
|
+
/** AllowedBarrelNames helper value. */
|
|
4
|
+
allowedBarrelNames?: string[];
|
|
5
|
+
}
|
|
6
|
+
/** Type definition for rule data. */
|
|
7
|
+
interface ConsistentBarrelFilesOptions {
|
|
8
|
+
/** AllowedNames helper value. */
|
|
9
|
+
allowedNames?: string[];
|
|
10
|
+
/** Enforce helper value. */
|
|
11
|
+
enforce?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/** Type definition for rule data. */
|
|
14
|
+
interface NoReexportsOutsideBarrelsOptions {
|
|
15
|
+
/** AllowedBarrelNames helper value. */
|
|
16
|
+
allowedBarrelNames?: string[];
|
|
17
|
+
}
|
|
18
|
+
export type { BarrelFilesExportsOnlyOptions, ConsistentBarrelFilesOptions, NoReexportsOutsideBarrelsOptions, };
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/consistent-barrel-files/types.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,UAAU,6BAA6B;IACrC,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,qCAAqC;AACrC,UAAU,4BAA4B;IACpC,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qCAAqC;AACrC,UAAU,gCAAgC;IACxC,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,YAAY,EACV,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,GACjC,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9jb25zaXN0ZW50LWJhcnJlbC1maWxlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIEJhcnJlbEZpbGVzRXhwb3J0c09ubHlPcHRpb25zIHtcbiAgLyoqIEFsbG93ZWRCYXJyZWxOYW1lcyBoZWxwZXIgdmFsdWUuICovXG4gIGFsbG93ZWRCYXJyZWxOYW1lcz86IHN0cmluZ1tdO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgQ29uc2lzdGVudEJhcnJlbEZpbGVzT3B0aW9ucyB7XG4gIC8qKiBBbGxvd2VkTmFtZXMgaGVscGVyIHZhbHVlLiAqL1xuICBhbGxvd2VkTmFtZXM/OiBzdHJpbmdbXTtcblxuICAvKiogRW5mb3JjZSBoZWxwZXIgdmFsdWUuICovXG4gIGVuZm9yY2U/OiBib29sZWFuO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgTm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc09wdGlvbnMge1xuICAvKiogQWxsb3dlZEJhcnJlbE5hbWVzIGhlbHBlciB2YWx1ZS4gKi9cbiAgYWxsb3dlZEJhcnJlbE5hbWVzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCB0eXBlIHtcbiAgQmFycmVsRmlsZXNFeHBvcnRzT25seU9wdGlvbnMsXG4gIENvbnNpc3RlbnRCYXJyZWxGaWxlc09wdGlvbnMsXG4gIE5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNPcHRpb25zLFxufTtcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noReexportsOutsideBarrelsRule, } from "./consistent-barrel-files";
|
|
1
|
+
export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noReexportsOutsideBarrelsRule, } from "./consistent-barrel-files/index.js";
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/architecture/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noReexportsOutsideBarrelsRule, } from "./consistent-barrel-files/index.js";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6Qiw2QkFBNkIsR0FDOUIsTUFBTSwyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIGJhcnJlbEZpbGVzRXhwb3J0c09ubHlSdWxlLFxuICBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlLFxuICBub1JlZXhwb3J0c091dHNpZGVCYXJyZWxzUnVsZSxcbn0gZnJvbSBcIi4vY29uc2lzdGVudC1iYXJyZWwtZmlsZXNcIjtcbiJdfQ==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { noMultipleDeclaratorsRule } from "./no-multiple-declarators";
|
|
2
|
-
export { preferInterfaceTypesRule } from "./prefer-interface-types";
|
|
1
|
+
export { noMultipleDeclaratorsRule } from "./no-multiple-declarators/index.js";
|
|
2
|
+
export { preferInterfaceTypesRule } from "./prefer-interface-types/index.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { noMultipleDeclaratorsRule } from "./no-multiple-declarators/index.js";
|
|
2
|
+
export { preferInterfaceTypesRule } from "./prefer-interface-types/index.js";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZG9tYWluL2NvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlIH0gZnJvbSBcIi4vbm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIjtcbmV4cG9ydCB7IHByZWZlckludGVyZmFjZVR5cGVzUnVsZSB9IGZyb20gXCIuL3ByZWZlci1pbnRlcmZhY2UtdHlwZXNcIjtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-multiple-declarators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { noMultipleDeclaratorsRule } from "./rule.js";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2NvcmUvbm8tbXVsdGlwbGUtZGVjbGFyYXRvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgbm9NdWx0aXBsZURlY2xhcmF0b3JzUnVsZSB9IGZyb20gXCIuL3J1bGVcIjtcbiJdfQ==
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
import type { Range } from "./types.js";
|
|
3
|
+
/** Options that shape the mock ESLint source access used by the tests. */
|
|
4
|
+
interface ContextOptions {
|
|
5
|
+
/** Omits the raw `text` property to exercise the `getText()` fallback path. */
|
|
6
|
+
omitText?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/** Input used to build a mock variable declaration node. */
|
|
9
|
+
interface CreateVariableDeclarationInput {
|
|
10
|
+
/** Individual declarator source fragments in declaration order. */
|
|
11
|
+
declaratorTexts: readonly string[];
|
|
12
|
+
/** Declaration keyword such as `const` or `let`. */
|
|
13
|
+
kind: string;
|
|
14
|
+
/** Full file source used to resolve node ranges. */
|
|
15
|
+
sourceText: string;
|
|
16
|
+
/** Exact statement text that contains the declaration. */
|
|
17
|
+
statementText: string;
|
|
18
|
+
}
|
|
19
|
+
/** Mock ESTree node shape required by the rule tests. */
|
|
20
|
+
interface MockNode {
|
|
21
|
+
/** Variable declarators belonging to a declaration statement. */
|
|
22
|
+
declarations?: MockNode[];
|
|
23
|
+
/** Loop initializer reference used by `ForStatement` parents. */
|
|
24
|
+
init?: MockNode | null;
|
|
25
|
+
/** Declaration keyword such as `const` or `let`. */
|
|
26
|
+
kind?: string;
|
|
27
|
+
/** Loop left-hand reference used by `for...of` and `for...in` parents. */
|
|
28
|
+
left?: MockNode;
|
|
29
|
+
/** Parent node used by the rule to inspect surrounding syntax. */
|
|
30
|
+
parent?: MockNode;
|
|
31
|
+
/** Source range used by the autofix logic. */
|
|
32
|
+
range?: Range;
|
|
33
|
+
/** ESTree node type. */
|
|
34
|
+
type: string;
|
|
35
|
+
}
|
|
36
|
+
/** Captured report metadata asserted by the unit tests. */
|
|
37
|
+
interface ReportEntry {
|
|
38
|
+
/** Fix callback captured from the rule report descriptor. */
|
|
39
|
+
fix: null | Rule.ReportFixer | undefined;
|
|
40
|
+
/** Message identifier reported by the rule. */
|
|
41
|
+
messageId: string | undefined;
|
|
42
|
+
/** Node type captured from the report descriptor. */
|
|
43
|
+
nodeType: string | undefined;
|
|
44
|
+
}
|
|
45
|
+
/** Captured reports and mock context returned from `createContext`. */
|
|
46
|
+
interface RuleContextState {
|
|
47
|
+
/** Mock rule context passed into the rule under test. */
|
|
48
|
+
context: Rule.RuleContext;
|
|
49
|
+
/** Reports captured during rule execution. */
|
|
50
|
+
reports: ReportEntry[];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Builds a mock ESLint context for the rule tests.
|
|
54
|
+
* @param sourceText Full source text used by the mock source code object.
|
|
55
|
+
* @param options Options that tweak the mock source code shape.
|
|
56
|
+
* @returns The mock context and captured reports.
|
|
57
|
+
* @example Create a context with the default source text access.
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const { context, reports } = createContext("const value = 1;");
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
declare const createContext: (sourceText: string, options?: ContextOptions) => RuleContextState;
|
|
63
|
+
/**
|
|
64
|
+
* Builds a mock variable declaration node with stable source ranges.
|
|
65
|
+
* @param input Source fragments used to build the declaration node.
|
|
66
|
+
* @param input.declaratorTexts Individual declarator source fragments.
|
|
67
|
+
* @param input.kind Declaration keyword such as `const` or `let`.
|
|
68
|
+
* @param input.sourceText Full file source used to resolve ranges.
|
|
69
|
+
* @param input.statementText Exact statement text containing the declaration.
|
|
70
|
+
* @returns A mock variable declaration node with linked declarator parents.
|
|
71
|
+
* @example Build a declaration with two declarators.
|
|
72
|
+
* ```typescript
|
|
73
|
+
* const declaration = createVariableDeclaration({
|
|
74
|
+
* declaratorTexts: ["first = 1", "second = 2"],
|
|
75
|
+
* kind: "const",
|
|
76
|
+
* sourceText: "const first = 1, second = 2;",
|
|
77
|
+
* statementText: "const first = 1, second = 2;",
|
|
78
|
+
* });
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
declare const createVariableDeclaration: ({ declaratorTexts, kind, sourceText, statementText, }: CreateVariableDeclarationInput) => MockNode;
|
|
82
|
+
/**
|
|
83
|
+
* Executes the rule listener for a variable declaration node.
|
|
84
|
+
* @param context Rule execution context.
|
|
85
|
+
* @param node Declaration node passed to the rule listener.
|
|
86
|
+
* @example Execute the rule against a mock declaration.
|
|
87
|
+
* ```typescript
|
|
88
|
+
* const state = createContext("const first = 1, second = 2;");
|
|
89
|
+
* const declaration = createVariableDeclaration({
|
|
90
|
+
* declaratorTexts: ["first = 1", "second = 2"],
|
|
91
|
+
* kind: "const",
|
|
92
|
+
* sourceText: "const first = 1, second = 2;",
|
|
93
|
+
* statementText: "const first = 1, second = 2;",
|
|
94
|
+
* });
|
|
95
|
+
* runRule(state.context, declaration);
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
declare const runRule: (context: Rule.RuleContext, node: MockNode) => void;
|
|
99
|
+
export { createContext, createVariableDeclaration, runRule };
|
|
100
|
+
export type { MockNode };
|
|
101
|
+
//# sourceMappingURL=rule-test-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-test-helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-multiple-declarators/rule-test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIrC,0EAA0E;AAC1E,UAAU,cAAc;IACtB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,4DAA4D;AAC5D,UAAU,8BAA8B;IACtC,mEAAmE;IACnE,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,yDAAyD;AACzD,UAAU,QAAQ;IAChB,iEAAiE;IACjE,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC1B,iEAAiE;IACjE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,kEAAkE;IAClE,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,2DAA2D;AAC3D,UAAU,WAAW;IACnB,6DAA6D;IAC7D,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IACzC,+CAA+C;IAC/C,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,qDAAqD;IACrD,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,uEAAuE;AACvE,UAAU,gBAAgB;IACxB,yDAAyD;IACzD,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC;IAC1B,8CAA8C;IAC9C,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,aAAa,GACjB,YAAY,MAAM,EAClB,UAAU,cAAc,KACvB,gBA8BF,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,yBAAyB,GAAI,uDAKhC,8BAA8B,KAAG,QAgCnC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,OAAO,GAAI,SAAS,IAAI,CAAC,WAAW,EAAE,MAAM,QAAQ,KAAG,IAO5D,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,OAAO,EAAE,CAAC;AAC7D,YAAY,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { noMultipleDeclaratorsRule } from "./rule.js";
|
|
2
|
+
/**
|
|
3
|
+
* Builds a mock ESLint context for the rule tests.
|
|
4
|
+
* @param sourceText Full source text used by the mock source code object.
|
|
5
|
+
* @param options Options that tweak the mock source code shape.
|
|
6
|
+
* @returns The mock context and captured reports.
|
|
7
|
+
* @example Create a context with the default source text access.
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const { context, reports } = createContext("const value = 1;");
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
const createContext = (sourceText, options) => {
|
|
13
|
+
const reports = [];
|
|
14
|
+
const sourceCode = {
|
|
15
|
+
getText: (node) => {
|
|
16
|
+
if (node?.range === void 0) {
|
|
17
|
+
return sourceText;
|
|
18
|
+
}
|
|
19
|
+
return sourceText.slice(node.range[0], node.range[1]);
|
|
20
|
+
},
|
|
21
|
+
...(options?.omitText === true ? {} : { text: sourceText }),
|
|
22
|
+
};
|
|
23
|
+
const context = {
|
|
24
|
+
id: "no-multiple-declarators",
|
|
25
|
+
options: [],
|
|
26
|
+
report: (descriptor) => {
|
|
27
|
+
const messageId = "messageId" in descriptor ? descriptor.messageId : void 0;
|
|
28
|
+
const node = "node" in descriptor ? descriptor.node : void 0;
|
|
29
|
+
reports.push({
|
|
30
|
+
fix: descriptor.fix,
|
|
31
|
+
messageId,
|
|
32
|
+
nodeType: node?.type,
|
|
33
|
+
});
|
|
34
|
+
},
|
|
35
|
+
sourceCode,
|
|
36
|
+
};
|
|
37
|
+
return { context, reports };
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Builds a mock variable declaration node with stable source ranges.
|
|
41
|
+
* @param input Source fragments used to build the declaration node.
|
|
42
|
+
* @param input.declaratorTexts Individual declarator source fragments.
|
|
43
|
+
* @param input.kind Declaration keyword such as `const` or `let`.
|
|
44
|
+
* @param input.sourceText Full file source used to resolve ranges.
|
|
45
|
+
* @param input.statementText Exact statement text containing the declaration.
|
|
46
|
+
* @returns A mock variable declaration node with linked declarator parents.
|
|
47
|
+
* @example Build a declaration with two declarators.
|
|
48
|
+
* ```typescript
|
|
49
|
+
* const declaration = createVariableDeclaration({
|
|
50
|
+
* declaratorTexts: ["first = 1", "second = 2"],
|
|
51
|
+
* kind: "const",
|
|
52
|
+
* sourceText: "const first = 1, second = 2;",
|
|
53
|
+
* statementText: "const first = 1, second = 2;",
|
|
54
|
+
* });
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
const createVariableDeclaration = ({ declaratorTexts, kind, sourceText, statementText, }) => {
|
|
58
|
+
const statementOffset = sourceText.indexOf(statementText);
|
|
59
|
+
const statementRange = [
|
|
60
|
+
statementOffset + statementText.indexOf(kind),
|
|
61
|
+
statementOffset + statementText.length,
|
|
62
|
+
];
|
|
63
|
+
let [searchStart] = statementRange;
|
|
64
|
+
const declarations = declaratorTexts.map((declaratorText) => {
|
|
65
|
+
const start = sourceText.indexOf(declaratorText, searchStart);
|
|
66
|
+
const range = [start, start + declaratorText.length];
|
|
67
|
+
const declaration = {
|
|
68
|
+
range,
|
|
69
|
+
type: "VariableDeclarator",
|
|
70
|
+
};
|
|
71
|
+
const [, rangeEnd] = range;
|
|
72
|
+
searchStart = rangeEnd;
|
|
73
|
+
return declaration;
|
|
74
|
+
});
|
|
75
|
+
const declarationNode = {
|
|
76
|
+
declarations,
|
|
77
|
+
kind,
|
|
78
|
+
range: statementRange,
|
|
79
|
+
type: "VariableDeclaration",
|
|
80
|
+
};
|
|
81
|
+
for (const declaration of declarations) {
|
|
82
|
+
declaration.parent = declarationNode;
|
|
83
|
+
}
|
|
84
|
+
return declarationNode;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Executes the rule listener for a variable declaration node.
|
|
88
|
+
* @param context Rule execution context.
|
|
89
|
+
* @param node Declaration node passed to the rule listener.
|
|
90
|
+
* @example Execute the rule against a mock declaration.
|
|
91
|
+
* ```typescript
|
|
92
|
+
* const state = createContext("const first = 1, second = 2;");
|
|
93
|
+
* const declaration = createVariableDeclaration({
|
|
94
|
+
* declaratorTexts: ["first = 1", "second = 2"],
|
|
95
|
+
* kind: "const",
|
|
96
|
+
* sourceText: "const first = 1, second = 2;",
|
|
97
|
+
* statementText: "const first = 1, second = 2;",
|
|
98
|
+
* });
|
|
99
|
+
* runRule(state.context, declaration);
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
const runRule = (context, node) => {
|
|
103
|
+
const listeners = noMultipleDeclaratorsRule.create(context);
|
|
104
|
+
const listener = listeners.VariableDeclaration;
|
|
105
|
+
listener?.(node);
|
|
106
|
+
};
|
|
107
|
+
export { createContext, createVariableDeclaration, runRule };
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS10ZXN0LWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2NvcmUvbm8tbXVsdGlwbGUtZGVjbGFyYXRvcnMvcnVsZS10ZXN0LWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBd0RuRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGFBQWEsR0FBRyxDQUNwQixVQUFrQixFQUNsQixPQUF3QixFQUNOLEVBQUU7SUFDcEIsTUFBTSxPQUFPLEdBQWtCLEVBQUUsQ0FBQztJQUNsQyxNQUFNLFVBQVUsR0FBRztRQUNqQixPQUFPLEVBQUUsQ0FBQyxJQUFlLEVBQVUsRUFBRTtZQUNuQyxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDM0IsT0FBTyxVQUFVLENBQUM7WUFDcEIsQ0FBQztZQUVELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDO0tBQzVELENBQUM7SUFDRixNQUFNLE9BQU8sR0FBcUI7UUFDaEMsRUFBRSxFQUFFLHlCQUF5QjtRQUM3QixPQUFPLEVBQUUsRUFBRTtRQUNYLE1BQU0sRUFBRSxDQUFDLFVBQWlDLEVBQVEsRUFBRTtZQUNsRCxNQUFNLFNBQVMsR0FDYixXQUFXLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1RCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU3RCxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNYLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRztnQkFDbkIsU0FBUztnQkFDVCxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUk7YUFDckIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELFVBQVU7S0FDb0IsQ0FBQztJQUVqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQzlCLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxFQUNqQyxlQUFlLEVBQ2YsSUFBSSxFQUNKLFVBQVUsRUFDVixhQUFhLEdBQ2tCLEVBQVksRUFBRTtJQUM3QyxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFELE1BQU0sY0FBYyxHQUFVO1FBQzVCLGVBQWUsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUM3QyxlQUFlLEdBQUcsYUFBYSxDQUFDLE1BQU07S0FDdkMsQ0FBQztJQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxjQUFjLENBQUM7SUFDbkMsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO1FBQzFELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sS0FBSyxHQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUQsTUFBTSxXQUFXLEdBQWE7WUFDNUIsS0FBSztZQUNMLElBQUksRUFBRSxvQkFBb0I7U0FDM0IsQ0FBQztRQUNGLE1BQU0sQ0FBQyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUUzQixXQUFXLEdBQUcsUUFBUSxDQUFDO1FBRXZCLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxlQUFlLEdBQWE7UUFDaEMsWUFBWTtRQUNaLElBQUk7UUFDSixLQUFLLEVBQUUsY0FBYztRQUNyQixJQUFJLEVBQUUscUJBQXFCO0tBQzVCLENBQUM7SUFFRixLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE9BQXlCLEVBQUUsSUFBYyxFQUFRLEVBQUU7SUFDbEUsTUFBTSxTQUFTLEdBQUcseUJBQXlCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVELE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxtQkFFZCxDQUFDO0lBRWQsUUFBUSxFQUFFLENBQUMsSUFBNEIsQ0FBQyxDQUFDO0FBQzNDLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxhQUFhLEVBQUUseUJBQXlCLEVBQUUsT0FBTyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IFJhbmdlIH0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbmltcG9ydCB7IG5vTXVsdGlwbGVEZWNsYXJhdG9yc1J1bGUgfSBmcm9tIFwiLi9ydWxlXCI7XHJcblxyXG4vKiogT3B0aW9ucyB0aGF0IHNoYXBlIHRoZSBtb2NrIEVTTGludCBzb3VyY2UgYWNjZXNzIHVzZWQgYnkgdGhlIHRlc3RzLiAqL1xyXG5pbnRlcmZhY2UgQ29udGV4dE9wdGlvbnMge1xyXG4gIC8qKiBPbWl0cyB0aGUgcmF3IGB0ZXh0YCBwcm9wZXJ0eSB0byBleGVyY2lzZSB0aGUgYGdldFRleHQoKWAgZmFsbGJhY2sgcGF0aC4gKi9cclxuICBvbWl0VGV4dD86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKiBJbnB1dCB1c2VkIHRvIGJ1aWxkIGEgbW9jayB2YXJpYWJsZSBkZWNsYXJhdGlvbiBub2RlLiAqL1xyXG5pbnRlcmZhY2UgQ3JlYXRlVmFyaWFibGVEZWNsYXJhdGlvbklucHV0IHtcclxuICAvKiogSW5kaXZpZHVhbCBkZWNsYXJhdG9yIHNvdXJjZSBmcmFnbWVudHMgaW4gZGVjbGFyYXRpb24gb3JkZXIuICovXHJcbiAgZGVjbGFyYXRvclRleHRzOiByZWFkb25seSBzdHJpbmdbXTtcclxuICAvKiogRGVjbGFyYXRpb24ga2V5d29yZCBzdWNoIGFzIGBjb25zdGAgb3IgYGxldGAuICovXHJcbiAga2luZDogc3RyaW5nO1xyXG4gIC8qKiBGdWxsIGZpbGUgc291cmNlIHVzZWQgdG8gcmVzb2x2ZSBub2RlIHJhbmdlcy4gKi9cclxuICBzb3VyY2VUZXh0OiBzdHJpbmc7XHJcbiAgLyoqIEV4YWN0IHN0YXRlbWVudCB0ZXh0IHRoYXQgY29udGFpbnMgdGhlIGRlY2xhcmF0aW9uLiAqL1xyXG4gIHN0YXRlbWVudFRleHQ6IHN0cmluZztcclxufVxyXG5cclxuLyoqIE1vY2sgRVNUcmVlIG5vZGUgc2hhcGUgcmVxdWlyZWQgYnkgdGhlIHJ1bGUgdGVzdHMuICovXHJcbmludGVyZmFjZSBNb2NrTm9kZSB7XHJcbiAgLyoqIFZhcmlhYmxlIGRlY2xhcmF0b3JzIGJlbG9uZ2luZyB0byBhIGRlY2xhcmF0aW9uIHN0YXRlbWVudC4gKi9cclxuICBkZWNsYXJhdGlvbnM/OiBNb2NrTm9kZVtdO1xyXG4gIC8qKiBMb29wIGluaXRpYWxpemVyIHJlZmVyZW5jZSB1c2VkIGJ5IGBGb3JTdGF0ZW1lbnRgIHBhcmVudHMuICovXHJcbiAgaW5pdD86IE1vY2tOb2RlIHwgbnVsbDtcclxuICAvKiogRGVjbGFyYXRpb24ga2V5d29yZCBzdWNoIGFzIGBjb25zdGAgb3IgYGxldGAuICovXHJcbiAga2luZD86IHN0cmluZztcclxuICAvKiogTG9vcCBsZWZ0LWhhbmQgcmVmZXJlbmNlIHVzZWQgYnkgYGZvci4uLm9mYCBhbmQgYGZvci4uLmluYCBwYXJlbnRzLiAqL1xyXG4gIGxlZnQ/OiBNb2NrTm9kZTtcclxuICAvKiogUGFyZW50IG5vZGUgdXNlZCBieSB0aGUgcnVsZSB0byBpbnNwZWN0IHN1cnJvdW5kaW5nIHN5bnRheC4gKi9cclxuICBwYXJlbnQ/OiBNb2NrTm9kZTtcclxuICAvKiogU291cmNlIHJhbmdlIHVzZWQgYnkgdGhlIGF1dG9maXggbG9naWMuICovXHJcbiAgcmFuZ2U/OiBSYW5nZTtcclxuICAvKiogRVNUcmVlIG5vZGUgdHlwZS4gKi9cclxuICB0eXBlOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKiBDYXB0dXJlZCByZXBvcnQgbWV0YWRhdGEgYXNzZXJ0ZWQgYnkgdGhlIHVuaXQgdGVzdHMuICovXHJcbmludGVyZmFjZSBSZXBvcnRFbnRyeSB7XHJcbiAgLyoqIEZpeCBjYWxsYmFjayBjYXB0dXJlZCBmcm9tIHRoZSBydWxlIHJlcG9ydCBkZXNjcmlwdG9yLiAqL1xyXG4gIGZpeDogbnVsbCB8IFJ1bGUuUmVwb3J0Rml4ZXIgfCB1bmRlZmluZWQ7XHJcbiAgLyoqIE1lc3NhZ2UgaWRlbnRpZmllciByZXBvcnRlZCBieSB0aGUgcnVsZS4gKi9cclxuICBtZXNzYWdlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAvKiogTm9kZSB0eXBlIGNhcHR1cmVkIGZyb20gdGhlIHJlcG9ydCBkZXNjcmlwdG9yLiAqL1xyXG4gIG5vZGVUeXBlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKiBDYXB0dXJlZCByZXBvcnRzIGFuZCBtb2NrIGNvbnRleHQgcmV0dXJuZWQgZnJvbSBgY3JlYXRlQ29udGV4dGAuICovXHJcbmludGVyZmFjZSBSdWxlQ29udGV4dFN0YXRlIHtcclxuICAvKiogTW9jayBydWxlIGNvbnRleHQgcGFzc2VkIGludG8gdGhlIHJ1bGUgdW5kZXIgdGVzdC4gKi9cclxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0O1xyXG4gIC8qKiBSZXBvcnRzIGNhcHR1cmVkIGR1cmluZyBydWxlIGV4ZWN1dGlvbi4gKi9cclxuICByZXBvcnRzOiBSZXBvcnRFbnRyeVtdO1xyXG59XHJcblxyXG4vKipcclxuICogQnVpbGRzIGEgbW9jayBFU0xpbnQgY29udGV4dCBmb3IgdGhlIHJ1bGUgdGVzdHMuXHJcbiAqIEBwYXJhbSBzb3VyY2VUZXh0IEZ1bGwgc291cmNlIHRleHQgdXNlZCBieSB0aGUgbW9jayBzb3VyY2UgY29kZSBvYmplY3QuXHJcbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgdGhhdCB0d2VhayB0aGUgbW9jayBzb3VyY2UgY29kZSBzaGFwZS5cclxuICogQHJldHVybnMgVGhlIG1vY2sgY29udGV4dCBhbmQgY2FwdHVyZWQgcmVwb3J0cy5cclxuICogQGV4YW1wbGUgQ3JlYXRlIGEgY29udGV4dCB3aXRoIHRoZSBkZWZhdWx0IHNvdXJjZSB0ZXh0IGFjY2Vzcy5cclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCB7IGNvbnRleHQsIHJlcG9ydHMgfSA9IGNyZWF0ZUNvbnRleHQoXCJjb25zdCB2YWx1ZSA9IDE7XCIpO1xyXG4gKiBgYGBcclxuICovXHJcbmNvbnN0IGNyZWF0ZUNvbnRleHQgPSAoXHJcbiAgc291cmNlVGV4dDogc3RyaW5nLFxyXG4gIG9wdGlvbnM/OiBDb250ZXh0T3B0aW9ucyxcclxuKTogUnVsZUNvbnRleHRTdGF0ZSA9PiB7XHJcbiAgY29uc3QgcmVwb3J0czogUmVwb3J0RW50cnlbXSA9IFtdO1xyXG4gIGNvbnN0IHNvdXJjZUNvZGUgPSB7XHJcbiAgICBnZXRUZXh0OiAobm9kZT86IE1vY2tOb2RlKTogc3RyaW5nID0+IHtcclxuICAgICAgaWYgKG5vZGU/LnJhbmdlID09PSB2b2lkIDApIHtcclxuICAgICAgICByZXR1cm4gc291cmNlVGV4dDtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHNvdXJjZVRleHQuc2xpY2Uobm9kZS5yYW5nZVswXSwgbm9kZS5yYW5nZVsxXSk7XHJcbiAgICB9LFxyXG4gICAgLi4uKG9wdGlvbnM/Lm9taXRUZXh0ID09PSB0cnVlID8ge30gOiB7IHRleHQ6IHNvdXJjZVRleHQgfSksXHJcbiAgfTtcclxuICBjb25zdCBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0ID0ge1xyXG4gICAgaWQ6IFwibm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIixcclxuICAgIG9wdGlvbnM6IFtdLFxyXG4gICAgcmVwb3J0OiAoZGVzY3JpcHRvcjogUnVsZS5SZXBvcnREZXNjcmlwdG9yKTogdm9pZCA9PiB7XHJcbiAgICAgIGNvbnN0IG1lc3NhZ2VJZCA9XHJcbiAgICAgICAgXCJtZXNzYWdlSWRcIiBpbiBkZXNjcmlwdG9yID8gZGVzY3JpcHRvci5tZXNzYWdlSWQgOiB2b2lkIDA7XHJcbiAgICAgIGNvbnN0IG5vZGUgPSBcIm5vZGVcIiBpbiBkZXNjcmlwdG9yID8gZGVzY3JpcHRvci5ub2RlIDogdm9pZCAwO1xyXG5cclxuICAgICAgcmVwb3J0cy5wdXNoKHtcclxuICAgICAgICBmaXg6IGRlc2NyaXB0b3IuZml4LFxyXG4gICAgICAgIG1lc3NhZ2VJZCxcclxuICAgICAgICBub2RlVHlwZTogbm9kZT8udHlwZSxcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgc291cmNlQ29kZSxcclxuICB9IGFzIHVua25vd24gYXMgUnVsZS5SdWxlQ29udGV4dDtcclxuXHJcbiAgcmV0dXJuIHsgY29udGV4dCwgcmVwb3J0cyB9O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEJ1aWxkcyBhIG1vY2sgdmFyaWFibGUgZGVjbGFyYXRpb24gbm9kZSB3aXRoIHN0YWJsZSBzb3VyY2UgcmFuZ2VzLlxyXG4gKiBAcGFyYW0gaW5wdXQgU291cmNlIGZyYWdtZW50cyB1c2VkIHRvIGJ1aWxkIHRoZSBkZWNsYXJhdGlvbiBub2RlLlxyXG4gKiBAcGFyYW0gaW5wdXQuZGVjbGFyYXRvclRleHRzIEluZGl2aWR1YWwgZGVjbGFyYXRvciBzb3VyY2UgZnJhZ21lbnRzLlxyXG4gKiBAcGFyYW0gaW5wdXQua2luZCBEZWNsYXJhdGlvbiBrZXl3b3JkIHN1Y2ggYXMgYGNvbnN0YCBvciBgbGV0YC5cclxuICogQHBhcmFtIGlucHV0LnNvdXJjZVRleHQgRnVsbCBmaWxlIHNvdXJjZSB1c2VkIHRvIHJlc29sdmUgcmFuZ2VzLlxyXG4gKiBAcGFyYW0gaW5wdXQuc3RhdGVtZW50VGV4dCBFeGFjdCBzdGF0ZW1lbnQgdGV4dCBjb250YWluaW5nIHRoZSBkZWNsYXJhdGlvbi5cclxuICogQHJldHVybnMgQSBtb2NrIHZhcmlhYmxlIGRlY2xhcmF0aW9uIG5vZGUgd2l0aCBsaW5rZWQgZGVjbGFyYXRvciBwYXJlbnRzLlxyXG4gKiBAZXhhbXBsZSBCdWlsZCBhIGRlY2xhcmF0aW9uIHdpdGggdHdvIGRlY2xhcmF0b3JzLlxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGRlY2xhcmF0aW9uID0gY3JlYXRlVmFyaWFibGVEZWNsYXJhdGlvbih7XHJcbiAqICAgZGVjbGFyYXRvclRleHRzOiBbXCJmaXJzdCA9IDFcIiwgXCJzZWNvbmQgPSAyXCJdLFxyXG4gKiAgIGtpbmQ6IFwiY29uc3RcIixcclxuICogICBzb3VyY2VUZXh0OiBcImNvbnN0IGZpcnN0ID0gMSwgc2Vjb25kID0gMjtcIixcclxuICogICBzdGF0ZW1lbnRUZXh0OiBcImNvbnN0IGZpcnN0ID0gMSwgc2Vjb25kID0gMjtcIixcclxuICogfSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuY29uc3QgY3JlYXRlVmFyaWFibGVEZWNsYXJhdGlvbiA9ICh7XHJcbiAgZGVjbGFyYXRvclRleHRzLFxyXG4gIGtpbmQsXHJcbiAgc291cmNlVGV4dCxcclxuICBzdGF0ZW1lbnRUZXh0LFxyXG59OiBDcmVhdGVWYXJpYWJsZURlY2xhcmF0aW9uSW5wdXQpOiBNb2NrTm9kZSA9PiB7XHJcbiAgY29uc3Qgc3RhdGVtZW50T2Zmc2V0ID0gc291cmNlVGV4dC5pbmRleE9mKHN0YXRlbWVudFRleHQpO1xyXG4gIGNvbnN0IHN0YXRlbWVudFJhbmdlOiBSYW5nZSA9IFtcclxuICAgIHN0YXRlbWVudE9mZnNldCArIHN0YXRlbWVudFRleHQuaW5kZXhPZihraW5kKSxcclxuICAgIHN0YXRlbWVudE9mZnNldCArIHN0YXRlbWVudFRleHQubGVuZ3RoLFxyXG4gIF07XHJcbiAgbGV0IFtzZWFyY2hTdGFydF0gPSBzdGF0ZW1lbnRSYW5nZTtcclxuICBjb25zdCBkZWNsYXJhdGlvbnMgPSBkZWNsYXJhdG9yVGV4dHMubWFwKChkZWNsYXJhdG9yVGV4dCkgPT4ge1xyXG4gICAgY29uc3Qgc3RhcnQgPSBzb3VyY2VUZXh0LmluZGV4T2YoZGVjbGFyYXRvclRleHQsIHNlYXJjaFN0YXJ0KTtcclxuICAgIGNvbnN0IHJhbmdlOiBSYW5nZSA9IFtzdGFydCwgc3RhcnQgKyBkZWNsYXJhdG9yVGV4dC5sZW5ndGhdO1xyXG4gICAgY29uc3QgZGVjbGFyYXRpb246IE1vY2tOb2RlID0ge1xyXG4gICAgICByYW5nZSxcclxuICAgICAgdHlwZTogXCJWYXJpYWJsZURlY2xhcmF0b3JcIixcclxuICAgIH07XHJcbiAgICBjb25zdCBbLCByYW5nZUVuZF0gPSByYW5nZTtcclxuXHJcbiAgICBzZWFyY2hTdGFydCA9IHJhbmdlRW5kO1xyXG5cclxuICAgIHJldHVybiBkZWNsYXJhdGlvbjtcclxuICB9KTtcclxuICBjb25zdCBkZWNsYXJhdGlvbk5vZGU6IE1vY2tOb2RlID0ge1xyXG4gICAgZGVjbGFyYXRpb25zLFxyXG4gICAga2luZCxcclxuICAgIHJhbmdlOiBzdGF0ZW1lbnRSYW5nZSxcclxuICAgIHR5cGU6IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiLFxyXG4gIH07XHJcblxyXG4gIGZvciAoY29uc3QgZGVjbGFyYXRpb24gb2YgZGVjbGFyYXRpb25zKSB7XHJcbiAgICBkZWNsYXJhdGlvbi5wYXJlbnQgPSBkZWNsYXJhdGlvbk5vZGU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZGVjbGFyYXRpb25Ob2RlO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEV4ZWN1dGVzIHRoZSBydWxlIGxpc3RlbmVyIGZvciBhIHZhcmlhYmxlIGRlY2xhcmF0aW9uIG5vZGUuXHJcbiAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgZXhlY3V0aW9uIGNvbnRleHQuXHJcbiAqIEBwYXJhbSBub2RlIERlY2xhcmF0aW9uIG5vZGUgcGFzc2VkIHRvIHRoZSBydWxlIGxpc3RlbmVyLlxyXG4gKiBAZXhhbXBsZSBFeGVjdXRlIHRoZSBydWxlIGFnYWluc3QgYSBtb2NrIGRlY2xhcmF0aW9uLlxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IHN0YXRlID0gY3JlYXRlQ29udGV4dChcImNvbnN0IGZpcnN0ID0gMSwgc2Vjb25kID0gMjtcIik7XHJcbiAqIGNvbnN0IGRlY2xhcmF0aW9uID0gY3JlYXRlVmFyaWFibGVEZWNsYXJhdGlvbih7XHJcbiAqICAgZGVjbGFyYXRvclRleHRzOiBbXCJmaXJzdCA9IDFcIiwgXCJzZWNvbmQgPSAyXCJdLFxyXG4gKiAgIGtpbmQ6IFwiY29uc3RcIixcclxuICogICBzb3VyY2VUZXh0OiBcImNvbnN0IGZpcnN0ID0gMSwgc2Vjb25kID0gMjtcIixcclxuICogICBzdGF0ZW1lbnRUZXh0OiBcImNvbnN0IGZpcnN0ID0gMSwgc2Vjb25kID0gMjtcIixcclxuICogfSk7XHJcbiAqIHJ1blJ1bGUoc3RhdGUuY29udGV4dCwgZGVjbGFyYXRpb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmNvbnN0IHJ1blJ1bGUgPSAoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCwgbm9kZTogTW9ja05vZGUpOiB2b2lkID0+IHtcclxuICBjb25zdCBsaXN0ZW5lcnMgPSBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlLmNyZWF0ZShjb250ZXh0KTtcclxuICBjb25zdCBsaXN0ZW5lciA9IGxpc3RlbmVycy5WYXJpYWJsZURlY2xhcmF0aW9uIGFzXHJcbiAgICB8ICgodmFsdWU6IFJ1bGUuTm9kZSkgPT4gdm9pZClcclxuICAgIHwgdW5kZWZpbmVkO1xyXG5cclxuICBsaXN0ZW5lcj8uKG5vZGUgYXMgdW5rbm93biBhcyBSdWxlLk5vZGUpO1xyXG59O1xyXG5cclxuZXhwb3J0IHsgY3JlYXRlQ29udGV4dCwgY3JlYXRlVmFyaWFibGVEZWNsYXJhdGlvbiwgcnVuUnVsZSB9O1xyXG5leHBvcnQgdHlwZSB7IE1vY2tOb2RlIH07XHJcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-multiple-declarators/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAiRnC,4EAA4E;AAC5E,QAAA,MAAM,yBAAyB,EAAE,IAAI,CAAC,UAuBrC,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
/** Report shape used by fix collection helpers. */
|
|
3
|
+
interface FixReportEntry {
|
|
4
|
+
/** Fix helper value captured from a rule report. */
|
|
5
|
+
fix?: null | Rule.ReportFixer | undefined;
|
|
6
|
+
}
|
|
7
|
+
/** Suite name used by the fix-focused no-multiple-declarators tests. */
|
|
8
|
+
declare const ruleFixesSuiteName = "no-multiple-declarators rule fixes";
|
|
9
|
+
/**
|
|
10
|
+
* Collects concrete fixes from captured report entries.
|
|
11
|
+
* @param reports Captured rule reports to evaluate.
|
|
12
|
+
* @returns All concrete fixes produced by the report callbacks.
|
|
13
|
+
* @example Collect fixes from a captured report array.
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const fixes = getFixes([
|
|
16
|
+
* { fix: () => ({ range: [0, 0], text: "const value = 1;" }) },
|
|
17
|
+
* ]);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
declare const getFixes: (reports: readonly FixReportEntry[]) => Rule.Fix[];
|
|
21
|
+
/**
|
|
22
|
+
* Applies fixes to source text from the end of the file toward the start.
|
|
23
|
+
* @param sourceText Original source text.
|
|
24
|
+
* @param fixes Concrete fixes that should be applied.
|
|
25
|
+
* @returns Source text with the fixes applied.
|
|
26
|
+
* @example Apply a replacement fix to source text.
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const output = applyFixes("const first = 1, second = 2;", [
|
|
29
|
+
* { range: [0, 26], text: "const first = 1;\nconst second = 2;" },
|
|
30
|
+
* ]);
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
declare const applyFixes: (sourceText: string, fixes: readonly Rule.Fix[]) => string;
|
|
34
|
+
export { applyFixes, getFixes, ruleFixesSuiteName };
|
|
35
|
+
//# sourceMappingURL=rule.fixes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.fixes.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-multiple-declarators/rule.fixes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,mDAAmD;AACnD,UAAU,cAAc;IACtB,oDAAoD;IACpD,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;CAC3C;AAKD,wEAAwE;AACxE,QAAA,MAAM,kBAAkB,uCAAuC,CAAC;AA6ChE;;;;;;;;;;GAUG;AACH,QAAA,MAAM,QAAQ,GAAI,SAAS,SAAS,cAAc,EAAE,KAAG,IAAI,CAAC,GAAG,EAiB9D,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,UAAU,GAAI,YAAY,MAAM,EAAE,OAAO,SAAS,IAAI,CAAC,GAAG,EAAE,KAAG,MAgBpE,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC"}
|