@codeperfect/eslint-plugin 2.0.0 → 2.2.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 +36 -4
- 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/no-reexports-outside-barrels-rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +8 -3
- package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/rule.js +12 -5
- 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 +608 -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 +58 -6
- 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 +94 -23
- package/dist/domain/custom-rule-documentation.d.ts +3 -14
- package/dist/domain/custom-rule-documentation.d.ts.map +1 -1
- package/dist/domain/custom-rule-documentation.js +3 -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/parameter-utilities.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 +12 -4
- 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 +7 -3
- 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.d.ts +1 -2
- package/dist/domain/docs/single-line-jsdoc/rule.d.ts.map +1 -1
- package/dist/domain/docs/single-line-jsdoc/rule.js +18 -13
- 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 +2 -78
- package/dist/domain/testing/aaa/analyzer.analysis.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts +121 -3
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +199 -4
- package/dist/domain/testing/aaa/analyzer.analysis.js +30 -188
- package/dist/domain/testing/aaa/analyzer.assertions.d.ts +1 -92
- package/dist/domain/testing/aaa/analyzer.assertions.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts +93 -0
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +184 -0
- package/dist/domain/testing/aaa/analyzer.assertions.js +5 -283
- package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts +62 -0
- package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.assertions.operands.js +106 -0
- package/dist/domain/testing/aaa/analyzer.classification.d.ts +1 -74
- package/dist/domain/testing/aaa/analyzer.classification.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts +75 -0
- package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.helpers.js +202 -0
- package/dist/domain/testing/aaa/analyzer.classification.js +5 -201
- package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts +13 -0
- package/dist/domain/testing/aaa/analyzer.classification.traversal.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.traversal.js +32 -0
- package/dist/domain/testing/aaa/analyzer.super.d.ts +6 -13
- package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts +14 -0
- package/dist/domain/testing/aaa/analyzer.super.helpers.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.super.helpers.js +64 -0
- package/dist/domain/testing/aaa/analyzer.super.js +29 -61
- 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 +33 -5
- 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 +165 -3
- 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/prefer-vi-mocked-import/rule.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/rule.js +6 -3
- package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -1
- package/dist/domain/testing/require-act-result-capture/rule.js +42 -10
- 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 +34 -9
- package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -1
- package/dist/domain/testing/single-act-statement/rule.js +11 -5
- 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 +37 -38
- 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.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.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.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 -34
- 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 -86
- 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 -150
- 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 -81
- 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 -189
- 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 -92
- 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 -62
- 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 -203
- 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 -129
- 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 -217
- 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,104 +0,0 @@
|
|
|
1
|
-
import type { Rule } from "eslint";
|
|
2
|
-
import type { TestBlockAnalysis } from "../aaa/index.js";
|
|
3
|
-
/** Mocked AAA helper exports consumed by the rule. */
|
|
4
|
-
interface AaaModuleMock {
|
|
5
|
-
/** Mocked analyzer entry point. */
|
|
6
|
-
analyzeTestBlock: () => TestBlockAnalysis;
|
|
7
|
-
/** Mocked line-start helper. */
|
|
8
|
-
getLineStartRange: () => [number, number];
|
|
9
|
-
/** Mocked boundary-comment helper. */
|
|
10
|
-
getPhaseBoundaryComments: (analysis: TestBlockAnalysis) => TestBlockAnalysis["sectionComments"];
|
|
11
|
-
/** Mocked blank-line helper. */
|
|
12
|
-
hasBlankLineBeforeComment: () => false;
|
|
13
|
-
}
|
|
14
|
-
/** Mocked missing-section-fixes module. */
|
|
15
|
-
interface MissingSectionFixesModule {
|
|
16
|
-
/** Mocked fix builder. */
|
|
17
|
-
buildMissingSectionFixes: () => Rule.Fix[];
|
|
18
|
-
}
|
|
19
|
-
/** Message identifiers emitted by the rule under test. */
|
|
20
|
-
type RequireAaaSectionsMessageId = "blankLineBeforeSection" | "codeBeforeArrange" | "emptySection" | "missingSections";
|
|
21
|
-
/** Captured result from the mocked reporting scenario. */
|
|
22
|
-
interface ScenarioResult {
|
|
23
|
-
/** Fix emitted for the blank-line report. */
|
|
24
|
-
blankLineFix: Rule.Fix | Rule.Fix[] | undefined;
|
|
25
|
-
/** Fixes recorded by the synthetic fixer. */
|
|
26
|
-
insertedFixes: Rule.Fix[];
|
|
27
|
-
/** Message identifiers emitted in report order. */
|
|
28
|
-
messageIds: (RequireAaaSectionsMessageId | undefined)[];
|
|
29
|
-
/** Fix emitted for the missing-sections report. */
|
|
30
|
-
missingSectionsFix: Rule.Fix | Rule.Fix[] | undefined;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Creates the mocked AAA helper module.
|
|
34
|
-
* @returns Mocked exports consumed by the rule module.
|
|
35
|
-
* @example
|
|
36
|
-
* ```typescript
|
|
37
|
-
* const mockModule = createAaaModuleMock(); void mockModule;
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
40
|
-
declare function createAaaModuleMock(): AaaModuleMock;
|
|
41
|
-
/**
|
|
42
|
-
* Creates the mocked missing-section-fixes module.
|
|
43
|
-
* @param buildMissingSectionFixes Mocked fix builder.
|
|
44
|
-
* @returns Mocked module exposing the provided fix builder.
|
|
45
|
-
* @example
|
|
46
|
-
* ```typescript
|
|
47
|
-
* const mockModule = createMissingSectionFixesModule(() => []); void mockModule;
|
|
48
|
-
* ```
|
|
49
|
-
*/
|
|
50
|
-
declare function createMissingSectionFixesModule(buildMissingSectionFixes: () => Rule.Fix[]): MissingSectionFixesModule;
|
|
51
|
-
/**
|
|
52
|
-
* Creates a fixer that records inserted text edits.
|
|
53
|
-
* @param insertedFixes Collection updated when the fixer inserts text.
|
|
54
|
-
* @returns Rule fixer that records inserted edits.
|
|
55
|
-
* @example
|
|
56
|
-
* ```typescript
|
|
57
|
-
* const fixer = createRecordedFixer([]); void fixer;
|
|
58
|
-
* ```
|
|
59
|
-
*/
|
|
60
|
-
declare function createRecordedFixer(insertedFixes: Rule.Fix[]): Rule.RuleFixer;
|
|
61
|
-
/**
|
|
62
|
-
* Creates the minimal rule context used by the mocked scenario.
|
|
63
|
-
* @param reports Report descriptors captured during rule execution.
|
|
64
|
-
* @returns Rule context that records emitted reports.
|
|
65
|
-
* @example
|
|
66
|
-
* ```typescript
|
|
67
|
-
* const context = createRuleContext([]); void context;
|
|
68
|
-
* ```
|
|
69
|
-
*/
|
|
70
|
-
declare function createRuleContext(reports: Rule.ReportDescriptor[]): Rule.RuleContext;
|
|
71
|
-
/**
|
|
72
|
-
* Reads the fix emitted by a report descriptor.
|
|
73
|
-
* @param descriptor Report descriptor to evaluate.
|
|
74
|
-
* @param fixer Synthetic fixer passed into the descriptor callback.
|
|
75
|
-
* @returns Fix output produced by the descriptor.
|
|
76
|
-
* @example
|
|
77
|
-
* ```typescript
|
|
78
|
-
* const fix = getDescriptorFix(void 0, {} as never); void fix;
|
|
79
|
-
* ```
|
|
80
|
-
*/
|
|
81
|
-
declare function getDescriptorFix(descriptor: Rule.ReportDescriptor | undefined, fixer: Rule.RuleFixer): Rule.Fix | Rule.Fix[] | undefined;
|
|
82
|
-
/**
|
|
83
|
-
* Reads the message identifier from a report descriptor when present.
|
|
84
|
-
* @param descriptor Report descriptor emitted by the rule.
|
|
85
|
-
* @returns Supported message identifier when present.
|
|
86
|
-
* @example
|
|
87
|
-
* ```typescript
|
|
88
|
-
* const messageId = getReportMessageId({ messageId: "missingSections" } as Rule.ReportDescriptor);
|
|
89
|
-
* void messageId;
|
|
90
|
-
* ```
|
|
91
|
-
*/
|
|
92
|
-
declare function getReportMessageId(descriptor: Rule.ReportDescriptor): RequireAaaSectionsMessageId | undefined;
|
|
93
|
-
/**
|
|
94
|
-
* Loads the rule module after test mocks have been applied.
|
|
95
|
-
* @returns The rule module under test.
|
|
96
|
-
* @example
|
|
97
|
-
* ```typescript
|
|
98
|
-
* const rule = await loadRequireAaaSectionsRule(); void rule;
|
|
99
|
-
* ```
|
|
100
|
-
*/
|
|
101
|
-
declare function loadRequireAaaSectionsRule(): Promise<Rule.RuleModule>;
|
|
102
|
-
export { createAaaModuleMock, createMissingSectionFixesModule, createRecordedFixer, createRuleContext, getDescriptorFix, getReportMessageId, loadRequireAaaSectionsRule, };
|
|
103
|
-
export type { ScenarioResult };
|
|
104
|
-
//# sourceMappingURL=rule.reporting.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule.reporting.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-aaa-sections/rule.reporting.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAEhD,sDAAsD;AACtD,UAAU,aAAa;IACrB,mCAAmC;IACnC,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;IAC1C,gCAAgC;IAChC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,sCAAsC;IACtC,wBAAwB,EAAE,CACxB,QAAQ,EAAE,iBAAiB,KACxB,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC1C,gCAAgC;IAChC,yBAAyB,EAAE,MAAM,KAAK,CAAC;CACxC;AAED,2CAA2C;AAC3C,UAAU,yBAAyB;IACjC,0BAA0B;IAC1B,wBAAwB,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;CAC5C;AAED,0DAA0D;AAC1D,KAAK,2BAA2B,GAC5B,wBAAwB,GACxB,mBAAmB,GACnB,cAAc,GACd,iBAAiB,CAAC;AAQtB,0DAA0D;AAC1D,UAAU,cAAc;IACtB,6CAA6C;IAC7C,YAAY,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAChD,6CAA6C;IAC7C,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1B,mDAAmD;IACnD,UAAU,EAAE,CAAC,2BAA2B,GAAG,SAAS,CAAC,EAAE,CAAC;IACxD,mDAAmD;IACnD,kBAAkB,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;CACvD;AAcD;;;;;;;GAOG;AACH,iBAAS,mBAAmB,IAAI,aAAa,CAO5C;AAED;;;;;;;;GAQG;AACH,iBAAS,+BAA+B,CACtC,wBAAwB,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,GACzC,yBAAyB,CAE3B;AAsDD;;;;;;;;GAQG;AACH,iBAAS,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAQtE;AAED;;;;;;;;GAQG;AACH,iBAAS,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,WAAW,CAM7E;AAED;;;;;;;;;GASG;AACH,iBAAS,gBAAgB,CACvB,UAAU,EAAE,IAAI,CAAC,gBAAgB,GAAG,SAAS,EAC7C,KAAK,EAAE,IAAI,CAAC,SAAS,GACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAcnC;AA8BD;;;;;;;;;GASG;AACH,iBAAS,kBAAkB,CACzB,UAAU,EAAE,IAAI,CAAC,gBAAgB,GAChC,2BAA2B,GAAG,SAAS,CAQzC;AAuBD;;;;;;;GAOG;AACH,iBAAe,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAGpE;AAED,OAAO,EACL,mBAAmB,EACnB,+BAA+B,EAC/B,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,GAC3B,CAAC;AAEF,YAAY,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
/* eslint max-lines: ["error", 310] -- Mocked reporting helpers in this focused spec companion require verbose typed fixtures and examples. */
|
|
2
|
-
/**
|
|
3
|
-
* Returns false so the mocked rule path always reports a missing blank line.
|
|
4
|
-
* @returns False for every invocation.
|
|
5
|
-
* @example
|
|
6
|
-
* ```typescript
|
|
7
|
-
* const actual = alwaysReturnFalse(); void actual;
|
|
8
|
-
* ```
|
|
9
|
-
*/
|
|
10
|
-
function alwaysReturnFalse() {
|
|
11
|
-
return false;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Creates the mocked AAA helper module.
|
|
15
|
-
* @returns Mocked exports consumed by the rule module.
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* const mockModule = createAaaModuleMock(); void mockModule;
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
function createAaaModuleMock() {
|
|
22
|
-
return {
|
|
23
|
-
analyzeTestBlock: createMockAnalysis,
|
|
24
|
-
getLineStartRange: getMockLineStartRange,
|
|
25
|
-
getPhaseBoundaryComments: getMockPhaseBoundaryComments,
|
|
26
|
-
hasBlankLineBeforeComment: alwaysReturnFalse,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Creates the mocked missing-section-fixes module.
|
|
31
|
-
* @param buildMissingSectionFixes Mocked fix builder.
|
|
32
|
-
* @returns Mocked module exposing the provided fix builder.
|
|
33
|
-
* @example
|
|
34
|
-
* ```typescript
|
|
35
|
-
* const mockModule = createMissingSectionFixesModule(() => []); void mockModule;
|
|
36
|
-
* ```
|
|
37
|
-
*/
|
|
38
|
-
function createMissingSectionFixesModule(buildMissingSectionFixes) {
|
|
39
|
-
return { buildMissingSectionFixes };
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Builds the synthetic analysis returned by the mocked AAA helpers.
|
|
43
|
-
* @returns Minimal test-block analysis used by the regression scenario.
|
|
44
|
-
* @example
|
|
45
|
-
* ```typescript
|
|
46
|
-
* const analysis = createMockAnalysis(); void analysis;
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
function createMockAnalysis() {
|
|
50
|
-
return {
|
|
51
|
-
bodyLineCount: 4,
|
|
52
|
-
callExpression: { type: "CallExpression" },
|
|
53
|
-
newline: "\n",
|
|
54
|
-
sectionComments: [
|
|
55
|
-
{
|
|
56
|
-
comment: {
|
|
57
|
-
loc: { end: { line: 2 }, start: { line: 2 } },
|
|
58
|
-
type: "Line",
|
|
59
|
-
},
|
|
60
|
-
phases: ["Arrange"],
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
comment: {
|
|
64
|
-
loc: { end: { line: 4 }, start: { line: 4 } },
|
|
65
|
-
type: "Line",
|
|
66
|
-
},
|
|
67
|
-
phases: ["Act"],
|
|
68
|
-
},
|
|
69
|
-
],
|
|
70
|
-
sourceText: [
|
|
71
|
-
"const setup = createSetup();",
|
|
72
|
-
"// Arrange",
|
|
73
|
-
"run();",
|
|
74
|
-
"// Act",
|
|
75
|
-
].join("\n"),
|
|
76
|
-
statements: [
|
|
77
|
-
{
|
|
78
|
-
node: {
|
|
79
|
-
loc: { end: { line: 1 }, start: { line: 1 } },
|
|
80
|
-
type: "ExpressionStatement",
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
node: {
|
|
85
|
-
loc: { end: { line: 3 }, start: { line: 3 } },
|
|
86
|
-
type: "ExpressionStatement",
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
],
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Creates a fixer that records inserted text edits.
|
|
94
|
-
* @param insertedFixes Collection updated when the fixer inserts text.
|
|
95
|
-
* @returns Rule fixer that records inserted edits.
|
|
96
|
-
* @example
|
|
97
|
-
* ```typescript
|
|
98
|
-
* const fixer = createRecordedFixer([]); void fixer;
|
|
99
|
-
* ```
|
|
100
|
-
*/
|
|
101
|
-
function createRecordedFixer(insertedFixes) {
|
|
102
|
-
return {
|
|
103
|
-
insertTextBeforeRange(range, text) {
|
|
104
|
-
const fix = { range, text };
|
|
105
|
-
insertedFixes.push(fix);
|
|
106
|
-
return fix;
|
|
107
|
-
},
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Creates the minimal rule context used by the mocked scenario.
|
|
112
|
-
* @param reports Report descriptors captured during rule execution.
|
|
113
|
-
* @returns Rule context that records emitted reports.
|
|
114
|
-
* @example
|
|
115
|
-
* ```typescript
|
|
116
|
-
* const context = createRuleContext([]); void context;
|
|
117
|
-
* ```
|
|
118
|
-
*/
|
|
119
|
-
function createRuleContext(reports) {
|
|
120
|
-
return {
|
|
121
|
-
report(descriptor) {
|
|
122
|
-
reports.push(descriptor);
|
|
123
|
-
},
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Reads the fix emitted by a report descriptor.
|
|
128
|
-
* @param descriptor Report descriptor to evaluate.
|
|
129
|
-
* @param fixer Synthetic fixer passed into the descriptor callback.
|
|
130
|
-
* @returns Fix output produced by the descriptor.
|
|
131
|
-
* @example
|
|
132
|
-
* ```typescript
|
|
133
|
-
* const fix = getDescriptorFix(void 0, {} as never); void fix;
|
|
134
|
-
* ```
|
|
135
|
-
*/
|
|
136
|
-
function getDescriptorFix(descriptor, fixer) {
|
|
137
|
-
const actual = descriptor?.fix?.(fixer);
|
|
138
|
-
if (!(actual instanceof Object)) {
|
|
139
|
-
return void 0;
|
|
140
|
-
}
|
|
141
|
-
if (Array.isArray(actual) || "range" in actual) {
|
|
142
|
-
return actual;
|
|
143
|
-
}
|
|
144
|
-
const iterableFixes = actual;
|
|
145
|
-
return [...iterableFixes];
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Reads the mocked line-start range for the blank-line fix.
|
|
149
|
-
* @returns Synthetic range used by the rule fix.
|
|
150
|
-
* @example
|
|
151
|
-
* ```typescript
|
|
152
|
-
* const range = getMockLineStartRange(); void range;
|
|
153
|
-
* ```
|
|
154
|
-
*/
|
|
155
|
-
function getMockLineStartRange() {
|
|
156
|
-
return [7, 7];
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Returns the phase-boundary comments from the mocked analysis.
|
|
160
|
-
* @param analysis Parsed analysis used by the mocked rule helpers.
|
|
161
|
-
* @returns Only comments that begin a later AAA phase.
|
|
162
|
-
* @example
|
|
163
|
-
* ```typescript
|
|
164
|
-
* const comments = getMockPhaseBoundaryComments(createMockAnalysis());
|
|
165
|
-
* void comments;
|
|
166
|
-
* ```
|
|
167
|
-
*/
|
|
168
|
-
function getMockPhaseBoundaryComments(analysis) {
|
|
169
|
-
return analysis.sectionComments.slice(1);
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Reads the message identifier from a report descriptor when present.
|
|
173
|
-
* @param descriptor Report descriptor emitted by the rule.
|
|
174
|
-
* @returns Supported message identifier when present.
|
|
175
|
-
* @example
|
|
176
|
-
* ```typescript
|
|
177
|
-
* const messageId = getReportMessageId({ messageId: "missingSections" } as Rule.ReportDescriptor);
|
|
178
|
-
* void messageId;
|
|
179
|
-
* ```
|
|
180
|
-
*/
|
|
181
|
-
function getReportMessageId(descriptor) {
|
|
182
|
-
if (!("messageId" in descriptor) ||
|
|
183
|
-
!isRequireAaaSectionsMessageId(descriptor.messageId)) {
|
|
184
|
-
return void 0;
|
|
185
|
-
}
|
|
186
|
-
return descriptor.messageId;
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Checks whether an unknown value is a valid rule message identifier.
|
|
190
|
-
* @param value Value to validate.
|
|
191
|
-
* @returns Whether the value is a supported message identifier.
|
|
192
|
-
* @example
|
|
193
|
-
* ```typescript
|
|
194
|
-
* const actual = isRequireAaaSectionsMessageId("missingSections");
|
|
195
|
-
* void actual;
|
|
196
|
-
* ```
|
|
197
|
-
*/
|
|
198
|
-
function isRequireAaaSectionsMessageId(value) {
|
|
199
|
-
return (value === "blankLineBeforeSection" ||
|
|
200
|
-
value === "codeBeforeArrange" ||
|
|
201
|
-
value === "emptySection" ||
|
|
202
|
-
value === "missingSections");
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Loads the rule module after test mocks have been applied.
|
|
206
|
-
* @returns The rule module under test.
|
|
207
|
-
* @example
|
|
208
|
-
* ```typescript
|
|
209
|
-
* const rule = await loadRequireAaaSectionsRule(); void rule;
|
|
210
|
-
* ```
|
|
211
|
-
*/
|
|
212
|
-
async function loadRequireAaaSectionsRule() {
|
|
213
|
-
return (await import("./rule.js"))
|
|
214
|
-
.requireAaaSectionsRule;
|
|
215
|
-
}
|
|
216
|
-
export { createAaaModuleMock, createMissingSectionFixesModule, createRecordedFixer, createRuleContext, getDescriptorFix, getReportMessageId, loadRequireAaaSectionsRule, };
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5yZXBvcnRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcmVxdWlyZS1hYWEtc2VjdGlvbnMvcnVsZS5yZXBvcnRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOElBQThJO0FBbUQ5STs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxpQkFBaUI7SUFDeEIsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQVMsbUJBQW1CO0lBQzFCLE9BQU87UUFDTCxnQkFBZ0IsRUFBRSxrQkFBa0I7UUFDcEMsaUJBQWlCLEVBQUUscUJBQXFCO1FBQ3hDLHdCQUF3QixFQUFFLDRCQUE0QjtRQUN0RCx5QkFBeUIsRUFBRSxpQkFBaUI7S0FDN0MsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsK0JBQStCLENBQ3RDLHdCQUEwQztJQUUxQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQVMsa0JBQWtCO0lBQ3pCLE9BQU87UUFDTCxhQUFhLEVBQUUsQ0FBQztRQUNoQixjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7UUFDMUMsT0FBTyxFQUFFLElBQUk7UUFDYixlQUFlLEVBQUU7WUFDZjtnQkFDRSxPQUFPLEVBQUU7b0JBQ1AsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDN0MsSUFBSSxFQUFFLE1BQU07aUJBQ2I7Z0JBQ0QsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO2FBQ3BCO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFO29CQUNQLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVB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O0lBRWQsT0FBTyxDQUNMLEtBQUssS0FBSyx3QkFBd0I7UUFDbEMsS0FBSyxLQUFLLG1CQUFtQjtRQUM3QixLQUFLLEtBQUssY0FBYztRQUN4QixLQUFLLEtBQUssaUJBQWlCLENBQzVCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILEtBQUssVUFBVSwwQkFBMEI7SUFDdkMsT0FBUSxDQUFDLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUF5QjtTQUNyRCxzQkFBc0IsQ0FBQztBQUM1QixDQUFDO0FBRUQsT0FBTyxFQUNMLG1CQUFtQixFQUNuQiwrQkFBK0IsRUFDL0IsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLDBCQUEwQixHQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IG1heC1saW5lczogW1wiZXJyb3JcIiwgMzEwXSAtLSBNb2NrZWQgcmVwb3J0aW5nIGhlbHBlcnMgaW4gdGhpcyBmb2N1c2VkIHNwZWMgY29tcGFuaW9uIHJlcXVpcmUgdmVyYm9zZSB0eXBlZCBmaXh0dXJlcyBhbmQgZXhhbXBsZXMuICovXHJcblxyXG5pbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IFRlc3RCbG9ja0FuYWx5c2lzIH0gZnJvbSBcIi4uL2FhYVwiO1xyXG5cclxuLyoqIE1vY2tlZCBBQUEgaGVscGVyIGV4cG9ydHMgY29uc3VtZWQgYnkgdGhlIHJ1bGUuICovXHJcbmludGVyZmFjZSBBYWFNb2R1bGVNb2NrIHtcclxuICAvKiogTW9ja2VkIGFuYWx5emVyIGVudHJ5IHBvaW50LiAqL1xyXG4gIGFuYWx5emVUZXN0QmxvY2s6ICgpID0+IFRlc3RCbG9ja0FuYWx5c2lzO1xyXG4gIC8qKiBNb2NrZWQgbGluZS1zdGFydCBoZWxwZXIuICovXHJcbiAgZ2V0TGluZVN0YXJ0UmFuZ2U6ICgpID0+IFtudW1iZXIsIG51bWJlcl07XHJcbiAgLyoqIE1vY2tlZCBib3VuZGFyeS1jb21tZW50IGhlbHBlci4gKi9cclxuICBnZXRQaGFzZUJvdW5kYXJ5Q29tbWVudHM6IChcclxuICAgIGFuYWx5c2lzOiBUZXN0QmxvY2tBbmFseXNpcyxcclxuICApID0+IFRlc3RCbG9ja0FuYWx5c2lzW1wic2VjdGlvbkNvbW1lbnRzXCJdO1xyXG4gIC8qKiBNb2NrZWQgYmxhbmstbGluZSBoZWxwZXIuICovXHJcbiAgaGFzQmxhbmtMaW5lQmVmb3JlQ29tbWVudDogKCkgPT4gZmFsc2U7XHJcbn1cclxuXHJcbi8qKiBNb2NrZWQgbWlzc2luZy1zZWN0aW9uLWZpeGVzIG1vZHVsZS4gKi9cclxuaW50ZXJmYWNlIE1pc3NpbmdTZWN0aW9uRml4ZXNNb2R1bGUge1xyXG4gIC8qKiBNb2NrZWQgZml4IGJ1aWxkZXIuICovXHJcbiAgYnVpbGRNaXNzaW5nU2VjdGlvbkZpeGVzOiAoKSA9PiBSdWxlLkZpeFtdO1xyXG59XHJcblxyXG4vKiogTWVzc2FnZSBpZGVudGlmaWVycyBlbWl0dGVkIGJ5IHRoZSBydWxlIHVuZGVyIHRlc3QuICovXHJcbnR5cGUgUmVxdWlyZUFhYVNlY3Rpb25zTWVzc2FnZUlkID1cclxuICB8IFwiYmxhbmtMaW5lQmVmb3JlU2VjdGlvblwiXHJcbiAgfCBcImNvZGVCZWZvcmVBcnJhbmdlXCJcclxuICB8IFwiZW1wdHlTZWN0aW9uXCJcclxuICB8IFwibWlzc2luZ1NlY3Rpb25zXCI7XHJcblxyXG4vKiogVHlwZWQgbmFtZXNwYWNlIGZvciB0aGUgbGF6aWx5IGltcG9ydGVkIHJ1bGUgbW9kdWxlLiAqL1xyXG5pbnRlcmZhY2UgUnVsZU1vZHVsZU5hbWVzcGFjZSB7XHJcbiAgLyoqIFJ1bGUgbW9kdWxlIGxvYWRlZCBhZnRlciBtb2NrcyBoYXZlIGJlZW4gYXBwbGllZC4gKi9cclxuICByZXF1aXJlQWFhU2VjdGlvbnNSdWxlOiBSdWxlLlJ1bGVNb2R1bGU7XHJcbn1cclxuXHJcbi8qKiBDYXB0dXJlZCByZXN1bHQgZnJvbSB0aGUgbW9ja2VkIHJlcG9ydGluZyBzY2VuYXJpby4gKi9cclxuaW50ZXJmYWNlIFNjZW5hcmlvUmVzdWx0IHtcclxuICAvKiogRml4IGVtaXR0ZWQgZm9yIHRoZSBibGFuay1saW5lIHJlcG9ydC4gKi9cclxuICBibGFua0xpbmVGaXg6IFJ1bGUuRml4IHwgUnVsZS5GaXhbXSB8IHVuZGVmaW5lZDtcclxuICAvKiogRml4ZXMgcmVjb3JkZWQgYnkgdGhlIHN5bnRoZXRpYyBmaXhlci4gKi9cclxuICBpbnNlcnRlZEZpeGVzOiBSdWxlLkZpeFtdO1xyXG4gIC8qKiBNZXNzYWdlIGlkZW50aWZpZXJzIGVtaXR0ZWQgaW4gcmVwb3J0IG9yZGVyLiAqL1xyXG4gIG1lc3NhZ2VJZHM6IChSZXF1aXJlQWFhU2VjdGlvbnNNZXNzYWdlSWQgfCB1bmRlZmluZWQpW107XHJcbiAgLyoqIEZpeCBlbWl0dGVkIGZvciB0aGUgbWlzc2luZy1zZWN0aW9ucyByZXBvcnQuICovXHJcbiAgbWlzc2luZ1NlY3Rpb25zRml4OiBSdWxlLkZpeCB8IFJ1bGUuRml4W10gfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIGZhbHNlIHNvIHRoZSBtb2NrZWQgcnVsZSBwYXRoIGFsd2F5cyByZXBvcnRzIGEgbWlzc2luZyBibGFuayBsaW5lLlxyXG4gKiBAcmV0dXJucyBGYWxzZSBmb3IgZXZlcnkgaW52b2NhdGlvbi5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBhY3R1YWwgPSBhbHdheXNSZXR1cm5GYWxzZSgpOyB2b2lkIGFjdHVhbDtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBhbHdheXNSZXR1cm5GYWxzZSgpOiBmYWxzZSB7XHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyB0aGUgbW9ja2VkIEFBQSBoZWxwZXIgbW9kdWxlLlxyXG4gKiBAcmV0dXJucyBNb2NrZWQgZXhwb3J0cyBjb25zdW1lZCBieSB0aGUgcnVsZSBtb2R1bGUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgbW9ja01vZHVsZSA9IGNyZWF0ZUFhYU1vZHVsZU1vY2soKTsgdm9pZCBtb2NrTW9kdWxlO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNyZWF0ZUFhYU1vZHVsZU1vY2soKTogQWFhTW9kdWxlTW9jayB7XHJcbiAgcmV0dXJuIHtcclxuICAgIGFuYWx5emVUZXN0QmxvY2s6IGNyZWF0ZU1vY2tBbmFseXNpcyxcclxuICAgIGdldExpbmVTdGFydFJhbmdlOiBnZXRNb2NrTGluZVN0YXJ0UmFuZ2UsXHJcbiAgICBnZXRQaGFzZUJvdW5kYXJ5Q29tbWVudHM6IGdldE1vY2tQaGFzZUJvdW5kYXJ5Q29tbWVudHMsXHJcbiAgICBoYXNCbGFua0xpbmVCZWZvcmVDb21tZW50OiBhbHdheXNSZXR1cm5GYWxzZSxcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyB0aGUgbW9ja2VkIG1pc3Npbmctc2VjdGlvbi1maXhlcyBtb2R1bGUuXHJcbiAqIEBwYXJhbSBidWlsZE1pc3NpbmdTZWN0aW9uRml4ZXMgTW9ja2VkIGZpeCBidWlsZGVyLlxyXG4gKiBAcmV0dXJucyBNb2NrZWQgbW9kdWxlIGV4cG9zaW5nIHRoZSBwcm92aWRlZCBmaXggYnVpbGRlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBtb2NrTW9kdWxlID0gY3JlYXRlTWlzc2luZ1NlY3Rpb25GaXhlc01vZHVsZSgoKSA9PiBbXSk7IHZvaWQgbW9ja01vZHVsZTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBjcmVhdGVNaXNzaW5nU2VjdGlvbkZpeGVzTW9kdWxlKFxyXG4gIGJ1aWxkTWlzc2luZ1NlY3Rpb25GaXhlczogKCkgPT4gUnVsZS5GaXhbXSxcclxuKTogTWlzc2luZ1NlY3Rpb25GaXhlc01vZHVsZSB7XHJcbiAgcmV0dXJuIHsgYnVpbGRNaXNzaW5nU2VjdGlvbkZpeGVzIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCdWlsZHMgdGhlIHN5bnRoZXRpYyBhbmFseXNpcyByZXR1cm5lZCBieSB0aGUgbW9ja2VkIEFBQSBoZWxwZXJzLlxyXG4gKiBAcmV0dXJucyBNaW5pbWFsIHRlc3QtYmxvY2sgYW5hbHlzaXMgdXNlZCBieSB0aGUgcmVncmVzc2lvbiBzY2VuYXJpby5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBhbmFseXNpcyA9IGNyZWF0ZU1vY2tBbmFseXNpcygpOyB2b2lkIGFuYWx5c2lzO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNyZWF0ZU1vY2tBbmFseXNpcygpOiBUZXN0QmxvY2tBbmFseXNpcyB7XHJcbiAgcmV0dXJuIHtcclxuICAgIGJvZHlMaW5lQ291bnQ6IDQsXHJcbiAgICBjYWxsRXhwcmVzc2lvbjogeyB0eXBlOiBcIkNhbGxFeHByZXNzaW9uXCIgfSxcclxuICAgIG5ld2xpbmU6IFwiXFxuXCIsXHJcbiAgICBzZWN0aW9uQ29tbWVudHM6IFtcclxuICAgICAge1xyXG4gICAgICAgIGNvbW1lbnQ6IHtcclxuICAgICAgICAgIGxvYzogeyBlbmQ6IHsgbGluZTogMiB9LCBzdGFydDogeyBsaW5lOiAyIH0gfSxcclxuICAgICAgICAgIHR5cGU6IFwiTGluZVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcGhhc2VzOiBbXCJBcnJhbmdlXCJdLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgY29tbWVudDoge1xyXG4gICAgICAgICAgbG9jOiB7IGVuZDogeyBsaW5lOiA0IH0sIHN0YXJ0OiB7IGxpbmU6IDQgfSB9LFxyXG4gICAgICAgICAgdHlwZTogXCJMaW5lXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBwaGFzZXM6IFtcIkFjdFwiXSxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBzb3VyY2VUZXh0OiBbXHJcbiAgICAgIFwiY29uc3Qgc2V0dXAgPSBjcmVhdGVTZXR1cCgpO1wiLFxyXG4gICAgICBcIi8vIEFycmFuZ2VcIixcclxuICAgICAgXCJydW4oKTtcIixcclxuICAgICAgXCIvLyBBY3RcIixcclxuICAgIF0uam9pbihcIlxcblwiKSxcclxuICAgIHN0YXRlbWVudHM6IFtcclxuICAgICAge1xyXG4gICAgICAgIG5vZGU6IHtcclxuICAgICAgICAgIGxvYzogeyBlbmQ6IHsgbGluZTogMSB9LCBzdGFydDogeyBsaW5lOiAxIH0gfSxcclxuICAgICAgICAgIHR5cGU6IFwiRXhwcmVzc2lvblN0YXRlbWVudFwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBub2RlOiB7XHJcbiAgICAgICAgICBsb2M6IHsgZW5kOiB7IGxpbmU6IDMgfSwgc3RhcnQ6IHsgbGluZTogMyB9IH0sXHJcbiAgICAgICAgICB0eXBlOiBcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIixcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgXSxcclxuICB9IGFzIFRlc3RCbG9ja0FuYWx5c2lzO1xyXG59XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIGZpeGVyIHRoYXQgcmVjb3JkcyBpbnNlcnRlZCB0ZXh0IGVkaXRzLlxyXG4gKiBAcGFyYW0gaW5zZXJ0ZWRGaXhlcyBDb2xsZWN0aW9uIHVwZGF0ZWQgd2hlbiB0aGUgZml4ZXIgaW5zZXJ0cyB0ZXh0LlxyXG4gKiBAcmV0dXJucyBSdWxlIGZpeGVyIHRoYXQgcmVjb3JkcyBpbnNlcnRlZCBlZGl0cy5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBmaXhlciA9IGNyZWF0ZVJlY29yZGVkRml4ZXIoW10pOyB2b2lkIGZpeGVyO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNyZWF0ZVJlY29yZGVkRml4ZXIoaW5zZXJ0ZWRGaXhlczogUnVsZS5GaXhbXSk6IFJ1bGUuUnVsZUZpeGVyIHtcclxuICByZXR1cm4ge1xyXG4gICAgaW5zZXJ0VGV4dEJlZm9yZVJhbmdlKHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdLCB0ZXh0OiBzdHJpbmcpOiBSdWxlLkZpeCB7XHJcbiAgICAgIGNvbnN0IGZpeDogUnVsZS5GaXggPSB7IHJhbmdlLCB0ZXh0IH07XHJcbiAgICAgIGluc2VydGVkRml4ZXMucHVzaChmaXgpO1xyXG4gICAgICByZXR1cm4gZml4O1xyXG4gICAgfSxcclxuICB9IGFzIFJ1bGUuUnVsZUZpeGVyO1xyXG59XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyB0aGUgbWluaW1hbCBydWxlIGNvbnRleHQgdXNlZCBieSB0aGUgbW9ja2VkIHNjZW5hcmlvLlxyXG4gKiBAcGFyYW0gcmVwb3J0cyBSZXBvcnQgZGVzY3JpcHRvcnMgY2FwdHVyZWQgZHVyaW5nIHJ1bGUgZXhlY3V0aW9uLlxyXG4gKiBAcmV0dXJucyBSdWxlIGNvbnRleHQgdGhhdCByZWNvcmRzIGVtaXR0ZWQgcmVwb3J0cy5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBjb250ZXh0ID0gY3JlYXRlUnVsZUNvbnRleHQoW10pOyB2b2lkIGNvbnRleHQ7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlUnVsZUNvbnRleHQocmVwb3J0czogUnVsZS5SZXBvcnREZXNjcmlwdG9yW10pOiBSdWxlLlJ1bGVDb250ZXh0IHtcclxuICByZXR1cm4ge1xyXG4gICAgcmVwb3J0KGRlc2NyaXB0b3I6IFJ1bGUuUmVwb3J0RGVzY3JpcHRvcik6IHZvaWQge1xyXG4gICAgICByZXBvcnRzLnB1c2goZGVzY3JpcHRvcik7XHJcbiAgICB9LFxyXG4gIH0gYXMgUnVsZS5SdWxlQ29udGV4dDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlYWRzIHRoZSBmaXggZW1pdHRlZCBieSBhIHJlcG9ydCBkZXNjcmlwdG9yLlxyXG4gKiBAcGFyYW0gZGVzY3JpcHRvciBSZXBvcnQgZGVzY3JpcHRvciB0byBldmFsdWF0ZS5cclxuICogQHBhcmFtIGZpeGVyIFN5bnRoZXRpYyBmaXhlciBwYXNzZWQgaW50byB0aGUgZGVzY3JpcHRvciBjYWxsYmFjay5cclxuICogQHJldHVybnMgRml4IG91dHB1dCBwcm9kdWNlZCBieSB0aGUgZGVzY3JpcHRvci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBmaXggPSBnZXREZXNjcmlwdG9yRml4KHZvaWQgMCwge30gYXMgbmV2ZXIpOyB2b2lkIGZpeDtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBnZXREZXNjcmlwdG9yRml4KFxyXG4gIGRlc2NyaXB0b3I6IFJ1bGUuUmVwb3J0RGVzY3JpcHRvciB8IHVuZGVmaW5lZCxcclxuICBmaXhlcjogUnVsZS5SdWxlRml4ZXIsXHJcbik6IFJ1bGUuRml4IHwgUnVsZS5GaXhbXSB8IHVuZGVmaW5lZCB7XHJcbiAgY29uc3QgYWN0dWFsID0gZGVzY3JpcHRvcj8uZml4Py4oZml4ZXIpO1xyXG5cclxuICBpZiAoIShhY3R1YWwgaW5zdGFuY2VvZiBPYmplY3QpKSB7XHJcbiAgICByZXR1cm4gdm9pZCAwO1xyXG4gIH1cclxuXHJcbiAgaWYgKEFycmF5LmlzQXJyYXkoYWN0dWFsKSB8fCBcInJhbmdlXCIgaW4gYWN0dWFsKSB7XHJcbiAgICByZXR1cm4gYWN0dWFsO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgaXRlcmFibGVGaXhlczogSXRlcmFibGU8UnVsZS5GaXg+ID0gYWN0dWFsO1xyXG5cclxuICByZXR1cm4gWy4uLml0ZXJhYmxlRml4ZXNdO1xyXG59XHJcblxyXG4vKipcclxuICogUmVhZHMgdGhlIG1vY2tlZCBsaW5lLXN0YXJ0IHJhbmdlIGZvciB0aGUgYmxhbmstbGluZSBmaXguXHJcbiAqIEByZXR1cm5zIFN5bnRoZXRpYyByYW5nZSB1c2VkIGJ5IHRoZSBydWxlIGZpeC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCByYW5nZSA9IGdldE1vY2tMaW5lU3RhcnRSYW5nZSgpOyB2b2lkIHJhbmdlO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldE1vY2tMaW5lU3RhcnRSYW5nZSgpOiBbbnVtYmVyLCBudW1iZXJdIHtcclxuICByZXR1cm4gWzcsIDddO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgcGhhc2UtYm91bmRhcnkgY29tbWVudHMgZnJvbSB0aGUgbW9ja2VkIGFuYWx5c2lzLlxyXG4gKiBAcGFyYW0gYW5hbHlzaXMgUGFyc2VkIGFuYWx5c2lzIHVzZWQgYnkgdGhlIG1vY2tlZCBydWxlIGhlbHBlcnMuXHJcbiAqIEByZXR1cm5zIE9ubHkgY29tbWVudHMgdGhhdCBiZWdpbiBhIGxhdGVyIEFBQSBwaGFzZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBjb21tZW50cyA9IGdldE1vY2tQaGFzZUJvdW5kYXJ5Q29tbWVudHMoY3JlYXRlTW9ja0FuYWx5c2lzKCkpO1xyXG4gKiB2b2lkIGNvbW1lbnRzO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGdldE1vY2tQaGFzZUJvdW5kYXJ5Q29tbWVudHMoXHJcbiAgYW5hbHlzaXM6IFRlc3RCbG9ja0FuYWx5c2lzLFxyXG4pOiBUZXN0QmxvY2tBbmFseXNpc1tcInNlY3Rpb25Db21tZW50c1wiXSB7XHJcbiAgcmV0dXJuIGFuYWx5c2lzLnNlY3Rpb25Db21tZW50cy5zbGljZSgxKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlYWRzIHRoZSBtZXNzYWdlIGlkZW50aWZpZXIgZnJvbSBhIHJlcG9ydCBkZXNjcmlwdG9yIHdoZW4gcHJlc2VudC5cclxuICogQHBhcmFtIGRlc2NyaXB0b3IgUmVwb3J0IGRlc2NyaXB0b3IgZW1pdHRlZCBieSB0aGUgcnVsZS5cclxuICogQHJldHVybnMgU3VwcG9ydGVkIG1lc3NhZ2UgaWRlbnRpZmllciB3aGVuIHByZXNlbnQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgbWVzc2FnZUlkID0gZ2V0UmVwb3J0TWVzc2FnZUlkKHsgbWVzc2FnZUlkOiBcIm1pc3NpbmdTZWN0aW9uc1wiIH0gYXMgUnVsZS5SZXBvcnREZXNjcmlwdG9yKTtcclxuICogdm9pZCBtZXNzYWdlSWQ7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0UmVwb3J0TWVzc2FnZUlkKFxyXG4gIGRlc2NyaXB0b3I6IFJ1bGUuUmVwb3J0RGVzY3JpcHRvcixcclxuKTogUmVxdWlyZUFhYVNlY3Rpb25zTWVzc2FnZUlkIHwgdW5kZWZpbmVkIHtcclxuICBpZiAoXHJcbiAgICAhKFwibWVzc2FnZUlkXCIgaW4gZGVzY3JpcHRvcikgfHxcclxuICAgICFpc1JlcXVpcmVBYWFTZWN0aW9uc01lc3NhZ2VJZChkZXNjcmlwdG9yLm1lc3NhZ2VJZClcclxuICApIHtcclxuICAgIHJldHVybiB2b2lkIDA7XHJcbiAgfVxyXG4gIHJldHVybiBkZXNjcmlwdG9yLm1lc3NhZ2VJZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIGFuIHVua25vd24gdmFsdWUgaXMgYSB2YWxpZCBydWxlIG1lc3NhZ2UgaWRlbnRpZmllci5cclxuICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIHZhbGlkYXRlLlxyXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSB2YWx1ZSBpcyBhIHN1cHBvcnRlZCBtZXNzYWdlIGlkZW50aWZpZXIuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgYWN0dWFsID0gaXNSZXF1aXJlQWFhU2VjdGlvbnNNZXNzYWdlSWQoXCJtaXNzaW5nU2VjdGlvbnNcIik7XHJcbiAqIHZvaWQgYWN0dWFsO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzUmVxdWlyZUFhYVNlY3Rpb25zTWVzc2FnZUlkKFxyXG4gIHZhbHVlOiB1bmtub3duLFxyXG4pOiB2YWx1ZSBpcyBSZXF1aXJlQWFhU2VjdGlvbnNNZXNzYWdlSWQge1xyXG4gIHJldHVybiAoXHJcbiAgICB2YWx1ZSA9PT0gXCJibGFua0xpbmVCZWZvcmVTZWN0aW9uXCIgfHxcclxuICAgIHZhbHVlID09PSBcImNvZGVCZWZvcmVBcnJhbmdlXCIgfHxcclxuICAgIHZhbHVlID09PSBcImVtcHR5U2VjdGlvblwiIHx8XHJcbiAgICB2YWx1ZSA9PT0gXCJtaXNzaW5nU2VjdGlvbnNcIlxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBMb2FkcyB0aGUgcnVsZSBtb2R1bGUgYWZ0ZXIgdGVzdCBtb2NrcyBoYXZlIGJlZW4gYXBwbGllZC5cclxuICogQHJldHVybnMgVGhlIHJ1bGUgbW9kdWxlIHVuZGVyIHRlc3QuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgcnVsZSA9IGF3YWl0IGxvYWRSZXF1aXJlQWFhU2VjdGlvbnNSdWxlKCk7IHZvaWQgcnVsZTtcclxuICogYGBgXHJcbiAqL1xyXG5hc3luYyBmdW5jdGlvbiBsb2FkUmVxdWlyZUFhYVNlY3Rpb25zUnVsZSgpOiBQcm9taXNlPFJ1bGUuUnVsZU1vZHVsZT4ge1xyXG4gIHJldHVybiAoKGF3YWl0IGltcG9ydChcIi4vcnVsZVwiKSkgYXMgUnVsZU1vZHVsZU5hbWVzcGFjZSlcclxuICAgIC5yZXF1aXJlQWFhU2VjdGlvbnNSdWxlO1xyXG59XHJcblxyXG5leHBvcnQge1xyXG4gIGNyZWF0ZUFhYU1vZHVsZU1vY2ssXHJcbiAgY3JlYXRlTWlzc2luZ1NlY3Rpb25GaXhlc01vZHVsZSxcclxuICBjcmVhdGVSZWNvcmRlZEZpeGVyLFxyXG4gIGNyZWF0ZVJ1bGVDb250ZXh0LFxyXG4gIGdldERlc2NyaXB0b3JGaXgsXHJcbiAgZ2V0UmVwb3J0TWVzc2FnZUlkLFxyXG4gIGxvYWRSZXF1aXJlQWFhU2VjdGlvbnNSdWxlLFxyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgeyBTY2VuYXJpb1Jlc3VsdCB9O1xyXG4iXX0=
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import type { RequireTestCompanionOptions } from "./types.js";
|
|
2
|
-
/** Type definition for rule data. */
|
|
3
|
-
interface RuleReport {
|
|
4
|
-
/** MessageId helper value. */
|
|
5
|
-
messageId: string | undefined;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Creates createTemporaryFile.
|
|
9
|
-
* @param root Input root value.
|
|
10
|
-
* @param filename Input filename value.
|
|
11
|
-
* @returns Return value output.
|
|
12
|
-
* @example
|
|
13
|
-
* ```typescript
|
|
14
|
-
* createTemporaryFile();
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
declare const createTemporaryFile: (root: "src" | "tmp", filename: string) => string;
|
|
18
|
-
/**
|
|
19
|
-
* Creates a temporary file pair for test/source combinations.
|
|
20
|
-
* @param root Input root value.
|
|
21
|
-
* @param first Input first value.
|
|
22
|
-
* @param second Input second value.
|
|
23
|
-
* @returns Tuple of created file paths.
|
|
24
|
-
* @throws {Error} When the file paths are missing.
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* const [source, test] = createTemporaryPair("tmp", "a.ts", "a.spec.ts");
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
declare const createTemporaryPair: (root: "src" | "tmp", first: string, second: string) => [string, string];
|
|
31
|
-
/**
|
|
32
|
-
* Runs the rule with the given options.
|
|
33
|
-
* @param filename Input filename value.
|
|
34
|
-
* @param options Input options value.
|
|
35
|
-
* @returns Collected rule reports.
|
|
36
|
-
* @example
|
|
37
|
-
* ```typescript
|
|
38
|
-
* const reports = runRule("/tmp/feature.ts");
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
declare const runRule: (filename: string, options?: RequireTestCompanionOptions) => RuleReport[];
|
|
42
|
-
/**
|
|
43
|
-
* Cleans up temporary directories created by tests.
|
|
44
|
-
* @example
|
|
45
|
-
* ```typescript
|
|
46
|
-
* cleanupTemporaryDirectories();
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
declare const cleanupTemporaryDirectories: () => void;
|
|
50
|
-
export { cleanupTemporaryDirectories, createTemporaryFile, createTemporaryPair, runRule, };
|
|
51
|
-
//# sourceMappingURL=require-test-companion-test-helpers.d.ts.map
|
package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"require-test-companion-test-helpers.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-test-companion/require-test-companion-test-helpers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAU3D,qCAAqC;AACrC,UAAU,UAAU;IAClB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAgCD;;;;;;;;;GASG;AACH,QAAA,MAAM,mBAAmB,GAAI,MAAM,KAAK,GAAG,KAAK,EAAE,UAAU,MAAM,KAAG,MAMpE,CAAC;AAyBF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,mBAAmB,GACvB,MAAM,KAAK,GAAG,KAAK,EACnB,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,CAAC,MAAM,EAAE,MAAM,CAOjB,CAAC;AA2EF;;;;;;;;;GASG;AACH,QAAA,MAAM,OAAO,GACX,UAAU,MAAM,EAChB,UAAU,2BAA2B,KACpC,UAAU,EAUZ,CAAC;AAEF;;;;;;GAMG;AACH,QAAA,MAAM,2BAA2B,QAAO,IAIvC,CAAC;AAEF,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,GACR,CAAC"}
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import { SourceCode } from "eslint";
|
|
2
|
-
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
3
|
-
import path from "node:path";
|
|
4
|
-
import { cwd } from "node:process";
|
|
5
|
-
import { requireTestCompanionRule } from "./rule.js";
|
|
6
|
-
/** Tracks temporary directories so tests can clean them up. */
|
|
7
|
-
const temporaryDirectories = [];
|
|
8
|
-
/**
|
|
9
|
-
* Creates createRepoDirectory.
|
|
10
|
-
* @param root Input root value.
|
|
11
|
-
* @returns Return value output.
|
|
12
|
-
* @example
|
|
13
|
-
* ```typescript
|
|
14
|
-
* createRepoDirectory();
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
const createRepoDirectory = (root) => {
|
|
18
|
-
const baseDirectory = path.join(cwd(), root);
|
|
19
|
-
mkdirSync(baseDirectory, { recursive: true });
|
|
20
|
-
return mkdtempSync(path.join(baseDirectory, "test-companion-"));
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* Writes a simple TypeScript file at the provided path.
|
|
24
|
-
* @param filePath Input filePath value.
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* writeFile("/tmp/feature.ts");
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
const writeFile = (filePath) => {
|
|
31
|
-
writeFileSync(filePath, "export const value = 1;", "utf8");
|
|
32
|
-
};
|
|
33
|
-
/**
|
|
34
|
-
* Creates createTemporaryFile.
|
|
35
|
-
* @param root Input root value.
|
|
36
|
-
* @param filename Input filename value.
|
|
37
|
-
* @returns Return value output.
|
|
38
|
-
* @example
|
|
39
|
-
* ```typescript
|
|
40
|
-
* createTemporaryFile();
|
|
41
|
-
* ```
|
|
42
|
-
*/
|
|
43
|
-
const createTemporaryFile = (root, filename) => {
|
|
44
|
-
const directory = createRepoDirectory(root);
|
|
45
|
-
temporaryDirectories.push(directory);
|
|
46
|
-
const filePath = path.join(directory, filename);
|
|
47
|
-
writeFile(filePath);
|
|
48
|
-
return filePath;
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* Creates multiple temporary files under the given root.
|
|
52
|
-
* @param root Input root value.
|
|
53
|
-
* @param filenames Input filenames value.
|
|
54
|
-
* @returns Paths to the created files.
|
|
55
|
-
* @example
|
|
56
|
-
* ```typescript
|
|
57
|
-
* const paths = createTemporaryFiles("tmp", ["a.ts", "b.ts"]);
|
|
58
|
-
* ```
|
|
59
|
-
*/
|
|
60
|
-
const createTemporaryFiles = (root, filenames) => {
|
|
61
|
-
const directory = createRepoDirectory(root);
|
|
62
|
-
temporaryDirectories.push(directory);
|
|
63
|
-
return filenames.map((filename) => {
|
|
64
|
-
const filePath = path.join(directory, filename);
|
|
65
|
-
writeFile(filePath);
|
|
66
|
-
return filePath;
|
|
67
|
-
});
|
|
68
|
-
};
|
|
69
|
-
/**
|
|
70
|
-
* Creates a temporary file pair for test/source combinations.
|
|
71
|
-
* @param root Input root value.
|
|
72
|
-
* @param first Input first value.
|
|
73
|
-
* @param second Input second value.
|
|
74
|
-
* @returns Tuple of created file paths.
|
|
75
|
-
* @throws {Error} When the file paths are missing.
|
|
76
|
-
* @example
|
|
77
|
-
* ```typescript
|
|
78
|
-
* const [source, test] = createTemporaryPair("tmp", "a.ts", "a.spec.ts");
|
|
79
|
-
* ```
|
|
80
|
-
*/
|
|
81
|
-
const createTemporaryPair = (root, first, second) => {
|
|
82
|
-
const [firstPath, secondPath] = createTemporaryFiles(root, [
|
|
83
|
-
first,
|
|
84
|
-
second,
|
|
85
|
-
]);
|
|
86
|
-
return [firstPath, secondPath];
|
|
87
|
-
};
|
|
88
|
-
/**
|
|
89
|
-
* Creates createProgramAst.
|
|
90
|
-
* @returns Return value output.
|
|
91
|
-
* @example
|
|
92
|
-
* ```typescript
|
|
93
|
-
* createProgramAst();
|
|
94
|
-
* ```
|
|
95
|
-
*/
|
|
96
|
-
const createProgramAst = () => ({
|
|
97
|
-
body: [],
|
|
98
|
-
comments: [],
|
|
99
|
-
loc: {
|
|
100
|
-
end: { column: 0, line: 1 },
|
|
101
|
-
start: { column: 0, line: 1 },
|
|
102
|
-
},
|
|
103
|
-
range: [0, 0],
|
|
104
|
-
sourceType: "module",
|
|
105
|
-
tokens: [],
|
|
106
|
-
type: "Program",
|
|
107
|
-
});
|
|
108
|
-
/**
|
|
109
|
-
* Creates a rule context for the given filename.
|
|
110
|
-
* @param filename Input filename value.
|
|
111
|
-
* @param reports Input reports value.
|
|
112
|
-
* @param sourceCode Input sourceCode value.
|
|
113
|
-
* @returns Rule context for tests.
|
|
114
|
-
* @example
|
|
115
|
-
* ```typescript
|
|
116
|
-
* const context = createRuleContext(file, reports, sourceCode);
|
|
117
|
-
* ```
|
|
118
|
-
*/
|
|
119
|
-
const createRuleContext = (filename, reports, sourceCode) => ({
|
|
120
|
-
cwd: cwd(),
|
|
121
|
-
filename,
|
|
122
|
-
id: "require-test-companion",
|
|
123
|
-
languageOptions: {
|
|
124
|
-
ecmaVersion: "latest",
|
|
125
|
-
sourceType: "module",
|
|
126
|
-
},
|
|
127
|
-
options: [],
|
|
128
|
-
parserOptions: {},
|
|
129
|
-
parserPath: void 0,
|
|
130
|
-
physicalFilename: filename,
|
|
131
|
-
report: (report) => {
|
|
132
|
-
const { messageId } = report;
|
|
133
|
-
reports.push({ messageId });
|
|
134
|
-
},
|
|
135
|
-
settings: {},
|
|
136
|
-
sourceCode,
|
|
137
|
-
});
|
|
138
|
-
/**
|
|
139
|
-
* Runs the rule listeners for a context.
|
|
140
|
-
* @param context Input context value.
|
|
141
|
-
* @example
|
|
142
|
-
* ```typescript
|
|
143
|
-
* runListeners(context);
|
|
144
|
-
* ```
|
|
145
|
-
*/
|
|
146
|
-
const runListeners = (context) => {
|
|
147
|
-
const listeners = requireTestCompanionRule.create(context);
|
|
148
|
-
const programNode = context.sourceCode.ast;
|
|
149
|
-
const programListener = listeners.Program;
|
|
150
|
-
programListener?.(programNode);
|
|
151
|
-
};
|
|
152
|
-
/**
|
|
153
|
-
* Runs the rule with the given options.
|
|
154
|
-
* @param filename Input filename value.
|
|
155
|
-
* @param options Input options value.
|
|
156
|
-
* @returns Collected rule reports.
|
|
157
|
-
* @example
|
|
158
|
-
* ```typescript
|
|
159
|
-
* const reports = runRule("/tmp/feature.ts");
|
|
160
|
-
* ```
|
|
161
|
-
*/
|
|
162
|
-
const runRule = (filename, options) => {
|
|
163
|
-
const reports = [];
|
|
164
|
-
const programAst = createProgramAst();
|
|
165
|
-
const sourceCode = new SourceCode("", programAst);
|
|
166
|
-
const context = createRuleContext(filename, reports, sourceCode);
|
|
167
|
-
context.options = options === void 0 ? [] : [options];
|
|
168
|
-
runListeners(context);
|
|
169
|
-
return reports;
|
|
170
|
-
};
|
|
171
|
-
/**
|
|
172
|
-
* Cleans up temporary directories created by tests.
|
|
173
|
-
* @example
|
|
174
|
-
* ```typescript
|
|
175
|
-
* cleanupTemporaryDirectories();
|
|
176
|
-
* ```
|
|
177
|
-
*/
|
|
178
|
-
const cleanupTemporaryDirectories = () => {
|
|
179
|
-
for (const directory of temporaryDirectories.splice(0)) {
|
|
180
|
-
rmSync(directory, { force: true, recursive: true });
|
|
181
|
-
}
|
|
182
|
-
};
|
|
183
|
-
export { cleanupTemporaryDirectories, createTemporaryFile, createTemporaryPair, runRule, };
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZS10ZXN0LWNvbXBhbmlvbi10ZXN0LWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcmVxdWlyZS10ZXN0LWNvbXBhbmlvbi9yZXF1aXJlLXRlc3QtY29tcGFuaW9uLXRlc3QtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDeEUsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJbkMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBY2xELCtEQUErRDtBQUMvRCxNQUFNLG9CQUFvQixHQUFhLEVBQUUsQ0FBQztBQUUxQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFtQixFQUFVLEVBQUU7SUFDMUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QyxTQUFTLENBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFNBQVMsR0FBRyxDQUFDLFFBQWdCLEVBQVEsRUFBRTtJQUMzQyxhQUFhLENBQUMsUUFBUSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzdELENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7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QUFtQixFQUNuQixtQkFBbUIsRUFDbkIsT0FBTyxHQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFTVCwgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHsgU291cmNlQ29kZSB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB7IG1rZGlyU3luYywgbWtkdGVtcFN5bmMsIHJtU3luYywgd3JpdGVGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBjd2QgfSBmcm9tIFwibm9kZTpwcm9jZXNzXCI7XG5cbmltcG9ydCB0eXBlIHsgUmVxdWlyZVRlc3RDb21wYW5pb25PcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHsgcmVxdWlyZVRlc3RDb21wYW5pb25SdWxlIH0gZnJvbSBcIi4vcnVsZVwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgUmVwb3J0RGVzY3JpcHRvcldpdGhNZXNzYWdlSWQge1xuICAvKiogTWVzc2FnZUlkIGZpZWxkIHZhbHVlLiAqL1xuICBtZXNzYWdlSWQ/OiBzdHJpbmc7XG59XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBSdWxlUmVwb3J0IHtcbiAgLyoqIE1lc3NhZ2VJZCBoZWxwZXIgdmFsdWUuICovXG4gIG1lc3NhZ2VJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVHJhY2tzIHRlbXBvcmFyeSBkaXJlY3RvcmllcyBzbyB0ZXN0cyBjYW4gY2xlYW4gdGhlbSB1cC4gKi9cbmNvbnN0IHRlbXBvcmFyeURpcmVjdG9yaWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4vKipcbiAqIENyZWF0ZXMgY3JlYXRlUmVwb0RpcmVjdG9yeS5cbiAqIEBwYXJhbSByb290IElucHV0IHJvb3QgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNyZWF0ZVJlcG9EaXJlY3RvcnkoKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVSZXBvRGlyZWN0b3J5ID0gKHJvb3Q6IFwic3JjXCIgfCBcInRtcFwiKTogc3RyaW5nID0+IHtcbiAgY29uc3QgYmFzZURpcmVjdG9yeSA9IHBhdGguam9pbihjd2QoKSwgcm9vdCk7XG4gIG1rZGlyU3luYyhiYXNlRGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgcmV0dXJuIG1rZHRlbXBTeW5jKHBhdGguam9pbihiYXNlRGlyZWN0b3J5LCBcInRlc3QtY29tcGFuaW9uLVwiKSk7XG59O1xuXG4vKipcbiAqIFdyaXRlcyBhIHNpbXBsZSBUeXBlU2NyaXB0IGZpbGUgYXQgdGhlIHByb3ZpZGVkIHBhdGguXG4gKiBAcGFyYW0gZmlsZVBhdGggSW5wdXQgZmlsZVBhdGggdmFsdWUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogd3JpdGVGaWxlKFwiL3RtcC9mZWF0dXJlLnRzXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IHdyaXRlRmlsZSA9IChmaWxlUGF0aDogc3RyaW5nKTogdm9pZCA9PiB7XG4gIHdyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIFwiZXhwb3J0IGNvbnN0IHZhbHVlID0gMTtcIiwgXCJ1dGY4XCIpO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGNyZWF0ZVRlbXBvcmFyeUZpbGUuXG4gKiBAcGFyYW0gcm9vdCBJbnB1dCByb290IHZhbHVlLlxuICogQHBhcmFtIGZpbGVuYW1lIElucHV0IGZpbGVuYW1lIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjcmVhdGVUZW1wb3JhcnlGaWxlKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlVGVtcG9yYXJ5RmlsZSA9IChyb290OiBcInNyY1wiIHwgXCJ0bXBcIiwgZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGRpcmVjdG9yeSA9IGNyZWF0ZVJlcG9EaXJlY3Rvcnkocm9vdCk7XG4gIHRlbXBvcmFyeURpcmVjdG9yaWVzLnB1c2goZGlyZWN0b3J5KTtcbiAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZGlyZWN0b3J5LCBmaWxlbmFtZSk7XG4gIHdyaXRlRmlsZShmaWxlUGF0aCk7XG4gIHJldHVybiBmaWxlUGF0aDtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBtdWx0aXBsZSB0ZW1wb3JhcnkgZmlsZXMgdW5kZXIgdGhlIGdpdmVuIHJvb3QuXG4gKiBAcGFyYW0gcm9vdCBJbnB1dCByb290IHZhbHVlLlxuICogQHBhcmFtIGZpbGVuYW1lcyBJbnB1dCBmaWxlbmFtZXMgdmFsdWUuXG4gKiBAcmV0dXJucyBQYXRocyB0byB0aGUgY3JlYXRlZCBmaWxlcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwYXRocyA9IGNyZWF0ZVRlbXBvcmFyeUZpbGVzKFwidG1wXCIsIFtcImEudHNcIiwgXCJiLnRzXCJdKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVUZW1wb3JhcnlGaWxlcyA9IChcbiAgcm9vdDogXCJzcmNcIiB8IFwidG1wXCIsXG4gIGZpbGVuYW1lczogc3RyaW5nW10sXG4pOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGRpcmVjdG9yeSA9IGNyZWF0ZVJlcG9EaXJlY3Rvcnkocm9vdCk7XG4gIHRlbXBvcmFyeURpcmVjdG9yaWVzLnB1c2goZGlyZWN0b3J5KTtcbiAgcmV0dXJuIGZpbGVuYW1lcy5tYXAoKGZpbGVuYW1lKSA9PiB7XG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZGlyZWN0b3J5LCBmaWxlbmFtZSk7XG4gICAgd3JpdGVGaWxlKGZpbGVQYXRoKTtcbiAgICByZXR1cm4gZmlsZVBhdGg7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgdGVtcG9yYXJ5IGZpbGUgcGFpciBmb3IgdGVzdC9zb3VyY2UgY29tYmluYXRpb25zLlxuICogQHBhcmFtIHJvb3QgSW5wdXQgcm9vdCB2YWx1ZS5cbiAqIEBwYXJhbSBmaXJzdCBJbnB1dCBmaXJzdCB2YWx1ZS5cbiAqIEBwYXJhbSBzZWNvbmQgSW5wdXQgc2Vjb25kIHZhbHVlLlxuICogQHJldHVybnMgVHVwbGUgb2YgY3JlYXRlZCBmaWxlIHBhdGhzLlxuICogQHRocm93cyB7RXJyb3J9IFdoZW4gdGhlIGZpbGUgcGF0aHMgYXJlIG1pc3NpbmcuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgW3NvdXJjZSwgdGVzdF0gPSBjcmVhdGVUZW1wb3JhcnlQYWlyKFwidG1wXCIsIFwiYS50c1wiLCBcImEuc3BlYy50c1wiKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVUZW1wb3JhcnlQYWlyID0gKFxuICByb290OiBcInNyY1wiIHwgXCJ0bXBcIixcbiAgZmlyc3Q6IHN0cmluZyxcbiAgc2Vjb25kOiBzdHJpbmcsXG4pOiBbc3RyaW5nLCBzdHJpbmddID0+IHtcbiAgY29uc3QgW2ZpcnN0UGF0aCwgc2Vjb25kUGF0aF0gPSBjcmVhdGVUZW1wb3JhcnlGaWxlcyhyb290LCBbXG4gICAgZmlyc3QsXG4gICAgc2Vjb25kLFxuICBdKSBhcyBbc3RyaW5nLCBzdHJpbmddO1xuXG4gIHJldHVybiBbZmlyc3RQYXRoLCBzZWNvbmRQYXRoXTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBjcmVhdGVQcm9ncmFtQXN0LlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjcmVhdGVQcm9ncmFtQXN0KCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlUHJvZ3JhbUFzdCA9ICgpOiBBU1QuUHJvZ3JhbSA9PiAoe1xuICBib2R5OiBbXSxcbiAgY29tbWVudHM6IFtdLFxuICBsb2M6IHtcbiAgICBlbmQ6IHsgY29sdW1uOiAwLCBsaW5lOiAxIH0sXG4gICAgc3RhcnQ6IHsgY29sdW1uOiAwLCBsaW5lOiAxIH0sXG4gIH0sXG4gIHJhbmdlOiBbMCwgMF0sXG4gIHNvdXJjZVR5cGU6IFwibW9kdWxlXCIsXG4gIHRva2VuczogW10sXG4gIHR5cGU6IFwiUHJvZ3JhbVwiLFxufSk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHJ1bGUgY29udGV4dCBmb3IgdGhlIGdpdmVuIGZpbGVuYW1lLlxuICogQHBhcmFtIGZpbGVuYW1lIElucHV0IGZpbGVuYW1lIHZhbHVlLlxuICogQHBhcmFtIHJlcG9ydHMgSW5wdXQgcmVwb3J0cyB2YWx1ZS5cbiAqIEBwYXJhbSBzb3VyY2VDb2RlIElucHV0IHNvdXJjZUNvZGUgdmFsdWUuXG4gKiBAcmV0dXJucyBSdWxlIGNvbnRleHQgZm9yIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGNvbnRleHQgPSBjcmVhdGVSdWxlQ29udGV4dChmaWxlLCByZXBvcnRzLCBzb3VyY2VDb2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVSdWxlQ29udGV4dCA9IChcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgcmVwb3J0czogUnVsZVJlcG9ydFtdLFxuICBzb3VyY2VDb2RlOiBTb3VyY2VDb2RlLFxuKTogUnVsZS5SdWxlQ29udGV4dCA9PlxuICAoe1xuICAgIGN3ZDogY3dkKCksXG4gICAgZmlsZW5hbWUsXG4gICAgaWQ6IFwicmVxdWlyZS10ZXN0LWNvbXBhbmlvblwiLFxuICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgZWNtYVZlcnNpb246IFwibGF0ZXN0XCIsXG4gICAgICBzb3VyY2VUeXBlOiBcIm1vZHVsZVwiLFxuICAgIH0sXG4gICAgb3B0aW9uczogW10sXG4gICAgcGFyc2VyT3B0aW9uczoge30sXG4gICAgcGFyc2VyUGF0aDogdm9pZCAwLFxuICAgIHBoeXNpY2FsRmlsZW5hbWU6IGZpbGVuYW1lLFxuICAgIHJlcG9ydDogKHJlcG9ydDogUnVsZS5SZXBvcnREZXNjcmlwdG9yKTogdm9pZCA9PiB7XG4gICAgICBjb25zdCB7IG1lc3NhZ2VJZCB9ID0gcmVwb3J0IGFzIFJlcG9ydERlc2NyaXB0b3JXaXRoTWVzc2FnZUlkO1xuICAgICAgcmVwb3J0cy5wdXNoKHsgbWVzc2FnZUlkIH0pO1xuICAgIH0sXG4gICAgc2V0dGluZ3M6IHt9LFxuICAgIHNvdXJjZUNvZGUsXG4gIH0pIGFzIHVua25vd24gYXMgUnVsZS5SdWxlQ29udGV4dDtcblxuLyoqXG4gKiBSdW5zIHRoZSBydWxlIGxpc3RlbmVycyBmb3IgYSBjb250ZXh0LlxuICogQHBhcmFtIGNvbnRleHQgSW5wdXQgY29udGV4dCB2YWx1ZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBydW5MaXN0ZW5lcnMoY29udGV4dCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcnVuTGlzdGVuZXJzID0gKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiB2b2lkID0+IHtcbiAgY29uc3QgbGlzdGVuZXJzID0gcmVxdWlyZVRlc3RDb21wYW5pb25SdWxlLmNyZWF0ZShjb250ZXh0KTtcbiAgY29uc3QgcHJvZ3JhbU5vZGUgPSBjb250ZXh0LnNvdXJjZUNvZGUuYXN0O1xuICBjb25zdCBwcm9ncmFtTGlzdGVuZXIgPSBsaXN0ZW5lcnMuUHJvZ3JhbTtcblxuICBwcm9ncmFtTGlzdGVuZXI/Lihwcm9ncmFtTm9kZSk7XG59O1xuXG4vKipcbiAqIFJ1bnMgdGhlIHJ1bGUgd2l0aCB0aGUgZ2l2ZW4gb3B0aW9ucy5cbiAqIEBwYXJhbSBmaWxlbmFtZSBJbnB1dCBmaWxlbmFtZSB2YWx1ZS5cbiAqIEBwYXJhbSBvcHRpb25zIElucHV0IG9wdGlvbnMgdmFsdWUuXG4gKiBAcmV0dXJucyBDb2xsZWN0ZWQgcnVsZSByZXBvcnRzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlcG9ydHMgPSBydW5SdWxlKFwiL3RtcC9mZWF0dXJlLnRzXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IHJ1blJ1bGUgPSAoXG4gIGZpbGVuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBSZXF1aXJlVGVzdENvbXBhbmlvbk9wdGlvbnMsXG4pOiBSdWxlUmVwb3J0W10gPT4ge1xuICBjb25zdCByZXBvcnRzOiBSdWxlUmVwb3J0W10gPSBbXTtcbiAgY29uc3QgcHJvZ3JhbUFzdCA9IGNyZWF0ZVByb2dyYW1Bc3QoKTtcbiAgY29uc3Qgc291cmNlQ29kZSA9IG5ldyBTb3VyY2VDb2RlKFwiXCIsIHByb2dyYW1Bc3QpO1xuICBjb25zdCBjb250ZXh0ID0gY3JlYXRlUnVsZUNvbnRleHQoZmlsZW5hbWUsIHJlcG9ydHMsIHNvdXJjZUNvZGUpO1xuICBjb250ZXh0Lm9wdGlvbnMgPSBvcHRpb25zID09PSB2b2lkIDAgPyBbXSA6IFtvcHRpb25zXTtcblxuICBydW5MaXN0ZW5lcnMoY29udGV4dCk7XG5cbiAgcmV0dXJuIHJlcG9ydHM7XG59O1xuXG4vKipcbiAqIENsZWFucyB1cCB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMgY3JlYXRlZCBieSB0ZXN0cy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjbGVhbnVwVGVtcG9yYXJ5RGlyZWN0b3JpZXMoKTtcbiAqIGBgYFxuICovXG5jb25zdCBjbGVhbnVwVGVtcG9yYXJ5RGlyZWN0b3JpZXMgPSAoKTogdm9pZCA9PiB7XG4gIGZvciAoY29uc3QgZGlyZWN0b3J5IG9mIHRlbXBvcmFyeURpcmVjdG9yaWVzLnNwbGljZSgwKSkge1xuICAgIHJtU3luYyhkaXJlY3RvcnksIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgfVxufTtcblxuZXhwb3J0IHtcbiAgY2xlYW51cFRlbXBvcmFyeURpcmVjdG9yaWVzLFxuICBjcmVhdGVUZW1wb3JhcnlGaWxlLFxuICBjcmVhdGVUZW1wb3JhcnlQYWlyLFxuICBydW5SdWxlLFxufTtcbiJdfQ==
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { Rule } from "eslint";
|
|
2
|
-
import { getOptions as getOptionsImpl } from "./require-test-companion-options.js";
|
|
3
|
-
/** Normalized options state type. */
|
|
4
|
-
type RequireTestCompanionState = ReturnType<typeof getOptionsImpl>;
|
|
5
|
-
/**
|
|
6
|
-
* Build a rule listener for a source filename.
|
|
7
|
-
* @param context Rule execution context.
|
|
8
|
-
* @param filename Source file path.
|
|
9
|
-
* @param options Normalized rule options state.
|
|
10
|
-
* @returns Rule listener for the file.
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* const listener = buildListenerForFilename(context, filename, options);
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
declare const buildListenerForFilename: (context: Rule.RuleContext, filename: string, options: RequireTestCompanionState) => Rule.RuleListener;
|
|
17
|
-
/**
|
|
18
|
-
* Normalize rule options for the listener.
|
|
19
|
-
* @param options Raw rule options.
|
|
20
|
-
* @returns Normalized rule options state.
|
|
21
|
-
* @example
|
|
22
|
-
* ```typescript
|
|
23
|
-
* const options = getOptions([]);
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
declare const getOptions: (options: readonly unknown[]) => RequireTestCompanionState;
|
|
27
|
-
export { buildListenerForFilename, getOptions };
|
|
28
|
-
//# sourceMappingURL=require-test-companion-utilities.d.ts.map
|
package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"require-test-companion-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/require-test-companion/require-test-companion-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEhF,qCAAqC;AACrC,KAAK,yBAAyB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAEnE;;;;;;;;;;GAUG;AACH,QAAA,MAAM,wBAAwB,GAC5B,SAAS,IAAI,CAAC,WAAW,EACzB,UAAU,MAAM,EAChB,SAAS,yBAAyB,KACjC,IAAI,CAAC,YACkD,CAAC;AAE3D;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,GAAI,SAAS,SAAS,OAAO,EAAE,KAAG,yBACzB,CAAC;AAE1B,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC"}
|