@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
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { hasRange } from "./match-helpers";
|
|
2
|
-
/**
|
|
3
|
-
* Collects bindings from a mock factory object.
|
|
4
|
-
* @param objectExpression Returned object expression.
|
|
5
|
-
* @param declarations Known declarations by local name.
|
|
6
|
-
* @returns Collected bindings.
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* const bindings = collectBindings({ properties: [], type: "ObjectExpression" } as never, new Map());
|
|
10
|
-
* void bindings;
|
|
11
|
-
* ```
|
|
12
|
-
*/
|
|
13
|
-
function collectBindings(objectExpression, declarations) {
|
|
14
|
-
return objectExpression.properties
|
|
15
|
-
.map((propertyNode) => toBinding(propertyNode, declarations))
|
|
16
|
-
.filter((binding) => binding !== void 0);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Converts one object property into a binding when supported.
|
|
20
|
-
* @param propertyNode Object property candidate.
|
|
21
|
-
* @param declarations Known declarations.
|
|
22
|
-
* @returns Binding when property matches the rule shape.
|
|
23
|
-
* @example
|
|
24
|
-
* ```typescript
|
|
25
|
-
* const binding = toBinding({ type: "SpreadElement" } as never, new Map());
|
|
26
|
-
* void binding;
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
function toBinding(propertyNode, declarations) {
|
|
30
|
-
if (propertyNode.type !== "Property" ||
|
|
31
|
-
propertyNode.key.type !== "Identifier") {
|
|
32
|
-
return void 0;
|
|
33
|
-
}
|
|
34
|
-
if (!hasRange(propertyNode) ||
|
|
35
|
-
!hasRange(propertyNode.key) ||
|
|
36
|
-
propertyNode.value.type !== "Identifier") {
|
|
37
|
-
return void 0;
|
|
38
|
-
}
|
|
39
|
-
if (!hasRange(propertyNode.value) ||
|
|
40
|
-
!declarations.has(propertyNode.value.name)) {
|
|
41
|
-
return void 0;
|
|
42
|
-
}
|
|
43
|
-
return {
|
|
44
|
-
exportedName: propertyNode.key.name,
|
|
45
|
-
localName: propertyNode.value.name,
|
|
46
|
-
propertyKeyRange: propertyNode.key.range,
|
|
47
|
-
propertyRange: propertyNode.range,
|
|
48
|
-
propertyValueRange: propertyNode.value.range,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
export { collectBindings };
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtYmluZGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdGluZy9wcmVmZXItdmktbW9ja2VkLWltcG9ydC9tYXRjaC1iaW5kaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0M7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsZUFBZSxDQUN0QixnQkFBeUMsRUFDekMsWUFBc0M7SUFFdEMsT0FBTyxnQkFBZ0IsQ0FBQyxVQUFVO1NBQy9CLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztTQUM1RCxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQXNCLEVBQUUsQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsU0FBUyxDQUNoQixZQUFvRCxFQUNwRCxZQUFzQztJQUV0QyxJQUNFLFlBQVksQ0FBQyxJQUFJLEtBQUssVUFBVTtRQUNoQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxZQUFZLEVBQ3RDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFDRCxJQUNFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUN2QixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDO1FBQzNCLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksRUFDeEMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUNELElBQ0UsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUM3QixDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFDMUMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU87UUFDTCxZQUFZLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJO1FBQ25DLFNBQVMsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUk7UUFDbEMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLO1FBQ3hDLGFBQWEsRUFBRSxZQUFZLENBQUMsS0FBSztRQUNqQyxrQkFBa0IsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUs7S0FDN0MsQ0FBQztBQUNKLENBQUM7QUFFRCxPQUFPLEVBQUUsZUFBZSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbmltcG9ydCB0eXBlIHsgQmluZGluZywgRGVjbGFyYXRpb24gfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQgeyBoYXNSYW5nZSB9IGZyb20gXCIuL21hdGNoLWhlbHBlcnNcIjtcblxuLyoqXG4gKiBDb2xsZWN0cyBiaW5kaW5ncyBmcm9tIGEgbW9jayBmYWN0b3J5IG9iamVjdC5cbiAqIEBwYXJhbSBvYmplY3RFeHByZXNzaW9uIFJldHVybmVkIG9iamVjdCBleHByZXNzaW9uLlxuICogQHBhcmFtIGRlY2xhcmF0aW9ucyBLbm93biBkZWNsYXJhdGlvbnMgYnkgbG9jYWwgbmFtZS5cbiAqIEByZXR1cm5zIENvbGxlY3RlZCBiaW5kaW5ncy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBiaW5kaW5ncyA9IGNvbGxlY3RCaW5kaW5ncyh7IHByb3BlcnRpZXM6IFtdLCB0eXBlOiBcIk9iamVjdEV4cHJlc3Npb25cIiB9IGFzIG5ldmVyLCBuZXcgTWFwKCkpO1xuICogdm9pZCBiaW5kaW5ncztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBjb2xsZWN0QmluZGluZ3MoXG4gIG9iamVjdEV4cHJlc3Npb246IEVTVHJlZS5PYmplY3RFeHByZXNzaW9uLFxuICBkZWNsYXJhdGlvbnM6IE1hcDxzdHJpbmcsIERlY2xhcmF0aW9uPixcbik6IEJpbmRpbmdbXSB7XG4gIHJldHVybiBvYmplY3RFeHByZXNzaW9uLnByb3BlcnRpZXNcbiAgICAubWFwKChwcm9wZXJ0eU5vZGUpID0+IHRvQmluZGluZyhwcm9wZXJ0eU5vZGUsIGRlY2xhcmF0aW9ucykpXG4gICAgLmZpbHRlcigoYmluZGluZyk6IGJpbmRpbmcgaXMgQmluZGluZyA9PiBiaW5kaW5nICE9PSB2b2lkIDApO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIG9uZSBvYmplY3QgcHJvcGVydHkgaW50byBhIGJpbmRpbmcgd2hlbiBzdXBwb3J0ZWQuXG4gKiBAcGFyYW0gcHJvcGVydHlOb2RlIE9iamVjdCBwcm9wZXJ0eSBjYW5kaWRhdGUuXG4gKiBAcGFyYW0gZGVjbGFyYXRpb25zIEtub3duIGRlY2xhcmF0aW9ucy5cbiAqIEByZXR1cm5zIEJpbmRpbmcgd2hlbiBwcm9wZXJ0eSBtYXRjaGVzIHRoZSBydWxlIHNoYXBlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGJpbmRpbmcgPSB0b0JpbmRpbmcoeyB0eXBlOiBcIlNwcmVhZEVsZW1lbnRcIiB9IGFzIG5ldmVyLCBuZXcgTWFwKCkpO1xuICogdm9pZCBiaW5kaW5nO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHRvQmluZGluZyhcbiAgcHJvcGVydHlOb2RlOiBFU1RyZWUuUHJvcGVydHkgfCBFU1RyZWUuU3ByZWFkRWxlbWVudCxcbiAgZGVjbGFyYXRpb25zOiBNYXA8c3RyaW5nLCBEZWNsYXJhdGlvbj4sXG4pOiBCaW5kaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKFxuICAgIHByb3BlcnR5Tm9kZS50eXBlICE9PSBcIlByb3BlcnR5XCIgfHxcbiAgICBwcm9wZXJ0eU5vZGUua2V5LnR5cGUgIT09IFwiSWRlbnRpZmllclwiXG4gICkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgaWYgKFxuICAgICFoYXNSYW5nZShwcm9wZXJ0eU5vZGUpIHx8XG4gICAgIWhhc1JhbmdlKHByb3BlcnR5Tm9kZS5rZXkpIHx8XG4gICAgcHJvcGVydHlOb2RlLnZhbHVlLnR5cGUgIT09IFwiSWRlbnRpZmllclwiXG4gICkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgaWYgKFxuICAgICFoYXNSYW5nZShwcm9wZXJ0eU5vZGUudmFsdWUpIHx8XG4gICAgIWRlY2xhcmF0aW9ucy5oYXMocHJvcGVydHlOb2RlLnZhbHVlLm5hbWUpXG4gICkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGV4cG9ydGVkTmFtZTogcHJvcGVydHlOb2RlLmtleS5uYW1lLFxuICAgIGxvY2FsTmFtZTogcHJvcGVydHlOb2RlLnZhbHVlLm5hbWUsXG4gICAgcHJvcGVydHlLZXlSYW5nZTogcHJvcGVydHlOb2RlLmtleS5yYW5nZSxcbiAgICBwcm9wZXJ0eVJhbmdlOiBwcm9wZXJ0eU5vZGUucmFuZ2UsXG4gICAgcHJvcGVydHlWYWx1ZVJhbmdlOiBwcm9wZXJ0eU5vZGUudmFsdWUucmFuZ2UsXG4gIH07XG59XG5cbmV4cG9ydCB7IGNvbGxlY3RCaW5kaW5ncyB9O1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"match-declarations.d.ts","sourceRoot":"","sources":["../../../src/testing/prefer-vi-mocked-import/match-declarations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C;;;;;;;;;GASG;AACH,iBAAS,mBAAmB,CAC1B,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,UAAU,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAC1C,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAU1B;AAwGD,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { hasRange, isViFunctionCall } from "./match-helpers";
|
|
2
|
-
/**
|
|
3
|
-
* Collects top-level `const x = vi.fn(...)` declarations.
|
|
4
|
-
* @param program Program node.
|
|
5
|
-
* @returns Declarations by local name.
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* const declarations = collectDeclarations({ body: [], sourceType: "module", type: "Program" } as never);
|
|
9
|
-
* void declarations;
|
|
10
|
-
* ```
|
|
11
|
-
*/
|
|
12
|
-
function collectDeclarations(program, sourceCode) {
|
|
13
|
-
const declarations = program.body
|
|
14
|
-
.map((statement) => toDeclaration(statement, sourceCode))
|
|
15
|
-
.filter((declaration) => declaration !== void 0);
|
|
16
|
-
return new Map(declarations.map((declaration) => [declaration.localName, declaration]));
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Converts one top-level statement into a declaration when supported.
|
|
20
|
-
* @param statement Candidate statement.
|
|
21
|
-
* @returns Declaration when statement matches the rule shape.
|
|
22
|
-
* @example
|
|
23
|
-
* ```typescript
|
|
24
|
-
* const declaration = toDeclaration({ type: "EmptyStatement" } as never);
|
|
25
|
-
* void declaration;
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
function toDeclaration(statement, sourceCode) {
|
|
29
|
-
if (statement.type !== "VariableDeclaration" || statement.kind !== "const") {
|
|
30
|
-
return void 0;
|
|
31
|
-
}
|
|
32
|
-
if (!hasRange(statement) || statement.declarations.length !== 1) {
|
|
33
|
-
return void 0;
|
|
34
|
-
}
|
|
35
|
-
const [declarator] = statement.declarations;
|
|
36
|
-
if (declarator === void 0 ||
|
|
37
|
-
declarator.id.type !== "Identifier" ||
|
|
38
|
-
!hasRange(declarator.id) ||
|
|
39
|
-
declarator.init === null ||
|
|
40
|
-
declarator.init === void 0 ||
|
|
41
|
-
!hasRange(declarator.init) ||
|
|
42
|
-
!isViFunctionCall(declarator.init)) {
|
|
43
|
-
return void 0;
|
|
44
|
-
}
|
|
45
|
-
return {
|
|
46
|
-
declarationIdRange: declarator.id.range,
|
|
47
|
-
initializerRange: declarator.init.range,
|
|
48
|
-
localName: declarator.id.name,
|
|
49
|
-
statementRange: getRemovalRange(statement, sourceCode),
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Returns the declaration removal range, including directly attached comments.
|
|
54
|
-
* @param statement Variable declaration statement.
|
|
55
|
-
* @param sourceCode Source code wrapper when available.
|
|
56
|
-
* @returns Statement range expanded to attached leading comments.
|
|
57
|
-
* @example
|
|
58
|
-
* ```typescript
|
|
59
|
-
* const range = getRemovalRange({ range: [5, 10], type: "VariableDeclaration" } as never);
|
|
60
|
-
* void range;
|
|
61
|
-
* ```
|
|
62
|
-
*/
|
|
63
|
-
function getRemovalRange(statement, sourceCode) {
|
|
64
|
-
const statementStart = statement.range[0];
|
|
65
|
-
const commentsBefore = sourceCode?.getCommentsBefore(statement) ?? [];
|
|
66
|
-
if (commentsBefore.length === 0) {
|
|
67
|
-
return statement.range;
|
|
68
|
-
}
|
|
69
|
-
let removalStart = statementStart;
|
|
70
|
-
let nextStart = statementStart;
|
|
71
|
-
for (const comment of [...commentsBefore].reverse()) {
|
|
72
|
-
const commentRange = comment.range;
|
|
73
|
-
if (commentRange === void 0) {
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
|
-
const gapText = sourceCode?.text.slice(commentRange[1], nextStart) ?? "";
|
|
77
|
-
if (!isAttachedLeadingGap(gapText)) {
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
removalStart = commentRange[0];
|
|
81
|
-
nextStart = commentRange[0];
|
|
82
|
-
}
|
|
83
|
-
return [removalStart, statement.range[1]];
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Returns true when whitespace between a comment and declaration keeps them attached.
|
|
87
|
-
* @param gapText Source text between adjacent nodes.
|
|
88
|
-
* @returns True when the gap contains no blank line.
|
|
89
|
-
* @example
|
|
90
|
-
* ```typescript
|
|
91
|
-
* const ok = isAttachedLeadingGap("\n");
|
|
92
|
-
* void ok;
|
|
93
|
-
* ```
|
|
94
|
-
*/
|
|
95
|
-
function isAttachedLeadingGap(gapText) {
|
|
96
|
-
return (/^[\t \r\n]*$/u.test(gapText) && !/(\r?\n)[\t ]*(\r?\n)/u.test(gapText));
|
|
97
|
-
}
|
|
98
|
-
export { collectDeclarations };
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtZGVjbGFyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rlc3RpbmcvcHJlZmVyLXZpLW1vY2tlZC1pbXBvcnQvbWF0Y2gtZGVjbGFyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLG1CQUFtQixDQUMxQixPQUF1QixFQUN2QixVQUEyQztJQUUzQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSTtTQUM5QixHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDeEQsTUFBTSxDQUNMLENBQUMsV0FBVyxFQUE4QixFQUFFLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FBQyxDQUNwRSxDQUFDO0lBRUosT0FBTyxJQUFJLEdBQUcsQ0FDWixZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FDeEUsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGFBQWEsQ0FDcEIsU0FBeUMsRUFDekMsVUFBMkM7SUFFM0MsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLHFCQUFxQixJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7UUFDM0UsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNoRSxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQztJQUM1QyxJQUNFLFVBQVUsS0FBSyxLQUFLLENBQUM7UUFDckIsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssWUFBWTtRQUNuQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3hCLFVBQVUsQ0FBQyxJQUFJLEtBQUssSUFBSTtRQUN4QixVQUFVLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQztRQUMxQixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQzFCLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUNsQyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTztRQUNMLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsS0FBSztRQUN2QyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUs7UUFDdkMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSTtRQUM3QixjQUFjLEVBQUUsZUFBZSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUM7S0FDdkQsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBUyxlQUFlLENBQ3RCLFNBQW1FLEVBQ25FLFVBQTJDO0lBRTNDLE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsTUFBTSxjQUFjLEdBQUcsVUFBVSxFQUFFLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUV0RSxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDaEMsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFlBQVksR0FBRyxjQUFjLENBQUM7SUFDbEMsSUFBSSxTQUFTLEdBQUcsY0FBYyxDQUFDO0lBRS9CLEtBQUssTUFBTSxPQUFPLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDcEQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUVuQyxJQUFJLFlBQVksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVCLE1BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6RSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNO1FBQ1IsQ0FBQztRQUVELFlBQVksR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsb0JBQW9CLENBQUMsT0FBZTtJQUMzQyxPQUFPLENBQ0wsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FDeEUsQ0FBQztBQUNKLENBQUM7QUFFRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcblxuaW1wb3J0IHR5cGUgeyBEZWNsYXJhdGlvbiB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmltcG9ydCB7IGhhc1JhbmdlLCBpc1ZpRnVuY3Rpb25DYWxsIH0gZnJvbSBcIi4vbWF0Y2gtaGVscGVyc1wiO1xuXG4vKipcbiAqIENvbGxlY3RzIHRvcC1sZXZlbCBgY29uc3QgeCA9IHZpLmZuKC4uLilgIGRlY2xhcmF0aW9ucy5cbiAqIEBwYXJhbSBwcm9ncmFtIFByb2dyYW0gbm9kZS5cbiAqIEByZXR1cm5zIERlY2xhcmF0aW9ucyBieSBsb2NhbCBuYW1lLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGRlY2xhcmF0aW9ucyA9IGNvbGxlY3REZWNsYXJhdGlvbnMoeyBib2R5OiBbXSwgc291cmNlVHlwZTogXCJtb2R1bGVcIiwgdHlwZTogXCJQcm9ncmFtXCIgfSBhcyBuZXZlcik7XG4gKiB2b2lkIGRlY2xhcmF0aW9ucztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBjb2xsZWN0RGVjbGFyYXRpb25zKFxuICBwcm9ncmFtOiBFU1RyZWUuUHJvZ3JhbSxcbiAgc291cmNlQ29kZT86IFJ1bGUuUnVsZUNvbnRleHRbXCJzb3VyY2VDb2RlXCJdLFxuKTogTWFwPHN0cmluZywgRGVjbGFyYXRpb24+IHtcbiAgY29uc3QgZGVjbGFyYXRpb25zID0gcHJvZ3JhbS5ib2R5XG4gICAgLm1hcCgoc3RhdGVtZW50KSA9PiB0b0RlY2xhcmF0aW9uKHN0YXRlbWVudCwgc291cmNlQ29kZSkpXG4gICAgLmZpbHRlcihcbiAgICAgIChkZWNsYXJhdGlvbik6IGRlY2xhcmF0aW9uIGlzIERlY2xhcmF0aW9uID0+IGRlY2xhcmF0aW9uICE9PSB2b2lkIDAsXG4gICAgKTtcblxuICByZXR1cm4gbmV3IE1hcChcbiAgICBkZWNsYXJhdGlvbnMubWFwKChkZWNsYXJhdGlvbikgPT4gW2RlY2xhcmF0aW9uLmxvY2FsTmFtZSwgZGVjbGFyYXRpb25dKSxcbiAgKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBvbmUgdG9wLWxldmVsIHN0YXRlbWVudCBpbnRvIGEgZGVjbGFyYXRpb24gd2hlbiBzdXBwb3J0ZWQuXG4gKiBAcGFyYW0gc3RhdGVtZW50IENhbmRpZGF0ZSBzdGF0ZW1lbnQuXG4gKiBAcmV0dXJucyBEZWNsYXJhdGlvbiB3aGVuIHN0YXRlbWVudCBtYXRjaGVzIHRoZSBydWxlIHNoYXBlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGRlY2xhcmF0aW9uID0gdG9EZWNsYXJhdGlvbih7IHR5cGU6IFwiRW1wdHlTdGF0ZW1lbnRcIiB9IGFzIG5ldmVyKTtcbiAqIHZvaWQgZGVjbGFyYXRpb247XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gdG9EZWNsYXJhdGlvbihcbiAgc3RhdGVtZW50OiBFU1RyZWUuUHJvZ3JhbVtcImJvZHlcIl1bbnVtYmVyXSxcbiAgc291cmNlQ29kZT86IFJ1bGUuUnVsZUNvbnRleHRbXCJzb3VyY2VDb2RlXCJdLFxuKTogRGVjbGFyYXRpb24gfCB1bmRlZmluZWQge1xuICBpZiAoc3RhdGVtZW50LnR5cGUgIT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiIHx8IHN0YXRlbWVudC5raW5kICE9PSBcImNvbnN0XCIpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG4gIGlmICghaGFzUmFuZ2Uoc3RhdGVtZW50KSB8fCBzdGF0ZW1lbnQuZGVjbGFyYXRpb25zLmxlbmd0aCAhPT0gMSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBbZGVjbGFyYXRvcl0gPSBzdGF0ZW1lbnQuZGVjbGFyYXRpb25zO1xuICBpZiAoXG4gICAgZGVjbGFyYXRvciA9PT0gdm9pZCAwIHx8XG4gICAgZGVjbGFyYXRvci5pZC50eXBlICE9PSBcIklkZW50aWZpZXJcIiB8fFxuICAgICFoYXNSYW5nZShkZWNsYXJhdG9yLmlkKSB8fFxuICAgIGRlY2xhcmF0b3IuaW5pdCA9PT0gbnVsbCB8fFxuICAgIGRlY2xhcmF0b3IuaW5pdCA9PT0gdm9pZCAwIHx8XG4gICAgIWhhc1JhbmdlKGRlY2xhcmF0b3IuaW5pdCkgfHxcbiAgICAhaXNWaUZ1bmN0aW9uQ2FsbChkZWNsYXJhdG9yLmluaXQpXG4gICkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRlY2xhcmF0aW9uSWRSYW5nZTogZGVjbGFyYXRvci5pZC5yYW5nZSxcbiAgICBpbml0aWFsaXplclJhbmdlOiBkZWNsYXJhdG9yLmluaXQucmFuZ2UsXG4gICAgbG9jYWxOYW1lOiBkZWNsYXJhdG9yLmlkLm5hbWUsXG4gICAgc3RhdGVtZW50UmFuZ2U6IGdldFJlbW92YWxSYW5nZShzdGF0ZW1lbnQsIHNvdXJjZUNvZGUpLFxuICB9O1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGRlY2xhcmF0aW9uIHJlbW92YWwgcmFuZ2UsIGluY2x1ZGluZyBkaXJlY3RseSBhdHRhY2hlZCBjb21tZW50cy5cbiAqIEBwYXJhbSBzdGF0ZW1lbnQgVmFyaWFibGUgZGVjbGFyYXRpb24gc3RhdGVtZW50LlxuICogQHBhcmFtIHNvdXJjZUNvZGUgU291cmNlIGNvZGUgd3JhcHBlciB3aGVuIGF2YWlsYWJsZS5cbiAqIEByZXR1cm5zIFN0YXRlbWVudCByYW5nZSBleHBhbmRlZCB0byBhdHRhY2hlZCBsZWFkaW5nIGNvbW1lbnRzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJhbmdlID0gZ2V0UmVtb3ZhbFJhbmdlKHsgcmFuZ2U6IFs1LCAxMF0sIHR5cGU6IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiIH0gYXMgbmV2ZXIpO1xuICogdm9pZCByYW5nZTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRSZW1vdmFsUmFuZ2UoXG4gIHN0YXRlbWVudDogRVNUcmVlLlZhcmlhYmxlRGVjbGFyYXRpb24gJiB7IHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdIH0sXG4gIHNvdXJjZUNvZGU/OiBSdWxlLlJ1bGVDb250ZXh0W1wic291cmNlQ29kZVwiXSxcbik6IFtudW1iZXIsIG51bWJlcl0ge1xuICBjb25zdCBzdGF0ZW1lbnRTdGFydCA9IHN0YXRlbWVudC5yYW5nZVswXTtcbiAgY29uc3QgY29tbWVudHNCZWZvcmUgPSBzb3VyY2VDb2RlPy5nZXRDb21tZW50c0JlZm9yZShzdGF0ZW1lbnQpID8/IFtdO1xuXG4gIGlmIChjb21tZW50c0JlZm9yZS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gc3RhdGVtZW50LnJhbmdlO1xuICB9XG5cbiAgbGV0IHJlbW92YWxTdGFydCA9IHN0YXRlbWVudFN0YXJ0O1xuICBsZXQgbmV4dFN0YXJ0ID0gc3RhdGVtZW50U3RhcnQ7XG5cbiAgZm9yIChjb25zdCBjb21tZW50IG9mIFsuLi5jb21tZW50c0JlZm9yZV0ucmV2ZXJzZSgpKSB7XG4gICAgY29uc3QgY29tbWVudFJhbmdlID0gY29tbWVudC5yYW5nZTtcblxuICAgIGlmIChjb21tZW50UmFuZ2UgPT09IHZvaWQgMCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY29uc3QgZ2FwVGV4dCA9IHNvdXJjZUNvZGU/LnRleHQuc2xpY2UoY29tbWVudFJhbmdlWzFdLCBuZXh0U3RhcnQpID8/IFwiXCI7XG4gICAgaWYgKCFpc0F0dGFjaGVkTGVhZGluZ0dhcChnYXBUZXh0KSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmVtb3ZhbFN0YXJ0ID0gY29tbWVudFJhbmdlWzBdO1xuICAgIG5leHRTdGFydCA9IGNvbW1lbnRSYW5nZVswXTtcbiAgfVxuXG4gIHJldHVybiBbcmVtb3ZhbFN0YXJ0LCBzdGF0ZW1lbnQucmFuZ2VbMV1dO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSB3aGVuIHdoaXRlc3BhY2UgYmV0d2VlbiBhIGNvbW1lbnQgYW5kIGRlY2xhcmF0aW9uIGtlZXBzIHRoZW0gYXR0YWNoZWQuXG4gKiBAcGFyYW0gZ2FwVGV4dCBTb3VyY2UgdGV4dCBiZXR3ZWVuIGFkamFjZW50IG5vZGVzLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBnYXAgY29udGFpbnMgbm8gYmxhbmsgbGluZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBvayA9IGlzQXR0YWNoZWRMZWFkaW5nR2FwKFwiXFxuXCIpO1xuICogdm9pZCBvaztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBpc0F0dGFjaGVkTGVhZGluZ0dhcChnYXBUZXh0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICAvXltcXHQgXFxyXFxuXSokL3UudGVzdChnYXBUZXh0KSAmJiAhLyhcXHI/XFxuKVtcXHQgXSooXFxyP1xcbikvdS50ZXN0KGdhcFRleHQpXG4gICk7XG59XG5cbmV4cG9ydCB7IGNvbGxlY3REZWNsYXJhdGlvbnMgfTtcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"match-helpers.d.ts","sourceRoot":"","sources":["../../../src/testing/prefer-vi-mocked-import/match-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAQtC,qCAAqC;AACrC,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9B,qCAAqC;AACrC,KAAK,SAAS,GAAG,MAAM,CAAC,IAAI,GAAG;IAC7B,uCAAuC;IACvC,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;;;;;;;;GASG;AACH,iBAAS,sBAAsB,CAC7B,iBAAiB,EAAE,MAAM,CAAC,UAAU,GACnC,MAAM,CAAC,gBAAgB,GAAG,SAAS,CAmBrC;AAED;;;;;;;;;GASG;AACH,iBAAS,kBAAkB,CACzB,cAAc,EAAE,MAAM,CAAC,UAAU,GAChC,MAAM,GAAG,SAAS,CAYpB;AAED;;;;;;;;;GASG;AACH,iBAAS,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAErD;AAED;;;;;;;;;GASG;AACH,iBAAS,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,IAAI,IAAI,SAAS,CAQtD;AAED;;;;;;;;;GASG;AACH,iBAAS,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,GAAG,OAAO,CAevE;AAED,YAAY,EAAE,KAAK,EAAE,CAAC;AACtB,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,UAAU,EACV,QAAQ,EACR,gBAAgB,GACjB,CAAC"}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolves the object literal returned from a mock factory.
|
|
3
|
-
* @param factoryExpression Factory expression from `vi.mock` or `vi.doMock`.
|
|
4
|
-
* @returns Returned object expression when present.
|
|
5
|
-
* @example
|
|
6
|
-
* ```typescript
|
|
7
|
-
* const result = getFactoryReturnObject({ type: "Identifier" } as never);
|
|
8
|
-
* void result;
|
|
9
|
-
* ```
|
|
10
|
-
*/
|
|
11
|
-
function getFactoryReturnObject(factoryExpression) {
|
|
12
|
-
if (factoryExpression.type !== "ArrowFunctionExpression") {
|
|
13
|
-
return void 0;
|
|
14
|
-
}
|
|
15
|
-
const { body } = factoryExpression;
|
|
16
|
-
if (body.type === "ObjectExpression") {
|
|
17
|
-
return body;
|
|
18
|
-
}
|
|
19
|
-
if (body.type !== "BlockStatement") {
|
|
20
|
-
return void 0;
|
|
21
|
-
}
|
|
22
|
-
const returnStatement = body.body.find((statement) => statement.type === "ReturnStatement");
|
|
23
|
-
const returnArgument = returnStatement?.argument;
|
|
24
|
-
return returnArgument?.type === "ObjectExpression" ? returnArgument : void 0;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Extracts a module specifier string from a mock call argument.
|
|
28
|
-
* @param moduleArgument First argument of `vi.mock` or `vi.doMock`.
|
|
29
|
-
* @returns String module specifier when available.
|
|
30
|
-
* @example
|
|
31
|
-
* ```typescript
|
|
32
|
-
* const specifier = getModuleSpecifier({ type: "Literal", value: "./x" } as never);
|
|
33
|
-
* void specifier;
|
|
34
|
-
* ```
|
|
35
|
-
*/
|
|
36
|
-
function getModuleSpecifier(moduleArgument) {
|
|
37
|
-
if (moduleArgument.type === "ImportExpression") {
|
|
38
|
-
const { source } = moduleArgument;
|
|
39
|
-
return source.type === "Literal" && typeof source.value === "string"
|
|
40
|
-
? source.value
|
|
41
|
-
: void 0;
|
|
42
|
-
}
|
|
43
|
-
return moduleArgument.type === "Literal" &&
|
|
44
|
-
typeof moduleArgument.value === "string"
|
|
45
|
-
? moduleArgument.value
|
|
46
|
-
: void 0;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Determines the newline sequence used in source text.
|
|
50
|
-
* @param sourceText Full source text.
|
|
51
|
-
* @returns Detected newline sequence.
|
|
52
|
-
* @example
|
|
53
|
-
* ```typescript
|
|
54
|
-
* const newline = getNewline("a\r\nb");
|
|
55
|
-
* void newline;
|
|
56
|
-
* ```
|
|
57
|
-
*/
|
|
58
|
-
function getNewline(sourceText) {
|
|
59
|
-
return sourceText.includes("\r\n") ? "\r\n" : "\n";
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Checks whether a node includes a numeric `range` tuple.
|
|
63
|
-
* @param node Node to inspect.
|
|
64
|
-
* @returns True when the node has a valid `range`.
|
|
65
|
-
* @example
|
|
66
|
-
* ```typescript
|
|
67
|
-
* const ok = hasRange({ range: [0, 1] } as never);
|
|
68
|
-
* void ok;
|
|
69
|
-
* ```
|
|
70
|
-
*/
|
|
71
|
-
function hasRange(node) {
|
|
72
|
-
const rangeValue = node.range;
|
|
73
|
-
return (Array.isArray(rangeValue) &&
|
|
74
|
-
rangeValue.length === 2 &&
|
|
75
|
-
typeof rangeValue[0] === "number" &&
|
|
76
|
-
typeof rangeValue[1] === "number");
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Returns true when an expression is a `vi.fn(...)` call.
|
|
80
|
-
* @param expression Expression to inspect.
|
|
81
|
-
* @returns True when the expression is a `vi.fn` call.
|
|
82
|
-
* @example
|
|
83
|
-
* ```typescript
|
|
84
|
-
* const ok = isViFunctionCall(null);
|
|
85
|
-
* void ok;
|
|
86
|
-
* ```
|
|
87
|
-
*/
|
|
88
|
-
function isViFunctionCall(expression) {
|
|
89
|
-
if (expression?.type !== "CallExpression") {
|
|
90
|
-
return false;
|
|
91
|
-
}
|
|
92
|
-
if (expression.callee.type !== "MemberExpression") {
|
|
93
|
-
return false;
|
|
94
|
-
}
|
|
95
|
-
const { object, property } = expression.callee;
|
|
96
|
-
return (object.type === "Identifier" &&
|
|
97
|
-
object.name === "vi" &&
|
|
98
|
-
property.type === "Identifier" &&
|
|
99
|
-
property.name === "fn");
|
|
100
|
-
}
|
|
101
|
-
export { getFactoryReturnObject, getModuleSpecifier, getNewline, hasRange, isViFunctionCall, };
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0aW5nL3ByZWZlci12aS1tb2NrZWQtaW1wb3J0L21hdGNoLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsc0JBQXNCLENBQzdCLGlCQUFvQztJQUVwQyxJQUFJLGlCQUFpQixDQUFDLElBQUksS0FBSyx5QkFBeUIsRUFBRSxDQUFDO1FBQ3pELE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztJQUNuQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQyxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDcEMsQ0FBQyxTQUFTLEVBQXVDLEVBQUUsQ0FDakQsU0FBUyxDQUFDLElBQUksS0FBSyxpQkFBaUIsQ0FDdkMsQ0FBQztJQUNGLE1BQU0sY0FBYyxHQUFHLGVBQWUsRUFBRSxRQUFRLENBQUM7SUFDakQsT0FBTyxjQUFjLEVBQUUsSUFBSSxLQUFLLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9FLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGtCQUFrQixDQUN6QixjQUFpQztJQUVqQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztRQUMvQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsY0FBYyxDQUFDO1FBQ2xDLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksT0FBTyxNQUFNLENBQUMsS0FBSyxLQUFLLFFBQVE7WUFDbEUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ2QsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sY0FBYyxDQUFDLElBQUksS0FBSyxTQUFTO1FBQ3RDLE9BQU8sY0FBYyxDQUFDLEtBQUssS0FBSyxRQUFRO1FBQ3hDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSztRQUN0QixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDYixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxVQUFVLENBQUMsVUFBa0I7SUFDcEMsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNyRCxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxRQUFRLENBQUMsSUFBaUI7SUFDakMsTUFBTSxVQUFVLEdBQUksSUFBc0MsQ0FBQyxLQUFLLENBQUM7SUFDakUsT0FBTyxDQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3pCLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUN2QixPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRO1FBQ2pDLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FDbEMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGdCQUFnQixDQUFDLFVBQW9DO0lBQzVELElBQUksVUFBVSxFQUFFLElBQUksS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztRQUNsRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFDL0MsT0FBTyxDQUNMLE1BQU0sQ0FBQyxJQUFJLEtBQUssWUFBWTtRQUM1QixNQUFNLENBQUMsSUFBSSxLQUFLLElBQUk7UUFDcEIsUUFBUSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQzlCLFFBQVEsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUN2QixDQUFDO0FBQ0osQ0FBQztBQUdELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLFVBQVUsRUFDVixRQUFRLEVBQ1IsZ0JBQWdCLEdBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBPcHRpb25hbFJhbmdlRmllbGQge1xuICAvKiogUG90ZW50aWFsIHJhbmdlIHBheWxvYWQgZnJvbSB1bmtub3duIG5vZGUtbGlrZSB2YWx1ZXMuICovXG4gIHJhbmdlPzogdW5rbm93bjtcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xudHlwZSBSYW5nZSA9IFtudW1iZXIsIG51bWJlcl07XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbnR5cGUgUmFuZ2VOb2RlID0gRVNUcmVlLk5vZGUgJiB7XG4gIC8qKiBTb3VyY2UgcmFuZ2UgdHVwbGUgZm9yIHRoZSBub2RlLiAqL1xuICByYW5nZTogUmFuZ2U7XG59O1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBvYmplY3QgbGl0ZXJhbCByZXR1cm5lZCBmcm9tIGEgbW9jayBmYWN0b3J5LlxuICogQHBhcmFtIGZhY3RvcnlFeHByZXNzaW9uIEZhY3RvcnkgZXhwcmVzc2lvbiBmcm9tIGB2aS5tb2NrYCBvciBgdmkuZG9Nb2NrYC5cbiAqIEByZXR1cm5zIFJldHVybmVkIG9iamVjdCBleHByZXNzaW9uIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXN1bHQgPSBnZXRGYWN0b3J5UmV0dXJuT2JqZWN0KHsgdHlwZTogXCJJZGVudGlmaWVyXCIgfSBhcyBuZXZlcik7XG4gKiB2b2lkIHJlc3VsdDtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRGYWN0b3J5UmV0dXJuT2JqZWN0KFxuICBmYWN0b3J5RXhwcmVzc2lvbjogRVNUcmVlLkV4cHJlc3Npb24sXG4pOiBFU1RyZWUuT2JqZWN0RXhwcmVzc2lvbiB8IHVuZGVmaW5lZCB7XG4gIGlmIChmYWN0b3J5RXhwcmVzc2lvbi50eXBlICE9PSBcIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCIpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgeyBib2R5IH0gPSBmYWN0b3J5RXhwcmVzc2lvbjtcbiAgaWYgKGJvZHkudHlwZSA9PT0gXCJPYmplY3RFeHByZXNzaW9uXCIpIHtcbiAgICByZXR1cm4gYm9keTtcbiAgfVxuICBpZiAoYm9keS50eXBlICE9PSBcIkJsb2NrU3RhdGVtZW50XCIpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgcmV0dXJuU3RhdGVtZW50ID0gYm9keS5ib2R5LmZpbmQoXG4gICAgKHN0YXRlbWVudCk6IHN0YXRlbWVudCBpcyBFU1RyZWUuUmV0dXJuU3RhdGVtZW50ID0+XG4gICAgICBzdGF0ZW1lbnQudHlwZSA9PT0gXCJSZXR1cm5TdGF0ZW1lbnRcIixcbiAgKTtcbiAgY29uc3QgcmV0dXJuQXJndW1lbnQgPSByZXR1cm5TdGF0ZW1lbnQ/LmFyZ3VtZW50O1xuICByZXR1cm4gcmV0dXJuQXJndW1lbnQ/LnR5cGUgPT09IFwiT2JqZWN0RXhwcmVzc2lvblwiID8gcmV0dXJuQXJndW1lbnQgOiB2b2lkIDA7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgYSBtb2R1bGUgc3BlY2lmaWVyIHN0cmluZyBmcm9tIGEgbW9jayBjYWxsIGFyZ3VtZW50LlxuICogQHBhcmFtIG1vZHVsZUFyZ3VtZW50IEZpcnN0IGFyZ3VtZW50IG9mIGB2aS5tb2NrYCBvciBgdmkuZG9Nb2NrYC5cbiAqIEByZXR1cm5zIFN0cmluZyBtb2R1bGUgc3BlY2lmaWVyIHdoZW4gYXZhaWxhYmxlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHNwZWNpZmllciA9IGdldE1vZHVsZVNwZWNpZmllcih7IHR5cGU6IFwiTGl0ZXJhbFwiLCB2YWx1ZTogXCIuL3hcIiB9IGFzIG5ldmVyKTtcbiAqIHZvaWQgc3BlY2lmaWVyO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldE1vZHVsZVNwZWNpZmllcihcbiAgbW9kdWxlQXJndW1lbnQ6IEVTVHJlZS5FeHByZXNzaW9uLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKG1vZHVsZUFyZ3VtZW50LnR5cGUgPT09IFwiSW1wb3J0RXhwcmVzc2lvblwiKSB7XG4gICAgY29uc3QgeyBzb3VyY2UgfSA9IG1vZHVsZUFyZ3VtZW50O1xuICAgIHJldHVybiBzb3VyY2UudHlwZSA9PT0gXCJMaXRlcmFsXCIgJiYgdHlwZW9mIHNvdXJjZS52YWx1ZSA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyBzb3VyY2UudmFsdWVcbiAgICAgIDogdm9pZCAwO1xuICB9XG5cbiAgcmV0dXJuIG1vZHVsZUFyZ3VtZW50LnR5cGUgPT09IFwiTGl0ZXJhbFwiICYmXG4gICAgdHlwZW9mIG1vZHVsZUFyZ3VtZW50LnZhbHVlID09PSBcInN0cmluZ1wiXG4gICAgPyBtb2R1bGVBcmd1bWVudC52YWx1ZVxuICAgIDogdm9pZCAwO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgdGhlIG5ld2xpbmUgc2VxdWVuY2UgdXNlZCBpbiBzb3VyY2UgdGV4dC5cbiAqIEBwYXJhbSBzb3VyY2VUZXh0IEZ1bGwgc291cmNlIHRleHQuXG4gKiBAcmV0dXJucyBEZXRlY3RlZCBuZXdsaW5lIHNlcXVlbmNlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5ld2xpbmUgPSBnZXROZXdsaW5lKFwiYVxcclxcbmJcIik7XG4gKiB2b2lkIG5ld2xpbmU7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZ2V0TmV3bGluZShzb3VyY2VUZXh0OiBzdHJpbmcpOiBcIlxcblwiIHwgXCJcXHJcXG5cIiB7XG4gIHJldHVybiBzb3VyY2VUZXh0LmluY2x1ZGVzKFwiXFxyXFxuXCIpID8gXCJcXHJcXG5cIiA6IFwiXFxuXCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBub2RlIGluY2x1ZGVzIGEgbnVtZXJpYyBgcmFuZ2VgIHR1cGxlLlxuICogQHBhcmFtIG5vZGUgTm9kZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBub2RlIGhhcyBhIHZhbGlkIGByYW5nZWAuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb2sgPSBoYXNSYW5nZSh7IHJhbmdlOiBbMCwgMV0gfSBhcyBuZXZlcik7XG4gKiB2b2lkIG9rO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGhhc1JhbmdlKG5vZGU6IEVTVHJlZS5Ob2RlKTogbm9kZSBpcyBSYW5nZU5vZGUge1xuICBjb25zdCByYW5nZVZhbHVlID0gKG5vZGUgYXMgdW5rbm93biBhcyBPcHRpb25hbFJhbmdlRmllbGQpLnJhbmdlO1xuICByZXR1cm4gKFxuICAgIEFycmF5LmlzQXJyYXkocmFuZ2VWYWx1ZSkgJiZcbiAgICByYW5nZVZhbHVlLmxlbmd0aCA9PT0gMiAmJlxuICAgIHR5cGVvZiByYW5nZVZhbHVlWzBdID09PSBcIm51bWJlclwiICYmXG4gICAgdHlwZW9mIHJhbmdlVmFsdWVbMV0gPT09IFwibnVtYmVyXCJcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgd2hlbiBhbiBleHByZXNzaW9uIGlzIGEgYHZpLmZuKC4uLilgIGNhbGwuXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBFeHByZXNzaW9uIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGV4cHJlc3Npb24gaXMgYSBgdmkuZm5gIGNhbGwuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb2sgPSBpc1ZpRnVuY3Rpb25DYWxsKG51bGwpO1xuICogdm9pZCBvaztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBpc1ZpRnVuY3Rpb25DYWxsKGV4cHJlc3Npb246IEVTVHJlZS5FeHByZXNzaW9uIHwgbnVsbCk6IGJvb2xlYW4ge1xuICBpZiAoZXhwcmVzc2lvbj8udHlwZSAhPT0gXCJDYWxsRXhwcmVzc2lvblwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChleHByZXNzaW9uLmNhbGxlZS50eXBlICE9PSBcIk1lbWJlckV4cHJlc3Npb25cIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHsgb2JqZWN0LCBwcm9wZXJ0eSB9ID0gZXhwcmVzc2lvbi5jYWxsZWU7XG4gIHJldHVybiAoXG4gICAgb2JqZWN0LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgb2JqZWN0Lm5hbWUgPT09IFwidmlcIiAmJlxuICAgIHByb3BlcnR5LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgcHJvcGVydHkubmFtZSA9PT0gXCJmblwiXG4gICk7XG59XG5cbmV4cG9ydCB0eXBlIHsgUmFuZ2UgfTtcbmV4cG9ydCB7XG4gIGdldEZhY3RvcnlSZXR1cm5PYmplY3QsXG4gIGdldE1vZHVsZVNwZWNpZmllcixcbiAgZ2V0TmV3bGluZSxcbiAgaGFzUmFuZ2UsXG4gIGlzVmlGdW5jdGlvbkNhbGwsXG59O1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"match-imports.d.ts","sourceRoot":"","sources":["../../../src/testing/prefer-vi-mocked-import/match-imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAwK1C;;;;;;;;;;;GAWG;AACH,iBAAS,iBAAiB,CACxB,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,MAAM,EAAE,GACd,UAAU,CASZ;AAqBD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
import { hasRange } from "./match-helpers";
|
|
2
|
-
/**
|
|
3
|
-
* Builds an import plan for insertion mode.
|
|
4
|
-
* @param moduleSpecifier Target module path.
|
|
5
|
-
* @param names Names to import.
|
|
6
|
-
* @param afterRange Range to insert after.
|
|
7
|
-
* @returns Insert plan payload.
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* const plan = createInsertPlan("./x", ["a"], [0, 1]);
|
|
11
|
-
* void plan;
|
|
12
|
-
* ```
|
|
13
|
-
*/
|
|
14
|
-
function createInsertPlan(moduleSpecifier, names, afterRange) {
|
|
15
|
-
return afterRange === void 0
|
|
16
|
-
? { insert: {}, moduleSpecifier, names }
|
|
17
|
-
: { insert: { afterRange }, moduleSpecifier, names };
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Builds an import plan for update mode.
|
|
21
|
-
* @param statement Existing import declaration.
|
|
22
|
-
* @param moduleSpecifier Target module path.
|
|
23
|
-
* @param names Names to import.
|
|
24
|
-
* @returns Update plan payload.
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* const plan = createUpdatePlan({ specifiers: [], source: { type: "Literal", value: "./x" }, type: "ImportDeclaration", range: [0, 1] } as never, "./x", ["a"]);
|
|
28
|
-
* void plan;
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
function createUpdatePlan(statement, moduleSpecifier, names) {
|
|
32
|
-
if (hasNamespaceImport(statement)) {
|
|
33
|
-
return createInsertPlan(moduleSpecifier, names, statement.range);
|
|
34
|
-
}
|
|
35
|
-
const defaultImportName = getDefaultImportName(statement);
|
|
36
|
-
const baseUpdate = {
|
|
37
|
-
existingNamedImports: getNamedImports(statement),
|
|
38
|
-
range: statement.range,
|
|
39
|
-
};
|
|
40
|
-
const update = defaultImportName === void 0
|
|
41
|
-
? baseUpdate
|
|
42
|
-
: { ...baseUpdate, defaultImportName };
|
|
43
|
-
return {
|
|
44
|
-
moduleSpecifier,
|
|
45
|
-
names,
|
|
46
|
-
update,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Returns the default import local name.
|
|
51
|
-
* @param statement Import declaration.
|
|
52
|
-
* @returns Default local name when present.
|
|
53
|
-
* @example
|
|
54
|
-
* ```typescript
|
|
55
|
-
* const localName = getDefaultImportName({ specifiers: [], type: "ImportDeclaration" } as never);
|
|
56
|
-
* void localName;
|
|
57
|
-
* ```
|
|
58
|
-
*/
|
|
59
|
-
function getDefaultImportName(statement) {
|
|
60
|
-
const defaultSpecifier = statement.specifiers.find((specifier) => specifier.type === "ImportDefaultSpecifier");
|
|
61
|
-
return defaultSpecifier?.local.name;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Filters top-level import declarations that include a `range`.
|
|
65
|
-
* @param program Program node.
|
|
66
|
-
* @returns Import declarations with stable ranges.
|
|
67
|
-
* @example
|
|
68
|
-
* ```typescript
|
|
69
|
-
* const imports = getImportDeclarations({ body: [], sourceType: "module", type: "Program" } as never);
|
|
70
|
-
* void imports;
|
|
71
|
-
* ```
|
|
72
|
-
*/
|
|
73
|
-
function getImportDeclarations(program) {
|
|
74
|
-
return program.body.filter((statement) => statement.type === "ImportDeclaration" && hasRange(statement));
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Returns all named imports from a declaration.
|
|
78
|
-
* @param statement Import declaration.
|
|
79
|
-
* @returns Named import identifiers.
|
|
80
|
-
* @example
|
|
81
|
-
* ```typescript
|
|
82
|
-
* const named = getNamedImports({ specifiers: [], type: "ImportDeclaration" } as never);
|
|
83
|
-
* void named;
|
|
84
|
-
* ```
|
|
85
|
-
*/
|
|
86
|
-
function getNamedImports(statement) {
|
|
87
|
-
return statement.specifiers.flatMap((specifier) => {
|
|
88
|
-
const importedName = toImportedName(specifier);
|
|
89
|
-
return importedName === void 0 ? [] : [importedName];
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Checks whether an import includes a namespace specifier.
|
|
94
|
-
* @param statement Import declaration.
|
|
95
|
-
* @returns True when declaration includes `* as x` form.
|
|
96
|
-
* @example
|
|
97
|
-
* ```typescript
|
|
98
|
-
* const hasNamespace = hasNamespaceImport({ specifiers: [], type: "ImportDeclaration" } as never);
|
|
99
|
-
* void hasNamespace;
|
|
100
|
-
* ```
|
|
101
|
-
*/
|
|
102
|
-
function hasNamespaceImport(statement) {
|
|
103
|
-
return statement.specifiers.some((specifier) => specifier.type === "ImportNamespaceSpecifier");
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Checks whether an import declaration matches the mocked module.
|
|
107
|
-
* @param statement Import declaration candidate.
|
|
108
|
-
* @param moduleSpecifier Expected module path.
|
|
109
|
-
* @returns True when declaration targets the same module.
|
|
110
|
-
* @example
|
|
111
|
-
* ```typescript
|
|
112
|
-
* const matched = isMatchingImport({ source: { type: "Literal", value: "./x" }, type: "ImportDeclaration" } as never, "./x");
|
|
113
|
-
* void matched;
|
|
114
|
-
* ```
|
|
115
|
-
*/
|
|
116
|
-
function isMatchingImport(statement, moduleSpecifier) {
|
|
117
|
-
const sourceValue = statement.source.value;
|
|
118
|
-
return typeof sourceValue === "string" && sourceValue === moduleSpecifier;
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Resolves whether imports should be updated in place or inserted.
|
|
122
|
-
* @param program Program node to inspect.
|
|
123
|
-
* @param moduleSpecifier Target module path.
|
|
124
|
-
* @param names Import names that must exist.
|
|
125
|
-
* @returns Insert or update plan for the import section.
|
|
126
|
-
* @example
|
|
127
|
-
* ```typescript
|
|
128
|
-
* const plan = resolveImportPlan({ body: [], sourceType: "module", type: "Program" } as never, "./x", ["a"]);
|
|
129
|
-
* void plan;
|
|
130
|
-
* ```
|
|
131
|
-
*/
|
|
132
|
-
function resolveImportPlan(program, moduleSpecifier, names) {
|
|
133
|
-
const imports = getImportDeclarations(program);
|
|
134
|
-
const existingImport = imports.find((statement) => isMatchingImport(statement, moduleSpecifier));
|
|
135
|
-
return existingImport === void 0
|
|
136
|
-
? createInsertPlan(moduleSpecifier, names, imports.at(-1)?.range)
|
|
137
|
-
: createUpdatePlan(existingImport, moduleSpecifier, names);
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Extracts imported identifier name from one specifier.
|
|
141
|
-
* @param specifier Import clause entry.
|
|
142
|
-
* @returns Imported identifier name.
|
|
143
|
-
* @example
|
|
144
|
-
* ```typescript
|
|
145
|
-
* const imported = toImportedName({ type: "ImportSpecifier", imported: { type: "Identifier", name: "x" } } as never);
|
|
146
|
-
* void imported;
|
|
147
|
-
* ```
|
|
148
|
-
*/
|
|
149
|
-
function toImportedName(specifier) {
|
|
150
|
-
return specifier.type === "ImportSpecifier" &&
|
|
151
|
-
specifier.imported.type === "Identifier"
|
|
152
|
-
? specifier.imported.name
|
|
153
|
-
: void 0;
|
|
154
|
-
}
|
|
155
|
-
export { resolveImportPlan };
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtaW1wb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0aW5nL3ByZWZlci12aS1tb2NrZWQtaW1wb3J0L21hdGNoLWltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBZTNDOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FDdkIsZUFBdUIsRUFDdkIsS0FBZSxFQUNmLFVBQTZCO0lBRTdCLE9BQU8sVUFBVSxLQUFLLEtBQUssQ0FBQztRQUMxQixDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUU7UUFDeEMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ3pELENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQVMsZ0JBQWdCLENBQ3ZCLFNBQWtDLEVBQ2xDLGVBQXVCLEVBQ3ZCLEtBQWU7SUFFZixJQUFJLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDbEMsT0FBTyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsTUFBTSxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRCxNQUFNLFVBQVUsR0FBRztRQUNqQixvQkFBb0IsRUFBRSxlQUFlLENBQUMsU0FBUyxDQUFDO1FBQ2hELEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSztLQUN2QixDQUFDO0lBQ0YsTUFBTSxNQUFNLEdBQ1YsaUJBQWlCLEtBQUssS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxVQUFVO1FBQ1osQ0FBQyxDQUFDLEVBQUUsR0FBRyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUs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ImVzdHJlZVwiO1xuXG5pbXBvcnQgdHlwZSB7IFJhbmdlIH0gZnJvbSBcIi4vbWF0Y2gtaGVscGVyc1wiO1xuaW1wb3J0IHR5cGUgeyBJbXBvcnRQbGFuIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHsgaGFzUmFuZ2UgfSBmcm9tIFwiLi9tYXRjaC1oZWxwZXJzXCI7XG5cbi8qKlxuICogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGVjbGFyYXRpb24gPSB7fSBhcyBSYW5nZWRJbXBvcnREZWNsYXJhdGlvbjtcbiAqIHZvaWQgZGVjbGFyYXRpb247XG4gKiBgYGBcbiAqL1xuaW50ZXJmYWNlIFJhbmdlZEltcG9ydERlY2xhcmF0aW9uIGV4dGVuZHMgRVNUcmVlLkltcG9ydERlY2xhcmF0aW9uIHtcbiAgLyoqIEltcG9ydCBkZWNsYXJhdGlvbiBzb3VyY2UgcmFuZ2UuICovXG4gIHJhbmdlOiBSYW5nZTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYW4gaW1wb3J0IHBsYW4gZm9yIGluc2VydGlvbiBtb2RlLlxuICogQHBhcmFtIG1vZHVsZVNwZWNpZmllciBUYXJnZXQgbW9kdWxlIHBhdGguXG4gKiBAcGFyYW0gbmFtZXMgTmFtZXMgdG8gaW1wb3J0LlxuICogQHBhcmFtIGFmdGVyUmFuZ2UgUmFuZ2UgdG8gaW5zZXJ0IGFmdGVyLlxuICogQHJldHVybnMgSW5zZXJ0IHBsYW4gcGF5bG9hZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwbGFuID0gY3JlYXRlSW5zZXJ0UGxhbihcIi4veFwiLCBbXCJhXCJdLCBbMCwgMV0pO1xuICogdm9pZCBwbGFuO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUluc2VydFBsYW4oXG4gIG1vZHVsZVNwZWNpZmllcjogc3RyaW5nLFxuICBuYW1lczogc3RyaW5nW10sXG4gIGFmdGVyUmFuZ2U6IFJhbmdlIHwgdW5kZWZpbmVkLFxuKTogSW1wb3J0UGxhbiB7XG4gIHJldHVybiBhZnRlclJhbmdlID09PSB2b2lkIDBcbiAgICA/IHsgaW5zZXJ0OiB7fSwgbW9kdWxlU3BlY2lmaWVyLCBuYW1lcyB9XG4gICAgOiB7IGluc2VydDogeyBhZnRlclJhbmdlIH0sIG1vZHVsZVNwZWNpZmllciwgbmFtZXMgfTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYW4gaW1wb3J0IHBsYW4gZm9yIHVwZGF0ZSBtb2RlLlxuICogQHBhcmFtIHN0YXRlbWVudCBFeGlzdGluZyBpbXBvcnQgZGVjbGFyYXRpb24uXG4gKiBAcGFyYW0gbW9kdWxlU3BlY2lmaWVyIFRhcmdldCBtb2R1bGUgcGF0aC5cbiAqIEBwYXJhbSBuYW1lcyBOYW1lcyB0byBpbXBvcnQuXG4gKiBAcmV0dXJucyBVcGRhdGUgcGxhbiBwYXlsb2FkLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHBsYW4gPSBjcmVhdGVVcGRhdGVQbGFuKHsgc3BlY2lmaWVyczogW10sIHNvdXJjZTogeyB0eXBlOiBcIkxpdGVyYWxcIiwgdmFsdWU6IFwiLi94XCIgfSwgdHlwZTogXCJJbXBvcnREZWNsYXJhdGlvblwiLCByYW5nZTogWzAsIDFdIH0gYXMgbmV2ZXIsIFwiLi94XCIsIFtcImFcIl0pO1xuICogdm9pZCBwbGFuO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZVBsYW4oXG4gIHN0YXRlbWVudDogUmFuZ2VkSW1wb3J0RGVjbGFyYXRpb24sXG4gIG1vZHVsZVNwZWNpZmllcjogc3RyaW5nLFxuICBuYW1lczogc3RyaW5nW10sXG4pOiBJbXBvcnRQbGFuIHtcbiAgaWYgKGhhc05hbWVzcGFjZUltcG9ydChzdGF0ZW1lbnQpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUluc2VydFBsYW4obW9kdWxlU3BlY2lmaWVyLCBuYW1lcywgc3RhdGVtZW50LnJhbmdlKTtcbiAgfVxuXG4gIGNvbnN0IGRlZmF1bHRJbXBvcnROYW1lID0gZ2V0RGVmYXVsdEltcG9ydE5hbWUoc3RhdGVtZW50KTtcbiAgY29uc3QgYmFzZVVwZGF0ZSA9IHtcbiAgICBleGlzdGluZ05hbWVkSW1wb3J0czogZ2V0TmFtZWRJbXBvcnRzKHN0YXRlbWVudCksXG4gICAgcmFuZ2U6IHN0YXRlbWVudC5yYW5nZSxcbiAgfTtcbiAgY29uc3QgdXBkYXRlID1cbiAgICBkZWZhdWx0SW1wb3J0TmFtZSA9PT0gdm9pZCAwXG4gICAgICA/IGJhc2VVcGRhdGVcbiAgICAgIDogeyAuLi5iYXNlVXBkYXRlLCBkZWZhdWx0SW1wb3J0TmFtZSB9O1xuXG4gIHJldHVybiB7XG4gICAgbW9kdWxlU3BlY2lmaWVyLFxuICAgIG5hbWVzLFxuICAgIHVwZGF0ZSxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBkZWZhdWx0IGltcG9ydCBsb2NhbCBuYW1lLlxuICogQHBhcmFtIHN0YXRlbWVudCBJbXBvcnQgZGVjbGFyYXRpb24uXG4gKiBAcmV0dXJucyBEZWZhdWx0IGxvY2FsIG5hbWUgd2hlbiBwcmVzZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGxvY2FsTmFtZSA9IGdldERlZmF1bHRJbXBvcnROYW1lKHsgc3BlY2lmaWVyczogW10sIHR5cGU6IFwiSW1wb3J0RGVjbGFyYXRpb25cIiB9IGFzIG5ldmVyKTtcbiAqIHZvaWQgbG9jYWxOYW1lO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldERlZmF1bHRJbXBvcnROYW1lKFxuICBzdGF0ZW1lbnQ6IEVTVHJlZS5JbXBvcnREZWNsYXJhdGlvbixcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGRlZmF1bHRTcGVjaWZpZXIgPSBzdGF0ZW1lbnQuc3BlY2lmaWVycy5maW5kKFxuICAgIChzcGVjaWZpZXIpOiBzcGVjaWZpZXIgaXMgRVNUcmVlLkltcG9ydERlZmF1bHRTcGVjaWZpZXIgPT5cbiAgICAgIHNwZWNpZmllci50eXBlID09PSBcIkltcG9ydERlZmF1bHRTcGVjaWZpZXJcIixcbiAgKTtcbiAgcmV0dXJuIGRlZmF1bHRTcGVjaWZpZXI/LmxvY2FsLm5hbWU7XG59XG5cbi8qKlxuICogRmlsdGVycyB0b3AtbGV2ZWwgaW1wb3J0IGRlY2xhcmF0aW9ucyB0aGF0IGluY2x1ZGUgYSBgcmFuZ2VgLlxuICogQHBhcmFtIHByb2dyYW0gUHJvZ3JhbSBub2RlLlxuICogQHJldHVybnMgSW1wb3J0IGRlY2xhcmF0aW9ucyB3aXRoIHN0YWJsZSByYW5nZXMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaW1wb3J0cyA9IGdldEltcG9ydERlY2xhcmF0aW9ucyh7IGJvZHk6IFtdLCBzb3VyY2VUeXBlOiBcIm1vZHVsZVwiLCB0eXBlOiBcIlByb2dyYW1cIiB9IGFzIG5ldmVyKTtcbiAqIHZvaWQgaW1wb3J0cztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRJbXBvcnREZWNsYXJhdGlvbnMoXG4gIHByb2dyYW06IEVTVHJlZS5Qcm9ncmFtLFxuKTogUmFuZ2VkSW1wb3J0RGVjbGFyYXRpb25bXSB7XG4gIHJldHVybiBwcm9ncmFtLmJvZHkuZmlsdGVyKFxuICAgIChzdGF0ZW1lbnQpOiBzdGF0ZW1lbnQgaXMgUmFuZ2VkSW1wb3J0RGVjbGFyYXRpb24gPT5cbiAgICAgIHN0YXRlbWVudC50eXBlID09PSBcIkltcG9ydERlY2xhcmF0aW9uXCIgJiYgaGFzUmFuZ2Uoc3RhdGVtZW50KSxcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFsbCBuYW1lZCBpbXBvcnRzIGZyb20gYSBkZWNsYXJhdGlvbi5cbiAqIEBwYXJhbSBzdGF0ZW1lbnQgSW1wb3J0IGRlY2xhcmF0aW9uLlxuICogQHJldHVybnMgTmFtZWQgaW1wb3J0IGlkZW50aWZpZXJzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5hbWVkID0gZ2V0TmFtZWRJbXBvcnRzKHsgc3BlY2lmaWVyczogW10sIHR5cGU6IFwiSW1wb3J0RGVjbGFyYXRpb25cIiB9IGFzIG5ldmVyKTtcbiAqIHZvaWQgbmFtZWQ7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZ2V0TmFtZWRJbXBvcnRzKHN0YXRlbWVudDogRVNUcmVlLkltcG9ydERlY2xhcmF0aW9uKTogc3RyaW5nW10ge1xuICByZXR1cm4gc3RhdGVtZW50LnNwZWNpZmllcnMuZmxhdE1hcCgoc3BlY2lmaWVyKSA9PiB7XG4gICAgY29uc3QgaW1wb3J0ZWROYW1lID0gdG9JbXBvcnRlZE5hbWUoc3BlY2lmaWVyKTtcbiAgICByZXR1cm4gaW1wb3J0ZWROYW1lID09PSB2b2lkIDAgPyBbXSA6IFtpbXBvcnRlZE5hbWVdO1xuICB9KTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhbiBpbXBvcnQgaW5jbHVkZXMgYSBuYW1lc3BhY2Ugc3BlY2lmaWVyLlxuICogQHBhcmFtIHN0YXRlbWVudCBJbXBvcnQgZGVjbGFyYXRpb24uXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gZGVjbGFyYXRpb24gaW5jbHVkZXMgYCogYXMgeGAgZm9ybS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBoYXNOYW1lc3BhY2UgPSBoYXNOYW1lc3BhY2VJbXBvcnQoeyBzcGVjaWZpZXJzOiBbXSwgdHlwZTogXCJJbXBvcnREZWNsYXJhdGlvblwiIH0gYXMgbmV2ZXIpO1xuICogdm9pZCBoYXNOYW1lc3BhY2U7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaGFzTmFtZXNwYWNlSW1wb3J0KHN0YXRlbWVudDogRVNUcmVlLkltcG9ydERlY2xhcmF0aW9uKTogYm9vbGVhbiB7XG4gIHJldHVybiBzdGF0ZW1lbnQuc3BlY2lmaWVycy5zb21lKFxuICAgIChzcGVjaWZpZXIpID0+IHNwZWNpZmllci50eXBlID09PSBcIkltcG9ydE5hbWVzcGFjZVNwZWNpZmllclwiLFxuICApO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIGltcG9ydCBkZWNsYXJhdGlvbiBtYXRjaGVzIHRoZSBtb2NrZWQgbW9kdWxlLlxuICogQHBhcmFtIHN0YXRlbWVudCBJbXBvcnQgZGVjbGFyYXRpb24gY2FuZGlkYXRlLlxuICogQHBhcmFtIG1vZHVsZVNwZWNpZmllciBFeHBlY3RlZCBtb2R1bGUgcGF0aC5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiBkZWNsYXJhdGlvbiB0YXJnZXRzIHRoZSBzYW1lIG1vZHVsZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBtYXRjaGVkID0gaXNNYXRjaGluZ0ltcG9ydCh7IHNvdXJjZTogeyB0eXBlOiBcIkxpdGVyYWxcIiwgdmFsdWU6IFwiLi94XCIgfSwgdHlwZTogXCJJbXBvcnREZWNsYXJhdGlvblwiIH0gYXMgbmV2ZXIsIFwiLi94XCIpO1xuICogdm9pZCBtYXRjaGVkO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGlzTWF0Y2hpbmdJbXBvcnQoXG4gIHN0YXRlbWVudDogRVNUcmVlLkltcG9ydERlY2xhcmF0aW9uLFxuICBtb2R1bGVTcGVjaWZpZXI6IHN0cmluZyxcbik6IGJvb2xlYW4ge1xuICBjb25zdCBzb3VyY2VWYWx1ZSA9IHN0YXRlbWVudC5zb3VyY2UudmFsdWU7XG4gIHJldHVybiB0eXBlb2Ygc291cmNlVmFsdWUgPT09IFwic3RyaW5nXCIgJiYgc291cmNlVmFsdWUgPT09IG1vZHVsZVNwZWNpZmllcjtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB3aGV0aGVyIGltcG9ydHMgc2hvdWxkIGJlIHVwZGF0ZWQgaW4gcGxhY2Ugb3IgaW5zZXJ0ZWQuXG4gKiBAcGFyYW0gcHJvZ3JhbSBQcm9ncmFtIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSBtb2R1bGVTcGVjaWZpZXIgVGFyZ2V0IG1vZHVsZSBwYXRoLlxuICogQHBhcmFtIG5hbWVzIEltcG9ydCBuYW1lcyB0aGF0IG11c3QgZXhpc3QuXG4gKiBAcmV0dXJucyBJbnNlcnQgb3IgdXBkYXRlIHBsYW4gZm9yIHRoZSBpbXBvcnQgc2VjdGlvbi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwbGFuID0gcmVzb2x2ZUltcG9ydFBsYW4oeyBib2R5OiBbXSwgc291cmNlVHlwZTogXCJtb2R1bGVcIiwgdHlwZTogXCJQcm9ncmFtXCIgfSBhcyBuZXZlciwgXCIuL3hcIiwgW1wiYVwiXSk7XG4gKiB2b2lkIHBsYW47XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUltcG9ydFBsYW4oXG4gIHByb2dyYW06IEVTVHJlZS5Qcm9ncmFtLFxuICBtb2R1bGVTcGVjaWZpZXI6IHN0cmluZyxcbiAgbmFtZXM6IHN0cmluZ1tdLFxuKTogSW1wb3J0UGxhbiB7XG4gIGNvbnN0IGltcG9ydHMgPSBnZXRJbXBvcnREZWNsYXJhdGlvbnMocHJvZ3JhbSk7XG4gIGNvbnN0IGV4aXN0aW5nSW1wb3J0ID0gaW1wb3J0cy5maW5kKChzdGF0ZW1lbnQpID0+XG4gICAgaXNNYXRjaGluZ0ltcG9ydChzdGF0ZW1lbnQsIG1vZHVsZVNwZWNpZmllciksXG4gICk7XG5cbiAgcmV0dXJuIGV4aXN0aW5nSW1wb3J0ID09PSB2b2lkIDBcbiAgICA/IGNyZWF0ZUluc2VydFBsYW4obW9kdWxlU3BlY2lmaWVyLCBuYW1lcywgaW1wb3J0cy5hdCgtMSk/LnJhbmdlKVxuICAgIDogY3JlYXRlVXBkYXRlUGxhbihleGlzdGluZ0ltcG9ydCwgbW9kdWxlU3BlY2lmaWVyLCBuYW1lcyk7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgaW1wb3J0ZWQgaWRlbnRpZmllciBuYW1lIGZyb20gb25lIHNwZWNpZmllci5cbiAqIEBwYXJhbSBzcGVjaWZpZXIgSW1wb3J0IGNsYXVzZSBlbnRyeS5cbiAqIEByZXR1cm5zIEltcG9ydGVkIGlkZW50aWZpZXIgbmFtZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBpbXBvcnRlZCA9IHRvSW1wb3J0ZWROYW1lKHsgdHlwZTogXCJJbXBvcnRTcGVjaWZpZXJcIiwgaW1wb3J0ZWQ6IHsgdHlwZTogXCJJZGVudGlmaWVyXCIsIG5hbWU6IFwieFwiIH0gfSBhcyBuZXZlcik7XG4gKiB2b2lkIGltcG9ydGVkO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHRvSW1wb3J0ZWROYW1lKFxuICBzcGVjaWZpZXI6IEVTVHJlZS5JbXBvcnREZWNsYXJhdGlvbltcInNwZWNpZmllcnNcIl1bbnVtYmVyXSxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBzcGVjaWZpZXIudHlwZSA9PT0gXCJJbXBvcnRTcGVjaWZpZXJcIiAmJlxuICAgIHNwZWNpZmllci5pbXBvcnRlZC50eXBlID09PSBcIklkZW50aWZpZXJcIlxuICAgID8gc3BlY2lmaWVyLmltcG9ydGVkLm5hbWVcbiAgICA6IHZvaWQgMDtcbn1cblxuZXhwb3J0IHsgcmVzb2x2ZUltcG9ydFBsYW4gfTtcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"match-rewrites.d.ts","sourceRoot":"","sources":["../../../src/testing/prefer-vi-mocked-import/match-rewrites.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAyBnE;;;;;;;;;;;GAWG;AACH,iBAAS,qBAAqB,CAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,EACpC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GACtB,OAAO,CAkBT;AAED;;;;;;;;;;;GAWG;AACH,iBAAS,kBAAkB,CACzB,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACtC,QAAQ,EAAE,aAAa,EAAE,GACxB,GAAG,CAAC,MAAM,CAAC,CAkBb;AAED;;;;;;;;;;GAUG;AACH,iBAAS,qBAAqB,CAC5B,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,aAAa,EAAE,CAUjB;AAqCD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { hasRange } from "./match-helpers";
|
|
2
|
-
import { walkNode } from "./match-walk";
|
|
3
|
-
/**
|
|
4
|
-
* Adds declaration identifier range to the allowed set.
|
|
5
|
-
* @param allowedRanges Allowed range set.
|
|
6
|
-
* @param declaration Declaration to include.
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* const allowed = new Set<string>();
|
|
10
|
-
* addDeclarationIdRange(allowed, void 0);
|
|
11
|
-
* ```
|
|
12
|
-
*/
|
|
13
|
-
function addDeclarationIdRange(allowedRanges, declaration) {
|
|
14
|
-
if (declaration !== void 0) {
|
|
15
|
-
const rangeKey = `${declaration.declarationIdRange[0]}:${declaration.declarationIdRange[1]}`;
|
|
16
|
-
allowedRanges.add(rangeKey);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Returns false if a binding local is used outside allowed rewrite sites.
|
|
21
|
-
* @param program Program node containing mock usage.
|
|
22
|
-
* @param allowedIdentifierRanges Identifier ranges that are safe to rewrite.
|
|
23
|
-
* @param localNames Local names tracked by the matcher.
|
|
24
|
-
* @returns True when all local usages are safe.
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* const safe = areLocalsSafeToInline({ body: [], sourceType: "module", type: "Program" } as never, new Set(), new Set());
|
|
28
|
-
* void safe;
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
function areLocalsSafeToInline(program, allowedIdentifierRanges, localNames) {
|
|
32
|
-
let isSafe = true;
|
|
33
|
-
walkNode(program, (currentNode) => {
|
|
34
|
-
if (!isSafe ||
|
|
35
|
-
currentNode.type !== "Identifier" ||
|
|
36
|
-
!hasRange(currentNode)) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
const key = `${currentNode.range[0]}:${currentNode.range[1]}`;
|
|
40
|
-
if (localNames.has(currentNode.name) && !allowedIdentifierRanges.has(key)) {
|
|
41
|
-
isSafe = false;
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
return isSafe;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Builds a set of allowed identifier ranges for safe-inline validation.
|
|
48
|
-
* @param bindings Bindings list.
|
|
49
|
-
* @param declarations Declarations map.
|
|
50
|
-
* @param rewrites Member rewrites.
|
|
51
|
-
* @returns Allowed identifier range keys.
|
|
52
|
-
* @example
|
|
53
|
-
* ```typescript
|
|
54
|
-
* const ranges = buildAllowedRanges([], new Map(), []);
|
|
55
|
-
* void ranges;
|
|
56
|
-
* ```
|
|
57
|
-
*/
|
|
58
|
-
function buildAllowedRanges(bindings, declarations, rewrites) {
|
|
59
|
-
const allowedRanges = new Set();
|
|
60
|
-
for (const binding of bindings) {
|
|
61
|
-
allowedRanges.add(`${binding.propertyKeyRange[0]}:${binding.propertyKeyRange[1]}`);
|
|
62
|
-
allowedRanges.add(`${binding.propertyValueRange[0]}:${binding.propertyValueRange[1]}`);
|
|
63
|
-
addDeclarationIdRange(allowedRanges, declarations.get(binding.localName));
|
|
64
|
-
}
|
|
65
|
-
for (const rewrite of rewrites) {
|
|
66
|
-
allowedRanges.add(`${rewrite.localObjectRange[0]}:${rewrite.localObjectRange[1]}`);
|
|
67
|
-
}
|
|
68
|
-
return allowedRanges;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Collects member-expression object rewrites for `.mock*` calls.
|
|
72
|
-
* @param program Program node.
|
|
73
|
-
* @param localToExported Local to exported name map.
|
|
74
|
-
* @returns Collected member rewrites.
|
|
75
|
-
* @example
|
|
76
|
-
* ```typescript
|
|
77
|
-
* const rewrites = collectMemberRewrites({ body: [], sourceType: "module", type: "Program" } as never, new Map());
|
|
78
|
-
* void rewrites;
|
|
79
|
-
* ```
|
|
80
|
-
*/
|
|
81
|
-
function collectMemberRewrites(program, localToExported) {
|
|
82
|
-
const rewrites = [];
|
|
83
|
-
walkNode(program, (currentNode) => {
|
|
84
|
-
const rewrite = toMemberRewrite(currentNode, localToExported);
|
|
85
|
-
if (rewrite !== void 0) {
|
|
86
|
-
rewrites.push(rewrite);
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
return rewrites;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Converts a node into a member rewrite when supported.
|
|
93
|
-
* @param currentNode Candidate node.
|
|
94
|
-
* @param localToExported Local to exported name map.
|
|
95
|
-
* @returns Member rewrite when node is supported.
|
|
96
|
-
* @example
|
|
97
|
-
* ```typescript
|
|
98
|
-
* const rewrite = toMemberRewrite({ type: "Identifier", name: "x" } as never, new Map());
|
|
99
|
-
* void rewrite;
|
|
100
|
-
* ```
|
|
101
|
-
*/
|
|
102
|
-
function toMemberRewrite(currentNode, localToExported) {
|
|
103
|
-
if (currentNode.type !== "MemberExpression") {
|
|
104
|
-
return void 0;
|
|
105
|
-
}
|
|
106
|
-
const { object, property } = currentNode;
|
|
107
|
-
if (object.type !== "Identifier" ||
|
|
108
|
-
!hasRange(object) ||
|
|
109
|
-
property.type !== "Identifier" ||
|
|
110
|
-
!property.name.startsWith("mock")) {
|
|
111
|
-
return void 0;
|
|
112
|
-
}
|
|
113
|
-
const exportedName = localToExported.get(object.name);
|
|
114
|
-
return exportedName === void 0
|
|
115
|
-
? void 0
|
|
116
|
-
: { exportedName, localObjectRange: object.range };
|
|
117
|
-
}
|
|
118
|
-
export { areLocalsSafeToInline, buildAllowedRanges, collectMemberRewrites };
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtcmV3cml0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdGluZy9wcmVmZXItdmktbW9ja2VkLWltcG9ydC9tYXRjaC1yZXdyaXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV4Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLHFCQUFxQixDQUM1QixhQUEwQixFQUMxQixXQUFvQztJQUVwQyxJQUFJLFdBQVcsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzNCLE1BQU0sUUFBUSxHQUFHLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdGLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQVMscUJBQXFCLENBQzVCLE9BQXVCLEVBQ3ZCLHVCQUFvQyxFQUNwQyxVQUF1QjtJQUV2QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDbEIsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFO1FBQ2hDLElBQ0UsQ0FBQyxNQUFNO1lBQ1AsV0FBVyxDQUFDLElBQUksS0FBSyxZQUFZO1lBQ2pDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUN0QixDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlELElBQUksVUFBVSxDQUFDLEdBQUcsQ0FB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QkFBcUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xuXG5pbXBvcnQgdHlwZSB7IEJpbmRpbmcsIERlY2xhcmF0aW9uLCBNZW1iZXJSZXdyaXRlIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHsgaGFzUmFuZ2UgfSBmcm9tIFwiLi9tYXRjaC1oZWxwZXJzXCI7XG5pbXBvcnQgeyB3YWxrTm9kZSB9IGZyb20gXCIuL21hdGNoLXdhbGtcIjtcblxuLyoqXG4gKiBBZGRzIGRlY2xhcmF0aW9uIGlkZW50aWZpZXIgcmFuZ2UgdG8gdGhlIGFsbG93ZWQgc2V0LlxuICogQHBhcmFtIGFsbG93ZWRSYW5nZXMgQWxsb3dlZCByYW5nZSBzZXQuXG4gKiBAcGFyYW0gZGVjbGFyYXRpb24gRGVjbGFyYXRpb24gdG8gaW5jbHVkZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBhbGxvd2VkID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gKiBhZGREZWNsYXJhdGlvbklkUmFuZ2UoYWxsb3dlZCwgdm9pZCAwKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBhZGREZWNsYXJhdGlvbklkUmFuZ2UoXG4gIGFsbG93ZWRSYW5nZXM6IFNldDxzdHJpbmc+LFxuICBkZWNsYXJhdGlvbjogRGVjbGFyYXRpb24gfCB1bmRlZmluZWQsXG4pOiB2b2lkIHtcbiAgaWYgKGRlY2xhcmF0aW9uICE9PSB2b2lkIDApIHtcbiAgICBjb25zdCByYW5nZUtleSA9IGAke2RlY2xhcmF0aW9uLmRlY2xhcmF0aW9uSWRSYW5nZVswXX06JHtkZWNsYXJhdGlvbi5kZWNsYXJhdGlvbklkUmFuZ2VbMV19YDtcbiAgICBhbGxvd2VkUmFuZ2VzLmFkZChyYW5nZUtleSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIGZhbHNlIGlmIGEgYmluZGluZyBsb2NhbCBpcyB1c2VkIG91dHNpZGUgYWxsb3dlZCByZXdyaXRlIHNpdGVzLlxuICogQHBhcmFtIHByb2dyYW0gUHJvZ3JhbSBub2RlIGNvbnRhaW5pbmcgbW9jayB1c2FnZS5cbiAqIEBwYXJhbSBhbGxvd2VkSWRlbnRpZmllclJhbmdlcyBJZGVudGlmaWVyIHJhbmdlcyB0aGF0IGFyZSBzYWZlIHRvIHJld3JpdGUuXG4gKiBAcGFyYW0gbG9jYWxOYW1lcyBMb2NhbCBuYW1lcyB0cmFja2VkIGJ5IHRoZSBtYXRjaGVyLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIGFsbCBsb2NhbCB1c2FnZXMgYXJlIHNhZmUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc2FmZSA9IGFyZUxvY2Fsc1NhZmVUb0lubGluZSh7IGJvZHk6IFtdLCBzb3VyY2VUeXBlOiBcIm1vZHVsZVwiLCB0eXBlOiBcIlByb2dyYW1cIiB9IGFzIG5ldmVyLCBuZXcgU2V0KCksIG5ldyBTZXQoKSk7XG4gKiB2b2lkIHNhZmU7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gYXJlTG9jYWxzU2FmZVRvSW5saW5lKFxuICBwcm9ncmFtOiBFU1RyZWUuUHJvZ3JhbSxcbiAgYWxsb3dlZElkZW50aWZpZXJSYW5nZXM6IFNldDxzdHJpbmc+LFxuICBsb2NhbE5hbWVzOiBTZXQ8c3RyaW5nPixcbik6IGJvb2xlYW4ge1xuICBsZXQgaXNTYWZlID0gdHJ1ZTtcbiAgd2Fsa05vZGUocHJvZ3JhbSwgKGN1cnJlbnROb2RlKSA9PiB7XG4gICAgaWYgKFxuICAgICAgIWlzU2FmZSB8fFxuICAgICAgY3VycmVudE5vZGUudHlwZSAhPT0gXCJJZGVudGlmaWVyXCIgfHxcbiAgICAgICFoYXNSYW5nZShjdXJyZW50Tm9kZSlcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBrZXkgPSBgJHtjdXJyZW50Tm9kZS5yYW5nZVswXX06JHtjdXJyZW50Tm9kZS5yYW5nZVsxXX1gO1xuICAgIGlmIChsb2NhbE5hbWVzLmhhcyhjdXJyZW50Tm9kZS5uYW1lKSAmJiAhYWxsb3dlZElkZW50aWZpZXJSYW5nZXMuaGFzKGtleSkpIHtcbiAgICAgIGlzU2FmZSA9IGZhbHNlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGlzU2FmZTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBzZXQgb2YgYWxsb3dlZCBpZGVudGlmaWVyIHJhbmdlcyBmb3Igc2FmZS1pbmxpbmUgdmFsaWRhdGlvbi5cbiAqIEBwYXJhbSBiaW5kaW5ncyBCaW5kaW5ncyBsaXN0LlxuICogQHBhcmFtIGRlY2xhcmF0aW9ucyBEZWNsYXJhdGlvbnMgbWFwLlxuICogQHBhcmFtIHJld3JpdGVzIE1lbWJlciByZXdyaXRlcy5cbiAqIEByZXR1cm5zIEFsbG93ZWQgaWRlbnRpZmllciByYW5nZSBrZXlzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJhbmdlcyA9IGJ1aWxkQWxsb3dlZFJhbmdlcyhbXSwgbmV3IE1hcCgpLCBbXSk7XG4gKiB2b2lkIHJhbmdlcztcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBidWlsZEFsbG93ZWRSYW5nZXMoXG4gIGJpbmRpbmdzOiBCaW5kaW5nW10sXG4gIGRlY2xhcmF0aW9uczogTWFwPHN0cmluZywgRGVjbGFyYXRpb24+LFxuICByZXdyaXRlczogTWVtYmVyUmV3cml0ZVtdLFxuKTogU2V0PHN0cmluZz4ge1xuICBjb25zdCBhbGxvd2VkUmFuZ2VzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgYmluZGluZyBvZiBiaW5kaW5ncykge1xuICAgIGFsbG93ZWRSYW5nZXMuYWRkKFxuICAgICAgYCR7YmluZGluZy5wcm9wZXJ0eUtleVJhbmdlWzBdfToke2JpbmRpbmcucHJvcGVydHlLZXlSYW5nZVsxXX1gLFxuICAgICk7XG4gICAgYWxsb3dlZFJhbmdlcy5hZGQoXG4gICAgICBgJHtiaW5kaW5nLnByb3BlcnR5VmFsdWVSYW5nZVswXX06JHtiaW5kaW5nLnByb3BlcnR5VmFsdWVSYW5nZVsxXX1gLFxuICAgICk7XG4gICAgYWRkRGVjbGFyYXRpb25JZFJhbmdlKGFsbG93ZWRSYW5nZXMsIGRlY2xhcmF0aW9ucy5nZXQoYmluZGluZy5sb2NhbE5hbWUpKTtcbiAgfVxuICBmb3IgKGNvbnN0IHJld3JpdGUgb2YgcmV3cml0ZXMpIHtcbiAgICBhbGxvd2VkUmFuZ2VzLmFkZChcbiAgICAgIGAke3Jld3JpdGUubG9jYWxPYmplY3RSYW5nZVswXX06JHtyZXdyaXRlLmxvY2FsT2JqZWN0UmFuZ2VbMV19YCxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGFsbG93ZWRSYW5nZXM7XG59XG5cbi8qKlxuICogQ29sbGVjdHMgbWVtYmVyLWV4cHJlc3Npb24gb2JqZWN0IHJld3JpdGVzIGZvciBgLm1vY2sqYCBjYWxscy5cbiAqIEBwYXJhbSBwcm9ncmFtIFByb2dyYW0gbm9kZS5cbiAqIEBwYXJhbSBsb2NhbFRvRXhwb3J0ZWQgTG9jYWwgdG8gZXhwb3J0ZWQgbmFtZSBtYXAuXG4gKiBAcmV0dXJucyBDb2xsZWN0ZWQgbWVtYmVyIHJld3JpdGVzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJld3JpdGVzID0gY29sbGVjdE1lbWJlclJld3JpdGVzKHsgYm9keTogW10sIHNvdXJjZVR5cGU6IFwibW9kdWxlXCIsIHR5cGU6IFwiUHJvZ3JhbVwiIH0gYXMgbmV2ZXIsIG5ldyBNYXAoKSk7XG4gKiB2b2lkIHJld3JpdGVzO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGNvbGxlY3RNZW1iZXJSZXdyaXRlcyhcbiAgcHJvZ3JhbTogRVNUcmVlLlByb2dyYW0sXG4gIGxvY2FsVG9FeHBvcnRlZDogTWFwPHN0cmluZywgc3RyaW5nPixcbik6IE1lbWJlclJld3JpdGVbXSB7XG4gIGNvbnN0IHJld3JpdGVzOiBNZW1iZXJSZXdyaXRlW10gPSBbXTtcbiAgd2Fsa05vZGUocHJvZ3JhbSwgKGN1cnJlbnROb2RlKSA9PiB7XG4gICAgY29uc3QgcmV3cml0ZSA9IHRvTWVtYmVyUmV3cml0ZShjdXJyZW50Tm9kZSwgbG9jYWxUb0V4cG9ydGVkKTtcbiAgICBpZiAocmV3cml0ZSAhPT0gdm9pZCAwKSB7XG4gICAgICByZXdyaXRlcy5wdXNoKHJld3JpdGUpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHJld3JpdGVzO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgbm9kZSBpbnRvIGEgbWVtYmVyIHJld3JpdGUgd2hlbiBzdXBwb3J0ZWQuXG4gKiBAcGFyYW0gY3VycmVudE5vZGUgQ2FuZGlkYXRlIG5vZGUuXG4gKiBAcGFyYW0gbG9jYWxUb0V4cG9ydGVkIExvY2FsIHRvIGV4cG9ydGVkIG5hbWUgbWFwLlxuICogQHJldHVybnMgTWVtYmVyIHJld3JpdGUgd2hlbiBub2RlIGlzIHN1cHBvcnRlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXdyaXRlID0gdG9NZW1iZXJSZXdyaXRlKHsgdHlwZTogXCJJZGVudGlmaWVyXCIsIG5hbWU6IFwieFwiIH0gYXMgbmV2ZXIsIG5ldyBNYXAoKSk7XG4gKiB2b2lkIHJld3JpdGU7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gdG9NZW1iZXJSZXdyaXRlKFxuICBjdXJyZW50Tm9kZTogRVNUcmVlLk5vZGUsXG4gIGxvY2FsVG9FeHBvcnRlZDogTWFwPHN0cmluZywgc3RyaW5nPixcbik6IE1lbWJlclJld3JpdGUgfCB1bmRlZmluZWQge1xuICBpZiAoY3VycmVudE5vZGUudHlwZSAhPT0gXCJNZW1iZXJFeHByZXNzaW9uXCIpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgeyBvYmplY3QsIHByb3BlcnR5IH0gPSBjdXJyZW50Tm9kZTtcbiAgaWYgKFxuICAgIG9iamVjdC50eXBlICE9PSBcIklkZW50aWZpZXJcIiB8fFxuICAgICFoYXNSYW5nZShvYmplY3QpIHx8XG4gICAgcHJvcGVydHkudHlwZSAhPT0gXCJJZGVudGlmaWVyXCIgfHxcbiAgICAhcHJvcGVydHkubmFtZS5zdGFydHNXaXRoKFwibW9ja1wiKVxuICApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgZXhwb3J0ZWROYW1lID0gbG9jYWxUb0V4cG9ydGVkLmdldChvYmplY3QubmFtZSk7XG4gIHJldHVybiBleHBvcnRlZE5hbWUgPT09IHZvaWQgMFxuICAgID8gdm9pZCAwXG4gICAgOiB7IGV4cG9ydGVkTmFtZSwgbG9jYWxPYmplY3RSYW5nZTogb2JqZWN0LnJhbmdlIH07XG59XG5cbmV4cG9ydCB7IGFyZUxvY2Fsc1NhZmVUb0lubGluZSwgYnVpbGRBbGxvd2VkUmFuZ2VzLCBjb2xsZWN0TWVtYmVyUmV3cml0ZXMgfTtcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"match-walk.d.ts","sourceRoot":"","sources":["../../../src/testing/prefer-vi-mocked-import/match-walk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAqDtC;;;;;;;;GAQG;AACH,iBAAS,QAAQ,CACf,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,GAC1C,IAAI,CAKN;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|