@codeperfect/eslint-plugin 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -4
- package/dist/.tsbuildinfo +1 -1
- package/dist/{custom-rules.d.ts → application/custom-rules.d.ts} +3 -0
- package/dist/application/custom-rules.d.ts.map +1 -0
- package/dist/application/custom-rules.js +74 -0
- package/dist/application/index.d.ts +4 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +3 -0
- package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts +56 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +149 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/consistent-barrel-files-listeners.d.ts +4 -4
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +98 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +45 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +64 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/exports-only-rule-test-utilities.d.ts +5 -4
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +87 -0
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +140 -0
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts +5 -0
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/index.js +4 -0
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +85 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts +1 -1
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +91 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts +4 -6
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +95 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.js +43 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts +4 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.js +4 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/test-helpers.d.ts +48 -48
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts +20 -0
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.js +25 -0
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.js +235 -0
- package/dist/domain/architecture/consistent-barrel-files/types.d.ts +19 -0
- package/dist/domain/architecture/consistent-barrel-files/types.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/types.js +2 -0
- package/dist/{architecture → domain/architecture}/index.d.ts +1 -1
- package/dist/domain/architecture/index.d.ts.map +1 -0
- package/dist/domain/architecture/index.js +2 -0
- package/dist/{core → domain/core}/index.d.ts +2 -2
- package/dist/domain/core/index.d.ts.map +1 -0
- package/dist/domain/core/index.js +3 -0
- package/dist/domain/core/no-multiple-declarators/index.d.ts +2 -0
- package/dist/domain/core/no-multiple-declarators/index.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/index.js +2 -0
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts +101 -0
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.js +108 -0
- package/dist/{core → domain/core}/no-multiple-declarators/rule.d.ts +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts +35 -0
- package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.fixes.js +95 -0
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts +4 -0
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.js +4 -0
- package/dist/domain/core/no-multiple-declarators/rule.js +219 -0
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts +4 -0
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.js +4 -0
- package/dist/domain/core/no-multiple-declarators/types.d.ts +77 -0
- package/dist/domain/core/no-multiple-declarators/types.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/types.js +38 -0
- package/dist/domain/core/prefer-interface-types/index.d.ts +2 -0
- package/dist/domain/core/prefer-interface-types/index.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/index.js +2 -0
- package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/rule.js +145 -0
- package/dist/domain/core/prefer-interface-types/test-helpers.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/test-helpers.js +116 -0
- package/dist/{custom-rule-documentation.d.ts → domain/custom-rule-documentation.d.ts} +1 -1
- package/dist/domain/custom-rule-documentation.d.ts.map +1 -0
- package/dist/domain/custom-rule-documentation.js +35 -0
- package/dist/domain/docs/index.d.ts +4 -0
- package/dist/domain/docs/index.d.ts.map +1 -0
- package/dist/domain/docs/index.js +4 -0
- package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.js +129 -0
- package/dist/{docs → domain/docs}/no-interface-member-docs/comment-utilities.d.ts +1 -1
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +146 -0
- package/dist/domain/docs/no-interface-member-docs/index.d.ts +2 -0
- package/dist/domain/docs/no-interface-member-docs/index.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/index.js +2 -0
- package/dist/{docs → domain/docs}/no-interface-member-docs/parameter-tags.d.ts +1 -1
- package/dist/domain/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +101 -0
- package/dist/{docs → domain/docs}/no-interface-member-docs/parameter-utilities.d.ts +1 -1
- package/dist/domain/docs/no-interface-member-docs/parameter-utilities.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +125 -0
- package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/rule.js +168 -0
- package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/test-helpers.js +157 -0
- package/dist/{docs → domain/docs}/no-interface-member-docs/types.d.ts +2 -2
- package/dist/domain/docs/no-interface-member-docs/types.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/types.js +2 -0
- package/dist/domain/docs/require-example-language/create-fixer.d.ts +5 -0
- package/dist/domain/docs/require-example-language/create-fixer.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/create-fixer.js +5 -0
- package/dist/domain/docs/require-example-language/empty-fence-fixes.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/empty-fence-fixes.js +169 -0
- package/dist/domain/docs/require-example-language/example-utilities.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/example-utilities.js +76 -0
- package/dist/{docs → domain/docs}/require-example-language/examples.d.ts +1 -1
- package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/examples.js +181 -0
- package/dist/{docs → domain/docs}/require-example-language/fixes.d.ts +2 -2
- package/dist/domain/docs/require-example-language/fixes.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/fixes.js +182 -0
- package/dist/domain/docs/require-example-language/index.d.ts +3 -0
- package/dist/domain/docs/require-example-language/index.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/index.js +2 -0
- package/dist/{docs → domain/docs}/require-example-language/reporting.d.ts +1 -1
- package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/reporting.js +148 -0
- package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/rule.js +34 -0
- package/dist/domain/docs/require-example-language/types.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/types.js +2 -0
- package/dist/domain/docs/single-line-jsdoc/index.d.ts +2 -0
- package/dist/domain/docs/single-line-jsdoc/index.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/index.js +2 -0
- package/dist/domain/docs/single-line-jsdoc/rule.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts +4 -0
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.js +5 -0
- package/dist/domain/docs/single-line-jsdoc/rule.js +196 -0
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts +4 -0
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.js +5 -0
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.js +95 -0
- package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-utilities.d.ts +1 -1
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +140 -0
- package/dist/domain/docs/test-helpers.d.ts.map +1 -0
- package/dist/domain/docs/test-helpers.js +107 -0
- package/dist/domain/index.d.ts +6 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +6 -0
- package/dist/domain/testing/aaa/analyzer.analysis.d.ts +92 -0
- package/dist/domain/testing/aaa/analyzer.analysis.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts +4 -0
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +4 -0
- package/dist/domain/testing/aaa/analyzer.analysis.js +247 -0
- package/dist/domain/testing/aaa/analyzer.assertions.d.ts +93 -0
- package/dist/domain/testing/aaa/analyzer.assertions.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.assertions.js +283 -0
- package/dist/domain/testing/aaa/analyzer.classification.d.ts +75 -0
- package/dist/domain/testing/aaa/analyzer.classification.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.js +201 -0
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts +9 -0
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.js +10 -0
- package/dist/domain/testing/aaa/analyzer.d.ts +46 -0
- package/dist/domain/testing/aaa/analyzer.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.js +59 -0
- package/dist/domain/testing/aaa/analyzer.super.d.ts +107 -0
- package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.super.js +228 -0
- package/dist/{testing → domain/testing}/aaa/index.d.ts +2 -2
- package/dist/domain/testing/aaa/index.d.ts.map +1 -0
- package/dist/domain/testing/aaa/index.js +2 -0
- package/dist/domain/testing/aaa/types.d.ts +58 -0
- package/dist/domain/testing/aaa/types.d.ts.map +1 -0
- package/dist/domain/testing/aaa/types.js +2 -0
- package/dist/domain/testing/assert-actual-expected-names/index.d.ts +2 -0
- package/dist/domain/testing/assert-actual-expected-names/index.d.ts.map +1 -0
- package/dist/domain/testing/assert-actual-expected-names/index.js +2 -0
- package/dist/{testing → domain/testing}/assert-actual-expected-names/rule.d.ts +1 -0
- package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -0
- package/dist/domain/testing/assert-actual-expected-names/rule.js +113 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts +2 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/index.js +2 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts +13 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +134 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts +25 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.js +138 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts +4 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.js +4 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts +14 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +180 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts +42 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.js +188 -0
- package/dist/{testing → domain/testing}/enforce-aaa-phase-purity/rule.d.ts +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule.js +34 -0
- package/dist/domain/testing/enforce-aaa-structure/index.d.ts +2 -0
- package/dist/domain/testing/enforce-aaa-structure/index.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-structure/index.js +2 -0
- package/dist/{testing → domain/testing}/enforce-aaa-structure/rule.d.ts +1 -0
- package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-structure/rule.js +85 -0
- package/dist/{testing → domain/testing}/index.d.ts +9 -8
- package/dist/domain/testing/index.d.ts.map +1 -0
- package/dist/domain/testing/index.js +10 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts +29 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.js +90 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts +31 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +43 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts +16 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +205 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts +28 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix.js +171 -0
- package/dist/domain/testing/prefer-vi-mocked-import/index.d.ts +2 -0
- package/dist/domain/testing/prefer-vi-mocked-import/index.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/index.js +2 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-bindings.d.ts +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.js +52 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-declarations.d.ts +2 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.js +131 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.js +102 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-imports.d.ts +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-imports.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-imports.js +156 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-rewrites.d.ts +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +119 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-walk.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-walk.js +62 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts +26 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match.js +198 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts +20 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.js +39 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule.js +36 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/types.d.ts +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/types.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/types.js +2 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts +86 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.js +150 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts +2 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.js +2 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts +14 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.js +81 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts +13 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.js +189 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts +25 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.js +92 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts +32 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.js +164 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts +5 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.js +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.js +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.js +62 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.js +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts +24 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.js +113 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts +36 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.js +138 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts +203 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.js +2 -0
- package/dist/domain/testing/require-aaa-sections/index.d.ts +2 -0
- package/dist/domain/testing/require-aaa-sections/index.d.ts.map +1 -0
- package/dist/domain/testing/require-aaa-sections/index.js +2 -0
- package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts +17 -0
- package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts.map +1 -0
- package/dist/domain/testing/require-aaa-sections/missing-section-fixes.js +150 -0
- package/dist/{testing → domain/testing}/require-aaa-sections/rule.d.ts +1 -0
- package/dist/domain/testing/require-aaa-sections/rule.d.ts.map +1 -0
- package/dist/domain/testing/require-aaa-sections/rule.js +129 -0
- package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts +104 -0
- package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts.map +1 -0
- package/dist/domain/testing/require-aaa-sections/rule.reporting.js +217 -0
- package/dist/domain/testing/require-act-result-capture/index.d.ts +2 -0
- package/dist/domain/testing/require-act-result-capture/index.d.ts.map +1 -0
- package/dist/domain/testing/require-act-result-capture/index.js +2 -0
- package/dist/{testing → domain/testing}/require-act-result-capture/rule.d.ts +1 -0
- package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -0
- package/dist/domain/testing/require-act-result-capture/rule.js +106 -0
- package/dist/domain/testing/require-test-companion/index.d.ts +3 -0
- package/dist/domain/testing/require-test-companion/index.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/index.js +3 -0
- package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-listeners.d.ts +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-listeners.js +145 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-options.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-options.js +113 -0
- package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-test-helpers.d.ts +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.js +184 -0
- package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-utilities.d.ts +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-utilities.js +26 -0
- package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/rule.js +57 -0
- package/dist/domain/testing/require-test-companion/types.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/types.js +2 -0
- package/dist/domain/testing/single-act-statement/index.d.ts +2 -0
- package/dist/domain/testing/single-act-statement/index.d.ts.map +1 -0
- package/dist/domain/testing/single-act-statement/index.js +2 -0
- package/dist/{testing → domain/testing}/single-act-statement/rule.d.ts +1 -0
- package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -0
- package/dist/domain/testing/single-act-statement/rule.js +34 -0
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -6
- package/dist/{codeperfect-plugin.d.ts → infrastructure/codeperfect-plugin.d.ts} +2 -0
- package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -0
- package/dist/infrastructure/codeperfect-plugin.js +30 -0
- package/dist/infrastructure/index.d.ts +5 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +4 -0
- package/dist/infrastructure/presets.d.ts +18 -0
- package/dist/infrastructure/presets.d.ts.map +1 -0
- package/dist/infrastructure/presets.js +81 -0
- package/package.json +54 -27
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +0 -131
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +0 -48
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.js +0 -126
- package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +0 -90
- package/dist/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/exports-only-rule.js +0 -218
- package/dist/architecture/consistent-barrel-files/index.d.ts +0 -5
- package/dist/architecture/consistent-barrel-files/index.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/index.js +0 -4
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +0 -100
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +0 -90
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +0 -154
- package/dist/architecture/consistent-barrel-files/rule.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/rule.js +0 -58
- package/dist/architecture/consistent-barrel-files/test-helpers.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/test-helpers.js +0 -229
- package/dist/architecture/consistent-barrel-files/types.d.ts +0 -25
- package/dist/architecture/consistent-barrel-files/types.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/types.js +0 -2
- package/dist/architecture/index.d.ts.map +0 -1
- package/dist/architecture/index.js +0 -2
- package/dist/benchmark-rules.d.ts +0 -83
- package/dist/benchmark-rules.d.ts.map +0 -1
- package/dist/benchmark-rules.js +0 -175
- package/dist/codeperfect-plugin.d.ts.map +0 -1
- package/dist/codeperfect-plugin.js +0 -29
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -3
- package/dist/core/no-multiple-declarators/index.d.ts +0 -2
- package/dist/core/no-multiple-declarators/index.d.ts.map +0 -1
- package/dist/core/no-multiple-declarators/index.js +0 -2
- package/dist/core/no-multiple-declarators/rule.d.ts.map +0 -1
- package/dist/core/no-multiple-declarators/rule.js +0 -100
- package/dist/core/prefer-interface-types/index.d.ts +0 -2
- package/dist/core/prefer-interface-types/index.d.ts.map +0 -1
- package/dist/core/prefer-interface-types/index.js +0 -2
- package/dist/core/prefer-interface-types/rule.d.ts.map +0 -1
- package/dist/core/prefer-interface-types/rule.js +0 -145
- package/dist/core/prefer-interface-types/test-helpers.d.ts.map +0 -1
- package/dist/core/prefer-interface-types/test-helpers.js +0 -116
- package/dist/custom-rule-documentation.d.ts.map +0 -1
- package/dist/custom-rule-documentation.js +0 -35
- package/dist/custom-rules.d.ts.map +0 -1
- package/dist/custom-rules.js +0 -70
- package/dist/docs/index.d.ts +0 -4
- package/dist/docs/index.d.ts.map +0 -1
- package/dist/docs/index.js +0 -4
- package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.js +0 -129
- package/dist/docs/no-interface-member-docs/comment-utilities.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/comment-utilities.js +0 -146
- package/dist/docs/no-interface-member-docs/index.d.ts +0 -2
- package/dist/docs/no-interface-member-docs/index.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/index.js +0 -2
- package/dist/docs/no-interface-member-docs/parameter-tags.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/parameter-tags.js +0 -101
- package/dist/docs/no-interface-member-docs/parameter-utilities.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/parameter-utilities.js +0 -125
- package/dist/docs/no-interface-member-docs/rule.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/rule.js +0 -168
- package/dist/docs/no-interface-member-docs/test-helpers.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/test-helpers.js +0 -157
- package/dist/docs/no-interface-member-docs/types.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/types.js +0 -2
- package/dist/docs/require-example-language/empty-fence-fixes.d.ts.map +0 -1
- package/dist/docs/require-example-language/empty-fence-fixes.js +0 -169
- package/dist/docs/require-example-language/example-utilities.d.ts.map +0 -1
- package/dist/docs/require-example-language/example-utilities.js +0 -76
- package/dist/docs/require-example-language/examples.d.ts.map +0 -1
- package/dist/docs/require-example-language/examples.js +0 -181
- package/dist/docs/require-example-language/fixes.d.ts.map +0 -1
- package/dist/docs/require-example-language/fixes.js +0 -182
- package/dist/docs/require-example-language/index.d.ts +0 -3
- package/dist/docs/require-example-language/index.d.ts.map +0 -1
- package/dist/docs/require-example-language/index.js +0 -2
- package/dist/docs/require-example-language/reporting.d.ts.map +0 -1
- package/dist/docs/require-example-language/reporting.js +0 -145
- package/dist/docs/require-example-language/rule.d.ts.map +0 -1
- package/dist/docs/require-example-language/rule.js +0 -34
- package/dist/docs/require-example-language/types.d.ts.map +0 -1
- package/dist/docs/require-example-language/types.js +0 -2
- package/dist/docs/single-line-jsdoc/index.d.ts +0 -2
- package/dist/docs/single-line-jsdoc/index.d.ts.map +0 -1
- package/dist/docs/single-line-jsdoc/index.js +0 -2
- package/dist/docs/single-line-jsdoc/rule.d.ts.map +0 -1
- package/dist/docs/single-line-jsdoc/rule.js +0 -196
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +0 -1
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.js +0 -95
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +0 -1
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +0 -140
- package/dist/docs/test-helpers.d.ts.map +0 -1
- package/dist/docs/test-helpers.js +0 -107
- package/dist/presets.d.ts +0 -10
- package/dist/presets.d.ts.map +0 -1
- package/dist/presets.js +0 -50
- package/dist/rules/index.d.ts +0 -5
- package/dist/rules/index.d.ts.map +0 -1
- package/dist/rules/index.js +0 -6
- package/dist/testing/aaa/analyzer.d.ts +0 -36
- package/dist/testing/aaa/analyzer.d.ts.map +0 -1
- package/dist/testing/aaa/analyzer.js +0 -490
- package/dist/testing/aaa/index.d.ts.map +0 -1
- package/dist/testing/aaa/index.js +0 -2
- package/dist/testing/aaa/types.d.ts +0 -31
- package/dist/testing/aaa/types.d.ts.map +0 -1
- package/dist/testing/aaa/types.js +0 -2
- package/dist/testing/assert-actual-expected-names/index.d.ts +0 -2
- package/dist/testing/assert-actual-expected-names/index.d.ts.map +0 -1
- package/dist/testing/assert-actual-expected-names/index.js +0 -2
- package/dist/testing/assert-actual-expected-names/rule.d.ts.map +0 -1
- package/dist/testing/assert-actual-expected-names/rule.js +0 -54
- package/dist/testing/enforce-aaa-phase-purity/index.d.ts +0 -2
- package/dist/testing/enforce-aaa-phase-purity/index.d.ts.map +0 -1
- package/dist/testing/enforce-aaa-phase-purity/index.js +0 -2
- package/dist/testing/enforce-aaa-phase-purity/rule.d.ts.map +0 -1
- package/dist/testing/enforce-aaa-phase-purity/rule.js +0 -110
- package/dist/testing/enforce-aaa-structure/index.d.ts +0 -2
- package/dist/testing/enforce-aaa-structure/index.d.ts.map +0 -1
- package/dist/testing/enforce-aaa-structure/index.js +0 -2
- package/dist/testing/enforce-aaa-structure/rule.d.ts.map +0 -1
- package/dist/testing/enforce-aaa-structure/rule.js +0 -48
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js +0 -9
- package/dist/testing/prefer-vi-mocked-import/fix.d.ts +0 -16
- package/dist/testing/prefer-vi-mocked-import/fix.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/fix.js +0 -224
- package/dist/testing/prefer-vi-mocked-import/index.d.ts +0 -2
- package/dist/testing/prefer-vi-mocked-import/index.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/index.js +0 -2
- package/dist/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-bindings.js +0 -52
- package/dist/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-declarations.js +0 -99
- package/dist/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-helpers.js +0 -102
- package/dist/testing/prefer-vi-mocked-import/match-imports.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-imports.js +0 -156
- package/dist/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-rewrites.js +0 -119
- package/dist/testing/prefer-vi-mocked-import/match-walk.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-walk.js +0 -62
- package/dist/testing/prefer-vi-mocked-import/match.d.ts +0 -15
- package/dist/testing/prefer-vi-mocked-import/match.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match.js +0 -193
- package/dist/testing/prefer-vi-mocked-import/rule.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/rule.js +0 -32
- package/dist/testing/prefer-vi-mocked-import/types.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/types.js +0 -2
- package/dist/testing/require-aaa-sections/index.d.ts +0 -2
- package/dist/testing/require-aaa-sections/index.d.ts.map +0 -1
- package/dist/testing/require-aaa-sections/index.js +0 -2
- package/dist/testing/require-aaa-sections/rule.d.ts.map +0 -1
- package/dist/testing/require-aaa-sections/rule.js +0 -111
- package/dist/testing/require-act-result-capture/index.d.ts +0 -2
- package/dist/testing/require-act-result-capture/index.d.ts.map +0 -1
- package/dist/testing/require-act-result-capture/index.js +0 -2
- package/dist/testing/require-act-result-capture/rule.d.ts.map +0 -1
- package/dist/testing/require-act-result-capture/rule.js +0 -34
- package/dist/testing/require-test-companion/index.d.ts +0 -3
- package/dist/testing/require-test-companion/index.d.ts.map +0 -1
- package/dist/testing/require-test-companion/index.js +0 -3
- package/dist/testing/require-test-companion/require-test-companion-listeners.d.ts.map +0 -1
- package/dist/testing/require-test-companion/require-test-companion-listeners.js +0 -145
- package/dist/testing/require-test-companion/require-test-companion-options.d.ts.map +0 -1
- package/dist/testing/require-test-companion/require-test-companion-options.js +0 -112
- package/dist/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +0 -1
- package/dist/testing/require-test-companion/require-test-companion-test-helpers.js +0 -183
- package/dist/testing/require-test-companion/require-test-companion-utilities.d.ts.map +0 -1
- package/dist/testing/require-test-companion/require-test-companion-utilities.js +0 -26
- package/dist/testing/require-test-companion/rule.d.ts.map +0 -1
- package/dist/testing/require-test-companion/rule.js +0 -57
- package/dist/testing/require-test-companion/types.d.ts.map +0 -1
- package/dist/testing/require-test-companion/types.js +0 -2
- package/dist/testing/single-act-statement/index.d.ts +0 -2
- package/dist/testing/single-act-statement/index.d.ts.map +0 -1
- package/dist/testing/single-act-statement/index.js +0 -2
- package/dist/testing/single-act-statement/rule.d.ts.map +0 -1
- package/dist/testing/single-act-statement/rule.js +0 -33
- /package/dist/{architecture → domain/architecture}/consistent-barrel-files/exports-only-rule.d.ts +0 -0
- /package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts +0 -0
- /package/dist/{architecture → domain/architecture}/consistent-barrel-files/rule.d.ts +0 -0
- /package/dist/{core → domain/core}/prefer-interface-types/rule.d.ts +0 -0
- /package/dist/{core → domain/core}/prefer-interface-types/test-helpers.d.ts +0 -0
- /package/dist/{docs → domain/docs}/no-interface-member-docs/comment-utilities-test-helpers.d.ts +0 -0
- /package/dist/{docs → domain/docs}/no-interface-member-docs/rule.d.ts +0 -0
- /package/dist/{docs → domain/docs}/no-interface-member-docs/test-helpers.d.ts +0 -0
- /package/dist/{docs → domain/docs}/require-example-language/empty-fence-fixes.d.ts +0 -0
- /package/dist/{docs → domain/docs}/require-example-language/example-utilities.d.ts +0 -0
- /package/dist/{docs → domain/docs}/require-example-language/rule.d.ts +0 -0
- /package/dist/{docs → domain/docs}/require-example-language/types.d.ts +0 -0
- /package/dist/{docs → domain/docs}/single-line-jsdoc/rule.d.ts +0 -0
- /package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-content.d.ts +0 -0
- /package/dist/{docs → domain/docs}/test-helpers.d.ts +0 -0
- /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-helpers.d.ts +0 -0
- /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-walk.d.ts +0 -0
- /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/rule.d.ts +0 -0
- /package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-options.d.ts +0 -0
- /package/dist/{testing → domain/testing}/require-test-companion/rule.d.ts +0 -0
- /package/dist/{testing → domain/testing}/require-test-companion/types.d.ts +0 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/** Canonical ordering used when comparing AAA phases. */
|
|
2
|
+
declare const aaaPhaseOrder: {
|
|
3
|
+
readonly Act: 1;
|
|
4
|
+
readonly Arrange: 0;
|
|
5
|
+
readonly Assert: 2;
|
|
6
|
+
};
|
|
7
|
+
/** Analyzes a supported `it` or `test` callback for AAA sections. */
|
|
8
|
+
declare const analyzeTestBlock: (context: import("eslint").Rule.RuleContext, node: import("estree").CallExpression) => import("./types.js").TestBlockAnalysis | undefined;
|
|
9
|
+
/** Counts statement forms that should be treated as Act steps. */
|
|
10
|
+
declare const countActStatements: (analysis: import("./types.js").TestBlockAnalysis) => number;
|
|
11
|
+
/** Collects identifiers declared inside Assert sections. */
|
|
12
|
+
declare const getAssertDeclaredIdentifiers: (analysis: import("./types.js").TestBlockAnalysis) => Map<string, import("./types.js").LocatedNode<import("estree").Identifier>>;
|
|
13
|
+
/** Extracts `actual` and `expected` identifiers from assertion statements. */
|
|
14
|
+
declare const getAssertionIdentifiers: (statement: import("estree").Statement) => import("./analyzer.assertions.js").AssertionIdentifiers;
|
|
15
|
+
/** Flattens section comments into one entry per resolved phase. */
|
|
16
|
+
declare const getFlattenedSections: (analysis: Pick<import("./types.js").TestBlockAnalysis, "sectionComments">) => import("./analyzer.analysis.js").FlattenedSection[];
|
|
17
|
+
/** Returns the indentation prefix that appears before a given offset. */
|
|
18
|
+
declare const getIndentationAtOffset: (sourceText: string, offset: number) => string;
|
|
19
|
+
/** Resolves the starting range for a specific source line. */
|
|
20
|
+
declare const getLineStartRange: (sourceText: string, line: number) => [number, number];
|
|
21
|
+
/** Filters section comments down to phase boundaries that matter after Arrange. */
|
|
22
|
+
declare const getPhaseBoundaryComments: (analysis: Pick<import("./types.js").TestBlockAnalysis, "sectionComments">) => import("./types.js").SectionComment[];
|
|
23
|
+
/** Parses AAA phases from a section comment value. */
|
|
24
|
+
declare const getSectionPhases: (commentValue: string) => import("./types.js").AaaPhase[];
|
|
25
|
+
/** Detects whether a statement contains any assertion call. */
|
|
26
|
+
declare const hasAssertion: (statement: import("estree").Statement) => boolean;
|
|
27
|
+
/** Detects asynchronous behavior such as awaits, promise chains, and promises. */
|
|
28
|
+
declare const hasAsyncLogic: (statement: import("estree").Statement) => boolean;
|
|
29
|
+
/** Detects whether a statement contains an `await` expression. */
|
|
30
|
+
declare const hasAwait: (statement: import("estree").Statement) => boolean;
|
|
31
|
+
/** Checks whether a section comment is separated by a blank line. */
|
|
32
|
+
declare const hasBlankLineBeforeComment: (sourceText: string, comment: import("estree").Comment) => boolean;
|
|
33
|
+
/** Detects Act expressions whose result should usually be captured. */
|
|
34
|
+
declare const hasCapturableActResult: (statement: import("estree").Statement) => boolean;
|
|
35
|
+
/** Detects mutation-oriented statements and array mutator calls. */
|
|
36
|
+
declare const hasMutation: (statement: import("estree").Statement) => boolean;
|
|
37
|
+
/** Detects statements that represent meaningful Act steps. */
|
|
38
|
+
declare const isMeaningfulActStatement: (statement: import("estree").Statement) => boolean;
|
|
39
|
+
/** Detects statements that should stay in Arrange as setup helpers. */
|
|
40
|
+
declare const isSetupLikeStatement: (statement: import("estree").Statement) => boolean;
|
|
41
|
+
/** Detects whether a statement shape is valid inside Assert. */
|
|
42
|
+
declare const isValidAssertStatement: (statement: import("estree").Statement) => boolean;
|
|
43
|
+
/** Checks whether an identifier matches the expected AAA naming prefix. */
|
|
44
|
+
declare const usesPrefix: (name: string, prefix: "actual" | "expected") => boolean;
|
|
45
|
+
export { aaaPhaseOrder, analyzeTestBlock, countActStatements, getAssertDeclaredIdentifiers, getAssertionIdentifiers, getFlattenedSections, getIndentationAtOffset, getLineStartRange, getPhaseBoundaryComments, getSectionPhases, hasAssertion, hasAsyncLogic, hasAwait, hasBlankLineBeforeComment, hasCapturableActResult, hasMutation, isMeaningfulActStatement, isSetupLikeStatement, isValidAssertStatement, usesPrefix, };
|
|
46
|
+
//# sourceMappingURL=analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.ts"],"names":[],"mappings":"AA2BA,yDAAyD;AACzD,QAAA,MAAM,aAAa;;;;CAA8B,CAAC;AAmBlD,qEAAqE;AACrE,QAAA,MAAM,gBAAgB,wIAA0C,CAAC;AAEjE,kEAAkE;AAClE,QAAA,MAAM,kBAAkB,2DAA4C,CAAC;AAErE,4DAA4D;AAC5D,QAAA,MAAM,4BAA4B,4HAEjC,CAAC;AAEF,8EAA8E;AAC9E,QAAA,MAAM,uBAAuB,iGAAiD,CAAC;AAE/E,mEAAmE;AACnE,QAAA,MAAM,oBAAoB,8HAA8C,CAAC;AAEzE,yEAAyE;AACzE,QAAA,MAAM,sBAAsB,gDAAgD,CAAC;AAE7E,8DAA8D;AAC9D,QAAA,MAAM,iBAAiB,wDAA2C,CAAC;AAEnE,mFAAmF;AACnF,QAAA,MAAM,wBAAwB,gHAE7B,CAAC;AAEF,sDAAsD;AACtD,QAAA,MAAM,gBAAgB,wDAA0C,CAAC;AAEjE,+DAA+D;AAC/D,QAAA,MAAM,YAAY,oDAAsC,CAAC;AAEzD,kFAAkF;AAClF,QAAA,MAAM,aAAa,oDAAuC,CAAC;AAE3D,kEAAkE;AAClE,QAAA,MAAM,QAAQ,oDAAkC,CAAC;AAEjD,qEAAqE;AACrE,QAAA,MAAM,yBAAyB,oEAE9B,CAAC;AAEF,uEAAuE;AACvE,QAAA,MAAM,sBAAsB,oDAAgD,CAAC;AAE7E,oEAAoE;AACpE,QAAA,MAAM,WAAW,oDAAqC,CAAC;AAEvD,8DAA8D;AAC9D,QAAA,MAAM,wBAAwB,oDAE7B,CAAC;AAEF,uEAAuE;AACvE,QAAA,MAAM,oBAAoB,oDAA8C,CAAC;AAEzE,gEAAgE;AAChE,QAAA,MAAM,sBAAsB,oDAAgD,CAAC;AAE7E,2EAA2E;AAC3E,QAAA,MAAM,UAAU,0DAAoC,CAAC;AAErD,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,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { aaaPhaseOrder as aaaPhaseOrderImplementation, analyzeTestBlock as analyzeTestBlockImplementation, countActStatements as countActStatementsImplementation, getFlattenedSections as getFlattenedSectionsImplementation, getIndentationAtOffset as getIndentationAtOffsetImplementation, getLineStartRange as getLineStartRangeImplementation, getPhaseBoundaryComments as getPhaseBoundaryCommentsImplementation, getSectionPhases as getSectionPhasesImplementation, } from "./analyzer.analysis.js";
|
|
2
|
+
import { getAssertDeclaredIdentifiers as getAssertDeclaredIdentifiersImplementation, getAssertionIdentifiers as getAssertionIdentifiersImplementation, hasAssertion as hasAssertionImplementation, isValidAssertStatement as isValidAssertStatementImplementation, usesPrefix as usesPrefixImplementation, } from "./analyzer.assertions.js";
|
|
3
|
+
import { hasAsyncLogic as hasAsyncLogicImplementation, hasAwait as hasAwaitImplementation, hasBlankLineBeforeComment as hasBlankLineBeforeCommentImplementation, hasCapturableActResult as hasCapturableActResultImplementation, hasMutation as hasMutationImplementation, isMeaningfulActStatement as isMeaningfulActStatementImplementation, isSetupLikeStatement as isSetupLikeStatementImplementation, } from "./analyzer.classification.js";
|
|
4
|
+
/** Canonical ordering used when comparing AAA phases. */
|
|
5
|
+
const aaaPhaseOrder = aaaPhaseOrderImplementation;
|
|
6
|
+
/**
|
|
7
|
+
* Creates a local forwarding function for an imported analyzer helper.
|
|
8
|
+
* @template TParameters Forwarded parameter tuple.
|
|
9
|
+
* @template TResult Forwarded return type.
|
|
10
|
+
* @param implementation Imported helper implementation.
|
|
11
|
+
* @returns Local function that forwards all arguments to the implementation.
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const localHelper = forward(implementation);
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
function forward(implementation) {
|
|
18
|
+
return (...parameters) => implementation(...parameters);
|
|
19
|
+
}
|
|
20
|
+
/** Analyzes a supported `it` or `test` callback for AAA sections. */
|
|
21
|
+
const analyzeTestBlock = forward(analyzeTestBlockImplementation);
|
|
22
|
+
/** Counts statement forms that should be treated as Act steps. */
|
|
23
|
+
const countActStatements = forward(countActStatementsImplementation);
|
|
24
|
+
/** Collects identifiers declared inside Assert sections. */
|
|
25
|
+
const getAssertDeclaredIdentifiers = forward(getAssertDeclaredIdentifiersImplementation);
|
|
26
|
+
/** Extracts `actual` and `expected` identifiers from assertion statements. */
|
|
27
|
+
const getAssertionIdentifiers = forward(getAssertionIdentifiersImplementation);
|
|
28
|
+
/** Flattens section comments into one entry per resolved phase. */
|
|
29
|
+
const getFlattenedSections = forward(getFlattenedSectionsImplementation);
|
|
30
|
+
/** Returns the indentation prefix that appears before a given offset. */
|
|
31
|
+
const getIndentationAtOffset = forward(getIndentationAtOffsetImplementation);
|
|
32
|
+
/** Resolves the starting range for a specific source line. */
|
|
33
|
+
const getLineStartRange = forward(getLineStartRangeImplementation);
|
|
34
|
+
/** Filters section comments down to phase boundaries that matter after Arrange. */
|
|
35
|
+
const getPhaseBoundaryComments = forward(getPhaseBoundaryCommentsImplementation);
|
|
36
|
+
/** Parses AAA phases from a section comment value. */
|
|
37
|
+
const getSectionPhases = forward(getSectionPhasesImplementation);
|
|
38
|
+
/** Detects whether a statement contains any assertion call. */
|
|
39
|
+
const hasAssertion = forward(hasAssertionImplementation);
|
|
40
|
+
/** Detects asynchronous behavior such as awaits, promise chains, and promises. */
|
|
41
|
+
const hasAsyncLogic = forward(hasAsyncLogicImplementation);
|
|
42
|
+
/** Detects whether a statement contains an `await` expression. */
|
|
43
|
+
const hasAwait = forward(hasAwaitImplementation);
|
|
44
|
+
/** Checks whether a section comment is separated by a blank line. */
|
|
45
|
+
const hasBlankLineBeforeComment = forward(hasBlankLineBeforeCommentImplementation);
|
|
46
|
+
/** Detects Act expressions whose result should usually be captured. */
|
|
47
|
+
const hasCapturableActResult = forward(hasCapturableActResultImplementation);
|
|
48
|
+
/** Detects mutation-oriented statements and array mutator calls. */
|
|
49
|
+
const hasMutation = forward(hasMutationImplementation);
|
|
50
|
+
/** Detects statements that represent meaningful Act steps. */
|
|
51
|
+
const isMeaningfulActStatement = forward(isMeaningfulActStatementImplementation);
|
|
52
|
+
/** Detects statements that should stay in Arrange as setup helpers. */
|
|
53
|
+
const isSetupLikeStatement = forward(isSetupLikeStatementImplementation);
|
|
54
|
+
/** Detects whether a statement shape is valid inside Assert. */
|
|
55
|
+
const isValidAssertStatement = forward(isValidAssertStatementImplementation);
|
|
56
|
+
/** Checks whether an identifier matches the expected AAA naming prefix. */
|
|
57
|
+
const usesPrefix = forward(usesPrefixImplementation);
|
|
58
|
+
export { aaaPhaseOrder, analyzeTestBlock, countActStatements, getAssertDeclaredIdentifiers, getAssertionIdentifiers, getFlattenedSections, getIndentationAtOffset, getLineStartRange, getPhaseBoundaryComments, getSectionPhases, hasAssertion, hasAsyncLogic, hasAwait, hasBlankLineBeforeComment, hasCapturableActResult, hasMutation, isMeaningfulActStatement, isSetupLikeStatement, isValidAssertStatement, usesPrefix, };
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL2FuYWx5emVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxhQUFhLElBQUksMkJBQTJCLEVBQzVDLGdCQUFnQixJQUFJLDhCQUE4QixFQUNsRCxrQkFBa0IsSUFBSSxnQ0FBZ0MsRUFDdEQsb0JBQW9CLElBQUksa0NBQWtDLEVBQzFELHNCQUFzQixJQUFJLG9DQUFvQyxFQUM5RCxpQkFBaUIsSUFBSSwrQkFBK0IsRUFDcEQsd0JBQXdCLElBQUksc0NBQXNDLEVBQ2xFLGdCQUFnQixJQUFJLDhCQUE4QixHQUNuRCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCw0QkFBNEIsSUFBSSwwQ0FBMEMsRUFDMUUsdUJBQXVCLElBQUkscUNBQXFDLEVBQ2hFLFlBQVksSUFBSSwwQkFBMEIsRUFDMUMsc0JBQXNCLElBQUksb0NBQW9DLEVBQzlELFVBQVUsSUFBSSx3QkFBd0IsR0FDdkMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsYUFBYSxJQUFJLDJCQUEyQixFQUM1QyxRQUFRLElBQUksc0JBQXNCLEVBQ2xDLHlCQUF5QixJQUFJLHVDQUF1QyxFQUNwRSxzQkFBc0IsSUFBSSxvQ0FBb0MsRUFDOUQsV0FBVyxJQUFJLHlCQUF5QixFQUN4Qyx3QkFBd0IsSUFBSSxzQ0FBc0MsRUFDbEUsb0JBQW9CLElBQUksa0NBQWtDLEdBQzNELE1BQU0sMkJBQTJCLENBQUM7QUFFbkMseURBQXlEO0FBQ3pELE1BQU0sYUFBYSxHQUFHLDJCQUEyQixDQUFDO0FBRWxEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLE9BQU8sQ0FDZCxjQUF1RDtJQUV2RCxPQUFPLENBQUMsR0FBRyxVQUFVLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRCxxRUFBcUU7QUFDckUsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUVqRSxrRUFBa0U7QUFDbEUsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQUVyRSw0REFBNEQ7QUFDNUQsTUFBTSw0QkFBNEIsR0FBRyxPQUFPLENBQzFDLDBDQUEwQyxDQUMzQyxDQUFDO0FBRUYsOEVBQThFO0FBQzlFLE1BQU0sdUJBQXVCLEdBQUcsT0FBTyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7QUFFL0UsbUVBQW1FO0FBQ25FLE1BQU0sb0JBQW9CLEdBQUcsT0FBTyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7QUFFekUseUVBQXlFO0FBQ3pFLE1BQU0sc0JBQXNCLEdBQUcsT0FBTyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7QUFFN0UsOERBQThEO0FBQzlELE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUM7QUFFbkUsbUZBQW1GO0FBQ25GLE1BQU0sd0JBQXdCLEdBQUcsT0FBTyxDQUN0QyxzQ0FBc0MsQ0FDdkMsQ0FBQztBQUVGLHNEQUFzRDtBQUN0RCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0FBRWpFLCtEQUErRDtBQUMvRCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUV6RCxrRkFBa0Y7QUFDbEYsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFFM0Qsa0VBQWtFO0FBQ2xFLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBRWpELHFFQUFxRTtBQUNyRSxNQUFNLHlCQUF5QixHQUFHLE9BQU8sQ0FDdkMsdUNBQXVDLENBQ3hDLENBQUM7QUFFRix1RUFBdUU7QUFDdkUsTUFBTSxzQkFBc0IsR0FBRyxPQUFPLENBQUMsb0NBQW9DLENBQUMsQ0FBQztBQUU3RSxvRUFBb0U7QUFDcEUsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFFdkQsOERBQThEO0FBQzlELE1BQU0sd0JBQXdCLEdBQUcsT0FBTyxDQUN0QyxzQ0FBc0MsQ0FDdkMsQ0FBQztBQUVGLHVFQUF1RTtBQUN2RSxNQUFNLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0FBRXpFLGdFQUFnRTtBQUNoRSxNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0FBRTdFLDJFQUEyRTtBQUMzRSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUVyRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsNEJBQTRCLEVBQzVCLHVCQUF1QixFQUN2QixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixhQUFhLEVBQ2IsUUFBUSxFQUNSLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLFVBQVUsR0FDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYWFhUGhhc2VPcmRlciBhcyBhYWFQaGFzZU9yZGVySW1wbGVtZW50YXRpb24sXG4gIGFuYWx5emVUZXN0QmxvY2sgYXMgYW5hbHl6ZVRlc3RCbG9ja0ltcGxlbWVudGF0aW9uLFxuICBjb3VudEFjdFN0YXRlbWVudHMgYXMgY291bnRBY3RTdGF0ZW1lbnRzSW1wbGVtZW50YXRpb24sXG4gIGdldEZsYXR0ZW5lZFNlY3Rpb25zIGFzIGdldEZsYXR0ZW5lZFNlY3Rpb25zSW1wbGVtZW50YXRpb24sXG4gIGdldEluZGVudGF0aW9uQXRPZmZzZXQgYXMgZ2V0SW5kZW50YXRpb25BdE9mZnNldEltcGxlbWVudGF0aW9uLFxuICBnZXRMaW5lU3RhcnRSYW5nZSBhcyBnZXRMaW5lU3RhcnRSYW5nZUltcGxlbWVudGF0aW9uLFxuICBnZXRQaGFzZUJvdW5kYXJ5Q29tbWVudHMgYXMgZ2V0UGhhc2VCb3VuZGFyeUNvbW1lbnRzSW1wbGVtZW50YXRpb24sXG4gIGdldFNlY3Rpb25QaGFzZXMgYXMgZ2V0U2VjdGlvblBoYXNlc0ltcGxlbWVudGF0aW9uLFxufSBmcm9tIFwiLi9hbmFseXplci5hbmFseXNpc1wiO1xuaW1wb3J0IHtcbiAgZ2V0QXNzZXJ0RGVjbGFyZWRJZGVudGlmaWVycyBhcyBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzSW1wbGVtZW50YXRpb24sXG4gIGdldEFzc2VydGlvbklkZW50aWZpZXJzIGFzIGdldEFzc2VydGlvbklkZW50aWZpZXJzSW1wbGVtZW50YXRpb24sXG4gIGhhc0Fzc2VydGlvbiBhcyBoYXNBc3NlcnRpb25JbXBsZW1lbnRhdGlvbixcbiAgaXNWYWxpZEFzc2VydFN0YXRlbWVudCBhcyBpc1ZhbGlkQXNzZXJ0U3RhdGVtZW50SW1wbGVtZW50YXRpb24sXG4gIHVzZXNQcmVmaXggYXMgdXNlc1ByZWZpeEltcGxlbWVudGF0aW9uLFxufSBmcm9tIFwiLi9hbmFseXplci5hc3NlcnRpb25zXCI7XG5pbXBvcnQge1xuICBoYXNBc3luY0xvZ2ljIGFzIGhhc0FzeW5jTG9naWNJbXBsZW1lbnRhdGlvbixcbiAgaGFzQXdhaXQgYXMgaGFzQXdhaXRJbXBsZW1lbnRhdGlvbixcbiAgaGFzQmxhbmtMaW5lQmVmb3JlQ29tbWVudCBhcyBoYXNCbGFua0xpbmVCZWZvcmVDb21tZW50SW1wbGVtZW50YXRpb24sXG4gIGhhc0NhcHR1cmFibGVBY3RSZXN1bHQgYXMgaGFzQ2FwdHVyYWJsZUFjdFJlc3VsdEltcGxlbWVudGF0aW9uLFxuICBoYXNNdXRhdGlvbiBhcyBoYXNNdXRhdGlvbkltcGxlbWVudGF0aW9uLFxuICBpc01lYW5pbmdmdWxBY3RTdGF0ZW1lbnQgYXMgaXNNZWFuaW5nZnVsQWN0U3RhdGVtZW50SW1wbGVtZW50YXRpb24sXG4gIGlzU2V0dXBMaWtlU3RhdGVtZW50IGFzIGlzU2V0dXBMaWtlU3RhdGVtZW50SW1wbGVtZW50YXRpb24sXG59IGZyb20gXCIuL2FuYWx5emVyLmNsYXNzaWZpY2F0aW9uXCI7XG5cbi8qKiBDYW5vbmljYWwgb3JkZXJpbmcgdXNlZCB3aGVuIGNvbXBhcmluZyBBQUEgcGhhc2VzLiAqL1xuY29uc3QgYWFhUGhhc2VPcmRlciA9IGFhYVBoYXNlT3JkZXJJbXBsZW1lbnRhdGlvbjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbG9jYWwgZm9yd2FyZGluZyBmdW5jdGlvbiBmb3IgYW4gaW1wb3J0ZWQgYW5hbHl6ZXIgaGVscGVyLlxuICogQHRlbXBsYXRlIFRQYXJhbWV0ZXJzIEZvcndhcmRlZCBwYXJhbWV0ZXIgdHVwbGUuXG4gKiBAdGVtcGxhdGUgVFJlc3VsdCBGb3J3YXJkZWQgcmV0dXJuIHR5cGUuXG4gKiBAcGFyYW0gaW1wbGVtZW50YXRpb24gSW1wb3J0ZWQgaGVscGVyIGltcGxlbWVudGF0aW9uLlxuICogQHJldHVybnMgTG9jYWwgZnVuY3Rpb24gdGhhdCBmb3J3YXJkcyBhbGwgYXJndW1lbnRzIHRvIHRoZSBpbXBsZW1lbnRhdGlvbi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBsb2NhbEhlbHBlciA9IGZvcndhcmQoaW1wbGVtZW50YXRpb24pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGZvcndhcmQ8VFBhcmFtZXRlcnMgZXh0ZW5kcyB1bmtub3duW10sIFRSZXN1bHQ+KFxuICBpbXBsZW1lbnRhdGlvbjogKC4uLnBhcmFtZXRlcnM6IFRQYXJhbWV0ZXJzKSA9PiBUUmVzdWx0LFxuKTogKC4uLnBhcmFtZXRlcnM6IFRQYXJhbWV0ZXJzKSA9PiBUUmVzdWx0IHtcbiAgcmV0dXJuICguLi5wYXJhbWV0ZXJzKSA9PiBpbXBsZW1lbnRhdGlvbiguLi5wYXJhbWV0ZXJzKTtcbn1cblxuLyoqIEFuYWx5emVzIGEgc3VwcG9ydGVkIGBpdGAgb3IgYHRlc3RgIGNhbGxiYWNrIGZvciBBQUEgc2VjdGlvbnMuICovXG5jb25zdCBhbmFseXplVGVzdEJsb2NrID0gZm9yd2FyZChhbmFseXplVGVzdEJsb2NrSW1wbGVtZW50YXRpb24pO1xuXG4vKiogQ291bnRzIHN0YXRlbWVudCBmb3JtcyB0aGF0IHNob3VsZCBiZSB0cmVhdGVkIGFzIEFjdCBzdGVwcy4gKi9cbmNvbnN0IGNvdW50QWN0U3RhdGVtZW50cyA9IGZvcndhcmQoY291bnRBY3RTdGF0ZW1lbnRzSW1wbGVtZW50YXRpb24pO1xuXG4vKiogQ29sbGVjdHMgaWRlbnRpZmllcnMgZGVjbGFyZWQgaW5zaWRlIEFzc2VydCBzZWN0aW9ucy4gKi9cbmNvbnN0IGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnMgPSBmb3J3YXJkKFxuICBnZXRBc3NlcnREZWNsYXJlZElkZW50aWZpZXJzSW1wbGVtZW50YXRpb24sXG4pO1xuXG4vKiogRXh0cmFjdHMgYGFjdHVhbGAgYW5kIGBleHBlY3RlZGAgaWRlbnRpZmllcnMgZnJvbSBhc3NlcnRpb24gc3RhdGVtZW50cy4gKi9cbmNvbnN0IGdldEFzc2VydGlvbklkZW50aWZpZXJzID0gZm9yd2FyZChnZXRBc3NlcnRpb25JZGVudGlmaWVyc0ltcGxlbWVudGF0aW9uKTtcblxuLyoqIEZsYXR0ZW5zIHNlY3Rpb24gY29tbWVudHMgaW50byBvbmUgZW50cnkgcGVyIHJlc29sdmVkIHBoYXNlLiAqL1xuY29uc3QgZ2V0RmxhdHRlbmVkU2VjdGlvbnMgPSBmb3J3YXJkKGdldEZsYXR0ZW5lZFNlY3Rpb25zSW1wbGVtZW50YXRpb24pO1xuXG4vKiogUmV0dXJucyB0aGUgaW5kZW50YXRpb24gcHJlZml4IHRoYXQgYXBwZWFycyBiZWZvcmUgYSBnaXZlbiBvZmZzZXQuICovXG5jb25zdCBnZXRJbmRlbnRhdGlvbkF0T2Zmc2V0ID0gZm9yd2FyZChnZXRJbmRlbnRhdGlvbkF0T2Zmc2V0SW1wbGVtZW50YXRpb24pO1xuXG4vKiogUmVzb2x2ZXMgdGhlIHN0YXJ0aW5nIHJhbmdlIGZvciBhIHNwZWNpZmljIHNvdXJjZSBsaW5lLiAqL1xuY29uc3QgZ2V0TGluZVN0YXJ0UmFuZ2UgPSBmb3J3YXJkKGdldExpbmVTdGFydFJhbmdlSW1wbGVtZW50YXRpb24pO1xuXG4vKiogRmlsdGVycyBzZWN0aW9uIGNvbW1lbnRzIGRvd24gdG8gcGhhc2UgYm91bmRhcmllcyB0aGF0IG1hdHRlciBhZnRlciBBcnJhbmdlLiAqL1xuY29uc3QgZ2V0UGhhc2VCb3VuZGFyeUNvbW1lbnRzID0gZm9yd2FyZChcbiAgZ2V0UGhhc2VCb3VuZGFyeUNvbW1lbnRzSW1wbGVtZW50YXRpb24sXG4pO1xuXG4vKiogUGFyc2VzIEFBQSBwaGFzZXMgZnJvbSBhIHNlY3Rpb24gY29tbWVudCB2YWx1ZS4gKi9cbmNvbnN0IGdldFNlY3Rpb25QaGFzZXMgPSBmb3J3YXJkKGdldFNlY3Rpb25QaGFzZXNJbXBsZW1lbnRhdGlvbik7XG5cbi8qKiBEZXRlY3RzIHdoZXRoZXIgYSBzdGF0ZW1lbnQgY29udGFpbnMgYW55IGFzc2VydGlvbiBjYWxsLiAqL1xuY29uc3QgaGFzQXNzZXJ0aW9uID0gZm9yd2FyZChoYXNBc3NlcnRpb25JbXBsZW1lbnRhdGlvbik7XG5cbi8qKiBEZXRlY3RzIGFzeW5jaHJvbm91cyBiZWhhdmlvciBzdWNoIGFzIGF3YWl0cywgcHJvbWlzZSBjaGFpbnMsIGFuZCBwcm9taXNlcy4gKi9cbmNvbnN0IGhhc0FzeW5jTG9naWMgPSBmb3J3YXJkKGhhc0FzeW5jTG9naWNJbXBsZW1lbnRhdGlvbik7XG5cbi8qKiBEZXRlY3RzIHdoZXRoZXIgYSBzdGF0ZW1lbnQgY29udGFpbnMgYW4gYGF3YWl0YCBleHByZXNzaW9uLiAqL1xuY29uc3QgaGFzQXdhaXQgPSBmb3J3YXJkKGhhc0F3YWl0SW1wbGVtZW50YXRpb24pO1xuXG4vKiogQ2hlY2tzIHdoZXRoZXIgYSBzZWN0aW9uIGNvbW1lbnQgaXMgc2VwYXJhdGVkIGJ5IGEgYmxhbmsgbGluZS4gKi9cbmNvbnN0IGhhc0JsYW5rTGluZUJlZm9yZUNvbW1lbnQgPSBmb3J3YXJkKFxuICBoYXNCbGFua0xpbmVCZWZvcmVDb21tZW50SW1wbGVtZW50YXRpb24sXG4pO1xuXG4vKiogRGV0ZWN0cyBBY3QgZXhwcmVzc2lvbnMgd2hvc2UgcmVzdWx0IHNob3VsZCB1c3VhbGx5IGJlIGNhcHR1cmVkLiAqL1xuY29uc3QgaGFzQ2FwdHVyYWJsZUFjdFJlc3VsdCA9IGZvcndhcmQoaGFzQ2FwdHVyYWJsZUFjdFJlc3VsdEltcGxlbWVudGF0aW9uKTtcblxuLyoqIERldGVjdHMgbXV0YXRpb24tb3JpZW50ZWQgc3RhdGVtZW50cyBhbmQgYXJyYXkgbXV0YXRvciBjYWxscy4gKi9cbmNvbnN0IGhhc011dGF0aW9uID0gZm9yd2FyZChoYXNNdXRhdGlvbkltcGxlbWVudGF0aW9uKTtcblxuLyoqIERldGVjdHMgc3RhdGVtZW50cyB0aGF0IHJlcHJlc2VudCBtZWFuaW5nZnVsIEFjdCBzdGVwcy4gKi9cbmNvbnN0IGlzTWVhbmluZ2Z1bEFjdFN0YXRlbWVudCA9IGZvcndhcmQoXG4gIGlzTWVhbmluZ2Z1bEFjdFN0YXRlbWVudEltcGxlbWVudGF0aW9uLFxuKTtcblxuLyoqIERldGVjdHMgc3RhdGVtZW50cyB0aGF0IHNob3VsZCBzdGF5IGluIEFycmFuZ2UgYXMgc2V0dXAgaGVscGVycy4gKi9cbmNvbnN0IGlzU2V0dXBMaWtlU3RhdGVtZW50ID0gZm9yd2FyZChpc1NldHVwTGlrZVN0YXRlbWVudEltcGxlbWVudGF0aW9uKTtcblxuLyoqIERldGVjdHMgd2hldGhlciBhIHN0YXRlbWVudCBzaGFwZSBpcyB2YWxpZCBpbnNpZGUgQXNzZXJ0LiAqL1xuY29uc3QgaXNWYWxpZEFzc2VydFN0YXRlbWVudCA9IGZvcndhcmQoaXNWYWxpZEFzc2VydFN0YXRlbWVudEltcGxlbWVudGF0aW9uKTtcblxuLyoqIENoZWNrcyB3aGV0aGVyIGFuIGlkZW50aWZpZXIgbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgQUFBIG5hbWluZyBwcmVmaXguICovXG5jb25zdCB1c2VzUHJlZml4ID0gZm9yd2FyZCh1c2VzUHJlZml4SW1wbGVtZW50YXRpb24pO1xuXG5leHBvcnQge1xuICBhYWFQaGFzZU9yZGVyLFxuICBhbmFseXplVGVzdEJsb2NrLFxuICBjb3VudEFjdFN0YXRlbWVudHMsXG4gIGdldEFzc2VydERlY2xhcmVkSWRlbnRpZmllcnMsXG4gIGdldEFzc2VydGlvbklkZW50aWZpZXJzLFxuICBnZXRGbGF0dGVuZWRTZWN0aW9ucyxcbiAgZ2V0SW5kZW50YXRpb25BdE9mZnNldCxcbiAgZ2V0TGluZVN0YXJ0UmFuZ2UsXG4gIGdldFBoYXNlQm91bmRhcnlDb21tZW50cyxcbiAgZ2V0U2VjdGlvblBoYXNlcyxcbiAgaGFzQXNzZXJ0aW9uLFxuICBoYXNBc3luY0xvZ2ljLFxuICBoYXNBd2FpdCxcbiAgaGFzQmxhbmtMaW5lQmVmb3JlQ29tbWVudCxcbiAgaGFzQ2FwdHVyYWJsZUFjdFJlc3VsdCxcbiAgaGFzTXV0YXRpb24sXG4gIGlzTWVhbmluZ2Z1bEFjdFN0YXRlbWVudCxcbiAgaXNTZXR1cExpa2VTdGF0ZW1lbnQsXG4gIGlzVmFsaWRBc3NlcnRTdGF0ZW1lbnQsXG4gIHVzZXNQcmVmaXgsXG59O1xuIl19
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type * as ESTree from "estree";
|
|
2
|
+
import type { LocatedComment, SourceComment } from "./types.js";
|
|
3
|
+
/** Array mutator methods that imply observable state changes. */
|
|
4
|
+
declare const arrayMutationMethods: Set<string>;
|
|
5
|
+
/** Names that usually signal Arrange-oriented helper calls. */
|
|
6
|
+
declare const setupLikeNames: RegExp;
|
|
7
|
+
/** Call names that should be treated as utility operations instead of Act steps. */
|
|
8
|
+
declare const utilityMethodNames: Set<string>;
|
|
9
|
+
/** Method names that usually behave like void side-effect helpers. */
|
|
10
|
+
declare const voidLikeMethodNames: Set<string>;
|
|
11
|
+
/** Name pattern used for void-like method detection. */
|
|
12
|
+
declare const voidLikeNamePattern: RegExp;
|
|
13
|
+
/**
|
|
14
|
+
* Gets an expression name when it can be resolved statically.
|
|
15
|
+
* @param expression Input expression value.
|
|
16
|
+
* @returns Return value output.
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* getExpressionName(expression);
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
declare function getExpressionName(expression: ESTree.Expression | ESTree.PrivateIdentifier | ESTree.Super): string | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Gets a callee name for a call or construction expression.
|
|
25
|
+
* @param expression Input expression value.
|
|
26
|
+
* @returns Return value output.
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* getInvokedName(expression);
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
declare function getInvokedName(expression: ESTree.CallExpression | ESTree.NewExpression): string | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Checks whether an expression is callable.
|
|
35
|
+
* @param expression Input expression value.
|
|
36
|
+
* @returns Return value output.
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* isCallableExpression(expression);
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
declare function isCallableExpression(expression: ESTree.Expression | undefined): expression is ESTree.CallExpression | ESTree.NewExpression;
|
|
43
|
+
/**
|
|
44
|
+
* Checks whether a comment has location metadata.
|
|
45
|
+
* @param comment Input comment value.
|
|
46
|
+
* @returns Return value output.
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* isLocatedComment(comment);
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
declare function isLocatedComment(comment: SourceComment): comment is LocatedComment;
|
|
53
|
+
/**
|
|
54
|
+
* Checks whether a range is fully contained within another range.
|
|
55
|
+
* @param range Input range value.
|
|
56
|
+
* @param container Input container value.
|
|
57
|
+
* @returns Return value output.
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* isRangeWithin(range, container);
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
declare function isRangeWithin(range: [number, number], container: [number, number]): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Checks whether a constructor call should be treated as setup.
|
|
66
|
+
* @param expression Input expression value.
|
|
67
|
+
* @param calleeName Input calleeName value.
|
|
68
|
+
* @returns Return value output.
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* isUtilityConstructor(expression, "Map");
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
declare function isUtilityConstructor(expression: ESTree.CallExpression | ESTree.NewExpression, calleeName: string): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Checks whether a callee name looks utility-like.
|
|
77
|
+
* @param calleeName Input calleeName value.
|
|
78
|
+
* @returns Return value output.
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* isUtilityNamedCall("setupFixture");
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
declare function isUtilityNamedCall(calleeName: string): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Checks whether a call uses a utility namespace.
|
|
87
|
+
* @param expression Input expression value.
|
|
88
|
+
* @returns Return value output.
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* isUtilityNamespaceCall(expression);
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
declare function isUtilityNamespaceCall(expression: ESTree.CallExpression | ESTree.NewExpression): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Visits an ESTree node graph while ignoring cycles.
|
|
97
|
+
* @param node Input node value.
|
|
98
|
+
* @param callback Input callback value.
|
|
99
|
+
* @param seenNodes Input seenNodes value.
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* visitNode(node, () => {});
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
declare function visitNode(node: ESTree.Node, callback: (node: ESTree.Node) => void, seenNodes?: WeakSet<object>): void;
|
|
106
|
+
export { arrayMutationMethods, getExpressionName, getInvokedName, isCallableExpression, isLocatedComment, isRangeWithin, isUtilityConstructor, isUtilityNamedCall, isUtilityNamespaceCall, setupLikeNames, utilityMethodNames, visitNode, voidLikeMethodNames, voidLikeNamePattern, };
|
|
107
|
+
//# sourceMappingURL=analyzer.super.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzer.super.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/aaa/analyzer.super.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7D,iEAAiE;AACjE,QAAA,MAAM,oBAAoB,aAUxB,CAAC;AAEH,+DAA+D;AAC/D,QAAA,MAAM,cAAc,QACsE,CAAC;AAE3F,oFAAoF;AACpF,QAAA,MAAM,kBAAkB,aAiBtB,CAAC;AAEH,sEAAsE;AACtE,QAAA,MAAM,mBAAmB,aAavB,CAAC;AAEH,wDAAwD;AACxD,QAAA,MAAM,mBAAmB,QACwD,CAAC;AAQlF;;;;;;;;GAQG;AACH,iBAAS,iBAAiB,CACxB,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,GACtE,MAAM,GAAG,SAAS,CAiBpB;AAED;;;;;;;;GAQG;AACH,iBAAS,cAAc,CACrB,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,GACvD,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAC3B,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GACxC,UAAU,IAAI,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAK5D;AAED;;;;;;;;GAQG;AACH,iBAAS,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,IAAI,cAAc,CAI3E;AAoBD;;;;;;;;;GASG;AACH,iBAAS,aAAa,CACpB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACvB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAET;AAED;;;;;;;;;GASG;AACH,iBAAS,oBAAoB,CAC3B,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,EACxD,UAAU,EAAE,MAAM,GACjB,OAAO,CAQT;AAED;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAC7B,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,GACvD,OAAO,CAMT;AAED;;;;;;;;;GASG;AACH,iBAAS,SAAS,CAChB,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,EACrC,SAAS,kBAAwB,GAChC,IAAI,CAaN;AAgCD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,mBAAmB,EACnB,mBAAmB,GACpB,CAAC"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/* eslint max-lines: ["error", 320] -- Mandatory multiline JSDoc for these shared helper functions pushes this split file over the default limit. */
|
|
2
|
+
/** Array mutator methods that imply observable state changes. */
|
|
3
|
+
const arrayMutationMethods = new Set([
|
|
4
|
+
"copyWithin",
|
|
5
|
+
"fill",
|
|
6
|
+
"pop",
|
|
7
|
+
"push",
|
|
8
|
+
"reverse",
|
|
9
|
+
"shift",
|
|
10
|
+
"sort",
|
|
11
|
+
"splice",
|
|
12
|
+
"unshift",
|
|
13
|
+
]);
|
|
14
|
+
/** Names that usually signal Arrange-oriented helper calls. */
|
|
15
|
+
const setupLikeNames = /^(?:arrange|build|create|fixture|get|given|make|mock|parse|seed|setup|spy|stub|write)/u;
|
|
16
|
+
/** Call names that should be treated as utility operations instead of Act steps. */
|
|
17
|
+
const utilityMethodNames = new Set([
|
|
18
|
+
"advanceTimersByTime",
|
|
19
|
+
"clearAllMocks",
|
|
20
|
+
"debug",
|
|
21
|
+
"fn",
|
|
22
|
+
"info",
|
|
23
|
+
"join",
|
|
24
|
+
"log",
|
|
25
|
+
"mockImplementation",
|
|
26
|
+
"mockRejectedValue",
|
|
27
|
+
"mockResolvedValue",
|
|
28
|
+
"mockReturnValue",
|
|
29
|
+
"push",
|
|
30
|
+
"resetAllMocks",
|
|
31
|
+
"resolve",
|
|
32
|
+
"useFakeTimers",
|
|
33
|
+
"warn",
|
|
34
|
+
]);
|
|
35
|
+
/** Method names that usually behave like void side-effect helpers. */
|
|
36
|
+
const voidLikeMethodNames = new Set([
|
|
37
|
+
"clear",
|
|
38
|
+
"debug",
|
|
39
|
+
"dispatch",
|
|
40
|
+
"emit",
|
|
41
|
+
"info",
|
|
42
|
+
"log",
|
|
43
|
+
"print",
|
|
44
|
+
"publish",
|
|
45
|
+
"reset",
|
|
46
|
+
"set",
|
|
47
|
+
"trigger",
|
|
48
|
+
"warn",
|
|
49
|
+
]);
|
|
50
|
+
/** Name pattern used for void-like method detection. */
|
|
51
|
+
const voidLikeNamePattern = /^(?:clear|debug|dispatch|emit|info|log|print|publish|reset|set|trigger|warn)/u;
|
|
52
|
+
/**
|
|
53
|
+
* Gets an expression name when it can be resolved statically.
|
|
54
|
+
* @param expression Input expression value.
|
|
55
|
+
* @returns Return value output.
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* getExpressionName(expression);
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
function getExpressionName(expression) {
|
|
62
|
+
if (expression.type === "Super") {
|
|
63
|
+
return void 0;
|
|
64
|
+
}
|
|
65
|
+
if (expression.type === "Identifier") {
|
|
66
|
+
return expression.name;
|
|
67
|
+
}
|
|
68
|
+
if (expression.type === "MemberExpression" &&
|
|
69
|
+
expression.property.type === "Identifier") {
|
|
70
|
+
return expression.property.name;
|
|
71
|
+
}
|
|
72
|
+
return void 0;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Gets a callee name for a call or construction expression.
|
|
76
|
+
* @param expression Input expression value.
|
|
77
|
+
* @returns Return value output.
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* getInvokedName(expression);
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
function getInvokedName(expression) {
|
|
84
|
+
return getExpressionName(expression.callee);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Checks whether an expression is callable.
|
|
88
|
+
* @param expression Input expression value.
|
|
89
|
+
* @returns Return value output.
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* isCallableExpression(expression);
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
function isCallableExpression(expression) {
|
|
96
|
+
return (expression?.type === "CallExpression" ||
|
|
97
|
+
expression?.type === "NewExpression");
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Checks whether a comment has location metadata.
|
|
101
|
+
* @param comment Input comment value.
|
|
102
|
+
* @returns Return value output.
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* isLocatedComment(comment);
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
function isLocatedComment(comment) {
|
|
109
|
+
return (comment.loc !== null && comment.loc !== void 0 && comment.range !== void 0);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Checks whether a value is an ESTree node.
|
|
113
|
+
* @param value Input value value.
|
|
114
|
+
* @returns Return value output.
|
|
115
|
+
* @example
|
|
116
|
+
* ```typescript
|
|
117
|
+
* isNode(value);
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
function isNode(value) {
|
|
121
|
+
return (typeof value === "object" &&
|
|
122
|
+
value !== null &&
|
|
123
|
+
"type" in value &&
|
|
124
|
+
typeof value.type === "string");
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Checks whether a range is fully contained within another range.
|
|
128
|
+
* @param range Input range value.
|
|
129
|
+
* @param container Input container value.
|
|
130
|
+
* @returns Return value output.
|
|
131
|
+
* @example
|
|
132
|
+
* ```typescript
|
|
133
|
+
* isRangeWithin(range, container);
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
function isRangeWithin(range, container) {
|
|
137
|
+
return range[0] >= container[0] && range[1] <= container[1];
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Checks whether a constructor call should be treated as setup.
|
|
141
|
+
* @param expression Input expression value.
|
|
142
|
+
* @param calleeName Input calleeName value.
|
|
143
|
+
* @returns Return value output.
|
|
144
|
+
* @example
|
|
145
|
+
* ```typescript
|
|
146
|
+
* isUtilityConstructor(expression, "Map");
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
function isUtilityConstructor(expression, calleeName) {
|
|
150
|
+
return (expression.type === "NewExpression" &&
|
|
151
|
+
(calleeName === "Map" ||
|
|
152
|
+
calleeName === "Set" ||
|
|
153
|
+
calleeName === "SourceCode" ||
|
|
154
|
+
calleeName === "ESLint"));
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Checks whether a callee name looks utility-like.
|
|
158
|
+
* @param calleeName Input calleeName value.
|
|
159
|
+
* @returns Return value output.
|
|
160
|
+
* @example
|
|
161
|
+
* ```typescript
|
|
162
|
+
* isUtilityNamedCall("setupFixture");
|
|
163
|
+
* ```
|
|
164
|
+
*/
|
|
165
|
+
function isUtilityNamedCall(calleeName) {
|
|
166
|
+
return utilityMethodNames.has(calleeName) || setupLikeNames.test(calleeName);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Checks whether a call uses a utility namespace.
|
|
170
|
+
* @param expression Input expression value.
|
|
171
|
+
* @returns Return value output.
|
|
172
|
+
* @example
|
|
173
|
+
* ```typescript
|
|
174
|
+
* isUtilityNamespaceCall(expression);
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
function isUtilityNamespaceCall(expression) {
|
|
178
|
+
return (expression.callee.type === "MemberExpression" &&
|
|
179
|
+
expression.callee.object.type === "Identifier" &&
|
|
180
|
+
["console", "vi"].includes(expression.callee.object.name));
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Visits an ESTree node graph while ignoring cycles.
|
|
184
|
+
* @param node Input node value.
|
|
185
|
+
* @param callback Input callback value.
|
|
186
|
+
* @param seenNodes Input seenNodes value.
|
|
187
|
+
* @example
|
|
188
|
+
* ```typescript
|
|
189
|
+
* visitNode(node, () => {});
|
|
190
|
+
* ```
|
|
191
|
+
*/
|
|
192
|
+
function visitNode(node, callback, seenNodes = new WeakSet()) {
|
|
193
|
+
if (seenNodes.has(node)) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
seenNodes.add(node);
|
|
197
|
+
callback(node);
|
|
198
|
+
for (const [key, value] of Object.entries(node)) {
|
|
199
|
+
if (key !== "parent") {
|
|
200
|
+
visitValue(value, callback, seenNodes);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Visits child values that may contain nested ESTree nodes.
|
|
206
|
+
* @param value Input value value.
|
|
207
|
+
* @param callback Input callback value.
|
|
208
|
+
* @param seenNodes Input seenNodes value.
|
|
209
|
+
* @example
|
|
210
|
+
* ```typescript
|
|
211
|
+
* visitValue(value, () => {}, new WeakSet<object>());
|
|
212
|
+
* ```
|
|
213
|
+
*/
|
|
214
|
+
function visitValue(value, callback, seenNodes) {
|
|
215
|
+
if (Array.isArray(value)) {
|
|
216
|
+
for (const item of value) {
|
|
217
|
+
if (isNode(item)) {
|
|
218
|
+
visitNode(item, callback, seenNodes);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
if (isNode(value)) {
|
|
224
|
+
visitNode(value, callback, seenNodes);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
export { arrayMutationMethods, getExpressionName, getInvokedName, isCallableExpression, isLocatedComment, isRangeWithin, isUtilityConstructor, isUtilityNamedCall, isUtilityNamespaceCall, setupLikeNames, utilityMethodNames, visitNode, voidLikeMethodNames, voidLikeNamePattern, };
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZXIuc3VwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvYWFhL2FuYWx5emVyLnN1cGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9KQUFvSjtBQU1wSixpRUFBaUU7QUFDakUsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUNuQyxZQUFZO0lBQ1osTUFBTTtJQUNOLEtBQUs7SUFDTCxNQUFNO0lBQ04sU0FBUztJQUNULE9BQU87SUFDUCxNQUFNO0lBQ04sUUFBUTtJQUNSLFNBQVM7Q0FDVixDQUFDLENBQUM7QUFFSCwrREFBK0Q7QUFDL0QsTUFBTSxjQUFjLEdBQ2xCLHdGQUF3RixDQUFDO0FBRTNGLG9GQUFvRjtBQUNwRixNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ2pDLHFCQUFxQjtJQUNyQixlQUFlO0lBQ2YsT0FBTztJQUNQLElBQUk7SUFDSixNQUFNO0lBQ04sTUFBTTtJQUNOLEtBQUs7SUFDTCxvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsTUFBTTtJQUNOLGVBQWU7SUFDZixTQUFTO0lBQ1QsZUFBZTtJQUNmLE1BQU07Q0FDUCxDQUFDLENBQUM7QUFFSCxzRUFBc0U7QUFDdEUsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUNsQyxPQUFPO0lBQ1AsT0FBTztJQUNQLFVBQVU7SUFDVixNQUFNO0lBQ04sTUFBTTtJQUNOLEtBQUs7SUFDTCxPQUFPO0lBQ1AsU0FBUztJQUNULE9BQU87SUFDUCxLQUFLO0lBQ0wsU0FBUztJQUNULE1BQU07Q0FDUCxDQUFDLENBQUM7QUFFSCx3REFBd0Q7QUFDeEQsTUFBTSxtQkFBbUIsR0FDdkIsK0VBQStFLENBQUM7QUFRbEY7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGlCQUFpQixDQUN4QixVQUF1RTtJQUV2RSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7UUFDaEMsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRSxDQUFDO1FBQ3JDLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFDRSxVQUFVLENBQUMsSUFBSSxLQUFLLGtCQUFrQjtRQUN0QyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQ3pDLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsY0FBYyxDQUNyQixVQUF3RDtJQUV4RCxPQUFPLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLG9CQUFvQixDQUMzQixVQUF5QztJQUV6QyxPQUFPLENBQ0wsVUFBVSxFQUFFLElBQUksS0FBSyxnQkFBZ0I7UUFDckMsVUFBVSxFQUFFLElBQUksS0FBSyxlQUFlLENBQ3JDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLE9BQXNCO0lBQzlDLE9BQU8sQ0FDTCxPQUFPLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQzNFLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLE1BQU0sQ0FBQyxLQUFjO0lBQzVCLE9BQU8sQ0FDTCxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQ3pCLEtBQUssS0FBSyxJQUFJO1FBQ2QsTUFBTSxJQUFJLEtBQUs7UUFDZixPQUFRLEtBQXVCLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FDbEQsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGFBQWEsQ0FDcEIsS0FBdUIsRUFDdkIsU0FBMkI7SUFFM0IsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsb0JBQW9CLENBQzNCLFVBQXdELEVBQ3hELFVBQWtCO0lBRWxCLE9BQU8sQ0FDTCxVQUFVLENBQUMsSUFBSSxLQUFLLGVBQWU7UUFDbkMsQ0FBQyxVQUFVLEtBQUssS0FBSztZQUNuQixVQUFVLEtBQUssS0FBSztZQUNwQixVQUFVLEtBQUssWUFBWTtZQUMzQixVQUFVLEtBQUssUUFBUSxDQUFDLENBQzNCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGtCQUFrQixDQUFDLFVBQWtCO0lBQzVDLE9BQU8sa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDL0UsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FDN0IsVUFBd0Q7SUFFeEQsT0FBTyxDQUNMLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGtCQUFrQjtRQUM3QyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssWUFBWTtRQUM5QyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQzFELENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxTQUFTLENBQ2hCLElBQWlCLEVBQ2pCLFFBQXFDLEVBQ3JDLFlBQVksSUFBSSxPQUFPLEVBQVU7SUFFakMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTztJQUNULENBQUM7SUFFRCxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVmLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDaEQsSUFBSSxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDckIsVUFBVSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxVQUFVLENBQ2pCLEtBQWMsRUFDZCxRQUFxQyxFQUNyQyxTQUEwQjtJQUUxQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2pCLFNBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTztJQUNULENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xCLFNBQVMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7QUFDSCxDQUFDO0FBRUQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsU0FBUyxFQUNULG1CQUFtQixFQUNuQixtQkFBbUIsR0FDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBtYXgtbGluZXM6IFtcImVycm9yXCIsIDMyMF0gLS0gTWFuZGF0b3J5IG11bHRpbGluZSBKU0RvYyBmb3IgdGhlc2Ugc2hhcmVkIGhlbHBlciBmdW5jdGlvbnMgcHVzaGVzIHRoaXMgc3BsaXQgZmlsZSBvdmVyIHRoZSBkZWZhdWx0IGxpbWl0LiAqL1xyXG5cclxuaW1wb3J0IHR5cGUgKiBhcyBFU1RyZWUgZnJvbSBcImVzdHJlZVwiO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBMb2NhdGVkQ29tbWVudCwgU291cmNlQ29tbWVudCB9IGZyb20gXCIuL3R5cGVzXCI7XHJcblxyXG4vKiogQXJyYXkgbXV0YXRvciBtZXRob2RzIHRoYXQgaW1wbHkgb2JzZXJ2YWJsZSBzdGF0ZSBjaGFuZ2VzLiAqL1xyXG5jb25zdCBhcnJheU11dGF0aW9uTWV0aG9kcyA9IG5ldyBTZXQoW1xyXG4gIFwiY29weVdpdGhpblwiLFxyXG4gIFwiZmlsbFwiLFxyXG4gIFwicG9wXCIsXHJcbiAgXCJwdXNoXCIsXHJcbiAgXCJyZXZlcnNlXCIsXHJcbiAgXCJzaGlmdFwiLFxyXG4gIFwic29ydFwiLFxyXG4gIFwic3BsaWNlXCIsXHJcbiAgXCJ1bnNoaWZ0XCIsXHJcbl0pO1xyXG5cclxuLyoqIE5hbWVzIHRoYXQgdXN1YWxseSBzaWduYWwgQXJyYW5nZS1vcmllbnRlZCBoZWxwZXIgY2FsbHMuICovXHJcbmNvbnN0IHNldHVwTGlrZU5hbWVzID1cclxuICAvXig/OmFycmFuZ2V8YnVpbGR8Y3JlYXRlfGZpeHR1cmV8Z2V0fGdpdmVufG1ha2V8bW9ja3xwYXJzZXxzZWVkfHNldHVwfHNweXxzdHVifHdyaXRlKS91O1xyXG5cclxuLyoqIENhbGwgbmFtZXMgdGhhdCBzaG91bGQgYmUgdHJlYXRlZCBhcyB1dGlsaXR5IG9wZXJhdGlvbnMgaW5zdGVhZCBvZiBBY3Qgc3RlcHMuICovXHJcbmNvbnN0IHV0aWxpdHlNZXRob2ROYW1lcyA9IG5ldyBTZXQoW1xyXG4gIFwiYWR2YW5jZVRpbWVyc0J5VGltZVwiLFxyXG4gIFwiY2xlYXJBbGxNb2Nrc1wiLFxyXG4gIFwiZGVidWdcIixcclxuICBcImZuXCIsXHJcbiAgXCJpbmZvXCIsXHJcbiAgXCJqb2luXCIsXHJcbiAgXCJsb2dcIixcclxuICBcIm1vY2tJbXBsZW1lbnRhdGlvblwiLFxyXG4gIFwibW9ja1JlamVjdGVkVmFsdWVcIixcclxuICBcIm1vY2tSZXNvbHZlZFZhbHVlXCIsXHJcbiAgXCJtb2NrUmV0dXJuVmFsdWVcIixcclxuICBcInB1c2hcIixcclxuICBcInJlc2V0QWxsTW9ja3NcIixcclxuICBcInJlc29sdmVcIixcclxuICBcInVzZUZha2VUaW1lcnNcIixcclxuICBcIndhcm5cIixcclxuXSk7XHJcblxyXG4vKiogTWV0aG9kIG5hbWVzIHRoYXQgdXN1YWxseSBiZWhhdmUgbGlrZSB2b2lkIHNpZGUtZWZmZWN0IGhlbHBlcnMuICovXHJcbmNvbnN0IHZvaWRMaWtlTWV0aG9kTmFtZXMgPSBuZXcgU2V0KFtcclxuICBcImNsZWFyXCIsXHJcbiAgXCJkZWJ1Z1wiLFxyXG4gIFwiZGlzcGF0Y2hcIixcclxuICBcImVtaXRcIixcclxuICBcImluZm9cIixcclxuICBcImxvZ1wiLFxyXG4gIFwicHJpbnRcIixcclxuICBcInB1Ymxpc2hcIixcclxuICBcInJlc2V0XCIsXHJcbiAgXCJzZXRcIixcclxuICBcInRyaWdnZXJcIixcclxuICBcIndhcm5cIixcclxuXSk7XHJcblxyXG4vKiogTmFtZSBwYXR0ZXJuIHVzZWQgZm9yIHZvaWQtbGlrZSBtZXRob2QgZGV0ZWN0aW9uLiAqL1xyXG5jb25zdCB2b2lkTGlrZU5hbWVQYXR0ZXJuID1cclxuICAvXig/OmNsZWFyfGRlYnVnfGRpc3BhdGNofGVtaXR8aW5mb3xsb2d8cHJpbnR8cHVibGlzaHxyZXNldHxzZXR8dHJpZ2dlcnx3YXJuKS91O1xyXG5cclxuLyoqIE9iamVjdCBzaGFwZSB1c2VkIGZvciBFU1RyZWUgbm9kZSBuYXJyb3dpbmcuICovXHJcbmludGVyZmFjZSBOb2RlTGlrZVZhbHVlIHtcclxuICAvKiogUG90ZW50aWFsIEVTVHJlZSBub2RlIHR5cGUgZmllbGQuICovXHJcbiAgdHlwZT86IHVua25vd247XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIGFuIGV4cHJlc3Npb24gbmFtZSB3aGVuIGl0IGNhbiBiZSByZXNvbHZlZCBzdGF0aWNhbGx5LlxyXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBJbnB1dCBleHByZXNzaW9uIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGdldEV4cHJlc3Npb25OYW1lKGV4cHJlc3Npb24pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldEV4cHJlc3Npb25OYW1lKFxyXG4gIGV4cHJlc3Npb246IEVTVHJlZS5FeHByZXNzaW9uIHwgRVNUcmVlLlByaXZhdGVJZGVudGlmaWVyIHwgRVNUcmVlLlN1cGVyLFxyXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gIGlmIChleHByZXNzaW9uLnR5cGUgPT09IFwiU3VwZXJcIikge1xyXG4gICAgcmV0dXJuIHZvaWQgMDtcclxuICB9XHJcblxyXG4gIGlmIChleHByZXNzaW9uLnR5cGUgPT09IFwiSWRlbnRpZmllclwiKSB7XHJcbiAgICByZXR1cm4gZXhwcmVzc2lvbi5uYW1lO1xyXG4gIH1cclxuXHJcbiAgaWYgKFxyXG4gICAgZXhwcmVzc2lvbi50eXBlID09PSBcIk1lbWJlckV4cHJlc3Npb25cIiAmJlxyXG4gICAgZXhwcmVzc2lvbi5wcm9wZXJ0eS50eXBlID09PSBcIklkZW50aWZpZXJcIlxyXG4gICkge1xyXG4gICAgcmV0dXJuIGV4cHJlc3Npb24ucHJvcGVydHkubmFtZTtcclxuICB9XHJcblxyXG4gIHJldHVybiB2b2lkIDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIGEgY2FsbGVlIG5hbWUgZm9yIGEgY2FsbCBvciBjb25zdHJ1Y3Rpb24gZXhwcmVzc2lvbi5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBnZXRJbnZva2VkTmFtZShleHByZXNzaW9uKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRJbnZva2VkTmFtZShcclxuICBleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCBFU1RyZWUuTmV3RXhwcmVzc2lvbixcclxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICByZXR1cm4gZ2V0RXhwcmVzc2lvbk5hbWUoZXhwcmVzc2lvbi5jYWxsZWUpO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYW4gZXhwcmVzc2lvbiBpcyBjYWxsYWJsZS5cclxuICogQHBhcmFtIGV4cHJlc3Npb24gSW5wdXQgZXhwcmVzc2lvbiB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc0NhbGxhYmxlRXhwcmVzc2lvbihleHByZXNzaW9uKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc0NhbGxhYmxlRXhwcmVzc2lvbihcclxuICBleHByZXNzaW9uOiBFU1RyZWUuRXhwcmVzc2lvbiB8IHVuZGVmaW5lZCxcclxuKTogZXhwcmVzc2lvbiBpcyBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCBFU1RyZWUuTmV3RXhwcmVzc2lvbiB7XHJcbiAgcmV0dXJuIChcclxuICAgIGV4cHJlc3Npb24/LnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIiB8fFxyXG4gICAgZXhwcmVzc2lvbj8udHlwZSA9PT0gXCJOZXdFeHByZXNzaW9uXCJcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYSBjb21tZW50IGhhcyBsb2NhdGlvbiBtZXRhZGF0YS5cclxuICogQHBhcmFtIGNvbW1lbnQgSW5wdXQgY29tbWVudCB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc0xvY2F0ZWRDb21tZW50KGNvbW1lbnQpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzTG9jYXRlZENvbW1lbnQoY29tbWVudDogU291cmNlQ29tbWVudCk6IGNvbW1lbnQgaXMgTG9jYXRlZENvbW1lbnQge1xyXG4gIHJldHVybiAoXHJcbiAgICBjb21tZW50LmxvYyAhPT0gbnVsbCAmJiBjb21tZW50LmxvYyAhPT0gdm9pZCAwICYmIGNvbW1lbnQucmFuZ2UgIT09IHZvaWQgMFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIHZhbHVlIGlzIGFuIEVTVHJlZSBub2RlLlxyXG4gKiBAcGFyYW0gdmFsdWUgSW5wdXQgdmFsdWUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNOb2RlKHZhbHVlKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc05vZGUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBFU1RyZWUuTm9kZSB7XHJcbiAgcmV0dXJuIChcclxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJlxyXG4gICAgdmFsdWUgIT09IG51bGwgJiZcclxuICAgIFwidHlwZVwiIGluIHZhbHVlICYmXHJcbiAgICB0eXBlb2YgKHZhbHVlIGFzIE5vZGVMaWtlVmFsdWUpLnR5cGUgPT09IFwic3RyaW5nXCJcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgYSByYW5nZSBpcyBmdWxseSBjb250YWluZWQgd2l0aGluIGFub3RoZXIgcmFuZ2UuXHJcbiAqIEBwYXJhbSByYW5nZSBJbnB1dCByYW5nZSB2YWx1ZS5cclxuICogQHBhcmFtIGNvbnRhaW5lciBJbnB1dCBjb250YWluZXIgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNSYW5nZVdpdGhpbihyYW5nZSwgY29udGFpbmVyKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc1JhbmdlV2l0aGluKFxyXG4gIHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdLFxyXG4gIGNvbnRhaW5lcjogW251bWJlciwgbnVtYmVyXSxcclxuKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHJhbmdlWzBdID49IGNvbnRhaW5lclswXSAmJiByYW5nZVsxXSA8PSBjb250YWluZXJbMV07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIGNvbnN0cnVjdG9yIGNhbGwgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgc2V0dXAuXHJcbiAqIEBwYXJhbSBleHByZXNzaW9uIElucHV0IGV4cHJlc3Npb24gdmFsdWUuXHJcbiAqIEBwYXJhbSBjYWxsZWVOYW1lIElucHV0IGNhbGxlZU5hbWUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNVdGlsaXR5Q29uc3RydWN0b3IoZXhwcmVzc2lvbiwgXCJNYXBcIik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNVdGlsaXR5Q29uc3RydWN0b3IoXHJcbiAgZXhwcmVzc2lvbjogRVNUcmVlLkNhbGxFeHByZXNzaW9uIHwgRVNUcmVlLk5ld0V4cHJlc3Npb24sXHJcbiAgY2FsbGVlTmFtZTogc3RyaW5nLFxyXG4pOiBib29sZWFuIHtcclxuICByZXR1cm4gKFxyXG4gICAgZXhwcmVzc2lvbi50eXBlID09PSBcIk5ld0V4cHJlc3Npb25cIiAmJlxyXG4gICAgKGNhbGxlZU5hbWUgPT09IFwiTWFwXCIgfHxcclxuICAgICAgY2FsbGVlTmFtZSA9PT0gXCJTZXRcIiB8fFxyXG4gICAgICBjYWxsZWVOYW1lID09PSBcIlNvdXJjZUNvZGVcIiB8fFxyXG4gICAgICBjYWxsZWVOYW1lID09PSBcIkVTTGludFwiKVxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbGxlZSBuYW1lIGxvb2tzIHV0aWxpdHktbGlrZS5cclxuICogQHBhcmFtIGNhbGxlZU5hbWUgSW5wdXQgY2FsbGVlTmFtZSB2YWx1ZS5cclxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpc1V0aWxpdHlOYW1lZENhbGwoXCJzZXR1cEZpeHR1cmVcIik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNVdGlsaXR5TmFtZWRDYWxsKGNhbGxlZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB1dGlsaXR5TWV0aG9kTmFtZXMuaGFzKGNhbGxlZU5hbWUpIHx8IHNldHVwTGlrZU5hbWVzLnRlc3QoY2FsbGVlTmFtZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbGwgdXNlcyBhIHV0aWxpdHkgbmFtZXNwYWNlLlxyXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBJbnB1dCBleHByZXNzaW9uIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzVXRpbGl0eU5hbWVzcGFjZUNhbGwoZXhwcmVzc2lvbik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNVdGlsaXR5TmFtZXNwYWNlQ2FsbChcclxuICBleHByZXNzaW9uOiBFU1RyZWUuQ2FsbEV4cHJlc3Npb24gfCBFU1RyZWUuTmV3RXhwcmVzc2lvbixcclxuKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIChcclxuICAgIGV4cHJlc3Npb24uY2FsbGVlLnR5cGUgPT09IFwiTWVtYmVyRXhwcmVzc2lvblwiICYmXHJcbiAgICBleHByZXNzaW9uLmNhbGxlZS5vYmplY3QudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiZcclxuICAgIFtcImNvbnNvbGVcIiwgXCJ2aVwiXS5pbmNsdWRlcyhleHByZXNzaW9uLmNhbGxlZS5vYmplY3QubmFtZSlcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogVmlzaXRzIGFuIEVTVHJlZSBub2RlIGdyYXBoIHdoaWxlIGlnbm9yaW5nIGN5Y2xlcy5cclxuICogQHBhcmFtIG5vZGUgSW5wdXQgbm9kZSB2YWx1ZS5cclxuICogQHBhcmFtIGNhbGxiYWNrIElucHV0IGNhbGxiYWNrIHZhbHVlLlxyXG4gKiBAcGFyYW0gc2Vlbk5vZGVzIElucHV0IHNlZW5Ob2RlcyB2YWx1ZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiB2aXNpdE5vZGUobm9kZSwgKCkgPT4ge30pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHZpc2l0Tm9kZShcclxuICBub2RlOiBFU1RyZWUuTm9kZSxcclxuICBjYWxsYmFjazogKG5vZGU6IEVTVHJlZS5Ob2RlKSA9PiB2b2lkLFxyXG4gIHNlZW5Ob2RlcyA9IG5ldyBXZWFrU2V0PG9iamVjdD4oKSxcclxuKTogdm9pZCB7XHJcbiAgaWYgKHNlZW5Ob2Rlcy5oYXMobm9kZSkpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHNlZW5Ob2Rlcy5hZGQobm9kZSk7XHJcbiAgY2FsbGJhY2sobm9kZSk7XHJcblxyXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG5vZGUpKSB7XHJcbiAgICBpZiAoa2V5ICE9PSBcInBhcmVudFwiKSB7XHJcbiAgICAgIHZpc2l0VmFsdWUodmFsdWUsIGNhbGxiYWNrLCBzZWVuTm9kZXMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFZpc2l0cyBjaGlsZCB2YWx1ZXMgdGhhdCBtYXkgY29udGFpbiBuZXN0ZWQgRVNUcmVlIG5vZGVzLlxyXG4gKiBAcGFyYW0gdmFsdWUgSW5wdXQgdmFsdWUgdmFsdWUuXHJcbiAqIEBwYXJhbSBjYWxsYmFjayBJbnB1dCBjYWxsYmFjayB2YWx1ZS5cclxuICogQHBhcmFtIHNlZW5Ob2RlcyBJbnB1dCBzZWVuTm9kZXMgdmFsdWUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogdmlzaXRWYWx1ZSh2YWx1ZSwgKCkgPT4ge30sIG5ldyBXZWFrU2V0PG9iamVjdD4oKSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gdmlzaXRWYWx1ZShcclxuICB2YWx1ZTogdW5rbm93bixcclxuICBjYWxsYmFjazogKG5vZGU6IEVTVHJlZS5Ob2RlKSA9PiB2b2lkLFxyXG4gIHNlZW5Ob2RlczogV2Vha1NldDxvYmplY3Q+LFxyXG4pOiB2b2lkIHtcclxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiB2YWx1ZSkge1xyXG4gICAgICBpZiAoaXNOb2RlKGl0ZW0pKSB7XHJcbiAgICAgICAgdmlzaXROb2RlKGl0ZW0sIGNhbGxiYWNrLCBzZWVuTm9kZXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKGlzTm9kZSh2YWx1ZSkpIHtcclxuICAgIHZpc2l0Tm9kZSh2YWx1ZSwgY2FsbGJhY2ssIHNlZW5Ob2Rlcyk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQge1xyXG4gIGFycmF5TXV0YXRpb25NZXRob2RzLFxyXG4gIGdldEV4cHJlc3Npb25OYW1lLFxyXG4gIGdldEludm9rZWROYW1lLFxyXG4gIGlzQ2FsbGFibGVFeHByZXNzaW9uLFxyXG4gIGlzTG9jYXRlZENvbW1lbnQsXHJcbiAgaXNSYW5nZVdpdGhpbixcclxuICBpc1V0aWxpdHlDb25zdHJ1Y3RvcixcclxuICBpc1V0aWxpdHlOYW1lZENhbGwsXHJcbiAgaXNVdGlsaXR5TmFtZXNwYWNlQ2FsbCxcclxuICBzZXR1cExpa2VOYW1lcyxcclxuICB1dGlsaXR5TWV0aG9kTmFtZXMsXHJcbiAgdmlzaXROb2RlLFxyXG4gIHZvaWRMaWtlTWV0aG9kTmFtZXMsXHJcbiAgdm9pZExpa2VOYW1lUGF0dGVybixcclxufTtcclxuIl19
|
|
@@ -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;AAsInC,qFAAqF;AACrF,QAAA,MAAM,6BAA6B,EAAE,IAAI,CAAC,UAwCzC,CAAC;AAEF,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
|