@codeperfect/eslint-plugin 2.1.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/.tsbuildinfo +1 -1
- package/dist/application/custom-rules.d.ts +8 -8
- package/dist/application/custom-rules.js +14 -14
- package/dist/application/index.d.ts +1 -1
- package/dist/application/index.d.ts.map +1 -1
- package/dist/application/index.js +2 -2
- package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts +3 -4
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +5 -3
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +17 -7
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +29 -2
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts +2 -0
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/index.js +3 -1
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.d.ts +5 -0
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.js +247 -0
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts +5 -0
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js +136 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/rule.js +1 -2
- package/dist/domain/architecture/index.d.ts +2 -1
- package/dist/domain/architecture/index.d.ts.map +1 -1
- package/dist/domain/architecture/index.js +3 -2
- package/dist/domain/architecture/no-unused-exports/index.d.ts +3 -0
- package/dist/domain/architecture/no-unused-exports/index.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/index.js +2 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-options.d.ts +50 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-options.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-options.js +141 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts +49 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.js +612 -0
- package/dist/domain/architecture/no-unused-exports/rule.d.ts +5 -0
- package/dist/domain/architecture/no-unused-exports/rule.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/rule.js +82 -0
- package/dist/domain/architecture/no-unused-exports/types.d.ts +32 -0
- package/dist/domain/architecture/no-unused-exports/types.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/types.js +2 -0
- package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
- package/dist/domain/core/no-multiple-declarators/rule.js +53 -4
- package/dist/domain/core/no-multiple-declarators/types.d.ts +3 -1
- package/dist/domain/core/no-multiple-declarators/types.d.ts.map +1 -1
- package/dist/domain/core/no-multiple-declarators/types.js +5 -2
- package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -1
- package/dist/domain/core/prefer-interface-types/rule.js +90 -22
- package/dist/domain/custom-rule-documentation.d.ts +1 -14
- package/dist/domain/custom-rule-documentation.d.ts.map +1 -1
- package/dist/domain/custom-rule-documentation.js +2 -2
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +11 -2
- package/dist/domain/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +1 -1
- package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/rule.js +7 -2
- package/dist/domain/docs/require-example-language/examples.d.ts +4 -15
- package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/examples.js +119 -26
- package/dist/domain/docs/require-example-language/fixes.d.ts +1 -21
- package/dist/domain/docs/require-example-language/fixes.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/fixes.js +5 -2
- package/dist/domain/docs/require-example-language/reporting.d.ts +2 -38
- package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/reporting.js +2 -2
- package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/rule.js +2 -1
- package/dist/domain/docs/require-example-language/types.d.ts +1 -1
- package/dist/domain/docs/require-example-language/types.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/types.js +1 -1
- package/dist/domain/docs/single-line-jsdoc/rule.js +8 -8
- package/dist/domain/index.d.ts +2 -3
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +3 -4
- package/dist/domain/testing/aaa/analyzer.analysis.d.ts +1 -19
- package/dist/domain/testing/aaa/analyzer.analysis.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts +8 -31
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +18 -22
- package/dist/domain/testing/aaa/analyzer.analysis.js +46 -39
- package/dist/domain/testing/aaa/analyzer.assertions.d.ts +1 -17
- package/dist/domain/testing/aaa/analyzer.assertions.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts +1 -3
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +3 -4
- package/dist/domain/testing/aaa/analyzer.assertions.js +5 -33
- package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts +1 -3
- package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.assertions.operands.js +6 -5
- package/dist/domain/testing/aaa/analyzer.classification.d.ts +1 -15
- package/dist/domain/testing/aaa/analyzer.classification.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts +1 -3
- package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.classification.helpers.js +5 -6
- package/dist/domain/testing/aaa/analyzer.classification.js +5 -31
- package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts +1 -3
- package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.classification.traversal.js +3 -5
- package/dist/domain/testing/aaa/analyzer.super.d.ts +1 -7
- package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts +1 -14
- package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.super.helpers.js +2 -4
- package/dist/domain/testing/aaa/analyzer.super.js +5 -20
- package/dist/domain/testing/aaa/index.d.ts +1 -2
- package/dist/domain/testing/aaa/index.d.ts.map +1 -1
- package/dist/domain/testing/aaa/index.js +2 -2
- package/dist/domain/testing/aaa/types.d.ts +1 -1
- package/dist/domain/testing/aaa/types.d.ts.map +1 -1
- package/dist/domain/testing/aaa/types.js +1 -1
- package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -1
- package/dist/domain/testing/assert-actual-expected-names/rule.js +28 -3
- package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts +2 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/index.js +3 -2
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.js +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +78 -16
- package/dist/domain/testing/{require-aaa-sections → enforce-aaa-structure}/missing-section-fixes.d.ts +1 -1
- package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.js +150 -0
- package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-structure/rule.js +166 -7
- package/dist/domain/testing/index.d.ts +0 -3
- package/dist/domain/testing/index.d.ts.map +1 -1
- package/dist/domain/testing/index.js +1 -4
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts +1 -15
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.js +2 -71
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +4 -2
- package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts +1 -13
- package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/fix.js +3 -21
- package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.js +2 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.js +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +6 -6
- package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts +1 -12
- package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match.js +149 -15
- package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -1
- package/dist/domain/testing/require-act-result-capture/rule.js +37 -8
- package/dist/domain/testing/require-test-companion/index.d.ts +0 -1
- package/dist/domain/testing/require-test-companion/index.d.ts.map +1 -1
- package/dist/domain/testing/require-test-companion/index.js +1 -2
- package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts +2 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts.map +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-listeners.js +13 -58
- package/dist/domain/testing/require-test-companion/require-test-companion-options.d.ts +2 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-options.d.ts.map +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-options.js +6 -5
- package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -1
- package/dist/domain/testing/require-test-companion/rule.js +7 -7
- package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -1
- package/dist/domain/testing/single-act-statement/rule.js +6 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/infrastructure/codeperfect-plugin.d.ts +6 -6
- package/dist/infrastructure/codeperfect-plugin.js +5 -5
- package/dist/infrastructure/presets.d.ts.map +1 -1
- package/dist/infrastructure/presets.js +23 -7
- package/package.json +24 -31
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts +0 -41
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +0 -1
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +0 -87
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts +0 -40
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +0 -1
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +0 -91
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts +0 -4
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts.map +0 -1
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.js +0 -4
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.d.ts +0 -141
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.d.ts.map +0 -1
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts +0 -20
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts.map +0 -1
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.js +0 -25
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.js +0 -235
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts +0 -101
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts.map +0 -1
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.js +0 -108
- package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts +0 -35
- package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts.map +0 -1
- package/dist/domain/core/no-multiple-declarators/rule.fixes.js +0 -95
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts +0 -4
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts.map +0 -1
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.js +0 -4
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts +0 -4
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts.map +0 -1
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.js +0 -4
- package/dist/domain/core/prefer-interface-types/test-helpers.d.ts +0 -110
- package/dist/domain/core/prefer-interface-types/test-helpers.d.ts.map +0 -1
- package/dist/domain/core/prefer-interface-types/test-helpers.js +0 -116
- package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts +0 -89
- package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +0 -1
- package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.js +0 -129
- package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts +0 -103
- package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts.map +0 -1
- package/dist/domain/docs/no-interface-member-docs/test-helpers.js +0 -157
- package/dist/domain/docs/require-example-language/create-fixer.d.ts +0 -5
- package/dist/domain/docs/require-example-language/create-fixer.d.ts.map +0 -1
- package/dist/domain/docs/require-example-language/create-fixer.js +0 -5
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts +0 -4
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts.map +0 -1
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.js +0 -5
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts +0 -4
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts.map +0 -1
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.js +0 -5
- package/dist/domain/docs/test-helpers.d.ts +0 -50
- package/dist/domain/docs/test-helpers.d.ts.map +0 -1
- package/dist/domain/docs/test-helpers.js +0 -107
- package/dist/domain/testing/aaa/analyzer.analysis.unsupported.d.ts +0 -4
- package/dist/domain/testing/aaa/analyzer.analysis.unsupported.d.ts.map +0 -1
- package/dist/domain/testing/aaa/analyzer.analysis.unsupported.js +0 -4
- package/dist/domain/testing/aaa/analyzer.assertions.destructured.d.ts +0 -4
- package/dist/domain/testing/aaa/analyzer.assertions.destructured.d.ts.map +0 -1
- package/dist/domain/testing/aaa/analyzer.assertions.destructured.js +0 -4
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts +0 -9
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts.map +0 -1
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.js +0 -10
- package/dist/domain/testing/aaa/analyzer.classification.mutations.d.ts +0 -4
- package/dist/domain/testing/aaa/analyzer.classification.mutations.d.ts.map +0 -1
- package/dist/domain/testing/aaa/analyzer.classification.mutations.js +0 -4
- package/dist/domain/testing/aaa/analyzer.d.ts +0 -46
- package/dist/domain/testing/aaa/analyzer.d.ts.map +0 -1
- package/dist/domain/testing/aaa/analyzer.js +0 -59
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.d.ts +0 -4
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.d.ts.map +0 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.js +0 -4
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.d.ts +0 -4
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.d.ts.map +0 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.js +0 -4
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts +0 -4
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts.map +0 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.js +0 -4
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts +0 -42
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts.map +0 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.js +0 -188
- package/dist/domain/testing/enforce-aaa-phase-purity/rule.d.ts +0 -5
- package/dist/domain/testing/enforce-aaa-phase-purity/rule.d.ts.map +0 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/rule.js +0 -37
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts +0 -20
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.js +0 -39
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts +0 -97
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.js +0 -174
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts +0 -2
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.js +0 -2
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts +0 -14
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.js +0 -84
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts +0 -13
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.js +0 -195
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts +0 -25
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.js +0 -96
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts +0 -32
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.js +0 -164
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts +0 -5
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts +0 -4
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.js +0 -4
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts +0 -4
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.js +0 -4
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.js +0 -88
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts +0 -4
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.js +0 -4
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts +0 -24
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.js +0 -113
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts +0 -36
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.js +0 -138
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts +0 -187
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.js +0 -2
- package/dist/domain/testing/require-aaa-sections/index.d.ts +0 -2
- package/dist/domain/testing/require-aaa-sections/index.d.ts.map +0 -1
- package/dist/domain/testing/require-aaa-sections/index.js +0 -2
- package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts.map +0 -1
- package/dist/domain/testing/require-aaa-sections/missing-section-fixes.js +0 -150
- package/dist/domain/testing/require-aaa-sections/rule.d.ts +0 -5
- package/dist/domain/testing/require-aaa-sections/rule.d.ts.map +0 -1
- package/dist/domain/testing/require-aaa-sections/rule.js +0 -134
- package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts +0 -104
- package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts.map +0 -1
- package/dist/domain/testing/require-aaa-sections/rule.reporting.js +0 -216
- package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts +0 -51
- package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +0 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.js +0 -184
- package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts +0 -28
- package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts.map +0 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-utilities.js +0 -26
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import { ESLint } from "eslint";
|
|
2
|
-
import { mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
3
|
-
import { tmpdir } from "node:os";
|
|
4
|
-
import path from "node:path";
|
|
5
|
-
import { parser } from "typescript-eslint";
|
|
6
|
-
import { preferVitestIncrementalCastsRule } from "./rule.js";
|
|
7
|
-
/** Ambient declarations used by the typed fixture project. */
|
|
8
|
-
const defaultDeclarationText = [
|
|
9
|
-
'declare module "fixture-module" {',
|
|
10
|
-
" export const configs: { disableTypeChecked: { rules: string[]; strict: boolean } };",
|
|
11
|
-
" export const extra: number;",
|
|
12
|
-
" export const parser: { parseForESLint(code: string): { ast: string } };",
|
|
13
|
-
" export const plugin: { meta: { name: string } };",
|
|
14
|
-
"}",
|
|
15
|
-
"",
|
|
16
|
-
"declare const vi: {",
|
|
17
|
-
' doMock(specifier: Promise<typeof import("fixture-module")>, factory: () => typeof import("fixture-module")): void;',
|
|
18
|
-
' doMock(specifier: Promise<typeof import("fixture-module")>, factory: () => Partial<typeof import("fixture-module")>): void;',
|
|
19
|
-
' doMock(specifier: Promise<typeof import("fixture-module")>, factory: () => Promise<Partial<typeof import("fixture-module")>>): void;',
|
|
20
|
-
' mock(specifier: Promise<typeof import("fixture-module")>, factory: () => typeof import("fixture-module")): void;',
|
|
21
|
-
' mock(specifier: Promise<typeof import("fixture-module")>, factory: () => Partial<typeof import("fixture-module")>): void;',
|
|
22
|
-
' mock(specifier: Promise<typeof import("fixture-module")>, factory: (importOriginal: () => Promise<typeof import("fixture-module")>) => Promise<Partial<typeof import("fixture-module")>>): void;',
|
|
23
|
-
"};",
|
|
24
|
-
"",
|
|
25
|
-
].join("\n");
|
|
26
|
-
/** Temporary fixture directories pending cleanup. */
|
|
27
|
-
const temporaryDirectories = [];
|
|
28
|
-
/**
|
|
29
|
-
* Creates the fixture tsconfig text used by typed rule runs.
|
|
30
|
-
* @returns Serialized tsconfig file contents.
|
|
31
|
-
* @example
|
|
32
|
-
* ```typescript
|
|
33
|
-
* const tsconfigText = createTsconfigText();
|
|
34
|
-
* void tsconfigText;
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
const createTsconfigText = () => JSON.stringify({
|
|
38
|
-
compilerOptions: {
|
|
39
|
-
module: "esnext",
|
|
40
|
-
moduleResolution: "bundler",
|
|
41
|
-
noEmit: true,
|
|
42
|
-
strict: true,
|
|
43
|
-
target: "esnext",
|
|
44
|
-
},
|
|
45
|
-
include: ["**/*.ts", "**/*.d.ts"],
|
|
46
|
-
}, void 0, 2);
|
|
47
|
-
/**
|
|
48
|
-
* Creates the typed ESLint instance used by the rule tests.
|
|
49
|
-
* @param directory Fixture directory that becomes ESLint cwd.
|
|
50
|
-
* @param tsconfigPath Path to the generated fixture tsconfig.
|
|
51
|
-
* @returns ESLint instance configured for the typed rule.
|
|
52
|
-
* @example
|
|
53
|
-
* ```typescript
|
|
54
|
-
* const eslint = createTypedRuleEslint("/tmp/project", "/tmp/project/tsconfig.json");
|
|
55
|
-
* void eslint;
|
|
56
|
-
* ```
|
|
57
|
-
*/
|
|
58
|
-
const createTypedRuleEslint = (directory, tsconfigPath) => new ESLint({
|
|
59
|
-
cwd: directory,
|
|
60
|
-
fix: true,
|
|
61
|
-
ignore: false,
|
|
62
|
-
overrideConfig: [
|
|
63
|
-
{
|
|
64
|
-
files: ["**/*.ts"],
|
|
65
|
-
languageOptions: {
|
|
66
|
-
parser,
|
|
67
|
-
parserOptions: {
|
|
68
|
-
ecmaVersion: 2022,
|
|
69
|
-
project: [tsconfigPath],
|
|
70
|
-
sourceType: "module",
|
|
71
|
-
tsconfigRootDir: directory,
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
plugins: {
|
|
75
|
-
codeperfect: {
|
|
76
|
-
rules: {
|
|
77
|
-
"prefer-vitest-incremental-casts": preferVitestIncrementalCastsRule,
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
},
|
|
81
|
-
rules: {
|
|
82
|
-
"codeperfect/prefer-vitest-incremental-casts": "error",
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
],
|
|
86
|
-
overrideConfigFile: true,
|
|
87
|
-
});
|
|
88
|
-
/**
|
|
89
|
-
* Creates the temporary fixture project used by typed helper runs.
|
|
90
|
-
* @param declarationText Ambient declarations used by the fixture project.
|
|
91
|
-
* @returns Fresh fixture project state.
|
|
92
|
-
* @example
|
|
93
|
-
* ```typescript
|
|
94
|
-
* const fixtureProject = await createFixtureProject(defaultDeclarationText);
|
|
95
|
-
* void fixtureProject;
|
|
96
|
-
* ```
|
|
97
|
-
*/
|
|
98
|
-
const createFixtureProject = async (declarationText) => {
|
|
99
|
-
const directory = await mkdtemp(path.join(tmpdir(), "codeperfect-rule-"));
|
|
100
|
-
const globalsPath = path.join(directory, "globals.d.ts");
|
|
101
|
-
const tsconfigPath = path.join(directory, "tsconfig.json");
|
|
102
|
-
temporaryDirectories.push(directory);
|
|
103
|
-
await Promise.all([
|
|
104
|
-
writeFile(globalsPath, declarationText, "utf8"),
|
|
105
|
-
writeFile(tsconfigPath, createTsconfigText(), "utf8"),
|
|
106
|
-
]);
|
|
107
|
-
return { directory, tsconfigPath };
|
|
108
|
-
};
|
|
109
|
-
/**
|
|
110
|
-
* Creates a unique file path for one isolated lint run.
|
|
111
|
-
* @param directory Temporary fixture directory.
|
|
112
|
-
* @returns Unique file path for the current run.
|
|
113
|
-
* @example
|
|
114
|
-
* ```typescript
|
|
115
|
-
* createRunFilePath("/tmp/project");
|
|
116
|
-
* ```
|
|
117
|
-
*/
|
|
118
|
-
const createRunFilePath = (directory) => path.join(directory, "example.spec.ts");
|
|
119
|
-
/**
|
|
120
|
-
* Removes temporary fixture projects created during rule tests.
|
|
121
|
-
* @returns Promise that resolves after cleanup completes.
|
|
122
|
-
* @example
|
|
123
|
-
* ```typescript
|
|
124
|
-
* await cleanupTemporaryDirectories();
|
|
125
|
-
* ```
|
|
126
|
-
*/
|
|
127
|
-
const cleanupTemporaryDirectories = async () => {
|
|
128
|
-
await Promise.all(temporaryDirectories
|
|
129
|
-
.splice(0)
|
|
130
|
-
.map(async (directory) => rm(directory, { force: true, recursive: true })));
|
|
131
|
-
};
|
|
132
|
-
/**
|
|
133
|
-
* Runs the rule with autofix enabled inside a temporary typed fixture project.
|
|
134
|
-
* @param code Source code passed to ESLint.
|
|
135
|
-
* @param declarationText Ambient declarations used by the fixture project.
|
|
136
|
-
* @returns Fixed output and lint messages.
|
|
137
|
-
* @throws {Error} When ESLint does not return a lint result.
|
|
138
|
-
* @example
|
|
139
|
-
* ```typescript
|
|
140
|
-
* const result = await runFix("vi.doMock(import(\"fixture-module\"), () => ({}));\n");
|
|
141
|
-
* void result;
|
|
142
|
-
* ```
|
|
143
|
-
*/
|
|
144
|
-
const runFix = async (code, declarationText = defaultDeclarationText) => {
|
|
145
|
-
const fixtureProject = await createFixtureProject(declarationText);
|
|
146
|
-
const filePath = createRunFilePath(fixtureProject.directory);
|
|
147
|
-
const eslint = createTypedRuleEslint(fixtureProject.directory, fixtureProject.tsconfigPath);
|
|
148
|
-
await writeFile(filePath, code, "utf8");
|
|
149
|
-
try {
|
|
150
|
-
const [result] = await eslint.lintText(code, { filePath });
|
|
151
|
-
if (result === void 0) {
|
|
152
|
-
throw new Error("Expected ESLint to return a lint result.");
|
|
153
|
-
}
|
|
154
|
-
return {
|
|
155
|
-
messages: result.messages,
|
|
156
|
-
output: result.output ?? code,
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
finally {
|
|
160
|
-
await rm(fixtureProject.directory, { force: true, recursive: true });
|
|
161
|
-
}
|
|
162
|
-
};
|
|
163
|
-
export { cleanupTemporaryDirectories, runFix };
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS10ZXN0LWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpdGVzdC1pbmNyZW1lbnRhbC1jYXN0cy9ydWxlLXRlc3QtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFvQjFELDhEQUE4RDtBQUM5RCxNQUFNLHNCQUFzQixHQUFHO0lBQzdCLG1DQUFtQztJQUNuQyx1RkFBdUY7SUFDdkYsK0JBQStCO0lBQy9CLDJFQUEyRTtJQUMzRSxvREFBb0Q7SUFDcEQsR0FBRztJQUNILEVBQUU7SUFDRixxQkFBcUI7SUFDckIsc0hBQXNIO0lBQ3RILCtIQUErSDtJQUMvSCx3SUFBd0k7SUFDeEksb0hBQW9IO0lBQ3BILDZIQUE2SDtJQUM3SCxvTUFBb007SUFDcE0sSUFBSTtJQUNKLEVBQUU7Q0FDSCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUViLHFEQUFxRDtBQUNyRCxNQUFNLG9CQUFvQixHQUFhLEVBQUUsQ0FBQztBQUUxQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsR0FBVyxFQUFFLENBQ3RDLElBQUksQ0FBQyxTQUFTLENBQ1o7SUFDRSxlQUFlLEVBQUU7UUFDZixNQUFNLEVBQUUsUUFBUTtRQUNoQixnQkFBZ0IsRUFBRSxTQUFTO1FBQzNCLE1BQU0sRUFBRSxJQUFJO1FBQ1osTUFBTSxFQUFFLElBQUk7UUFDWixNQUFNLEVBQUUsUUFBUTtLQUNqQjtJQUNELE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUM7Q0FDbEMsRUFDRCxLQUFLLENBQUMsRUFDTixDQUFDLENBQ0YsQ0FBQztBQUVKOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLHFCQUFxQixHQUFHLENBQzVCLFNBQWlCLEVBQ2pCLFlBQW9CLEVBQ1osRUFBRSxDQUNWLElBQUksTUFBTSxDQUFDO0lBQ1QsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsSUFBSTtJQUNULE1BQU0sRUFBRSxLQUFLO0lBQ2IsY0FBYyxFQUFFO1FBQ2Q7WUFDRSxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDbEIsZUFBZSxFQUFFO2dCQUNmLE1BQU07Z0JBQ04sYUFBYSxFQUFFO29CQUNiLFdBQVcsRUFBRSxJQUFJO29CQUNqQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFVBQVUsRUFBRSxRQUFRO29CQUNwQixlQUFlLEVBQUUsU0FBUztpQkFDM0I7YUFDRjtZQUNELE9BQU8sRUFBRTtnQkFDUCxXQUFXLEVBQUU7b0JBQ1gsS0FBSyxFQUFFO3dCQUNMLGlDQUFpQyxFQUMvQixnQ0FBZ0M7cUJBQ25DO2lCQUNGO2FBQ0Y7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsNkNBQTZDLEVBQUUsT0FBTzthQUN2RDtTQUNGO0tBQ0Y7SUFDRCxrQkFBa0IsRUFBRSxJQUFJO0NBQ3pCLENBQUMsQ0FBQztBQUVMOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxFQUNoQyxlQUF1QixFQUNFLEVBQUU7SUFDM0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7SUFDMUUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDekQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFFM0Qsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUNoQixTQUFTLENBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLENBQUM7UUFDL0MsU0FBUyxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sQ0FBQztLQUN0RCxDQUFDLENBQUM7SUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxDQUFDO0FBQ3JDLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFNBQWlCLEVBQVUsRUFBRSxDQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBRTFDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLDJCQUEyQixHQUFHLEtBQUssSUFBbUIsRUFBRTtJQUM1RCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2Ysb0JBQW9CO1NBQ2pCLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDVCxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQ3ZCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNoRCxDQUNKLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sTUFBTSxHQUFHLEtBQUssRUFDbEIsSUFBWSxFQUNaLGVBQWUsR0FBRyxzQkFBc0IsRUFDakIsRUFBRTtJQUN6QixNQUFNLGNBQWMsR0FBRyxNQUFNLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3RCxNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FDbEMsY0FBYyxDQUFDLFNBQVMsRUFDeEIsY0FBYyxDQUFDLFlBQVksQ0FDNUIsQ0FBQztJQUVGLE1BQU0sU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDeEMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTNELElBQUksTUFBTSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFFRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUk7U0FDOUIsQ0FBQztJQUNKLENBQUM7WUFBUyxDQUFDO1FBQ1QsTUFBTSxFQUFFLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xyXG5cclxuaW1wb3J0IHsgRVNMaW50IH0gZnJvbSBcImVzbGludFwiO1xyXG5pbXBvcnQgeyBta2R0ZW1wLCBybSwgd3JpdGVGaWxlIH0gZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIjtcclxuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSBcIm5vZGU6b3NcIjtcclxuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xyXG5pbXBvcnQgeyBwYXJzZXIgfSBmcm9tIFwidHlwZXNjcmlwdC1lc2xpbnRcIjtcclxuXHJcbmltcG9ydCB7IHByZWZlclZpdGVzdEluY3JlbWVudGFsQ2FzdHNSdWxlIH0gZnJvbSBcIi4vcnVsZVwiO1xyXG5cclxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xyXG5pbnRlcmZhY2UgRml4UnVuUmVzdWx0IHtcclxuICAvKiogTGludCBtZXNzYWdlcyBwcm9kdWNlZCBkdXJpbmcgdGhlIHJ1bi4gKi9cclxuICBtZXNzYWdlczogTGludGVyLkxpbnRNZXNzYWdlW107XHJcblxyXG4gIC8qKiBPdXRwdXQgY29kZSBhZnRlciBmaXhlcy4gKi9cclxuICBvdXRwdXQ6IHN0cmluZztcclxufVxyXG5cclxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xyXG5pbnRlcmZhY2UgRml4dHVyZVByb2plY3Qge1xyXG4gIC8qKiBUZW1wb3JhcnkgZml4dHVyZSBkaXJlY3RvcnkgcGF0aC4gKi9cclxuICBkaXJlY3Rvcnk6IHN0cmluZztcclxuXHJcbiAgLyoqIEZpeHR1cmUgdHNjb25maWcgcGF0aCB1c2VkIGJ5IHR5cGVkIEVTTGludC4gKi9cclxuICB0c2NvbmZpZ1BhdGg6IHN0cmluZztcclxufVxyXG5cclxuLyoqIEFtYmllbnQgZGVjbGFyYXRpb25zIHVzZWQgYnkgdGhlIHR5cGVkIGZpeHR1cmUgcHJvamVjdC4gKi9cclxuY29uc3QgZGVmYXVsdERlY2xhcmF0aW9uVGV4dCA9IFtcclxuICAnZGVjbGFyZSBtb2R1bGUgXCJmaXh0dXJlLW1vZHVsZVwiIHsnLFxyXG4gIFwiICBleHBvcnQgY29uc3QgY29uZmlnczogeyBkaXNhYmxlVHlwZUNoZWNrZWQ6IHsgcnVsZXM6IHN0cmluZ1tdOyBzdHJpY3Q6IGJvb2xlYW4gfSB9O1wiLFxyXG4gIFwiICBleHBvcnQgY29uc3QgZXh0cmE6IG51bWJlcjtcIixcclxuICBcIiAgZXhwb3J0IGNvbnN0IHBhcnNlcjogeyBwYXJzZUZvckVTTGludChjb2RlOiBzdHJpbmcpOiB7IGFzdDogc3RyaW5nIH0gfTtcIixcclxuICBcIiAgZXhwb3J0IGNvbnN0IHBsdWdpbjogeyBtZXRhOiB7IG5hbWU6IHN0cmluZyB9IH07XCIsXHJcbiAgXCJ9XCIsXHJcbiAgXCJcIixcclxuICBcImRlY2xhcmUgY29uc3Qgdmk6IHtcIixcclxuICAnICBkb01vY2soc3BlY2lmaWVyOiBQcm9taXNlPHR5cGVvZiBpbXBvcnQoXCJmaXh0dXJlLW1vZHVsZVwiKT4sIGZhY3Rvcnk6ICgpID0+IHR5cGVvZiBpbXBvcnQoXCJmaXh0dXJlLW1vZHVsZVwiKSk6IHZvaWQ7JyxcclxuICAnICBkb01vY2soc3BlY2lmaWVyOiBQcm9taXNlPHR5cGVvZiBpbXBvcnQoXCJmaXh0dXJlLW1vZHVsZVwiKT4sIGZhY3Rvcnk6ICgpID0+IFBhcnRpYWw8dHlwZW9mIGltcG9ydChcImZpeHR1cmUtbW9kdWxlXCIpPik6IHZvaWQ7JyxcclxuICAnICBkb01vY2soc3BlY2lmaWVyOiBQcm9taXNlPHR5cGVvZiBpbXBvcnQoXCJmaXh0dXJlLW1vZHVsZVwiKT4sIGZhY3Rvcnk6ICgpID0+IFByb21pc2U8UGFydGlhbDx0eXBlb2YgaW1wb3J0KFwiZml4dHVyZS1tb2R1bGVcIik+Pik6IHZvaWQ7JyxcclxuICAnICBtb2NrKHNwZWNpZmllcjogUHJvbWlzZTx0eXBlb2YgaW1wb3J0KFwiZml4dHVyZS1tb2R1bGVcIik+LCBmYWN0b3J5OiAoKSA9PiB0eXBlb2YgaW1wb3J0KFwiZml4dHVyZS1tb2R1bGVcIikpOiB2b2lkOycsXHJcbiAgJyAgbW9jayhzcGVjaWZpZXI6IFByb21pc2U8dHlwZW9mIGltcG9ydChcImZpeHR1cmUtbW9kdWxlXCIpPiwgZmFjdG9yeTogKCkgPT4gUGFydGlhbDx0eXBlb2YgaW1wb3J0KFwiZml4dHVyZS1tb2R1bGVcIik+KTogdm9pZDsnLFxyXG4gICcgIG1vY2soc3BlY2lmaWVyOiBQcm9taXNlPHR5cGVvZiBpbXBvcnQoXCJmaXh0dXJlLW1vZHVsZVwiKT4sIGZhY3Rvcnk6IChpbXBvcnRPcmlnaW5hbDogKCkgPT4gUHJvbWlzZTx0eXBlb2YgaW1wb3J0KFwiZml4dHVyZS1tb2R1bGVcIik+KSA9PiBQcm9taXNlPFBhcnRpYWw8dHlwZW9mIGltcG9ydChcImZpeHR1cmUtbW9kdWxlXCIpPj4pOiB2b2lkOycsXHJcbiAgXCJ9O1wiLFxyXG4gIFwiXCIsXHJcbl0uam9pbihcIlxcblwiKTtcclxuXHJcbi8qKiBUZW1wb3JhcnkgZml4dHVyZSBkaXJlY3RvcmllcyBwZW5kaW5nIGNsZWFudXAuICovXHJcbmNvbnN0IHRlbXBvcmFyeURpcmVjdG9yaWVzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgdGhlIGZpeHR1cmUgdHNjb25maWcgdGV4dCB1c2VkIGJ5IHR5cGVkIHJ1bGUgcnVucy5cclxuICogQHJldHVybnMgU2VyaWFsaXplZCB0c2NvbmZpZyBmaWxlIGNvbnRlbnRzLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IHRzY29uZmlnVGV4dCA9IGNyZWF0ZVRzY29uZmlnVGV4dCgpO1xyXG4gKiB2b2lkIHRzY29uZmlnVGV4dDtcclxuICogYGBgXHJcbiAqL1xyXG5jb25zdCBjcmVhdGVUc2NvbmZpZ1RleHQgPSAoKTogc3RyaW5nID0+XHJcbiAgSlNPTi5zdHJpbmdpZnkoXHJcbiAgICB7XHJcbiAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xyXG4gICAgICAgIG1vZHVsZTogXCJlc25leHRcIixcclxuICAgICAgICBtb2R1bGVSZXNvbHV0aW9uOiBcImJ1bmRsZXJcIixcclxuICAgICAgICBub0VtaXQ6IHRydWUsXHJcbiAgICAgICAgc3RyaWN0OiB0cnVlLFxyXG4gICAgICAgIHRhcmdldDogXCJlc25leHRcIixcclxuICAgICAgfSxcclxuICAgICAgaW5jbHVkZTogW1wiKiovKi50c1wiLCBcIioqLyouZC50c1wiXSxcclxuICAgIH0sXHJcbiAgICB2b2lkIDAsXHJcbiAgICAyLFxyXG4gICk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyB0aGUgdHlwZWQgRVNMaW50IGluc3RhbmNlIHVzZWQgYnkgdGhlIHJ1bGUgdGVzdHMuXHJcbiAqIEBwYXJhbSBkaXJlY3RvcnkgRml4dHVyZSBkaXJlY3RvcnkgdGhhdCBiZWNvbWVzIEVTTGludCBjd2QuXHJcbiAqIEBwYXJhbSB0c2NvbmZpZ1BhdGggUGF0aCB0byB0aGUgZ2VuZXJhdGVkIGZpeHR1cmUgdHNjb25maWcuXHJcbiAqIEByZXR1cm5zIEVTTGludCBpbnN0YW5jZSBjb25maWd1cmVkIGZvciB0aGUgdHlwZWQgcnVsZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBlc2xpbnQgPSBjcmVhdGVUeXBlZFJ1bGVFc2xpbnQoXCIvdG1wL3Byb2plY3RcIiwgXCIvdG1wL3Byb2plY3QvdHNjb25maWcuanNvblwiKTtcclxuICogdm9pZCBlc2xpbnQ7XHJcbiAqIGBgYFxyXG4gKi9cclxuY29uc3QgY3JlYXRlVHlwZWRSdWxlRXNsaW50ID0gKFxyXG4gIGRpcmVjdG9yeTogc3RyaW5nLFxyXG4gIHRzY29uZmlnUGF0aDogc3RyaW5nLFxyXG4pOiBFU0xpbnQgPT5cclxuICBuZXcgRVNMaW50KHtcclxuICAgIGN3ZDogZGlyZWN0b3J5LFxyXG4gICAgZml4OiB0cnVlLFxyXG4gICAgaWdub3JlOiBmYWxzZSxcclxuICAgIG92ZXJyaWRlQ29uZmlnOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBmaWxlczogW1wiKiovKi50c1wiXSxcclxuICAgICAgICBsYW5ndWFnZU9wdGlvbnM6IHtcclxuICAgICAgICAgIHBhcnNlcixcclxuICAgICAgICAgIHBhcnNlck9wdGlvbnM6IHtcclxuICAgICAgICAgICAgZWNtYVZlcnNpb246IDIwMjIsXHJcbiAgICAgICAgICAgIHByb2plY3Q6IFt0c2NvbmZpZ1BhdGhdLFxyXG4gICAgICAgICAgICBzb3VyY2VUeXBlOiBcIm1vZHVsZVwiLFxyXG4gICAgICAgICAgICB0c2NvbmZpZ1Jvb3REaXI6IGRpcmVjdG9yeSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICBwbHVnaW5zOiB7XHJcbiAgICAgICAgICBjb2RlcGVyZmVjdDoge1xyXG4gICAgICAgICAgICBydWxlczoge1xyXG4gICAgICAgICAgICAgIFwicHJlZmVyLXZpdGVzdC1pbmNyZW1lbnRhbC1jYXN0c1wiOlxyXG4gICAgICAgICAgICAgICAgcHJlZmVyVml0ZXN0SW5jcmVtZW50YWxDYXN0c1J1bGUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcnVsZXM6IHtcclxuICAgICAgICAgIFwiY29kZXBlcmZlY3QvcHJlZmVyLXZpdGVzdC1pbmNyZW1lbnRhbC1jYXN0c1wiOiBcImVycm9yXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBvdmVycmlkZUNvbmZpZ0ZpbGU6IHRydWUsXHJcbiAgfSk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyB0aGUgdGVtcG9yYXJ5IGZpeHR1cmUgcHJvamVjdCB1c2VkIGJ5IHR5cGVkIGhlbHBlciBydW5zLlxyXG4gKiBAcGFyYW0gZGVjbGFyYXRpb25UZXh0IEFtYmllbnQgZGVjbGFyYXRpb25zIHVzZWQgYnkgdGhlIGZpeHR1cmUgcHJvamVjdC5cclxuICogQHJldHVybnMgRnJlc2ggZml4dHVyZSBwcm9qZWN0IHN0YXRlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGZpeHR1cmVQcm9qZWN0ID0gYXdhaXQgY3JlYXRlRml4dHVyZVByb2plY3QoZGVmYXVsdERlY2xhcmF0aW9uVGV4dCk7XHJcbiAqIHZvaWQgZml4dHVyZVByb2plY3Q7XHJcbiAqIGBgYFxyXG4gKi9cclxuY29uc3QgY3JlYXRlRml4dHVyZVByb2plY3QgPSBhc3luYyAoXHJcbiAgZGVjbGFyYXRpb25UZXh0OiBzdHJpbmcsXHJcbik6IFByb21pc2U8Rml4dHVyZVByb2plY3Q+ID0+IHtcclxuICBjb25zdCBkaXJlY3RvcnkgPSBhd2FpdCBta2R0ZW1wKHBhdGguam9pbih0bXBkaXIoKSwgXCJjb2RlcGVyZmVjdC1ydWxlLVwiKSk7XHJcbiAgY29uc3QgZ2xvYmFsc1BhdGggPSBwYXRoLmpvaW4oZGlyZWN0b3J5LCBcImdsb2JhbHMuZC50c1wiKTtcclxuICBjb25zdCB0c2NvbmZpZ1BhdGggPSBwYXRoLmpvaW4oZGlyZWN0b3J5LCBcInRzY29uZmlnLmpzb25cIik7XHJcblxyXG4gIHRlbXBvcmFyeURpcmVjdG9yaWVzLnB1c2goZGlyZWN0b3J5KTtcclxuICBhd2FpdCBQcm9taXNlLmFsbChbXHJcbiAgICB3cml0ZUZpbGUoZ2xvYmFsc1BhdGgsIGRlY2xhcmF0aW9uVGV4dCwgXCJ1dGY4XCIpLFxyXG4gICAgd3JpdGVGaWxlKHRzY29uZmlnUGF0aCwgY3JlYXRlVHNjb25maWdUZXh0KCksIFwidXRmOFwiKSxcclxuICBdKTtcclxuXHJcbiAgcmV0dXJuIHsgZGlyZWN0b3J5LCB0c2NvbmZpZ1BhdGggfTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgdW5pcXVlIGZpbGUgcGF0aCBmb3Igb25lIGlzb2xhdGVkIGxpbnQgcnVuLlxyXG4gKiBAcGFyYW0gZGlyZWN0b3J5IFRlbXBvcmFyeSBmaXh0dXJlIGRpcmVjdG9yeS5cclxuICogQHJldHVybnMgVW5pcXVlIGZpbGUgcGF0aCBmb3IgdGhlIGN1cnJlbnQgcnVuLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNyZWF0ZVJ1bkZpbGVQYXRoKFwiL3RtcC9wcm9qZWN0XCIpO1xyXG4gKiBgYGBcclxuICovXHJcbmNvbnN0IGNyZWF0ZVJ1bkZpbGVQYXRoID0gKGRpcmVjdG9yeTogc3RyaW5nKTogc3RyaW5nID0+XHJcbiAgcGF0aC5qb2luKGRpcmVjdG9yeSwgXCJleGFtcGxlLnNwZWMudHNcIik7XHJcblxyXG4vKipcclxuICogUmVtb3ZlcyB0ZW1wb3JhcnkgZml4dHVyZSBwcm9qZWN0cyBjcmVhdGVkIGR1cmluZyBydWxlIHRlc3RzLlxyXG4gKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgY2xlYW51cCBjb21wbGV0ZXMuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogYXdhaXQgY2xlYW51cFRlbXBvcmFyeURpcmVjdG9yaWVzKCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuY29uc3QgY2xlYW51cFRlbXBvcmFyeURpcmVjdG9yaWVzID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xyXG4gIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgdGVtcG9yYXJ5RGlyZWN0b3JpZXNcclxuICAgICAgLnNwbGljZSgwKVxyXG4gICAgICAubWFwKGFzeW5jIChkaXJlY3RvcnkpID0+XHJcbiAgICAgICAgcm0oZGlyZWN0b3J5LCB7IGZvcmNlOiB0cnVlLCByZWN1cnNpdmU6IHRydWUgfSksXHJcbiAgICAgICksXHJcbiAgKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSdW5zIHRoZSBydWxlIHdpdGggYXV0b2ZpeCBlbmFibGVkIGluc2lkZSBhIHRlbXBvcmFyeSB0eXBlZCBmaXh0dXJlIHByb2plY3QuXHJcbiAqIEBwYXJhbSBjb2RlIFNvdXJjZSBjb2RlIHBhc3NlZCB0byBFU0xpbnQuXHJcbiAqIEBwYXJhbSBkZWNsYXJhdGlvblRleHQgQW1iaWVudCBkZWNsYXJhdGlvbnMgdXNlZCBieSB0aGUgZml4dHVyZSBwcm9qZWN0LlxyXG4gKiBAcmV0dXJucyBGaXhlZCBvdXRwdXQgYW5kIGxpbnQgbWVzc2FnZXMuXHJcbiAqIEB0aHJvd3Mge0Vycm9yfSBXaGVuIEVTTGludCBkb2VzIG5vdCByZXR1cm4gYSBsaW50IHJlc3VsdC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCByZXN1bHQgPSBhd2FpdCBydW5GaXgoXCJ2aS5kb01vY2soaW1wb3J0KFxcXCJmaXh0dXJlLW1vZHVsZVxcXCIpLCAoKSA9PiAoe30pKTtcXG5cIik7XHJcbiAqIHZvaWQgcmVzdWx0O1xyXG4gKiBgYGBcclxuICovXHJcbmNvbnN0IHJ1bkZpeCA9IGFzeW5jIChcclxuICBjb2RlOiBzdHJpbmcsXHJcbiAgZGVjbGFyYXRpb25UZXh0ID0gZGVmYXVsdERlY2xhcmF0aW9uVGV4dCxcclxuKTogUHJvbWlzZTxGaXhSdW5SZXN1bHQ+ID0+IHtcclxuICBjb25zdCBmaXh0dXJlUHJvamVjdCA9IGF3YWl0IGNyZWF0ZUZpeHR1cmVQcm9qZWN0KGRlY2xhcmF0aW9uVGV4dCk7XHJcbiAgY29uc3QgZmlsZVBhdGggPSBjcmVhdGVSdW5GaWxlUGF0aChmaXh0dXJlUHJvamVjdC5kaXJlY3RvcnkpO1xyXG4gIGNvbnN0IGVzbGludCA9IGNyZWF0ZVR5cGVkUnVsZUVzbGludChcclxuICAgIGZpeHR1cmVQcm9qZWN0LmRpcmVjdG9yeSxcclxuICAgIGZpeHR1cmVQcm9qZWN0LnRzY29uZmlnUGF0aCxcclxuICApO1xyXG5cclxuICBhd2FpdCB3cml0ZUZpbGUoZmlsZVBhdGgsIGNvZGUsIFwidXRmOFwiKTtcclxuICB0cnkge1xyXG4gICAgY29uc3QgW3Jlc3VsdF0gPSBhd2FpdCBlc2xpbnQubGludFRleHQoY29kZSwgeyBmaWxlUGF0aCB9KTtcclxuXHJcbiAgICBpZiAocmVzdWx0ID09PSB2b2lkIDApIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgRVNMaW50IHRvIHJldHVybiBhIGxpbnQgcmVzdWx0LlwiKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBtZXNzYWdlczogcmVzdWx0Lm1lc3NhZ2VzLFxyXG4gICAgICBvdXRwdXQ6IHJlc3VsdC5vdXRwdXQgPz8gY29kZSxcclxuICAgIH07XHJcbiAgfSBmaW5hbGx5IHtcclxuICAgIGF3YWl0IHJtKGZpeHR1cmVQcm9qZWN0LmRpcmVjdG9yeSwgeyBmb3JjZTogdHJ1ZSwgcmVjdXJzaXZlOiB0cnVlIH0pO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCB7IGNsZWFudXBUZW1wb3JhcnlEaXJlY3RvcmllcywgcnVuRml4IH07XHJcbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { Rule } from "eslint";
|
|
2
|
-
/** Enforces minimal nested casts for `vi.mock` and `vi.doMock` factory objects. */
|
|
3
|
-
declare const preferVitestIncrementalCastsRule: Rule.RuleModule;
|
|
4
|
-
export { preferVitestIncrementalCastsRule };
|
|
5
|
-
//# sourceMappingURL=rule.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAkEnC,mFAAmF;AACnF,QAAA,MAAM,gCAAgC,EAwDrB,IAAI,CAAC,UAAU,CAAC;AAEjC,OAAO,EAAE,gCAAgC,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule.guardrails.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,QAAA,MAAM,uBAAuB,oDACsB,CAAC;AAEpD,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/** Suite name for the guardrail-focused companion spec. */
|
|
2
|
-
const ruleGuardrailsSuiteName = "prefer-vitest-incremental-casts rule guardrails";
|
|
3
|
-
export { ruleGuardrailsSuiteName };
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5ndWFyZHJhaWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3ByZWZlci12aXRlc3QtaW5jcmVtZW50YWwtY2FzdHMvcnVsZS5ndWFyZHJhaWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJEQUEyRDtBQUMzRCxNQUFNLHVCQUF1QixHQUMzQixpREFBaUQsQ0FBQztBQUVwRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBTdWl0ZSBuYW1lIGZvciB0aGUgZ3VhcmRyYWlsLWZvY3VzZWQgY29tcGFuaW9uIHNwZWMuICovXHJcbmNvbnN0IHJ1bGVHdWFyZHJhaWxzU3VpdGVOYW1lID1cclxuICBcInByZWZlci12aXRlc3QtaW5jcmVtZW50YWwtY2FzdHMgcnVsZSBndWFyZHJhaWxzXCI7XHJcblxyXG5leHBvcnQgeyBydWxlR3VhcmRyYWlsc1N1aXRlTmFtZSB9O1xyXG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule.input-shapes.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,QAAA,MAAM,wBAAwB,sDACuB,CAAC;AAEtD,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/** Suite name for the input-shape-focused companion spec. */
|
|
2
|
-
const ruleInputShapesSuiteName = "prefer-vitest-incremental-casts rule input shapes";
|
|
3
|
-
export { ruleInputShapesSuiteName };
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5pbnB1dC1zaGFwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpdGVzdC1pbmNyZW1lbnRhbC1jYXN0cy9ydWxlLmlucHV0LXNoYXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2REFBNkQ7QUFDN0QsTUFBTSx3QkFBd0IsR0FDNUIsbURBQW1ELENBQUM7QUFFdEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogU3VpdGUgbmFtZSBmb3IgdGhlIGlucHV0LXNoYXBlLWZvY3VzZWQgY29tcGFuaW9uIHNwZWMuICovXHJcbmNvbnN0IHJ1bGVJbnB1dFNoYXBlc1N1aXRlTmFtZSA9XHJcbiAgXCJwcmVmZXItdml0ZXN0LWluY3JlbWVudGFsLWNhc3RzIHJ1bGUgaW5wdXQgc2hhcGVzXCI7XHJcblxyXG5leHBvcnQgeyBydWxlSW5wdXRTaGFwZXNTdWl0ZU5hbWUgfTtcclxuIl19
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { ESLintUtils, TSESTree } from "@typescript-eslint/utils";
|
|
2
|
-
import { createRuleDocumentation } from "../../custom-rule-documentation.js";
|
|
3
|
-
import { collectMatch } from "./match.js";
|
|
4
|
-
/**
|
|
5
|
-
* Builds a map of namespace import aliases for the current source file.
|
|
6
|
-
* @param sourceCode Source code object from the ESLint rule context.
|
|
7
|
-
* @returns Map of module specifier to namespace alias name.
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* const namespaceImports = getNamespaceImports(context.sourceCode);
|
|
11
|
-
* ```
|
|
12
|
-
*/
|
|
13
|
-
function getNamespaceImports(sourceCode) {
|
|
14
|
-
const result = new Map();
|
|
15
|
-
for (const node of sourceCode.ast.body) {
|
|
16
|
-
if (node.type === TSESTree.AST_NODE_TYPES.ImportDeclaration &&
|
|
17
|
-
typeof node.source.value === "string") {
|
|
18
|
-
for (const specifier of node.specifiers) {
|
|
19
|
-
if (specifier.type === TSESTree.AST_NODE_TYPES.ImportNamespaceSpecifier) {
|
|
20
|
-
result.set(node.source.value, specifier.local.name);
|
|
21
|
-
break;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return result;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Resolves TypeScript parser services when the rule runs on a typed file.
|
|
30
|
-
* @param context ESLint rule context.
|
|
31
|
-
* @returns Parser services when TypeScript services are available.
|
|
32
|
-
* @example
|
|
33
|
-
* ```typescript
|
|
34
|
-
* const services = getParserServices(context);
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
function getParserServices(context) {
|
|
38
|
-
try {
|
|
39
|
-
return ESLintUtils.getParserServices(context);
|
|
40
|
-
}
|
|
41
|
-
catch {
|
|
42
|
-
return void 0;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
/** Enforces minimal nested casts for `vi.mock` and `vi.doMock` factory objects. */
|
|
46
|
-
const preferVitestIncrementalCastsRule = ESLintUtils.RuleCreator.withoutDocs({
|
|
47
|
-
create(context) {
|
|
48
|
-
const services = getParserServices(context);
|
|
49
|
-
if (services === void 0 || services.program === null) {
|
|
50
|
-
return {};
|
|
51
|
-
}
|
|
52
|
-
const checker = services.program.getTypeChecker();
|
|
53
|
-
const sourceText = context.sourceCode.text;
|
|
54
|
-
const namespaceImports = getNamespaceImports(context.sourceCode);
|
|
55
|
-
return {
|
|
56
|
-
CallExpression(node) {
|
|
57
|
-
const match = collectMatch({
|
|
58
|
-
callExpression: node,
|
|
59
|
-
checker,
|
|
60
|
-
namespaceImports,
|
|
61
|
-
services,
|
|
62
|
-
sourceText,
|
|
63
|
-
});
|
|
64
|
-
if (match === void 0) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
context.report({
|
|
68
|
-
fix: (fixer) => fixer.replaceTextRange(match.returnExpressionRange, match.replacementText),
|
|
69
|
-
messageId: "preferVitestIncrementalCasts",
|
|
70
|
-
node,
|
|
71
|
-
});
|
|
72
|
-
},
|
|
73
|
-
};
|
|
74
|
-
},
|
|
75
|
-
defaultOptions: [],
|
|
76
|
-
meta: {
|
|
77
|
-
docs: createRuleDocumentation("prefer-vitest-incremental-casts", "Prefer minimal nested casts in vi.mock/vi.doMock factory return objects when TypeScript rejects the module shape."),
|
|
78
|
-
fixable: "code",
|
|
79
|
-
messages: {
|
|
80
|
-
preferVitestIncrementalCasts: "Normalize the mock factory to the smallest stable set of nested casts needed for the module type.",
|
|
81
|
-
},
|
|
82
|
-
schema: [],
|
|
83
|
-
type: "suggestion",
|
|
84
|
-
},
|
|
85
|
-
name: "prefer-vitest-incremental-casts",
|
|
86
|
-
});
|
|
87
|
-
export { preferVitestIncrementalCastsRule };
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9wcmVmZXItdml0ZXN0LWluY3JlbWVudGFsLWNhc3RzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXZDOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FDMUIsVUFBMEM7SUFFMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFekMsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZDLElBQ0UsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsY0FBYyxDQUFDLGlCQUFpQjtZQUN2RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFDckMsQ0FBQztZQUNELEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN4QyxJQUNFLFNBQVMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsRUFDbkUsQ0FBQztvQkFDRCxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3BELE1BQU07Z0JBQ1IsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsaUJBQWlCLENBQ3hCLE9BQXlCO0lBRXpCLElBQUksQ0FBQztRQUNILE9BQU8sV0FBVyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7QUFDSCxDQUFDO0FBRUQsbUZBQW1GO0FBQ25GLE1BQU0sZ0NBQWdDLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBRzFFO0lBQ0EsTUFBTSxDQUFDLE9BQU87UUFDWixNQUFNLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU1QyxJQUFJLFFBQVEsS0FBSyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3JELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDM0MsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFakUsT0FBTztZQUNMLGNBQWMsQ0FBQyxJQUFJO2dCQUNqQixNQUFNLEtBQUssR0FBRyxZQUFZLENBQUM7b0JBQ3pCLGNBQWMsRUFBRSxJQUFJO29CQUNwQixPQUFPO29CQUNQLGdCQUFnQjtvQkFDaEIsUUFBUTtvQkFDUixVQUFVO2lCQUNYLENBQUMsQ0FBQztnQkFFSCxJQUFJLEtBQUssS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNyQixPQUFPO2dCQUNULENBQUM7Z0JBRUQsT0FBTyxDQUFDLE1BQU0sQ0FBQztvQkFDYixHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNiLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDcEIsS0FBSyxDQUFDLHFCQUFxQixFQUMzQixLQUFLLENBQUMsZUFBZSxDQUN0QjtvQkFDSCxTQUFTLEVBQUUsOEJBQThCO29CQUN6QyxJQUFJO2lCQUNMLENBQUMsQ0FBQztZQUNMLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELGNBQWMsRUFBRSxFQUFFO0lBQ2xCLElBQUksRUFBRTtRQUNKLElBQUksRUFBRSx1QkFBdUIsQ0FDM0IsaUNBQWlDLEVBQ2pDLG1IQUFtSCxDQUNwSDtRQUNELE9BQU8sRUFBRSxNQUFNO1FBQ2YsUUFBUSxFQUFFO1lBQ1IsNEJBQTRCLEVBQzFCLG1HQUFtRztTQUN0RztRQUNELE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7S0FDbkI7SUFDRCxJQUFJLEVBQUUsaUNBQWlDO0NBQ3hDLENBQStCLENBQUM7QUFFakMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7IEVTTGludFV0aWxzLCBUU0VTVHJlZSB9IGZyb20gXCJAdHlwZXNjcmlwdC1lc2xpbnQvdXRpbHNcIjtcblxuaW1wb3J0IHR5cGUge1xuICBNZXNzYWdlSWRzLFxuICBPcHRpb25zLFxuICBQYXJzZXJTZXJ2aWNlcyxcbiAgVHlwZWRSdWxlQ29udGV4dCxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHsgY3JlYXRlUnVsZURvY3VtZW50YXRpb24gfSBmcm9tIFwiLi4vLi4vY3VzdG9tLXJ1bGUtZG9jdW1lbnRhdGlvblwiO1xuaW1wb3J0IHsgY29sbGVjdE1hdGNoIH0gZnJvbSBcIi4vbWF0Y2hcIjtcblxuLyoqXG4gKiBCdWlsZHMgYSBtYXAgb2YgbmFtZXNwYWNlIGltcG9ydCBhbGlhc2VzIGZvciB0aGUgY3VycmVudCBzb3VyY2UgZmlsZS5cbiAqIEBwYXJhbSBzb3VyY2VDb2RlIFNvdXJjZSBjb2RlIG9iamVjdCBmcm9tIHRoZSBFU0xpbnQgcnVsZSBjb250ZXh0LlxuICogQHJldHVybnMgTWFwIG9mIG1vZHVsZSBzcGVjaWZpZXIgdG8gbmFtZXNwYWNlIGFsaWFzIG5hbWUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbmFtZXNwYWNlSW1wb3J0cyA9IGdldE5hbWVzcGFjZUltcG9ydHMoY29udGV4dC5zb3VyY2VDb2RlKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXROYW1lc3BhY2VJbXBvcnRzKFxuICBzb3VyY2VDb2RlOiBUeXBlZFJ1bGVDb250ZXh0W1wic291cmNlQ29kZVwiXSxcbik6IFJlYWRvbmx5TWFwPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG5cbiAgZm9yIChjb25zdCBub2RlIG9mIHNvdXJjZUNvZGUuYXN0LmJvZHkpIHtcbiAgICBpZiAoXG4gICAgICBub2RlLnR5cGUgPT09IFRTRVNUcmVlLkFTVF9OT0RFX1RZUEVTLkltcG9ydERlY2xhcmF0aW9uICYmXG4gICAgICB0eXBlb2Ygbm9kZS5zb3VyY2UudmFsdWUgPT09IFwic3RyaW5nXCJcbiAgICApIHtcbiAgICAgIGZvciAoY29uc3Qgc3BlY2lmaWVyIG9mIG5vZGUuc3BlY2lmaWVycykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc3BlY2lmaWVyLnR5cGUgPT09IFRTRVNUcmVlLkFTVF9OT0RFX1RZUEVTLkltcG9ydE5hbWVzcGFjZVNwZWNpZmllclxuICAgICAgICApIHtcbiAgICAgICAgICByZXN1bHQuc2V0KG5vZGUuc291cmNlLnZhbHVlLCBzcGVjaWZpZXIubG9jYWwubmFtZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFJlc29sdmVzIFR5cGVTY3JpcHQgcGFyc2VyIHNlcnZpY2VzIHdoZW4gdGhlIHJ1bGUgcnVucyBvbiBhIHR5cGVkIGZpbGUuXG4gKiBAcGFyYW0gY29udGV4dCBFU0xpbnQgcnVsZSBjb250ZXh0LlxuICogQHJldHVybnMgUGFyc2VyIHNlcnZpY2VzIHdoZW4gVHlwZVNjcmlwdCBzZXJ2aWNlcyBhcmUgYXZhaWxhYmxlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHNlcnZpY2VzID0gZ2V0UGFyc2VyU2VydmljZXMoY29udGV4dCk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZ2V0UGFyc2VyU2VydmljZXMoXG4gIGNvbnRleHQ6IFR5cGVkUnVsZUNvbnRleHQsXG4pOiBQYXJzZXJTZXJ2aWNlcyB8IHVuZGVmaW5lZCB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEVTTGludFV0aWxzLmdldFBhcnNlclNlcnZpY2VzKGNvbnRleHQpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG59XG5cbi8qKiBFbmZvcmNlcyBtaW5pbWFsIG5lc3RlZCBjYXN0cyBmb3IgYHZpLm1vY2tgIGFuZCBgdmkuZG9Nb2NrYCBmYWN0b3J5IG9iamVjdHMuICovXG5jb25zdCBwcmVmZXJWaXRlc3RJbmNyZW1lbnRhbENhc3RzUnVsZSA9IEVTTGludFV0aWxzLlJ1bGVDcmVhdG9yLndpdGhvdXREb2NzPFxuICBPcHRpb25zLFxuICBNZXNzYWdlSWRzXG4+KHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBzZXJ2aWNlcyA9IGdldFBhcnNlclNlcnZpY2VzKGNvbnRleHQpO1xuXG4gICAgaWYgKHNlcnZpY2VzID09PSB2b2lkIDAgfHwgc2VydmljZXMucHJvZ3JhbSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGNvbnN0IGNoZWNrZXIgPSBzZXJ2aWNlcy5wcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG4gICAgY29uc3Qgc291cmNlVGV4dCA9IGNvbnRleHQuc291cmNlQ29kZS50ZXh0O1xuICAgIGNvbnN0IG5hbWVzcGFjZUltcG9ydHMgPSBnZXROYW1lc3BhY2VJbXBvcnRzKGNvbnRleHQuc291cmNlQ29kZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgQ2FsbEV4cHJlc3Npb24obm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBtYXRjaCA9IGNvbGxlY3RNYXRjaCh7XG4gICAgICAgICAgY2FsbEV4cHJlc3Npb246IG5vZGUsXG4gICAgICAgICAgY2hlY2tlcixcbiAgICAgICAgICBuYW1lc3BhY2VJbXBvcnRzLFxuICAgICAgICAgIHNlcnZpY2VzLFxuICAgICAgICAgIHNvdXJjZVRleHQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChtYXRjaCA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIGZpeDogKGZpeGVyKSA9PlxuICAgICAgICAgICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShcbiAgICAgICAgICAgICAgbWF0Y2gucmV0dXJuRXhwcmVzc2lvblJhbmdlLFxuICAgICAgICAgICAgICBtYXRjaC5yZXBsYWNlbWVudFRleHQsXG4gICAgICAgICAgICApLFxuICAgICAgICAgIG1lc3NhZ2VJZDogXCJwcmVmZXJWaXRlc3RJbmNyZW1lbnRhbENhc3RzXCIsXG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG4gIGRlZmF1bHRPcHRpb25zOiBbXSxcbiAgbWV0YToge1xuICAgIGRvY3M6IGNyZWF0ZVJ1bGVEb2N1bWVudGF0aW9uKFxuICAgICAgXCJwcmVmZXItdml0ZXN0LWluY3JlbWVudGFsLWNhc3RzXCIsXG4gICAgICBcIlByZWZlciBtaW5pbWFsIG5lc3RlZCBjYXN0cyBpbiB2aS5tb2NrL3ZpLmRvTW9jayBmYWN0b3J5IHJldHVybiBvYmplY3RzIHdoZW4gVHlwZVNjcmlwdCByZWplY3RzIHRoZSBtb2R1bGUgc2hhcGUuXCIsXG4gICAgKSxcbiAgICBmaXhhYmxlOiBcImNvZGVcIixcbiAgICBtZXNzYWdlczoge1xuICAgICAgcHJlZmVyVml0ZXN0SW5jcmVtZW50YWxDYXN0czpcbiAgICAgICAgXCJOb3JtYWxpemUgdGhlIG1vY2sgZmFjdG9yeSB0byB0aGUgc21hbGxlc3Qgc3RhYmxlIHNldCBvZiBuZXN0ZWQgY2FzdHMgbmVlZGVkIGZvciB0aGUgbW9kdWxlIHR5cGUuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6IFwic3VnZ2VzdGlvblwiLFxuICB9LFxuICBuYW1lOiBcInByZWZlci12aXRlc3QtaW5jcmVtZW50YWwtY2FzdHNcIixcbn0pIGFzIHVua25vd24gYXMgUnVsZS5SdWxlTW9kdWxlO1xuXG5leHBvcnQgeyBwcmVmZXJWaXRlc3RJbmNyZW1lbnRhbENhc3RzUnVsZSB9O1xuIl19
|
package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule.signature-fallback.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,QAAA,MAAM,8BAA8B,4DACuB,CAAC;AAE5D,OAAO,EAAE,8BAA8B,EAAE,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/** Suite name for the signature-fallback companion spec. */
|
|
2
|
-
const ruleSignatureFallbackSuiteName = "prefer-vitest-incremental-casts rule signature fallback";
|
|
3
|
-
export { ruleSignatureFallbackSuiteName };
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5zaWduYXR1cmUtZmFsbGJhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpdGVzdC1pbmNyZW1lbnRhbC1jYXN0cy9ydWxlLnNpZ25hdHVyZS1mYWxsYmFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsTUFBTSw4QkFBOEIsR0FDbEMseURBQXlELENBQUM7QUFFNUQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogU3VpdGUgbmFtZSBmb3IgdGhlIHNpZ25hdHVyZS1mYWxsYmFjayBjb21wYW5pb24gc3BlYy4gKi9cclxuY29uc3QgcnVsZVNpZ25hdHVyZUZhbGxiYWNrU3VpdGVOYW1lID1cclxuICBcInByZWZlci12aXRlc3QtaW5jcmVtZW50YWwtY2FzdHMgcnVsZSBzaWduYXR1cmUgZmFsbGJhY2tcIjtcclxuXHJcbmV4cG9ydCB7IHJ1bGVTaWduYXR1cmVGYWxsYmFja1N1aXRlTmFtZSB9O1xyXG4iXX0=
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type * as ts from "typescript";
|
|
2
|
-
import type { OuterCastContext, ResolveFactoryTargetTypeContext } from "./types.js";
|
|
3
|
-
/**
|
|
4
|
-
* Determines whether the object literal still needs an outer cast.
|
|
5
|
-
* @param context Data used to decide whether the full object needs casting.
|
|
6
|
-
* @returns True when the full object still needs casting.
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* const needsOuterCast = isOuterCastRequired(context);
|
|
10
|
-
* ```
|
|
11
|
-
*/
|
|
12
|
-
declare function isOuterCastRequired(context: OuterCastContext): boolean;
|
|
13
|
-
/**
|
|
14
|
-
* Resolves the target type the factory object should satisfy.
|
|
15
|
-
* @param context Type-resolution inputs for the current mock factory.
|
|
16
|
-
* @returns Target type for the rewritten object literal.
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* const targetType = resolveFactoryTargetType(context);
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
declare function resolveFactoryTargetType(context: ResolveFactoryTargetTypeContext): ts.Type | undefined;
|
|
23
|
-
export { isOuterCastRequired, resolveFactoryTargetType };
|
|
24
|
-
//# sourceMappingURL=type-helpers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"type-helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/type-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAItC,OAAO,KAAK,EACV,gBAAgB,EAChB,+BAA+B,EAChC,MAAM,SAAS,CAAC;AA4KjB;;;;;;;;GAQG;AACH,iBAAS,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAE/D;AAED;;;;;;;;GAQG;AACH,iBAAS,wBAAwB,CAC/B,OAAO,EAAE,+BAA+B,GACvC,EAAE,CAAC,IAAI,GAAG,SAAS,CAKrB;AAED,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { SignatureKind } from "typescript";
|
|
2
|
-
import { isOuterCastRequired as isOuterCastRequiredImpl, normalizeObjectLikeType, resolveFactoryReturnType, } from "./type-shape-helpers.js";
|
|
3
|
-
/**
|
|
4
|
-
* Reads the contextual type assigned to the returned mock object literal.
|
|
5
|
-
* @param context Type-resolution inputs for the current mock factory.
|
|
6
|
-
* @returns Contextual object-like type when TypeScript provides one.
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* const targetType = getContextualFactoryTargetType(context);
|
|
10
|
-
* ```
|
|
11
|
-
*/
|
|
12
|
-
function getContextualFactoryTargetType(context) {
|
|
13
|
-
const { checker, objectExpression, services } = context;
|
|
14
|
-
return normalizeObjectLikeType(checker, checker.getContextualType(services.esTreeNodeToTSNodeMap.get(objectExpression)));
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Resolves the factory return type for one compatible mock signature.
|
|
18
|
-
* @param context Inputs required to inspect one callable signature.
|
|
19
|
-
* @returns Normalized object-like return type when the signature matches.
|
|
20
|
-
* @example
|
|
21
|
-
* ```typescript
|
|
22
|
-
* const returnType = getMatchingSignatureReturnType(context);
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
function getMatchingSignatureReturnType(context) {
|
|
26
|
-
const { checker, firstArgument, firstArgumentType, signature, tsFactoryArgument, } = context;
|
|
27
|
-
const [specifierParameter, factoryParameter] = signature.getParameters();
|
|
28
|
-
if (specifierParameter === void 0 || factoryParameter === void 0) {
|
|
29
|
-
return void 0;
|
|
30
|
-
}
|
|
31
|
-
const specifierParameterType = checker.getTypeOfSymbolAtLocation(specifierParameter, firstArgument);
|
|
32
|
-
if (!checker.isTypeAssignableTo(firstArgumentType, specifierParameterType)) {
|
|
33
|
-
return void 0;
|
|
34
|
-
}
|
|
35
|
-
return resolveFactoryReturnType(checker, checker.getTypeOfSymbolAtLocation(factoryParameter, tsFactoryArgument));
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Resolves a target type by matching the mock call against callable signatures.
|
|
39
|
-
* @param context Type-resolution inputs for the current mock factory.
|
|
40
|
-
* @returns Object-like return type inferred from the matched signature.
|
|
41
|
-
* @example
|
|
42
|
-
* ```typescript
|
|
43
|
-
* const targetType = getSignatureFactoryTargetType(context);
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
function getSignatureFactoryTargetType(context) {
|
|
47
|
-
const signatureMatchInputs = getSignatureMatchInputs(context);
|
|
48
|
-
if (signatureMatchInputs === void 0) {
|
|
49
|
-
return void 0;
|
|
50
|
-
}
|
|
51
|
-
for (const signature of context.checker.getSignaturesOfType(signatureMatchInputs.calleeType, SignatureKind.Call)) {
|
|
52
|
-
const returnType = getMatchingSignatureReturnType({
|
|
53
|
-
checker: context.checker,
|
|
54
|
-
firstArgument: signatureMatchInputs.firstArgument,
|
|
55
|
-
firstArgumentType: signatureMatchInputs.firstArgumentType,
|
|
56
|
-
signature,
|
|
57
|
-
tsFactoryArgument: signatureMatchInputs.tsFactoryArgument,
|
|
58
|
-
});
|
|
59
|
-
if (returnType !== void 0) {
|
|
60
|
-
return returnType;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return void 0;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Collects the TypeScript nodes and types needed for signature matching.
|
|
67
|
-
* @param context Type-resolution inputs for the current mock factory.
|
|
68
|
-
* @returns Normalized signature-matching inputs when the call has a first argument.
|
|
69
|
-
* @example
|
|
70
|
-
* ```typescript
|
|
71
|
-
* const inputs = getSignatureMatchInputs(context);
|
|
72
|
-
* ```
|
|
73
|
-
*/
|
|
74
|
-
function getSignatureMatchInputs(context) {
|
|
75
|
-
const tsCallExpression = context.services.esTreeNodeToTSNodeMap.get(context.callExpression);
|
|
76
|
-
const [firstArgument] = tsCallExpression.arguments;
|
|
77
|
-
if (firstArgument === void 0) {
|
|
78
|
-
return void 0;
|
|
79
|
-
}
|
|
80
|
-
return {
|
|
81
|
-
calleeType: context.checker.getTypeAtLocation(tsCallExpression.expression),
|
|
82
|
-
firstArgument,
|
|
83
|
-
firstArgumentType: context.checker.getTypeAtLocation(firstArgument),
|
|
84
|
-
tsFactoryArgument: context.services.esTreeNodeToTSNodeMap.get(context.factoryArgument),
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Determines whether the object literal still needs an outer cast.
|
|
89
|
-
* @param context Data used to decide whether the full object needs casting.
|
|
90
|
-
* @returns True when the full object still needs casting.
|
|
91
|
-
* @example
|
|
92
|
-
* ```typescript
|
|
93
|
-
* const needsOuterCast = isOuterCastRequired(context);
|
|
94
|
-
* ```
|
|
95
|
-
*/
|
|
96
|
-
function isOuterCastRequired(context) {
|
|
97
|
-
return isOuterCastRequiredImpl(context);
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Resolves the target type the factory object should satisfy.
|
|
101
|
-
* @param context Type-resolution inputs for the current mock factory.
|
|
102
|
-
* @returns Target type for the rewritten object literal.
|
|
103
|
-
* @example
|
|
104
|
-
* ```typescript
|
|
105
|
-
* const targetType = resolveFactoryTargetType(context);
|
|
106
|
-
* ```
|
|
107
|
-
*/
|
|
108
|
-
function resolveFactoryTargetType(context) {
|
|
109
|
-
return (getContextualFactoryTargetType(context) ??
|
|
110
|
-
getSignatureFactoryTargetType(context));
|
|
111
|
-
}
|
|
112
|
-
export { isOuterCastRequired, resolveFactoryTargetType };
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3ByZWZlci12aXRlc3QtaW5jcmVtZW50YWwtY2FzdHMvdHlwZS1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFPM0MsT0FBTyxFQUNMLG1CQUFtQixJQUFJLHVCQUF1QixFQUM5Qyx1QkFBdUIsRUFDdkIsd0JBQXdCLEdBQ3pCLE1BQU0sc0JBQXNCLENBQUM7QUFtQzlCOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyw4QkFBOEIsQ0FDckMsT0FBd0M7SUFFeEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFeEQsT0FBTyx1QkFBdUIsQ0FDNUIsT0FBTyxFQUNQLE9BQU8sQ0FBQyxpQkFBaUIsQ0FDdkIsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUNyRCxDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLDhCQUE4QixDQUNyQyxPQUEyQztJQUUzQyxNQUFNLEVBQ0osT0FBTyxFQUNQLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGlCQUFpQixHQUNsQixHQUFHLE9BQU8sQ0FBQztJQUNaLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUV6RSxJQUFJLGtCQUFrQixLQUFLLEtBQUssQ0FBQyxJQUFJLGdCQUFnQixLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDakUsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxzQkFBc0IsR0FBRyxPQUFPLENBQUMseUJBQXlCLENBQzlELGtCQUFrQixFQUNsQixhQUFhLENBQ2QsQ0FBQztJQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDO1FBQzNFLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sd0JBQXdCLENBQzdCLE9BQU8sRUFDUCxPQUFPLENBQUMseUJBQXlCLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMsQ0FDdkUsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsNkJBQTZCLENBQ3BDLE9BQXdDO0lBRXhDLE1BQU0sb0JBQW9CLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFOUQsSUFBSSxvQkFBb0IsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssTUFBTSxTQUFTLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FDekQsb0JBQW9CLENBQUMsVUFBVSxFQUMvQixhQUFhLENBQUMsSUFBSSxDQUNuQixFQUFFLENBQUM7UUFDRixNQUFNLFVBQVUsR0FBRyw4QkFBOEIsQ0FBQztZQUNoRCxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsYUFBYSxFQUFFLG9CQUFvQixDQUFDLGFBQWE7WUFDakQsaUJBQWlCLEVBQUUsb0JBQW9CLENBQUMsaUJBQWlCO1lBQ3pELFNBQVM7WUFDVCxpQkFBaUIsRUFBRSxvQkFBb0IsQ0FBQyxpQkFBaUI7U0FDMUQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxVQUFVLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyx1QkFBdUIsQ0FDOUIsT0FBd0M7SUFFeEMsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FDakUsT0FBTyxDQUFDLGNBQWMsQ0FDdkIsQ0FBQztJQUNGLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7SUFFbkQsSUFBSSxhQUFhLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsVUFBVSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO1FBQzFFLGFBQWE7UUFDYixpQkFBaUIsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztRQUNuRSxpQkFBaUIsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FDM0QsT0FBTyxDQUFDLGVBQWUsQ0FDeEI7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxPQUF5QjtJQUNwRCxPQUFPLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsd0JBQXdCLENBQy9CLE9BQXdDO0lBRXhDLE9BQU8sQ0FDTCw4QkFBOEIsQ0FBQyxPQUFPLENBQUM7UUFDdkMsNkJBQTZCLENBQUMsT0FBTyxDQUFDLENBQ3ZDLENBQUM7QUFDSixDQUFDO0FBRUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHdCQUF3QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XHJcblxyXG5pbXBvcnQgeyBTaWduYXR1cmVLaW5kIH0gZnJvbSBcInR5cGVzY3JpcHRcIjtcclxuXHJcbmltcG9ydCB0eXBlIHtcclxuICBPdXRlckNhc3RDb250ZXh0LFxyXG4gIFJlc29sdmVGYWN0b3J5VGFyZ2V0VHlwZUNvbnRleHQsXHJcbn0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgaXNPdXRlckNhc3RSZXF1aXJlZCBhcyBpc091dGVyQ2FzdFJlcXVpcmVkSW1wbCxcclxuICBub3JtYWxpemVPYmplY3RMaWtlVHlwZSxcclxuICByZXNvbHZlRmFjdG9yeVJldHVyblR5cGUsXHJcbn0gZnJvbSBcIi4vdHlwZS1zaGFwZS1oZWxwZXJzXCI7XHJcblxyXG4vKiogQ29udGV4dCB1c2VkIHRvIGluc3BlY3Qgb25lIGNhbGxhYmxlIHNpZ25hdHVyZSBmb3IgYSBtb2NrIGZhY3RvcnkuICovXHJcbmludGVyZmFjZSBNYXRjaGluZ1NpZ25hdHVyZVJldHVyblR5cGVDb250ZXh0IHtcclxuICAvKiogVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIgdXNlZCBmb3IgYXNzaWduYWJpbGl0eSBjaGVja3MuICovXHJcbiAgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXI7XHJcblxyXG4gIC8qKiBGaXJzdCBtb2NrLWNhbGwgYXJndW1lbnQgbm9kZS4gKi9cclxuICBmaXJzdEFyZ3VtZW50OiB0cy5Ob2RlO1xyXG5cclxuICAvKiogVHlwZSByZXNvbHZlZCBmb3IgdGhlIGZpcnN0IG1vY2stY2FsbCBhcmd1bWVudC4gKi9cclxuICBmaXJzdEFyZ3VtZW50VHlwZTogdHMuVHlwZTtcclxuXHJcbiAgLyoqIENhbGxhYmxlIHNpZ25hdHVyZSBiZWluZyBpbnNwZWN0ZWQuICovXHJcbiAgc2lnbmF0dXJlOiB0cy5TaWduYXR1cmU7XHJcblxyXG4gIC8qKiBUeXBlU2NyaXB0IG5vZGUgZm9yIHRoZSBmYWN0b3J5IGNhbGxiYWNrIGFyZ3VtZW50LiAqL1xyXG4gIHRzRmFjdG9yeUFyZ3VtZW50OiB0cy5Ob2RlO1xyXG59XHJcblxyXG4vKiogTm9ybWFsaXplZCBpbnB1dHMgdXNlZCB3aGVuIG1hdGNoaW5nIGNhbGxhYmxlIFZpdGVzdCBzaWduYXR1cmVzLiAqL1xyXG5pbnRlcmZhY2UgU2lnbmF0dXJlTWF0Y2hJbnB1dHMge1xyXG4gIC8qKiBUeXBlIHJlc29sdmVkIGZvciB0aGUgbW9jayBjYWxsZWUgZXhwcmVzc2lvbi4gKi9cclxuICBjYWxsZWVUeXBlOiB0cy5UeXBlO1xyXG5cclxuICAvKiogRmlyc3QgbW9jay1jYWxsIGFyZ3VtZW50IG5vZGUuICovXHJcbiAgZmlyc3RBcmd1bWVudDogdHMuTm9kZTtcclxuXHJcbiAgLyoqIFR5cGUgcmVzb2x2ZWQgZm9yIHRoZSBmaXJzdCBtb2NrLWNhbGwgYXJndW1lbnQuICovXHJcbiAgZmlyc3RBcmd1bWVudFR5cGU6IHRzLlR5cGU7XHJcblxyXG4gIC8qKiBUeXBlU2NyaXB0IG5vZGUgZm9yIHRoZSBmYWN0b3J5IGNhbGxiYWNrIGFyZ3VtZW50LiAqL1xyXG4gIHRzRmFjdG9yeUFyZ3VtZW50OiB0cy5Ob2RlO1xyXG59XHJcblxyXG4vKipcclxuICogUmVhZHMgdGhlIGNvbnRleHR1YWwgdHlwZSBhc3NpZ25lZCB0byB0aGUgcmV0dXJuZWQgbW9jayBvYmplY3QgbGl0ZXJhbC5cclxuICogQHBhcmFtIGNvbnRleHQgVHlwZS1yZXNvbHV0aW9uIGlucHV0cyBmb3IgdGhlIGN1cnJlbnQgbW9jayBmYWN0b3J5LlxyXG4gKiBAcmV0dXJucyBDb250ZXh0dWFsIG9iamVjdC1saWtlIHR5cGUgd2hlbiBUeXBlU2NyaXB0IHByb3ZpZGVzIG9uZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCB0YXJnZXRUeXBlID0gZ2V0Q29udGV4dHVhbEZhY3RvcnlUYXJnZXRUeXBlKGNvbnRleHQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldENvbnRleHR1YWxGYWN0b3J5VGFyZ2V0VHlwZShcclxuICBjb250ZXh0OiBSZXNvbHZlRmFjdG9yeVRhcmdldFR5cGVDb250ZXh0LFxyXG4pOiB0cy5UeXBlIHwgdW5kZWZpbmVkIHtcclxuICBjb25zdCB7IGNoZWNrZXIsIG9iamVjdEV4cHJlc3Npb24sIHNlcnZpY2VzIH0gPSBjb250ZXh0O1xyXG5cclxuICByZXR1cm4gbm9ybWFsaXplT2JqZWN0TGlrZVR5cGUoXHJcbiAgICBjaGVja2VyLFxyXG4gICAgY2hlY2tlci5nZXRDb250ZXh0dWFsVHlwZShcclxuICAgICAgc2VydmljZXMuZXNUcmVlTm9kZVRvVFNOb2RlTWFwLmdldChvYmplY3RFeHByZXNzaW9uKSxcclxuICAgICksXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlc29sdmVzIHRoZSBmYWN0b3J5IHJldHVybiB0eXBlIGZvciBvbmUgY29tcGF0aWJsZSBtb2NrIHNpZ25hdHVyZS5cclxuICogQHBhcmFtIGNvbnRleHQgSW5wdXRzIHJlcXVpcmVkIHRvIGluc3BlY3Qgb25lIGNhbGxhYmxlIHNpZ25hdHVyZS5cclxuICogQHJldHVybnMgTm9ybWFsaXplZCBvYmplY3QtbGlrZSByZXR1cm4gdHlwZSB3aGVuIHRoZSBzaWduYXR1cmUgbWF0Y2hlcy5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCByZXR1cm5UeXBlID0gZ2V0TWF0Y2hpbmdTaWduYXR1cmVSZXR1cm5UeXBlKGNvbnRleHQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldE1hdGNoaW5nU2lnbmF0dXJlUmV0dXJuVHlwZShcclxuICBjb250ZXh0OiBNYXRjaGluZ1NpZ25hdHVyZVJldHVyblR5cGVDb250ZXh0LFxyXG4pOiB0cy5UeXBlIHwgdW5kZWZpbmVkIHtcclxuICBjb25zdCB7XHJcbiAgICBjaGVja2VyLFxyXG4gICAgZmlyc3RBcmd1bWVudCxcclxuICAgIGZpcnN0QXJndW1lbnRUeXBlLFxyXG4gICAgc2lnbmF0dXJlLFxyXG4gICAgdHNGYWN0b3J5QXJndW1lbnQsXHJcbiAgfSA9IGNvbnRleHQ7XHJcbiAgY29uc3QgW3NwZWNpZmllclBhcmFtZXRlciwgZmFjdG9yeVBhcmFtZXRlcl0gPSBzaWduYXR1cmUuZ2V0UGFyYW1ldGVycygpO1xyXG5cclxuICBpZiAoc3BlY2lmaWVyUGFyYW1ldGVyID09PSB2b2lkIDAgfHwgZmFjdG9yeVBhcmFtZXRlciA9PT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4gdm9pZCAwO1xyXG4gIH1cclxuXHJcbiAgY29uc3Qgc3BlY2lmaWVyUGFyYW1ldGVyVHlwZSA9IGNoZWNrZXIuZ2V0VHlwZU9mU3ltYm9sQXRMb2NhdGlvbihcclxuICAgIHNwZWNpZmllclBhcmFtZXRlcixcclxuICAgIGZpcnN0QXJndW1lbnQsXHJcbiAgKTtcclxuXHJcbiAgaWYgKCFjaGVja2VyLmlzVHlwZUFzc2lnbmFibGVUbyhmaXJzdEFyZ3VtZW50VHlwZSwgc3BlY2lmaWVyUGFyYW1ldGVyVHlwZSkpIHtcclxuICAgIHJldHVybiB2b2lkIDA7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcmVzb2x2ZUZhY3RvcnlSZXR1cm5UeXBlKFxyXG4gICAgY2hlY2tlcixcclxuICAgIGNoZWNrZXIuZ2V0VHlwZU9mU3ltYm9sQXRMb2NhdGlvbihmYWN0b3J5UGFyYW1ldGVyLCB0c0ZhY3RvcnlBcmd1bWVudCksXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlc29sdmVzIGEgdGFyZ2V0IHR5cGUgYnkgbWF0Y2hpbmcgdGhlIG1vY2sgY2FsbCBhZ2FpbnN0IGNhbGxhYmxlIHNpZ25hdHVyZXMuXHJcbiAqIEBwYXJhbSBjb250ZXh0IFR5cGUtcmVzb2x1dGlvbiBpbnB1dHMgZm9yIHRoZSBjdXJyZW50IG1vY2sgZmFjdG9yeS5cclxuICogQHJldHVybnMgT2JqZWN0LWxpa2UgcmV0dXJuIHR5cGUgaW5mZXJyZWQgZnJvbSB0aGUgbWF0Y2hlZCBzaWduYXR1cmUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgdGFyZ2V0VHlwZSA9IGdldFNpZ25hdHVyZUZhY3RvcnlUYXJnZXRUeXBlKGNvbnRleHQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldFNpZ25hdHVyZUZhY3RvcnlUYXJnZXRUeXBlKFxyXG4gIGNvbnRleHQ6IFJlc29sdmVGYWN0b3J5VGFyZ2V0VHlwZUNvbnRleHQsXHJcbik6IHRzLlR5cGUgfCB1bmRlZmluZWQge1xyXG4gIGNvbnN0IHNpZ25hdHVyZU1hdGNoSW5wdXRzID0gZ2V0U2lnbmF0dXJlTWF0Y2hJbnB1dHMoY29udGV4dCk7XHJcblxyXG4gIGlmIChzaWduYXR1cmVNYXRjaElucHV0cyA9PT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4gdm9pZCAwO1xyXG4gIH1cclxuXHJcbiAgZm9yIChjb25zdCBzaWduYXR1cmUgb2YgY29udGV4dC5jaGVja2VyLmdldFNpZ25hdHVyZXNPZlR5cGUoXHJcbiAgICBzaWduYXR1cmVNYXRjaElucHV0cy5jYWxsZWVUeXBlLFxyXG4gICAgU2lnbmF0dXJlS2luZC5DYWxsLFxyXG4gICkpIHtcclxuICAgIGNvbnN0IHJldHVyblR5cGUgPSBnZXRNYXRjaGluZ1NpZ25hdHVyZVJldHVyblR5cGUoe1xyXG4gICAgICBjaGVja2VyOiBjb250ZXh0LmNoZWNrZXIsXHJcbiAgICAgIGZpcnN0QXJndW1lbnQ6IHNpZ25hdHVyZU1hdGNoSW5wdXRzLmZpcnN0QXJndW1lbnQsXHJcbiAgICAgIGZpcnN0QXJndW1lbnRUeXBlOiBzaWduYXR1cmVNYXRjaElucHV0cy5maXJzdEFyZ3VtZW50VHlwZSxcclxuICAgICAgc2lnbmF0dXJlLFxyXG4gICAgICB0c0ZhY3RvcnlBcmd1bWVudDogc2lnbmF0dXJlTWF0Y2hJbnB1dHMudHNGYWN0b3J5QXJndW1lbnQsXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAocmV0dXJuVHlwZSAhPT0gdm9pZCAwKSB7XHJcbiAgICAgIHJldHVybiByZXR1cm5UeXBlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHZvaWQgMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbGxlY3RzIHRoZSBUeXBlU2NyaXB0IG5vZGVzIGFuZCB0eXBlcyBuZWVkZWQgZm9yIHNpZ25hdHVyZSBtYXRjaGluZy5cclxuICogQHBhcmFtIGNvbnRleHQgVHlwZS1yZXNvbHV0aW9uIGlucHV0cyBmb3IgdGhlIGN1cnJlbnQgbW9jayBmYWN0b3J5LlxyXG4gKiBAcmV0dXJucyBOb3JtYWxpemVkIHNpZ25hdHVyZS1tYXRjaGluZyBpbnB1dHMgd2hlbiB0aGUgY2FsbCBoYXMgYSBmaXJzdCBhcmd1bWVudC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBpbnB1dHMgPSBnZXRTaWduYXR1cmVNYXRjaElucHV0cyhjb250ZXh0KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRTaWduYXR1cmVNYXRjaElucHV0cyhcclxuICBjb250ZXh0OiBSZXNvbHZlRmFjdG9yeVRhcmdldFR5cGVDb250ZXh0LFxyXG4pOiBTaWduYXR1cmVNYXRjaElucHV0cyB8IHVuZGVmaW5lZCB7XHJcbiAgY29uc3QgdHNDYWxsRXhwcmVzc2lvbiA9IGNvbnRleHQuc2VydmljZXMuZXNUcmVlTm9kZVRvVFNOb2RlTWFwLmdldChcclxuICAgIGNvbnRleHQuY2FsbEV4cHJlc3Npb24sXHJcbiAgKTtcclxuICBjb25zdCBbZmlyc3RBcmd1bWVudF0gPSB0c0NhbGxFeHByZXNzaW9uLmFyZ3VtZW50cztcclxuXHJcbiAgaWYgKGZpcnN0QXJndW1lbnQgPT09IHZvaWQgMCkge1xyXG4gICAgcmV0dXJuIHZvaWQgMDtcclxuICB9XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBjYWxsZWVUeXBlOiBjb250ZXh0LmNoZWNrZXIuZ2V0VHlwZUF0TG9jYXRpb24odHNDYWxsRXhwcmVzc2lvbi5leHByZXNzaW9uKSxcclxuICAgIGZpcnN0QXJndW1lbnQsXHJcbiAgICBmaXJzdEFyZ3VtZW50VHlwZTogY29udGV4dC5jaGVja2VyLmdldFR5cGVBdExvY2F0aW9uKGZpcnN0QXJndW1lbnQpLFxyXG4gICAgdHNGYWN0b3J5QXJndW1lbnQ6IGNvbnRleHQuc2VydmljZXMuZXNUcmVlTm9kZVRvVFNOb2RlTWFwLmdldChcclxuICAgICAgY29udGV4dC5mYWN0b3J5QXJndW1lbnQsXHJcbiAgICApLFxyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG9iamVjdCBsaXRlcmFsIHN0aWxsIG5lZWRzIGFuIG91dGVyIGNhc3QuXHJcbiAqIEBwYXJhbSBjb250ZXh0IERhdGEgdXNlZCB0byBkZWNpZGUgd2hldGhlciB0aGUgZnVsbCBvYmplY3QgbmVlZHMgY2FzdGluZy5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBmdWxsIG9iamVjdCBzdGlsbCBuZWVkcyBjYXN0aW5nLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IG5lZWRzT3V0ZXJDYXN0ID0gaXNPdXRlckNhc3RSZXF1aXJlZChjb250ZXh0KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc091dGVyQ2FzdFJlcXVpcmVkKGNvbnRleHQ6IE91dGVyQ2FzdENvbnRleHQpOiBib29sZWFuIHtcclxuICByZXR1cm4gaXNPdXRlckNhc3RSZXF1aXJlZEltcGwoY29udGV4dCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXNvbHZlcyB0aGUgdGFyZ2V0IHR5cGUgdGhlIGZhY3Rvcnkgb2JqZWN0IHNob3VsZCBzYXRpc2Z5LlxyXG4gKiBAcGFyYW0gY29udGV4dCBUeXBlLXJlc29sdXRpb24gaW5wdXRzIGZvciB0aGUgY3VycmVudCBtb2NrIGZhY3RvcnkuXHJcbiAqIEByZXR1cm5zIFRhcmdldCB0eXBlIGZvciB0aGUgcmV3cml0dGVuIG9iamVjdCBsaXRlcmFsLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IHRhcmdldFR5cGUgPSByZXNvbHZlRmFjdG9yeVRhcmdldFR5cGUoY29udGV4dCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gcmVzb2x2ZUZhY3RvcnlUYXJnZXRUeXBlKFxyXG4gIGNvbnRleHQ6IFJlc29sdmVGYWN0b3J5VGFyZ2V0VHlwZUNvbnRleHQsXHJcbik6IHRzLlR5cGUgfCB1bmRlZmluZWQge1xyXG4gIHJldHVybiAoXHJcbiAgICBnZXRDb250ZXh0dWFsRmFjdG9yeVRhcmdldFR5cGUoY29udGV4dCkgPz9cclxuICAgIGdldFNpZ25hdHVyZUZhY3RvcnlUYXJnZXRUeXBlKGNvbnRleHQpXHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IHsgaXNPdXRlckNhc3RSZXF1aXJlZCwgcmVzb2x2ZUZhY3RvcnlUYXJnZXRUeXBlIH07XHJcbiJdfQ==
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type * as ts from "typescript";
|
|
2
|
-
import type { OuterCastContext } from "./types.js";
|
|
3
|
-
/**
|
|
4
|
-
* Determines whether the object literal still needs an outer cast.
|
|
5
|
-
* @param context Data used to decide whether the full object needs casting.
|
|
6
|
-
* @returns True when the full object still needs casting.
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* const needsOuterCast = isOuterCastRequired(context);
|
|
10
|
-
* ```
|
|
11
|
-
*/
|
|
12
|
-
declare function isOuterCastRequired(context: OuterCastContext): boolean;
|
|
13
|
-
/**
|
|
14
|
-
* Narrows a target type to the object-like type the fixer can reason about.
|
|
15
|
-
* @param checker TypeScript type checker instance.
|
|
16
|
-
* @param targetType Candidate target type.
|
|
17
|
-
* @returns Object-like type when the target can be normalized safely.
|
|
18
|
-
* @example
|
|
19
|
-
* ```typescript
|
|
20
|
-
* const normalizedType = normalizeObjectLikeType(checker, targetType);
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
declare function normalizeObjectLikeType(checker: ts.TypeChecker, targetType: ts.Type | undefined): ts.Type | undefined;
|
|
24
|
-
/**
|
|
25
|
-
* Resolves the factory function's returned object type from its call signatures.
|
|
26
|
-
* @param checker TypeScript type checker instance.
|
|
27
|
-
* @param factoryParameterType Type of the factory callback parameter.
|
|
28
|
-
* @returns Normalized object-like return type when one is available.
|
|
29
|
-
* @example
|
|
30
|
-
* ```typescript
|
|
31
|
-
* const returnType = resolveFactoryReturnType(checker, factoryParameterType);
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
declare function resolveFactoryReturnType(checker: ts.TypeChecker, factoryParameterType: ts.Type): ts.Type | undefined;
|
|
35
|
-
export { isOuterCastRequired, normalizeObjectLikeType, resolveFactoryReturnType, };
|
|
36
|
-
//# sourceMappingURL=type-shape-helpers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"type-shape-helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAYtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAoGhD;;;;;;;;GAQG;AACH,iBAAS,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAoB/D;AAED;;;;;;;;;GASG;AACH,iBAAS,uBAAuB,CAC9B,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,UAAU,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,GAC9B,EAAE,CAAC,IAAI,GAAG,SAAS,CAqBrB;AAED;;;;;;;;;GASG;AACH,iBAAS,wBAAwB,CAC/B,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,oBAAoB,EAAE,EAAE,CAAC,IAAI,GAC5B,EAAE,CAAC,IAAI,GAAG,SAAS,CAgBrB;AAED,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GACzB,CAAC"}
|