@codeperfect/eslint-plugin 2.1.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/.tsbuildinfo +1 -1
- package/dist/application/custom-rules.d.ts +8 -8
- package/dist/application/custom-rules.js +14 -14
- package/dist/application/index.d.ts +1 -1
- package/dist/application/index.d.ts.map +1 -1
- package/dist/application/index.js +2 -2
- package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts +3 -4
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +5 -3
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +17 -7
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +29 -2
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts +2 -0
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/index.js +3 -1
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.d.ts +5 -0
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.js +247 -0
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts +5 -0
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js +136 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/rule.js +1 -2
- package/dist/domain/architecture/index.d.ts +2 -1
- package/dist/domain/architecture/index.d.ts.map +1 -1
- package/dist/domain/architecture/index.js +3 -2
- package/dist/domain/architecture/no-unused-exports/index.d.ts +3 -0
- package/dist/domain/architecture/no-unused-exports/index.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/index.js +2 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-options.d.ts +50 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-options.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-options.js +141 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts +49 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.js +612 -0
- package/dist/domain/architecture/no-unused-exports/rule.d.ts +5 -0
- package/dist/domain/architecture/no-unused-exports/rule.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/rule.js +82 -0
- package/dist/domain/architecture/no-unused-exports/types.d.ts +32 -0
- package/dist/domain/architecture/no-unused-exports/types.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/types.js +2 -0
- package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
- package/dist/domain/core/no-multiple-declarators/rule.js +53 -4
- package/dist/domain/core/no-multiple-declarators/types.d.ts +3 -1
- package/dist/domain/core/no-multiple-declarators/types.d.ts.map +1 -1
- package/dist/domain/core/no-multiple-declarators/types.js +5 -2
- package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -1
- package/dist/domain/core/prefer-interface-types/rule.js +90 -22
- package/dist/domain/custom-rule-documentation.d.ts +1 -14
- package/dist/domain/custom-rule-documentation.d.ts.map +1 -1
- package/dist/domain/custom-rule-documentation.js +2 -2
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +11 -2
- package/dist/domain/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +1 -1
- package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/rule.js +7 -2
- package/dist/domain/docs/require-example-language/examples.d.ts +4 -15
- package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/examples.js +119 -26
- package/dist/domain/docs/require-example-language/fixes.d.ts +1 -21
- package/dist/domain/docs/require-example-language/fixes.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/fixes.js +5 -2
- package/dist/domain/docs/require-example-language/reporting.d.ts +2 -38
- package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/reporting.js +2 -2
- package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/rule.js +2 -1
- package/dist/domain/docs/require-example-language/types.d.ts +1 -1
- package/dist/domain/docs/require-example-language/types.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/types.js +1 -1
- package/dist/domain/docs/single-line-jsdoc/rule.js +8 -8
- package/dist/domain/index.d.ts +2 -3
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +3 -4
- package/dist/domain/testing/aaa/analyzer.analysis.d.ts +1 -19
- package/dist/domain/testing/aaa/analyzer.analysis.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts +8 -31
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +18 -22
- package/dist/domain/testing/aaa/analyzer.analysis.js +46 -39
- package/dist/domain/testing/aaa/analyzer.assertions.d.ts +1 -17
- package/dist/domain/testing/aaa/analyzer.assertions.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts +1 -3
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +3 -4
- package/dist/domain/testing/aaa/analyzer.assertions.js +5 -33
- package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts +1 -3
- package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.assertions.operands.js +6 -5
- package/dist/domain/testing/aaa/analyzer.classification.d.ts +1 -15
- package/dist/domain/testing/aaa/analyzer.classification.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts +1 -3
- package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.classification.helpers.js +5 -6
- package/dist/domain/testing/aaa/analyzer.classification.js +5 -31
- package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts +1 -3
- package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.classification.traversal.js +3 -5
- package/dist/domain/testing/aaa/analyzer.super.d.ts +1 -7
- package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts +1 -14
- package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.super.helpers.js +2 -4
- package/dist/domain/testing/aaa/analyzer.super.js +5 -20
- package/dist/domain/testing/aaa/index.d.ts +1 -2
- package/dist/domain/testing/aaa/index.d.ts.map +1 -1
- package/dist/domain/testing/aaa/index.js +2 -2
- package/dist/domain/testing/aaa/types.d.ts +1 -1
- package/dist/domain/testing/aaa/types.d.ts.map +1 -1
- package/dist/domain/testing/aaa/types.js +1 -1
- package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -1
- package/dist/domain/testing/assert-actual-expected-names/rule.js +28 -3
- package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts +2 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/index.js +3 -2
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.js +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +78 -16
- package/dist/domain/testing/{require-aaa-sections → enforce-aaa-structure}/missing-section-fixes.d.ts +1 -1
- package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.js +150 -0
- package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-structure/rule.js +166 -7
- package/dist/domain/testing/index.d.ts +0 -3
- package/dist/domain/testing/index.d.ts.map +1 -1
- package/dist/domain/testing/index.js +1 -4
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts +1 -15
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.js +2 -71
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +4 -2
- package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts +1 -13
- package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/fix.js +3 -21
- package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.js +2 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.js +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +6 -6
- package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts +1 -12
- package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match.js +149 -15
- package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -1
- package/dist/domain/testing/require-act-result-capture/rule.js +37 -8
- package/dist/domain/testing/require-test-companion/index.d.ts +0 -1
- package/dist/domain/testing/require-test-companion/index.d.ts.map +1 -1
- package/dist/domain/testing/require-test-companion/index.js +1 -2
- package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts +2 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts.map +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-listeners.js +13 -58
- package/dist/domain/testing/require-test-companion/require-test-companion-options.d.ts +2 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-options.d.ts.map +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-options.js +6 -5
- package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -1
- package/dist/domain/testing/require-test-companion/rule.js +7 -7
- package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -1
- package/dist/domain/testing/single-act-statement/rule.js +6 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/infrastructure/codeperfect-plugin.d.ts +6 -6
- package/dist/infrastructure/codeperfect-plugin.js +5 -5
- package/dist/infrastructure/presets.d.ts.map +1 -1
- package/dist/infrastructure/presets.js +23 -7
- package/package.json +24 -31
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts +0 -41
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +0 -1
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +0 -87
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts +0 -40
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +0 -1
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +0 -91
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts +0 -4
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts.map +0 -1
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.js +0 -4
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.d.ts +0 -141
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.d.ts.map +0 -1
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts +0 -20
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts.map +0 -1
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.js +0 -25
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.js +0 -235
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts +0 -101
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts.map +0 -1
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.js +0 -108
- package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts +0 -35
- package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts.map +0 -1
- package/dist/domain/core/no-multiple-declarators/rule.fixes.js +0 -95
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts +0 -4
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts.map +0 -1
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.js +0 -4
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts +0 -4
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts.map +0 -1
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.js +0 -4
- package/dist/domain/core/prefer-interface-types/test-helpers.d.ts +0 -110
- package/dist/domain/core/prefer-interface-types/test-helpers.d.ts.map +0 -1
- package/dist/domain/core/prefer-interface-types/test-helpers.js +0 -116
- package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts +0 -89
- package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +0 -1
- package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.js +0 -129
- package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts +0 -103
- package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts.map +0 -1
- package/dist/domain/docs/no-interface-member-docs/test-helpers.js +0 -157
- package/dist/domain/docs/require-example-language/create-fixer.d.ts +0 -5
- package/dist/domain/docs/require-example-language/create-fixer.d.ts.map +0 -1
- package/dist/domain/docs/require-example-language/create-fixer.js +0 -5
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts +0 -4
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts.map +0 -1
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.js +0 -5
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts +0 -4
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts.map +0 -1
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.js +0 -5
- package/dist/domain/docs/test-helpers.d.ts +0 -50
- package/dist/domain/docs/test-helpers.d.ts.map +0 -1
- package/dist/domain/docs/test-helpers.js +0 -107
- package/dist/domain/testing/aaa/analyzer.analysis.unsupported.d.ts +0 -4
- package/dist/domain/testing/aaa/analyzer.analysis.unsupported.d.ts.map +0 -1
- package/dist/domain/testing/aaa/analyzer.analysis.unsupported.js +0 -4
- package/dist/domain/testing/aaa/analyzer.assertions.destructured.d.ts +0 -4
- package/dist/domain/testing/aaa/analyzer.assertions.destructured.d.ts.map +0 -1
- package/dist/domain/testing/aaa/analyzer.assertions.destructured.js +0 -4
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts +0 -9
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts.map +0 -1
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.js +0 -10
- package/dist/domain/testing/aaa/analyzer.classification.mutations.d.ts +0 -4
- package/dist/domain/testing/aaa/analyzer.classification.mutations.d.ts.map +0 -1
- package/dist/domain/testing/aaa/analyzer.classification.mutations.js +0 -4
- package/dist/domain/testing/aaa/analyzer.d.ts +0 -46
- package/dist/domain/testing/aaa/analyzer.d.ts.map +0 -1
- package/dist/domain/testing/aaa/analyzer.js +0 -59
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.d.ts +0 -4
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.d.ts.map +0 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.combined.js +0 -4
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.d.ts +0 -4
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.d.ts.map +0 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.companion.js +0 -4
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts +0 -4
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts.map +0 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.js +0 -4
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts +0 -42
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts.map +0 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.js +0 -188
- package/dist/domain/testing/enforce-aaa-phase-purity/rule.d.ts +0 -5
- package/dist/domain/testing/enforce-aaa-phase-purity/rule.d.ts.map +0 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/rule.js +0 -37
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts +0 -20
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.js +0 -39
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts +0 -97
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.js +0 -174
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts +0 -2
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.js +0 -2
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts +0 -14
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.js +0 -84
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts +0 -13
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.js +0 -195
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts +0 -25
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.js +0 -96
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts +0 -32
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.js +0 -164
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts +0 -5
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts +0 -4
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.js +0 -4
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts +0 -4
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.js +0 -4
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.js +0 -88
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts +0 -4
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.js +0 -4
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts +0 -24
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.js +0 -113
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts +0 -36
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.js +0 -138
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts +0 -187
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts.map +0 -1
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.js +0 -2
- package/dist/domain/testing/require-aaa-sections/index.d.ts +0 -2
- package/dist/domain/testing/require-aaa-sections/index.d.ts.map +0 -1
- package/dist/domain/testing/require-aaa-sections/index.js +0 -2
- package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts.map +0 -1
- package/dist/domain/testing/require-aaa-sections/missing-section-fixes.js +0 -150
- package/dist/domain/testing/require-aaa-sections/rule.d.ts +0 -5
- package/dist/domain/testing/require-aaa-sections/rule.d.ts.map +0 -1
- package/dist/domain/testing/require-aaa-sections/rule.js +0 -134
- package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts +0 -104
- package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts.map +0 -1
- package/dist/domain/testing/require-aaa-sections/rule.reporting.js +0 -216
- package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts +0 -51
- package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +0 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.js +0 -184
- package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts +0 -28
- package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts.map +0 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-utilities.js +0 -26
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { isMethodDeclaration, isMethodSignature, isParameter, isPropertyDeclaration, isPropertySignature, SignatureKind, SymbolFlags, } from "typescript";
|
|
2
|
-
/**
|
|
3
|
-
* Selects a single object-like branch from a union when one exists.
|
|
4
|
-
* @param checker TypeScript type checker instance.
|
|
5
|
-
* @param unionType Union type to inspect.
|
|
6
|
-
* @returns The single object-like branch when the union is unambiguous.
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* const branch = getSingleUnionObjectLikeType(checker, unionType);
|
|
10
|
-
* ```
|
|
11
|
-
*/
|
|
12
|
-
function getSingleUnionObjectLikeType(checker, unionType) {
|
|
13
|
-
const objectLikeTypes = unionType.types.filter((type) => hasObjectShape(checker, type));
|
|
14
|
-
return objectLikeTypes.length === 1 ? objectLikeTypes[0] : void 0;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Detects whether a TypeScript type has an object-like surface.
|
|
18
|
-
* @param checker TypeScript type checker instance.
|
|
19
|
-
* @param targetType Candidate target type.
|
|
20
|
-
* @returns True when the type exposes properties or callable signatures.
|
|
21
|
-
* @example
|
|
22
|
-
* ```typescript
|
|
23
|
-
* const objectLike = hasObjectShape(checker, targetType);
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
function hasObjectShape(checker, targetType) {
|
|
27
|
-
return (checker.getPropertiesOfType(targetType).length > 0 ||
|
|
28
|
-
checker.getSignaturesOfType(targetType, SignatureKind.Call).length > 0 ||
|
|
29
|
-
checker.getSignaturesOfType(targetType, SignatureKind.Construct).length > 0);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Checks whether a TypeScript symbol flag is present without using bitwise syntax.
|
|
33
|
-
* @param flags Symbol flag bitset to inspect.
|
|
34
|
-
* @param flag Specific flag to test.
|
|
35
|
-
* @returns True when the flag is present in the bitset.
|
|
36
|
-
* @example
|
|
37
|
-
* ```typescript
|
|
38
|
-
* const hasOptionalFlag = hasSymbolFlag(SymbolFlags.Optional, SymbolFlags.Optional);
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
function hasSymbolFlag(flags, flag) {
|
|
42
|
-
return Math.trunc(flags / flag) % 2 === 1;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Determines whether a symbol represents an optional object property.
|
|
46
|
-
* @param propertySymbol Property symbol being checked.
|
|
47
|
-
* @returns True when a declaration marks the property as optional.
|
|
48
|
-
* @example
|
|
49
|
-
* ```typescript
|
|
50
|
-
* const optional = isOptionalSymbol(propertySymbol);
|
|
51
|
-
* ```
|
|
52
|
-
*/
|
|
53
|
-
function isOptionalSymbol(propertySymbol) {
|
|
54
|
-
const flags = typeof propertySymbol.getFlags === "function"
|
|
55
|
-
? propertySymbol.getFlags()
|
|
56
|
-
: (propertySymbol.flags ?? 0);
|
|
57
|
-
if (hasSymbolFlag(flags, SymbolFlags.Optional)) {
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
const declarations = propertySymbol.getDeclarations() ?? [];
|
|
61
|
-
return declarations.some((declaration) => {
|
|
62
|
-
if (isParameter(declaration) ||
|
|
63
|
-
isPropertyDeclaration(declaration) ||
|
|
64
|
-
isPropertySignature(declaration) ||
|
|
65
|
-
isMethodDeclaration(declaration) ||
|
|
66
|
-
isMethodSignature(declaration)) {
|
|
67
|
-
return declaration.questionToken !== void 0;
|
|
68
|
-
}
|
|
69
|
-
return false;
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Determines whether the object literal still needs an outer cast.
|
|
74
|
-
* @param context Data used to decide whether the full object needs casting.
|
|
75
|
-
* @returns True when the full object still needs casting.
|
|
76
|
-
* @example
|
|
77
|
-
* ```typescript
|
|
78
|
-
* const needsOuterCast = isOuterCastRequired(context);
|
|
79
|
-
* ```
|
|
80
|
-
*/
|
|
81
|
-
function isOuterCastRequired(context) {
|
|
82
|
-
const { checker, propertyNames, targetType } = context;
|
|
83
|
-
if (checker.getSignaturesOfType(targetType, SignatureKind.Call).length > 0) {
|
|
84
|
-
return true;
|
|
85
|
-
}
|
|
86
|
-
if (checker.getSignaturesOfType(targetType, SignatureKind.Construct).length > 0) {
|
|
87
|
-
return true;
|
|
88
|
-
}
|
|
89
|
-
return checker
|
|
90
|
-
.getPropertiesOfType(targetType)
|
|
91
|
-
.some((propertySymbol) => !isOptionalSymbol(propertySymbol) &&
|
|
92
|
-
!propertyNames.has(propertySymbol.getName()));
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Narrows a target type to the object-like type the fixer can reason about.
|
|
96
|
-
* @param checker TypeScript type checker instance.
|
|
97
|
-
* @param targetType Candidate target type.
|
|
98
|
-
* @returns Object-like type when the target can be normalized safely.
|
|
99
|
-
* @example
|
|
100
|
-
* ```typescript
|
|
101
|
-
* const normalizedType = normalizeObjectLikeType(checker, targetType);
|
|
102
|
-
* ```
|
|
103
|
-
*/
|
|
104
|
-
function normalizeObjectLikeType(checker, targetType) {
|
|
105
|
-
if (targetType === void 0) {
|
|
106
|
-
return void 0;
|
|
107
|
-
}
|
|
108
|
-
const resolvedType = checker.getAwaitedType(targetType);
|
|
109
|
-
if (resolvedType === void 0) {
|
|
110
|
-
return void 0;
|
|
111
|
-
}
|
|
112
|
-
const directObjectLikeType = [resolvedType].find((type) => hasObjectShape(checker, type));
|
|
113
|
-
return (directObjectLikeType ??
|
|
114
|
-
(resolvedType.isUnion()
|
|
115
|
-
? getSingleUnionObjectLikeType(checker, resolvedType)
|
|
116
|
-
: void 0));
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Resolves the factory function's returned object type from its call signatures.
|
|
120
|
-
* @param checker TypeScript type checker instance.
|
|
121
|
-
* @param factoryParameterType Type of the factory callback parameter.
|
|
122
|
-
* @returns Normalized object-like return type when one is available.
|
|
123
|
-
* @example
|
|
124
|
-
* ```typescript
|
|
125
|
-
* const returnType = resolveFactoryReturnType(checker, factoryParameterType);
|
|
126
|
-
* ```
|
|
127
|
-
*/
|
|
128
|
-
function resolveFactoryReturnType(checker, factoryParameterType) {
|
|
129
|
-
for (const factorySignature of checker.getSignaturesOfType(factoryParameterType, SignatureKind.Call)) {
|
|
130
|
-
const normalizedReturnType = normalizeObjectLikeType(checker, checker.getReturnTypeOfSignature(factorySignature));
|
|
131
|
-
if (normalizedReturnType !== void 0) {
|
|
132
|
-
return normalizedReturnType;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return void 0;
|
|
136
|
-
}
|
|
137
|
-
export { isOuterCastRequired, normalizeObjectLikeType, resolveFactoryReturnType, };
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1zaGFwZS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3ByZWZlci12aXRlc3QtaW5jcmVtZW50YWwtY2FzdHMvdHlwZS1zaGFwZS1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixXQUFXLEdBQ1osTUFBTSxZQUFZLENBQUM7QUFhcEI7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyw0QkFBNEIsQ0FDbkMsT0FBdUIsRUFDdkIsU0FBdUI7SUFFdkIsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUN0RCxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUM5QixDQUFDO0lBRUYsT0FBTyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxjQUFjLENBQUMsT0FBdUIsRUFBRSxVQUFtQjtJQUNsRSxPQUFPLENBQ0wsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ2xELE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ3RFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQzVFLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNH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QztZQUNyRCxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDWixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsd0JBQXdCLENBQy9CLE9BQXVCLEVBQ3ZCLG9CQUE2QjtJQUU3QixLQUFLLE1BQU0sZ0JBQWdCLElBQUksT0FBTyxDQUFDLG1CQUFtQixDQUN4RCxvQkFBb0IsRUFDcEIsYUFBYSxDQUFDLElBQUksQ0FDbkIsRUFBRSxDQUFDO1FBQ0YsTUFBTSxvQkFBb0IsR0FBRyx1QkFBdUIsQ0FDbEQsT0FBTyxFQUNQLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUNuRCxDQUFDO1FBRUYsSUFBSSxvQkFBb0IsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sb0JBQW9CLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0FBQ2hCLENBQUM7QUFFRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2Qix3QkFBd0IsR0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgdHMgZnJvbSBcInR5cGVzY3JpcHRcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgaXNNZXRob2REZWNsYXJhdGlvbixcclxuICBpc01ldGhvZFNpZ25hdHVyZSxcclxuICBpc1BhcmFtZXRlcixcclxuICBpc1Byb3BlcnR5RGVjbGFyYXRpb24sXHJcbiAgaXNQcm9wZXJ0eVNpZ25hdHVyZSxcclxuICBTaWduYXR1cmVLaW5kLFxyXG4gIFN5bWJvbEZsYWdzLFxyXG59IGZyb20gXCJ0eXBlc2NyaXB0XCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IE91dGVyQ2FzdENvbnRleHQgfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5cclxuLyoqIE1pbmltYWwgc3ltYm9sLWZsYWcgc2hhcGUgdXNlZCBieSB1bml0LXRlc3QgZG91Ymxlcy4gKi9cclxuaW50ZXJmYWNlIFN5bWJvbFdpdGhPcHRpb25hbEZsYWdzIHtcclxuICAvKiogT3B0aW9uYWwgbnVtZXJpYyBmbGFnIGJpdHNldCBzdXBwbGllZCBieSB0ZXN0IGRvdWJsZXMuICovXHJcbiAgZmxhZ3M/OiBudW1iZXI7XHJcblxyXG4gIC8qKiBPcHRpb25hbCBnZXR0ZXIgdXNlZCBieSByZWFsIFR5cGVTY3JpcHQgc3ltYm9scy4gKi9cclxuICBnZXRGbGFncz86ICgpID0+IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNlbGVjdHMgYSBzaW5nbGUgb2JqZWN0LWxpa2UgYnJhbmNoIGZyb20gYSB1bmlvbiB3aGVuIG9uZSBleGlzdHMuXHJcbiAqIEBwYXJhbSBjaGVja2VyIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyIGluc3RhbmNlLlxyXG4gKiBAcGFyYW0gdW5pb25UeXBlIFVuaW9uIHR5cGUgdG8gaW5zcGVjdC5cclxuICogQHJldHVybnMgVGhlIHNpbmdsZSBvYmplY3QtbGlrZSBicmFuY2ggd2hlbiB0aGUgdW5pb24gaXMgdW5hbWJpZ3VvdXMuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgYnJhbmNoID0gZ2V0U2luZ2xlVW5pb25PYmplY3RMaWtlVHlwZShjaGVja2VyLCB1bmlvblR5cGUpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldFNpbmdsZVVuaW9uT2JqZWN0TGlrZVR5cGUoXHJcbiAgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsXHJcbiAgdW5pb25UeXBlOiB0cy5VbmlvblR5cGUsXHJcbik6IHRzLlR5cGUgfCB1bmRlZmluZWQge1xyXG4gIGNvbnN0IG9iamVjdExpa2VUeXBlcyA9IHVuaW9uVHlwZS50eXBlcy5maWx0ZXIoKHR5cGUpID0+XHJcbiAgICBoYXNPYmplY3RTaGFwZShjaGVja2VyLCB0eXBlKSxcclxuICApO1xyXG5cclxuICByZXR1cm4gb2JqZWN0TGlrZVR5cGVzLmxlbmd0aCA9PT0gMSA/IG9iamVjdExpa2VUeXBlc1swXSA6IHZvaWQgMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIERldGVjdHMgd2hldGhlciBhIFR5cGVTY3JpcHQgdHlwZSBoYXMgYW4gb2JqZWN0LWxpa2Ugc3VyZmFjZS5cclxuICogQHBhcmFtIGNoZWNrZXIgVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIgaW5zdGFuY2UuXHJcbiAqIEBwYXJhbSB0YXJnZXRUeXBlIENhbmRpZGF0ZSB0YXJnZXQgdHlwZS5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSB0eXBlIGV4cG9zZXMgcHJvcGVydGllcyBvciBjYWxsYWJsZSBzaWduYXR1cmVzLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IG9iamVjdExpa2UgPSBoYXNPYmplY3RTaGFwZShjaGVja2VyLCB0YXJnZXRUeXBlKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBoYXNPYmplY3RTaGFwZShjaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgdGFyZ2V0VHlwZTogdHMuVHlwZSk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAoXHJcbiAgICBjaGVja2VyLmdldFByb3BlcnRpZXNPZlR5cGUodGFyZ2V0VHlwZSkubGVuZ3RoID4gMCB8fFxyXG4gICAgY2hlY2tlci5nZXRTaWduYXR1cmVzT2ZUeXBlKHRhcmdldFR5cGUsIFNpZ25hdHVyZUtpbmQuQ2FsbCkubGVuZ3RoID4gMCB8fFxyXG4gICAgY2hlY2tlci5nZXRTaWduYXR1cmVzT2ZUeXBlKHRhcmdldFR5cGUsIFNpZ25hdHVyZUtpbmQuQ29uc3RydWN0KS5sZW5ndGggPiAwXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIGEgVHlwZVNjcmlwdCBzeW1ib2wgZmxhZyBpcyBwcmVzZW50IHdpdGhvdXQgdXNpbmcgYml0d2lzZSBzeW50YXguXHJcbiAqIEBwYXJhbSBmbGFncyBTeW1ib2wgZmxhZyBiaXRzZXQgdG8gaW5zcGVjdC5cclxuICogQHBhcmFtIGZsYWcgU3BlY2lmaWMgZmxhZyB0byB0ZXN0LlxyXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGZsYWcgaXMgcHJlc2VudCBpbiB0aGUgYml0c2V0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGhhc09wdGlvbmFsRmxhZyA9IGhhc1N5bWJvbEZsYWcoU3ltYm9sRmxhZ3MuT3B0aW9uYWwsIFN5bWJvbEZsYWdzLk9wdGlvbmFsKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBoYXNTeW1ib2xGbGFnKGZsYWdzOiBudW1iZXIsIGZsYWc6IFN5bWJvbEZsYWdzKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIE1hdGgudHJ1bmMoZmxhZ3MgLyBmbGFnKSAlIDIgPT09IDE7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBzeW1ib2wgcmVwcmVzZW50cyBhbiBvcHRpb25hbCBvYmplY3QgcHJvcGVydHkuXHJcbiAqIEBwYXJhbSBwcm9wZXJ0eVN5bWJvbCBQcm9wZXJ0eSBzeW1ib2wgYmVpbmcgY2hlY2tlZC5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIGEgZGVjbGFyYXRpb24gbWFya3MgdGhlIHByb3BlcnR5IGFzIG9wdGlvbmFsLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IG9wdGlvbmFsID0gaXNPcHRpb25hbFN5bWJvbChwcm9wZXJ0eVN5bWJvbCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNPcHRpb25hbFN5bWJvbChwcm9wZXJ0eVN5bWJvbDogdHMuU3ltYm9sKTogYm9vbGVhbiB7XHJcbiAgY29uc3QgZmxhZ3MgPVxyXG4gICAgdHlwZW9mIHByb3BlcnR5U3ltYm9sLmdldEZsYWdzID09PSBcImZ1bmN0aW9uXCJcclxuICAgICAgPyBwcm9wZXJ0eVN5bWJvbC5nZXRGbGFncygpXHJcbiAgICAgIDogKChwcm9wZXJ0eVN5bWJvbCBhcyBTeW1ib2xXaXRoT3B0aW9uYWxGbGFncykuZmxhZ3MgPz8gMCk7XHJcblxyXG4gIGlmIChoYXNTeW1ib2xGbGFnKGZsYWdzLCBTeW1ib2xGbGFncy5PcHRpb25hbCkpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZGVjbGFyYXRpb25zID0gcHJvcGVydHlTeW1ib2wuZ2V0RGVjbGFyYXRpb25zKCkgPz8gW107XHJcblxyXG4gIHJldHVybiBkZWNsYXJhdGlvbnMuc29tZSgoZGVjbGFyYXRpb24pID0+IHtcclxuICAgIGlmIChcclxuICAgICAgaXNQYXJhbWV0ZXIoZGVjbGFyYXRpb24pIHx8XHJcbiAgICAgIGlzUHJvcGVydHlEZWNsYXJhdGlvbihkZWNsYXJhdGlvbikgfHxcclxuICAgICAgaXNQcm9wZXJ0eVNpZ25hdHVyZShkZWNsYXJhdGlvbikgfHxcclxuICAgICAgaXNNZXRob2REZWNsYXJhdGlvbihkZWNsYXJhdGlvbikgfHxcclxuICAgICAgaXNNZXRob2RTaWduYXR1cmUoZGVjbGFyYXRpb24pXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIGRlY2xhcmF0aW9uLnF1ZXN0aW9uVG9rZW4gIT09IHZvaWQgMDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG9iamVjdCBsaXRlcmFsIHN0aWxsIG5lZWRzIGFuIG91dGVyIGNhc3QuXHJcbiAqIEBwYXJhbSBjb250ZXh0IERhdGEgdXNlZCB0byBkZWNpZGUgd2hldGhlciB0aGUgZnVsbCBvYmplY3QgbmVlZHMgY2FzdGluZy5cclxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBmdWxsIG9iamVjdCBzdGlsbCBuZWVkcyBjYXN0aW5nLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IG5lZWRzT3V0ZXJDYXN0ID0gaXNPdXRlckNhc3RSZXF1aXJlZChjb250ZXh0KTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBpc091dGVyQ2FzdFJlcXVpcmVkKGNvbnRleHQ6IE91dGVyQ2FzdENvbnRleHQpOiBib29sZWFuIHtcclxuICBjb25zdCB7IGNoZWNrZXIsIHByb3BlcnR5TmFtZXMsIHRhcmdldFR5cGUgfSA9IGNvbnRleHQ7XHJcblxyXG4gIGlmIChjaGVja2VyLmdldFNpZ25hdHVyZXNPZlR5cGUodGFyZ2V0VHlwZSwgU2lnbmF0dXJlS2luZC5DYWxsKS5sZW5ndGggPiAwKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGlmIChcclxuICAgIGNoZWNrZXIuZ2V0U2lnbmF0dXJlc09mVHlwZSh0YXJnZXRUeXBlLCBTaWduYXR1cmVLaW5kLkNvbnN0cnVjdCkubGVuZ3RoID4gMFxyXG4gICkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gY2hlY2tlclxyXG4gICAgLmdldFByb3BlcnRpZXNPZlR5cGUodGFyZ2V0VHlwZSlcclxuICAgIC5zb21lKFxyXG4gICAgICAocHJvcGVydHlTeW1ib2wpID0+XHJcbiAgICAgICAgIWlzT3B0aW9uYWxTeW1ib2wocHJvcGVydHlTeW1ib2wpICYmXHJcbiAgICAgICAgIXByb3BlcnR5TmFtZXMuaGFzKHByb3BlcnR5U3ltYm9sLmdldE5hbWUoKSksXHJcbiAgICApO1xyXG59XHJcblxyXG4vKipcclxuICogTmFycm93cyBhIHRhcmdldCB0eXBlIHRvIHRoZSBvYmplY3QtbGlrZSB0eXBlIHRoZSBmaXhlciBjYW4gcmVhc29uIGFib3V0LlxyXG4gKiBAcGFyYW0gY2hlY2tlciBUeXBlU2NyaXB0IHR5cGUgY2hlY2tlciBpbnN0YW5jZS5cclxuICogQHBhcmFtIHRhcmdldFR5cGUgQ2FuZGlkYXRlIHRhcmdldCB0eXBlLlxyXG4gKiBAcmV0dXJucyBPYmplY3QtbGlrZSB0eXBlIHdoZW4gdGhlIHRhcmdldCBjYW4gYmUgbm9ybWFsaXplZCBzYWZlbHkuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3Qgbm9ybWFsaXplZFR5cGUgPSBub3JtYWxpemVPYmplY3RMaWtlVHlwZShjaGVja2VyLCB0YXJnZXRUeXBlKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBub3JtYWxpemVPYmplY3RMaWtlVHlwZShcclxuICBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcixcclxuICB0YXJnZXRUeXBlOiB0cy5UeXBlIHwgdW5kZWZpbmVkLFxyXG4pOiB0cy5UeXBlIHwgdW5kZWZpbmVkIHtcclxuICBpZiAodGFyZ2V0VHlwZSA9PT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4gdm9pZCAwO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcmVzb2x2ZWRUeXBlID0gY2hlY2tlci5nZXRBd2FpdGVkVHlwZSh0YXJnZXRUeXBlKTtcclxuXHJcbiAgaWYgKHJlc29sdmVkVHlwZSA9PT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4gdm9pZCAwO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZGlyZWN0T2JqZWN0TGlrZVR5cGUgPSBbcmVzb2x2ZWRUeXBlXS5maW5kKCh0eXBlKSA9PlxyXG4gICAgaGFzT2JqZWN0U2hhcGUoY2hlY2tlciwgdHlwZSksXHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIGRpcmVjdE9iamVjdExpa2VUeXBlID8/XHJcbiAgICAocmVzb2x2ZWRUeXBlLmlzVW5pb24oKVxyXG4gICAgICA/IGdldFNpbmdsZVVuaW9uT2JqZWN0TGlrZVR5cGUoY2hlY2tlciwgcmVzb2x2ZWRUeXBlKVxyXG4gICAgICA6IHZvaWQgMClcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogUmVzb2x2ZXMgdGhlIGZhY3RvcnkgZnVuY3Rpb24ncyByZXR1cm5lZCBvYmplY3QgdHlwZSBmcm9tIGl0cyBjYWxsIHNpZ25hdHVyZXMuXHJcbiAqIEBwYXJhbSBjaGVja2VyIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyIGluc3RhbmNlLlxyXG4gKiBAcGFyYW0gZmFjdG9yeVBhcmFtZXRlclR5cGUgVHlwZSBvZiB0aGUgZmFjdG9yeSBjYWxsYmFjayBwYXJhbWV0ZXIuXHJcbiAqIEByZXR1cm5zIE5vcm1hbGl6ZWQgb2JqZWN0LWxpa2UgcmV0dXJuIHR5cGUgd2hlbiBvbmUgaXMgYXZhaWxhYmxlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IHJldHVyblR5cGUgPSByZXNvbHZlRmFjdG9yeVJldHVyblR5cGUoY2hlY2tlciwgZmFjdG9yeVBhcmFtZXRlclR5cGUpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHJlc29sdmVGYWN0b3J5UmV0dXJuVHlwZShcclxuICBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcixcclxuICBmYWN0b3J5UGFyYW1ldGVyVHlwZTogdHMuVHlwZSxcclxuKTogdHMuVHlwZSB8IHVuZGVmaW5lZCB7XHJcbiAgZm9yIChjb25zdCBmYWN0b3J5U2lnbmF0dXJlIG9mIGNoZWNrZXIuZ2V0U2lnbmF0dXJlc09mVHlwZShcclxuICAgIGZhY3RvcnlQYXJhbWV0ZXJUeXBlLFxyXG4gICAgU2lnbmF0dXJlS2luZC5DYWxsLFxyXG4gICkpIHtcclxuICAgIGNvbnN0IG5vcm1hbGl6ZWRSZXR1cm5UeXBlID0gbm9ybWFsaXplT2JqZWN0TGlrZVR5cGUoXHJcbiAgICAgIGNoZWNrZXIsXHJcbiAgICAgIGNoZWNrZXIuZ2V0UmV0dXJuVHlwZU9mU2lnbmF0dXJlKGZhY3RvcnlTaWduYXR1cmUpLFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAobm9ybWFsaXplZFJldHVyblR5cGUgIT09IHZvaWQgMCkge1xyXG4gICAgICByZXR1cm4gbm9ybWFsaXplZFJldHVyblR5cGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdm9pZCAwO1xyXG59XHJcblxyXG5leHBvcnQge1xyXG4gIGlzT3V0ZXJDYXN0UmVxdWlyZWQsXHJcbiAgbm9ybWFsaXplT2JqZWN0TGlrZVR5cGUsXHJcbiAgcmVzb2x2ZUZhY3RvcnlSZXR1cm5UeXBlLFxyXG59O1xyXG4iXX0=
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
import type { ESLintUtils, TSESLint, TSESTree } from "@typescript-eslint/utils";
|
|
2
|
-
import type * as ts from "typescript";
|
|
3
|
-
/** Context used to build the final replacement for a matching mock object. */
|
|
4
|
-
interface BuildMatchResultContext {
|
|
5
|
-
/** TypeScript type checker used for assignability checks. */
|
|
6
|
-
checker: ts.TypeChecker;
|
|
7
|
-
/** Factory function supplied to `vi.mock` or `vi.doMock`. */
|
|
8
|
-
factoryArgument: FactoryFunctionExpression;
|
|
9
|
-
/** Static module specifier used by the mock call. */
|
|
10
|
-
moduleSpecifier: string;
|
|
11
|
-
/** Namespace alias for the module specifier, when a namespace import is present. */
|
|
12
|
-
namespaceAlias: string | undefined;
|
|
13
|
-
/** Returned object literal from the mock factory. */
|
|
14
|
-
objectExpression: TSESTree.ObjectExpression;
|
|
15
|
-
/** Property names already present in the rewritten object literal. */
|
|
16
|
-
propertyNames: Set<string>;
|
|
17
|
-
/** Nested property replacements collected for the object literal. */
|
|
18
|
-
replacements: PropertyReplacement[];
|
|
19
|
-
/** Expression returned by the mock factory. */
|
|
20
|
-
returnExpression: TSESTree.Expression;
|
|
21
|
-
/** Full source text of the current file. */
|
|
22
|
-
sourceText: string;
|
|
23
|
-
/** Target type inferred for the factory object. */
|
|
24
|
-
targetType: ts.Type;
|
|
25
|
-
}
|
|
26
|
-
/** Context required to replace one object literal property safely. */
|
|
27
|
-
interface BuildPropertyReplacementContext {
|
|
28
|
-
/** TypeScript type checker used for assignability checks. */
|
|
29
|
-
checker: ts.TypeChecker;
|
|
30
|
-
/** Stable property key name from the mock object literal. */
|
|
31
|
-
keyName: string;
|
|
32
|
-
/** Static module specifier used by the mock call. */
|
|
33
|
-
moduleSpecifier: string;
|
|
34
|
-
/** Namespace alias for the module specifier, when a namespace import is present. */
|
|
35
|
-
namespaceAlias: string | undefined;
|
|
36
|
-
/** Supported property being rewritten. */
|
|
37
|
-
property: SupportedProperty;
|
|
38
|
-
/** Parser services supplied by `@typescript-eslint`. */
|
|
39
|
-
services: ParserServices;
|
|
40
|
-
/** Full source text of the current file. */
|
|
41
|
-
sourceText: string;
|
|
42
|
-
/** Target property symbol from the imported module type. */
|
|
43
|
-
targetPropertySymbol: ts.Symbol;
|
|
44
|
-
}
|
|
45
|
-
/** Input required to analyze a `vi.mock` or `vi.doMock` call. */
|
|
46
|
-
interface CollectMatchContext {
|
|
47
|
-
/** Call expression currently being analyzed. */
|
|
48
|
-
callExpression: TSESTree.CallExpression;
|
|
49
|
-
/** TypeScript type checker used for assignability checks. */
|
|
50
|
-
checker: ts.TypeChecker;
|
|
51
|
-
/** Namespace imports present in the current file, keyed by module specifier. */
|
|
52
|
-
namespaceImports: ReadonlyMap<string, string>;
|
|
53
|
-
/** Parser services supplied by `@typescript-eslint`. */
|
|
54
|
-
services: ParserServices;
|
|
55
|
-
/** Full source text of the current file. */
|
|
56
|
-
sourceText: string;
|
|
57
|
-
}
|
|
58
|
-
/** Context used to collect nested property replacements. */
|
|
59
|
-
interface CollectPropertyReplacementsContext {
|
|
60
|
-
/** TypeScript type checker used for assignability checks. */
|
|
61
|
-
checker: ts.TypeChecker;
|
|
62
|
-
/** Static module specifier used by the mock call. */
|
|
63
|
-
moduleSpecifier: string;
|
|
64
|
-
/** Namespace alias for the module specifier, when a namespace import is present. */
|
|
65
|
-
namespaceAlias: string | undefined;
|
|
66
|
-
/** Returned object literal from the mock factory. */
|
|
67
|
-
objectExpression: TSESTree.ObjectExpression;
|
|
68
|
-
/** Parser services supplied by `@typescript-eslint`. */
|
|
69
|
-
services: ParserServices;
|
|
70
|
-
/** Full source text of the current file. */
|
|
71
|
-
sourceText: string;
|
|
72
|
-
/** Target type inferred for the factory object. */
|
|
73
|
-
targetType: ts.Type;
|
|
74
|
-
}
|
|
75
|
-
/** Function expressions supported as Vitest mock factories. */
|
|
76
|
-
type FactoryFunctionExpression = TSESTree.ArrowFunctionExpression | TSESTree.FunctionExpression;
|
|
77
|
-
/** Resolved inputs required to analyze a matching Vitest mock factory. */
|
|
78
|
-
interface FactoryMatchInput {
|
|
79
|
-
/** Factory function supplied to `vi.mock` or `vi.doMock`. */
|
|
80
|
-
factoryArgument: FactoryFunctionExpression;
|
|
81
|
-
/** Static module specifier used by the mock call. */
|
|
82
|
-
moduleSpecifier: string;
|
|
83
|
-
/** Returned object literal from the mock factory. */
|
|
84
|
-
objectExpression: TSESTree.ObjectExpression;
|
|
85
|
-
/** Expression returned by the mock factory. */
|
|
86
|
-
returnExpression: TSESTree.Expression;
|
|
87
|
-
}
|
|
88
|
-
/** Text replacement emitted for a matching factory object. */
|
|
89
|
-
interface MatchResult {
|
|
90
|
-
/** Replacement source text for the returned object expression. */
|
|
91
|
-
replacementText: string;
|
|
92
|
-
/** Absolute range of the return expression to replace. */
|
|
93
|
-
returnExpressionRange: TSESTree.Range;
|
|
94
|
-
}
|
|
95
|
-
/** Rule message identifiers emitted by this rule. */
|
|
96
|
-
type MessageIds = "preferVitestIncrementalCasts";
|
|
97
|
-
/** Normalized arguments extracted from a supported mock call. */
|
|
98
|
-
interface MockFactoryArguments {
|
|
99
|
-
/** Factory function supplied to `vi.mock` or `vi.doMock`. */
|
|
100
|
-
factoryArgument: FactoryFunctionExpression;
|
|
101
|
-
/** Static or import-expression module argument. */
|
|
102
|
-
moduleArgument: TSESTree.Expression;
|
|
103
|
-
}
|
|
104
|
-
/** Rule options accepted by this rule. */
|
|
105
|
-
type Options = [];
|
|
106
|
-
/** Context required to decide whether an outer cast is still needed. */
|
|
107
|
-
interface OuterCastContext {
|
|
108
|
-
/** TypeScript type checker used for assignability checks. */
|
|
109
|
-
checker: ts.TypeChecker;
|
|
110
|
-
/** Property names already present in the rewritten object literal. */
|
|
111
|
-
propertyNames: ReadonlySet<string>;
|
|
112
|
-
/** Target type inferred for the factory object. */
|
|
113
|
-
targetType: ts.Type;
|
|
114
|
-
}
|
|
115
|
-
/** Parser services resolved from the configured TypeScript parser. */
|
|
116
|
-
type ParserServices = ReturnType<typeof ESLintUtils.getParserServices>;
|
|
117
|
-
/** Individual replacement details for one property inside the object literal. */
|
|
118
|
-
interface PropertyReplacement {
|
|
119
|
-
/** Absolute range of the property inside the object literal. */
|
|
120
|
-
range: TSESTree.Range;
|
|
121
|
-
/** Replacement source text for the property. */
|
|
122
|
-
replacementText: string;
|
|
123
|
-
}
|
|
124
|
-
/** Replacement collection result for the object literal properties. */
|
|
125
|
-
interface PropertyReplacementCollection {
|
|
126
|
-
/** Property names already present in the rewritten object literal. */
|
|
127
|
-
propertyNames: Set<string>;
|
|
128
|
-
/** Nested property replacements collected for the object literal. */
|
|
129
|
-
replacements: PropertyReplacement[];
|
|
130
|
-
}
|
|
131
|
-
/** Context for resolving the target type of a mock factory object literal. */
|
|
132
|
-
interface ResolveFactoryTargetTypeContext {
|
|
133
|
-
/** Call expression currently being analyzed. */
|
|
134
|
-
callExpression: TSESTree.CallExpression;
|
|
135
|
-
/** TypeScript type checker used for assignability checks. */
|
|
136
|
-
checker: ts.TypeChecker;
|
|
137
|
-
/** Factory function supplied to `vi.mock` or `vi.doMock`. */
|
|
138
|
-
factoryArgument: FactoryFunctionExpression;
|
|
139
|
-
/** Returned object literal from the mock factory. */
|
|
140
|
-
objectExpression: TSESTree.ObjectExpression;
|
|
141
|
-
/** Parser services supplied by `@typescript-eslint`. */
|
|
142
|
-
services: ParserServices;
|
|
143
|
-
}
|
|
144
|
-
/** Context for determining whether shorthand syntax remains valid. */
|
|
145
|
-
interface ShorthandContext {
|
|
146
|
-
/** Expression used as the property's value. */
|
|
147
|
-
baseValue: TSESTree.Expression;
|
|
148
|
-
/** Stable property key name from the mock object literal. */
|
|
149
|
-
keyName: string;
|
|
150
|
-
/** Whether the property value needs a nested cast. */
|
|
151
|
-
needsCast: boolean;
|
|
152
|
-
/** Supported property being rewritten. */
|
|
153
|
-
property: SupportedProperty;
|
|
154
|
-
}
|
|
155
|
-
/** Object literal properties supported by the fixer. */
|
|
156
|
-
type SupportedProperty = Extract<TSESTree.ObjectLiteralElement, TSESTree.Property> & {
|
|
157
|
-
/** Indicates that computed property syntax is not allowed. */
|
|
158
|
-
computed: false;
|
|
159
|
-
/** Restricts the key to statically readable property names. */
|
|
160
|
-
key: SupportedPropertyKey;
|
|
161
|
-
/** Restricts the property to initializer syntax. */
|
|
162
|
-
kind: "init";
|
|
163
|
-
/** Indicates that method shorthand is not allowed. */
|
|
164
|
-
method: false;
|
|
165
|
-
/** Absolute range of the full property inside the source file. */
|
|
166
|
-
range: TSESTree.Range;
|
|
167
|
-
/** Expression value assigned to the property. */
|
|
168
|
-
value: SupportedPropertyValueRange & TSESTree.Expression;
|
|
169
|
-
};
|
|
170
|
-
/** Property keys supported by the fixer. */
|
|
171
|
-
type SupportedPropertyKey = (SupportedPropertyKeyRange & TSESTree.Identifier) | (SupportedPropertyKeyRange & TSESTree.Literal);
|
|
172
|
-
/** Stable property-key range metadata. */
|
|
173
|
-
interface SupportedPropertyKeyRange {
|
|
174
|
-
/** Absolute range of the property key inside the source file. */
|
|
175
|
-
range: TSESTree.Range;
|
|
176
|
-
}
|
|
177
|
-
/** Stable property-value range metadata. */
|
|
178
|
-
interface SupportedPropertyValueRange {
|
|
179
|
-
/** Absolute range of the property value inside the source file. */
|
|
180
|
-
range: TSESTree.Range;
|
|
181
|
-
}
|
|
182
|
-
/** Property-symbol lookup keyed by object literal property name. */
|
|
183
|
-
type TargetPropertyMap = ReadonlyMap<string, ts.Symbol>;
|
|
184
|
-
/** Typed rule context used by the typed RuleCreator wrapper. */
|
|
185
|
-
type TypedRuleContext = Readonly<TSESLint.RuleContext<MessageIds, Options>>;
|
|
186
|
-
export type { BuildMatchResultContext, BuildPropertyReplacementContext, CollectMatchContext, CollectPropertyReplacementsContext, FactoryFunctionExpression, FactoryMatchInput, MatchResult, MessageIds, MockFactoryArguments, Options, OuterCastContext, ParserServices, PropertyReplacement, PropertyReplacementCollection, ResolveFactoryTargetTypeContext, ShorthandContext, SupportedProperty, TargetPropertyMap, TypedRuleContext, };
|
|
187
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vitest-incremental-casts/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpdGVzdC1pbmNyZW1lbnRhbC1jYXN0cy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFU0xpbnRVdGlscywgVFNFU0xpbnQsIFRTRVNUcmVlIH0gZnJvbSBcIkB0eXBlc2NyaXB0LWVzbGludC91dGlsc1wiO1xyXG5pbXBvcnQgdHlwZSAqIGFzIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XHJcblxyXG4vKiogQ29udGV4dCB1c2VkIHRvIGJ1aWxkIHRoZSBmaW5hbCByZXBsYWNlbWVudCBmb3IgYSBtYXRjaGluZyBtb2NrIG9iamVjdC4gKi9cclxuaW50ZXJmYWNlIEJ1aWxkTWF0Y2hSZXN1bHRDb250ZXh0IHtcclxuICAvKiogVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIgdXNlZCBmb3IgYXNzaWduYWJpbGl0eSBjaGVja3MuICovXHJcbiAgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXI7XHJcblxyXG4gIC8qKiBGYWN0b3J5IGZ1bmN0aW9uIHN1cHBsaWVkIHRvIGB2aS5tb2NrYCBvciBgdmkuZG9Nb2NrYC4gKi9cclxuICBmYWN0b3J5QXJndW1lbnQ6IEZhY3RvcnlGdW5jdGlvbkV4cHJlc3Npb247XHJcblxyXG4gIC8qKiBTdGF0aWMgbW9kdWxlIHNwZWNpZmllciB1c2VkIGJ5IHRoZSBtb2NrIGNhbGwuICovXHJcbiAgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmc7XHJcblxyXG4gIC8qKiBOYW1lc3BhY2UgYWxpYXMgZm9yIHRoZSBtb2R1bGUgc3BlY2lmaWVyLCB3aGVuIGEgbmFtZXNwYWNlIGltcG9ydCBpcyBwcmVzZW50LiAqL1xyXG4gIG5hbWVzcGFjZUFsaWFzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKiBSZXR1cm5lZCBvYmplY3QgbGl0ZXJhbCBmcm9tIHRoZSBtb2NrIGZhY3RvcnkuICovXHJcbiAgb2JqZWN0RXhwcmVzc2lvbjogVFNFU1RyZWUuT2JqZWN0RXhwcmVzc2lvbjtcclxuXHJcbiAgLyoqIFByb3BlcnR5IG5hbWVzIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgcmV3cml0dGVuIG9iamVjdCBsaXRlcmFsLiAqL1xyXG4gIHByb3BlcnR5TmFtZXM6IFNldDxzdHJpbmc+O1xyXG5cclxuICAvKiogTmVzdGVkIHByb3BlcnR5IHJlcGxhY2VtZW50cyBjb2xsZWN0ZWQgZm9yIHRoZSBvYmplY3QgbGl0ZXJhbC4gKi9cclxuICByZXBsYWNlbWVudHM6IFByb3BlcnR5UmVwbGFjZW1lbnRbXTtcclxuXHJcbiAgLyoqIEV4cHJlc3Npb24gcmV0dXJuZWQgYnkgdGhlIG1vY2sgZmFjdG9yeS4gKi9cclxuICByZXR1cm5FeHByZXNzaW9uOiBUU0VTVHJlZS5FeHByZXNzaW9uO1xyXG5cclxuICAvKiogRnVsbCBzb3VyY2UgdGV4dCBvZiB0aGUgY3VycmVudCBmaWxlLiAqL1xyXG4gIHNvdXJjZVRleHQ6IHN0cmluZztcclxuXHJcbiAgLyoqIFRhcmdldCB0eXBlIGluZmVycmVkIGZvciB0aGUgZmFjdG9yeSBvYmplY3QuICovXHJcbiAgdGFyZ2V0VHlwZTogdHMuVHlwZTtcclxufVxyXG5cclxuLyoqIENvbnRleHQgcmVxdWlyZWQgdG8gcmVwbGFjZSBvbmUgb2JqZWN0IGxpdGVyYWwgcHJvcGVydHkgc2FmZWx5LiAqL1xyXG5pbnRlcmZhY2UgQnVpbGRQcm9wZXJ0eVJlcGxhY2VtZW50Q29udGV4dCB7XHJcbiAgLyoqIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyIHVzZWQgZm9yIGFzc2lnbmFiaWxpdHkgY2hlY2tzLiAqL1xyXG4gIGNoZWNrZXI6IHRzLlR5cGVDaGVja2VyO1xyXG5cclxuICAvKiogU3RhYmxlIHByb3BlcnR5IGtleSBuYW1lIGZyb20gdGhlIG1vY2sgb2JqZWN0IGxpdGVyYWwuICovXHJcbiAga2V5TmFtZTogc3RyaW5nO1xyXG5cclxuICAvKiogU3RhdGljIG1vZHVsZSBzcGVjaWZpZXIgdXNlZCBieSB0aGUgbW9jayBjYWxsLiAqL1xyXG4gIG1vZHVsZVNwZWNpZmllcjogc3RyaW5nO1xyXG5cclxuICAvKiogTmFtZXNwYWNlIGFsaWFzIGZvciB0aGUgbW9kdWxlIHNwZWNpZmllciwgd2hlbiBhIG5hbWVzcGFjZSBpbXBvcnQgaXMgcHJlc2VudC4gKi9cclxuICBuYW1lc3BhY2VBbGlhczogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKiogU3VwcG9ydGVkIHByb3BlcnR5IGJlaW5nIHJld3JpdHRlbi4gKi9cclxuICBwcm9wZXJ0eTogU3VwcG9ydGVkUHJvcGVydHk7XHJcblxyXG4gIC8qKiBQYXJzZXIgc2VydmljZXMgc3VwcGxpZWQgYnkgYEB0eXBlc2NyaXB0LWVzbGludGAuICovXHJcbiAgc2VydmljZXM6IFBhcnNlclNlcnZpY2VzO1xyXG5cclxuICAvKiogRnVsbCBzb3VyY2UgdGV4dCBvZiB0aGUgY3VycmVudCBmaWxlLiAqL1xyXG4gIHNvdXJjZVRleHQ6IHN0cmluZztcclxuXHJcbiAgLyoqIFRhcmdldCBwcm9wZXJ0eSBzeW1ib2wgZnJvbSB0aGUgaW1wb3J0ZWQgbW9kdWxlIHR5cGUuICovXHJcbiAgdGFyZ2V0UHJvcGVydHlTeW1ib2w6IHRzLlN5bWJvbDtcclxufVxyXG5cclxuLyoqIElucHV0IHJlcXVpcmVkIHRvIGFuYWx5emUgYSBgdmkubW9ja2Agb3IgYHZpLmRvTW9ja2AgY2FsbC4gKi9cclxuaW50ZXJmYWNlIENvbGxlY3RNYXRjaENvbnRleHQge1xyXG4gIC8qKiBDYWxsIGV4cHJlc3Npb24gY3VycmVudGx5IGJlaW5nIGFuYWx5emVkLiAqL1xyXG4gIGNhbGxFeHByZXNzaW9uOiBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbjtcclxuXHJcbiAgLyoqIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyIHVzZWQgZm9yIGFzc2lnbmFiaWxpdHkgY2hlY2tzLiAqL1xyXG4gIGNoZWNrZXI6IHRzLlR5cGVDaGVja2VyO1xyXG5cclxuICAvKiogTmFtZXNwYWNlIGltcG9ydHMgcHJlc2VudCBpbiB0aGUgY3VycmVudCBmaWxlLCBrZXllZCBieSBtb2R1bGUgc3BlY2lmaWVyLiAqL1xyXG4gIG5hbWVzcGFjZUltcG9ydHM6IFJlYWRvbmx5TWFwPHN0cmluZywgc3RyaW5nPjtcclxuXHJcbiAgLyoqIFBhcnNlciBzZXJ2aWNlcyBzdXBwbGllZCBieSBgQHR5cGVzY3JpcHQtZXNsaW50YC4gKi9cclxuICBzZXJ2aWNlczogUGFyc2VyU2VydmljZXM7XHJcblxyXG4gIC8qKiBGdWxsIHNvdXJjZSB0ZXh0IG9mIHRoZSBjdXJyZW50IGZpbGUuICovXHJcbiAgc291cmNlVGV4dDogc3RyaW5nO1xyXG59XHJcblxyXG4vKiogQ29udGV4dCB1c2VkIHRvIGNvbGxlY3QgbmVzdGVkIHByb3BlcnR5IHJlcGxhY2VtZW50cy4gKi9cclxuaW50ZXJmYWNlIENvbGxlY3RQcm9wZXJ0eVJlcGxhY2VtZW50c0NvbnRleHQge1xyXG4gIC8qKiBUeXBlU2NyaXB0IHR5cGUgY2hlY2tlciB1c2VkIGZvciBhc3NpZ25hYmlsaXR5IGNoZWNrcy4gKi9cclxuICBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcjtcclxuXHJcbiAgLyoqIFN0YXRpYyBtb2R1bGUgc3BlY2lmaWVyIHVzZWQgYnkgdGhlIG1vY2sgY2FsbC4gKi9cclxuICBtb2R1bGVTcGVjaWZpZXI6IHN0cmluZztcclxuXHJcbiAgLyoqIE5hbWVzcGFjZSBhbGlhcyBmb3IgdGhlIG1vZHVsZSBzcGVjaWZpZXIsIHdoZW4gYSBuYW1lc3BhY2UgaW1wb3J0IGlzIHByZXNlbnQuICovXHJcbiAgbmFtZXNwYWNlQWxpYXM6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqIFJldHVybmVkIG9iamVjdCBsaXRlcmFsIGZyb20gdGhlIG1vY2sgZmFjdG9yeS4gKi9cclxuICBvYmplY3RFeHByZXNzaW9uOiBUU0VTVHJlZS5PYmplY3RFeHByZXNzaW9uO1xyXG5cclxuICAvKiogUGFyc2VyIHNlcnZpY2VzIHN1cHBsaWVkIGJ5IGBAdHlwZXNjcmlwdC1lc2xpbnRgLiAqL1xyXG4gIHNlcnZpY2VzOiBQYXJzZXJTZXJ2aWNlcztcclxuXHJcbiAgLyoqIEZ1bGwgc291cmNlIHRleHQgb2YgdGhlIGN1cnJlbnQgZmlsZS4gKi9cclxuICBzb3VyY2VUZXh0OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBUYXJnZXQgdHlwZSBpbmZlcnJlZCBmb3IgdGhlIGZhY3Rvcnkgb2JqZWN0LiAqL1xyXG4gIHRhcmdldFR5cGU6IHRzLlR5cGU7XHJcbn1cclxuXHJcbi8qKiBGdW5jdGlvbiBleHByZXNzaW9ucyBzdXBwb3J0ZWQgYXMgVml0ZXN0IG1vY2sgZmFjdG9yaWVzLiAqL1xyXG50eXBlIEZhY3RvcnlGdW5jdGlvbkV4cHJlc3Npb24gPVxyXG4gIHwgVFNFU1RyZWUuQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cclxuICB8IFRTRVNUcmVlLkZ1bmN0aW9uRXhwcmVzc2lvbjtcclxuXHJcbi8qKiBSZXNvbHZlZCBpbnB1dHMgcmVxdWlyZWQgdG8gYW5hbHl6ZSBhIG1hdGNoaW5nIFZpdGVzdCBtb2NrIGZhY3RvcnkuICovXHJcbmludGVyZmFjZSBGYWN0b3J5TWF0Y2hJbnB1dCB7XHJcbiAgLyoqIEZhY3RvcnkgZnVuY3Rpb24gc3VwcGxpZWQgdG8gYHZpLm1vY2tgIG9yIGB2aS5kb01vY2tgLiAqL1xyXG4gIGZhY3RvcnlBcmd1bWVudDogRmFjdG9yeUZ1bmN0aW9uRXhwcmVzc2lvbjtcclxuXHJcbiAgLyoqIFN0YXRpYyBtb2R1bGUgc3BlY2lmaWVyIHVzZWQgYnkgdGhlIG1vY2sgY2FsbC4gKi9cclxuICBtb2R1bGVTcGVjaWZpZXI6IHN0cmluZztcclxuXHJcbiAgLyoqIFJldHVybmVkIG9iamVjdCBsaXRlcmFsIGZyb20gdGhlIG1vY2sgZmFjdG9yeS4gKi9cclxuICBvYmplY3RFeHByZXNzaW9uOiBUU0VTVHJlZS5PYmplY3RFeHByZXNzaW9uO1xyXG5cclxuICAvKiogRXhwcmVzc2lvbiByZXR1cm5lZCBieSB0aGUgbW9jayBmYWN0b3J5LiAqL1xyXG4gIHJldHVybkV4cHJlc3Npb246IFRTRVNUcmVlLkV4cHJlc3Npb247XHJcbn1cclxuXHJcbi8qKiBUZXh0IHJlcGxhY2VtZW50IGVtaXR0ZWQgZm9yIGEgbWF0Y2hpbmcgZmFjdG9yeSBvYmplY3QuICovXHJcbmludGVyZmFjZSBNYXRjaFJlc3VsdCB7XHJcbiAgLyoqIFJlcGxhY2VtZW50IHNvdXJjZSB0ZXh0IGZvciB0aGUgcmV0dXJuZWQgb2JqZWN0IGV4cHJlc3Npb24uICovXHJcbiAgcmVwbGFjZW1lbnRUZXh0OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBBYnNvbHV0ZSByYW5nZSBvZiB0aGUgcmV0dXJuIGV4cHJlc3Npb24gdG8gcmVwbGFjZS4gKi9cclxuICByZXR1cm5FeHByZXNzaW9uUmFuZ2U6IFRTRVNUcmVlLlJhbmdlO1xyXG59XHJcblxyXG4vKiogUnVsZSBtZXNzYWdlIGlkZW50aWZpZXJzIGVtaXR0ZWQgYnkgdGhpcyBydWxlLiAqL1xyXG50eXBlIE1lc3NhZ2VJZHMgPSBcInByZWZlclZpdGVzdEluY3JlbWVudGFsQ2FzdHNcIjtcclxuXHJcbi8qKiBOb3JtYWxpemVkIGFyZ3VtZW50cyBleHRyYWN0ZWQgZnJvbSBhIHN1cHBvcnRlZCBtb2NrIGNhbGwuICovXHJcbmludGVyZmFjZSBNb2NrRmFjdG9yeUFyZ3VtZW50cyB7XHJcbiAgLyoqIEZhY3RvcnkgZnVuY3Rpb24gc3VwcGxpZWQgdG8gYHZpLm1vY2tgIG9yIGB2aS5kb01vY2tgLiAqL1xyXG4gIGZhY3RvcnlBcmd1bWVudDogRmFjdG9yeUZ1bmN0aW9uRXhwcmVzc2lvbjtcclxuXHJcbiAgLyoqIFN0YXRpYyBvciBpbXBvcnQtZXhwcmVzc2lvbiBtb2R1bGUgYXJndW1lbnQuICovXHJcbiAgbW9kdWxlQXJndW1lbnQ6IFRTRVNUcmVlLkV4cHJlc3Npb247XHJcbn1cclxuXHJcbi8qKiBSdWxlIG9wdGlvbnMgYWNjZXB0ZWQgYnkgdGhpcyBydWxlLiAqL1xyXG50eXBlIE9wdGlvbnMgPSBbXTtcclxuXHJcbi8qKiBDb250ZXh0IHJlcXVpcmVkIHRvIGRlY2lkZSB3aGV0aGVyIGFuIG91dGVyIGNhc3QgaXMgc3RpbGwgbmVlZGVkLiAqL1xyXG5pbnRlcmZhY2UgT3V0ZXJDYXN0Q29udGV4dCB7XHJcbiAgLyoqIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyIHVzZWQgZm9yIGFzc2lnbmFiaWxpdHkgY2hlY2tzLiAqL1xyXG4gIGNoZWNrZXI6IHRzLlR5cGVDaGVja2VyO1xyXG5cclxuICAvKiogUHJvcGVydHkgbmFtZXMgYWxyZWFkeSBwcmVzZW50IGluIHRoZSByZXdyaXR0ZW4gb2JqZWN0IGxpdGVyYWwuICovXHJcbiAgcHJvcGVydHlOYW1lczogUmVhZG9ubHlTZXQ8c3RyaW5nPjtcclxuXHJcbiAgLyoqIFRhcmdldCB0eXBlIGluZmVycmVkIGZvciB0aGUgZmFjdG9yeSBvYmplY3QuICovXHJcbiAgdGFyZ2V0VHlwZTogdHMuVHlwZTtcclxufVxyXG4vKiogUGFyc2VyIHNlcnZpY2VzIHJlc29sdmVkIGZyb20gdGhlIGNvbmZpZ3VyZWQgVHlwZVNjcmlwdCBwYXJzZXIuICovXHJcbnR5cGUgUGFyc2VyU2VydmljZXMgPSBSZXR1cm5UeXBlPHR5cGVvZiBFU0xpbnRVdGlscy5nZXRQYXJzZXJTZXJ2aWNlcz47XHJcbi8qKiBJbmRpdmlkdWFsIHJlcGxhY2VtZW50IGRldGFpbHMgZm9yIG9uZSBwcm9wZXJ0eSBpbnNpZGUgdGhlIG9iamVjdCBsaXRlcmFsLiAqL1xyXG5pbnRlcmZhY2UgUHJvcGVydHlSZXBsYWNlbWVudCB7XHJcbiAgLyoqIEFic29sdXRlIHJhbmdlIG9mIHRoZSBwcm9wZXJ0eSBpbnNpZGUgdGhlIG9iamVjdCBsaXRlcmFsLiAqL1xyXG4gIHJhbmdlOiBUU0VTVHJlZS5SYW5nZTtcclxuXHJcbiAgLyoqIFJlcGxhY2VtZW50IHNvdXJjZSB0ZXh0IGZvciB0aGUgcHJvcGVydHkuICovXHJcbiAgcmVwbGFjZW1lbnRUZXh0OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKiBSZXBsYWNlbWVudCBjb2xsZWN0aW9uIHJlc3VsdCBmb3IgdGhlIG9iamVjdCBsaXRlcmFsIHByb3BlcnRpZXMuICovXHJcbmludGVyZmFjZSBQcm9wZXJ0eVJlcGxhY2VtZW50Q29sbGVjdGlvbiB7XHJcbiAgLyoqIFByb3BlcnR5IG5hbWVzIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgcmV3cml0dGVuIG9iamVjdCBsaXRlcmFsLiAqL1xyXG4gIHByb3BlcnR5TmFtZXM6IFNldDxzdHJpbmc+O1xyXG5cclxuICAvKiogTmVzdGVkIHByb3BlcnR5IHJlcGxhY2VtZW50cyBjb2xsZWN0ZWQgZm9yIHRoZSBvYmplY3QgbGl0ZXJhbC4gKi9cclxuICByZXBsYWNlbWVudHM6IFByb3BlcnR5UmVwbGFjZW1lbnRbXTtcclxufVxyXG5cclxuLyoqIENvbnRleHQgZm9yIHJlc29sdmluZyB0aGUgdGFyZ2V0IHR5cGUgb2YgYSBtb2NrIGZhY3Rvcnkgb2JqZWN0IGxpdGVyYWwuICovXHJcbmludGVyZmFjZSBSZXNvbHZlRmFjdG9yeVRhcmdldFR5cGVDb250ZXh0IHtcclxuICAvKiogQ2FsbCBleHByZXNzaW9uIGN1cnJlbnRseSBiZWluZyBhbmFseXplZC4gKi9cclxuICBjYWxsRXhwcmVzc2lvbjogVFNFU1RyZWUuQ2FsbEV4cHJlc3Npb247XHJcblxyXG4gIC8qKiBUeXBlU2NyaXB0IHR5cGUgY2hlY2tlciB1c2VkIGZvciBhc3NpZ25hYmlsaXR5IGNoZWNrcy4gKi9cclxuICBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcjtcclxuXHJcbiAgLyoqIEZhY3RvcnkgZnVuY3Rpb24gc3VwcGxpZWQgdG8gYHZpLm1vY2tgIG9yIGB2aS5kb01vY2tgLiAqL1xyXG4gIGZhY3RvcnlBcmd1bWVudDogRmFjdG9yeUZ1bmN0aW9uRXhwcmVzc2lvbjtcclxuXHJcbiAgLyoqIFJldHVybmVkIG9iamVjdCBsaXRlcmFsIGZyb20gdGhlIG1vY2sgZmFjdG9yeS4gKi9cclxuICBvYmplY3RFeHByZXNzaW9uOiBUU0VTVHJlZS5PYmplY3RFeHByZXNzaW9uO1xyXG5cclxuICAvKiogUGFyc2VyIHNlcnZpY2VzIHN1cHBsaWVkIGJ5IGBAdHlwZXNjcmlwdC1lc2xpbnRgLiAqL1xyXG4gIHNlcnZpY2VzOiBQYXJzZXJTZXJ2aWNlcztcclxufVxyXG4vKiogQ29udGV4dCBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciBzaG9ydGhhbmQgc3ludGF4IHJlbWFpbnMgdmFsaWQuICovXHJcbmludGVyZmFjZSBTaG9ydGhhbmRDb250ZXh0IHtcclxuICAvKiogRXhwcmVzc2lvbiB1c2VkIGFzIHRoZSBwcm9wZXJ0eSdzIHZhbHVlLiAqL1xyXG4gIGJhc2VWYWx1ZTogVFNFU1RyZWUuRXhwcmVzc2lvbjtcclxuXHJcbiAgLyoqIFN0YWJsZSBwcm9wZXJ0eSBrZXkgbmFtZSBmcm9tIHRoZSBtb2NrIG9iamVjdCBsaXRlcmFsLiAqL1xyXG4gIGtleU5hbWU6IHN0cmluZztcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIHByb3BlcnR5IHZhbHVlIG5lZWRzIGEgbmVzdGVkIGNhc3QuICovXHJcbiAgbmVlZHNDYXN0OiBib29sZWFuO1xyXG5cclxuICAvKiogU3VwcG9ydGVkIHByb3BlcnR5IGJlaW5nIHJld3JpdHRlbi4gKi9cclxuICBwcm9wZXJ0eTogU3VwcG9ydGVkUHJvcGVydHk7XHJcbn1cclxuLyoqIE9iamVjdCBsaXRlcmFsIHByb3BlcnRpZXMgc3VwcG9ydGVkIGJ5IHRoZSBmaXhlci4gKi9cclxudHlwZSBTdXBwb3J0ZWRQcm9wZXJ0eSA9IEV4dHJhY3Q8XHJcbiAgVFNFU1RyZWUuT2JqZWN0TGl0ZXJhbEVsZW1lbnQsXHJcbiAgVFNFU1RyZWUuUHJvcGVydHlcclxuPiAmIHtcclxuICAvKiogSW5kaWNhdGVzIHRoYXQgY29tcHV0ZWQgcHJvcGVydHkgc3ludGF4IGlzIG5vdCBhbGxvd2VkLiAqL1xyXG4gIGNvbXB1dGVkOiBmYWxzZTtcclxuXHJcbiAgLyoqIFJlc3RyaWN0cyB0aGUga2V5IHRvIHN0YXRpY2FsbHkgcmVhZGFibGUgcHJvcGVydHkgbmFtZXMuICovXHJcbiAga2V5OiBTdXBwb3J0ZWRQcm9wZXJ0eUtleTtcclxuXHJcbiAgLyoqIFJlc3RyaWN0cyB0aGUgcHJvcGVydHkgdG8gaW5pdGlhbGl6ZXIgc3ludGF4LiAqL1xyXG4gIGtpbmQ6IFwiaW5pdFwiO1xyXG5cclxuICAvKiogSW5kaWNhdGVzIHRoYXQgbWV0aG9kIHNob3J0aGFuZCBpcyBub3QgYWxsb3dlZC4gKi9cclxuICBtZXRob2Q6IGZhbHNlO1xyXG5cclxuICAvKiogQWJzb2x1dGUgcmFuZ2Ugb2YgdGhlIGZ1bGwgcHJvcGVydHkgaW5zaWRlIHRoZSBzb3VyY2UgZmlsZS4gKi9cclxuICByYW5nZTogVFNFU1RyZWUuUmFuZ2U7XHJcblxyXG4gIC8qKiBFeHByZXNzaW9uIHZhbHVlIGFzc2lnbmVkIHRvIHRoZSBwcm9wZXJ0eS4gKi9cclxuICB2YWx1ZTogU3VwcG9ydGVkUHJvcGVydHlWYWx1ZVJhbmdlICYgVFNFU1RyZWUuRXhwcmVzc2lvbjtcclxufTtcclxuLyoqIFByb3BlcnR5IGtleXMgc3VwcG9ydGVkIGJ5IHRoZSBmaXhlci4gKi9cclxudHlwZSBTdXBwb3J0ZWRQcm9wZXJ0eUtleSA9XHJcbiAgfCAoU3VwcG9ydGVkUHJvcGVydHlLZXlSYW5nZSAmIFRTRVNUcmVlLklkZW50aWZpZXIpXHJcbiAgfCAoU3VwcG9ydGVkUHJvcGVydHlLZXlSYW5nZSAmIFRTRVNUcmVlLkxpdGVyYWwpO1xyXG4vKiogU3RhYmxlIHByb3BlcnR5LWtleSByYW5nZSBtZXRhZGF0YS4gKi9cclxuaW50ZXJmYWNlIFN1cHBvcnRlZFByb3BlcnR5S2V5UmFuZ2Uge1xyXG4gIC8qKiBBYnNvbHV0ZSByYW5nZSBvZiB0aGUgcHJvcGVydHkga2V5IGluc2lkZSB0aGUgc291cmNlIGZpbGUuICovXHJcbiAgcmFuZ2U6IFRTRVNUcmVlLlJhbmdlO1xyXG59XHJcbi8qKiBTdGFibGUgcHJvcGVydHktdmFsdWUgcmFuZ2UgbWV0YWRhdGEuICovXHJcbmludGVyZmFjZSBTdXBwb3J0ZWRQcm9wZXJ0eVZhbHVlUmFuZ2Uge1xyXG4gIC8qKiBBYnNvbHV0ZSByYW5nZSBvZiB0aGUgcHJvcGVydHkgdmFsdWUgaW5zaWRlIHRoZSBzb3VyY2UgZmlsZS4gKi9cclxuICByYW5nZTogVFNFU1RyZWUuUmFuZ2U7XHJcbn1cclxuLyoqIFByb3BlcnR5LXN5bWJvbCBsb29rdXAga2V5ZWQgYnkgb2JqZWN0IGxpdGVyYWwgcHJvcGVydHkgbmFtZS4gKi9cclxudHlwZSBUYXJnZXRQcm9wZXJ0eU1hcCA9IFJlYWRvbmx5TWFwPHN0cmluZywgdHMuU3ltYm9sPjtcclxuXHJcbi8qKiBUeXBlZCBydWxlIGNvbnRleHQgdXNlZCBieSB0aGUgdHlwZWQgUnVsZUNyZWF0b3Igd3JhcHBlci4gKi9cclxudHlwZSBUeXBlZFJ1bGVDb250ZXh0ID0gUmVhZG9ubHk8VFNFU0xpbnQuUnVsZUNvbnRleHQ8TWVzc2FnZUlkcywgT3B0aW9ucz4+O1xyXG5cclxuZXhwb3J0IHR5cGUge1xyXG4gIEJ1aWxkTWF0Y2hSZXN1bHRDb250ZXh0LFxyXG4gIEJ1aWxkUHJvcGVydHlSZXBsYWNlbWVudENvbnRleHQsXHJcbiAgQ29sbGVjdE1hdGNoQ29udGV4dCxcclxuICBDb2xsZWN0UHJvcGVydHlSZXBsYWNlbWVudHNDb250ZXh0LFxyXG4gIEZhY3RvcnlGdW5jdGlvbkV4cHJlc3Npb24sXHJcbiAgRmFjdG9yeU1hdGNoSW5wdXQsXHJcbiAgTWF0Y2hSZXN1bHQsXHJcbiAgTWVzc2FnZUlkcyxcclxuICBNb2NrRmFjdG9yeUFyZ3VtZW50cyxcclxuICBPcHRpb25zLFxyXG4gIE91dGVyQ2FzdENvbnRleHQsXHJcbiAgUGFyc2VyU2VydmljZXMsXHJcbiAgUHJvcGVydHlSZXBsYWNlbWVudCxcclxuICBQcm9wZXJ0eVJlcGxhY2VtZW50Q29sbGVjdGlvbixcclxuICBSZXNvbHZlRmFjdG9yeVRhcmdldFR5cGVDb250ZXh0LFxyXG4gIFNob3J0aGFuZENvbnRleHQsXHJcbiAgU3VwcG9ydGVkUHJvcGVydHksXHJcbiAgVGFyZ2V0UHJvcGVydHlNYXAsXHJcbiAgVHlwZWRSdWxlQ29udGV4dCxcclxufTtcclxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-aaa-sections/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { requireAaaSectionsRule } from "./rule.js";
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcmVxdWlyZS1hYWEtc2VjdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgcmVxdWlyZUFhYVNlY3Rpb25zUnVsZSB9IGZyb20gXCIuL3J1bGVcIjtcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"missing-section-fixes.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-aaa-sections/missing-section-fixes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAmG1D;;;;;;;;;;;GAWG;AACH,iBAAS,wBAAwB,CAC/B,QAAQ,EAAE,iBAAiB,EAC3B,eAAe,EAAE,SAAS,QAAQ,EAAE,EACpC,KAAK,EAAE,IAAI,CAAC,SAAS,GACpB,IAAI,CAAC,GAAG,EAAE,CAWZ;AA4GD,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import { aaaPhaseOrder, getLineStartRange } from "../aaa/index.js";
|
|
2
|
-
/**
|
|
3
|
-
* Groups missing phases by insertion offset.
|
|
4
|
-
* @param anchors Anchor statements available for insertion.
|
|
5
|
-
* @param missingSections Missing AAA phases to insert.
|
|
6
|
-
* @returns Map of source offsets to phases that should be inserted there.
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* const anchorMap = buildAnchorMap({ firstStatement: { range: [0, 1] } as never, lastStatement: { range: [2, 3] } as never, middleStatement: { range: [1, 2] } as never }, ["Arrange"]);
|
|
10
|
-
* void anchorMap;
|
|
11
|
-
* ```
|
|
12
|
-
*/
|
|
13
|
-
function buildAnchorMap(anchors, missingSections) {
|
|
14
|
-
const anchorMap = new Map();
|
|
15
|
-
for (const phase of missingSections) {
|
|
16
|
-
const anchorNode = getAnchorNode(anchors, phase);
|
|
17
|
-
const existing = anchorMap.get(anchorNode.range[0]) ?? [];
|
|
18
|
-
existing.push(phase);
|
|
19
|
-
anchorMap.set(anchorNode.range[0], existing);
|
|
20
|
-
}
|
|
21
|
-
return anchorMap;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Builds one autofix that inserts missing section markers before a statement.
|
|
25
|
-
* @param input Composite input for one missing-section fix.
|
|
26
|
-
* @returns Fix that inserts the missing section marker text.
|
|
27
|
-
* @example
|
|
28
|
-
* ```typescript
|
|
29
|
-
* const fix = buildMissingSectionFix({ analysis: { newline: "\n", sourceText: "value" } as never, fixer: {} as never, offset: 0, phases: ["Arrange"] });
|
|
30
|
-
* void fix;
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
function buildMissingSectionFix(input) {
|
|
34
|
-
const { analysis, fixer, offset, phases } = input;
|
|
35
|
-
const sourceLines = analysis.sourceText.split(/\r\n|\n/u);
|
|
36
|
-
const sortedPhases = phases.toSorted((left, right) => aaaPhaseOrder[left] - aaaPhaseOrder[right]);
|
|
37
|
-
const statementLine = analysis.sourceText
|
|
38
|
-
.slice(0, offset)
|
|
39
|
-
.split(/\r\n|\n/u).length;
|
|
40
|
-
const lineStartRange = getLineStartRange(analysis.sourceText, statementLine);
|
|
41
|
-
const [previousLine = ""] = statementLine > 1
|
|
42
|
-
? sourceLines.slice(statementLine - 2, statementLine - 1)
|
|
43
|
-
: [];
|
|
44
|
-
const needsLeadingBlankLine = shouldInsertLeadingBlankLine(sortedPhases, previousLine);
|
|
45
|
-
const [currentLine = ""] = sourceLines.slice(statementLine - 1, statementLine);
|
|
46
|
-
const indentation = getLineIndentation(currentLine);
|
|
47
|
-
return fixer.insertTextBeforeRange(lineStartRange, `${needsLeadingBlankLine ? analysis.newline : ""}${indentation}// ${sortedPhases.join(" & ")}${analysis.newline}`);
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Builds autofix edits for each missing AAA section marker.
|
|
51
|
-
* @param analysis Parsed test-block analysis.
|
|
52
|
-
* @param missingSections Missing AAA phases to insert.
|
|
53
|
-
* @param fixer ESLint fixer instance.
|
|
54
|
-
* @returns Fixes that add the missing section comments.
|
|
55
|
-
* @example
|
|
56
|
-
* ```typescript
|
|
57
|
-
* const fixes = buildMissingSectionFixes({ newline: "\n", sourceText: "value" } as never, ["Arrange"], {} as never);
|
|
58
|
-
* void fixes;
|
|
59
|
-
* ```
|
|
60
|
-
*/
|
|
61
|
-
function buildMissingSectionFixes(analysis, missingSections, fixer) {
|
|
62
|
-
const anchors = getSectionAnchors(analysis);
|
|
63
|
-
if (anchors === void 0) {
|
|
64
|
-
return [];
|
|
65
|
-
}
|
|
66
|
-
return [...buildAnchorMap(anchors, missingSections).entries()].map(([offset, phases]) => buildMissingSectionFix({ analysis, fixer, offset, phases }));
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Selects the anchor statement used for one missing AAA phase.
|
|
70
|
-
* @param anchors Anchor statements available for insertion.
|
|
71
|
-
* @param phase Missing phase being inserted.
|
|
72
|
-
* @returns Statement node used as the insertion anchor.
|
|
73
|
-
* @example
|
|
74
|
-
* ```typescript
|
|
75
|
-
* const anchor = getAnchorNode({ firstStatement: {} as never, lastStatement: {} as never, middleStatement: {} as never }, "Arrange");
|
|
76
|
-
* void anchor;
|
|
77
|
-
* ```
|
|
78
|
-
*/
|
|
79
|
-
function getAnchorNode(anchors, phase) {
|
|
80
|
-
switch (phase) {
|
|
81
|
-
case "Act": {
|
|
82
|
-
return anchors.middleStatement;
|
|
83
|
-
}
|
|
84
|
-
case "Arrange": {
|
|
85
|
-
return anchors.firstStatement;
|
|
86
|
-
}
|
|
87
|
-
case "Assert": {
|
|
88
|
-
return anchors.lastStatement;
|
|
89
|
-
}
|
|
90
|
-
default: {
|
|
91
|
-
return anchors.lastStatement;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Reads the indentation prefix from a source line.
|
|
97
|
-
* @param lineText Source line text.
|
|
98
|
-
* @returns Leading whitespace for the line.
|
|
99
|
-
* @example
|
|
100
|
-
* ```typescript
|
|
101
|
-
* const indentation = getLineIndentation(" value");
|
|
102
|
-
* void indentation;
|
|
103
|
-
* ```
|
|
104
|
-
*/
|
|
105
|
-
function getLineIndentation(lineText) {
|
|
106
|
-
const trimmedLine = lineText.trimStart();
|
|
107
|
-
return lineText.slice(0, lineText.length - trimmedLine.length);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Selects the statement nodes used as insertion anchors for missing sections.
|
|
111
|
-
* @param analysis Parsed test-block analysis.
|
|
112
|
-
* @returns Anchor statements for Arrange, Act, and Assert insertion.
|
|
113
|
-
* @example
|
|
114
|
-
* ```typescript
|
|
115
|
-
* const anchors = getSectionAnchors({ statements: [] } as never);
|
|
116
|
-
* void anchors;
|
|
117
|
-
* ```
|
|
118
|
-
*/
|
|
119
|
-
function getSectionAnchors(analysis) {
|
|
120
|
-
const [firstStatementEntry] = analysis.statements;
|
|
121
|
-
const middleStatementEntry = analysis.statements[Math.min(analysis.statements.length - 1, Math.floor(analysis.statements.length / 2))];
|
|
122
|
-
const lastStatementEntry = analysis.statements.at(-1);
|
|
123
|
-
if (firstStatementEntry === void 0 ||
|
|
124
|
-
middleStatementEntry === void 0 ||
|
|
125
|
-
lastStatementEntry === void 0) {
|
|
126
|
-
return void 0;
|
|
127
|
-
}
|
|
128
|
-
return {
|
|
129
|
-
firstStatement: firstStatementEntry.node,
|
|
130
|
-
lastStatement: lastStatementEntry.node,
|
|
131
|
-
middleStatement: middleStatementEntry.node,
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Determines whether a missing section insertion needs a blank line prefix.
|
|
136
|
-
* @param phases Missing phases inserted at the same offset.
|
|
137
|
-
* @param previousLine Source line immediately above the insertion point.
|
|
138
|
-
* @returns Whether the inserted marker should start with a blank line.
|
|
139
|
-
* @example
|
|
140
|
-
* ```typescript
|
|
141
|
-
* const actual = shouldInsertLeadingBlankLine(["Act"], "run();");
|
|
142
|
-
* void actual;
|
|
143
|
-
* ```
|
|
144
|
-
*/
|
|
145
|
-
function shouldInsertLeadingBlankLine(phases, previousLine) {
|
|
146
|
-
return (phases.some((phase) => phase !== "Arrange") &&
|
|
147
|
-
previousLine.trim().length > 0);
|
|
148
|
-
}
|
|
149
|
-
export { buildMissingSectionFixes };
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzc2luZy1zZWN0aW9uLWZpeGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3JlcXVpcmUtYWFhLXNlY3Rpb25zL21pc3Npbmctc2VjdGlvbi1maXhlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBNkIxRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBUyxjQUFjLENBQ3JCLE9BQXlCLEVBQ3pCLGVBQW9DO0lBRXBDLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxFQUFzQixDQUFDO0lBRWhELEtBQUssTUFBTSxLQUFLLElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEMsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFMUQsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLHNCQUFzQixDQUFDLEtBQTZCO0lBQzNELE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDbEQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FD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ZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IEFhYVBoYXNlLCBUZXN0QmxvY2tBbmFseXNpcyB9IGZyb20gXCIuLi9hYWFcIjtcclxuXHJcbmltcG9ydCB7IGFhYVBoYXNlT3JkZXIsIGdldExpbmVTdGFydFJhbmdlIH0gZnJvbSBcIi4uL2FhYVwiO1xyXG5cclxuLyoqIENvbXBvc2l0ZSBpbnB1dCBmb3IgYnVpbGRpbmcgb25lIG1pc3Npbmctc2VjdGlvbiBmaXguICovXHJcbmludGVyZmFjZSBNaXNzaW5nU2VjdGlvbkZpeElucHV0IHtcclxuICAvKiogUGFyc2VkIHRlc3QtYmxvY2sgYW5hbHlzaXMuICovXHJcbiAgYW5hbHlzaXM6IFRlc3RCbG9ja0FuYWx5c2lzO1xyXG5cclxuICAvKiogRVNMaW50IGZpeGVyIGluc3RhbmNlLiAqL1xyXG4gIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcjtcclxuXHJcbiAgLyoqIFNvdXJjZSBvZmZzZXQgd2hlcmUgdGhlIHNlY3Rpb24gbWFya2VyIHNob3VsZCBiZSBpbnNlcnRlZC4gKi9cclxuICBvZmZzZXQ6IG51bWJlcjtcclxuXHJcbiAgLyoqIE1pc3NpbmcgcGhhc2VzIHRoYXQgc2hhcmUgdGhlIHNhbWUgaW5zZXJ0aW9uIG9mZnNldC4gKi9cclxuICBwaGFzZXM6IHJlYWRvbmx5IEFhYVBoYXNlW107XHJcbn1cclxuXHJcbi8qKiBBbmNob3Igc3RhdGVtZW50cyB1c2VkIHRvIHBsYWNlIG1pc3NpbmcgQUFBIHNlY3Rpb24gY29tbWVudHMuICovXHJcbmludGVyZmFjZSBTdGF0ZW1lbnRBbmNob3JzIHtcclxuICAvKiogRmlyc3Qgc3RhdGVtZW50IGF2YWlsYWJsZSBmb3IgYW4gQXJyYW5nZSBpbnNlcnRpb24uICovXHJcbiAgZmlyc3RTdGF0ZW1lbnQ6IFRlc3RCbG9ja0FuYWx5c2lzW1wic3RhdGVtZW50c1wiXVtudW1iZXJdW1wibm9kZVwiXTtcclxuXHJcbiAgLyoqIExhc3Qgc3RhdGVtZW50IGF2YWlsYWJsZSBmb3IgYW4gQXNzZXJ0IGluc2VydGlvbi4gKi9cclxuICBsYXN0U3RhdGVtZW50OiBUZXN0QmxvY2tBbmFseXNpc1tcInN0YXRlbWVudHNcIl1bbnVtYmVyXVtcIm5vZGVcIl07XHJcblxyXG4gIC8qKiBNaWRkbGUgc3RhdGVtZW50IGF2YWlsYWJsZSBmb3IgYW4gQWN0IGluc2VydGlvbi4gKi9cclxuICBtaWRkbGVTdGF0ZW1lbnQ6IFRlc3RCbG9ja0FuYWx5c2lzW1wic3RhdGVtZW50c1wiXVtudW1iZXJdW1wibm9kZVwiXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdyb3VwcyBtaXNzaW5nIHBoYXNlcyBieSBpbnNlcnRpb24gb2Zmc2V0LlxyXG4gKiBAcGFyYW0gYW5jaG9ycyBBbmNob3Igc3RhdGVtZW50cyBhdmFpbGFibGUgZm9yIGluc2VydGlvbi5cclxuICogQHBhcmFtIG1pc3NpbmdTZWN0aW9ucyBNaXNzaW5nIEFBQSBwaGFzZXMgdG8gaW5zZXJ0LlxyXG4gKiBAcmV0dXJucyBNYXAgb2Ygc291cmNlIG9mZnNldHMgdG8gcGhhc2VzIHRoYXQgc2hvdWxkIGJlIGluc2VydGVkIHRoZXJlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGFuY2hvck1hcCA9IGJ1aWxkQW5jaG9yTWFwKHsgZmlyc3RTdGF0ZW1lbnQ6IHsgcmFuZ2U6IFswLCAxXSB9IGFzIG5ldmVyLCBsYXN0U3RhdGVtZW50OiB7IHJhbmdlOiBbMiwgM10gfSBhcyBuZXZlciwgbWlkZGxlU3RhdGVtZW50OiB7IHJhbmdlOiBbMSwgMl0gfSBhcyBuZXZlciB9LCBbXCJBcnJhbmdlXCJdKTtcclxuICogdm9pZCBhbmNob3JNYXA7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRBbmNob3JNYXAoXHJcbiAgYW5jaG9yczogU3RhdGVtZW50QW5jaG9ycyxcclxuICBtaXNzaW5nU2VjdGlvbnM6IHJlYWRvbmx5IEFhYVBoYXNlW10sXHJcbik6IE1hcDxudW1iZXIsIEFhYVBoYXNlW10+IHtcclxuICBjb25zdCBhbmNob3JNYXAgPSBuZXcgTWFwPG51bWJlciwgQWFhUGhhc2VbXT4oKTtcclxuXHJcbiAgZm9yIChjb25zdCBwaGFzZSBvZiBtaXNzaW5nU2VjdGlvbnMpIHtcclxuICAgIGNvbnN0IGFuY2hvck5vZGUgPSBnZXRBbmNob3JOb2RlKGFuY2hvcnMsIHBoYXNlKTtcclxuICAgIGNvbnN0IGV4aXN0aW5nID0gYW5jaG9yTWFwLmdldChhbmNob3JOb2RlLnJhbmdlWzBdKSA/PyBbXTtcclxuXHJcbiAgICBleGlzdGluZy5wdXNoKHBoYXNlKTtcclxuICAgIGFuY2hvck1hcC5zZXQoYW5jaG9yTm9kZS5yYW5nZVswXSwgZXhpc3RpbmcpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGFuY2hvck1hcDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEJ1aWxkcyBvbmUgYXV0b2ZpeCB0aGF0IGluc2VydHMgbWlzc2luZyBzZWN0aW9uIG1hcmtlcnMgYmVmb3JlIGEgc3RhdGVtZW50LlxyXG4gKiBAcGFyYW0gaW5wdXQgQ29tcG9zaXRlIGlucHV0IGZvciBvbmUgbWlzc2luZy1zZWN0aW9uIGZpeC5cclxuICogQHJldHVybnMgRml4IHRoYXQgaW5zZXJ0cyB0aGUgbWlzc2luZyBzZWN0aW9uIG1hcmtlciB0ZXh0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGZpeCA9IGJ1aWxkTWlzc2luZ1NlY3Rpb25GaXgoeyBhbmFseXNpczogeyBuZXdsaW5lOiBcIlxcblwiLCBzb3VyY2VUZXh0OiBcInZhbHVlXCIgfSBhcyBuZXZlciwgZml4ZXI6IHt9IGFzIG5ldmVyLCBvZmZzZXQ6IDAsIHBoYXNlczogW1wiQXJyYW5nZVwiXSB9KTtcclxuICogdm9pZCBmaXg7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRNaXNzaW5nU2VjdGlvbkZpeChpbnB1dDogTWlzc2luZ1NlY3Rpb25GaXhJbnB1dCk6IFJ1bGUuRml4IHtcclxuICBjb25zdCB7IGFuYWx5c2lzLCBmaXhlciwgb2Zmc2V0LCBwaGFzZXMgfSA9IGlucHV0O1xyXG4gIGNvbnN0IHNvdXJjZUxpbmVzID0gYW5hbHlzaXMuc291cmNlVGV4dC5zcGxpdCgvXFxyXFxufFxcbi91KTtcclxuICBjb25zdCBzb3J0ZWRQaGFzZXMgPSBwaGFzZXMudG9Tb3J0ZWQoXHJcbiAgICAobGVmdCwgcmlnaHQpID0+IGFhYVBoYXNlT3JkZXJbbGVmdF0gLSBhYWFQaGFzZU9yZGVyW3JpZ2h0XSxcclxuICApO1xyXG4gIGNvbnN0IHN0YXRlbWVudExpbmUgPSBhbmFseXNpcy5zb3VyY2VUZXh0XHJcbiAgICAuc2xpY2UoMCwgb2Zmc2V0KVxyXG4gICAgLnNwbGl0KC9cXHJcXG58XFxuL3UpLmxlbmd0aDtcclxuICBjb25zdCBsaW5lU3RhcnRSYW5nZSA9IGdldExpbmVTdGFydFJhbmdlKGFuYWx5c2lzLnNvdXJjZVRleHQsIHN0YXRlbWVudExpbmUpO1xyXG4gIGNvbnN0IFtwcmV2aW91c0xpbmUgPSBcIlwiXSA9XHJcbiAgICBzdGF0ZW1lbnRMaW5lID4gMVxyXG4gICAgICA/IHNvdXJjZUxpbmVzLnNsaWNlKHN0YXRlbWVudExpbmUgLSAyLCBzdGF0ZW1lbnRMaW5lIC0gMSlcclxuICAgICAgOiBbXTtcclxuICBjb25zdCBuZWVkc0xlYWRpbmdCbGFua0xpbmUgPSBzaG91bGRJbnNlcnRMZWFkaW5nQmxhbmtMaW5lKFxyXG4gICAgc29ydGVkUGhhc2VzLFxyXG4gICAgcHJldmlvdXNMaW5lLFxyXG4gICk7XHJcbiAgY29uc3QgW2N1cnJlbnRMaW5lID0gXCJcIl0gPSBzb3VyY2VMaW5lcy5zbGljZShcclxuICAgIHN0YXRlbWVudExpbmUgLSAxLFxyXG4gICAgc3RhdGVtZW50TGluZSxcclxuICApO1xyXG4gIGNvbnN0IGluZGVudGF0aW9uID0gZ2V0TGluZUluZGVudGF0aW9uKGN1cnJlbnRMaW5lKTtcclxuXHJcbiAgcmV0dXJuIGZpeGVyLmluc2VydFRleHRCZWZvcmVSYW5nZShcclxuICAgIGxpbmVTdGFydFJhbmdlLFxyXG4gICAgYCR7bmVlZHNMZWFkaW5nQmxhbmtMaW5lID8gYW5hbHlzaXMubmV3bGluZSA6IFwiXCJ9JHtpbmRlbnRhdGlvbn0vLyAke3NvcnRlZFBoYXNlcy5qb2luKFwiICYgXCIpfSR7YW5hbHlzaXMubmV3bGluZX1gLFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCdWlsZHMgYXV0b2ZpeCBlZGl0cyBmb3IgZWFjaCBtaXNzaW5nIEFBQSBzZWN0aW9uIG1hcmtlci5cclxuICogQHBhcmFtIGFuYWx5c2lzIFBhcnNlZCB0ZXN0LWJsb2NrIGFuYWx5c2lzLlxyXG4gKiBAcGFyYW0gbWlzc2luZ1NlY3Rpb25zIE1pc3NpbmcgQUFBIHBoYXNlcyB0byBpbnNlcnQuXHJcbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIgaW5zdGFuY2UuXHJcbiAqIEByZXR1cm5zIEZpeGVzIHRoYXQgYWRkIHRoZSBtaXNzaW5nIHNlY3Rpb24gY29tbWVudHMuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZml4ZXMgPSBidWlsZE1pc3NpbmdTZWN0aW9uRml4ZXMoeyBuZXdsaW5lOiBcIlxcblwiLCBzb3VyY2VUZXh0OiBcInZhbHVlXCIgfSBhcyBuZXZlciwgW1wiQXJyYW5nZVwiXSwge30gYXMgbmV2ZXIpO1xyXG4gKiB2b2lkIGZpeGVzO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGJ1aWxkTWlzc2luZ1NlY3Rpb25GaXhlcyhcclxuICBhbmFseXNpczogVGVzdEJsb2NrQW5hbHlzaXMsXHJcbiAgbWlzc2luZ1NlY3Rpb25zOiByZWFkb25seSBBYWFQaGFzZVtdLFxyXG4gIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcixcclxuKTogUnVsZS5GaXhbXSB7XHJcbiAgY29uc3QgYW5jaG9ycyA9IGdldFNlY3Rpb25BbmNob3JzKGFuYWx5c2lzKTtcclxuXHJcbiAgaWYgKGFuY2hvcnMgPT09IHZvaWQgMCkge1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIFsuLi5idWlsZEFuY2hvck1hcChhbmNob3JzLCBtaXNzaW5nU2VjdGlvbnMpLmVudHJpZXMoKV0ubWFwKFxyXG4gICAgKFtvZmZzZXQsIHBoYXNlc10pID0+XHJcbiAgICAgIGJ1aWxkTWlzc2luZ1NlY3Rpb25GaXgoeyBhbmFseXNpcywgZml4ZXIsIG9mZnNldCwgcGhhc2VzIH0pLFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZWxlY3RzIHRoZSBhbmNob3Igc3RhdGVtZW50IHVzZWQgZm9yIG9uZSBtaXNzaW5nIEFBQSBwaGFzZS5cclxuICogQHBhcmFtIGFuY2hvcnMgQW5jaG9yIHN0YXRlbWVudHMgYXZhaWxhYmxlIGZvciBpbnNlcnRpb24uXHJcbiAqIEBwYXJhbSBwaGFzZSBNaXNzaW5nIHBoYXNlIGJlaW5nIGluc2VydGVkLlxyXG4gKiBAcmV0dXJucyBTdGF0ZW1lbnQgbm9kZSB1c2VkIGFzIHRoZSBpbnNlcnRpb24gYW5jaG9yLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGFuY2hvciA9IGdldEFuY2hvck5vZGUoeyBmaXJzdFN0YXRlbWVudDoge30gYXMgbmV2ZXIsIGxhc3RTdGF0ZW1lbnQ6IHt9IGFzIG5ldmVyLCBtaWRkbGVTdGF0ZW1lbnQ6IHt9IGFzIG5ldmVyIH0sIFwiQXJyYW5nZVwiKTtcclxuICogdm9pZCBhbmNob3I7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0QW5jaG9yTm9kZShcclxuICBhbmNob3JzOiBTdGF0ZW1lbnRBbmNob3JzLFxyXG4gIHBoYXNlOiBBYWFQaGFzZSxcclxuKTogU3RhdGVtZW50QW5jaG9yc1trZXlvZiBTdGF0ZW1lbnRBbmNob3JzXSB7XHJcbiAgc3dpdGNoIChwaGFzZSkge1xyXG4gICAgY2FzZSBcIkFjdFwiOiB7XHJcbiAgICAgIHJldHVybiBhbmNob3JzLm1pZGRsZVN0YXRlbWVudDtcclxuICAgIH1cclxuICAgIGNhc2UgXCJBcnJhbmdlXCI6IHtcclxuICAgICAgcmV0dXJuIGFuY2hvcnMuZmlyc3RTdGF0ZW1lbnQ7XHJcbiAgICB9XHJcbiAgICBjYXNlIFwiQXNzZXJ0XCI6IHtcclxuICAgICAgcmV0dXJuIGFuY2hvcnMubGFzdFN0YXRlbWVudDtcclxuICAgIH1cclxuICAgIGRlZmF1bHQ6IHtcclxuICAgICAgcmV0dXJuIGFuY2hvcnMubGFzdFN0YXRlbWVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZWFkcyB0aGUgaW5kZW50YXRpb24gcHJlZml4IGZyb20gYSBzb3VyY2UgbGluZS5cclxuICogQHBhcmFtIGxpbmVUZXh0IFNvdXJjZSBsaW5lIHRleHQuXHJcbiAqIEByZXR1cm5zIExlYWRpbmcgd2hpdGVzcGFjZSBmb3IgdGhlIGxpbmUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgaW5kZW50YXRpb24gPSBnZXRMaW5lSW5kZW50YXRpb24oXCIgIHZhbHVlXCIpO1xyXG4gKiB2b2lkIGluZGVudGF0aW9uO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldExpbmVJbmRlbnRhdGlvbihsaW5lVGV4dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICBjb25zdCB0cmltbWVkTGluZSA9IGxpbmVUZXh0LnRyaW1TdGFydCgpO1xyXG5cclxuICByZXR1cm4gbGluZVRleHQuc2xpY2UoMCwgbGluZVRleHQubGVuZ3RoIC0gdHJpbW1lZExpbmUubGVuZ3RoKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNlbGVjdHMgdGhlIHN0YXRlbWVudCBub2RlcyB1c2VkIGFzIGluc2VydGlvbiBhbmNob3JzIGZvciBtaXNzaW5nIHNlY3Rpb25zLlxyXG4gKiBAcGFyYW0gYW5hbHlzaXMgUGFyc2VkIHRlc3QtYmxvY2sgYW5hbHlzaXMuXHJcbiAqIEByZXR1cm5zIEFuY2hvciBzdGF0ZW1lbnRzIGZvciBBcnJhbmdlLCBBY3QsIGFuZCBBc3NlcnQgaW5zZXJ0aW9uLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGFuY2hvcnMgPSBnZXRTZWN0aW9uQW5jaG9ycyh7IHN0YXRlbWVudHM6IFtdIH0gYXMgbmV2ZXIpO1xyXG4gKiB2b2lkIGFuY2hvcnM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0U2VjdGlvbkFuY2hvcnMoXHJcbiAgYW5hbHlzaXM6IFRlc3RCbG9ja0FuYWx5c2lzLFxyXG4pOiBTdGF0ZW1lbnRBbmNob3JzIHwgdW5kZWZpbmVkIHtcclxuICBjb25zdCBbZmlyc3RTdGF0ZW1lbnRFbnRyeV0gPSBhbmFseXNpcy5zdGF0ZW1lbnRzO1xyXG4gIGNvbnN0IG1pZGRsZVN0YXRlbWVudEVudHJ5ID1cclxuICAgIGFuYWx5c2lzLnN0YXRlbWVudHNbXHJcbiAgICAgIE1hdGgubWluKFxyXG4gICAgICAgIGFuYWx5c2lzLnN0YXRlbWVudHMubGVuZ3RoIC0gMSxcclxuICAgICAgICBNYXRoLmZsb29yKGFuYWx5c2lzLnN0YXRlbWVudHMubGVuZ3RoIC8gMiksXHJcbiAgICAgIClcclxuICAgIF07XHJcbiAgY29uc3QgbGFzdFN0YXRlbWVudEVudHJ5ID0gYW5hbHlzaXMuc3RhdGVtZW50cy5hdCgtMSk7XHJcblxyXG4gIGlmIChcclxuICAgIGZpcnN0U3RhdGVtZW50RW50cnkgPT09IHZvaWQgMCB8fFxyXG4gICAgbWlkZGxlU3RhdGVtZW50RW50cnkgPT09IHZvaWQgMCB8fFxyXG4gICAgbGFzdFN0YXRlbWVudEVudHJ5ID09PSB2b2lkIDBcclxuICApIHtcclxuICAgIHJldHVybiB2b2lkIDA7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ge1xyXG4gICAgZmlyc3RTdGF0ZW1lbnQ6IGZpcnN0U3RhdGVtZW50RW50cnkubm9kZSxcclxuICAgIGxhc3RTdGF0ZW1lbnQ6IGxhc3RTdGF0ZW1lbnRFbnRyeS5ub2RlLFxyXG4gICAgbWlkZGxlU3RhdGVtZW50OiBtaWRkbGVTdGF0ZW1lbnRFbnRyeS5ub2RlLFxyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBtaXNzaW5nIHNlY3Rpb24gaW5zZXJ0aW9uIG5lZWRzIGEgYmxhbmsgbGluZSBwcmVmaXguXHJcbiAqIEBwYXJhbSBwaGFzZXMgTWlzc2luZyBwaGFzZXMgaW5zZXJ0ZWQgYXQgdGhlIHNhbWUgb2Zmc2V0LlxyXG4gKiBAcGFyYW0gcHJldmlvdXNMaW5lIFNvdXJjZSBsaW5lIGltbWVkaWF0ZWx5IGFib3ZlIHRoZSBpbnNlcnRpb24gcG9pbnQuXHJcbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGluc2VydGVkIG1hcmtlciBzaG91bGQgc3RhcnQgd2l0aCBhIGJsYW5rIGxpbmUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgYWN0dWFsID0gc2hvdWxkSW5zZXJ0TGVhZGluZ0JsYW5rTGluZShbXCJBY3RcIl0sIFwicnVuKCk7XCIpO1xyXG4gKiB2b2lkIGFjdHVhbDtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBzaG91bGRJbnNlcnRMZWFkaW5nQmxhbmtMaW5lKFxyXG4gIHBoYXNlczogcmVhZG9ubHkgQWFhUGhhc2VbXSxcclxuICBwcmV2aW91c0xpbmU6IHN0cmluZyxcclxuKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIChcclxuICAgIHBoYXNlcy5zb21lKChwaGFzZSkgPT4gcGhhc2UgIT09IFwiQXJyYW5nZVwiKSAmJlxyXG4gICAgcHJldmlvdXNMaW5lLnRyaW0oKS5sZW5ndGggPiAwXHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IHsgYnVpbGRNaXNzaW5nU2VjdGlvbkZpeGVzIH07XHJcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-aaa-sections/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAYnC,uFAAuF;AACvF,QAAA,MAAM,sBAAsB,EAAE,IAAI,CAAC,UAoClC,CAAC;AAgJF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
|