@codeperfect/eslint-plugin 1.0.0 → 2.0.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 +140 -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 +85 -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 +43 -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 +219 -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 +145 -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} +1 -1
- package/dist/domain/custom-rule-documentation.d.ts.map +1 -0
- package/dist/domain/custom-rule-documentation.js +35 -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 +168 -0
- package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/test-helpers.js +157 -0
- 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 +34 -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.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 +196 -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 +92 -0
- package/dist/domain/testing/aaa/analyzer.analysis.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts +4 -0
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +4 -0
- package/dist/domain/testing/aaa/analyzer.analysis.js +247 -0
- package/dist/domain/testing/aaa/analyzer.assertions.d.ts +93 -0
- package/dist/domain/testing/aaa/analyzer.assertions.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.assertions.js +283 -0
- package/dist/domain/testing/aaa/analyzer.classification.d.ts +75 -0
- package/dist/domain/testing/aaa/analyzer.classification.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.js +201 -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.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 +107 -0
- package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.super.js +228 -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 +113 -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.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 +34 -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 +85 -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 +36 -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 +86 -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 +150 -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 +81 -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 +189 -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 +92 -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 +62 -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 +203 -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 +129 -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 +217 -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 +106 -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 +57 -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 +34 -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 +54 -27
- 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/test-helpers.js +0 -157
- 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.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/rule.d.ts +0 -0
- /package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-content.d.ts +0 -0
- /package/dist/{docs → domain/docs}/test-helpers.d.ts +0 -0
- /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-helpers.d.ts +0 -0
- /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-walk.d.ts +0 -0
- /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/rule.d.ts +0 -0
- /package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-options.d.ts +0 -0
- /package/dist/{testing → domain/testing}/require-test-companion/rule.d.ts +0 -0
- /package/dist/{testing → domain/testing}/require-test-companion/types.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-test-companion/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,UAAU,GACX,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { buildListenerForFilename, getOptions, } from "./require-test-companion-utilities.js";
|
|
2
|
+
export { requireTestCompanionRule } from "./rule.js";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcmVxdWlyZS10ZXN0LWNvbXBhbmlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLFVBQVUsR0FDWCxNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIGJ1aWxkTGlzdGVuZXJGb3JGaWxlbmFtZSxcbiAgZ2V0T3B0aW9ucyxcbn0gZnJvbSBcIi4vcmVxdWlyZS10ZXN0LWNvbXBhbmlvbi11dGlsaXRpZXNcIjtcbmV4cG9ydCB7IHJlcXVpcmVUZXN0Q29tcGFuaW9uUnVsZSB9IGZyb20gXCIuL3J1bGVcIjtcbiJdfQ==
|
package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-listeners.d.ts
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Rule } from "eslint";
|
|
2
|
-
import type { RequireTestCompanionState } from "./require-test-companion-options";
|
|
2
|
+
import type { RequireTestCompanionState } from "./require-test-companion-options.js";
|
|
3
3
|
/**
|
|
4
4
|
* Builds a listener for a specific filename.
|
|
5
5
|
* @param context Input context value.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-test-companion-listeners.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-test-companion/require-test-companion-listeners.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAKnC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAuLlF;;;;;;;;;;GAUG;AACH,QAAA,MAAM,wBAAwB,GAC5B,SAAS,IAAI,CAAC,WAAW,EACzB,UAAU,MAAM,EAChB,SAAS,yBAAyB,KACjC,IAAI,CAAC,YAuBP,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { isLintableFilename, isPathMatch, isTypeScriptFile, TYPESCRIPT_EXTENSION, } from "./require-test-companion-options.js";
|
|
4
|
+
/**
|
|
5
|
+
* Gets the test suffix for a file name when present.
|
|
6
|
+
* @param fileBasename Input basename value.
|
|
7
|
+
* @param testSuffixes Input testSuffixes value.
|
|
8
|
+
* @returns Matched test suffix when present.
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const suffix = getTestSuffix("feature.spec.ts", ["spec"]);
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
const getTestSuffix = (fileBasename, testSuffixes) => testSuffixes.find((suffix) => fileBasename.endsWith(`.${suffix}${TYPESCRIPT_EXTENSION}`));
|
|
15
|
+
/**
|
|
16
|
+
* Checks for any test companion file in the directory.
|
|
17
|
+
* @param directory Input directory value.
|
|
18
|
+
* @param baseStem Input baseStem value.
|
|
19
|
+
* @param testSuffixes Input testSuffixes value.
|
|
20
|
+
* @returns True when any test companion exists.
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const ok = hasAnyTestCompanion(dir, "feature", ["spec"]);
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
const hasAnyTestCompanion = (directory, baseStem, testSuffixes) => testSuffixes.some((suffix) => existsSync(path.join(directory, `${baseStem}.${suffix}.ts`)));
|
|
27
|
+
/**
|
|
28
|
+
* Builds a listener that reports missing test companions.
|
|
29
|
+
* @param context Input context value.
|
|
30
|
+
* @param options Input options value.
|
|
31
|
+
* @returns Rule listener for missing tests.
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const listener = buildMissingTestListener(context, options);
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
const buildMissingTestListener = (context, options) => {
|
|
38
|
+
const { directory, fileBasename, testSuffixes } = options;
|
|
39
|
+
const baseStem = fileBasename.slice(0, -TYPESCRIPT_EXTENSION.length);
|
|
40
|
+
if (baseStem.length === 0) {
|
|
41
|
+
return {};
|
|
42
|
+
}
|
|
43
|
+
if (hasAnyTestCompanion(directory, baseStem, testSuffixes)) {
|
|
44
|
+
return {};
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
Program(node) {
|
|
48
|
+
const testFiles = testSuffixes
|
|
49
|
+
.map((suffix) => `${baseStem}.${suffix}${TYPESCRIPT_EXTENSION}`)
|
|
50
|
+
.join(", ");
|
|
51
|
+
context.report({
|
|
52
|
+
data: { testFiles },
|
|
53
|
+
messageId: "missingTest",
|
|
54
|
+
node,
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Builds a listener that reports missing source files.
|
|
61
|
+
* @param context Input context value.
|
|
62
|
+
* @param options Input options value.
|
|
63
|
+
* @returns Rule listener for missing sources.
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* const listener = buildMissingSourceListener(context, options);
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
const buildMissingSourceListener = (context, options) => {
|
|
70
|
+
const { directory, fileBasename, suffix } = options;
|
|
71
|
+
const sourceBasename = fileBasename.slice(0, -`.${suffix}${TYPESCRIPT_EXTENSION}`.length);
|
|
72
|
+
if (sourceBasename.length === 0) {
|
|
73
|
+
return {};
|
|
74
|
+
}
|
|
75
|
+
const sourceFile = `${sourceBasename}${TYPESCRIPT_EXTENSION}`;
|
|
76
|
+
if (existsSync(path.join(directory, sourceFile))) {
|
|
77
|
+
return {};
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
Program(node) {
|
|
81
|
+
context.report({
|
|
82
|
+
data: { sourceFile },
|
|
83
|
+
messageId: "missingSource",
|
|
84
|
+
node,
|
|
85
|
+
});
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Determines whether a file should be linted.
|
|
91
|
+
* @param filename Input filename value.
|
|
92
|
+
* @param options Input options value.
|
|
93
|
+
* @returns True when the file should be linted.
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* const ok = shouldLintFile(filename, options);
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
const shouldLintFile = (filename, options) => {
|
|
100
|
+
const { enforceIn, ignorePatterns } = options;
|
|
101
|
+
if (!isLintableFilename(filename)) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
if (!isTypeScriptFile(filename)) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
if (!isPathMatch(filename, enforceIn)) {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
return !isPathMatch(filename, ignorePatterns);
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Builds a listener for a specific filename.
|
|
114
|
+
* @param context Input context value.
|
|
115
|
+
* @param filename Input filename value.
|
|
116
|
+
* @param options Input options value.
|
|
117
|
+
* @returns Rule listener for the filename.
|
|
118
|
+
* @example
|
|
119
|
+
* ```typescript
|
|
120
|
+
* const listener = buildListenerForFilename(context, filename, options);
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
const buildListenerForFilename = (context, filename, options) => {
|
|
124
|
+
if (!shouldLintFile(filename, options)) {
|
|
125
|
+
return {};
|
|
126
|
+
}
|
|
127
|
+
const fileBasename = path.basename(filename);
|
|
128
|
+
const directory = path.dirname(filename);
|
|
129
|
+
const { testSuffixes } = options;
|
|
130
|
+
const testSuffix = getTestSuffix(fileBasename, testSuffixes);
|
|
131
|
+
if (testSuffix !== void 0) {
|
|
132
|
+
return buildMissingSourceListener(context, {
|
|
133
|
+
directory,
|
|
134
|
+
fileBasename,
|
|
135
|
+
suffix: testSuffix,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
return buildMissingTestListener(context, {
|
|
139
|
+
directory,
|
|
140
|
+
fileBasename,
|
|
141
|
+
testSuffixes,
|
|
142
|
+
});
|
|
143
|
+
};
|
|
144
|
+
export { buildListenerForFilename };
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZS10ZXN0LWNvbXBhbmlvbi1saXN0ZW5lcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcmVxdWlyZS10ZXN0LWNvbXBhbmlvbi9yZXF1aXJlLXRlc3QtY29tcGFuaW9uLWxpc3RlbmVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUk3QixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEdBQ3JCLE1BQU0sa0NBQWtDLENBQUM7QUEwQjFDOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sYUFBYSxHQUFHLENBQ3BCLFlBQW9CLEVBQ3BCLFlBQXNCLEVBQ0YsRUFBRSxDQUN0QixZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDM0IsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLE1BQU0sR0FBRyxvQkFBb0IsRUFBRSxDQUFDLENBQzNELENBQUM7QUFFSjs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUMxQixTQUFpQixFQUNqQixRQUFnQixFQUNoQixZQUFzQixFQUNiLEVBQUUsQ0FDWCxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDM0IsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsUUFBUSxJQUFJLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FDN0QsQ0FBQztBQUVKOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sd0JBQXdCLEdBQUcsQ0FDL0IsT0FBeUIsRUFDekIsT0FBbUMsRUFDaEIsRUFBRTtJQUNyQixNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsR0FBRyxPQUFPLENB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QUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDakMsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztJQUU3RCxJQUFJLFVBQVUsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sMEJBQTBCLENBQUMsT0FBTyxFQUFFO1lBQ3pDLFNBQVM7WUFDVCxZQUFZO1lBQ1osTUFBTSxFQUFFLFVBQVU7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sd0JBQXdCLENBQUMsT0FBTyxFQUFFO1FBQ3ZDLFNBQVM7UUFDVCxZQUFZO1FBQ1osWUFBWTtLQUNiLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcblxuaW1wb3J0IHR5cGUgeyBSZXF1aXJlVGVzdENvbXBhbmlvblN0YXRlIH0gZnJvbSBcIi4vcmVxdWlyZS10ZXN0LWNvbXBhbmlvbi1vcHRpb25zXCI7XG5cbmltcG9ydCB7XG4gIGlzTGludGFibGVGaWxlbmFtZSxcbiAgaXNQYXRoTWF0Y2gsXG4gIGlzVHlwZVNjcmlwdEZpbGUsXG4gIFRZUEVTQ1JJUFRfRVhURU5TSU9OLFxufSBmcm9tIFwiLi9yZXF1aXJlLXRlc3QtY29tcGFuaW9uLW9wdGlvbnNcIjtcblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIE1pc3NpbmdTb3VyY2VMaXN0ZW5lck9wdGlvbnMge1xuICAvKiogRGlyZWN0b3J5IGZpZWxkIHZhbHVlLiAqL1xuICBkaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKiogQmFzZW5hbWUgZmllbGQgdmFsdWUuICovXG4gIGZpbGVCYXNlbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBTdWZmaXggZmllbGQgdmFsdWUuICovXG4gIHN1ZmZpeDogc3RyaW5nO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgTWlzc2luZ1Rlc3RMaXN0ZW5lck9wdGlvbnMge1xuICAvKiogRGlyZWN0b3J5IGZpZWxkIHZhbHVlLiAqL1xuICBkaXJlY3Rvcnk6IHN0cmluZztcblxuICAvKiogQmFzZW5hbWUgZmllbGQgdmFsdWUuICovXG4gIGZpbGVCYXNlbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBUZXN0U3VmZml4ZXMgZmllbGQgdmFsdWUuICovXG4gIHRlc3RTdWZmaXhlczogc3RyaW5nW107XG59XG5cbi8qKlxuICogR2V0cyB0aGUgdGVzdCBzdWZmaXggZm9yIGEgZmlsZSBuYW1lIHdoZW4gcHJlc2VudC5cbiAqIEBwYXJhbSBmaWxlQmFzZW5hbWUgSW5wdXQgYmFzZW5hbWUgdmFsdWUuXG4gKiBAcGFyYW0gdGVzdFN1ZmZpeGVzIElucHV0IHRlc3RTdWZmaXhlcyB2YWx1ZS5cbiAqIEByZXR1cm5zIE1hdGNoZWQgdGVzdCBzdWZmaXggd2hlbiBwcmVzZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHN1ZmZpeCA9IGdldFRlc3RTdWZmaXgoXCJmZWF0dXJlLnNwZWMudHNcIiwgW1wic3BlY1wiXSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0VGVzdFN1ZmZpeCA9IChcbiAgZmlsZUJhc2VuYW1lOiBzdHJpbmcsXG4gIHRlc3RTdWZmaXhlczogc3RyaW5nW10sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQgPT5cbiAgdGVzdFN1ZmZpeGVzLmZpbmQoKHN1ZmZpeCkgPT5cbiAgICBmaWxlQmFzZW5hbWUuZW5kc1dpdGgoYC4ke3N1ZmZpeH0ke1RZUEVTQ1JJUFRfRVhURU5TSU9OfWApLFxuICApO1xuXG4vKipcbiAqIENoZWNrcyBmb3IgYW55IHRlc3QgY29tcGFuaW9uIGZpbGUgaW4gdGhlIGRpcmVjdG9yeS5cbiAqIEBwYXJhbSBkaXJlY3RvcnkgSW5wdXQgZGlyZWN0b3J5IHZhbHVlLlxuICogQHBhcmFtIGJhc2VTdGVtIElucHV0IGJhc2VTdGVtIHZhbHVlLlxuICogQHBhcmFtIHRlc3RTdWZmaXhlcyBJbnB1dCB0ZXN0U3VmZml4ZXMgdmFsdWUuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gYW55IHRlc3QgY29tcGFuaW9uIGV4aXN0cy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBvayA9IGhhc0FueVRlc3RDb21wYW5pb24oZGlyLCBcImZlYXR1cmVcIiwgW1wic3BlY1wiXSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaGFzQW55VGVzdENvbXBhbmlvbiA9IChcbiAgZGlyZWN0b3J5OiBzdHJpbmcsXG4gIGJhc2VTdGVtOiBzdHJpbmcsXG4gIHRlc3RTdWZmaXhlczogc3RyaW5nW10sXG4pOiBib29sZWFuID0+XG4gIHRlc3RTdWZmaXhlcy5zb21lKChzdWZmaXgpID0+XG4gICAgZXhpc3RzU3luYyhwYXRoLmpvaW4oZGlyZWN0b3J5LCBgJHtiYXNlU3RlbX0uJHtzdWZmaXh9LnRzYCkpLFxuICApO1xuXG4vKipcbiAqIEJ1aWxkcyBhIGxpc3RlbmVyIHRoYXQgcmVwb3J0cyBtaXNzaW5nIHRlc3QgY29tcGFuaW9ucy5cbiAqIEBwYXJhbSBjb250ZXh0IElucHV0IGNvbnRleHQgdmFsdWUuXG4gKiBAcGFyYW0gb3B0aW9ucyBJbnB1dCBvcHRpb25zIHZhbHVlLlxuICogQHJldHVybnMgUnVsZSBsaXN0ZW5lciBmb3IgbWlzc2luZyB0ZXN0cy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBsaXN0ZW5lciA9IGJ1aWxkTWlzc2luZ1Rlc3RMaXN0ZW5lcihjb250ZXh0LCBvcHRpb25zKTtcbiAqIGBgYFxuICovXG5jb25zdCBidWlsZE1pc3NpbmdUZXN0TGlzdGVuZXIgPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIG9wdGlvbnM6IE1pc3NpbmdUZXN0TGlzdGVuZXJPcHRpb25zLFxuKTogUnVsZS5SdWxlTGlzdGVuZXIgPT4ge1xuICBjb25zdCB7IGRpcmVjdG9yeSwgZmlsZUJhc2VuYW1lLCB0ZXN0U3VmZml4ZXMgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGJhc2VTdGVtID0gZmlsZUJhc2VuYW1lLnNsaWNlKDAsIC1UWVBFU0NSSVBUX0VYVEVOU0lPTi5sZW5ndGgpO1xuXG4gIGlmIChiYXNlU3RlbS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBpZiAoaGFzQW55VGVzdENvbXBhbmlvbihkaXJlY3RvcnksIGJhc2VTdGVtLCB0ZXN0U3VmZml4ZXMpKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBQcm9ncmFtKG5vZGUpOiB2b2lkIHtcbiAgICAgIGNvbnN0IHRlc3RGaWxlcyA9IHRlc3RTdWZmaXhlc1xuICAgICAgICAubWFwKChzdWZmaXgpID0+IGAke2Jhc2VTdGVtfS4ke3N1ZmZpeH0ke1RZUEVTQ1JJUFRfRVhURU5TSU9OfWApXG4gICAgICAgIC5qb2luKFwiLCBcIik7XG5cbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgZGF0YTogeyB0ZXN0RmlsZXMgfSxcbiAgICAgICAgbWVzc2FnZUlkOiBcIm1pc3NpbmdUZXN0XCIsXG4gICAgICAgIG5vZGUsXG4gICAgICB9KTtcbiAgICB9LFxuICB9O1xufTtcblxuLyoqXG4gKiBCdWlsZHMgYSBsaXN0ZW5lciB0aGF0IHJlcG9ydHMgbWlzc2luZyBzb3VyY2UgZmlsZXMuXG4gKiBAcGFyYW0gY29udGV4dCBJbnB1dCBjb250ZXh0IHZhbHVlLlxuICogQHBhcmFtIG9wdGlvbnMgSW5wdXQgb3B0aW9ucyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJ1bGUgbGlzdGVuZXIgZm9yIG1pc3Npbmcgc291cmNlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBsaXN0ZW5lciA9IGJ1aWxkTWlzc2luZ1NvdXJjZUxpc3RlbmVyKGNvbnRleHQsIG9wdGlvbnMpO1xuICogYGBgXG4gKi9cbmNvbnN0IGJ1aWxkTWlzc2luZ1NvdXJjZUxpc3RlbmVyID0gKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBvcHRpb25zOiBNaXNzaW5nU291cmNlTGlzdGVuZXJPcHRpb25zLFxuKTogUnVsZS5SdWxlTGlzdGVuZXIgPT4ge1xuICBjb25zdCB7IGRpcmVjdG9yeSwgZmlsZUJhc2VuYW1lLCBzdWZmaXggfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHNvdXJjZUJhc2VuYW1lID0gZmlsZUJhc2VuYW1lLnNsaWNlKFxuICAgIDAsXG4gICAgLWAuJHtzdWZmaXh9JHtUWVBFU0NSSVBUX0VYVEVOU0lPTn1gLmxlbmd0aCxcbiAgKTtcblxuICBpZiAoc291cmNlQmFzZW5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgY29uc3Qgc291cmNlRmlsZSA9IGAke3NvdXJjZUJhc2VuYW1lfSR7VFlQRVNDUklQVF9FWFRFTlNJT059YDtcblxuICBpZiAoZXhpc3RzU3luYyhwYXRoLmpvaW4oZGlyZWN0b3J5LCBzb3VyY2VGaWxlKSkpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICByZXR1cm4ge1xuICAgIFByb2dyYW0obm9kZSk6IHZvaWQge1xuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBkYXRhOiB7IHNvdXJjZUZpbGUgfSxcbiAgICAgICAgbWVzc2FnZUlkOiBcIm1pc3NpbmdTb3VyY2VcIixcbiAgICAgICAgbm9kZSxcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGZpbGUgc2hvdWxkIGJlIGxpbnRlZC5cbiAqIEBwYXJhbSBmaWxlbmFtZSBJbnB1dCBmaWxlbmFtZSB2YWx1ZS5cbiAqIEBwYXJhbSBvcHRpb25zIElucHV0IG9wdGlvbnMgdmFsdWUuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGZpbGUgc2hvdWxkIGJlIGxpbnRlZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBvayA9IHNob3VsZExpbnRGaWxlKGZpbGVuYW1lLCBvcHRpb25zKTtcbiAqIGBgYFxuICovXG5jb25zdCBzaG91bGRMaW50RmlsZSA9IChcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogUmVxdWlyZVRlc3RDb21wYW5pb25TdGF0ZSxcbik6IGJvb2xlYW4gPT4ge1xuICBjb25zdCB7IGVuZm9yY2VJbiwgaWdub3JlUGF0dGVybnMgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKCFpc0xpbnRhYmxlRmlsZW5hbWUoZmlsZW5hbWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFpc1R5cGVTY3JpcHRGaWxlKGZpbGVuYW1lKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaXNQYXRoTWF0Y2goZmlsZW5hbWUsIGVuZm9yY2VJbikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gIWlzUGF0aE1hdGNoKGZpbGVuYW1lLCBpZ25vcmVQYXR0ZXJucyk7XG59O1xuXG4vKipcbiAqIEJ1aWxkcyBhIGxpc3RlbmVyIGZvciBhIHNwZWNpZmljIGZpbGVuYW1lLlxuICogQHBhcmFtIGNvbnRleHQgSW5wdXQgY29udGV4dCB2YWx1ZS5cbiAqIEBwYXJhbSBmaWxlbmFtZSBJbnB1dCBmaWxlbmFtZSB2YWx1ZS5cbiAqIEBwYXJhbSBvcHRpb25zIElucHV0IG9wdGlvbnMgdmFsdWUuXG4gKiBAcmV0dXJucyBSdWxlIGxpc3RlbmVyIGZvciB0aGUgZmlsZW5hbWUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbGlzdGVuZXIgPSBidWlsZExpc3RlbmVyRm9yRmlsZW5hbWUoY29udGV4dCwgZmlsZW5hbWUsIG9wdGlvbnMpO1xuICogYGBgXG4gKi9cbmNvbnN0IGJ1aWxkTGlzdGVuZXJGb3JGaWxlbmFtZSA9IChcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogUmVxdWlyZVRlc3RDb21wYW5pb25TdGF0ZSxcbik6IFJ1bGUuUnVsZUxpc3RlbmVyID0+IHtcbiAgaWYgKCFzaG91bGRMaW50RmlsZShmaWxlbmFtZSwgb3B0aW9ucykpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdCBmaWxlQmFzZW5hbWUgPSBwYXRoLmJhc2VuYW1lKGZpbGVuYW1lKTtcbiAgY29uc3QgZGlyZWN0b3J5ID0gcGF0aC5kaXJuYW1lKGZpbGVuYW1lKTtcbiAgY29uc3QgeyB0ZXN0U3VmZml4ZXMgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHRlc3RTdWZmaXggPSBnZXRUZXN0U3VmZml4KGZpbGVCYXNlbmFtZSwgdGVzdFN1ZmZpeGVzKTtcblxuICBpZiAodGVzdFN1ZmZpeCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIGJ1aWxkTWlzc2luZ1NvdXJjZUxpc3RlbmVyKGNvbnRleHQsIHtcbiAgICAgIGRpcmVjdG9yeSxcbiAgICAgIGZpbGVCYXNlbmFtZSxcbiAgICAgIHN1ZmZpeDogdGVzdFN1ZmZpeCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBidWlsZE1pc3NpbmdUZXN0TGlzdGVuZXIoY29udGV4dCwge1xuICAgIGRpcmVjdG9yeSxcbiAgICBmaWxlQmFzZW5hbWUsXG4gICAgdGVzdFN1ZmZpeGVzLFxuICB9KTtcbn07XG5cbmV4cG9ydCB7IGJ1aWxkTGlzdGVuZXJGb3JGaWxlbmFtZSB9O1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-test-companion-options.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-test-companion/require-test-companion-options.ts"],"names":[],"mappings":"AAeA,6DAA6D;AAC7D,QAAA,MAAM,oBAAoB,QAAQ,CAAC;AAEnC,qCAAqC;AACrC,UAAU,yBAAyB;IACjC,6BAA6B;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,kCAAkC;IAClC,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB,gCAAgC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,kBAAkB,GAAI,UAAU,MAAM,KAAG,OACG,CAAC;AAEnD;;;;;;;;GAQG;AACH,QAAA,MAAM,gBAAgB,GAAI,UAAU,MAAM,KAAG,OAC2B,CAAC;AA+BzE;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,GAAI,SAAS,SAAS,OAAO,EAAE,KAAG,yBAcjD,CAAC;AA0BF;;;;;;;;;GASG;AACH,QAAA,MAAM,WAAW,GAAI,UAAU,MAAM,EAAE,UAAU,MAAM,EAAE,KAAG,OAc3D,CAAC;AAEF,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,KAAK,yBAAyB,EAC9B,oBAAoB,GACrB,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { minimatch } from "minimatch";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { cwd } from "node:process";
|
|
4
|
+
/** Default value used by this module. */
|
|
5
|
+
const DEFAULT_TEST_SUFFIXES = ["spec", "test"];
|
|
6
|
+
/** Default value used by this module. */
|
|
7
|
+
const DEFAULT_IGNORE_PATTERNS = ["/*.d.ts", "/index.ts"];
|
|
8
|
+
/** Default folders where test companions are enforced. */
|
|
9
|
+
const DEFAULT_ENFORCE_IN = ["src/**"];
|
|
10
|
+
/** File extension used to detect TypeScript source files. */
|
|
11
|
+
const TYPESCRIPT_EXTENSION = ".ts";
|
|
12
|
+
/**
|
|
13
|
+
* Checks isLintableFilename.
|
|
14
|
+
* @param filename Input filename value.
|
|
15
|
+
* @returns Return value output.
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* isLintableFilename();
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
const isLintableFilename = (filename) => filename.length > 0 && path.isAbsolute(filename);
|
|
22
|
+
/**
|
|
23
|
+
* Checks isTypeScriptFile.
|
|
24
|
+
* @param filename Input filename value.
|
|
25
|
+
* @returns Return value output.
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* isTypeScriptFile();
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
const isTypeScriptFile = (filename) => filename.endsWith(TYPESCRIPT_EXTENSION) && !filename.endsWith(".d.ts");
|
|
32
|
+
/**
|
|
33
|
+
* Normalizes a rule option into a string list.
|
|
34
|
+
* @param value Input value value.
|
|
35
|
+
* @param defaults Input defaults value.
|
|
36
|
+
* @returns Normalized list of strings.
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* const list = normalizeList("src/**", ["src/**"]);
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
const normalizeList = (value, defaults) => {
|
|
43
|
+
if (Array.isArray(value)) {
|
|
44
|
+
return value
|
|
45
|
+
.filter((entry) => typeof entry === "string")
|
|
46
|
+
.map((entry) => entry.trim())
|
|
47
|
+
.filter((entry) => entry.length > 0);
|
|
48
|
+
}
|
|
49
|
+
if (typeof value === "string") {
|
|
50
|
+
const trimmed = value.trim();
|
|
51
|
+
return trimmed.length === 0 ? [] : [trimmed];
|
|
52
|
+
}
|
|
53
|
+
return [...defaults];
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Gets getOptions.
|
|
57
|
+
* @param options Input options value.
|
|
58
|
+
* @returns Return value output.
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* getOptions();
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
const getOptions = (options) => {
|
|
65
|
+
const rawOptions = options[0];
|
|
66
|
+
return {
|
|
67
|
+
enforceIn: normalizeList(rawOptions?.enforceIn, DEFAULT_ENFORCE_IN),
|
|
68
|
+
ignorePatterns: normalizeList(rawOptions?.ignorePatterns, DEFAULT_IGNORE_PATTERNS),
|
|
69
|
+
testSuffixes: normalizeList(rawOptions?.testSuffixes, DEFAULT_TEST_SUFFIXES),
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Normalizes normalizeRelativePath.
|
|
74
|
+
* @param filename Input filename value.
|
|
75
|
+
* @returns Return value output.
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* normalizeRelativePath();
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
const normalizeRelativePath = (filename) => path.relative(cwd(), filename).split(path.sep).join("/");
|
|
82
|
+
/**
|
|
83
|
+
* Normalizes normalizePattern.
|
|
84
|
+
* @param pattern Input pattern value.
|
|
85
|
+
* @returns Return value output.
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* normalizePattern();
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
const normalizePattern = (pattern) => pattern.startsWith("/") ? `**${pattern}` : pattern;
|
|
92
|
+
/**
|
|
93
|
+
* Checks isPathMatch.
|
|
94
|
+
* @param filename Input filename value.
|
|
95
|
+
* @param patterns Input patterns value.
|
|
96
|
+
* @returns Return value output.
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* isPathMatch();
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
const isPathMatch = (filename, patterns) => {
|
|
103
|
+
if (patterns.length === 0) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
const relativePath = normalizeRelativePath(filename);
|
|
107
|
+
if (relativePath.startsWith("..") || path.isAbsolute(relativePath)) {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
return patterns.some((pattern) => minimatch(relativePath, normalizePattern(pattern), { dot: true }));
|
|
111
|
+
};
|
|
112
|
+
export { getOptions, isLintableFilename, isPathMatch, isTypeScriptFile, TYPESCRIPT_EXTENSION, };
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZS10ZXN0LWNvbXBhbmlvbi1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3JlcXVpcmUtdGVzdC1jb21wYW5pb24vcmVxdWlyZS10ZXN0LWNvbXBhbmlvbi1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJbkMseUNBQXlDO0FBQ3pDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFVLENBQUM7QUFFeEQseUNBQXlDO0FBQ3pDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFVLENBQUM7QUFFbEUsMERBQTBEO0FBQzFELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxRQUFRLENBQVUsQ0FBQztBQUUvQyw2REFBNkQ7QUFDN0QsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUM7QUFjbkM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGtCQUFrQixHQUFHLENBQUMsUUFBZ0IsRUFBVyxFQUFFLENBQ3ZELFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFbkQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLENBQUMsUUFBZ0IsRUFBVyxFQUFFLENBQ3JELFFBQVEsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFekU7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FDcEIsS0FBcUUsRUFDckUsUUFBMkIsRUFDakIsRUFBRTtJQUNaLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sS0FBSzthQUNULE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBbUIsRUFBRSxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQzthQUM3RCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUM1QixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLE9BQU8sT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQTJCLEVBQTZCLEVBQUU7SUFDNUUsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBNEMsQ0FBQztJQUV6RSxPQUFPO1FBQ0wsU0FBUyxFQUFFLGFBQWEsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixDQUFDO1FBQ25FLGNBQWMsRUFBRSxhQUFhLENBQzNCLFVBQVUsRUFBRSxjQUFjLEVBQzFCLHVCQUF1QixDQUN4QjtRQUNELFlBQVksRUFBRSxhQUFhLENBQ3pCLFVBQVUsRUFBRSxZQUFZLEVBQ3hCLHFCQUFxQixDQUN0QjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxRQUFnQixFQUFVLEVBQUUsQ0FDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUUzRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFlLEVBQVUsRUFBRSxDQUNuRCxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFFckQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxXQUFXLEdBQUcsQ0FBQyxRQUFnQixFQUFFLFFBQWtCLEVBQVcsRUFBRTtJQUNwRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFckQsSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUNuRSxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUMvQixTQUFTLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQ2xFLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixPQUFPLEVBQ0wsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsZ0JBQWdCLEVBRWhCLG9CQUFvQixHQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWluaW1hdGNoIH0gZnJvbSBcIm1pbmltYXRjaFwiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgY3dkIH0gZnJvbSBcIm5vZGU6cHJvY2Vzc1wiO1xuXG5pbXBvcnQgdHlwZSB7IFJlcXVpcmVUZXN0Q29tcGFuaW9uT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKiBEZWZhdWx0IHZhbHVlIHVzZWQgYnkgdGhpcyBtb2R1bGUuICovXG5jb25zdCBERUZBVUxUX1RFU1RfU1VGRklYRVMgPSBbXCJzcGVjXCIsIFwidGVzdFwiXSBhcyBjb25zdDtcblxuLyoqIERlZmF1bHQgdmFsdWUgdXNlZCBieSB0aGlzIG1vZHVsZS4gKi9cbmNvbnN0IERFRkFVTFRfSUdOT1JFX1BBVFRFUk5TID0gW1wiLyouZC50c1wiLCBcIi9pbmRleC50c1wiXSBhcyBjb25zdDtcblxuLyoqIERlZmF1bHQgZm9sZGVycyB3aGVyZSB0ZXN0IGNvbXBhbmlvbnMgYXJlIGVuZm9yY2VkLiAqL1xuY29uc3QgREVGQVVMVF9FTkZPUkNFX0lOID0gW1wic3JjLyoqXCJdIGFzIGNvbnN0O1xuXG4vKiogRmlsZSBleHRlbnNpb24gdXNlZCB0byBkZXRlY3QgVHlwZVNjcmlwdCBzb3VyY2UgZmlsZXMuICovXG5jb25zdCBUWVBFU0NSSVBUX0VYVEVOU0lPTiA9IFwiLnRzXCI7XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBSZXF1aXJlVGVzdENvbXBhbmlvblN0YXRlIHtcbiAgLyoqIEVuZm9yY2VJbiBmaWVsZCB2YWx1ZS4gKi9cbiAgZW5mb3JjZUluOiBzdHJpbmdbXTtcblxuICAvKiogSWdub3JlUGF0dGVybnMgZmllbGQgdmFsdWUuICovXG4gIGlnbm9yZVBhdHRlcm5zOiBzdHJpbmdbXTtcblxuICAvKiogVGVzdFN1ZmZpeGVzIGZpZWxkIHZhbHVlLiAqL1xuICB0ZXN0U3VmZml4ZXM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIENoZWNrcyBpc0xpbnRhYmxlRmlsZW5hbWUuXG4gKiBAcGFyYW0gZmlsZW5hbWUgSW5wdXQgZmlsZW5hbWUgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGlzTGludGFibGVGaWxlbmFtZSgpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzTGludGFibGVGaWxlbmFtZSA9IChmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiA9PlxuICBmaWxlbmFtZS5sZW5ndGggPiAwICYmIHBhdGguaXNBYnNvbHV0ZShmaWxlbmFtZSk7XG5cbi8qKlxuICogQ2hlY2tzIGlzVHlwZVNjcmlwdEZpbGUuXG4gKiBAcGFyYW0gZmlsZW5hbWUgSW5wdXQgZmlsZW5hbWUgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGlzVHlwZVNjcmlwdEZpbGUoKTtcbiAqIGBgYFxuICovXG5jb25zdCBpc1R5cGVTY3JpcHRGaWxlID0gKGZpbGVuYW1lOiBzdHJpbmcpOiBib29sZWFuID0+XG4gIGZpbGVuYW1lLmVuZHNXaXRoKFRZUEVTQ1JJUFRfRVhURU5TSU9OKSAmJiAhZmlsZW5hbWUuZW5kc1dpdGgoXCIuZC50c1wiKTtcblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgcnVsZSBvcHRpb24gaW50byBhIHN0cmluZyBsaXN0LlxuICogQHBhcmFtIHZhbHVlIElucHV0IHZhbHVlIHZhbHVlLlxuICogQHBhcmFtIGRlZmF1bHRzIElucHV0IGRlZmF1bHRzIHZhbHVlLlxuICogQHJldHVybnMgTm9ybWFsaXplZCBsaXN0IG9mIHN0cmluZ3MuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbGlzdCA9IG5vcm1hbGl6ZUxpc3QoXCJzcmMvKipcIiwgW1wic3JjLyoqXCJdKTtcbiAqIGBgYFxuICovXG5jb25zdCBub3JtYWxpemVMaXN0ID0gKFxuICB2YWx1ZTogUmVxdWlyZVRlc3RDb21wYW5pb25PcHRpb25zW2tleW9mIFJlcXVpcmVUZXN0Q29tcGFuaW9uT3B0aW9uc10sXG4gIGRlZmF1bHRzOiByZWFkb25seSBzdHJpbmdbXSxcbik6IHN0cmluZ1tdID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlXG4gICAgICAuZmlsdGVyKChlbnRyeSk6IGVudHJ5IGlzIHN0cmluZyA9PiB0eXBlb2YgZW50cnkgPT09IFwic3RyaW5nXCIpXG4gICAgICAubWFwKChlbnRyeSkgPT4gZW50cnkudHJpbSgpKVxuICAgICAgLmZpbHRlcigoZW50cnkpID0+IGVudHJ5Lmxlbmd0aCA+IDApO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIGNvbnN0IHRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG4gICAgcmV0dXJuIHRyaW1tZWQubGVuZ3RoID09PSAwID8gW10gOiBbdHJpbW1lZF07XG4gIH1cblxuICByZXR1cm4gWy4uLmRlZmF1bHRzXTtcbn07XG5cbi8qKlxuICogR2V0cyBnZXRPcHRpb25zLlxuICogQHBhcmFtIG9wdGlvbnMgSW5wdXQgb3B0aW9ucyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZ2V0T3B0aW9ucygpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldE9wdGlvbnMgPSAob3B0aW9uczogcmVhZG9ubHkgdW5rbm93bltdKTogUmVxdWlyZVRlc3RDb21wYW5pb25TdGF0ZSA9PiB7XG4gIGNvbnN0IHJhd09wdGlvbnMgPSBvcHRpb25zWzBdIGFzIFJlcXVpcmVUZXN0Q29tcGFuaW9uT3B0aW9ucyB8IHVuZGVmaW5lZDtcblxuICByZXR1cm4ge1xuICAgIGVuZm9yY2VJbjogbm9ybWFsaXplTGlzdChyYXdPcHRpb25zPy5lbmZvcmNlSW4sIERFRkFVTFRfRU5GT1JDRV9JTiksXG4gICAgaWdub3JlUGF0dGVybnM6IG5vcm1hbGl6ZUxpc3QoXG4gICAgICByYXdPcHRpb25zPy5pZ25vcmVQYXR0ZXJucyxcbiAgICAgIERFRkFVTFRfSUdOT1JFX1BBVFRFUk5TLFxuICAgICksXG4gICAgdGVzdFN1ZmZpeGVzOiBub3JtYWxpemVMaXN0KFxuICAgICAgcmF3T3B0aW9ucz8udGVzdFN1ZmZpeGVzLFxuICAgICAgREVGQVVMVF9URVNUX1NVRkZJWEVTLFxuICAgICksXG4gIH07XG59O1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgbm9ybWFsaXplUmVsYXRpdmVQYXRoLlxuICogQHBhcmFtIGZpbGVuYW1lIElucHV0IGZpbGVuYW1lIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBub3JtYWxpemVSZWxhdGl2ZVBhdGgoKTtcbiAqIGBgYFxuICovXG5jb25zdCBub3JtYWxpemVSZWxhdGl2ZVBhdGggPSAoZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyA9PlxuICBwYXRoLnJlbGF0aXZlKGN3ZCgpLCBmaWxlbmFtZSkuc3BsaXQocGF0aC5zZXApLmpvaW4oXCIvXCIpO1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgbm9ybWFsaXplUGF0dGVybi5cbiAqIEBwYXJhbSBwYXR0ZXJuIElucHV0IHBhdHRlcm4gdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIG5vcm1hbGl6ZVBhdHRlcm4oKTtcbiAqIGBgYFxuICovXG5jb25zdCBub3JtYWxpemVQYXR0ZXJuID0gKHBhdHRlcm46IHN0cmluZyk6IHN0cmluZyA9PlxuICBwYXR0ZXJuLnN0YXJ0c1dpdGgoXCIvXCIpID8gYCoqJHtwYXR0ZXJufWAgOiBwYXR0ZXJuO1xuXG4vKipcbiAqIENoZWNrcyBpc1BhdGhNYXRjaC5cbiAqIEBwYXJhbSBmaWxlbmFtZSBJbnB1dCBmaWxlbmFtZSB2YWx1ZS5cbiAqIEBwYXJhbSBwYXR0ZXJucyBJbnB1dCBwYXR0ZXJucyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaXNQYXRoTWF0Y2goKTtcbiAqIGBgYFxuICovXG5jb25zdCBpc1BhdGhNYXRjaCA9IChmaWxlbmFtZTogc3RyaW5nLCBwYXR0ZXJuczogc3RyaW5nW10pOiBib29sZWFuID0+IHtcbiAgaWYgKHBhdHRlcm5zLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHJlbGF0aXZlUGF0aCA9IG5vcm1hbGl6ZVJlbGF0aXZlUGF0aChmaWxlbmFtZSk7XG5cbiAgaWYgKHJlbGF0aXZlUGF0aC5zdGFydHNXaXRoKFwiLi5cIikgfHwgcGF0aC5pc0Fic29sdXRlKHJlbGF0aXZlUGF0aCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gcGF0dGVybnMuc29tZSgocGF0dGVybikgPT5cbiAgICBtaW5pbWF0Y2gocmVsYXRpdmVQYXRoLCBub3JtYWxpemVQYXR0ZXJuKHBhdHRlcm4pLCB7IGRvdDogdHJ1ZSB9KSxcbiAgKTtcbn07XG5cbmV4cG9ydCB7XG4gIGdldE9wdGlvbnMsXG4gIGlzTGludGFibGVGaWxlbmFtZSxcbiAgaXNQYXRoTWF0Y2gsXG4gIGlzVHlwZVNjcmlwdEZpbGUsXG4gIHR5cGUgUmVxdWlyZVRlc3RDb21wYW5pb25TdGF0ZSxcbiAgVFlQRVNDUklQVF9FWFRFTlNJT04sXG59O1xuIl19
|
package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-test-companion-test-helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-test-companion/require-test-companion-test-helpers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAU3D,qCAAqC;AACrC,UAAU,UAAU;IAClB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAgCD;;;;;;;;;GASG;AACH,QAAA,MAAM,mBAAmB,GAAI,MAAM,KAAK,GAAG,KAAK,EAAE,UAAU,MAAM,KAAG,MAMpE,CAAC;AAyBF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,mBAAmB,GACvB,MAAM,KAAK,GAAG,KAAK,EACnB,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,CAAC,MAAM,EAAE,MAAM,CAOjB,CAAC;AA2EF;;;;;;;;;GASG;AACH,QAAA,MAAM,OAAO,GACX,UAAU,MAAM,EAChB,UAAU,2BAA2B,KACpC,UAAU,EAUZ,CAAC;AAEF;;;;;;GAMG;AACH,QAAA,MAAM,2BAA2B,QAAO,IAIvC,CAAC;AAEF,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,GACR,CAAC"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { SourceCode } from "eslint";
|
|
2
|
+
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { cwd } from "node:process";
|
|
5
|
+
import { requireTestCompanionRule } from "./rule.js";
|
|
6
|
+
/** Tracks temporary directories so tests can clean them up. */
|
|
7
|
+
const temporaryDirectories = [];
|
|
8
|
+
/**
|
|
9
|
+
* Creates createRepoDirectory.
|
|
10
|
+
* @param root Input root value.
|
|
11
|
+
* @returns Return value output.
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* createRepoDirectory();
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
const createRepoDirectory = (root) => {
|
|
18
|
+
const baseDirectory = path.join(cwd(), root);
|
|
19
|
+
mkdirSync(baseDirectory, { recursive: true });
|
|
20
|
+
return mkdtempSync(path.join(baseDirectory, "test-companion-"));
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Writes a simple TypeScript file at the provided path.
|
|
24
|
+
* @param filePath Input filePath value.
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* writeFile("/tmp/feature.ts");
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
const writeFile = (filePath) => {
|
|
31
|
+
writeFileSync(filePath, "export const value = 1;", "utf8");
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Creates createTemporaryFile.
|
|
35
|
+
* @param root Input root value.
|
|
36
|
+
* @param filename Input filename value.
|
|
37
|
+
* @returns Return value output.
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* createTemporaryFile();
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
const createTemporaryFile = (root, filename) => {
|
|
44
|
+
const directory = createRepoDirectory(root);
|
|
45
|
+
temporaryDirectories.push(directory);
|
|
46
|
+
const filePath = path.join(directory, filename);
|
|
47
|
+
writeFile(filePath);
|
|
48
|
+
return filePath;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Creates multiple temporary files under the given root.
|
|
52
|
+
* @param root Input root value.
|
|
53
|
+
* @param filenames Input filenames value.
|
|
54
|
+
* @returns Paths to the created files.
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* const paths = createTemporaryFiles("tmp", ["a.ts", "b.ts"]);
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
const createTemporaryFiles = (root, filenames) => {
|
|
61
|
+
const directory = createRepoDirectory(root);
|
|
62
|
+
temporaryDirectories.push(directory);
|
|
63
|
+
return filenames.map((filename) => {
|
|
64
|
+
const filePath = path.join(directory, filename);
|
|
65
|
+
writeFile(filePath);
|
|
66
|
+
return filePath;
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Creates a temporary file pair for test/source combinations.
|
|
71
|
+
* @param root Input root value.
|
|
72
|
+
* @param first Input first value.
|
|
73
|
+
* @param second Input second value.
|
|
74
|
+
* @returns Tuple of created file paths.
|
|
75
|
+
* @throws {Error} When the file paths are missing.
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* const [source, test] = createTemporaryPair("tmp", "a.ts", "a.spec.ts");
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
const createTemporaryPair = (root, first, second) => {
|
|
82
|
+
const [firstPath, secondPath] = createTemporaryFiles(root, [
|
|
83
|
+
first,
|
|
84
|
+
second,
|
|
85
|
+
]);
|
|
86
|
+
return [firstPath, secondPath];
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Creates createProgramAst.
|
|
90
|
+
* @returns Return value output.
|
|
91
|
+
* @example
|
|
92
|
+
* ```typescript
|
|
93
|
+
* createProgramAst();
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
const createProgramAst = () => ({
|
|
97
|
+
body: [],
|
|
98
|
+
comments: [],
|
|
99
|
+
loc: {
|
|
100
|
+
end: { column: 0, line: 1 },
|
|
101
|
+
start: { column: 0, line: 1 },
|
|
102
|
+
},
|
|
103
|
+
range: [0, 0],
|
|
104
|
+
sourceType: "module",
|
|
105
|
+
tokens: [],
|
|
106
|
+
type: "Program",
|
|
107
|
+
});
|
|
108
|
+
/**
|
|
109
|
+
* Creates a rule context for the given filename.
|
|
110
|
+
* @param filename Input filename value.
|
|
111
|
+
* @param reports Input reports value.
|
|
112
|
+
* @param sourceCode Input sourceCode value.
|
|
113
|
+
* @returns Rule context for tests.
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* const context = createRuleContext(file, reports, sourceCode);
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
const createRuleContext = (filename, reports, sourceCode) => ({
|
|
120
|
+
cwd: cwd(),
|
|
121
|
+
filename,
|
|
122
|
+
id: "require-test-companion",
|
|
123
|
+
languageOptions: {
|
|
124
|
+
ecmaVersion: "latest",
|
|
125
|
+
sourceType: "module",
|
|
126
|
+
},
|
|
127
|
+
options: [],
|
|
128
|
+
parserOptions: {},
|
|
129
|
+
parserPath: void 0,
|
|
130
|
+
physicalFilename: filename,
|
|
131
|
+
report: (report) => {
|
|
132
|
+
const { messageId } = report;
|
|
133
|
+
reports.push({ messageId });
|
|
134
|
+
},
|
|
135
|
+
settings: {},
|
|
136
|
+
sourceCode,
|
|
137
|
+
});
|
|
138
|
+
/**
|
|
139
|
+
* Runs the rule listeners for a context.
|
|
140
|
+
* @param context Input context value.
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* runListeners(context);
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
const runListeners = (context) => {
|
|
147
|
+
const listeners = requireTestCompanionRule.create(context);
|
|
148
|
+
const programNode = context.sourceCode.ast;
|
|
149
|
+
const programListener = listeners.Program;
|
|
150
|
+
programListener?.(programNode);
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* Runs the rule with the given options.
|
|
154
|
+
* @param filename Input filename value.
|
|
155
|
+
* @param options Input options value.
|
|
156
|
+
* @returns Collected rule reports.
|
|
157
|
+
* @example
|
|
158
|
+
* ```typescript
|
|
159
|
+
* const reports = runRule("/tmp/feature.ts");
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
const runRule = (filename, options) => {
|
|
163
|
+
const reports = [];
|
|
164
|
+
const programAst = createProgramAst();
|
|
165
|
+
const sourceCode = new SourceCode("", programAst);
|
|
166
|
+
const context = createRuleContext(filename, reports, sourceCode);
|
|
167
|
+
context.options = options === void 0 ? [] : [options];
|
|
168
|
+
runListeners(context);
|
|
169
|
+
return reports;
|
|
170
|
+
};
|
|
171
|
+
/**
|
|
172
|
+
* Cleans up temporary directories created by tests.
|
|
173
|
+
* @example
|
|
174
|
+
* ```typescript
|
|
175
|
+
* cleanupTemporaryDirectories();
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
const cleanupTemporaryDirectories = () => {
|
|
179
|
+
for (const directory of temporaryDirectories.splice(0)) {
|
|
180
|
+
rmSync(directory, { force: true, recursive: true });
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
export { cleanupTemporaryDirectories, createTemporaryFile, createTemporaryPair, runRule, };
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZS10ZXN0LWNvbXBhbmlvbi10ZXN0LWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcmVxdWlyZS10ZXN0LWNvbXBhbmlvbi9yZXF1aXJlLXRlc3QtY29tcGFuaW9uLXRlc3QtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDeEUsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJbkMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBY2xELCtEQUErRDtBQUMvRCxNQUFNLG9CQUFvQixHQUFhLEVBQUUsQ0FBQztBQUUxQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFtQixFQUFVLEVBQUU7SUFDMUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QyxTQUFTLENBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFNBQVMsR0FBRyxDQUFDLFFBQWdCLEVBQVEsRUFBRTtJQUMzQyxhQUFhLENBQUMsUUFBUSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzdELENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7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QUFtQixFQUNuQixtQkFBbUIsRUFDbkIsT0FBTyxHQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFTVCwgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHsgU291cmNlQ29kZSB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB7IG1rZGlyU3luYywgbWtkdGVtcFN5bmMsIHJtU3luYywgd3JpdGVGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBjd2QgfSBmcm9tIFwibm9kZTpwcm9jZXNzXCI7XG5cbmltcG9ydCB0eXBlIHsgUmVxdWlyZVRlc3RDb21wYW5pb25PcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHsgcmVxdWlyZVRlc3RDb21wYW5pb25SdWxlIH0gZnJvbSBcIi4vcnVsZVwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgUmVwb3J0RGVzY3JpcHRvcldpdGhNZXNzYWdlSWQge1xuICAvKiogTWVzc2FnZUlkIGZpZWxkIHZhbHVlLiAqL1xuICBtZXNzYWdlSWQ/OiBzdHJpbmc7XG59XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBSdWxlUmVwb3J0IHtcbiAgLyoqIE1lc3NhZ2VJZCBoZWxwZXIgdmFsdWUuICovXG4gIG1lc3NhZ2VJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVHJhY2tzIHRlbXBvcmFyeSBkaXJlY3RvcmllcyBzbyB0ZXN0cyBjYW4gY2xlYW4gdGhlbSB1cC4gKi9cbmNvbnN0IHRlbXBvcmFyeURpcmVjdG9yaWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4vKipcbiAqIENyZWF0ZXMgY3JlYXRlUmVwb0RpcmVjdG9yeS5cbiAqIEBwYXJhbSByb290IElucHV0IHJvb3QgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNyZWF0ZVJlcG9EaXJlY3RvcnkoKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVSZXBvRGlyZWN0b3J5ID0gKHJvb3Q6IFwic3JjXCIgfCBcInRtcFwiKTogc3RyaW5nID0+IHtcbiAgY29uc3QgYmFzZURpcmVjdG9yeSA9IHBhdGguam9pbihjd2QoKSwgcm9vdCk7XG4gIG1rZGlyU3luYyhiYXNlRGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgcmV0dXJuIG1rZHRlbXBTeW5jKHBhdGguam9pbihiYXNlRGlyZWN0b3J5LCBcInRlc3QtY29tcGFuaW9uLVwiKSk7XG59O1xuXG4vKipcbiAqIFdyaXRlcyBhIHNpbXBsZSBUeXBlU2NyaXB0IGZpbGUgYXQgdGhlIHByb3ZpZGVkIHBhdGguXG4gKiBAcGFyYW0gZmlsZVBhdGggSW5wdXQgZmlsZVBhdGggdmFsdWUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogd3JpdGVGaWxlKFwiL3RtcC9mZWF0dXJlLnRzXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IHdyaXRlRmlsZSA9IChmaWxlUGF0aDogc3RyaW5nKTogdm9pZCA9PiB7XG4gIHdyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIFwiZXhwb3J0IGNvbnN0IHZhbHVlID0gMTtcIiwgXCJ1dGY4XCIpO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGNyZWF0ZVRlbXBvcmFyeUZpbGUuXG4gKiBAcGFyYW0gcm9vdCBJbnB1dCByb290IHZhbHVlLlxuICogQHBhcmFtIGZpbGVuYW1lIElucHV0IGZpbGVuYW1lIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjcmVhdGVUZW1wb3JhcnlGaWxlKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlVGVtcG9yYXJ5RmlsZSA9IChyb290OiBcInNyY1wiIHwgXCJ0bXBcIiwgZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGRpcmVjdG9yeSA9IGNyZWF0ZVJlcG9EaXJlY3Rvcnkocm9vdCk7XG4gIHRlbXBvcmFyeURpcmVjdG9yaWVzLnB1c2goZGlyZWN0b3J5KTtcbiAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZGlyZWN0b3J5LCBmaWxlbmFtZSk7XG4gIHdyaXRlRmlsZShmaWxlUGF0aCk7XG4gIHJldHVybiBmaWxlUGF0aDtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBtdWx0aXBsZSB0ZW1wb3JhcnkgZmlsZXMgdW5kZXIgdGhlIGdpdmVuIHJvb3QuXG4gKiBAcGFyYW0gcm9vdCBJbnB1dCByb290IHZhbHVlLlxuICogQHBhcmFtIGZpbGVuYW1lcyBJbnB1dCBmaWxlbmFtZXMgdmFsdWUuXG4gKiBAcmV0dXJucyBQYXRocyB0byB0aGUgY3JlYXRlZCBmaWxlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwYXRocyA9IGNyZWF0ZVRlbXBvcmFyeUZpbGVzKFwidG1wXCIsIFtcImEudHNcIiwgXCJiLnRzXCJdKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVUZW1wb3JhcnlGaWxlcyA9IChcbiAgcm9vdDogXCJzcmNcIiB8IFwidG1wXCIsXG4gIGZpbGVuYW1lczogc3RyaW5nW10sXG4pOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGRpcmVjdG9yeSA9IGNyZWF0ZVJlcG9EaXJlY3Rvcnkocm9vdCk7XG4gIHRlbXBvcmFyeURpcmVjdG9yaWVzLnB1c2goZGlyZWN0b3J5KTtcbiAgcmV0dXJuIGZpbGVuYW1lcy5tYXAoKGZpbGVuYW1lKSA9PiB7XG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZGlyZWN0b3J5LCBmaWxlbmFtZSk7XG4gICAgd3JpdGVGaWxlKGZpbGVQYXRoKTtcbiAgICByZXR1cm4gZmlsZVBhdGg7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgdGVtcG9yYXJ5IGZpbGUgcGFpciBmb3IgdGVzdC9zb3VyY2UgY29tYmluYXRpb25zLlxuICogQHBhcmFtIHJvb3QgSW5wdXQgcm9vdCB2YWx1ZS5cbiAqIEBwYXJhbSBmaXJzdCBJbnB1dCBmaXJzdCB2YWx1ZS5cbiAqIEBwYXJhbSBzZWNvbmQgSW5wdXQgc2Vjb25kIHZhbHVlLlxuICogQHJldHVybnMgVHVwbGUgb2YgY3JlYXRlZCBmaWxlIHBhdGhzLlxuICogQHRocm93cyB7RXJyb3J9IFdoZW4gdGhlIGZpbGUgcGF0aHMgYXJlIG1pc3NpbmcuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgW3NvdXJjZSwgdGVzdF0gPSBjcmVhdGVUZW1wb3JhcnlQYWlyKFwidG1wXCIsIFwiYS50c1wiLCBcImEuc3BlYy50c1wiKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVUZW1wb3JhcnlQYWlyID0gKFxuICByb290OiBcInNyY1wiIHwgXCJ0bXBcIixcbiAgZmlyc3Q6IHN0cmluZyxcbiAgc2Vjb25kOiBzdHJpbmcsXG4pOiBbc3RyaW5nLCBzdHJpbmddID0+IHtcbiAgY29uc3QgW2ZpcnN0UGF0aCwgc2Vjb25kUGF0aF0gPSBjcmVhdGVUZW1wb3JhcnlGaWxlcyhyb290LCBbXG4gICAgZmlyc3QsXG4gICAgc2Vjb25kLFxuICBdKSBhcyBbc3RyaW5nLCBzdHJpbmddO1xuXG4gIHJldHVybiBbZmlyc3RQYXRoLCBzZWNvbmRQYXRoXTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBjcmVhdGVQcm9ncmFtQXN0LlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjcmVhdGVQcm9ncmFtQXN0KCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlUHJvZ3JhbUFzdCA9ICgpOiBBU1QuUHJvZ3JhbSA9PiAoe1xuICBib2R5OiBbXSxcbiAgY29tbWVudHM6IFtdLFxuICBsb2M6IHtcbiAgICBlbmQ6IHsgY29sdW1uOiAwLCBsaW5lOiAxIH0sXG4gICAgc3RhcnQ6IHsgY29sdW1uOiAwLCBsaW5lOiAxIH0sXG4gIH0sXG4gIHJhbmdlOiBbMCwgMF0sXG4gIHNvdXJjZVR5cGU6IFwibW9kdWxlXCIsXG4gIHRva2VuczogW10sXG4gIHR5cGU6IFwiUHJvZ3JhbVwiLFxufSk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHJ1bGUgY29udGV4dCBmb3IgdGhlIGdpdmVuIGZpbGVuYW1lLlxuICogQHBhcmFtIGZpbGVuYW1lIElucHV0IGZpbGVuYW1lIHZhbHVlLlxuICogQHBhcmFtIHJlcG9ydHMgSW5wdXQgcmVwb3J0cyB2YWx1ZS5cbiAqIEBwYXJhbSBzb3VyY2VDb2RlIElucHV0IHNvdXJjZUNvZGUgdmFsdWUuXG4gKiBAcmV0dXJucyBSdWxlIGNvbnRleHQgZm9yIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGNvbnRleHQgPSBjcmVhdGVSdWxlQ29udGV4dChmaWxlLCByZXBvcnRzLCBzb3VyY2VDb2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVSdWxlQ29udGV4dCA9IChcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgcmVwb3J0czogUnVsZVJlcG9ydFtdLFxuICBzb3VyY2VDb2RlOiBTb3VyY2VDb2RlLFxuKTogUnVsZS5SdWxlQ29udGV4dCA9PlxuICAoe1xuICAgIGN3ZDogY3dkKCksXG4gICAgZmlsZW5hbWUsXG4gICAgaWQ6IFwicmVxdWlyZS10ZXN0LWNvbXBhbmlvblwiLFxuICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgZWNtYVZlcnNpb246IFwibGF0ZXN0XCIsXG4gICAgICBzb3VyY2VUeXBlOiBcIm1vZHVsZVwiLFxuICAgIH0sXG4gICAgb3B0aW9uczogW10sXG4gICAgcGFyc2VyT3B0aW9uczoge30sXG4gICAgcGFyc2VyUGF0aDogdm9pZCAwLFxuICAgIHBoeXNpY2FsRmlsZW5hbWU6IGZpbGVuYW1lLFxuICAgIHJlcG9ydDogKHJlcG9ydDogUnVsZS5SZXBvcnREZXNjcmlwdG9yKTogdm9pZCA9PiB7XG4gICAgICBjb25zdCB7IG1lc3NhZ2VJZCB9ID0gcmVwb3J0IGFzIFJlcG9ydERlc2NyaXB0b3JXaXRoTWVzc2FnZUlkO1xuICAgICAgcmVwb3J0cy5wdXNoKHsgbWVzc2FnZUlkIH0pO1xuICAgIH0sXG4gICAgc2V0dGluZ3M6IHt9LFxuICAgIHNvdXJjZUNvZGUsXG4gIH0pIGFzIHVua25vd24gYXMgUnVsZS5SdWxlQ29udGV4dDtcblxuLyoqXG4gKiBSdW5zIHRoZSBydWxlIGxpc3RlbmVycyBmb3IgYSBjb250ZXh0LlxuICogQHBhcmFtIGNvbnRleHQgSW5wdXQgY29udGV4dCB2YWx1ZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBydW5MaXN0ZW5lcnMoY29udGV4dCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcnVuTGlzdGVuZXJzID0gKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiB2b2lkID0+IHtcbiAgY29uc3QgbGlzdGVuZXJzID0gcmVxdWlyZVRlc3RDb21wYW5pb25SdWxlLmNyZWF0ZShjb250ZXh0KTtcbiAgY29uc3QgcHJvZ3JhbU5vZGUgPSBjb250ZXh0LnNvdXJjZUNvZGUuYXN0O1xuICBjb25zdCBwcm9ncmFtTGlzdGVuZXIgPSBsaXN0ZW5lcnMuUHJvZ3JhbTtcblxuICBwcm9ncmFtTGlzdGVuZXI/Lihwcm9ncmFtTm9kZSk7XG59O1xuXG4vKipcbiAqIFJ1bnMgdGhlIHJ1bGUgd2l0aCB0aGUgZ2l2ZW4gb3B0aW9ucy5cbiAqIEBwYXJhbSBmaWxlbmFtZSBJbnB1dCBmaWxlbmFtZSB2YWx1ZS5cbiAqIEBwYXJhbSBvcHRpb25zIElucHV0IG9wdGlvbnMgdmFsdWUuXG4gKiBAcmV0dXJucyBDb2xsZWN0ZWQgcnVsZSByZXBvcnRzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlcG9ydHMgPSBydW5SdWxlKFwiL3RtcC9mZWF0dXJlLnRzXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IHJ1blJ1bGUgPSAoXG4gIGZpbGVuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBSZXF1aXJlVGVzdENvbXBhbmlvbk9wdGlvbnMsXG4pOiBSdWxlUmVwb3J0W10gPT4ge1xuICBjb25zdCByZXBvcnRzOiBSdWxlUmVwb3J0W10gPSBbXTtcbiAgY29uc3QgcHJvZ3JhbUFzdCA9IGNyZWF0ZVByb2dyYW1Bc3QoKTtcbiAgY29uc3Qgc291cmNlQ29kZSA9IG5ldyBTb3VyY2VDb2RlKFwiXCIsIHByb2dyYW1Bc3QpO1xuICBjb25zdCBjb250ZXh0ID0gY3JlYXRlUnVsZUNvbnRleHQoZmlsZW5hbWUsIHJlcG9ydHMsIHNvdXJjZUNvZGUpO1xuICBjb250ZXh0Lm9wdGlvbnMgPSBvcHRpb25zID09PSB2b2lkIDAgPyBbXSA6IFtvcHRpb25zXTtcblxuICBydW5MaXN0ZW5lcnMoY29udGV4dCk7XG5cbiAgcmV0dXJuIHJlcG9ydHM7XG59O1xuXG4vKipcbiAqIENsZWFucyB1cCB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMgY3JlYXRlZCBieSB0ZXN0cy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjbGVhbnVwVGVtcG9yYXJ5RGlyZWN0b3JpZXMoKTtcbiAqIGBgYFxuICovXG5jb25zdCBjbGVhbnVwVGVtcG9yYXJ5RGlyZWN0b3JpZXMgPSAoKTogdm9pZCA9PiB7XG4gIGZvciAoY29uc3QgZGlyZWN0b3J5IG9mIHRlbXBvcmFyeURpcmVjdG9yaWVzLnNwbGljZSgwKSkge1xuICAgIHJtU3luYyhkaXJlY3RvcnksIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgfVxufTtcblxuZXhwb3J0IHtcbiAgY2xlYW51cFRlbXBvcmFyeURpcmVjdG9yaWVzLFxuICBjcmVhdGVUZW1wb3JhcnlGaWxlLFxuICBjcmVhdGVUZW1wb3JhcnlQYWlyLFxuICBydW5SdWxlLFxufTtcbiJdfQ==
|
package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-utilities.d.ts
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Rule } from "eslint";
|
|
2
|
-
import { getOptions as getOptionsImpl } from "./require-test-companion-options";
|
|
2
|
+
import { getOptions as getOptionsImpl } from "./require-test-companion-options.js";
|
|
3
3
|
/** Normalized options state type. */
|
|
4
4
|
type RequireTestCompanionState = ReturnType<typeof getOptionsImpl>;
|
|
5
5
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-test-companion-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-test-companion/require-test-companion-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEhF,qCAAqC;AACrC,KAAK,yBAAyB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAEnE;;;;;;;;;;GAUG;AACH,QAAA,MAAM,wBAAwB,GAC5B,SAAS,IAAI,CAAC,WAAW,EACzB,UAAU,MAAM,EAChB,SAAS,yBAAyB,KACjC,IAAI,CAAC,YACkD,CAAC;AAE3D;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,GAAI,SAAS,SAAS,OAAO,EAAE,KAAG,yBACzB,CAAC;AAE1B,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { buildListenerForFilename as buildListenerForFilenameImpl } from "./require-test-companion-listeners.js";
|
|
2
|
+
import { getOptions as getOptionsImpl } from "./require-test-companion-options.js";
|
|
3
|
+
/**
|
|
4
|
+
* Build a rule listener for a source filename.
|
|
5
|
+
* @param context Rule execution context.
|
|
6
|
+
* @param filename Source file path.
|
|
7
|
+
* @param options Normalized rule options state.
|
|
8
|
+
* @returns Rule listener for the file.
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const listener = buildListenerForFilename(context, filename, options);
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
const buildListenerForFilename = (context, filename, options) => buildListenerForFilenameImpl(context, filename, options);
|
|
15
|
+
/**
|
|
16
|
+
* Normalize rule options for the listener.
|
|
17
|
+
* @param options Raw rule options.
|
|
18
|
+
* @returns Normalized rule options state.
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const options = getOptions([]);
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
const getOptions = (options) => getOptionsImpl(options);
|
|
25
|
+
export { buildListenerForFilename, getOptions };
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZS10ZXN0LWNvbXBhbmlvbi11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcmVxdWlyZS10ZXN0LWNvbXBhbmlvbi9yZXF1aXJlLXRlc3QtY29tcGFuaW9uLXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsd0JBQXdCLElBQUksNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RyxPQUFPLEVBQUUsVUFBVSxJQUFJLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBS2hGOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLHdCQUF3QixHQUFHLENBQy9CLE9BQXlCLEVBQ3pCLFFBQWdCLEVBQ2hCLE9BQWtDLEVBQ2YsRUFBRSxDQUNyQiw0QkFBNEIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRTNEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUEyQixFQUE2QixFQUFFLENBQzVFLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUUxQixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7IGJ1aWxkTGlzdGVuZXJGb3JGaWxlbmFtZSBhcyBidWlsZExpc3RlbmVyRm9yRmlsZW5hbWVJbXBsIH0gZnJvbSBcIi4vcmVxdWlyZS10ZXN0LWNvbXBhbmlvbi1saXN0ZW5lcnNcIjtcbmltcG9ydCB7IGdldE9wdGlvbnMgYXMgZ2V0T3B0aW9uc0ltcGwgfSBmcm9tIFwiLi9yZXF1aXJlLXRlc3QtY29tcGFuaW9uLW9wdGlvbnNcIjtcblxuLyoqIE5vcm1hbGl6ZWQgb3B0aW9ucyBzdGF0ZSB0eXBlLiAqL1xudHlwZSBSZXF1aXJlVGVzdENvbXBhbmlvblN0YXRlID0gUmV0dXJuVHlwZTx0eXBlb2YgZ2V0T3B0aW9uc0ltcGw+O1xuXG4vKipcbiAqIEJ1aWxkIGEgcnVsZSBsaXN0ZW5lciBmb3IgYSBzb3VyY2UgZmlsZW5hbWUuXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGV4ZWN1dGlvbiBjb250ZXh0LlxuICogQHBhcmFtIGZpbGVuYW1lIFNvdXJjZSBmaWxlIHBhdGguXG4gKiBAcGFyYW0gb3B0aW9ucyBOb3JtYWxpemVkIHJ1bGUgb3B0aW9ucyBzdGF0ZS5cbiAqIEByZXR1cm5zIFJ1bGUgbGlzdGVuZXIgZm9yIHRoZSBmaWxlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGxpc3RlbmVyID0gYnVpbGRMaXN0ZW5lckZvckZpbGVuYW1lKGNvbnRleHQsIGZpbGVuYW1lLCBvcHRpb25zKTtcbiAqIGBgYFxuICovXG5jb25zdCBidWlsZExpc3RlbmVyRm9yRmlsZW5hbWUgPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIGZpbGVuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IFJlcXVpcmVUZXN0Q29tcGFuaW9uU3RhdGUsXG4pOiBSdWxlLlJ1bGVMaXN0ZW5lciA9PlxuICBidWlsZExpc3RlbmVyRm9yRmlsZW5hbWVJbXBsKGNvbnRleHQsIGZpbGVuYW1lLCBvcHRpb25zKTtcblxuLyoqXG4gKiBOb3JtYWxpemUgcnVsZSBvcHRpb25zIGZvciB0aGUgbGlzdGVuZXIuXG4gKiBAcGFyYW0gb3B0aW9ucyBSYXcgcnVsZSBvcHRpb25zLlxuICogQHJldHVybnMgTm9ybWFsaXplZCBydWxlIG9wdGlvbnMgc3RhdGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb3B0aW9ucyA9IGdldE9wdGlvbnMoW10pO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldE9wdGlvbnMgPSAob3B0aW9uczogcmVhZG9ubHkgdW5rbm93bltdKTogUmVxdWlyZVRlc3RDb21wYW5pb25TdGF0ZSA9PlxuICBnZXRPcHRpb25zSW1wbChvcHRpb25zKTtcblxuZXhwb3J0IHsgYnVpbGRMaXN0ZW5lckZvckZpbGVuYW1lLCBnZXRPcHRpb25zIH07XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-test-companion/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAMnC,sEAAsE;AACtE,QAAA,MAAM,wBAAwB,EAAE,IAAI,CAAC,UA2DpC,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|