@codeperfect/eslint-plugin 1.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -4
- package/dist/.tsbuildinfo +1 -1
- package/dist/{custom-rules.d.ts → application/custom-rules.d.ts} +3 -0
- package/dist/application/custom-rules.d.ts.map +1 -0
- package/dist/application/custom-rules.js +74 -0
- package/dist/application/index.d.ts +4 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +3 -0
- package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts +56 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +149 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/consistent-barrel-files-listeners.d.ts +4 -4
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +98 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +45 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +64 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/exports-only-rule-test-utilities.d.ts +5 -4
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +87 -0
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +145 -0
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts +5 -0
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/index.js +4 -0
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +90 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts +1 -1
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +91 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts +4 -6
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +95 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.js +51 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts +4 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.js +4 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/test-helpers.d.ts +48 -48
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts +20 -0
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.js +25 -0
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.js +235 -0
- package/dist/domain/architecture/consistent-barrel-files/types.d.ts +19 -0
- package/dist/domain/architecture/consistent-barrel-files/types.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/types.js +2 -0
- package/dist/{architecture → domain/architecture}/index.d.ts +1 -1
- package/dist/domain/architecture/index.d.ts.map +1 -0
- package/dist/domain/architecture/index.js +2 -0
- package/dist/{core → domain/core}/index.d.ts +2 -2
- package/dist/domain/core/index.d.ts.map +1 -0
- package/dist/domain/core/index.js +3 -0
- package/dist/domain/core/no-multiple-declarators/index.d.ts +2 -0
- package/dist/domain/core/no-multiple-declarators/index.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/index.js +2 -0
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts +101 -0
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.js +108 -0
- package/dist/{core → domain/core}/no-multiple-declarators/rule.d.ts +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts +35 -0
- package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.fixes.js +95 -0
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts +4 -0
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.js +4 -0
- package/dist/domain/core/no-multiple-declarators/rule.js +222 -0
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts +4 -0
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.js +4 -0
- package/dist/domain/core/no-multiple-declarators/types.d.ts +77 -0
- package/dist/domain/core/no-multiple-declarators/types.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/types.js +38 -0
- package/dist/domain/core/prefer-interface-types/index.d.ts +2 -0
- package/dist/domain/core/prefer-interface-types/index.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/index.js +2 -0
- package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/rule.js +148 -0
- package/dist/domain/core/prefer-interface-types/test-helpers.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/test-helpers.js +116 -0
- package/dist/{custom-rule-documentation.d.ts → domain/custom-rule-documentation.d.ts} +3 -1
- package/dist/domain/custom-rule-documentation.d.ts.map +1 -0
- package/dist/domain/custom-rule-documentation.js +36 -0
- package/dist/domain/docs/index.d.ts +4 -0
- package/dist/domain/docs/index.d.ts.map +1 -0
- package/dist/domain/docs/index.js +4 -0
- package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.js +129 -0
- package/dist/{docs → domain/docs}/no-interface-member-docs/comment-utilities.d.ts +1 -1
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +146 -0
- package/dist/domain/docs/no-interface-member-docs/index.d.ts +2 -0
- package/dist/domain/docs/no-interface-member-docs/index.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/index.js +2 -0
- package/dist/{docs → domain/docs}/no-interface-member-docs/parameter-tags.d.ts +1 -1
- package/dist/domain/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +101 -0
- package/dist/{docs → domain/docs}/no-interface-member-docs/parameter-utilities.d.ts +1 -1
- package/dist/domain/docs/no-interface-member-docs/parameter-utilities.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +125 -0
- package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/rule.js +171 -0
- package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts.map +1 -0
- package/dist/{docs → domain/docs}/no-interface-member-docs/test-helpers.js +2 -2
- package/dist/{docs → domain/docs}/no-interface-member-docs/types.d.ts +2 -2
- package/dist/domain/docs/no-interface-member-docs/types.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/types.js +2 -0
- package/dist/domain/docs/require-example-language/create-fixer.d.ts +5 -0
- package/dist/domain/docs/require-example-language/create-fixer.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/create-fixer.js +5 -0
- package/dist/domain/docs/require-example-language/empty-fence-fixes.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/empty-fence-fixes.js +169 -0
- package/dist/domain/docs/require-example-language/example-utilities.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/example-utilities.js +76 -0
- package/dist/{docs → domain/docs}/require-example-language/examples.d.ts +1 -1
- package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/examples.js +181 -0
- package/dist/{docs → domain/docs}/require-example-language/fixes.d.ts +2 -2
- package/dist/domain/docs/require-example-language/fixes.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/fixes.js +182 -0
- package/dist/domain/docs/require-example-language/index.d.ts +3 -0
- package/dist/domain/docs/require-example-language/index.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/index.js +2 -0
- package/dist/{docs → domain/docs}/require-example-language/reporting.d.ts +1 -1
- package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/reporting.js +148 -0
- package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/rule.js +37 -0
- package/dist/domain/docs/require-example-language/types.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/types.js +2 -0
- package/dist/domain/docs/single-line-jsdoc/index.d.ts +2 -0
- package/dist/domain/docs/single-line-jsdoc/index.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/index.js +2 -0
- package/dist/domain/docs/single-line-jsdoc/rule.d.ts +4 -0
- package/dist/domain/docs/single-line-jsdoc/rule.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts +4 -0
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.js +5 -0
- package/dist/domain/docs/single-line-jsdoc/rule.js +201 -0
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts +4 -0
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.js +5 -0
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.js +95 -0
- package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-utilities.d.ts +1 -1
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +140 -0
- package/dist/domain/docs/test-helpers.d.ts.map +1 -0
- package/dist/domain/docs/test-helpers.js +107 -0
- package/dist/domain/index.d.ts +6 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +6 -0
- package/dist/domain/testing/aaa/analyzer.analysis.d.ts +34 -0
- package/dist/domain/testing/aaa/analyzer.analysis.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts +145 -0
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +203 -0
- package/dist/domain/testing/aaa/analyzer.analysis.js +82 -0
- package/dist/domain/testing/aaa/analyzer.analysis.unsupported.d.ts +4 -0
- package/dist/domain/testing/aaa/analyzer.analysis.unsupported.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.analysis.unsupported.js +4 -0
- package/dist/domain/testing/aaa/analyzer.assertions.d.ts +18 -0
- package/dist/domain/testing/aaa/analyzer.assertions.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.assertions.destructured.d.ts +4 -0
- package/dist/domain/testing/aaa/analyzer.assertions.destructured.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.assertions.destructured.js +4 -0
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts +95 -0
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +185 -0
- package/dist/domain/testing/aaa/analyzer.assertions.js +33 -0
- package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts +64 -0
- package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.assertions.operands.js +105 -0
- package/dist/domain/testing/aaa/analyzer.classification.d.ts +16 -0
- package/dist/domain/testing/aaa/analyzer.classification.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts +77 -0
- package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.helpers.js +203 -0
- package/dist/domain/testing/aaa/analyzer.classification.js +31 -0
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts +9 -0
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.js +10 -0
- package/dist/domain/testing/aaa/analyzer.classification.mutations.d.ts +4 -0
- package/dist/domain/testing/aaa/analyzer.classification.mutations.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.mutations.js +4 -0
- package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts +15 -0
- package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.traversal.js +34 -0
- package/dist/domain/testing/aaa/analyzer.d.ts +46 -0
- package/dist/domain/testing/aaa/analyzer.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.js +59 -0
- package/dist/domain/testing/aaa/analyzer.super.d.ts +106 -0
- package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts +27 -0
- package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.super.helpers.js +66 -0
- package/dist/domain/testing/aaa/analyzer.super.js +211 -0
- package/dist/{testing → domain/testing}/aaa/index.d.ts +2 -2
- package/dist/domain/testing/aaa/index.d.ts.map +1 -0
- package/dist/domain/testing/aaa/index.js +2 -0
- package/dist/domain/testing/aaa/types.d.ts +58 -0
- package/dist/domain/testing/aaa/types.d.ts.map +1 -0
- package/dist/domain/testing/aaa/types.js +2 -0
- package/dist/domain/testing/assert-actual-expected-names/index.d.ts +2 -0
- package/dist/domain/testing/assert-actual-expected-names/index.d.ts.map +1 -0
- package/dist/domain/testing/assert-actual-expected-names/index.js +2 -0
- package/dist/{testing → domain/testing}/assert-actual-expected-names/rule.d.ts +1 -0
- package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -0
- package/dist/domain/testing/assert-actual-expected-names/rule.js +116 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts +2 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/index.js +2 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts +13 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +134 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts +25 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.js +138 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.d.ts +4 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.js +4 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.d.ts +4 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.js +4 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts +4 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.js +4 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts +14 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +180 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts +42 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.js +188 -0
- package/dist/{testing → domain/testing}/enforce-aaa-phase-purity/rule.d.ts +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule.js +37 -0
- package/dist/domain/testing/enforce-aaa-structure/index.d.ts +2 -0
- package/dist/domain/testing/enforce-aaa-structure/index.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-structure/index.js +2 -0
- package/dist/{testing → domain/testing}/enforce-aaa-structure/rule.d.ts +1 -0
- package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-structure/rule.js +88 -0
- package/dist/{testing → domain/testing}/index.d.ts +9 -8
- package/dist/domain/testing/index.d.ts.map +1 -0
- package/dist/domain/testing/index.js +10 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts +29 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.js +90 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts +31 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +43 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts +16 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +205 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts +28 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix.js +171 -0
- package/dist/domain/testing/prefer-vi-mocked-import/index.d.ts +2 -0
- package/dist/domain/testing/prefer-vi-mocked-import/index.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/index.js +2 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-bindings.d.ts +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.js +52 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-declarations.d.ts +2 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.js +131 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.js +102 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-imports.d.ts +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-imports.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-imports.js +156 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-rewrites.d.ts +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +119 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-walk.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-walk.js +62 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts +26 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match.js +198 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts +20 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.js +39 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule.js +39 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/types.d.ts +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/types.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/types.js +2 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts +97 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.js +174 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts +2 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.js +2 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts +14 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.js +84 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts +13 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.js +195 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts +25 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.js +96 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts +32 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.js +164 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts +5 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.js +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.js +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.js +88 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.js +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts +24 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.js +113 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts +36 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.js +138 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts +187 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.js +2 -0
- package/dist/domain/testing/require-aaa-sections/index.d.ts +2 -0
- package/dist/domain/testing/require-aaa-sections/index.d.ts.map +1 -0
- package/dist/domain/testing/require-aaa-sections/index.js +2 -0
- package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts +17 -0
- package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts.map +1 -0
- package/dist/domain/testing/require-aaa-sections/missing-section-fixes.js +150 -0
- package/dist/{testing → domain/testing}/require-aaa-sections/rule.d.ts +1 -0
- package/dist/domain/testing/require-aaa-sections/rule.d.ts.map +1 -0
- package/dist/domain/testing/require-aaa-sections/rule.js +134 -0
- package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts +104 -0
- package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts.map +1 -0
- package/dist/domain/testing/require-aaa-sections/rule.reporting.js +216 -0
- package/dist/domain/testing/require-act-result-capture/index.d.ts +2 -0
- package/dist/domain/testing/require-act-result-capture/index.d.ts.map +1 -0
- package/dist/domain/testing/require-act-result-capture/index.js +2 -0
- package/dist/{testing → domain/testing}/require-act-result-capture/rule.d.ts +1 -0
- package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -0
- package/dist/domain/testing/require-act-result-capture/rule.js +109 -0
- package/dist/domain/testing/require-test-companion/index.d.ts +3 -0
- package/dist/domain/testing/require-test-companion/index.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/index.js +3 -0
- package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-listeners.d.ts +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-listeners.js +145 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-options.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-options.js +113 -0
- package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-test-helpers.d.ts +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.js +184 -0
- package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-utilities.d.ts +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-utilities.js +26 -0
- package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/rule.js +82 -0
- package/dist/domain/testing/require-test-companion/types.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/types.js +2 -0
- package/dist/domain/testing/single-act-statement/index.d.ts +2 -0
- package/dist/domain/testing/single-act-statement/index.d.ts.map +1 -0
- package/dist/domain/testing/single-act-statement/index.js +2 -0
- package/dist/{testing → domain/testing}/single-act-statement/rule.d.ts +1 -0
- package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -0
- package/dist/domain/testing/single-act-statement/rule.js +37 -0
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -6
- package/dist/{codeperfect-plugin.d.ts → infrastructure/codeperfect-plugin.d.ts} +2 -0
- package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -0
- package/dist/infrastructure/codeperfect-plugin.js +30 -0
- package/dist/infrastructure/index.d.ts +5 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +4 -0
- package/dist/infrastructure/presets.d.ts +18 -0
- package/dist/infrastructure/presets.d.ts.map +1 -0
- package/dist/infrastructure/presets.js +81 -0
- package/package.json +67 -32
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +0 -131
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +0 -48
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.js +0 -126
- package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +0 -90
- package/dist/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/exports-only-rule.js +0 -218
- package/dist/architecture/consistent-barrel-files/index.d.ts +0 -5
- package/dist/architecture/consistent-barrel-files/index.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/index.js +0 -4
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +0 -100
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +0 -90
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +0 -154
- package/dist/architecture/consistent-barrel-files/rule.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/rule.js +0 -58
- package/dist/architecture/consistent-barrel-files/test-helpers.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/test-helpers.js +0 -229
- package/dist/architecture/consistent-barrel-files/types.d.ts +0 -25
- package/dist/architecture/consistent-barrel-files/types.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/types.js +0 -2
- package/dist/architecture/index.d.ts.map +0 -1
- package/dist/architecture/index.js +0 -2
- package/dist/benchmark-rules.d.ts +0 -83
- package/dist/benchmark-rules.d.ts.map +0 -1
- package/dist/benchmark-rules.js +0 -175
- package/dist/codeperfect-plugin.d.ts.map +0 -1
- package/dist/codeperfect-plugin.js +0 -29
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -3
- package/dist/core/no-multiple-declarators/index.d.ts +0 -2
- package/dist/core/no-multiple-declarators/index.d.ts.map +0 -1
- package/dist/core/no-multiple-declarators/index.js +0 -2
- package/dist/core/no-multiple-declarators/rule.d.ts.map +0 -1
- package/dist/core/no-multiple-declarators/rule.js +0 -100
- package/dist/core/prefer-interface-types/index.d.ts +0 -2
- package/dist/core/prefer-interface-types/index.d.ts.map +0 -1
- package/dist/core/prefer-interface-types/index.js +0 -2
- package/dist/core/prefer-interface-types/rule.d.ts.map +0 -1
- package/dist/core/prefer-interface-types/rule.js +0 -145
- package/dist/core/prefer-interface-types/test-helpers.d.ts.map +0 -1
- package/dist/core/prefer-interface-types/test-helpers.js +0 -116
- package/dist/custom-rule-documentation.d.ts.map +0 -1
- package/dist/custom-rule-documentation.js +0 -35
- package/dist/custom-rules.d.ts.map +0 -1
- package/dist/custom-rules.js +0 -70
- package/dist/docs/index.d.ts +0 -4
- package/dist/docs/index.d.ts.map +0 -1
- package/dist/docs/index.js +0 -4
- package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.js +0 -129
- package/dist/docs/no-interface-member-docs/comment-utilities.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/comment-utilities.js +0 -146
- package/dist/docs/no-interface-member-docs/index.d.ts +0 -2
- package/dist/docs/no-interface-member-docs/index.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/index.js +0 -2
- package/dist/docs/no-interface-member-docs/parameter-tags.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/parameter-tags.js +0 -101
- package/dist/docs/no-interface-member-docs/parameter-utilities.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/parameter-utilities.js +0 -125
- package/dist/docs/no-interface-member-docs/rule.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/rule.js +0 -168
- package/dist/docs/no-interface-member-docs/test-helpers.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/types.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/types.js +0 -2
- package/dist/docs/require-example-language/empty-fence-fixes.d.ts.map +0 -1
- package/dist/docs/require-example-language/empty-fence-fixes.js +0 -169
- package/dist/docs/require-example-language/example-utilities.d.ts.map +0 -1
- package/dist/docs/require-example-language/example-utilities.js +0 -76
- package/dist/docs/require-example-language/examples.d.ts.map +0 -1
- package/dist/docs/require-example-language/examples.js +0 -181
- package/dist/docs/require-example-language/fixes.d.ts.map +0 -1
- package/dist/docs/require-example-language/fixes.js +0 -182
- package/dist/docs/require-example-language/index.d.ts +0 -3
- package/dist/docs/require-example-language/index.d.ts.map +0 -1
- package/dist/docs/require-example-language/index.js +0 -2
- package/dist/docs/require-example-language/reporting.d.ts.map +0 -1
- package/dist/docs/require-example-language/reporting.js +0 -145
- package/dist/docs/require-example-language/rule.d.ts.map +0 -1
- package/dist/docs/require-example-language/rule.js +0 -34
- package/dist/docs/require-example-language/types.d.ts.map +0 -1
- package/dist/docs/require-example-language/types.js +0 -2
- package/dist/docs/single-line-jsdoc/index.d.ts +0 -2
- package/dist/docs/single-line-jsdoc/index.d.ts.map +0 -1
- package/dist/docs/single-line-jsdoc/index.js +0 -2
- package/dist/docs/single-line-jsdoc/rule.d.ts +0 -5
- package/dist/docs/single-line-jsdoc/rule.d.ts.map +0 -1
- package/dist/docs/single-line-jsdoc/rule.js +0 -196
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +0 -1
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.js +0 -95
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +0 -1
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +0 -140
- package/dist/docs/test-helpers.d.ts.map +0 -1
- package/dist/docs/test-helpers.js +0 -107
- package/dist/presets.d.ts +0 -10
- package/dist/presets.d.ts.map +0 -1
- package/dist/presets.js +0 -50
- package/dist/rules/index.d.ts +0 -5
- package/dist/rules/index.d.ts.map +0 -1
- package/dist/rules/index.js +0 -6
- package/dist/testing/aaa/analyzer.d.ts +0 -36
- package/dist/testing/aaa/analyzer.d.ts.map +0 -1
- package/dist/testing/aaa/analyzer.js +0 -490
- package/dist/testing/aaa/index.d.ts.map +0 -1
- package/dist/testing/aaa/index.js +0 -2
- package/dist/testing/aaa/types.d.ts +0 -31
- package/dist/testing/aaa/types.d.ts.map +0 -1
- package/dist/testing/aaa/types.js +0 -2
- package/dist/testing/assert-actual-expected-names/index.d.ts +0 -2
- package/dist/testing/assert-actual-expected-names/index.d.ts.map +0 -1
- package/dist/testing/assert-actual-expected-names/index.js +0 -2
- package/dist/testing/assert-actual-expected-names/rule.d.ts.map +0 -1
- package/dist/testing/assert-actual-expected-names/rule.js +0 -54
- package/dist/testing/enforce-aaa-phase-purity/index.d.ts +0 -2
- package/dist/testing/enforce-aaa-phase-purity/index.d.ts.map +0 -1
- package/dist/testing/enforce-aaa-phase-purity/index.js +0 -2
- package/dist/testing/enforce-aaa-phase-purity/rule.d.ts.map +0 -1
- package/dist/testing/enforce-aaa-phase-purity/rule.js +0 -110
- package/dist/testing/enforce-aaa-structure/index.d.ts +0 -2
- package/dist/testing/enforce-aaa-structure/index.d.ts.map +0 -1
- package/dist/testing/enforce-aaa-structure/index.js +0 -2
- package/dist/testing/enforce-aaa-structure/rule.d.ts.map +0 -1
- package/dist/testing/enforce-aaa-structure/rule.js +0 -48
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js +0 -9
- package/dist/testing/prefer-vi-mocked-import/fix.d.ts +0 -16
- package/dist/testing/prefer-vi-mocked-import/fix.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/fix.js +0 -224
- package/dist/testing/prefer-vi-mocked-import/index.d.ts +0 -2
- package/dist/testing/prefer-vi-mocked-import/index.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/index.js +0 -2
- package/dist/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-bindings.js +0 -52
- package/dist/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-declarations.js +0 -99
- package/dist/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-helpers.js +0 -102
- package/dist/testing/prefer-vi-mocked-import/match-imports.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-imports.js +0 -156
- package/dist/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-rewrites.js +0 -119
- package/dist/testing/prefer-vi-mocked-import/match-walk.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-walk.js +0 -62
- package/dist/testing/prefer-vi-mocked-import/match.d.ts +0 -15
- package/dist/testing/prefer-vi-mocked-import/match.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match.js +0 -193
- package/dist/testing/prefer-vi-mocked-import/rule.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/rule.js +0 -32
- package/dist/testing/prefer-vi-mocked-import/types.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/types.js +0 -2
- package/dist/testing/require-aaa-sections/index.d.ts +0 -2
- package/dist/testing/require-aaa-sections/index.d.ts.map +0 -1
- package/dist/testing/require-aaa-sections/index.js +0 -2
- package/dist/testing/require-aaa-sections/rule.d.ts.map +0 -1
- package/dist/testing/require-aaa-sections/rule.js +0 -111
- package/dist/testing/require-act-result-capture/index.d.ts +0 -2
- package/dist/testing/require-act-result-capture/index.d.ts.map +0 -1
- package/dist/testing/require-act-result-capture/index.js +0 -2
- package/dist/testing/require-act-result-capture/rule.d.ts.map +0 -1
- package/dist/testing/require-act-result-capture/rule.js +0 -34
- package/dist/testing/require-test-companion/index.d.ts +0 -3
- package/dist/testing/require-test-companion/index.d.ts.map +0 -1
- package/dist/testing/require-test-companion/index.js +0 -3
- package/dist/testing/require-test-companion/require-test-companion-listeners.d.ts.map +0 -1
- package/dist/testing/require-test-companion/require-test-companion-listeners.js +0 -145
- package/dist/testing/require-test-companion/require-test-companion-options.d.ts.map +0 -1
- package/dist/testing/require-test-companion/require-test-companion-options.js +0 -112
- package/dist/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +0 -1
- package/dist/testing/require-test-companion/require-test-companion-test-helpers.js +0 -183
- package/dist/testing/require-test-companion/require-test-companion-utilities.d.ts.map +0 -1
- package/dist/testing/require-test-companion/require-test-companion-utilities.js +0 -26
- package/dist/testing/require-test-companion/rule.d.ts.map +0 -1
- package/dist/testing/require-test-companion/rule.js +0 -57
- package/dist/testing/require-test-companion/types.d.ts.map +0 -1
- package/dist/testing/require-test-companion/types.js +0 -2
- package/dist/testing/single-act-statement/index.d.ts +0 -2
- package/dist/testing/single-act-statement/index.d.ts.map +0 -1
- package/dist/testing/single-act-statement/index.js +0 -2
- package/dist/testing/single-act-statement/rule.d.ts.map +0 -1
- package/dist/testing/single-act-statement/rule.js +0 -33
- /package/dist/{architecture → domain/architecture}/consistent-barrel-files/exports-only-rule.d.ts +0 -0
- /package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts +0 -0
- /package/dist/{architecture → domain/architecture}/consistent-barrel-files/rule.d.ts +0 -0
- /package/dist/{core → domain/core}/prefer-interface-types/rule.d.ts +0 -0
- /package/dist/{core → domain/core}/prefer-interface-types/test-helpers.d.ts +0 -0
- /package/dist/{docs → domain/docs}/no-interface-member-docs/comment-utilities-test-helpers.d.ts +0 -0
- /package/dist/{docs → domain/docs}/no-interface-member-docs/rule.d.ts +0 -0
- /package/dist/{docs → domain/docs}/no-interface-member-docs/test-helpers.d.ts +0 -0
- /package/dist/{docs → domain/docs}/require-example-language/empty-fence-fixes.d.ts +0 -0
- /package/dist/{docs → domain/docs}/require-example-language/example-utilities.d.ts +0 -0
- /package/dist/{docs → domain/docs}/require-example-language/rule.d.ts +0 -0
- /package/dist/{docs → domain/docs}/require-example-language/types.d.ts +0 -0
- /package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-content.d.ts +0 -0
- /package/dist/{docs → domain/docs}/test-helpers.d.ts +0 -0
- /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-helpers.d.ts +0 -0
- /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-walk.d.ts +0 -0
- /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/rule.d.ts +0 -0
- /package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-options.d.ts +0 -0
- /package/dist/{testing → domain/testing}/require-test-companion/rule.d.ts +0 -0
- /package/dist/{testing → domain/testing}/require-test-companion/types.d.ts +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type * as ESTree from "estree";
|
|
2
|
+
/**
|
|
3
|
+
* Visits an ESTree node graph while ignoring cycles.
|
|
4
|
+
* @param node Input node value.
|
|
5
|
+
* @param callback Input callback value.
|
|
6
|
+
* @param seenNodes Input seenNodes value.
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* visitNode(node, () => {});
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
declare function visitNode(node: ESTree.Node, callback: (node: ESTree.Node) => boolean | undefined, seenNodes?: WeakSet<object>): void;
|
|
13
|
+
/**
|
|
14
|
+
* Visits child values that may contain nested ESTree nodes.
|
|
15
|
+
* @param value Input value value.
|
|
16
|
+
* @param callback Input callback value.
|
|
17
|
+
* @param seenNodes Input seenNodes value.
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* visitValue(value, () => {}, new WeakSet<object>());
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
declare function visitValue(value: unknown, callback: (node: ESTree.Node) => boolean | undefined, seenNodes: WeakSet<object>): void;
|
|
24
|
+
/** Companion marker for test isolation. */
|
|
25
|
+
declare const analyzerSuperHelpersCompanion: true;
|
|
26
|
+
export { analyzerSuperHelpersCompanion, visitNode, visitValue };
|
|
27
|
+
//# sourceMappingURL=analyzer.super.helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzer.super.helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.super.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAyBtC;;;;;;;;;GASG;AACH,iBAAS,SAAS,CAChB,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,OAAO,GAAG,SAAS,EACpD,SAAS,kBAAwB,GAChC,IAAI,CAeN;AAED;;;;;;;;;GASG;AACH,iBAAS,UAAU,CACjB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,OAAO,GAAG,SAAS,EACpD,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,GACzB,IAAI,CAcN;AAED,2CAA2C;AAC3C,QAAA,MAAM,6BAA6B,EAAG,IAAa,CAAC;AAEpD,OAAO,EAAE,6BAA6B,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks whether a value is an ESTree node.
|
|
3
|
+
* @param value The value to test.
|
|
4
|
+
* @returns `true` when value is an ESTree node, `false` otherwise.
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* isNode({ type: "Identifier" }); // true
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
function isNode(value) {
|
|
11
|
+
return (typeof value === "object" &&
|
|
12
|
+
value !== null &&
|
|
13
|
+
"type" in value &&
|
|
14
|
+
typeof value.type === "string");
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Visits an ESTree node graph while ignoring cycles.
|
|
18
|
+
* @param node Input node value.
|
|
19
|
+
* @param callback Input callback value.
|
|
20
|
+
* @param seenNodes Input seenNodes value.
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* visitNode(node, () => {});
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
function visitNode(node, callback, seenNodes = new WeakSet()) {
|
|
27
|
+
if (seenNodes.has(node)) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
seenNodes.add(node);
|
|
31
|
+
if (callback(node) === false) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
for (const [key, value] of Object.entries(node)) {
|
|
35
|
+
if (key !== "parent") {
|
|
36
|
+
visitValue(value, callback, seenNodes);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Visits child values that may contain nested ESTree nodes.
|
|
42
|
+
* @param value Input value value.
|
|
43
|
+
* @param callback Input callback value.
|
|
44
|
+
* @param seenNodes Input seenNodes value.
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* visitValue(value, () => {}, new WeakSet<object>());
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
function visitValue(value, callback, seenNodes) {
|
|
51
|
+
if (Array.isArray(value)) {
|
|
52
|
+
for (const item of value) {
|
|
53
|
+
if (isNode(item)) {
|
|
54
|
+
visitNode(item, callback, seenNodes);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (isNode(value)) {
|
|
60
|
+
visitNode(value, callback, seenNodes);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/** Companion marker for test isolation. */
|
|
64
|
+
const analyzerSuperHelpersCompanion = true;
|
|
65
|
+
export { analyzerSuperHelpersCompanion, visitNode, visitValue };
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuc3VwZXIuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hYWEvYW5hbHl6ZXIuc3VwZXIuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsTUFBTSxDQUFDLEtBQWM7SUFDNUIsT0FBTyxDQUNMLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFDekIsS0FBSyxLQUFLLElBQUk7UUFDZCxNQUFNLElBQUksS0FBSztRQUNmLE9BQ0UsS0FJRCxDQUFDLElBQUksS0FBSyxRQUFRLENBQ3BCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxTQUFTLENBQ2hCLElBQWlCLEVBQ2pCLFFBQW9ELEVBQ3BELFlBQVksSUFBSSxPQUFPLEVBQVU7SUFFakMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTztJQUNULENBQUM7SUFFRCxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQzdCLE9BQU87SUFDVCxDQUFDO0lBRUQsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNoRCxJQUFJLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNyQixVQUFVLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLFVBQVUsQ0FDakIsS0FBYyxFQUNkLFFBQW9ELEVBQ3BELFNBQTBCO0lBRTFCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDakIsU0FBUyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPO0lBQ1QsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEIsU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQztBQUNILENBQUM7QUFFRCwyQ0FBMkM7QUFDM0MsTUFBTSw2QkFBNkIsR0FBRyxJQUFhLENBQUM7QUFFcEQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIHZhbHVlIGlzIGFuIEVTVHJlZSBub2RlLlxyXG4gKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHRlc3QuXHJcbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIHZhbHVlIGlzIGFuIEVTVHJlZSBub2RlLCBgZmFsc2VgIG90aGVyd2lzZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc05vZGUoeyB0eXBlOiBcIklkZW50aWZpZXJcIiB9KTsgLy8gdHJ1ZVxyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzTm9kZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEVTVHJlZS5Ob2RlIHtcclxuICByZXR1cm4gKFxyXG4gICAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXHJcbiAgICB2YWx1ZSAhPT0gbnVsbCAmJlxyXG4gICAgXCJ0eXBlXCIgaW4gdmFsdWUgJiZcclxuICAgIHR5cGVvZiAoXHJcbiAgICAgIHZhbHVlIGFzIHtcclxuICAgICAgICAvKiogUG90ZW50aWFsIEVTVHJlZSBub2RlIHR5cGUgZmllbGQuICovXHJcbiAgICAgICAgdHlwZT86IHVua25vd247XHJcbiAgICAgIH1cclxuICAgICkudHlwZSA9PT0gXCJzdHJpbmdcIlxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBWaXNpdHMgYW4gRVNUcmVlIG5vZGUgZ3JhcGggd2hpbGUgaWdub3JpbmcgY3ljbGVzLlxyXG4gKiBAcGFyYW0gbm9kZSBJbnB1dCBub2RlIHZhbHVlLlxyXG4gKiBAcGFyYW0gY2FsbGJhY2sgSW5wdXQgY2FsbGJhY2sgdmFsdWUuXHJcbiAqIEBwYXJhbSBzZWVuTm9kZXMgSW5wdXQgc2Vlbk5vZGVzIHZhbHVlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIHZpc2l0Tm9kZShub2RlLCAoKSA9PiB7fSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gdmlzaXROb2RlKFxyXG4gIG5vZGU6IEVTVHJlZS5Ob2RlLFxyXG4gIGNhbGxiYWNrOiAobm9kZTogRVNUcmVlLk5vZGUpID0+IGJvb2xlYW4gfCB1bmRlZmluZWQsXHJcbiAgc2Vlbk5vZGVzID0gbmV3IFdlYWtTZXQ8b2JqZWN0PigpLFxyXG4pOiB2b2lkIHtcclxuICBpZiAoc2Vlbk5vZGVzLmhhcyhub2RlKSkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgc2Vlbk5vZGVzLmFkZChub2RlKTtcclxuICBpZiAoY2FsbGJhY2sobm9kZSkgPT09IGZhbHNlKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhub2RlKSkge1xyXG4gICAgaWYgKGtleSAhPT0gXCJwYXJlbnRcIikge1xyXG4gICAgICB2aXNpdFZhbHVlKHZhbHVlLCBjYWxsYmFjaywgc2Vlbk5vZGVzKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBWaXNpdHMgY2hpbGQgdmFsdWVzIHRoYXQgbWF5IGNvbnRhaW4gbmVzdGVkIEVTVHJlZSBub2Rlcy5cclxuICogQHBhcmFtIHZhbHVlIElucHV0IHZhbHVlIHZhbHVlLlxyXG4gKiBAcGFyYW0gY2FsbGJhY2sgSW5wdXQgY2FsbGJhY2sgdmFsdWUuXHJcbiAqIEBwYXJhbSBzZWVuTm9kZXMgSW5wdXQgc2Vlbk5vZGVzIHZhbHVlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIHZpc2l0VmFsdWUodmFsdWUsICgpID0+IHt9LCBuZXcgV2Vha1NldDxvYmplY3Q+KCkpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHZpc2l0VmFsdWUoXHJcbiAgdmFsdWU6IHVua25vd24sXHJcbiAgY2FsbGJhY2s6IChub2RlOiBFU1RyZWUuTm9kZSkgPT4gYm9vbGVhbiB8IHVuZGVmaW5lZCxcclxuICBzZWVuTm9kZXM6IFdlYWtTZXQ8b2JqZWN0PixcclxuKTogdm9pZCB7XHJcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcclxuICAgICAgaWYgKGlzTm9kZShpdGVtKSkge1xyXG4gICAgICAgIHZpc2l0Tm9kZShpdGVtLCBjYWxsYmFjaywgc2Vlbk5vZGVzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGlmIChpc05vZGUodmFsdWUpKSB7XHJcbiAgICB2aXNpdE5vZGUodmFsdWUsIGNhbGxiYWNrLCBzZWVuTm9kZXMpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqIENvbXBhbmlvbiBtYXJrZXIgZm9yIHRlc3QgaXNvbGF0aW9uLiAqL1xyXG5jb25zdCBhbmFseXplclN1cGVySGVscGVyc0NvbXBhbmlvbiA9IHRydWUgYXMgY29uc3Q7XHJcblxyXG5leHBvcnQgeyBhbmFseXplclN1cGVySGVscGVyc0NvbXBhbmlvbiwgdmlzaXROb2RlLCB2aXNpdFZhbHVlIH07XHJcbiJdfQ==
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { visitNode as visitNodeImplementation } from "./analyzer.super.helpers.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a local forwarding function for an imported analyzer helper.
|
|
4
|
+
* @template TParameters Forwarded parameter tuple.
|
|
5
|
+
* @template TResult Forwarded return type.
|
|
6
|
+
* @param implementation Imported helper implementation.
|
|
7
|
+
* @returns Local function that forwards all arguments to the implementation.
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const localHelper = forward(implementation);
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
function forward(implementation) {
|
|
14
|
+
return (...parameters) => implementation(...parameters);
|
|
15
|
+
}
|
|
16
|
+
/** Visits an ESTree node graph while ignoring cycles. */
|
|
17
|
+
const visitNode = forward(visitNodeImplementation);
|
|
18
|
+
/** Array mutator methods that imply observable state changes. */
|
|
19
|
+
const arrayMutationMethods = new Set([
|
|
20
|
+
"copyWithin",
|
|
21
|
+
"fill",
|
|
22
|
+
"pop",
|
|
23
|
+
"push",
|
|
24
|
+
"reverse",
|
|
25
|
+
"shift",
|
|
26
|
+
"sort",
|
|
27
|
+
"splice",
|
|
28
|
+
"unshift",
|
|
29
|
+
]);
|
|
30
|
+
/** Names that usually signal Arrange-oriented helper calls. */
|
|
31
|
+
const setupLikeNames = /^(?:arrange|build|create|fixture|get|given|make|mock|parse|seed|setup|spy|stub|write)/u;
|
|
32
|
+
/** Call names that should be treated as utility operations instead of Act steps. */
|
|
33
|
+
const utilityMethodNames = new Set([
|
|
34
|
+
"advanceTimersByTime",
|
|
35
|
+
"clearAllMocks",
|
|
36
|
+
"debug",
|
|
37
|
+
"fn",
|
|
38
|
+
"info",
|
|
39
|
+
"join",
|
|
40
|
+
"log",
|
|
41
|
+
"mockImplementation",
|
|
42
|
+
"mockRejectedValue",
|
|
43
|
+
"mockResolvedValue",
|
|
44
|
+
"mockReturnValue",
|
|
45
|
+
"push",
|
|
46
|
+
"resetAllMocks",
|
|
47
|
+
"resolve",
|
|
48
|
+
"useFakeTimers",
|
|
49
|
+
"warn",
|
|
50
|
+
]);
|
|
51
|
+
/** Method names that usually behave like void side-effect helpers. */
|
|
52
|
+
const voidLikeMethodNames = new Set([
|
|
53
|
+
"clear",
|
|
54
|
+
"debug",
|
|
55
|
+
"dispatch",
|
|
56
|
+
"emit",
|
|
57
|
+
"flush",
|
|
58
|
+
"info",
|
|
59
|
+
"log",
|
|
60
|
+
"print",
|
|
61
|
+
"publish",
|
|
62
|
+
"reset",
|
|
63
|
+
"set",
|
|
64
|
+
"trigger",
|
|
65
|
+
"warn",
|
|
66
|
+
]);
|
|
67
|
+
/**
|
|
68
|
+
* Gets an expression name when it can be resolved statically.
|
|
69
|
+
* @param expression Input expression value.
|
|
70
|
+
* @returns Return value output.
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* getExpressionName(expression);
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
function getExpressionName(expression) {
|
|
77
|
+
if (expression.type === "Super") {
|
|
78
|
+
return void 0;
|
|
79
|
+
}
|
|
80
|
+
if (expression.type === "Identifier") {
|
|
81
|
+
return expression.name;
|
|
82
|
+
}
|
|
83
|
+
if (expression.type === "MemberExpression" &&
|
|
84
|
+
expression.property.type === "Identifier") {
|
|
85
|
+
return expression.property.name;
|
|
86
|
+
}
|
|
87
|
+
return void 0;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Gets a callee name for a call or construction expression.
|
|
91
|
+
* @param expression Input expression value.
|
|
92
|
+
* @returns Return value output.
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* getInvokedName(expression);
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
function getInvokedName(expression) {
|
|
99
|
+
return getExpressionName(expression.callee);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Splits an identifier into lowercase word tokens.
|
|
103
|
+
* @param identifier Input identifier value.
|
|
104
|
+
* @returns Return value output.
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* getNameWords("scheduleAndFlush");
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
function getNameWords(identifier) {
|
|
111
|
+
return identifier
|
|
112
|
+
.split(/(?=[A-Z])|[_-]/u)
|
|
113
|
+
.map((segment) => segment.toLowerCase())
|
|
114
|
+
.filter((segment) => segment.length > 0);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Checks whether an expression is callable.
|
|
118
|
+
* @param expression Input expression value.
|
|
119
|
+
* @returns Return value output.
|
|
120
|
+
* @example
|
|
121
|
+
* ```typescript
|
|
122
|
+
* isCallableExpression(expression);
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
function isCallableExpression(expression) {
|
|
126
|
+
return (expression?.type === "CallExpression" ||
|
|
127
|
+
expression?.type === "NewExpression");
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Checks whether a comment has location metadata.
|
|
131
|
+
* @param comment Input comment value.
|
|
132
|
+
* @returns Return value output.
|
|
133
|
+
* @example
|
|
134
|
+
* ```typescript
|
|
135
|
+
* isLocatedComment(comment);
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
function isLocatedComment(comment) {
|
|
139
|
+
return (comment.loc !== null && comment.loc !== void 0 && comment.range !== void 0);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Checks whether a range is fully contained within another range.
|
|
143
|
+
* @param range Input range value.
|
|
144
|
+
* @param container Input container value.
|
|
145
|
+
* @returns Return value output.
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* isRangeWithin(range, container);
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
function isRangeWithin(range, container) {
|
|
152
|
+
return range[0] >= container[0] && range[1] <= container[1];
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Checks whether a constructor call should be treated as setup.
|
|
156
|
+
* @param expression Input expression value.
|
|
157
|
+
* @param calleeName Input calleeName value.
|
|
158
|
+
* @returns Return value output.
|
|
159
|
+
* @example
|
|
160
|
+
* ```typescript
|
|
161
|
+
* isUtilityConstructor(expression, "Map");
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
function isUtilityConstructor(expression, calleeName) {
|
|
165
|
+
return (expression.type === "NewExpression" &&
|
|
166
|
+
(calleeName === "Error" ||
|
|
167
|
+
calleeName === "Map" ||
|
|
168
|
+
calleeName === "Set" ||
|
|
169
|
+
calleeName === "SourceCode" ||
|
|
170
|
+
calleeName === "ESLint"));
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Checks whether a callee name looks utility-like.
|
|
174
|
+
* @param calleeName Input calleeName value.
|
|
175
|
+
* @returns Return value output.
|
|
176
|
+
* @example
|
|
177
|
+
* ```typescript
|
|
178
|
+
* isUtilityNamedCall("setupFixture");
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
181
|
+
function isUtilityNamedCall(calleeName) {
|
|
182
|
+
return utilityMethodNames.has(calleeName) || setupLikeNames.test(calleeName);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Checks whether a call uses a utility namespace.
|
|
186
|
+
* @param expression Input expression value.
|
|
187
|
+
* @returns Return value output.
|
|
188
|
+
* @example
|
|
189
|
+
* ```typescript
|
|
190
|
+
* isUtilityNamespaceCall(expression);
|
|
191
|
+
* ```
|
|
192
|
+
*/
|
|
193
|
+
function isUtilityNamespaceCall(expression) {
|
|
194
|
+
return (expression.callee.type === "MemberExpression" &&
|
|
195
|
+
expression.callee.object.type === "Identifier" &&
|
|
196
|
+
["console", "vi"].includes(expression.callee.object.name));
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Checks whether a call name is built from void-like verb tokens.
|
|
200
|
+
* @param calleeName Input calleeName value.
|
|
201
|
+
* @returns Return value output.
|
|
202
|
+
* @example
|
|
203
|
+
* ```typescript
|
|
204
|
+
* isVoidLikeMethodName("scheduleAndFlush");
|
|
205
|
+
* ```
|
|
206
|
+
*/
|
|
207
|
+
function isVoidLikeMethodName(calleeName) {
|
|
208
|
+
return getNameWords(calleeName).some((word) => voidLikeMethodNames.has(word));
|
|
209
|
+
}
|
|
210
|
+
export { arrayMutationMethods, getExpressionName, getInvokedName, isCallableExpression, isLocatedComment, isRangeWithin, isUtilityConstructor, isUtilityNamedCall, isUtilityNamespaceCall, isVoidLikeMethodName, setupLikeNames, utilityMethodNames, visitNode, voidLikeMethodNames, };
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuc3VwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL2FuYWx5emVyLnN1cGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxTQUFTLElBQUksdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRjs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBUyxPQUFPLENBQ2QsY0FBdUQ7SUFFdkQsT0FBTyxDQUFDLEdBQUcsVUFBVSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQseURBQXlEO0FBQ3pELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBRW5ELGlFQUFpRTtBQUNqRSxNQUFNLG9CQUFvQixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ25DLFlBQVk7SUFDWixNQUFNO0lBQ04sS0FBSztJQUNMLE1BQU07SUFDTixTQUFTO0lBQ1QsT0FBTztJQUNQLE1BQU07SUFDTixRQUFRO0lBQ1IsU0FBUztDQUNWLENBQUMsQ0FBQztBQUVILCtEQUErRDtBQUMvRCxNQUFNLGNBQWMsR0FDbEIsd0ZBQXdGLENBQUM7QUFFM0Ysb0ZBQW9GO0FBQ3BGLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDakMscUJBQXFCO0lBQ3JCLGVBQWU7SUFDZixPQUFPO0lBQ1AsSUFBSTtJQUNKLE1BQU07SUFDTixNQUFNO0lBQ04sS0FBSztJQUNMLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixNQUFNO0lBQ04sZUFBZTtJQUNmLFNBQVM7SUFDVCxlQUFlO0lBQ2YsTUFBTTtDQUNQLENBQUMsQ0FBQztBQUVILHNFQUFzRTtBQUN0RSxNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ2xDLE9BQU87SUFDUCxPQUFPO0lBQ1AsVUFBVTtJQUNWLE1BQU07SUFDTixPQUFPO0lBQ1AsTUFBTTtJQUNOLEtBQUs7SUFDTCxPQUFPO0lBQ1AsU0FBUztJQUNULE9BQU87SUFDUCxLQUFLO0lBQ0wsU0FBUztJQUNULE1BQU07Q0FDUCxDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsaUJBQWlCLENBQ3hCLFVBQXVFO0lBRXZFLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUNoQyxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssWUFBWSxFQUFFLENBQUM7UUFDckMsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUNFLFVBQVUsQ0FBQyxJQUFJLEtBQUssa0JBQWtCO1FBQ3RDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLFlBQVksRUFDekMsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxjQUFjLENBQ3JCLFVBQXdEO0lBRXhELE9BQU8saUJBQWlCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsWUFBWSxDQUFDLFVBQWtCO0lBQ3RDLE9BQU8sVUFBVTtTQUNkLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztTQUN4QixHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN2QyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FDM0IsVUFBeUM7SUFFekMsT0FBTyxDQUNMLFVBQVUsRUFBRSxJQUFJLEtBQUssZ0JBQWdCO1FBQ3JDLFVBQVUsRUFBRSxJQUFJLEtBQUssZUFBZSxDQUNyQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxPQUFzQjtJQUM5QyxPQUFPLENBQ0wsT0FBTyxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUMzRSxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsYUFBYSxDQUNwQixLQUF1QixFQUN2QixTQUEyQjtJQUUzQixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FDM0IsVUFBd0QsRUFDeEQsVUFBa0I7SUFFbEIsT0FBTyxDQUNMLFVBQVUsQ0FBQyxJQUFJLEtBQUssZUFBZTtRQUNuQyxDQUFDLFVBQVUsS0FBSyxPQUFPO1lBQ3JCLFVBQVUsS0FBSyxLQUFLO1lBQ3BCLFVBQVUsS0FBSyxLQUFLO1lBQ3BCLFVBQVUsS0FBSyxZQUFZO1lBQzNCLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FDM0IsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsa0JBQWtCLENBQUMsVUFBa0I7SUFDNUMsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMvRSxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHNCQUFzQixDQUM3QixVQUF3RDtJQUV4RCxPQUFPLENBQ0wsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCO1FBQzdDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQzlDLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FDMUQsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsb0JBQW9CLENBQUMsVUFBa0I7SUFDOUMsT0FBTyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNoRixDQUFDO0FBRUQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxtQkFBbUIsR0FDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcclxuXHJcbmltcG9ydCB0eXBlIHsgTG9jYXRlZENvbW1lbnQsIFNvdXJjZUNvbW1lbnQgfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5cclxuaW1wb3J0IHsgdmlzaXROb2RlIGFzIHZpc2l0Tm9kZUltcGxlbWVudGF0aW9uIH0gZnJvbSBcIi4vYW5hbHl6ZXIuc3VwZXIuaGVscGVyc1wiO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBsb2NhbCBmb3J3YXJkaW5nIGZ1bmN0aW9uIGZvciBhbiBpbXBvcnRlZCBhbmFseXplciBoZWxwZXIuXHJcbiAqIEB0ZW1wbGF0ZSBUUGFyYW1ldGVycyBGb3J3YXJkZWQgcGFyYW1ldGVyIHR1cGxlLlxyXG4gKiBAdGVtcGxhdGUgVFJlc3VsdCBGb3J3YXJkZWQgcmV0dXJuIHR5cGUuXHJcbiAqIEBwYXJhbSBpbXBsZW1lbnRhdGlvbiBJbXBvcnRlZCBoZWxwZXIgaW1wbGVtZW50YXRpb24uXHJcbiAqIEByZXR1cm5zIExvY2FsIGZ1bmN0aW9uIHRoYXQgZm9yd2FyZHMgYWxsIGFyZ3VtZW50cyB0byB0aGUgaW1wbGVtZW50YXRpb24uXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgbG9jYWxIZWxwZXIgPSBmb3J3YXJkKGltcGxlbWVudGF0aW9uKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBmb3J3YXJkPFRQYXJhbWV0ZXJzIGV4dGVuZHMgdW5rbm93bltdLCBUUmVzdWx0PihcclxuICBpbXBsZW1lbnRhdGlvbjogKC4uLnBhcmFtZXRlcnM6IFRQYXJhbWV0ZXJzKSA9PiBUUmVzdWx0LFxyXG4pOiAoLi4ucGFyYW1ldGVyczogVFBhcmFtZXRlcnMpID0+IFRSZXN1bHQge1xyXG4gIHJldHVybiAoLi4ucGFyYW1ldGVycykgPT4gaW1wbGVtZW50YXRpb24oLi4ucGFyYW1ldGVycyk7XHJcbn1cclxuXHJcbi8qKiBWaXNpdHMgYW4gRVNUcmVlIG5vZGUgZ3JhcGggd2hpbGUgaWdub3JpbmcgY3ljbGVzLiAqL1xyXG5jb25zdCB2aXNpdE5vZGUgPSBmb3J3YXJkKHZpc2l0Tm9kZUltcGxlbWVudGF0aW9uKTtcclxuXHJcbi8qKiBBcnJheSBtdXRhdG9yIG1ldGhvZHMgdGhhdCBpbXBseSBvYnNlcnZhYmxlIHN0YXRlIGNoYW5nZXMuICovXHJcbmNvbnN0IGFycmF5TXV0YXRpb25NZXRob2RzID0gbmV3IFNldChbXHJcbiAgXCJjb3B5V2l0aGluXCIsXHJcbiAgXCJmaWxsXCIsXHJcbiAgXCJwb3BcIixcclxuICBcInB1c2hcIixcclxuICBcInJldmVyc2VcIixcclxuICBcInNoaWZ0XCIsXHJcbiAgXCJzb3J0XCIsXHJcbiAgXCJzcGxpY2VcIixcclxuICBcInVuc2hpZnRcIixcclxuXSk7XHJcblxyXG4vKiogTmFtZXMgdGhhdCB1c3VhbGx5IHNpZ25hbCBBcnJhbmdlLW9yaWVudGVkIGhlbHBlciBjYWxscy4gKi9cclxuY29uc3Qgc2V0dXBMaWtlTmFtZXMgPVxyXG4gIC9eKD86YXJyYW5nZXxidWlsZHxjcmVhdGV8Zml4dHVyZXxnZXR8Z2l2ZW58bWFrZXxtb2NrfHBhcnNlfHNlZWR8c2V0dXB8c3B5fHN0dWJ8d3JpdGUpL3U7XHJcblxyXG4vKiogQ2FsbCBuYW1lcyB0aGF0IHNob3VsZCBiZSB0cmVhdGVkIGFzIHV0aWxpdHkgb3BlcmF0aW9ucyBpbnN0ZWFkIG9mIEFjdCBzdGVwcy4gKi9cclxuY29uc3QgdXRpbGl0eU1ldGhvZE5hbWVzID0gbmV3IFNldChbXHJcbiAgXCJhZHZhbmNlVGltZXJzQnlUaW1lXCIsXHJcbiAgXCJjbGVhckFsbE1vY2tzXCIsXHJcbiAgXCJkZWJ1Z1wiLFxyXG4gIFwiZm5cIixcclxuICBcImluZm9cIixcclxuICBcImpvaW5cIixcclxuICBcImxvZ1wiLFxyXG4gIFwibW9ja0ltcGxlbWVudGF0aW9uXCIsXHJcbiAgXCJtb2NrUmVqZWN0ZWRWYWx1ZVwiLFxyXG4gIFwibW9ja1Jlc29sdmVkVmFsdWVcIixcclxuICBcIm1vY2tSZXR1cm5WYWx1ZVwiLFxyXG4gIFwicHVzaFwiLFxyXG4gIFwicmVzZXRBbGxNb2Nrc1wiLFxyXG4gIFwicmVzb2x2ZVwiLFxyXG4gIFwidXNlRmFrZVRpbWVyc1wiLFxyXG4gIFwid2FyblwiLFxyXG5dKTtcclxuXHJcbi8qKiBNZXRob2QgbmFtZXMgdGhhdCB1c3VhbGx5IGJlaGF2ZSBsaWtlIHZvaWQgc2lkZS1lZmZlY3QgaGVscGVycy4gKi9cclxuY29uc3Qgdm9pZExpa2VNZXRob2ROYW1lcyA9IG5ldyBTZXQoW1xyXG4gIFwiY2xlYXJcIixcclxuICBcImRlYnVnXCIsXHJcbiAgXCJkaXNwYXRjaFwiLFxyXG4gIFwiZW1pdFwiLFxyXG4gIFwiZmx1c2hcIixcclxuICBcImluZm9cIixcclxuICBcImxvZ1wiLFxyXG4gIFwicHJpbnRcIixcclxuICBcInB1Ymxpc2hcIixcclxuICBcInJlc2V0XCIsXHJcbiAgXCJzZXRcIixcclxuICBcInRyaWdnZXJcIixcclxuICBcIndhcm5cIixcclxuXSk7XHJcblxyXG4vKipcclxuICogR2V0cyBhbiBleHByZXNzaW9uIG5hbWUgd2hlbiBpdCBjYW4gYmUgcmVzb2x2ZWQgc3RhdGljYWxseS5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBnZXRFeHByZXNzaW9uTmFtZShleHByZXNzaW9uKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRFeHByZXNzaW9uTmFtZShcclxuICBleHByZXNzaW9uOiBFU1RyZWUuRXhwcmVzc2lvbiB8IEVTVHJlZS5Qcml2YXRlSWRlbnRpZmllciB8IEVTVHJlZS5TdXBlcixcclxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICBpZiAoZXhwcmVzc2lvbi50eXBlID09PSBcIlN1cGVyXCIpIHtcclxuICAgIHJldHVybiB2b2lkIDA7XHJcbiAgfVxyXG5cclxuICBpZiAoZXhwcmVzc2lvbi50eXBlID09PSBcIklkZW50aWZpZXJcIikge1xyXG4gICAgcmV0dXJuIGV4cHJlc3Npb24ubmFtZTtcclxuICB9XHJcblxyXG4gIGlmIChcclxuICAgIGV4cHJlc3Npb24udHlwZSA9PT0gXCJNZW1iZXJFeHByZXNzaW9uXCIgJiZcclxuICAgIGV4cHJlc3Npb24ucHJvcGVydHkudHlwZSA9PT0gXCJJZGVudGlmaWVyXCJcclxuICApIHtcclxuICAgIHJldHVybiBleHByZXNzaW9uLnByb3BlcnR5Lm5hbWU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdm9pZCAwO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyBhIGNhbGxlZSBuYW1lIGZvciBhIGNhbGwgb3IgY29uc3RydWN0aW9uIGV4cHJlc3Npb24uXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZ2V0SW52b2tlZE5hbWUoZXhwcmVzc2lvbik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0SW52b2tlZE5hbWUoXHJcbiAgZXhwcmVzc2lvbjogRVNUcmVlLkNhbGxFeHByZXNzaW9uIHwgRVNUcmVlLk5ld0V4cHJlc3Npb24sXHJcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgcmV0dXJuIGdldEV4cHJlc3Npb25OYW1lKGV4cHJlc3Npb24uY2FsbGVlKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNwbGl0cyBhbiBpZGVudGlmaWVyIGludG8gbG93ZXJjYXNlIHdvcmQgdG9rZW5zLlxyXG4gKiBAcGFyYW0gaWRlbnRpZmllciBJbnB1dCBpZGVudGlmaWVyIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldE5hbWVXb3JkcyhcInNjaGVkdWxlQW5kRmx1c2hcIik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0TmFtZVdvcmRzKGlkZW50aWZpZXI6IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICByZXR1cm4gaWRlbnRpZmllclxyXG4gICAgLnNwbGl0KC8oPz1bQS1aXSl8W18tXS91KVxyXG4gICAgLm1hcCgoc2VnbWVudCkgPT4gc2VnbWVudC50b0xvd2VyQ2FzZSgpKVxyXG4gICAgLmZpbHRlcigoc2VnbWVudCkgPT4gc2VnbWVudC5sZW5ndGggPiAwKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIGFuIGV4cHJlc3Npb24gaXMgY2FsbGFibGUuXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNDYWxsYWJsZUV4cHJlc3Npb24oZXhwcmVzc2lvbik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNDYWxsYWJsZUV4cHJlc3Npb24oXHJcbiAgZXhwcmVzc2lvbjogRVNUcmVlLkV4cHJlc3Npb24gfCB1bmRlZmluZWQsXHJcbik6IGV4cHJlc3Npb24gaXMgRVNUcmVlLkNhbGxFeHByZXNzaW9uIHwgRVNUcmVlLk5ld0V4cHJlc3Npb24ge1xyXG4gIHJldHVybiAoXHJcbiAgICBleHByZXNzaW9uPy50eXBlID09PSBcIkNhbGxFeHByZXNzaW9uXCIgfHxcclxuICAgIGV4cHJlc3Npb24/LnR5cGUgPT09IFwiTmV3RXhwcmVzc2lvblwiXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIGEgY29tbWVudCBoYXMgbG9jYXRpb24gbWV0YWRhdGEuXHJcbiAqIEBwYXJhbSBjb21tZW50IElucHV0IGNvbW1lbnQgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNMb2NhdGVkQ29tbWVudChjb21tZW50KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc0xvY2F0ZWRDb21tZW50KGNvbW1lbnQ6IFNvdXJjZUNvbW1lbnQpOiBjb21tZW50IGlzIExvY2F0ZWRDb21tZW50IHtcclxuICByZXR1cm4gKFxyXG4gICAgY29tbWVudC5sb2MgIT09IG51bGwgJiYgY29tbWVudC5sb2MgIT09IHZvaWQgMCAmJiBjb21tZW50LnJhbmdlICE9PSB2b2lkIDBcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYSByYW5nZSBpcyBmdWxseSBjb250YWluZWQgd2l0aGluIGFub3RoZXIgcmFuZ2UuXHJcbiAqIEBwYXJhbSByYW5nZSBJbnB1dCByYW5nZSB2YWx1ZS5cclxuICogQHBhcmFtIGNvbnRhaW5lciBJbnB1dCBjb250YWluZXIgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNSYW5nZVdpdGhpbihyYW5nZSwgY29udGFpbmVyKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc1JhbmdlV2l0aGluKFxyXG4gIHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdLFxyXG4gIGNvbnRhaW5lcjogW251bWJlciwgbnVtYmVyXSxcclxuKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHJhbmdlWzBdID49IGNvbnRhaW5lclswXSAmJiByYW5nZVsxXSA8PSBjb250YWluZXJbMV07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIGNvbnN0cnVjdG9yIGNhbGwgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgc2V0dXAuXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXHJcbiAqIEBwYXJhbSBjYWxsZWVOYW1lIElucHV0IGNhbGxlZU5hbWUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNVdGlsaXR5Q29uc3RydWN0b3IoZXhwcmVzc2lvbiwgXCJNYXBcIik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNVdGlsaXR5Q29uc3RydWN0b3IoXHJcbiAgZXhwcmVzc2lvbjogRVNUcmVlLkNhbGxFeHByZXNzaW9uIHwgRVNUcmVlLk5ld0V4cHJlc3Npb24sXHJcbiAgY2FsbGVlTmFtZTogc3RyaW5nLFxyXG4pOiBib29sZWFuIHtcclxuICByZXR1cm4gKFxyXG4gICAgZXhwcmVzc2lvbi50eXBlID09PSBcIk5ld0V4cHJlc3Npb25cIiAmJlxyXG4gICAgKGNhbGxlZU5hbWUgPT09IFwiRXJyb3JcIiB8fFxyXG4gICAgICBjYWxsZWVOYW1lID09PSBcIk1hcFwiIHx8XHJcbiAgICAgIGNhbGxlZU5hbWUgPT09IFwiU2V0XCIgfHxcclxuICAgICAgY2FsbGVlTmFtZSA9PT0gXCJTb3VyY2VDb2RlXCIgfHxcclxuICAgICAgY2FsbGVlTmFtZSA9PT0gXCJFU0xpbnRcIilcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYSBjYWxsZWUgbmFtZSBsb29rcyB1dGlsaXR5LWxpa2UuXHJcbiAqIEBwYXJhbSBjYWxsZWVOYW1lIElucHV0IGNhbGxlZU5hbWUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNVdGlsaXR5TmFtZWRDYWxsKFwic2V0dXBGaXh0dXJlXCIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzVXRpbGl0eU5hbWVkQ2FsbChjYWxsZWVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICByZXR1cm4gdXRpbGl0eU1ldGhvZE5hbWVzLmhhcyhjYWxsZWVOYW1lKSB8fCBzZXR1cExpa2VOYW1lcy50ZXN0KGNhbGxlZU5hbWUpO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYSBjYWxsIHVzZXMgYSB1dGlsaXR5IG5hbWVzcGFjZS5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc1V0aWxpdHlOYW1lc3BhY2VDYWxsKGV4cHJlc3Npb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzVXRpbGl0eU5hbWVzcGFjZUNhbGwoXHJcbiAgZXhwcmVzc2lvbjogRVNUcmVlLkNhbGxFeHByZXNzaW9uIHwgRVNUcmVlLk5ld0V4cHJlc3Npb24sXHJcbik6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAoXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJlxyXG4gICAgZXhwcmVzc2lvbi5jYWxsZWUub2JqZWN0LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXHJcbiAgICBbXCJjb25zb2xlXCIsIFwidmlcIl0uaW5jbHVkZXMoZXhwcmVzc2lvbi5jYWxsZWUub2JqZWN0Lm5hbWUpXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIGEgY2FsbCBuYW1lIGlzIGJ1aWx0IGZyb20gdm9pZC1saWtlIHZlcmIgdG9rZW5zLlxyXG4gKiBAcGFyYW0gY2FsbGVlTmFtZSBJbnB1dCBjYWxsZWVOYW1lIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzVm9pZExpa2VNZXRob2ROYW1lKFwic2NoZWR1bGVBbmRGbHVzaFwiKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc1ZvaWRMaWtlTWV0aG9kTmFtZShjYWxsZWVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICByZXR1cm4gZ2V0TmFtZVdvcmRzKGNhbGxlZU5hbWUpLnNvbWUoKHdvcmQpID0+IHZvaWRMaWtlTWV0aG9kTmFtZXMuaGFzKHdvcmQpKTtcclxufVxyXG5cclxuZXhwb3J0IHtcclxuICBhcnJheU11dGF0aW9uTWV0aG9kcyxcclxuICBnZXRFeHByZXNzaW9uTmFtZSxcclxuICBnZXRJbnZva2VkTmFtZSxcclxuICBpc0NhbGxhYmxlRXhwcmVzc2lvbixcclxuICBpc0xvY2F0ZWRDb21tZW50LFxyXG4gIGlzUmFuZ2VXaXRoaW4sXHJcbiAgaXNVdGlsaXR5Q29uc3RydWN0b3IsXHJcbiAgaXNVdGlsaXR5TmFtZWRDYWxsLFxyXG4gIGlzVXRpbGl0eU5hbWVzcGFjZUNhbGwsXHJcbiAgaXNWb2lkTGlrZU1ldGhvZE5hbWUsXHJcbiAgc2V0dXBMaWtlTmFtZXMsXHJcbiAgdXRpbGl0eU1ldGhvZE5hbWVzLFxyXG4gIHZpc2l0Tm9kZSxcclxuICB2b2lkTGlrZU1ldGhvZE5hbWVzLFxyXG59O1xyXG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { aaaPhaseOrder, analyzeTestBlock, countActStatements, getAssertDeclaredIdentifiers, getAssertionIdentifiers, getFlattenedSections, getIndentationAtOffset, getLineStartRange, getPhaseBoundaryComments, getSectionPhases, hasAssertion, hasAsyncLogic, hasAwait, hasBlankLineBeforeComment, hasCapturableActResult, hasMutation, isMeaningfulActStatement, isSetupLikeStatement, isValidAssertStatement, usesPrefix, } from "./analyzer";
|
|
2
|
-
export type { AaaPhase, LocatedComment, LocatedNode, SectionComment, SourceComment, StatementPhase, TestBlockAnalysis, } from "./types";
|
|
1
|
+
export { aaaPhaseOrder, analyzeTestBlock, countActStatements, getAssertDeclaredIdentifiers, getAssertionIdentifiers, getFlattenedSections, getIndentationAtOffset, getLineStartRange, getPhaseBoundaryComments, getSectionPhases, hasAssertion, hasAsyncLogic, hasAwait, hasBlankLineBeforeComment, hasCapturableActResult, hasMutation, isMeaningfulActStatement, isSetupLikeStatement, isValidAssertStatement, usesPrefix, } from "./analyzer.js";
|
|
2
|
+
export type { AaaPhase, LocatedComment, LocatedNode, SectionComment, SourceComment, StatementPhase, TestBlockAnalysis, } from "./types.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,yBAAyB,EACzB,sBAAsB,EACtB,WAAW,EACX,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,QAAQ,EACR,cAAc,EACd,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { aaaPhaseOrder, analyzeTestBlock, countActStatements, getAssertDeclaredIdentifiers, getAssertionIdentifiers, getFlattenedSections, getIndentationAtOffset, getLineStartRange, getPhaseBoundaryComments, getSectionPhases, hasAssertion, hasAsyncLogic, hasAwait, hasBlankLineBeforeComment, hasCapturableActResult, hasMutation, isMeaningfulActStatement, isSetupLikeStatement, isValidAssertStatement, usesPrefix, } from "./analyzer.js";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQiw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLGFBQWEsRUFDYixRQUFRLEVBQ1IseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0QixXQUFXLEVBQ1gsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsVUFBVSxHQUNYLE1BQU0sWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgYWFhUGhhc2VPcmRlcixcbiAgYW5hbHl6ZVRlc3RCbG9jayxcbiAgY291bnRBY3RTdGF0ZW1lbnRzLFxuICBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzLFxuICBnZXRBc3NlcnRpb25JZGVudGlmaWVycyxcbiAgZ2V0RmxhdHRlbmVkU2VjdGlvbnMsXG4gIGdldEluZGVudGF0aW9uQXRPZmZzZXQsXG4gIGdldExpbmVTdGFydFJhbmdlLFxuICBnZXRQaGFzZUJvdW5kYXJ5Q29tbWVudHMsXG4gIGdldFNlY3Rpb25QaGFzZXMsXG4gIGhhc0Fzc2VydGlvbixcbiAgaGFzQXN5bmNMb2dpYyxcbiAgaGFzQXdhaXQsXG4gIGhhc0JsYW5rTGluZUJlZm9yZUNvbW1lbnQsXG4gIGhhc0NhcHR1cmFibGVBY3RSZXN1bHQsXG4gIGhhc011dGF0aW9uLFxuICBpc01lYW5pbmdmdWxBY3RTdGF0ZW1lbnQsXG4gIGlzU2V0dXBMaWtlU3RhdGVtZW50LFxuICBpc1ZhbGlkQXNzZXJ0U3RhdGVtZW50LFxuICB1c2VzUHJlZml4LFxufSBmcm9tIFwiLi9hbmFseXplclwiO1xuZXhwb3J0IHR5cGUge1xuICBBYWFQaGFzZSxcbiAgTG9jYXRlZENvbW1lbnQsXG4gIExvY2F0ZWROb2RlLFxuICBTZWN0aW9uQ29tbWVudCxcbiAgU291cmNlQ29tbWVudCxcbiAgU3RhdGVtZW50UGhhc2UsXG4gIFRlc3RCbG9ja0FuYWx5c2lzLFxufSBmcm9tIFwiLi90eXBlc1wiO1xuIl19
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
import type * as ESTree from "estree";
|
|
3
|
+
/** Named AAA phases recognized by the analyzer. */
|
|
4
|
+
type AaaPhase = "Act" | "Arrange" | "Assert";
|
|
5
|
+
/** Source comment with guaranteed location and range metadata. */
|
|
6
|
+
type LocatedComment = SourceComment & {
|
|
7
|
+
/** Normalized location for the comment. */
|
|
8
|
+
loc: NonNullable<SourceComment["loc"]>;
|
|
9
|
+
/** Inclusive source range for the comment. */
|
|
10
|
+
range: [number, number];
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* ESTree node with required location and range metadata.
|
|
14
|
+
* @template TNode Node subtype carried by the wrapper.
|
|
15
|
+
*/
|
|
16
|
+
type LocatedNode<TNode extends ESTree.Node = ESTree.Node> = TNode & {
|
|
17
|
+
/** Normalized location for the node. */
|
|
18
|
+
loc: NonNullable<ESTree.Node["loc"]>;
|
|
19
|
+
/** Inclusive source range for the node. */
|
|
20
|
+
range: [number, number];
|
|
21
|
+
};
|
|
22
|
+
/** Section comment and the AAA phases it declares. */
|
|
23
|
+
interface SectionComment {
|
|
24
|
+
/** Located line comment used as the section marker. */
|
|
25
|
+
comment: LocatedComment;
|
|
26
|
+
/** Phases declared by the section marker. */
|
|
27
|
+
phases: AaaPhase[];
|
|
28
|
+
}
|
|
29
|
+
/** Raw source comment nodes returned by ESLint. */
|
|
30
|
+
type SourceComment = ReturnType<Rule.RuleContext["sourceCode"]["getAllComments"]>[number];
|
|
31
|
+
/** Statement annotated with its active AAA phases. */
|
|
32
|
+
interface StatementPhase {
|
|
33
|
+
/** Statement node that belongs to the analyzed test body. */
|
|
34
|
+
node: LocatedNode<ESTree.Statement>;
|
|
35
|
+
/** Last active phase before this statement, when any exists. */
|
|
36
|
+
phase: AaaPhase | undefined;
|
|
37
|
+
/** All active phases inherited from the nearest section marker. */
|
|
38
|
+
phases: AaaPhase[];
|
|
39
|
+
}
|
|
40
|
+
/** Derived metadata for a supported test callback. */
|
|
41
|
+
interface TestBlockAnalysis {
|
|
42
|
+
/** Block body belonging to the test callback. */
|
|
43
|
+
body: LocatedNode<ESTree.BlockStatement>;
|
|
44
|
+
/** Number of lines inside the callback body. */
|
|
45
|
+
bodyLineCount: number;
|
|
46
|
+
/** Original call expression for `it` or `test`. */
|
|
47
|
+
callExpression: LocatedNode<ESTree.CallExpression>;
|
|
48
|
+
/** Newline style used by the source text. */
|
|
49
|
+
newline: "\n" | "\r\n";
|
|
50
|
+
/** Ordered AAA section comments within the callback body. */
|
|
51
|
+
sectionComments: SectionComment[];
|
|
52
|
+
/** Full source text for the analyzed file. */
|
|
53
|
+
sourceText: string;
|
|
54
|
+
/** Statements paired with their resolved AAA phases. */
|
|
55
|
+
statements: StatementPhase[];
|
|
56
|
+
}
|
|
57
|
+
export type { AaaPhase, LocatedComment, LocatedNode, SectionComment, SourceComment, StatementPhase, TestBlockAnalysis, };
|
|
58
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,mDAAmD;AACnD,KAAK,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE7C,kEAAkE;AAClE,KAAK,cAAc,GAAG,aAAa,GAAG;IACpC,2CAA2C;IAC3C,GAAG,EAAE,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvC,8CAA8C;IAC9C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,KAAK,WAAW,CAAC,KAAK,SAAS,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,GAAG;IAClE,wCAAwC;IACxC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAErC,2CAA2C;IAC3C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,sDAAsD;AACtD,UAAU,cAAc;IACtB,uDAAuD;IACvD,OAAO,EAAE,cAAc,CAAC;IAExB,6CAA6C;IAC7C,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,mDAAmD;AACnD,KAAK,aAAa,GAAG,UAAU,CAC7B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,gBAAgB,CAAC,CACjD,CAAC,MAAM,CAAC,CAAC;AAEV,sDAAsD;AACtD,UAAU,cAAc;IACtB,6DAA6D;IAC7D,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEpC,gEAAgE;IAChE,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE5B,mEAAmE;IACnE,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,sDAAsD;AACtD,UAAU,iBAAiB;IACzB,iDAAiD;IACjD,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAEzC,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IAEtB,mDAAmD;IACnD,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAEnD,6CAA6C;IAC7C,OAAO,EAAE,IAAI,GAAG,MAAM,CAAC;IAEvB,6DAA6D;IAC7D,eAAe,EAAE,cAAc,EAAE,CAAC;IAElC,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IAEnB,wDAAwD;IACxD,UAAU,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,YAAY,EACV,QAAQ,EACR,cAAc,EACd,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,iBAAiB,GAClB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5pbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbi8qKiBOYW1lZCBBQUEgcGhhc2VzIHJlY29nbml6ZWQgYnkgdGhlIGFuYWx5emVyLiAqL1xudHlwZSBBYWFQaGFzZSA9IFwiQWN0XCIgfCBcIkFycmFuZ2VcIiB8IFwiQXNzZXJ0XCI7XG5cbi8qKiBTb3VyY2UgY29tbWVudCB3aXRoIGd1YXJhbnRlZWQgbG9jYXRpb24gYW5kIHJhbmdlIG1ldGFkYXRhLiAqL1xudHlwZSBMb2NhdGVkQ29tbWVudCA9IFNvdXJjZUNvbW1lbnQgJiB7XG4gIC8qKiBOb3JtYWxpemVkIGxvY2F0aW9uIGZvciB0aGUgY29tbWVudC4gKi9cbiAgbG9jOiBOb25OdWxsYWJsZTxTb3VyY2VDb21tZW50W1wibG9jXCJdPjtcblxuICAvKiogSW5jbHVzaXZlIHNvdXJjZSByYW5nZSBmb3IgdGhlIGNvbW1lbnQuICovXG4gIHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdO1xufTtcblxuLyoqXG4gKiBFU1RyZWUgbm9kZSB3aXRoIHJlcXVpcmVkIGxvY2F0aW9uIGFuZCByYW5nZSBtZXRhZGF0YS5cbiAqIEB0ZW1wbGF0ZSBUTm9kZSBOb2RlIHN1YnR5cGUgY2FycmllZCBieSB0aGUgd3JhcHBlci5cbiAqL1xudHlwZSBMb2NhdGVkTm9kZTxUTm9kZSBleHRlbmRzIEVTVHJlZS5Ob2RlID0gRVNUcmVlLk5vZGU+ID0gVE5vZGUgJiB7XG4gIC8qKiBOb3JtYWxpemVkIGxvY2F0aW9uIGZvciB0aGUgbm9kZS4gKi9cbiAgbG9jOiBOb25OdWxsYWJsZTxFU1RyZWUuTm9kZVtcImxvY1wiXT47XG5cbiAgLyoqIEluY2x1c2l2ZSBzb3VyY2UgcmFuZ2UgZm9yIHRoZSBub2RlLiAqL1xuICByYW5nZTogW251bWJlciwgbnVtYmVyXTtcbn07XG5cbi8qKiBTZWN0aW9uIGNvbW1lbnQgYW5kIHRoZSBBQUEgcGhhc2VzIGl0IGRlY2xhcmVzLiAqL1xuaW50ZXJmYWNlIFNlY3Rpb25Db21tZW50IHtcbiAgLyoqIExvY2F0ZWQgbGluZSBjb21tZW50IHVzZWQgYXMgdGhlIHNlY3Rpb24gbWFya2VyLiAqL1xuICBjb21tZW50OiBMb2NhdGVkQ29tbWVudDtcblxuICAvKiogUGhhc2VzIGRlY2xhcmVkIGJ5IHRoZSBzZWN0aW9uIG1hcmtlci4gKi9cbiAgcGhhc2VzOiBBYWFQaGFzZVtdO1xufVxuXG4vKiogUmF3IHNvdXJjZSBjb21tZW50IG5vZGVzIHJldHVybmVkIGJ5IEVTTGludC4gKi9cbnR5cGUgU291cmNlQ29tbWVudCA9IFJldHVyblR5cGU8XG4gIFJ1bGUuUnVsZUNvbnRleHRbXCJzb3VyY2VDb2RlXCJdW1wiZ2V0QWxsQ29tbWVudHNcIl1cbj5bbnVtYmVyXTtcblxuLyoqIFN0YXRlbWVudCBhbm5vdGF0ZWQgd2l0aCBpdHMgYWN0aXZlIEFBQSBwaGFzZXMuICovXG5pbnRlcmZhY2UgU3RhdGVtZW50UGhhc2Uge1xuICAvKiogU3RhdGVtZW50IG5vZGUgdGhhdCBiZWxvbmdzIHRvIHRoZSBhbmFseXplZCB0ZXN0IGJvZHkuICovXG4gIG5vZGU6IExvY2F0ZWROb2RlPEVTVHJlZS5TdGF0ZW1lbnQ+O1xuXG4gIC8qKiBMYXN0IGFjdGl2ZSBwaGFzZSBiZWZvcmUgdGhpcyBzdGF0ZW1lbnQsIHdoZW4gYW55IGV4aXN0cy4gKi9cbiAgcGhhc2U6IEFhYVBoYXNlIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBBbGwgYWN0aXZlIHBoYXNlcyBpbmhlcml0ZWQgZnJvbSB0aGUgbmVhcmVzdCBzZWN0aW9uIG1hcmtlci4gKi9cbiAgcGhhc2VzOiBBYWFQaGFzZVtdO1xufVxuXG4vKiogRGVyaXZlZCBtZXRhZGF0YSBmb3IgYSBzdXBwb3J0ZWQgdGVzdCBjYWxsYmFjay4gKi9cbmludGVyZmFjZSBUZXN0QmxvY2tBbmFseXNpcyB7XG4gIC8qKiBCbG9jayBib2R5IGJlbG9uZ2luZyB0byB0aGUgdGVzdCBjYWxsYmFjay4gKi9cbiAgYm9keTogTG9jYXRlZE5vZGU8RVNUcmVlLkJsb2NrU3RhdGVtZW50PjtcblxuICAvKiogTnVtYmVyIG9mIGxpbmVzIGluc2lkZSB0aGUgY2FsbGJhY2sgYm9keS4gKi9cbiAgYm9keUxpbmVDb3VudDogbnVtYmVyO1xuXG4gIC8qKiBPcmlnaW5hbCBjYWxsIGV4cHJlc3Npb24gZm9yIGBpdGAgb3IgYHRlc3RgLiAqL1xuICBjYWxsRXhwcmVzc2lvbjogTG9jYXRlZE5vZGU8RVNUcmVlLkNhbGxFeHByZXNzaW9uPjtcblxuICAvKiogTmV3bGluZSBzdHlsZSB1c2VkIGJ5IHRoZSBzb3VyY2UgdGV4dC4gKi9cbiAgbmV3bGluZTogXCJcXG5cIiB8IFwiXFxyXFxuXCI7XG5cbiAgLyoqIE9yZGVyZWQgQUFBIHNlY3Rpb24gY29tbWVudHMgd2l0aGluIHRoZSBjYWxsYmFjayBib2R5LiAqL1xuICBzZWN0aW9uQ29tbWVudHM6IFNlY3Rpb25Db21tZW50W107XG5cbiAgLyoqIEZ1bGwgc291cmNlIHRleHQgZm9yIHRoZSBhbmFseXplZCBmaWxlLiAqL1xuICBzb3VyY2VUZXh0OiBzdHJpbmc7XG5cbiAgLyoqIFN0YXRlbWVudHMgcGFpcmVkIHdpdGggdGhlaXIgcmVzb2x2ZWQgQUFBIHBoYXNlcy4gKi9cbiAgc3RhdGVtZW50czogU3RhdGVtZW50UGhhc2VbXTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICBBYWFQaGFzZSxcbiAgTG9jYXRlZENvbW1lbnQsXG4gIExvY2F0ZWROb2RlLFxuICBTZWN0aW9uQ29tbWVudCxcbiAgU291cmNlQ29tbWVudCxcbiAgU3RhdGVtZW50UGhhc2UsXG4gIFRlc3RCbG9ja0FuYWx5c2lzLFxufTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/assert-actual-expected-names/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { assertActualExpectedNamesRule } from "./rule.js";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYXNzZXJ0LWFjdHVhbC1leHBlY3RlZC1uYW1lcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBhc3NlcnRBY3R1YWxFeHBlY3RlZE5hbWVzUnVsZSB9IGZyb20gXCIuL3J1bGVcIjtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/assert-actual-expected-names/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAqInC,qFAAqF;AACrF,QAAA,MAAM,6BAA6B,EAAE,IAAI,CAAC,UA0CzC,CAAC;AAEF,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { analyzeTestBlock, getAssertDeclaredIdentifiers, getAssertionIdentifiers, hasAssertion, usesPrefix, } from "../aaa/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Builds the de-duplication key for a reported assertion identifier.
|
|
4
|
+
* @param prefix Prefix used for the assertion identifier.
|
|
5
|
+
* @param name Identifier name reported by the rule.
|
|
6
|
+
* @returns Stable de-duplication key for the identifier.
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const key = getReportedNameKey("actual", "value");
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
const getReportedNameKey = (prefix, name) => `${prefix}:${name}`;
|
|
13
|
+
/**
|
|
14
|
+
* Reports a missing assertion prefix when the declared identifier is eligible.
|
|
15
|
+
* @param input Composite reporting input for one identifier.
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* reportAssertionIdentifier({
|
|
19
|
+
* context: {} as Rule.RuleContext,
|
|
20
|
+
* declaredIdentifiers: new Map(),
|
|
21
|
+
* name: "value",
|
|
22
|
+
* prefix: "actual",
|
|
23
|
+
* reportedNames: new Set(),
|
|
24
|
+
* });
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
const reportAssertionIdentifier = (input) => {
|
|
28
|
+
const { context, declaredIdentifiers, name, prefix, reportedNames } = input;
|
|
29
|
+
const declaredIdentifier = name === void 0 || usesPrefix(name, prefix)
|
|
30
|
+
? void 0
|
|
31
|
+
: declaredIdentifiers.get(name);
|
|
32
|
+
if (declaredIdentifier === void 0 || name === void 0) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const reportedNameKey = getReportedNameKey(prefix, name);
|
|
36
|
+
if (reportedNames.has(reportedNameKey)) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
reportedNames.add(reportedNameKey);
|
|
40
|
+
context.report({
|
|
41
|
+
data: { name, prefix },
|
|
42
|
+
messageId: "missingPrefix",
|
|
43
|
+
node: declaredIdentifier,
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Reports missing prefixes for the actual and expected identifiers in one assertion.
|
|
48
|
+
* @param input Composite reporting input for one assertion.
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* reportAssertionPrefixes({
|
|
52
|
+
* assertionNode: {} as ESTree.Statement,
|
|
53
|
+
* context: {} as Rule.RuleContext,
|
|
54
|
+
* declaredIdentifiers: new Map(),
|
|
55
|
+
* reportedNames: new Set(),
|
|
56
|
+
* });
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
const reportAssertionPrefixes = (input) => {
|
|
60
|
+
const { assertionNode, context, declaredIdentifiers, reportedNames } = input;
|
|
61
|
+
const { actual, expected } = getAssertionIdentifiers(assertionNode);
|
|
62
|
+
reportAssertionIdentifier({
|
|
63
|
+
context,
|
|
64
|
+
declaredIdentifiers,
|
|
65
|
+
name: actual,
|
|
66
|
+
prefix: "actual",
|
|
67
|
+
reportedNames,
|
|
68
|
+
});
|
|
69
|
+
reportAssertionIdentifier({
|
|
70
|
+
context,
|
|
71
|
+
declaredIdentifiers,
|
|
72
|
+
name: expected,
|
|
73
|
+
prefix: "expected",
|
|
74
|
+
reportedNames,
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
/** Enforces actual/expected-style prefixes for assert-phase comparison variables. */
|
|
78
|
+
const assertActualExpectedNamesRule = {
|
|
79
|
+
create(context) {
|
|
80
|
+
return {
|
|
81
|
+
CallExpression(node) {
|
|
82
|
+
const analysis = analyzeTestBlock(context, node);
|
|
83
|
+
if (analysis === void 0) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const declaredIdentifiers = getAssertDeclaredIdentifiers(analysis);
|
|
87
|
+
const reportedNames = new Set();
|
|
88
|
+
for (const statement of analysis.statements) {
|
|
89
|
+
if (statement.phases.includes("Assert") &&
|
|
90
|
+
hasAssertion(statement.node)) {
|
|
91
|
+
reportAssertionPrefixes({
|
|
92
|
+
assertionNode: statement.node,
|
|
93
|
+
context,
|
|
94
|
+
declaredIdentifiers,
|
|
95
|
+
reportedNames,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
},
|
|
102
|
+
meta: {
|
|
103
|
+
docs: {
|
|
104
|
+
description: "Require Assert-phase comparison variables to use actual*/expected* prefixes.",
|
|
105
|
+
recommended: false,
|
|
106
|
+
url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/assert-actual-expected-names.md",
|
|
107
|
+
},
|
|
108
|
+
messages: {
|
|
109
|
+
missingPrefix: "Rename '{{name}}' to use the '{{prefix}}' prefix when comparing values inside // Assert.",
|
|
110
|
+
},
|
|
111
|
+
schema: [],
|
|
112
|
+
type: "suggestion",
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
export { assertActualExpectedNamesRule };
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9hc3NlcnQtYWN0dWFsLWV4cGVjdGVkLW5hbWVzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUNMLGdCQUFnQixFQUNoQiw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQ3ZCLFlBQVksRUFDWixVQUFVLEdBQ1gsTUFBTSxRQUFRLENBQUM7QUFzQ2hCOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxNQUF1QixFQUFFLElBQVksRUFBVSxFQUFFLENBQzNFLEdBQUcsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO0FBRXRCOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLHlCQUF5QixHQUFHLENBQ2hDLEtBQXFDLEVBQy9CLEVBQUU7SUFDUixNQUFNLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRTVFLE1BQU0sa0JBQWtCLEdBQ3RCLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztRQUN6QyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxJQUFJLGtCQUFrQixLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JELE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pELElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLE9BQU87SUFDVCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNuQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ2IsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtRQUN0QixTQUFTLEVBQUUsZUFBZTtRQUMxQixJQUFJLEVBQUUsa0JBQWtCO0tBQ3pCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFtQyxFQUFRLEVBQUU7SUFDNUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQzdFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsdUJBQXVCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFcEUseUJBQXlCLENBQUM7UUFDeEIsT0FBTztRQUNQLG1CQUFtQjtRQUNuQixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLGFBQWE7S0FDZCxDQUFDLENBQUM7SUFDSCx5QkFBeUIsQ0FBQztRQUN4QixPQUFPO1FBQ1AsbUJBQW1CO1FBQ25CLElBQUksRUFBRSxRQUFRO1FBQ2QsTUFBTSxFQUFFLFVBQVU7UUFDbEIsYUFBYTtLQUNkLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLHFGQUFxRjtBQUNyRixNQUFNLDZCQUE2QixHQUFvQjtJQUNyRCxNQUFNLENBQUMsT0FBeUI7UUFDOUIsT0FBTztZQUNMLGNBQWMsQ0FBQyxJQUFJO2dCQUNqQixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2pELElBQUksUUFBUSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ3hCLE9BQU87Z0JBQ1QsQ0FBQztnQkFFRCxNQUFNLG1CQUFtQixHQUFHLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNuRSxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO2dCQUV4QyxLQUFLLE1BQU0sU0FBUyxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDNUMsSUFDRSxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7d0JBQ25DLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQzVCLENBQUM7d0JBQ0QsdUJBQXVCLENBQUM7NEJBQ3RCLGFBQWEsRUFBRSxTQUFTLENBQUMsSUFBSTs0QkFDN0IsT0FBTzs0QkFDUCxtQkFBbUI7NEJBQ25CLGFBQWE7eUJBQ2QsQ0FBQyxDQUFDO29CQUNMLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7U0FDMEIsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUNULDhFQUE4RTtZQUNoRixXQUFXLEVBQUUsS0FBSztZQUNsQixHQUFHLEVBQUUsK0ZBQStGO1NBQ3JHO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsYUFBYSxFQUNYLDBGQUEwRjtTQUM3RjtRQUNELE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7S0FDbkI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5pbXBvcnQgdHlwZSAqIGFzIEVTVHJlZSBmcm9tIFwiZXN0cmVlXCI7XG5cbmltcG9ydCB7XG4gIGFuYWx5emVUZXN0QmxvY2ssXG4gIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnMsXG4gIGdldEFzc2VydGlvbklkZW50aWZpZXJzLFxuICBoYXNBc3NlcnRpb24sXG4gIHVzZXNQcmVmaXgsXG59IGZyb20gXCIuLi9hYWFcIjtcblxuLyoqIFN1cHBvcnRlZCBhc3NlcnRpb24gdmFyaWFibGUgcHJlZml4ZXMgZW5mb3JjZWQgYnkgdGhpcyBydWxlLiAqL1xudHlwZSBBc3NlcnRpb25QcmVmaXggPSBcImFjdHVhbFwiIHwgXCJleHBlY3RlZFwiO1xuXG4vKiogQ29tcG9zaXRlIGlucHV0IGZvciByZXBvcnRpbmcgb25lIG1pc3NpbmcgYXNzZXJ0aW9uIHByZWZpeC4gKi9cbmludGVyZmFjZSBSZXBvcnRBc3NlcnRpb25JZGVudGlmaWVySW5wdXQge1xuICAvKiogQWN0aXZlIEVTTGludCBydWxlIGNvbnRleHQuICovXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQ7XG5cbiAgLyoqIERlY2xhcmVkIGlkZW50aWZpZXJzIGNvbGxlY3RlZCBmcm9tIHRoZSBhc3NlcnQgcGhhc2UuICovXG4gIGRlY2xhcmVkSWRlbnRpZmllcnM6IFJldHVyblR5cGU8dHlwZW9mIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnM+O1xuXG4gIC8qKiBJZGVudGlmaWVyIG5hbWUgZXh0cmFjdGVkIGZyb20gdGhlIGFzc2VydGlvbi4gKi9cbiAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBSZXF1aXJlZCBwcmVmaXggZm9yIHRoZSBpZGVudGlmaWVyLiAqL1xuICBwcmVmaXg6IEFzc2VydGlvblByZWZpeDtcblxuICAvKiogU2V0IG9mIGFscmVhZHkgcmVwb3J0ZWQgaWRlbnRpZmllciBrZXlzLiAqL1xuICByZXBvcnRlZE5hbWVzOiBTZXQ8c3RyaW5nPjtcbn1cblxuLyoqIENvbXBvc2l0ZSBpbnB1dCBmb3IgcmVwb3J0aW5nIG1pc3NpbmcgcHJlZml4ZXMgaW4gb25lIGFzc2VydGlvbi4gKi9cbmludGVyZmFjZSBSZXBvcnRBc3NlcnRpb25QcmVmaXhlc0lucHV0IHtcbiAgLyoqIEFzc2VydGlvbiBub2RlIHdob3NlIGlkZW50aWZpZXJzIHNob3VsZCBiZSBpbnNwZWN0ZWQuICovXG4gIGFzc2VydGlvbk5vZGU6IEVTVHJlZS5TdGF0ZW1lbnQ7XG5cbiAgLyoqIEFjdGl2ZSBFU0xpbnQgcnVsZSBjb250ZXh0LiAqL1xuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0O1xuXG4gIC8qKiBEZWNsYXJlZCBpZGVudGlmaWVycyBjb2xsZWN0ZWQgZnJvbSB0aGUgYXNzZXJ0IHBoYXNlLiAqL1xuICBkZWNsYXJlZElkZW50aWZpZXJzOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzPjtcblxuICAvKiogU2V0IG9mIGFscmVhZHkgcmVwb3J0ZWQgaWRlbnRpZmllciBrZXlzLiAqL1xuICByZXBvcnRlZE5hbWVzOiBTZXQ8c3RyaW5nPjtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGRlLWR1cGxpY2F0aW9uIGtleSBmb3IgYSByZXBvcnRlZCBhc3NlcnRpb24gaWRlbnRpZmllci5cbiAqIEBwYXJhbSBwcmVmaXggUHJlZml4IHVzZWQgZm9yIHRoZSBhc3NlcnRpb24gaWRlbnRpZmllci5cbiAqIEBwYXJhbSBuYW1lIElkZW50aWZpZXIgbmFtZSByZXBvcnRlZCBieSB0aGUgcnVsZS5cbiAqIEByZXR1cm5zIFN0YWJsZSBkZS1kdXBsaWNhdGlvbiBrZXkgZm9yIHRoZSBpZGVudGlmaWVyLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGtleSA9IGdldFJlcG9ydGVkTmFtZUtleShcImFjdHVhbFwiLCBcInZhbHVlXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFJlcG9ydGVkTmFtZUtleSA9IChwcmVmaXg6IEFzc2VydGlvblByZWZpeCwgbmFtZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIGAke3ByZWZpeH06JHtuYW1lfWA7XG5cbi8qKlxuICogUmVwb3J0cyBhIG1pc3NpbmcgYXNzZXJ0aW9uIHByZWZpeCB3aGVuIHRoZSBkZWNsYXJlZCBpZGVudGlmaWVyIGlzIGVsaWdpYmxlLlxuICogQHBhcmFtIGlucHV0IENvbXBvc2l0ZSByZXBvcnRpbmcgaW5wdXQgZm9yIG9uZSBpZGVudGlmaWVyLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydEFzc2VydGlvbklkZW50aWZpZXIoe1xuICogICBjb250ZXh0OiB7fSBhcyBSdWxlLlJ1bGVDb250ZXh0LFxuICogICBkZWNsYXJlZElkZW50aWZpZXJzOiBuZXcgTWFwKCksXG4gKiAgIG5hbWU6IFwidmFsdWVcIixcbiAqICAgcHJlZml4OiBcImFjdHVhbFwiLFxuICogICByZXBvcnRlZE5hbWVzOiBuZXcgU2V0KCksXG4gKiB9KTtcbiAqIGBgYFxuICovXG5jb25zdCByZXBvcnRBc3NlcnRpb25JZGVudGlmaWVyID0gKFxuICBpbnB1dDogUmVwb3J0QXNzZXJ0aW9uSWRlbnRpZmllcklucHV0LFxuKTogdm9pZCA9PiB7XG4gIGNvbnN0IHsgY29udGV4dCwgZGVjbGFyZWRJZGVudGlmaWVycywgbmFtZSwgcHJlZml4LCByZXBvcnRlZE5hbWVzIH0gPSBpbnB1dDtcblxuICBjb25zdCBkZWNsYXJlZElkZW50aWZpZXIgPVxuICAgIG5hbWUgPT09IHZvaWQgMCB8fCB1c2VzUHJlZml4KG5hbWUsIHByZWZpeClcbiAgICAgID8gdm9pZCAwXG4gICAgICA6IGRlY2xhcmVkSWRlbnRpZmllcnMuZ2V0KG5hbWUpO1xuICBpZiAoZGVjbGFyZWRJZGVudGlmaWVyID09PSB2b2lkIDAgfHwgbmFtZSA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcmVwb3J0ZWROYW1lS2V5ID0gZ2V0UmVwb3J0ZWROYW1lS2V5KHByZWZpeCwgbmFtZSk7XG4gIGlmIChyZXBvcnRlZE5hbWVzLmhhcyhyZXBvcnRlZE5hbWVLZXkpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVwb3J0ZWROYW1lcy5hZGQocmVwb3J0ZWROYW1lS2V5KTtcbiAgY29udGV4dC5yZXBvcnQoe1xuICAgIGRhdGE6IHsgbmFtZSwgcHJlZml4IH0sXG4gICAgbWVzc2FnZUlkOiBcIm1pc3NpbmdQcmVmaXhcIixcbiAgICBub2RlOiBkZWNsYXJlZElkZW50aWZpZXIsXG4gIH0pO1xufTtcblxuLyoqXG4gKiBSZXBvcnRzIG1pc3NpbmcgcHJlZml4ZXMgZm9yIHRoZSBhY3R1YWwgYW5kIGV4cGVjdGVkIGlkZW50aWZpZXJzIGluIG9uZSBhc3NlcnRpb24uXG4gKiBAcGFyYW0gaW5wdXQgQ29tcG9zaXRlIHJlcG9ydGluZyBpbnB1dCBmb3Igb25lIGFzc2VydGlvbi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiByZXBvcnRBc3NlcnRpb25QcmVmaXhlcyh7XG4gKiAgIGFzc2VydGlvbk5vZGU6IHt9IGFzIEVTVHJlZS5TdGF0ZW1lbnQsXG4gKiAgIGNvbnRleHQ6IHt9IGFzIFJ1bGUuUnVsZUNvbnRleHQsXG4gKiAgIGRlY2xhcmVkSWRlbnRpZmllcnM6IG5ldyBNYXAoKSxcbiAqICAgcmVwb3J0ZWROYW1lczogbmV3IFNldCgpLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVwb3J0QXNzZXJ0aW9uUHJlZml4ZXMgPSAoaW5wdXQ6IFJlcG9ydEFzc2VydGlvblByZWZpeGVzSW5wdXQpOiB2b2lkID0+IHtcbiAgY29uc3QgeyBhc3NlcnRpb25Ob2RlLCBjb250ZXh0LCBkZWNsYXJlZElkZW50aWZpZXJzLCByZXBvcnRlZE5hbWVzIH0gPSBpbnB1dDtcbiAgY29uc3QgeyBhY3R1YWwsIGV4cGVjdGVkIH0gPSBnZXRBc3NlcnRpb25JZGVudGlmaWVycyhhc3NlcnRpb25Ob2RlKTtcblxuICByZXBvcnRBc3NlcnRpb25JZGVudGlmaWVyKHtcbiAgICBjb250ZXh0LFxuICAgIGRlY2xhcmVkSWRlbnRpZmllcnMsXG4gICAgbmFtZTogYWN0dWFsLFxuICAgIHByZWZpeDogXCJhY3R1YWxcIixcbiAgICByZXBvcnRlZE5hbWVzLFxuICB9KTtcbiAgcmVwb3J0QXNzZXJ0aW9uSWRlbnRpZmllcih7XG4gICAgY29udGV4dCxcbiAgICBkZWNsYXJlZElkZW50aWZpZXJzLFxuICAgIG5hbWU6IGV4cGVjdGVkLFxuICAgIHByZWZpeDogXCJleHBlY3RlZFwiLFxuICAgIHJlcG9ydGVkTmFtZXMsXG4gIH0pO1xufTtcblxuLyoqIEVuZm9yY2VzIGFjdHVhbC9leHBlY3RlZC1zdHlsZSBwcmVmaXhlcyBmb3IgYXNzZXJ0LXBoYXNlIGNvbXBhcmlzb24gdmFyaWFibGVzLiAqL1xuY29uc3QgYXNzZXJ0QWN0dWFsRXhwZWN0ZWROYW1lc1J1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBSdWxlLlJ1bGVMaXN0ZW5lciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIENhbGxFeHByZXNzaW9uKG5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYW5hbHlzaXMgPSBhbmFseXplVGVzdEJsb2NrKGNvbnRleHQsIG5vZGUpO1xuICAgICAgICBpZiAoYW5hbHlzaXMgPT09IHZvaWQgMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlY2xhcmVkSWRlbnRpZmllcnMgPSBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzKGFuYWx5c2lzKTtcbiAgICAgICAgY29uc3QgcmVwb3J0ZWROYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgICAgIGZvciAoY29uc3Qgc3RhdGVtZW50IG9mIGFuYWx5c2lzLnN0YXRlbWVudHMpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBzdGF0ZW1lbnQucGhhc2VzLmluY2x1ZGVzKFwiQXNzZXJ0XCIpICYmXG4gICAgICAgICAgICBoYXNBc3NlcnRpb24oc3RhdGVtZW50Lm5vZGUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXBvcnRBc3NlcnRpb25QcmVmaXhlcyh7XG4gICAgICAgICAgICAgIGFzc2VydGlvbk5vZGU6IHN0YXRlbWVudC5ub2RlLFxuICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICBkZWNsYXJlZElkZW50aWZpZXJzLFxuICAgICAgICAgICAgICByZXBvcnRlZE5hbWVzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0gc2F0aXNmaWVzIFJ1bGUuUnVsZUxpc3RlbmVyO1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiUmVxdWlyZSBBc3NlcnQtcGhhc2UgY29tcGFyaXNvbiB2YXJpYWJsZXMgdG8gdXNlIGFjdHVhbCovZXhwZWN0ZWQqIHByZWZpeGVzLlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvYXNzZXJ0LWFjdHVhbC1leHBlY3RlZC1uYW1lcy5tZFwiLFxuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIG1pc3NpbmdQcmVmaXg6XG4gICAgICAgIFwiUmVuYW1lICd7e25hbWV9fScgdG8gdXNlIHRoZSAne3twcmVmaXh9fScgcHJlZml4IHdoZW4gY29tcGFyaW5nIHZhbHVlcyBpbnNpZGUgLy8gQXNzZXJ0LlwiLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiBcInN1Z2dlc3Rpb25cIixcbiAgfSxcbn07XG5cbmV4cG9ydCB7IGFzc2VydEFjdHVhbEV4cGVjdGVkTmFtZXNSdWxlIH07XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/enforce-aaa-phase-purity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { enforceAaaPhasePurityRule } from "./rule.js";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvZW5mb3JjZS1hYWEtcGhhc2UtcHVyaXR5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGVuZm9yY2VBYWFQaGFzZVB1cml0eVJ1bGUgfSBmcm9tIFwiLi9ydWxlXCI7XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type * as ESTree from "estree";
|
|
2
|
+
/**
|
|
3
|
+
* Collects all identifier names declared by a destructuring or identifier pattern.
|
|
4
|
+
* @param pattern Pattern node to inspect.
|
|
5
|
+
* @param identifiers Identifier set updated in place.
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* collectPatternIdentifiers({ name: "value", type: "Identifier" }, new Set<string>());
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
declare function collectPatternIdentifiers(pattern: ESTree.Pattern, identifiers: Set<string>): void;
|
|
12
|
+
export { collectPatternIdentifiers };
|
|
13
|
+
//# sourceMappingURL=pattern-identifiers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-identifiers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AA2FtC;;;;;;;;GAQG;AACH,iBAAS,yBAAyB,CAChC,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GACvB,IAAI,CAEN;AA4ED,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
|