@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,31 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
/** Combined import work for one module across all matches. */
|
|
3
|
+
interface CombinedImportPlanLike {
|
|
4
|
+
/** Module imported by this plan. */
|
|
5
|
+
moduleSpecifier: string;
|
|
6
|
+
/** Named imports required for this module. */
|
|
7
|
+
names: Set<string>;
|
|
8
|
+
/** Existing import replacement plan when present. */
|
|
9
|
+
update?: {
|
|
10
|
+
/** Existing default import local name. */
|
|
11
|
+
defaultImportName?: string;
|
|
12
|
+
/** Existing named imports already present. */
|
|
13
|
+
existingNamedImports: string[];
|
|
14
|
+
/** Import range to replace. */
|
|
15
|
+
range: [number, number];
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Builds replacement fixes for existing compatible imports.
|
|
20
|
+
* @param combinedPlans Combined plans keyed by module specifier.
|
|
21
|
+
* @param fixer ESLint fixer.
|
|
22
|
+
* @returns Replacement fixes for existing imports.
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* const fixes = buildCombinedUpdateFixes(new Map(), {} as never);
|
|
26
|
+
* void fixes;
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
declare function buildCombinedUpdateFixes(combinedPlans: Map<string, CombinedImportPlanLike>, fixer: Rule.RuleFixer): Rule.Fix[];
|
|
30
|
+
export { buildCombinedUpdateFixes };
|
|
31
|
+
//# sourceMappingURL=fix-import-updates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-import-updates.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/fix-import-updates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAInC,8DAA8D;AAC9D,UAAU,sBAAsB;IAC9B,oCAAoC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,qDAAqD;IACrD,MAAM,CAAC,EAAE;QACP,0CAA0C;QAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,8CAA8C;QAC9C,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,+BAA+B;QAC/B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACzB,CAAC;CACH;AAED;;;;;;;;;;GAUG;AACH,iBAAS,wBAAwB,CAC/B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAClD,KAAK,EAAE,IAAI,CAAC,SAAS,GACpB,IAAI,CAAC,GAAG,EAAE,CAMZ;AAoCD,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { buildImportStatement } from "./fix-import-statements.js";
|
|
2
|
+
/**
|
|
3
|
+
* Builds replacement fixes for existing compatible imports.
|
|
4
|
+
* @param combinedPlans Combined plans keyed by module specifier.
|
|
5
|
+
* @param fixer ESLint fixer.
|
|
6
|
+
* @returns Replacement fixes for existing imports.
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const fixes = buildCombinedUpdateFixes(new Map(), {} as never);
|
|
10
|
+
* void fixes;
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
function buildCombinedUpdateFixes(combinedPlans, fixer) {
|
|
14
|
+
return [...combinedPlans.values()].flatMap((plan) => {
|
|
15
|
+
const updateFix = toCombinedUpdateFix(plan, fixer);
|
|
16
|
+
return updateFix === void 0 ? [] : [updateFix];
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Builds a replacement fix for one combined update plan.
|
|
21
|
+
* @param plan Combined import plan for one module.
|
|
22
|
+
* @param fixer ESLint fixer.
|
|
23
|
+
* @returns Replacement fix when the module already has a compatible import.
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const fix = toCombinedUpdateFix({ moduleSpecifier: "./x", names: new Set() } as never, {} as never);
|
|
27
|
+
* void fix;
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
function toCombinedUpdateFix(plan, fixer) {
|
|
31
|
+
const { moduleSpecifier, names, update } = plan;
|
|
32
|
+
if (update === void 0) {
|
|
33
|
+
return void 0;
|
|
34
|
+
}
|
|
35
|
+
const { defaultImportName, existingNamedImports, range } = update;
|
|
36
|
+
const mergedNames = [
|
|
37
|
+
...new Set([...names, ...existingNamedImports]),
|
|
38
|
+
].toSorted();
|
|
39
|
+
const statementText = buildImportStatement(moduleSpecifier, defaultImportName, mergedNames);
|
|
40
|
+
return fixer.replaceTextRange(range, statementText);
|
|
41
|
+
}
|
|
42
|
+
export { buildCombinedUpdateFixes };
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4LWltcG9ydC11cGRhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3ByZWZlci12aS1tb2NrZWQtaW1wb3J0L2ZpeC1pbXBvcnQtdXBkYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQW1CL0Q7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsd0JBQXdCLENBQy9CLGFBQWtELEVBQ2xELEtBQXFCO0lBRXJCLE9BQU8sQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2xELE1BQU0sU0FBUyxHQUFHLG1CQUFtQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVuRCxPQUFPLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLG1CQUFtQixDQUMxQixJQUE0QixFQUM1QixLQUFxQjtJQUVyQixNQUFNLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFFaEQsSUFBSSxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ2xFLE1BQU0sV0FBVyxHQUFHO1FBQ2xCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLG9CQUFvQixDQUFDLENBQUM7S0FDaEQsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNiLE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUN4QyxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLFdBQVcsQ0FDWixDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcclxuXHJcbmltcG9ydCB7IGJ1aWxkSW1wb3J0U3RhdGVtZW50IH0gZnJvbSBcIi4vZml4LWltcG9ydC1zdGF0ZW1lbnRzXCI7XHJcblxyXG4vKiogQ29tYmluZWQgaW1wb3J0IHdvcmsgZm9yIG9uZSBtb2R1bGUgYWNyb3NzIGFsbCBtYXRjaGVzLiAqL1xyXG5pbnRlcmZhY2UgQ29tYmluZWRJbXBvcnRQbGFuTGlrZSB7XHJcbiAgLyoqIE1vZHVsZSBpbXBvcnRlZCBieSB0aGlzIHBsYW4uICovXHJcbiAgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmc7XHJcbiAgLyoqIE5hbWVkIGltcG9ydHMgcmVxdWlyZWQgZm9yIHRoaXMgbW9kdWxlLiAqL1xyXG4gIG5hbWVzOiBTZXQ8c3RyaW5nPjtcclxuICAvKiogRXhpc3RpbmcgaW1wb3J0IHJlcGxhY2VtZW50IHBsYW4gd2hlbiBwcmVzZW50LiAqL1xyXG4gIHVwZGF0ZT86IHtcclxuICAgIC8qKiBFeGlzdGluZyBkZWZhdWx0IGltcG9ydCBsb2NhbCBuYW1lLiAqL1xyXG4gICAgZGVmYXVsdEltcG9ydE5hbWU/OiBzdHJpbmc7XHJcbiAgICAvKiogRXhpc3RpbmcgbmFtZWQgaW1wb3J0cyBhbHJlYWR5IHByZXNlbnQuICovXHJcbiAgICBleGlzdGluZ05hbWVkSW1wb3J0czogc3RyaW5nW107XHJcbiAgICAvKiogSW1wb3J0IHJhbmdlIHRvIHJlcGxhY2UuICovXHJcbiAgICByYW5nZTogW251bWJlciwgbnVtYmVyXTtcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogQnVpbGRzIHJlcGxhY2VtZW50IGZpeGVzIGZvciBleGlzdGluZyBjb21wYXRpYmxlIGltcG9ydHMuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW5zIENvbWJpbmVkIHBsYW5zIGtleWVkIGJ5IG1vZHVsZSBzcGVjaWZpZXIuXHJcbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIuXHJcbiAqIEByZXR1cm5zIFJlcGxhY2VtZW50IGZpeGVzIGZvciBleGlzdGluZyBpbXBvcnRzLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGZpeGVzID0gYnVpbGRDb21iaW5lZFVwZGF0ZUZpeGVzKG5ldyBNYXAoKSwge30gYXMgbmV2ZXIpO1xyXG4gKiB2b2lkIGZpeGVzO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGJ1aWxkQ29tYmluZWRVcGRhdGVGaXhlcyhcclxuICBjb21iaW5lZFBsYW5zOiBNYXA8c3RyaW5nLCBDb21iaW5lZEltcG9ydFBsYW5MaWtlPixcclxuICBmaXhlcjogUnVsZS5SdWxlRml4ZXIsXHJcbik6IFJ1bGUuRml4W10ge1xyXG4gIHJldHVybiBbLi4uY29tYmluZWRQbGFucy52YWx1ZXMoKV0uZmxhdE1hcCgocGxhbikgPT4ge1xyXG4gICAgY29uc3QgdXBkYXRlRml4ID0gdG9Db21iaW5lZFVwZGF0ZUZpeChwbGFuLCBmaXhlcik7XHJcblxyXG4gICAgcmV0dXJuIHVwZGF0ZUZpeCA9PT0gdm9pZCAwID8gW10gOiBbdXBkYXRlRml4XTtcclxuICB9KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEJ1aWxkcyBhIHJlcGxhY2VtZW50IGZpeCBmb3Igb25lIGNvbWJpbmVkIHVwZGF0ZSBwbGFuLlxyXG4gKiBAcGFyYW0gcGxhbiBDb21iaW5lZCBpbXBvcnQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIGZpeGVyIEVTTGludCBmaXhlci5cclxuICogQHJldHVybnMgUmVwbGFjZW1lbnQgZml4IHdoZW4gdGhlIG1vZHVsZSBhbHJlYWR5IGhhcyBhIGNvbXBhdGlibGUgaW1wb3J0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGZpeCA9IHRvQ29tYmluZWRVcGRhdGVGaXgoeyBtb2R1bGVTcGVjaWZpZXI6IFwiLi94XCIsIG5hbWVzOiBuZXcgU2V0KCkgfSBhcyBuZXZlciwge30gYXMgbmV2ZXIpO1xyXG4gKiB2b2lkIGZpeDtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiB0b0NvbWJpbmVkVXBkYXRlRml4KFxyXG4gIHBsYW46IENvbWJpbmVkSW1wb3J0UGxhbkxpa2UsXHJcbiAgZml4ZXI6IFJ1bGUuUnVsZUZpeGVyLFxyXG4pOiBSdWxlLkZpeCB8IHVuZGVmaW5lZCB7XHJcbiAgY29uc3QgeyBtb2R1bGVTcGVjaWZpZXIsIG5hbWVzLCB1cGRhdGUgfSA9IHBsYW47XHJcblxyXG4gIGlmICh1cGRhdGUgPT09IHZvaWQgMCkge1xyXG4gICAgcmV0dXJuIHZvaWQgMDtcclxuICB9XHJcblxyXG4gIGNvbnN0IHsgZGVmYXVsdEltcG9ydE5hbWUsIGV4aXN0aW5nTmFtZWRJbXBvcnRzLCByYW5nZSB9ID0gdXBkYXRlO1xyXG4gIGNvbnN0IG1lcmdlZE5hbWVzID0gW1xyXG4gICAgLi4ubmV3IFNldChbLi4ubmFtZXMsIC4uLmV4aXN0aW5nTmFtZWRJbXBvcnRzXSksXHJcbiAgXS50b1NvcnRlZCgpO1xyXG4gIGNvbnN0IHN0YXRlbWVudFRleHQgPSBidWlsZEltcG9ydFN0YXRlbWVudChcclxuICAgIG1vZHVsZVNwZWNpZmllcixcclxuICAgIGRlZmF1bHRJbXBvcnROYW1lLFxyXG4gICAgbWVyZ2VkTmFtZXMsXHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuIGZpeGVyLnJlcGxhY2VUZXh0UmFuZ2UocmFuZ2UsIHN0YXRlbWVudFRleHQpO1xyXG59XHJcblxyXG5leHBvcnQgeyBidWlsZENvbWJpbmVkVXBkYXRlRml4ZXMgfTtcclxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
import type { RuleMatch } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Builds shared import fixes for every file match.
|
|
5
|
+
* @param matches Autofix contexts produced by the matcher.
|
|
6
|
+
* @param fixer ESLint fixer.
|
|
7
|
+
* @returns Import fixes de-duplicated by module and insertion site.
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const fixes = buildCombinedImportFixes([], {} as never);
|
|
11
|
+
* void fixes;
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
declare function buildCombinedImportFixes(matches: RuleMatch[], fixer: Rule.RuleFixer): Rule.Fix[];
|
|
15
|
+
export { buildCombinedImportFixes };
|
|
16
|
+
//# sourceMappingURL=fix-imports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-imports.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/fix-imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAsDzC;;;;;;;;;;GAUG;AACH,iBAAS,wBAAwB,CAC/B,OAAO,EAAE,SAAS,EAAE,EACpB,KAAK,EAAE,IAAI,CAAC,SAAS,GACpB,IAAI,CAAC,GAAG,EAAE,CASZ;AAoND,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { buildImportStatement } from "./fix-import-statements.js";
|
|
2
|
+
import { buildCombinedUpdateFixes } from "./fix-import-updates.js";
|
|
3
|
+
/**
|
|
4
|
+
* Adds one import statement to its insertion group.
|
|
5
|
+
* @param insertGroups Import statements grouped by insertion point.
|
|
6
|
+
* @param plan Combined import plan for one module.
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* addInsertStatement(new Map(), { moduleSpecifier: "./x", names: new Set(["a"]) } as never);
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
function addInsertStatement(insertGroups, plan) {
|
|
13
|
+
const sortedNames = [...plan.names].toSorted();
|
|
14
|
+
if (sortedNames.length === 0 || plan.update !== void 0) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const key = getInsertGroupKey(plan.afterRange);
|
|
18
|
+
const group = insertGroups.get(key) ?? createInsertGroup(plan.afterRange);
|
|
19
|
+
group.statements.push(buildImportStatement(plan.moduleSpecifier, void 0, sortedNames));
|
|
20
|
+
group.statements.sort((left, right) => left.localeCompare(right));
|
|
21
|
+
insertGroups.set(key, group);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Builds shared import fixes for every file match.
|
|
25
|
+
* @param matches Autofix contexts produced by the matcher.
|
|
26
|
+
* @param fixer ESLint fixer.
|
|
27
|
+
* @returns Import fixes de-duplicated by module and insertion site.
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const fixes = buildCombinedImportFixes([], {} as never);
|
|
31
|
+
* void fixes;
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
function buildCombinedImportFixes(matches, fixer) {
|
|
35
|
+
const newline = matches[0]?.newline ?? "\n";
|
|
36
|
+
const combinedPlans = combineImportPlans(matches);
|
|
37
|
+
const insertGroups = collectInsertGroups(combinedPlans);
|
|
38
|
+
return [
|
|
39
|
+
...buildCombinedUpdateFixes(combinedPlans, fixer),
|
|
40
|
+
...buildInsertGroupFixes(insertGroups, fixer, newline),
|
|
41
|
+
];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Builds grouped insertion fixes for new imports.
|
|
45
|
+
* @param insertGroups Import statements grouped by insertion site.
|
|
46
|
+
* @param fixer ESLint fixer.
|
|
47
|
+
* @param newline Preferred file newline.
|
|
48
|
+
* @returns Insert fixes for new imports.
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const fixes = buildInsertGroupFixes(new Map(), {} as never, "\n");
|
|
52
|
+
* void fixes;
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
function buildInsertGroupFixes(insertGroups, fixer, newline) {
|
|
56
|
+
return [...insertGroups.values()].map((group) => group.afterRange === void 0
|
|
57
|
+
? fixer.insertTextBeforeRange([0, 0], `${group.statements.join(newline)}${newline}${newline}`)
|
|
58
|
+
: fixer.insertTextAfterRange(group.afterRange, `${newline}${group.statements.join(newline)}`));
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Collects insert groups keyed by insertion point.
|
|
62
|
+
* @param combinedPlans Combined plans keyed by module specifier.
|
|
63
|
+
* @returns Import statements grouped by insertion point.
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* const groups = collectInsertGroups(new Map());
|
|
67
|
+
* void groups;
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
function collectInsertGroups(combinedPlans) {
|
|
71
|
+
const insertGroups = new Map();
|
|
72
|
+
for (const plan of combinedPlans.values()) {
|
|
73
|
+
addInsertStatement(insertGroups, plan);
|
|
74
|
+
}
|
|
75
|
+
return insertGroups;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Combines import plans across every file match.
|
|
79
|
+
* @param matches Autofix contexts produced by the matcher.
|
|
80
|
+
* @returns Combined plans keyed by module specifier.
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* const plans = combineImportPlans([]);
|
|
84
|
+
* void plans;
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
function combineImportPlans(matches) {
|
|
88
|
+
const combinedPlans = new Map();
|
|
89
|
+
for (const match of matches) {
|
|
90
|
+
mergeImportPlan(combinedPlans, match);
|
|
91
|
+
}
|
|
92
|
+
return combinedPlans;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Creates the initial combined plan for one match.
|
|
96
|
+
* @param match Autofix context produced by the matcher.
|
|
97
|
+
* @returns Combined import plan seed.
|
|
98
|
+
* @example
|
|
99
|
+
* ```typescript
|
|
100
|
+
* const plan = createCombinedImportPlan({ moduleSpecifier: "./x", importPlan: { names: [] } } as never);
|
|
101
|
+
* void plan;
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
function createCombinedImportPlan(match) {
|
|
105
|
+
const combinedPlan = {
|
|
106
|
+
moduleSpecifier: match.moduleSpecifier,
|
|
107
|
+
names: new Set(match.importPlan.names),
|
|
108
|
+
};
|
|
109
|
+
if (match.importPlan.insert?.afterRange !== void 0) {
|
|
110
|
+
combinedPlan.afterRange = match.importPlan.insert.afterRange;
|
|
111
|
+
}
|
|
112
|
+
if (match.importPlan.update !== void 0) {
|
|
113
|
+
combinedPlan.update = match.importPlan.update;
|
|
114
|
+
}
|
|
115
|
+
return combinedPlan;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Creates an insertion group for one location.
|
|
119
|
+
* @param afterRange Insert location for the group.
|
|
120
|
+
* @returns Insert group seed.
|
|
121
|
+
* @example
|
|
122
|
+
* ```typescript
|
|
123
|
+
* const group = createInsertGroup(void 0);
|
|
124
|
+
* void group;
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
function createInsertGroup(afterRange) {
|
|
128
|
+
return afterRange === void 0
|
|
129
|
+
? { statements: [] }
|
|
130
|
+
: { afterRange, statements: [] };
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Creates a stable key for an insert location.
|
|
134
|
+
* @param afterRange Insert location when a new import must be inserted.
|
|
135
|
+
* @returns Stable key for the insertion site.
|
|
136
|
+
* @example
|
|
137
|
+
* ```typescript
|
|
138
|
+
* const key = getInsertGroupKey(void 0);
|
|
139
|
+
* void key;
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
function getInsertGroupKey(afterRange) {
|
|
143
|
+
return afterRange === void 0 ? "TOP" : `${afterRange[0]}:${afterRange[1]}`;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Merges one match into the combined import-plan map.
|
|
147
|
+
* @param combinedPlans Combined plans keyed by module specifier.
|
|
148
|
+
* @param match Autofix context produced by the matcher.
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* mergeImportPlan(new Map(), {} as never);
|
|
152
|
+
* ```
|
|
153
|
+
*/
|
|
154
|
+
function mergeImportPlan(combinedPlans, match) {
|
|
155
|
+
const combinedPlan = combinedPlans.get(match.moduleSpecifier) ?? createCombinedImportPlan(match);
|
|
156
|
+
mergeImportPlanInsertRange(combinedPlan, match);
|
|
157
|
+
mergeImportPlanNames(combinedPlan, match.importPlan.names);
|
|
158
|
+
mergeImportPlanUpdate(combinedPlan, match);
|
|
159
|
+
combinedPlans.set(match.moduleSpecifier, combinedPlan);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Merges the first discovered insert range for a module.
|
|
163
|
+
* @param combinedPlan Combined plan for one module.
|
|
164
|
+
* @param match Autofix context produced by the matcher.
|
|
165
|
+
* @example
|
|
166
|
+
* ```typescript
|
|
167
|
+
* mergeImportPlanInsertRange({ moduleSpecifier: "./x", names: new Set() } as never, {} as never);
|
|
168
|
+
* ```
|
|
169
|
+
*/
|
|
170
|
+
function mergeImportPlanInsertRange(combinedPlan, match) {
|
|
171
|
+
if (combinedPlan.afterRange === void 0 &&
|
|
172
|
+
match.importPlan.insert?.afterRange !== void 0) {
|
|
173
|
+
combinedPlan.afterRange = match.importPlan.insert.afterRange;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Merges discovered import names for a module.
|
|
178
|
+
* @param combinedPlan Combined plan for one module.
|
|
179
|
+
* @param names Additional import names.
|
|
180
|
+
* @example
|
|
181
|
+
* ```typescript
|
|
182
|
+
* mergeImportPlanNames({ moduleSpecifier: "./x", names: new Set() } as never, ["a"]);
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
function mergeImportPlanNames(combinedPlan, names) {
|
|
186
|
+
for (const name of names) {
|
|
187
|
+
combinedPlan.names.add(name);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Merges the first discovered update plan for a module.
|
|
192
|
+
* @param combinedPlan Combined plan for one module.
|
|
193
|
+
* @param match Autofix context produced by the matcher.
|
|
194
|
+
* @example
|
|
195
|
+
* ```typescript
|
|
196
|
+
* mergeImportPlanUpdate({ moduleSpecifier: "./x", names: new Set() } as never, {} as never);
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
function mergeImportPlanUpdate(combinedPlan, match) {
|
|
200
|
+
if (combinedPlan.update === void 0 && match.importPlan.update !== void 0) {
|
|
201
|
+
combinedPlan.update = match.importPlan.update;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
export { buildCombinedImportFixes };
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4LWltcG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpLW1vY2tlZC1pbXBvcnQvZml4LWltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFzQmhFOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FDekIsWUFBc0MsRUFDdEMsSUFBd0I7SUFFeEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUUvQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUxRSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbkIsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FDaEUsQ0FBQztJQUNGLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBUyx3QkFBd0IsQ0FDL0IsT0FBb0IsRUFDcEIsS0FBcUI7SUFFckIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUM7SUFDNUMsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEQsTUFBTSxZQUFZLEdBQUcsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFeEQsT0FBTztRQUNMLEdBQUcsd0JBQXdCLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQztRQUNqRCxHQUFHLHFCQUFxQixDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO0tBQ3ZELENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFTLHFCQUFxQixDQUM1QixZQUFzQyxFQUN0QyxLQUFxQixFQUNyQixPQUFzQjtJQUV0QixPQUFPLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUM5QyxLQUFLLENBQUMsVUFBVSxLQUFLLEtBQUssQ0FBQztRQUN6QixDQUFDLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUN6QixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDTixHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sR0FBRyxPQUFPLEVBQUUsQ0FDeEQ7UUFDSCxDQUFDLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUN4QixLQUFLLENBQUMsVUFBVSxFQUNoQixHQUFHLE9BQU8sR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUM5QyxDQUNOLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FDMUIsYUFBOEM7SUFFOUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7SUFFcEQsS0FBSyxNQUFNLElBQUksSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUMxQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGtCQUFrQixDQUN6QixPQUFvQjtJQUVwQixNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQztJQUU1RCxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzVCLGVBQWUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLHdCQUF3QixDQUFDLEtBQWdCO0lBQ2hELE1BQU0sWUFBWSxHQUF1QjtRQUN2QyxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7UUFDdEMsS0FBSyxFQUFFLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0tBQ3ZDLENBQUM7SUFFRixJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ25ELFlBQVksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQy9ELENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkMsWUFBWSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNoRCxDQUFDO0lBRUQsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsaUJBQWlCLENBQUMsVUFBNkI7SUFDdEQsT0FBTyxVQUFVLEtBQUssS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUU7UUFDcEIsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUNyQyxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FBQyxVQUE2QjtJQUN0RCxPQUFPLFVBQVUsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUM3RSxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGVBQWUsQ0FDdEIsYUFBOEMsRUFDOUMsS0FBZ0I7SUFFaEIsTUFBTSxZQUFZLEdBQ2hCLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTlFLDBCQUEwQixDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRCxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0MsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsMEJBQTBCLENBQ2pDLFlBQWdDLEVBQ2hDLEtBQWdCO0lBRWhCLElBQ0UsWUFBWSxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUM7UUFDbEMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxLQUFLLEtBQUssQ0FBQyxFQUM5QyxDQUFDO1FBQ0QsWUFBWSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDL0QsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsb0JBQW9CLENBQzNCLFlBQWdDLEVBQ2hDLEtBQWU7SUFFZixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHFCQUFxQixDQUM1QixZQUFnQyxFQUNoQyxLQUFnQjtJQUVoQixJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6RSxZQUFZLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQ2hELENBQUM7QUFDSCxDQUFDO0FBRUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IFJhbmdlIH0gZnJvbSBcIi4vbWF0Y2gtaGVscGVyc1wiO1xyXG5pbXBvcnQgdHlwZSB7IFJ1bGVNYXRjaCB9IGZyb20gXCIuL3R5cGVzXCI7XHJcblxyXG5pbXBvcnQgeyBidWlsZEltcG9ydFN0YXRlbWVudCB9IGZyb20gXCIuL2ZpeC1pbXBvcnQtc3RhdGVtZW50c1wiO1xyXG5pbXBvcnQgeyBidWlsZENvbWJpbmVkVXBkYXRlRml4ZXMgfSBmcm9tIFwiLi9maXgtaW1wb3J0LXVwZGF0ZXNcIjtcclxuXHJcbi8qKiBDb21iaW5lZCBpbXBvcnQgd29yayBmb3Igb25lIG1vZHVsZSBhY3Jvc3MgYWxsIG1hdGNoZXMuICovXHJcbmludGVyZmFjZSBDb21iaW5lZEltcG9ydFBsYW4ge1xyXG4gIC8qKiBJbnNlcnQgbG9jYXRpb24gZm9yIGEgbmV3IGltcG9ydC4gKi9cclxuICBhZnRlclJhbmdlPzogUmFuZ2U7XHJcbiAgLyoqIE1vZHVsZSBpbXBvcnRlZCBieSB0aGlzIHBsYW4uICovXHJcbiAgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmc7XHJcbiAgLyoqIE5hbWVkIGltcG9ydHMgcmVxdWlyZWQgZm9yIHRoaXMgbW9kdWxlLiAqL1xyXG4gIG5hbWVzOiBTZXQ8c3RyaW5nPjtcclxuICAvKiogRXhpc3RpbmcgaW1wb3J0IHJlcGxhY2VtZW50IHBsYW4gd2hlbiBwcmVzZW50LiAqL1xyXG4gIHVwZGF0ZT86IE5vbk51bGxhYmxlPFJ1bGVNYXRjaFtcImltcG9ydFBsYW5cIl1bXCJ1cGRhdGVcIl0+O1xyXG59XHJcblxyXG4vKiogSW1wb3J0IHN0YXRlbWVudHMgZ3JvdXBlZCBieSBpbnNlcnRpb24gcG9pbnQuICovXHJcbmludGVyZmFjZSBJbnNlcnRHcm91cCB7XHJcbiAgLyoqIEluc2VydCBsb2NhdGlvbiBmb3IgdGhpcyBncm91cC4gKi9cclxuICBhZnRlclJhbmdlPzogUmFuZ2U7XHJcbiAgLyoqIFN0YXRlbWVudHMgZW1pdHRlZCBhdCB0aGUgc2FtZSBpbnNlcnRpb24gcG9pbnQuICovXHJcbiAgc3RhdGVtZW50czogc3RyaW5nW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRzIG9uZSBpbXBvcnQgc3RhdGVtZW50IHRvIGl0cyBpbnNlcnRpb24gZ3JvdXAuXHJcbiAqIEBwYXJhbSBpbnNlcnRHcm91cHMgSW1wb3J0IHN0YXRlbWVudHMgZ3JvdXBlZCBieSBpbnNlcnRpb24gcG9pbnQuXHJcbiAqIEBwYXJhbSBwbGFuIENvbWJpbmVkIGltcG9ydCBwbGFuIGZvciBvbmUgbW9kdWxlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGFkZEluc2VydFN0YXRlbWVudChuZXcgTWFwKCksIHsgbW9kdWxlU3BlY2lmaWVyOiBcIi4veFwiLCBuYW1lczogbmV3IFNldChbXCJhXCJdKSB9IGFzIG5ldmVyKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBhZGRJbnNlcnRTdGF0ZW1lbnQoXHJcbiAgaW5zZXJ0R3JvdXBzOiBNYXA8c3RyaW5nLCBJbnNlcnRHcm91cD4sXHJcbiAgcGxhbjogQ29tYmluZWRJbXBvcnRQbGFuLFxyXG4pOiB2b2lkIHtcclxuICBjb25zdCBzb3J0ZWROYW1lcyA9IFsuLi5wbGFuLm5hbWVzXS50b1NvcnRlZCgpO1xyXG5cclxuICBpZiAoc29ydGVkTmFtZXMubGVuZ3RoID09PSAwIHx8IHBsYW4udXBkYXRlICE9PSB2b2lkIDApIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGNvbnN0IGtleSA9IGdldEluc2VydEdyb3VwS2V5KHBsYW4uYWZ0ZXJSYW5nZSk7XHJcbiAgY29uc3QgZ3JvdXAgPSBpbnNlcnRHcm91cHMuZ2V0KGtleSkgPz8gY3JlYXRlSW5zZXJ0R3JvdXAocGxhbi5hZnRlclJhbmdlKTtcclxuXHJcbiAgZ3JvdXAuc3RhdGVtZW50cy5wdXNoKFxyXG4gICAgYnVpbGRJbXBvcnRTdGF0ZW1lbnQocGxhbi5tb2R1bGVTcGVjaWZpZXIsIHZvaWQgMCwgc29ydGVkTmFtZXMpLFxyXG4gICk7XHJcbiAgZ3JvdXAuc3RhdGVtZW50cy5zb3J0KChsZWZ0LCByaWdodCkgPT4gbGVmdC5sb2NhbGVDb21wYXJlKHJpZ2h0KSk7XHJcbiAgaW5zZXJ0R3JvdXBzLnNldChrZXksIGdyb3VwKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEJ1aWxkcyBzaGFyZWQgaW1wb3J0IGZpeGVzIGZvciBldmVyeSBmaWxlIG1hdGNoLlxyXG4gKiBAcGFyYW0gbWF0Y2hlcyBBdXRvZml4IGNvbnRleHRzIHByb2R1Y2VkIGJ5IHRoZSBtYXRjaGVyLlxyXG4gKiBAcGFyYW0gZml4ZXIgRVNMaW50IGZpeGVyLlxyXG4gKiBAcmV0dXJucyBJbXBvcnQgZml4ZXMgZGUtZHVwbGljYXRlZCBieSBtb2R1bGUgYW5kIGluc2VydGlvbiBzaXRlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGZpeGVzID0gYnVpbGRDb21iaW5lZEltcG9ydEZpeGVzKFtdLCB7fSBhcyBuZXZlcik7XHJcbiAqIHZvaWQgZml4ZXM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRDb21iaW5lZEltcG9ydEZpeGVzKFxyXG4gIG1hdGNoZXM6IFJ1bGVNYXRjaFtdLFxyXG4gIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcixcclxuKTogUnVsZS5GaXhbXSB7XHJcbiAgY29uc3QgbmV3bGluZSA9IG1hdGNoZXNbMF0/Lm5ld2xpbmUgPz8gXCJcXG5cIjtcclxuICBjb25zdCBjb21iaW5lZFBsYW5zID0gY29tYmluZUltcG9ydFBsYW5zKG1hdGNoZXMpO1xyXG4gIGNvbnN0IGluc2VydEdyb3VwcyA9IGNvbGxlY3RJbnNlcnRHcm91cHMoY29tYmluZWRQbGFucyk7XHJcblxyXG4gIHJldHVybiBbXHJcbiAgICAuLi5idWlsZENvbWJpbmVkVXBkYXRlRml4ZXMoY29tYmluZWRQbGFucywgZml4ZXIpLFxyXG4gICAgLi4uYnVpbGRJbnNlcnRHcm91cEZpeGVzKGluc2VydEdyb3VwcywgZml4ZXIsIG5ld2xpbmUpLFxyXG4gIF07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCdWlsZHMgZ3JvdXBlZCBpbnNlcnRpb24gZml4ZXMgZm9yIG5ldyBpbXBvcnRzLlxyXG4gKiBAcGFyYW0gaW5zZXJ0R3JvdXBzIEltcG9ydCBzdGF0ZW1lbnRzIGdyb3VwZWQgYnkgaW5zZXJ0aW9uIHNpdGUuXHJcbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIuXHJcbiAqIEBwYXJhbSBuZXdsaW5lIFByZWZlcnJlZCBmaWxlIG5ld2xpbmUuXHJcbiAqIEByZXR1cm5zIEluc2VydCBmaXhlcyBmb3IgbmV3IGltcG9ydHMuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZml4ZXMgPSBidWlsZEluc2VydEdyb3VwRml4ZXMobmV3IE1hcCgpLCB7fSBhcyBuZXZlciwgXCJcXG5cIik7XHJcbiAqIHZvaWQgZml4ZXM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRJbnNlcnRHcm91cEZpeGVzKFxyXG4gIGluc2VydEdyb3VwczogTWFwPHN0cmluZywgSW5zZXJ0R3JvdXA+LFxyXG4gIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcixcclxuICBuZXdsaW5lOiBcIlxcblwiIHwgXCJcXHJcXG5cIixcclxuKTogUnVsZS5GaXhbXSB7XHJcbiAgcmV0dXJuIFsuLi5pbnNlcnRHcm91cHMudmFsdWVzKCldLm1hcCgoZ3JvdXApID0+XHJcbiAgICBncm91cC5hZnRlclJhbmdlID09PSB2b2lkIDBcclxuICAgICAgPyBmaXhlci5pbnNlcnRUZXh0QmVmb3JlUmFuZ2UoXHJcbiAgICAgICAgICBbMCwgMF0sXHJcbiAgICAgICAgICBgJHtncm91cC5zdGF0ZW1lbnRzLmpvaW4obmV3bGluZSl9JHtuZXdsaW5lfSR7bmV3bGluZX1gLFxyXG4gICAgICAgIClcclxuICAgICAgOiBmaXhlci5pbnNlcnRUZXh0QWZ0ZXJSYW5nZShcclxuICAgICAgICAgIGdyb3VwLmFmdGVyUmFuZ2UsXHJcbiAgICAgICAgICBgJHtuZXdsaW5lfSR7Z3JvdXAuc3RhdGVtZW50cy5qb2luKG5ld2xpbmUpfWAsXHJcbiAgICAgICAgKSxcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ29sbGVjdHMgaW5zZXJ0IGdyb3VwcyBrZXllZCBieSBpbnNlcnRpb24gcG9pbnQuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW5zIENvbWJpbmVkIHBsYW5zIGtleWVkIGJ5IG1vZHVsZSBzcGVjaWZpZXIuXHJcbiAqIEByZXR1cm5zIEltcG9ydCBzdGF0ZW1lbnRzIGdyb3VwZWQgYnkgaW5zZXJ0aW9uIHBvaW50LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGdyb3VwcyA9IGNvbGxlY3RJbnNlcnRHcm91cHMobmV3IE1hcCgpKTtcclxuICogdm9pZCBncm91cHM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29sbGVjdEluc2VydEdyb3VwcyhcclxuICBjb21iaW5lZFBsYW5zOiBNYXA8c3RyaW5nLCBDb21iaW5lZEltcG9ydFBsYW4+LFxyXG4pOiBNYXA8c3RyaW5nLCBJbnNlcnRHcm91cD4ge1xyXG4gIGNvbnN0IGluc2VydEdyb3VwcyA9IG5ldyBNYXA8c3RyaW5nLCBJbnNlcnRHcm91cD4oKTtcclxuXHJcbiAgZm9yIChjb25zdCBwbGFuIG9mIGNvbWJpbmVkUGxhbnMudmFsdWVzKCkpIHtcclxuICAgIGFkZEluc2VydFN0YXRlbWVudChpbnNlcnRHcm91cHMsIHBsYW4pO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGluc2VydEdyb3VwcztcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbWJpbmVzIGltcG9ydCBwbGFucyBhY3Jvc3MgZXZlcnkgZmlsZSBtYXRjaC5cclxuICogQHBhcmFtIG1hdGNoZXMgQXV0b2ZpeCBjb250ZXh0cyBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQHJldHVybnMgQ29tYmluZWQgcGxhbnMga2V5ZWQgYnkgbW9kdWxlIHNwZWNpZmllci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBwbGFucyA9IGNvbWJpbmVJbXBvcnRQbGFucyhbXSk7XHJcbiAqIHZvaWQgcGxhbnM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29tYmluZUltcG9ydFBsYW5zKFxyXG4gIG1hdGNoZXM6IFJ1bGVNYXRjaFtdLFxyXG4pOiBNYXA8c3RyaW5nLCBDb21iaW5lZEltcG9ydFBsYW4+IHtcclxuICBjb25zdCBjb21iaW5lZFBsYW5zID0gbmV3IE1hcDxzdHJpbmcsIENvbWJpbmVkSW1wb3J0UGxhbj4oKTtcclxuXHJcbiAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XHJcbiAgICBtZXJnZUltcG9ydFBsYW4oY29tYmluZWRQbGFucywgbWF0Y2gpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNvbWJpbmVkUGxhbnM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIHRoZSBpbml0aWFsIGNvbWJpbmVkIHBsYW4gZm9yIG9uZSBtYXRjaC5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQHJldHVybnMgQ29tYmluZWQgaW1wb3J0IHBsYW4gc2VlZC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBwbGFuID0gY3JlYXRlQ29tYmluZWRJbXBvcnRQbGFuKHsgbW9kdWxlU3BlY2lmaWVyOiBcIi4veFwiLCBpbXBvcnRQbGFuOiB7IG5hbWVzOiBbXSB9IH0gYXMgbmV2ZXIpO1xyXG4gKiB2b2lkIHBsYW47XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlQ29tYmluZWRJbXBvcnRQbGFuKG1hdGNoOiBSdWxlTWF0Y2gpOiBDb21iaW5lZEltcG9ydFBsYW4ge1xyXG4gIGNvbnN0IGNvbWJpbmVkUGxhbjogQ29tYmluZWRJbXBvcnRQbGFuID0ge1xyXG4gICAgbW9kdWxlU3BlY2lmaWVyOiBtYXRjaC5tb2R1bGVTcGVjaWZpZXIsXHJcbiAgICBuYW1lczogbmV3IFNldChtYXRjaC5pbXBvcnRQbGFuLm5hbWVzKSxcclxuICB9O1xyXG5cclxuICBpZiAobWF0Y2guaW1wb3J0UGxhbi5pbnNlcnQ/LmFmdGVyUmFuZ2UgIT09IHZvaWQgMCkge1xyXG4gICAgY29tYmluZWRQbGFuLmFmdGVyUmFuZ2UgPSBtYXRjaC5pbXBvcnRQbGFuLmluc2VydC5hZnRlclJhbmdlO1xyXG4gIH1cclxuXHJcbiAgaWYgKG1hdGNoLmltcG9ydFBsYW4udXBkYXRlICE9PSB2b2lkIDApIHtcclxuICAgIGNvbWJpbmVkUGxhbi51cGRhdGUgPSBtYXRjaC5pbXBvcnRQbGFuLnVwZGF0ZTtcclxuICB9XHJcblxyXG4gIHJldHVybiBjb21iaW5lZFBsYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGFuIGluc2VydGlvbiBncm91cCBmb3Igb25lIGxvY2F0aW9uLlxyXG4gKiBAcGFyYW0gYWZ0ZXJSYW5nZSBJbnNlcnQgbG9jYXRpb24gZm9yIHRoZSBncm91cC5cclxuICogQHJldHVybnMgSW5zZXJ0IGdyb3VwIHNlZWQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZ3JvdXAgPSBjcmVhdGVJbnNlcnRHcm91cCh2b2lkIDApO1xyXG4gKiB2b2lkIGdyb3VwO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNyZWF0ZUluc2VydEdyb3VwKGFmdGVyUmFuZ2U6IFJhbmdlIHwgdW5kZWZpbmVkKTogSW5zZXJ0R3JvdXAge1xyXG4gIHJldHVybiBhZnRlclJhbmdlID09PSB2b2lkIDBcclxuICAgID8geyBzdGF0ZW1lbnRzOiBbXSB9XHJcbiAgICA6IHsgYWZ0ZXJSYW5nZSwgc3RhdGVtZW50czogW10gfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBzdGFibGUga2V5IGZvciBhbiBpbnNlcnQgbG9jYXRpb24uXHJcbiAqIEBwYXJhbSBhZnRlclJhbmdlIEluc2VydCBsb2NhdGlvbiB3aGVuIGEgbmV3IGltcG9ydCBtdXN0IGJlIGluc2VydGVkLlxyXG4gKiBAcmV0dXJucyBTdGFibGUga2V5IGZvciB0aGUgaW5zZXJ0aW9uIHNpdGUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3Qga2V5ID0gZ2V0SW5zZXJ0R3JvdXBLZXkodm9pZCAwKTtcclxuICogdm9pZCBrZXk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0SW5zZXJ0R3JvdXBLZXkoYWZ0ZXJSYW5nZTogUmFuZ2UgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xyXG4gIHJldHVybiBhZnRlclJhbmdlID09PSB2b2lkIDAgPyBcIlRPUFwiIDogYCR7YWZ0ZXJSYW5nZVswXX06JHthZnRlclJhbmdlWzFdfWA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBNZXJnZXMgb25lIG1hdGNoIGludG8gdGhlIGNvbWJpbmVkIGltcG9ydC1wbGFuIG1hcC5cclxuICogQHBhcmFtIGNvbWJpbmVkUGxhbnMgQ29tYmluZWQgcGxhbnMga2V5ZWQgYnkgbW9kdWxlIHNwZWNpZmllci5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBtZXJnZUltcG9ydFBsYW4obmV3IE1hcCgpLCB7fSBhcyBuZXZlcik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gbWVyZ2VJbXBvcnRQbGFuKFxyXG4gIGNvbWJpbmVkUGxhbnM6IE1hcDxzdHJpbmcsIENvbWJpbmVkSW1wb3J0UGxhbj4sXHJcbiAgbWF0Y2g6IFJ1bGVNYXRjaCxcclxuKTogdm9pZCB7XHJcbiAgY29uc3QgY29tYmluZWRQbGFuID1cclxuICAgIGNvbWJpbmVkUGxhbnMuZ2V0KG1hdGNoLm1vZHVsZVNwZWNpZmllcikgPz8gY3JlYXRlQ29tYmluZWRJbXBvcnRQbGFuKG1hdGNoKTtcclxuXHJcbiAgbWVyZ2VJbXBvcnRQbGFuSW5zZXJ0UmFuZ2UoY29tYmluZWRQbGFuLCBtYXRjaCk7XHJcbiAgbWVyZ2VJbXBvcnRQbGFuTmFtZXMoY29tYmluZWRQbGFuLCBtYXRjaC5pbXBvcnRQbGFuLm5hbWVzKTtcclxuICBtZXJnZUltcG9ydFBsYW5VcGRhdGUoY29tYmluZWRQbGFuLCBtYXRjaCk7XHJcbiAgY29tYmluZWRQbGFucy5zZXQobWF0Y2gubW9kdWxlU3BlY2lmaWVyLCBjb21iaW5lZFBsYW4pO1xyXG59XHJcblxyXG4vKipcclxuICogTWVyZ2VzIHRoZSBmaXJzdCBkaXNjb3ZlcmVkIGluc2VydCByYW5nZSBmb3IgYSBtb2R1bGUuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW4gQ29tYmluZWQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBtZXJnZUltcG9ydFBsYW5JbnNlcnRSYW5nZSh7IG1vZHVsZVNwZWNpZmllcjogXCIuL3hcIiwgbmFtZXM6IG5ldyBTZXQoKSB9IGFzIG5ldmVyLCB7fSBhcyBuZXZlcik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gbWVyZ2VJbXBvcnRQbGFuSW5zZXJ0UmFuZ2UoXHJcbiAgY29tYmluZWRQbGFuOiBDb21iaW5lZEltcG9ydFBsYW4sXHJcbiAgbWF0Y2g6IFJ1bGVNYXRjaCxcclxuKTogdm9pZCB7XHJcbiAgaWYgKFxyXG4gICAgY29tYmluZWRQbGFuLmFmdGVyUmFuZ2UgPT09IHZvaWQgMCAmJlxyXG4gICAgbWF0Y2guaW1wb3J0UGxhbi5pbnNlcnQ/LmFmdGVyUmFuZ2UgIT09IHZvaWQgMFxyXG4gICkge1xyXG4gICAgY29tYmluZWRQbGFuLmFmdGVyUmFuZ2UgPSBtYXRjaC5pbXBvcnRQbGFuLmluc2VydC5hZnRlclJhbmdlO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIE1lcmdlcyBkaXNjb3ZlcmVkIGltcG9ydCBuYW1lcyBmb3IgYSBtb2R1bGUuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW4gQ29tYmluZWQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIG5hbWVzIEFkZGl0aW9uYWwgaW1wb3J0IG5hbWVzLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIG1lcmdlSW1wb3J0UGxhbk5hbWVzKHsgbW9kdWxlU3BlY2lmaWVyOiBcIi4veFwiLCBuYW1lczogbmV3IFNldCgpIH0gYXMgbmV2ZXIsIFtcImFcIl0pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIG1lcmdlSW1wb3J0UGxhbk5hbWVzKFxyXG4gIGNvbWJpbmVkUGxhbjogQ29tYmluZWRJbXBvcnRQbGFuLFxyXG4gIG5hbWVzOiBzdHJpbmdbXSxcclxuKTogdm9pZCB7XHJcbiAgZm9yIChjb25zdCBuYW1lIG9mIG5hbWVzKSB7XHJcbiAgICBjb21iaW5lZFBsYW4ubmFtZXMuYWRkKG5hbWUpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIE1lcmdlcyB0aGUgZmlyc3QgZGlzY292ZXJlZCB1cGRhdGUgcGxhbiBmb3IgYSBtb2R1bGUuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW4gQ29tYmluZWQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBtZXJnZUltcG9ydFBsYW5VcGRhdGUoeyBtb2R1bGVTcGVjaWZpZXI6IFwiLi94XCIsIG5hbWVzOiBuZXcgU2V0KCkgfSBhcyBuZXZlciwge30gYXMgbmV2ZXIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIG1lcmdlSW1wb3J0UGxhblVwZGF0ZShcclxuICBjb21iaW5lZFBsYW46IENvbWJpbmVkSW1wb3J0UGxhbixcclxuICBtYXRjaDogUnVsZU1hdGNoLFxyXG4pOiB2b2lkIHtcclxuICBpZiAoY29tYmluZWRQbGFuLnVwZGF0ZSA9PT0gdm9pZCAwICYmIG1hdGNoLmltcG9ydFBsYW4udXBkYXRlICE9PSB2b2lkIDApIHtcclxuICAgIGNvbWJpbmVkUGxhbi51cGRhdGUgPSBtYXRjaC5pbXBvcnRQbGFuLnVwZGF0ZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IGJ1aWxkQ29tYmluZWRJbXBvcnRGaXhlcyB9O1xyXG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
import type { RuleMatch } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Builds all autofix operations for a single match.
|
|
5
|
+
* @param match Autofix context produced by the matcher.
|
|
6
|
+
* @param fixer ESLint fixer.
|
|
7
|
+
* @returns Combined fix list.
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const fixes = buildFix({} as never, {} as never);
|
|
11
|
+
* void fixes;
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
declare function buildFix(match: RuleMatch, fixer: Rule.RuleFixer): Rule.Fix[];
|
|
15
|
+
/**
|
|
16
|
+
* Builds all autofix operations for every match in a file.
|
|
17
|
+
* @param matches Autofix contexts produced by the matcher.
|
|
18
|
+
* @param fixer ESLint fixer.
|
|
19
|
+
* @returns Combined fix list.
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const fixes = buildFixes([], {} as never);
|
|
23
|
+
* void fixes;
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
declare function buildFixes(matches: RuleMatch[], fixer: Rule.RuleFixer): Rule.Fix[];
|
|
27
|
+
export { buildFix, buildFixes };
|
|
28
|
+
//# sourceMappingURL=fix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/fix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAsCzC;;;;;;;;;;GAUG;AACH,iBAAS,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAKrE;AAED;;;;;;;;;;GAUG;AACH,iBAAS,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAK3E;AA+ID,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { buildImportFixes } from "./fix-import-statements.js";
|
|
2
|
+
import { buildCombinedImportFixes } from "./fix-imports.js";
|
|
3
|
+
/**
|
|
4
|
+
* Builds fixes that inline declaration initializers into factory properties.
|
|
5
|
+
* @param match Autofix context produced by the matcher.
|
|
6
|
+
* @param fixer ESLint fixer.
|
|
7
|
+
* @returns Binding-related fixes.
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const fixes = buildBindingFixes({} as never, {} as never);
|
|
11
|
+
* void fixes;
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
function buildBindingFixes(match, fixer) {
|
|
15
|
+
return match.bindings.flatMap((binding) => {
|
|
16
|
+
const declaration = match.declarations.get(binding.localName);
|
|
17
|
+
if (declaration === void 0) {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
const initializerText = match.sourceText.slice(declaration.initializerRange[0], declaration.initializerRange[1]);
|
|
21
|
+
return [
|
|
22
|
+
fixer.replaceTextRange(binding.propertyRange, `${binding.exportedName}: ${initializerText}`),
|
|
23
|
+
];
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Builds all autofix operations for a single match.
|
|
28
|
+
* @param match Autofix context produced by the matcher.
|
|
29
|
+
* @param fixer ESLint fixer.
|
|
30
|
+
* @returns Combined fix list.
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const fixes = buildFix({} as never, {} as never);
|
|
34
|
+
* void fixes;
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
function buildFix(match, fixer) {
|
|
38
|
+
return [
|
|
39
|
+
...buildImportFixes(match, fixer),
|
|
40
|
+
...buildNonImportFixes(match, fixer),
|
|
41
|
+
];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Builds all autofix operations for every match in a file.
|
|
45
|
+
* @param matches Autofix contexts produced by the matcher.
|
|
46
|
+
* @param fixer ESLint fixer.
|
|
47
|
+
* @returns Combined fix list.
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const fixes = buildFixes([], {} as never);
|
|
51
|
+
* void fixes;
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
function buildFixes(matches, fixer) {
|
|
55
|
+
return [
|
|
56
|
+
...buildCombinedImportFixes(matches, fixer),
|
|
57
|
+
...matches.flatMap((match) => buildNonImportFixes(match, fixer)),
|
|
58
|
+
];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Builds fixes for `mock*` member-expression object rewrites.
|
|
62
|
+
* @param match Autofix context produced by the matcher.
|
|
63
|
+
* @param fixer ESLint fixer.
|
|
64
|
+
* @returns Replacements for member-expression object identifiers.
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* const fixes = buildMemberRewriteFixes({} as never, {} as never);
|
|
68
|
+
* void fixes;
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
function buildMemberRewriteFixes(match, fixer) {
|
|
72
|
+
return match.memberRewrites.map((rewrite) => fixer.replaceTextRange(rewrite.localObjectRange, `vi.mocked(${rewrite.exportedName})`));
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Builds a fix that converts literal mock specifiers to `import("...")`.
|
|
76
|
+
* @param match Autofix context produced by the matcher.
|
|
77
|
+
* @param fixer ESLint fixer.
|
|
78
|
+
* @returns Fixes that normalize the mock specifier argument.
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* const fixes = buildMockSpecifierFixes({} as never, {} as never);
|
|
82
|
+
* void fixes;
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
function buildMockSpecifierFixes(match, fixer) {
|
|
86
|
+
if (match.mockSpecifierIsImportExpression) {
|
|
87
|
+
return [];
|
|
88
|
+
}
|
|
89
|
+
const moduleText = JSON.stringify(match.moduleSpecifier);
|
|
90
|
+
return [
|
|
91
|
+
fixer.replaceTextRange(match.mockSpecifierRange, `import(${moduleText})`),
|
|
92
|
+
];
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Builds all non-import autofix operations for a single match.
|
|
96
|
+
* @param match Autofix context produced by the matcher.
|
|
97
|
+
* @param fixer ESLint fixer.
|
|
98
|
+
* @returns Combined non-import fix list.
|
|
99
|
+
* @example
|
|
100
|
+
* ```typescript
|
|
101
|
+
* const fixes = buildNonImportFixes({} as never, {} as never);
|
|
102
|
+
* void fixes;
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
function buildNonImportFixes(match, fixer) {
|
|
106
|
+
return [
|
|
107
|
+
...buildBindingFixes(match, fixer),
|
|
108
|
+
...buildMemberRewriteFixes(match, fixer),
|
|
109
|
+
...buildMockSpecifierFixes(match, fixer),
|
|
110
|
+
...buildRemovalFixes(match, fixer),
|
|
111
|
+
];
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Builds fixes that remove declarations after inlining.
|
|
115
|
+
* @param match Autofix context produced by the matcher.
|
|
116
|
+
* @param fixer ESLint fixer.
|
|
117
|
+
* @returns Fixes that remove redundant declaration statements.
|
|
118
|
+
* @example
|
|
119
|
+
* ```typescript
|
|
120
|
+
* const fixes = buildRemovalFixes({} as never, {} as never);
|
|
121
|
+
* void fixes;
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
function buildRemovalFixes(match, fixer) {
|
|
125
|
+
const uniqueRanges = getUniqueStatementRanges(match);
|
|
126
|
+
return uniqueRanges.map((statementRange) => {
|
|
127
|
+
const expandedRange = extendRangeToLineBreak(match.sourceText, statementRange);
|
|
128
|
+
return fixer.removeRange(expandedRange);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Extends a statement range to include the trailing line break.
|
|
133
|
+
* @param sourceText Full file content for newline lookup.
|
|
134
|
+
* @param statementRange Start/end offsets for the statement.
|
|
135
|
+
* @returns Statement range extended through the trailing line break.
|
|
136
|
+
* @example
|
|
137
|
+
* ```typescript
|
|
138
|
+
* const range = extendRangeToLineBreak("a\n", [0, 1]);
|
|
139
|
+
* void range;
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
function extendRangeToLineBreak(sourceText, statementRange) {
|
|
143
|
+
const [start, end] = statementRange;
|
|
144
|
+
const nextLineFeedIndex = sourceText.indexOf("\n", end);
|
|
145
|
+
return nextLineFeedIndex === -1
|
|
146
|
+
? [start, sourceText.length]
|
|
147
|
+
: [start, nextLineFeedIndex + 1];
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Returns sorted unique statement ranges for declarations to remove.
|
|
151
|
+
* @param match Autofix context produced by the matcher.
|
|
152
|
+
* @returns Distinct declaration statement ranges to remove.
|
|
153
|
+
* @example
|
|
154
|
+
* ```typescript
|
|
155
|
+
* const ranges = getUniqueStatementRanges({ bindings: [], declarations: new Map() } as never);
|
|
156
|
+
* void ranges;
|
|
157
|
+
* ```
|
|
158
|
+
*/
|
|
159
|
+
function getUniqueStatementRanges(match) {
|
|
160
|
+
const rangeMap = new Map();
|
|
161
|
+
for (const binding of match.bindings) {
|
|
162
|
+
const declaration = match.declarations.get(binding.localName);
|
|
163
|
+
if (declaration !== void 0) {
|
|
164
|
+
const key = `${declaration.statementRange[0]}:${declaration.statementRange[1]}`;
|
|
165
|
+
rangeMap.set(key, declaration.statementRange);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return [...rangeMap.values()];
|
|
169
|
+
}
|
|
170
|
+
export { buildFix, buildFixes };
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3ByZWZlci12aS1tb2NrZWQtaW1wb3J0L2ZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsaUJBQWlCLENBQ3hCLEtBQWdCLEVBQ2hCLEtBQXFCO0lBRXJCLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUN4QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUQsSUFBSSxXQUFXLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FDNUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUMvQixXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQ2hDLENBQUM7UUFDRixPQUFPO1lBQ0wsS0FBSyxDQUFDLGdCQUFnQixDQUNwQixPQUFPLENBQUMsYUFBYSxFQUNyQixHQUFHLE9BQU8sQ0FBQyxZQUFZLEtBQUssZUFBZSxFQUFFLENBQzlDO1NBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLFFBQVEsQ0FBQyxLQUFnQixFQUFFLEtBQXFCO0lBQ3ZELE9BQU87UUFDTCxHQUFHLGdCQUFnQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7UUFDakMsR0FBRyxtQkFBbUIs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SSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckMsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELElBQUksV0FBVyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNoRixRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHR5cGUgeyBSYW5nZSB9IGZyb20gXCIuL21hdGNoLWhlbHBlcnNcIjtcbmltcG9ydCB0eXBlIHsgUnVsZU1hdGNoIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHsgYnVpbGRJbXBvcnRGaXhlcyB9IGZyb20gXCIuL2ZpeC1pbXBvcnQtc3RhdGVtZW50c1wiO1xuaW1wb3J0IHsgYnVpbGRDb21iaW5lZEltcG9ydEZpeGVzIH0gZnJvbSBcIi4vZml4LWltcG9ydHNcIjtcblxuLyoqXG4gKiBCdWlsZHMgZml4ZXMgdGhhdCBpbmxpbmUgZGVjbGFyYXRpb24gaW5pdGlhbGl6ZXJzIGludG8gZmFjdG9yeSBwcm9wZXJ0aWVzLlxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIuXG4gKiBAcmV0dXJucyBCaW5kaW5nLXJlbGF0ZWQgZml4ZXMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZml4ZXMgPSBidWlsZEJpbmRpbmdGaXhlcyh7fSBhcyBuZXZlciwge30gYXMgbmV2ZXIpO1xuICogdm9pZCBmaXhlcztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBidWlsZEJpbmRpbmdGaXhlcyhcbiAgbWF0Y2g6IFJ1bGVNYXRjaCxcbiAgZml4ZXI6IFJ1bGUuUnVsZUZpeGVyLFxuKTogUnVsZS5GaXhbXSB7XG4gIHJldHVybiBtYXRjaC5iaW5kaW5ncy5mbGF0TWFwKChiaW5kaW5nKSA9PiB7XG4gICAgY29uc3QgZGVjbGFyYXRpb24gPSBtYXRjaC5kZWNsYXJhdGlvbnMuZ2V0KGJpbmRpbmcubG9jYWxOYW1lKTtcbiAgICBpZiAoZGVjbGFyYXRpb24gPT09IHZvaWQgMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCBpbml0aWFsaXplclRleHQgPSBtYXRjaC5zb3VyY2VUZXh0LnNsaWNlKFxuICAgICAgZGVjbGFyYXRpb24uaW5pdGlhbGl6ZXJSYW5nZVswXSxcbiAgICAgIGRlY2xhcmF0aW9uLmluaXRpYWxpemVyUmFuZ2VbMV0sXG4gICAgKTtcbiAgICByZXR1cm4gW1xuICAgICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShcbiAgICAgICAgYmluZGluZy5wcm9wZXJ0eVJhbmdlLFxuICAgICAgICBgJHtiaW5kaW5nLmV4cG9ydGVkTmFtZX06ICR7aW5pdGlhbGl6ZXJUZXh0fWAsXG4gICAgICApLFxuICAgIF07XG4gIH0pO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhbGwgYXV0b2ZpeCBvcGVyYXRpb25zIGZvciBhIHNpbmdsZSBtYXRjaC5cbiAqIEBwYXJhbSBtYXRjaCBBdXRvZml4IGNvbnRleHQgcHJvZHVjZWQgYnkgdGhlIG1hdGNoZXIuXG4gKiBAcGFyYW0gZml4ZXIgRVNMaW50IGZpeGVyLlxuICogQHJldHVybnMgQ29tYmluZWQgZml4IGxpc3QuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZml4ZXMgPSBidWlsZEZpeCh7fSBhcyBuZXZlciwge30gYXMgbmV2ZXIpO1xuICogdm9pZCBmaXhlcztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBidWlsZEZpeChtYXRjaDogUnVsZU1hdGNoLCBmaXhlcjogUnVsZS5SdWxlRml4ZXIpOiBSdWxlLkZpeFtdIHtcbiAgcmV0dXJuIFtcbiAgICAuLi5idWlsZEltcG9ydEZpeGVzKG1hdGNoLCBmaXhlciksXG4gICAgLi4uYnVpbGROb25JbXBvcnRGaXhlcyhtYXRjaCwgZml4ZXIpLFxuICBdO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhbGwgYXV0b2ZpeCBvcGVyYXRpb25zIGZvciBldmVyeSBtYXRjaCBpbiBhIGZpbGUuXG4gKiBAcGFyYW0gbWF0Y2hlcyBBdXRvZml4IGNvbnRleHRzIHByb2R1Y2VkIGJ5IHRoZSBtYXRjaGVyLlxuICogQHBhcmFtIGZpeGVyIEVTTGludCBmaXhlci5cbiAqIEByZXR1cm5zIENvbWJpbmVkIGZpeCBsaXN0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGZpeGVzID0gYnVpbGRGaXhlcyhbXSwge30gYXMgbmV2ZXIpO1xuICogdm9pZCBmaXhlcztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBidWlsZEZpeGVzKG1hdGNoZXM6IFJ1bGVNYXRjaFtdLCBmaXhlcjogUnVsZS5SdWxlRml4ZXIpOiBSdWxlLkZpeFtdIHtcbiAgcmV0dXJuIFtcbiAgICAuLi5idWlsZENvbWJpbmVkSW1wb3J0Rml4ZXMobWF0Y2hlcywgZml4ZXIpLFxuICAgIC4uLm1hdGNoZXMuZmxhdE1hcCgobWF0Y2gpID0+IGJ1aWxkTm9uSW1wb3J0Rml4ZXMobWF0Y2gsIGZpeGVyKSksXG4gIF07XG59XG5cbi8qKlxuICogQnVpbGRzIGZpeGVzIGZvciBgbW9jaypgIG1lbWJlci1leHByZXNzaW9uIG9iamVjdCByZXdyaXRlcy5cbiAqIEBwYXJhbSBtYXRjaCBBdXRvZml4IGNvbnRleHQgcHJvZHVjZWQgYnkgdGhlIG1hdGNoZXIuXG4gKiBAcGFyYW0gZml4ZXIgRVNMaW50IGZpeGVyLlxuICogQHJldHVybnMgUmVwbGFjZW1lbnRzIGZvciBtZW1iZXItZXhwcmVzc2lvbiBvYmplY3QgaWRlbnRpZmllcnMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZml4ZXMgPSBidWlsZE1lbWJlclJld3JpdGVGaXhlcyh7fSBhcyBuZXZlciwge30gYXMgbmV2ZXIpO1xuICogdm9pZCBmaXhlcztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBidWlsZE1lbWJlclJld3JpdGVGaXhlcyhcbiAgbWF0Y2g6IFJ1bGVNYXRjaCxcbiAgZml4ZXI6IFJ1bGUuUnVsZUZpeGVyLFxuKTogUnVsZS5GaXhbXSB7XG4gIHJldHVybiBtYXRjaC5tZW1iZXJSZXdyaXRlcy5tYXAoKHJld3JpdGUpID0+XG4gICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShcbiAgICAgIHJld3JpdGUubG9jYWxPYmplY3RSYW5nZSxcbiAgICAgIGB2aS5tb2NrZWQoJHtyZXdyaXRlLmV4cG9ydGVkTmFtZX0pYCxcbiAgICApLFxuICApO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhIGZpeCB0aGF0IGNvbnZlcnRzIGxpdGVyYWwgbW9jayBzcGVjaWZpZXJzIHRvIGBpbXBvcnQoXCIuLi5cIilgLlxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIuXG4gKiBAcmV0dXJucyBGaXhlcyB0aGF0IG5vcm1hbGl6ZSB0aGUgbW9jayBzcGVjaWZpZXIgYXJndW1lbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZml4ZXMgPSBidWlsZE1vY2tTcGVjaWZpZXJGaXhlcyh7fSBhcyBuZXZlciwge30gYXMgbmV2ZXIpO1xuICogdm9pZCBmaXhlcztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBidWlsZE1vY2tTcGVjaWZpZXJGaXhlcyhcbiAgbWF0Y2g6IFJ1bGVNYXRjaCxcbiAgZml4ZXI6IFJ1bGUuUnVsZUZpeGVyLFxuKTogUnVsZS5GaXhbXSB7XG4gIGlmIChtYXRjaC5tb2NrU3BlY2lmaWVySXNJbXBvcnRFeHByZXNzaW9uKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgbW9kdWxlVGV4dCA9IEpTT04uc3RyaW5naWZ5KG1hdGNoLm1vZHVsZVNwZWNpZmllcik7XG4gIHJldHVybiBbXG4gICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShtYXRjaC5tb2NrU3BlY2lmaWVyUmFuZ2UsIGBpbXBvcnQoJHttb2R1bGVUZXh0fSlgKSxcbiAgXTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYWxsIG5vbi1pbXBvcnQgYXV0b2ZpeCBvcGVyYXRpb25zIGZvciBhIHNpbmdsZSBtYXRjaC5cbiAqIEBwYXJhbSBtYXRjaCBBdXRvZml4IGNvbnRleHQgcHJvZHVjZWQgYnkgdGhlIG1hdGNoZXIuXG4gKiBAcGFyYW0gZml4ZXIgRVNMaW50IGZpeGVyLlxuICogQHJldHVybnMgQ29tYmluZWQgbm9uLWltcG9ydCBmaXggbGlzdC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaXhlcyA9IGJ1aWxkTm9uSW1wb3J0Rml4ZXMoe30gYXMgbmV2ZXIsIHt9IGFzIG5ldmVyKTtcbiAqIHZvaWQgZml4ZXM7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gYnVpbGROb25JbXBvcnRGaXhlcyhcbiAgbWF0Y2g6IFJ1bGVNYXRjaCxcbiAgZml4ZXI6IFJ1bGUuUnVsZUZpeGVyLFxuKTogUnVsZS5GaXhbXSB7XG4gIHJldHVybiBbXG4gICAgLi4uYnVpbGRCaW5kaW5nRml4ZXMobWF0Y2gsIGZpeGVyKSxcbiAgICAuLi5idWlsZE1lbWJlclJld3JpdGVGaXhlcyhtYXRjaCwgZml4ZXIpLFxuICAgIC4uLmJ1aWxkTW9ja1NwZWNpZmllckZpeGVzKG1hdGNoLCBmaXhlciksXG4gICAgLi4uYnVpbGRSZW1vdmFsRml4ZXMobWF0Y2gsIGZpeGVyKSxcbiAgXTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgZml4ZXMgdGhhdCByZW1vdmUgZGVjbGFyYXRpb25zIGFmdGVyIGlubGluaW5nLlxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIuXG4gKiBAcmV0dXJucyBGaXhlcyB0aGF0IHJlbW92ZSByZWR1bmRhbnQgZGVjbGFyYXRpb24gc3RhdGVtZW50cy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaXhlcyA9IGJ1aWxkUmVtb3ZhbEZpeGVzKHt9IGFzIG5ldmVyLCB7fSBhcyBuZXZlcik7XG4gKiB2b2lkIGZpeGVzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkUmVtb3ZhbEZpeGVzKFxuICBtYXRjaDogUnVsZU1hdGNoLFxuICBmaXhlcjogUnVsZS5SdWxlRml4ZXIsXG4pOiBSdWxlLkZpeFtdIHtcbiAgY29uc3QgdW5pcXVlUmFuZ2VzID0gZ2V0VW5pcXVlU3RhdGVtZW50UmFuZ2VzKG1hdGNoKTtcbiAgcmV0dXJuIHVuaXF1ZVJhbmdlcy5tYXAoKHN0YXRlbWVudFJhbmdlKSA9PiB7XG4gICAgY29uc3QgZXhwYW5kZWRSYW5nZSA9IGV4dGVuZFJhbmdlVG9MaW5lQnJlYWsoXG4gICAgICBtYXRjaC5zb3VyY2VUZXh0LFxuICAgICAgc3RhdGVtZW50UmFuZ2UsXG4gICAgKTtcbiAgICByZXR1cm4gZml4ZXIucmVtb3ZlUmFuZ2UoZXhwYW5kZWRSYW5nZSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIEV4dGVuZHMgYSBzdGF0ZW1lbnQgcmFuZ2UgdG8gaW5jbHVkZSB0aGUgdHJhaWxpbmcgbGluZSBicmVhay5cbiAqIEBwYXJhbSBzb3VyY2VUZXh0IEZ1bGwgZmlsZSBjb250ZW50IGZvciBuZXdsaW5lIGxvb2t1cC5cbiAqIEBwYXJhbSBzdGF0ZW1lbnRSYW5nZSBTdGFydC9lbmQgb2Zmc2V0cyBmb3IgdGhlIHN0YXRlbWVudC5cbiAqIEByZXR1cm5zIFN0YXRlbWVudCByYW5nZSBleHRlbmRlZCB0aHJvdWdoIHRoZSB0cmFpbGluZyBsaW5lIGJyZWFrLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJhbmdlID0gZXh0ZW5kUmFuZ2VUb0xpbmVCcmVhayhcImFcXG5cIiwgWzAsIDFdKTtcbiAqIHZvaWQgcmFuZ2U7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZXh0ZW5kUmFuZ2VUb0xpbmVCcmVhayhcbiAgc291cmNlVGV4dDogc3RyaW5nLFxuICBzdGF0ZW1lbnRSYW5nZTogUmFuZ2UsXG4pOiBSYW5nZSB7XG4gIGNvbnN0IFtzdGFydCwgZW5kXSA9IHN0YXRlbWVudFJhbmdlO1xuICBjb25zdCBuZXh0TGluZUZlZWRJbmRleCA9IHNvdXJjZVRleHQuaW5kZXhPZihcIlxcblwiLCBlbmQpO1xuICByZXR1cm4gbmV4dExpbmVGZWVkSW5kZXggPT09IC0xXG4gICAgPyBbc3RhcnQsIHNvdXJjZVRleHQubGVuZ3RoXVxuICAgIDogW3N0YXJ0LCBuZXh0TGluZUZlZWRJbmRleCArIDFdO1xufVxuXG4vKipcbiAqIFJldHVybnMgc29ydGVkIHVuaXF1ZSBzdGF0ZW1lbnQgcmFuZ2VzIGZvciBkZWNsYXJhdGlvbnMgdG8gcmVtb3ZlLlxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cbiAqIEByZXR1cm5zIERpc3RpbmN0IGRlY2xhcmF0aW9uIHN0YXRlbWVudCByYW5nZXMgdG8gcmVtb3ZlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJhbmdlcyA9IGdldFVuaXF1ZVN0YXRlbWVudFJhbmdlcyh7IGJpbmRpbmdzOiBbXSwgZGVjbGFyYXRpb25zOiBuZXcgTWFwKCkgfSBhcyBuZXZlcik7XG4gKiB2b2lkIHJhbmdlcztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRVbmlxdWVTdGF0ZW1lbnRSYW5nZXMobWF0Y2g6IFJ1bGVNYXRjaCk6IFJhbmdlW10ge1xuICBjb25zdCByYW5nZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBSYW5nZT4oKTtcbiAgZm9yIChjb25zdCBiaW5kaW5nIG9mIG1hdGNoLmJpbmRpbmdzKSB7XG4gICAgY29uc3QgZGVjbGFyYXRpb24gPSBtYXRjaC5kZWNsYXJhdGlvbnMuZ2V0KGJpbmRpbmcubG9jYWxOYW1lKTtcbiAgICBpZiAoZGVjbGFyYXRpb24gIT09IHZvaWQgMCkge1xuICAgICAgY29uc3Qga2V5ID0gYCR7ZGVjbGFyYXRpb24uc3RhdGVtZW50UmFuZ2VbMF19OiR7ZGVjbGFyYXRpb24uc3RhdGVtZW50UmFuZ2VbMV19YDtcbiAgICAgIHJhbmdlTWFwLnNldChrZXksIGRlY2xhcmF0aW9uLnN0YXRlbWVudFJhbmdlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gWy4uLnJhbmdlTWFwLnZhbHVlcygpXTtcbn1cblxuZXhwb3J0IHsgYnVpbGRGaXgsIGJ1aWxkRml4ZXMgfTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { preferViMockedImportRule } from "./rule.js";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpLW1vY2tlZC1pbXBvcnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgcHJlZmVyVmlNb2NrZWRJbXBvcnRSdWxlIH0gZnJvbSBcIi4vcnVsZVwiO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match-bindings.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/match-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIpD;;;;;;;;;;GAUG;AACH,iBAAS,eAAe,CACtB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EACzC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GACrC,OAAO,EAAE,CAIX;AA8CD,OAAO,EAAE,eAAe,EAAE,CAAC"}
|