@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,4 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createRuleDocumentation } from "../../custom-rule-documentation.js";
|
|
2
|
+
import { analyzeTestBlock } from "../aaa/analyzer.analysis.js";
|
|
3
|
+
import { aaaPhaseOrder, getFlattenedSections, getLineStartRange, getPhaseBoundaryComments, } from "../aaa/analyzer.analysis.helpers.js";
|
|
4
|
+
import { hasBlankLineBeforeComment } from "../aaa/analyzer.classification.helpers.js";
|
|
5
|
+
import { reportPhasePurityViolations } from "../enforce-aaa-phase-purity/phase-purity-reporting.js";
|
|
6
|
+
import { buildMissingSectionFixes } from "./missing-section-fixes.js";
|
|
2
7
|
/**
|
|
3
8
|
* Reports a duplicate or out-of-order AAA section comment.
|
|
4
9
|
* @param input Composite reporting input for the current section.
|
|
@@ -67,22 +72,176 @@ const enforceAaaStructureRule = {
|
|
|
67
72
|
seenPhases,
|
|
68
73
|
});
|
|
69
74
|
}
|
|
75
|
+
reportMissingSections(context, analysis);
|
|
76
|
+
reportEmptySections(context, analysis);
|
|
77
|
+
reportOutOfOrderSections(context, analysis);
|
|
78
|
+
reportCodeBeforeArrange(context, analysis);
|
|
79
|
+
reportBlankLineSeparators(context, analysis);
|
|
80
|
+
reportPhasePurityViolations(context, analysis);
|
|
70
81
|
},
|
|
71
82
|
};
|
|
72
83
|
},
|
|
73
84
|
meta: {
|
|
74
|
-
docs:
|
|
75
|
-
|
|
76
|
-
recommended: false,
|
|
77
|
-
url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/enforce-aaa-structure.md",
|
|
78
|
-
},
|
|
85
|
+
docs: createRuleDocumentation("enforce-aaa-structure", "Require explicit AAA markers, enforce section order and uniqueness, and keep setup, action, and assertions in their intended phases."),
|
|
86
|
+
fixable: "code",
|
|
79
87
|
messages: {
|
|
88
|
+
actionInArrange: "Keep the function under test out of Arrange; reserve Arrange for setup only.",
|
|
89
|
+
assertionOutsideAssert: "Move assertions into the // Assert section so test logic does not leak earlier.",
|
|
90
|
+
asyncInArrange: "Do not trigger async behavior in Arrange.",
|
|
91
|
+
awaitOutsideAct: "Use await only inside the // Act section.",
|
|
92
|
+
blankLineBeforeSection: "Insert a blank line before the // {{section}} section comment.",
|
|
93
|
+
codeBeforeArrange: "Move setup statements below the first // Arrange section comment.",
|
|
80
94
|
duplicateSection: "Use the // {{section}} section comment only once per test.",
|
|
95
|
+
emptySection: "The // {{section}} section must contain code; comments alone do not count.",
|
|
81
96
|
invalidOrder: "Move the // {{section}} section comment so AAA phases stay in Arrange, Act, Assert order.",
|
|
97
|
+
missingMeaningfulAct: "The // Act section must contain a meaningful SUT interaction, not only utility or setup calls.",
|
|
98
|
+
missingSections: "Add the missing AAA section comments: {{sections}}.",
|
|
99
|
+
mutationAfterAct: "Do not mutate test data after the // Act section has run.",
|
|
100
|
+
nonAssertionInAssert: "Keep the // Assert section focused on assertions and assertion-local values.",
|
|
101
|
+
outOfOrderSection: "The // {{section}} section comment appears out of order.",
|
|
102
|
+
setupAfterAct: "Do not continue arranging test data after the // Act section has started.",
|
|
82
103
|
},
|
|
83
104
|
schema: [],
|
|
84
105
|
type: "problem",
|
|
85
106
|
},
|
|
86
107
|
};
|
|
108
|
+
/**
|
|
109
|
+
* Reports section comments that are missing a blank line above them.
|
|
110
|
+
* @param context ESLint rule context.
|
|
111
|
+
* @param analysis Parsed test-block analysis.
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* reportBlankLineSeparators({ report() {} } as never, { sectionComments: [], sourceText: "" } as never);
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
function reportBlankLineSeparators(context, analysis) {
|
|
118
|
+
const firstSectionComment = analysis.sectionComments[0]?.comment;
|
|
119
|
+
for (const sectionComment of getPhaseBoundaryComments(analysis)) {
|
|
120
|
+
if (sectionComment.comment !== firstSectionComment &&
|
|
121
|
+
!hasBlankLineBeforeComment(analysis.sourceText, sectionComment.comment)) {
|
|
122
|
+
context.report({
|
|
123
|
+
data: { section: sectionComment.phases.join(" & ") },
|
|
124
|
+
fix: (fixer) => fixer.insertTextBeforeRange(getLineStartRange(analysis.sourceText, sectionComment.comment.loc.start.line), analysis.newline),
|
|
125
|
+
messageId: "blankLineBeforeSection",
|
|
126
|
+
node: sectionComment.comment,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Reports executable statements that appear before the first Arrange section.
|
|
133
|
+
* @param context ESLint rule context.
|
|
134
|
+
* @param analysis Parsed test-block analysis.
|
|
135
|
+
* @example
|
|
136
|
+
* ```typescript
|
|
137
|
+
* reportCodeBeforeArrange({ report() {} } as never, { sectionComments: [], statements: [] } as never);
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
function reportCodeBeforeArrange(context, analysis) {
|
|
141
|
+
const firstArrangeLine = analysis.sectionComments.find((sectionComment) => sectionComment.phases.includes("Arrange"))?.comment.loc.start.line;
|
|
142
|
+
if (firstArrangeLine === void 0) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const statementBeforeArrange = analysis.statements.find((statement) => statement.node.loc.start.line < firstArrangeLine);
|
|
146
|
+
if (statementBeforeArrange === void 0) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
context.report({
|
|
150
|
+
messageId: "codeBeforeArrange",
|
|
151
|
+
node: statementBeforeArrange.node,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Reports sections that contain only comments or whitespace.
|
|
156
|
+
* @param context ESLint rule context.
|
|
157
|
+
* @param analysis Parsed test-block analysis.
|
|
158
|
+
* @example
|
|
159
|
+
* ```typescript
|
|
160
|
+
* reportEmptySections({ report() {} } as never, { sectionComments: [], statements: [] } as never);
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
function reportEmptySections(context, analysis) {
|
|
164
|
+
for (const [index, sectionComment] of analysis.sectionComments.entries()) {
|
|
165
|
+
const nextSectionLine = analysis.sectionComments[index + 1]?.comment.loc.start.line;
|
|
166
|
+
const hasCodeInSection = analysis.statements.some((statement) => {
|
|
167
|
+
const statementLine = statement.node.loc.start.line;
|
|
168
|
+
return (statementLine > sectionComment.comment.loc.start.line &&
|
|
169
|
+
(nextSectionLine === void 0 || statementLine < nextSectionLine));
|
|
170
|
+
});
|
|
171
|
+
if (!hasCodeInSection) {
|
|
172
|
+
context.report({
|
|
173
|
+
data: { section: sectionComment.phases.join(" & ") },
|
|
174
|
+
messageId: "emptySection",
|
|
175
|
+
node: sectionComment.comment,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Reports a single out-of-order section pair.
|
|
182
|
+
* @param context ESLint rule context.
|
|
183
|
+
* @param previous Previous section comment.
|
|
184
|
+
* @param current Current section comment.
|
|
185
|
+
* @example
|
|
186
|
+
* ```typescript
|
|
187
|
+
* reportIfOutOfOrder({ report() {} } as never, { comment: {} as never, phases: [] }, { comment: {} as never, phases: [] });
|
|
188
|
+
* ```
|
|
189
|
+
*/
|
|
190
|
+
function reportIfOutOfOrder(context, previous, current) {
|
|
191
|
+
const maxPreviousOrder = Math.max(...previous.phases.map((phase) => aaaPhaseOrder[phase]));
|
|
192
|
+
const minCurrentOrder = Math.min(...current.phases.map((phase) => aaaPhaseOrder[phase]));
|
|
193
|
+
if (minCurrentOrder <= maxPreviousOrder) {
|
|
194
|
+
context.report({
|
|
195
|
+
data: { section: current.phases.join(" & ") },
|
|
196
|
+
messageId: "outOfOrderSection",
|
|
197
|
+
node: current.comment,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Reports any AAA section markers that are missing from a supported test block.
|
|
203
|
+
* @param context ESLint rule context.
|
|
204
|
+
* @param analysis Parsed test-block analysis.
|
|
205
|
+
* @example
|
|
206
|
+
* ```typescript
|
|
207
|
+
* reportMissingSections({ report() {} } as never, { sectionComments: [] } as never);
|
|
208
|
+
* ```
|
|
209
|
+
*/
|
|
210
|
+
function reportMissingSections(context, analysis) {
|
|
211
|
+
const presentSections = new Set(analysis.sectionComments.flatMap((sectionComment) => sectionComment.phases));
|
|
212
|
+
const hasPreSectionStatements = analysis.statements.some((statement) => statement.phases.length === 0);
|
|
213
|
+
const missingSections = ["Arrange", "Act", "Assert"].filter((phase) => !presentSections.has(phase) &&
|
|
214
|
+
(phase !== "Arrange" || hasPreSectionStatements));
|
|
215
|
+
if (missingSections.length === 0) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
context.report({
|
|
219
|
+
data: { sections: missingSections.join(", ") },
|
|
220
|
+
fix: analysis.bodyLineCount >= 3
|
|
221
|
+
? (fixer) => buildMissingSectionFixes(analysis, missingSections, fixer)
|
|
222
|
+
: void 0,
|
|
223
|
+
messageId: "missingSections",
|
|
224
|
+
node: analysis.callExpression,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Reports section comments that appear out of canonical Arrange -> Act -> Assert order.
|
|
229
|
+
* @param context ESLint rule context.
|
|
230
|
+
* @param analysis Parsed test-block analysis.
|
|
231
|
+
* @example
|
|
232
|
+
* ```typescript
|
|
233
|
+
* reportOutOfOrderSections({ report() {} } as never, { sectionComments: [] } as never);
|
|
234
|
+
* ```
|
|
235
|
+
*/
|
|
236
|
+
function reportOutOfOrderSections(context, analysis) {
|
|
237
|
+
const comments = analysis.sectionComments;
|
|
238
|
+
const lastIndex = comments.length - 1;
|
|
239
|
+
for (let index = 0; index < lastIndex; index += 1) {
|
|
240
|
+
const previous = comments[index];
|
|
241
|
+
const current = comments[index + 1];
|
|
242
|
+
if (previous && current)
|
|
243
|
+
reportIfOutOfOrder(context, previous, current);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
87
246
|
export { enforceAaaStructureRule };
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9lbmZvcmNlLWFhYS1zdHJ1Y3R1cmUvcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBNkIvRTs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUE4QixFQUFRLEVBQUU7SUFDbEUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRTlDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDYixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRTtRQUNoQyxTQUFTO1FBQ1QsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPO0tBQ3RCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQThCLEVBQVUsRUFBRTtJQUNwRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRS9ELElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN4RSxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELElBQUksaUJBQWlCLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDdkMsa0JBQWtCLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFDckQsQ0FBQyxDQUFDO0FBRUYsa0ZBQWtGO0FBQ2xGLE1BQU0sdUJBQXVCLEdBQW9CO0lBQy9DLE1BQU0sQ0FBQyxPQUF5QjtRQUM5QixPQUFPO1lBQ0wsY0FBYyxDQUFDLElBQUk7Z0JBQ2pCLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDakQsSUFBSSxRQUFRLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDeEIsT0FBTztnQkFDVCxDQUFDO2dCQUVELE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3pELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7Z0JBQ3JDLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUV4QixLQUFLLE1BQU0sT0FBTyxJQUFJLGlCQUFpQixFQUFFLENBQUM7b0JBQ3hDLGNBQWMsR0FBRyxrQkFBa0IsQ0FBQzt3QkFDbEMsT0FBTzt3QkFDUCxjQUFjO3dCQUNkLE9BQU87d0JBQ1AsVUFBVTtxQkFDWCxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUM7U0FDMEIsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUNULHdFQUF3RTtZQUMxRSxXQUFXLEVBQUUsS0FBSztZQUNsQixHQUFHLEVBQUUsd0ZBQXdGO1NBQzlGO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsZ0JBQWdCLEVBQ2QsNERBQTREO1lBQzlELFlBQVksRUFDViwyRkFBMkY7U0FDOUY7UUFDRCxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxTQUFTO0tBQ2hCO0NBQ0YsQ0FBQztBQUVGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBhYWFQaGFzZU9yZGVyLCBhbmFseXplVGVzdEJsb2NrLCBnZXRGbGF0dGVuZWRTZWN0aW9ucyB9IGZyb20gXCIuLi9hYWFcIjtcblxuLyoqIENvbXBvc2l0ZSBpbnB1dCBmb3IgcmVwb3J0aW5nIG9uZSBBQUEgc2VjdGlvbiBpc3N1ZS4gKi9cbmludGVyZmFjZSBSZXBvcnRTZWN0aW9uSXNzdWVJbnB1dCB7XG4gIC8qKiBBY3RpdmUgRVNMaW50IHJ1bGUgY29udGV4dC4gKi9cbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dDtcblxuICAvKiogTWVzc2FnZSBpZGVudGlmaWVyIHRvIHJlcG9ydCBmb3IgdGhlIHNlY3Rpb24uICovXG4gIG1lc3NhZ2VJZDogXCJkdXBsaWNhdGVTZWN0aW9uXCIgfCBcImludmFsaWRPcmRlclwiO1xuXG4gIC8qKiBTZWN0aW9uIGNvbW1lbnQgYW5kIHBoYXNlIG1ldGFkYXRhIHVuZGVyIGluc3BlY3Rpb24uICovXG4gIHNlY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIGdldEZsYXR0ZW5lZFNlY3Rpb25zPltudW1iZXJdO1xufVxuXG4vKiogQ29tcG9zaXRlIGlucHV0IGZvciBhZHZhbmNpbmcgdGhlIEFBQSBzZWN0aW9uIG9yZGVyaW5nIHN0YXRlLiAqL1xuaW50ZXJmYWNlIFVwZGF0ZVNlY3Rpb25PcmRlcklucHV0IHtcbiAgLyoqIEFjdGl2ZSBFU0xpbnQgcnVsZSBjb250ZXh0LiAqL1xuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0O1xuXG4gIC8qKiBIaWdoZXN0IHBoYXNlIG9yZGVyIHNlZW4gc28gZmFyLiAqL1xuICBsYXN0UGhhc2VPcmRlcjogbnVtYmVyO1xuXG4gIC8qKiBTZWN0aW9uIGNvbW1lbnQgYW5kIHBoYXNlIG1ldGFkYXRhIHVuZGVyIGluc3BlY3Rpb24uICovXG4gIHNlY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIGdldEZsYXR0ZW5lZFNlY3Rpb25zPltudW1iZXJdO1xuXG4gIC8qKiBTZXQgb2YgcGhhc2VzIGFscmVhZHkgc2VlbiBpbiB0aGUgY3VycmVudCB0ZXN0IGJsb2NrLiAqL1xuICBzZWVuUGhhc2VzOiBTZXQ8c3RyaW5nPjtcbn1cblxuLyoqXG4gKiBSZXBvcnRzIGEgZHVwbGljYXRlIG9yIG91dC1vZi1vcmRlciBBQUEgc2VjdGlvbiBjb21tZW50LlxuICogQHBhcmFtIGlucHV0IENvbXBvc2l0ZSByZXBvcnRpbmcgaW5wdXQgZm9yIHRoZSBjdXJyZW50IHNlY3Rpb24uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVwb3J0U2VjdGlvbklzc3VlKHtcbiAqICAgY29udGV4dDoge30gYXMgUnVsZS5SdWxlQ29udGV4dCxcbiAqICAgbWVzc2FnZUlkOiBcImR1cGxpY2F0ZVNlY3Rpb25cIixcbiAqICAgc2VjdGlvbjoge30gYXMgUmV0dXJuVHlwZTx0eXBlb2YgZ2V0RmxhdHRlbmVkU2VjdGlvbnM+W251bWJlcl0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5jb25zdCByZXBvcnRTZWN0aW9uSXNzdWUgPSAoaW5wdXQ6IFJlcG9ydFNlY3Rpb25Jc3N1ZUlucHV0KTogdm9pZCA9PiB7XG4gIGNvbnN0IHsgY29udGV4dCwgbWVzc2FnZUlkLCBzZWN0aW9uIH0gPSBpbnB1dDtcblxuICBjb250ZXh0LnJlcG9ydCh7XG4gICAgZGF0YTogeyBzZWN0aW9uOiBzZWN0aW9uLnBoYXNlIH0sXG4gICAgbWVzc2FnZUlkLFxuICAgIG5vZGU6IHNlY3Rpb24uY29tbWVudCxcbiAgfSk7XG59O1xuXG4vKipcbiAqIFRyYWNrcyB0aGUgY3VycmVudCBBQUEgb3JkZXJpbmcgc3RhdGUgZm9yIG9uZSBmbGF0dGVuZWQgc2VjdGlvbi5cbiAqIEBwYXJhbSBpbnB1dCBDb21wb3NpdGUgb3JkZXJpbmcgc3RhdGUgZm9yIHRoZSBjdXJyZW50IHNlY3Rpb24uXG4gKiBAcmV0dXJucyBVcGRhdGVkIHBoYXNlIG9yZGVyIHdhdGVybWFyay5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBuZXh0T3JkZXIgPSB1cGRhdGVTZWN0aW9uT3JkZXIoe1xuICogICBjb250ZXh0OiB7fSBhcyBSdWxlLlJ1bGVDb250ZXh0LFxuICogICBsYXN0UGhhc2VPcmRlcjogLTEsXG4gKiAgIHNlY3Rpb246IHt9IGFzIFJldHVyblR5cGU8dHlwZW9mIGdldEZsYXR0ZW5lZFNlY3Rpb25zPltudW1iZXJdLFxuICogICBzZWVuUGhhc2VzOiBuZXcgU2V0KCksXG4gKiB9KTtcbiAqIHZvaWQgbmV4dE9yZGVyO1xuICogYGBgXG4gKi9cbmNvbnN0IHVwZGF0ZVNlY3Rpb25PcmRlciA9IChpbnB1dDogVXBkYXRlU2VjdGlvbk9yZGVySW5wdXQpOiBudW1iZXIgPT4ge1xuICBjb25zdCB7IGNvbnRleHQsIGxhc3RQaGFzZU9yZGVyLCBzZWN0aW9uLCBzZWVuUGhhc2VzIH0gPSBpbnB1dDtcblxuICBpZiAoc2VlblBoYXNlcy5oYXMoc2VjdGlvbi5waGFzZSkpIHtcbiAgICByZXBvcnRTZWN0aW9uSXNzdWUoeyBjb250ZXh0LCBtZXNzYWdlSWQ6IFwiZHVwbGljYXRlU2VjdGlvblwiLCBzZWN0aW9uIH0pO1xuICAgIHJldHVybiBsYXN0UGhhc2VPcmRlcjtcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRQaGFzZU9yZGVyID0gYWFhUGhhc2VPcmRlcltzZWN0aW9uLnBoYXNlXTtcbiAgaWYgKGN1cnJlbnRQaGFzZU9yZGVyIDwgbGFzdFBoYXNlT3JkZXIpIHtcbiAgICByZXBvcnRTZWN0aW9uSXNzdWUoeyBjb250ZXh0LCBtZXNzYWdlSWQ6IFwiaW52YWxpZE9yZGVyXCIsIHNlY3Rpb24gfSk7XG4gIH1cblxuICBzZWVuUGhhc2VzLmFkZChzZWN0aW9uLnBoYXNlKTtcbiAgcmV0dXJuIE1hdGgubWF4KGxhc3RQaGFzZU9yZGVyLCBjdXJyZW50UGhhc2VPcmRlcik7XG59O1xuXG4vKiogRW5mb3JjZXMgYSBzaW5nbGUgQXJyYW5nZS9BY3QvQXNzZXJ0IHNlcXVlbmNlIGluc2lkZSBzdXBwb3J0ZWQgdGVzdCBibG9ja3MuICovXG5jb25zdCBlbmZvcmNlQWFhU3RydWN0dXJlUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgQ2FsbEV4cHJlc3Npb24obm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBhbmFseXNpcyA9IGFuYWx5emVUZXN0QmxvY2soY29udGV4dCwgbm9kZSk7XG4gICAgICAgIGlmIChhbmFseXNpcyA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmxhdHRlbmVkU2VjdGlvbnMgPSBnZXRGbGF0dGVuZWRTZWN0aW9ucyhhbmFseXNpcyk7XG4gICAgICAgIGNvbnN0IHNlZW5QaGFzZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgICAgbGV0IGxhc3RQaGFzZU9yZGVyID0gLTE7XG5cbiAgICAgICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIGZsYXR0ZW5lZFNlY3Rpb25zKSB7XG4gICAgICAgICAgbGFzdFBoYXNlT3JkZXIgPSB1cGRhdGVTZWN0aW9uT3JkZXIoe1xuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIGxhc3RQaGFzZU9yZGVyLFxuICAgICAgICAgICAgc2VjdGlvbixcbiAgICAgICAgICAgIHNlZW5QaGFzZXMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgUnVsZS5SdWxlTGlzdGVuZXI7XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSZXF1aXJlIEFBQSBzZWN0aW9ucyB0byBhcHBlYXIgb25jZSBhbmQgaW4gQXJyYW5nZSwgQWN0LCBBc3NlcnQgb3JkZXIuXCIsXG4gICAgICByZWNvbW1lbmRlZDogZmFsc2UsXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL3BhcmxvdGkvZXNsaW50LXBsdWdpbi9ibG9iL21haW4vZG9jcy9ydWxlcy9lbmZvcmNlLWFhYS1zdHJ1Y3R1cmUubWRcIixcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBkdXBsaWNhdGVTZWN0aW9uOlxuICAgICAgICBcIlVzZSB0aGUgLy8ge3tzZWN0aW9ufX0gc2VjdGlvbiBjb21tZW50IG9ubHkgb25jZSBwZXIgdGVzdC5cIixcbiAgICAgIGludmFsaWRPcmRlcjpcbiAgICAgICAgXCJNb3ZlIHRoZSAvLyB7e3NlY3Rpb259fSBzZWN0aW9uIGNvbW1lbnQgc28gQUFBIHBoYXNlcyBzdGF5IGluIEFycmFuZ2UsIEFjdCwgQXNzZXJ0IG9yZGVyLlwiLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiBcInByb2JsZW1cIixcbiAgfSxcbn07XG5cbmV4cG9ydCB7IGVuZm9yY2VBYWFTdHJ1Y3R1cmVSdWxlIH07XG4iXX0=
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vdGVzdGluZy9lbmZvcmNlLWFhYS1zdHJ1Y3R1cmUvcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQ0wsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsd0JBQXdCLEdBQ3pCLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbkYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDakcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFtQ25FOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQThCLEVBQVEsRUFBRTtJQUNsRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFOUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNiLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFO1FBQ2hDLFNBQVM7UUFDVCxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU87S0FDdEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBOEIsRUFBVSxFQUFFO0lBQ3BFLE1BQU0sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFL0QsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xDLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxNQUFNLGlCQUFpQixHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsSUFBSSxpQkFBaUIsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUN2QyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUNyRCxDQUFDLENBQUM7QUFFRixrRkFBa0Y7QUFDbEYsTUFBTSx1QkFBdUIsR0FBb0I7SUFDL0MsTUFBTSxDQUFDLE9BQXlCO1FBQzlCLE9BQU87WUFDTCxjQUFjLENBQUMsSUFBSTtnQkFDakIsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLFFBQVEsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUN4QixPQUFPO2dCQUNULENBQUM7Z0JBRUQsTUFBTSxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDekQsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7Z0JBQ3BELElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUV4QixLQUFLLE1BQU0sT0FBTyxJQUFJLGlCQUFpQixFQUFFLENBQUM7b0JBQ3hDLGNBQWMsR0FBRyxrQkFBa0IsQ0FBQzt3QkFDbEMsT0FBTzt3QkFDUCxjQUFjO3dCQUNkLE9BQU87d0JBQ1AsVUFBVTtxQkFDWCxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFFRCxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3pDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDdkMsd0JBQXdCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUM1Qyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzNDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDN0MsMkJBQTJCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2pELENBQUM7U0FDMEIsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLHVCQUF1QixDQUMzQix1QkFBdUIsRUFDdkIsc0lBQXNJLENBQ3ZJO1FBQ0QsT0FBTyxFQUFFLE1BQU07UUFDZixRQUFRLEVBQUU7WUFDUixlQUFlLEVBQ2IsOEVBQThFO1lBQ2hGLHNCQUFzQixFQUNwQixpRkFBaUY7WUFDbkYsY0FBYyxFQUFFLDJDQUEyQztZQUMzRCxlQUFlLEVBQUUsMkNBQTJDO1lBQzVELHNCQUFzQixFQUNwQixnRUFBZ0U7WUFDbEUsaUJBQWlCLEVBQ2YsbUVBQW1FO1lBQ3JFLGdCQUFnQixFQUNkLDREQUE0RDtZQUM5RCxZQUFZLEVBQ1YsNEVBQTRFO1lBQzlFLFlBQVksRUFDViwyRkFBMkY7WUFDN0Ysb0JBQW9CLEVBQ2xCLGdHQUFnRztZQUNsRyxlQUFlLEVBQUUscURBQXFEO1lBQ3RFLGdCQUFnQixFQUNkLDJEQUEyRDtZQUM3RCxvQkFBb0IsRUFDbEIsOEVBQThFO1lBQ2hGLGlCQUFpQixFQUNmLDBEQUEwRDtZQUM1RCxhQUFhLEVBQ1gsMkVBQTJFO1NBQzlFO1FBQ0QsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsU0FBUztLQUNoQjtDQUNGLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILFNBQVMseUJBQXlCLENBQ2hDLE9BQXlCLEVBQ3pCLFFBQTJCO0lBRTNCLE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUM7SUFFakUsS0FBSyxNQUFNLGNBQWMsSUFBSSx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ2hFLElBQ0UsY0FBYyxDQUFDLE9BQU8sS0FBSyxtQkFBbUI7WUFDOUMsQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFDdkUsQ0FBQztZQUNELE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQ2IsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNwRCxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNiLEtBQUssQ0FBQyxxQkFBcUIsQ0FDekIsaUJBQWlCLENBQ2YsUUFBUSxDQUFDLFVBQVUsRUFDbkIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDdEMsRUFDRCxRQUFRLENBQUMsT0FBTyxDQUNqQjtnQkFDSCxTQUFTLEVBQUUsd0JBQXdCO2dCQUNuQyxJQUFJLEVBQUUsY0FBYyxDQUFDLE9BQU87YUFDN0IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHVCQUF1QixDQUM5QixPQUF5QixFQUN6QixRQUEyQjtJQUUzQixNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FDeEUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQzFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQzFCLElBQUksZ0JBQWdCLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sc0JBQXNCLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3JELENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUNoRSxDQUFDO0lBQ0YsSUFBSSxzQkFBc0IsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU87SUFDVCxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNiLFNBQVMsRUFBRSxtQkFBbUI7UUFDOUIsSUFBSSxFQUFFLHNCQUFzQixDQUFDLElBQUk7S0FDbEMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FDMUIsT0FBeUIsRUFDekIsUUFBMkI7SUFFM0IsS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN6RSxNQUFNLGVBQWUsR0FDbkIsUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQzlELE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUM5RCxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBRXBELE9BQU8sQ0FDTCxhQUFhLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUk7Z0JBQ3JELENBQUMsZUFBZSxLQUFLLEtBQUssQ0FBQyxJQUFJLGFBQWEsR0FBRyxlQUFlLENBQUMsQ0FDaEUsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFDYixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3BELFNBQVMsRUFBRSxjQUFjO2dCQUN6QixJQUFJLEVBQUUsY0FBYyxDQUFDLE9BQU87YUFDN0IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FDekIsT0FBeUIsRUFDekIsUUFBd0IsRUFDeEIsT0FBdUI7SUFFdkIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUMvQixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDeEQsQ0FBQztJQUNGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQzlCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUN2RCxDQUFDO0lBRUYsSUFBSSxlQUFlLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ2IsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzdDLFNBQVMsRUFBRSxtQkFBbUI7WUFDOUIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHFCQUFxQixDQUM1QixPQUF5QixFQUN6QixRQUEyQjtJQUUzQixNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FDN0IsUUFBUSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FDNUUsQ0FBQztJQUNGLE1BQU0sdUJBQXVCLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3RELENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQzdDLENBQUM7SUFDRixNQUFNLGVBQWUsR0FBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFXLENBQUMsTUFBTSxDQUNwRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ1IsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUMzQixDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksdUJBQXVCLENBQUMsQ0FDbkQsQ0FBQztJQUVGLElBQUksZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNqQyxPQUFPO0lBQ1QsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDYixJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM5QyxHQUFHLEVBQ0QsUUFBUSxDQUFDLGFBQWEsSUFBSSxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUFDLEtBQXFCLEVBQWMsRUFBRSxDQUNwQyx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQztZQUM5RCxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1osU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixJQUFJLEVBQUUsUUFBUSxDQUFDLGNBQWM7S0FDOUIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyx3QkFBd0IsQ0FDL0IsT0FBeUIsRUFDekIsUUFBMkI7SUFFM0IsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQztJQUMxQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUV0QyxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsU0FBUyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVwQyxJQUFJLFFBQVEsSUFBSSxPQUFPO1lBQUUsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRSxDQUFDO0FBQ0gsQ0FBQztBQUVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgdHlwZSB7IFNlY3Rpb25Db21tZW50LCBUZXN0QmxvY2tBbmFseXNpcyB9IGZyb20gXCIuLi9hYWEvdHlwZXNcIjtcblxuaW1wb3J0IHsgY3JlYXRlUnVsZURvY3VtZW50YXRpb24gfSBmcm9tIFwiLi4vLi4vY3VzdG9tLXJ1bGUtZG9jdW1lbnRhdGlvblwiO1xuaW1wb3J0IHsgYW5hbHl6ZVRlc3RCbG9jayB9IGZyb20gXCIuLi9hYWEvYW5hbHl6ZXIuYW5hbHlzaXNcIjtcbmltcG9ydCB7XG4gIGFhYVBoYXNlT3JkZXIsXG4gIGdldEZsYXR0ZW5lZFNlY3Rpb25zLFxuICBnZXRMaW5lU3RhcnRSYW5nZSxcbiAgZ2V0UGhhc2VCb3VuZGFyeUNvbW1lbnRzLFxufSBmcm9tIFwiLi4vYWFhL2FuYWx5emVyLmFuYWx5c2lzLmhlbHBlcnNcIjtcbmltcG9ydCB7IGhhc0JsYW5rTGluZUJlZm9yZUNvbW1lbnQgfSBmcm9tIFwiLi4vYWFhL2FuYWx5emVyLmNsYXNzaWZpY2F0aW9uLmhlbHBlcnNcIjtcbmltcG9ydCB7IHJlcG9ydFBoYXNlUHVyaXR5VmlvbGF0aW9ucyB9IGZyb20gXCIuLi9lbmZvcmNlLWFhYS1waGFzZS1wdXJpdHkvcGhhc2UtcHVyaXR5LXJlcG9ydGluZ1wiO1xuaW1wb3J0IHsgYnVpbGRNaXNzaW5nU2VjdGlvbkZpeGVzIH0gZnJvbSBcIi4vbWlzc2luZy1zZWN0aW9uLWZpeGVzXCI7XG5cbi8qKiBGbGF0dGVuZWQgc2VjdGlvbiBlbnRyeSBlbWl0dGVkIGJ5IHRoZSBBQUEgYW5hbHl6ZXIgaGVscGVyLiAqL1xudHlwZSBGbGF0dGVuZWRTZWN0aW9uID0gUmV0dXJuVHlwZTx0eXBlb2YgZ2V0RmxhdHRlbmVkU2VjdGlvbnM+W251bWJlcl07XG5cbi8qKiBVbmlvbiBvZiB2YWxpZCBBQUEgcGhhc2UgbGFiZWxzIGVtaXR0ZWQgZm9yIGZsYXR0ZW5lZCBzZWN0aW9ucy4gKi9cbnR5cGUgRmxhdHRlbmVkU2VjdGlvblBoYXNlID0gRmxhdHRlbmVkU2VjdGlvbltcInBoYXNlXCJdO1xuXG4vKiogQ29tcG9zaXRlIGlucHV0IGZvciByZXBvcnRpbmcgb25lIEFBQSBzZWN0aW9uIGlzc3VlLiAqL1xuaW50ZXJmYWNlIFJlcG9ydFNlY3Rpb25Jc3N1ZUlucHV0IHtcbiAgLyoqIEFjdGl2ZSBFU0xpbnQgcnVsZSBjb250ZXh0LiAqL1xuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0O1xuXG4gIC8qKiBNZXNzYWdlIGlkZW50aWZpZXIgdG8gcmVwb3J0IGZvciB0aGUgc2VjdGlvbi4gKi9cbiAgbWVzc2FnZUlkOiBcImR1cGxpY2F0ZVNlY3Rpb25cIiB8IFwiaW52YWxpZE9yZGVyXCI7XG5cbiAgLyoqIFNlY3Rpb24gY29tbWVudCBhbmQgcGhhc2UgbWV0YWRhdGEgdW5kZXIgaW5zcGVjdGlvbi4gKi9cbiAgc2VjdGlvbjogRmxhdHRlbmVkU2VjdGlvbjtcbn1cblxuLyoqIENvbXBvc2l0ZSBpbnB1dCBmb3IgYWR2YW5jaW5nIHRoZSBBQUEgc2VjdGlvbiBvcmRlcmluZyBzdGF0ZS4gKi9cbmludGVyZmFjZSBVcGRhdGVTZWN0aW9uT3JkZXJJbnB1dCB7XG4gIC8qKiBBY3RpdmUgRVNMaW50IHJ1bGUgY29udGV4dC4gKi9cbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dDtcblxuICAvKiogSGlnaGVzdCBwaGFzZSBvcmRlciBzZWVuIHNvIGZhci4gKi9cbiAgbGFzdFBoYXNlT3JkZXI6IG51bWJlcjtcblxuICAvKiogU2VjdGlvbiBjb21tZW50IGFuZCBwaGFzZSBtZXRhZGF0YSB1bmRlciBpbnNwZWN0aW9uLiAqL1xuICBzZWN0aW9uOiBGbGF0dGVuZWRTZWN0aW9uO1xuXG4gIC8qKiBTZXQgb2YgcGhhc2VzIGFscmVhZHkgc2VlbiBpbiB0aGUgY3VycmVudCB0ZXN0IGJsb2NrLiAqL1xuICBzZWVuUGhhc2VzOiBTZXQ8RmxhdHRlbmVkU2VjdGlvblBoYXNlPjtcbn1cblxuLyoqXG4gKiBSZXBvcnRzIGEgZHVwbGljYXRlIG9yIG91dC1vZi1vcmRlciBBQUEgc2VjdGlvbiBjb21tZW50LlxuICogQHBhcmFtIGlucHV0IENvbXBvc2l0ZSByZXBvcnRpbmcgaW5wdXQgZm9yIHRoZSBjdXJyZW50IHNlY3Rpb24uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVwb3J0U2VjdGlvbklzc3VlKHtcbiAqICAgY29udGV4dDoge30gYXMgUnVsZS5SdWxlQ29udGV4dCxcbiAqICAgbWVzc2FnZUlkOiBcImR1cGxpY2F0ZVNlY3Rpb25cIixcbiAqICAgc2VjdGlvbjoge30gYXMgUmV0dXJuVHlwZTx0eXBlb2YgZ2V0RmxhdHRlbmVkU2VjdGlvbnM+W251bWJlcl0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5jb25zdCByZXBvcnRTZWN0aW9uSXNzdWUgPSAoaW5wdXQ6IFJlcG9ydFNlY3Rpb25Jc3N1ZUlucHV0KTogdm9pZCA9PiB7XG4gIGNvbnN0IHsgY29udGV4dCwgbWVzc2FnZUlkLCBzZWN0aW9uIH0gPSBpbnB1dDtcblxuICBjb250ZXh0LnJlcG9ydCh7XG4gICAgZGF0YTogeyBzZWN0aW9uOiBzZWN0aW9uLnBoYXNlIH0sXG4gICAgbWVzc2FnZUlkLFxuICAgIG5vZGU6IHNlY3Rpb24uY29tbWVudCxcbiAgfSk7XG59O1xuXG4vKipcbiAqIFRyYWNrcyB0aGUgY3VycmVudCBBQUEgb3JkZXJpbmcgc3RhdGUgZm9yIG9uZSBmbGF0dGVuZWQgc2VjdGlvbi5cbiAqIEBwYXJhbSBpbnB1dCBDb21wb3NpdGUgb3JkZXJpbmcgc3RhdGUgZm9yIHRoZSBjdXJyZW50IHNlY3Rpb24uXG4gKiBAcmV0dXJucyBVcGRhdGVkIHBoYXNlIG9yZGVyIHdhdGVybWFyay5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBuZXh0T3JkZXIgPSB1cGRhdGVTZWN0aW9uT3JkZXIoe1xuICogICBjb250ZXh0OiB7fSBhcyBSdWxlLlJ1bGVDb250ZXh0LFxuICogICBsYXN0UGhhc2VPcmRlcjogLTEsXG4gKiAgIHNlY3Rpb246IHt9IGFzIFJldHVyblR5cGU8dHlwZW9mIGdldEZsYXR0ZW5lZFNlY3Rpb25zPltudW1iZXJdLFxuICogICBzZWVuUGhhc2VzOiBuZXcgU2V0KCksXG4gKiB9KTtcbiAqIHZvaWQgbmV4dE9yZGVyO1xuICogYGBgXG4gKi9cbmNvbnN0IHVwZGF0ZVNlY3Rpb25PcmRlciA9IChpbnB1dDogVXBkYXRlU2VjdGlvbk9yZGVySW5wdXQpOiBudW1iZXIgPT4ge1xuICBjb25zdCB7IGNvbnRleHQsIGxhc3RQaGFzZU9yZGVyLCBzZWN0aW9uLCBzZWVuUGhhc2VzIH0gPSBpbnB1dDtcblxuICBpZiAoc2VlblBoYXNlcy5oYXMoc2VjdGlvbi5waGFzZSkpIHtcbiAgICByZXBvcnRTZWN0aW9uSXNzdWUoeyBjb250ZXh0LCBtZXNzYWdlSWQ6IFwiZHVwbGljYXRlU2VjdGlvblwiLCBzZWN0aW9uIH0pO1xuICAgIHJldHVybiBsYXN0UGhhc2VPcmRlcjtcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRQaGFzZU9yZGVyID0gYWFhUGhhc2VPcmRlcltzZWN0aW9uLnBoYXNlXTtcbiAgaWYgKGN1cnJlbnRQaGFzZU9yZGVyIDwgbGFzdFBoYXNlT3JkZXIpIHtcbiAgICByZXBvcnRTZWN0aW9uSXNzdWUoeyBjb250ZXh0LCBtZXNzYWdlSWQ6IFwiaW52YWxpZE9yZGVyXCIsIHNlY3Rpb24gfSk7XG4gIH1cblxuICBzZWVuUGhhc2VzLmFkZChzZWN0aW9uLnBoYXNlKTtcbiAgcmV0dXJuIE1hdGgubWF4KGxhc3RQaGFzZU9yZGVyLCBjdXJyZW50UGhhc2VPcmRlcik7XG59O1xuXG4vKiogRW5mb3JjZXMgYSBzaW5nbGUgQXJyYW5nZS9BY3QvQXNzZXJ0IHNlcXVlbmNlIGluc2lkZSBzdXBwb3J0ZWQgdGVzdCBibG9ja3MuICovXG5jb25zdCBlbmZvcmNlQWFhU3RydWN0dXJlUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgQ2FsbEV4cHJlc3Npb24obm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBhbmFseXNpcyA9IGFuYWx5emVUZXN0QmxvY2soY29udGV4dCwgbm9kZSk7XG4gICAgICAgIGlmIChhbmFseXNpcyA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmxhdHRlbmVkU2VjdGlvbnMgPSBnZXRGbGF0dGVuZWRTZWN0aW9ucyhhbmFseXNpcyk7XG4gICAgICAgIGNvbnN0IHNlZW5QaGFzZXMgPSBuZXcgU2V0PEZsYXR0ZW5lZFNlY3Rpb25QaGFzZT4oKTtcbiAgICAgICAgbGV0IGxhc3RQaGFzZU9yZGVyID0gLTE7XG5cbiAgICAgICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIGZsYXR0ZW5lZFNlY3Rpb25zKSB7XG4gICAgICAgICAgbGFzdFBoYXNlT3JkZXIgPSB1cGRhdGVTZWN0aW9uT3JkZXIoe1xuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIGxhc3RQaGFzZU9yZGVyLFxuICAgICAgICAgICAgc2VjdGlvbixcbiAgICAgICAgICAgIHNlZW5QaGFzZXMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXBvcnRNaXNzaW5nU2VjdGlvbnMoY29udGV4dCwgYW5hbHlzaXMpO1xuICAgICAgICByZXBvcnRFbXB0eVNlY3Rpb25zKGNvbnRleHQsIGFuYWx5c2lzKTtcbiAgICAgICAgcmVwb3J0T3V0T2ZPcmRlclNlY3Rpb25zKGNvbnRleHQsIGFuYWx5c2lzKTtcbiAgICAgICAgcmVwb3J0Q29kZUJlZm9yZUFycmFuZ2UoY29udGV4dCwgYW5hbHlzaXMpO1xuICAgICAgICByZXBvcnRCbGFua0xpbmVTZXBhcmF0b3JzKGNvbnRleHQsIGFuYWx5c2lzKTtcbiAgICAgICAgcmVwb3J0UGhhc2VQdXJpdHlWaW9sYXRpb25zKGNvbnRleHQsIGFuYWx5c2lzKTtcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgUnVsZS5SdWxlTGlzdGVuZXI7XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiBjcmVhdGVSdWxlRG9jdW1lbnRhdGlvbihcbiAgICAgIFwiZW5mb3JjZS1hYWEtc3RydWN0dXJlXCIsXG4gICAgICBcIlJlcXVpcmUgZXhwbGljaXQgQUFBIG1hcmtlcnMsIGVuZm9yY2Ugc2VjdGlvbiBvcmRlciBhbmQgdW5pcXVlbmVzcywgYW5kIGtlZXAgc2V0dXAsIGFjdGlvbiwgYW5kIGFzc2VydGlvbnMgaW4gdGhlaXIgaW50ZW5kZWQgcGhhc2VzLlwiLFxuICAgICksXG4gICAgZml4YWJsZTogXCJjb2RlXCIsXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIGFjdGlvbkluQXJyYW5nZTpcbiAgICAgICAgXCJLZWVwIHRoZSBmdW5jdGlvbiB1bmRlciB0ZXN0IG91dCBvZiBBcnJhbmdlOyByZXNlcnZlIEFycmFuZ2UgZm9yIHNldHVwIG9ubHkuXCIsXG4gICAgICBhc3NlcnRpb25PdXRzaWRlQXNzZXJ0OlxuICAgICAgICBcIk1vdmUgYXNzZXJ0aW9ucyBpbnRvIHRoZSAvLyBBc3NlcnQgc2VjdGlvbiBzbyB0ZXN0IGxvZ2ljIGRvZXMgbm90IGxlYWsgZWFybGllci5cIixcbiAgICAgIGFzeW5jSW5BcnJhbmdlOiBcIkRvIG5vdCB0cmlnZ2VyIGFzeW5jIGJlaGF2aW9yIGluIEFycmFuZ2UuXCIsXG4gICAgICBhd2FpdE91dHNpZGVBY3Q6IFwiVXNlIGF3YWl0IG9ubHkgaW5zaWRlIHRoZSAvLyBBY3Qgc2VjdGlvbi5cIixcbiAgICAgIGJsYW5rTGluZUJlZm9yZVNlY3Rpb246XG4gICAgICAgIFwiSW5zZXJ0IGEgYmxhbmsgbGluZSBiZWZvcmUgdGhlIC8vIHt7c2VjdGlvbn19IHNlY3Rpb24gY29tbWVudC5cIixcbiAgICAgIGNvZGVCZWZvcmVBcnJhbmdlOlxuICAgICAgICBcIk1vdmUgc2V0dXAgc3RhdGVtZW50cyBiZWxvdyB0aGUgZmlyc3QgLy8gQXJyYW5nZSBzZWN0aW9uIGNvbW1lbnQuXCIsXG4gICAgICBkdXBsaWNhdGVTZWN0aW9uOlxuICAgICAgICBcIlVzZSB0aGUgLy8ge3tzZWN0aW9ufX0gc2VjdGlvbiBjb21tZW50IG9ubHkgb25jZSBwZXIgdGVzdC5cIixcbiAgICAgIGVtcHR5U2VjdGlvbjpcbiAgICAgICAgXCJUaGUgLy8ge3tzZWN0aW9ufX0gc2VjdGlvbiBtdXN0IGNvbnRhaW4gY29kZTsgY29tbWVudHMgYWxvbmUgZG8gbm90IGNvdW50LlwiLFxuICAgICAgaW52YWxpZE9yZGVyOlxuICAgICAgICBcIk1vdmUgdGhlIC8vIHt7c2VjdGlvbn19IHNlY3Rpb24gY29tbWVudCBzbyBBQUEgcGhhc2VzIHN0YXkgaW4gQXJyYW5nZSwgQWN0LCBBc3NlcnQgb3JkZXIuXCIsXG4gICAgICBtaXNzaW5nTWVhbmluZ2Z1bEFjdDpcbiAgICAgICAgXCJUaGUgLy8gQWN0IHNlY3Rpb24gbXVzdCBjb250YWluIGEgbWVhbmluZ2Z1bCBTVVQgaW50ZXJhY3Rpb24sIG5vdCBvbmx5IHV0aWxpdHkgb3Igc2V0dXAgY2FsbHMuXCIsXG4gICAgICBtaXNzaW5nU2VjdGlvbnM6IFwiQWRkIHRoZSBtaXNzaW5nIEFBQSBzZWN0aW9uIGNvbW1lbnRzOiB7e3NlY3Rpb25zfX0uXCIsXG4gICAgICBtdXRhdGlvbkFmdGVyQWN0OlxuICAgICAgICBcIkRvIG5vdCBtdXRhdGUgdGVzdCBkYXRhIGFmdGVyIHRoZSAvLyBBY3Qgc2VjdGlvbiBoYXMgcnVuLlwiLFxuICAgICAgbm9uQXNzZXJ0aW9uSW5Bc3NlcnQ6XG4gICAgICAgIFwiS2VlcCB0aGUgLy8gQXNzZXJ0IHNlY3Rpb24gZm9jdXNlZCBvbiBhc3NlcnRpb25zIGFuZCBhc3NlcnRpb24tbG9jYWwgdmFsdWVzLlwiLFxuICAgICAgb3V0T2ZPcmRlclNlY3Rpb246XG4gICAgICAgIFwiVGhlIC8vIHt7c2VjdGlvbn19IHNlY3Rpb24gY29tbWVudCBhcHBlYXJzIG91dCBvZiBvcmRlci5cIixcbiAgICAgIHNldHVwQWZ0ZXJBY3Q6XG4gICAgICAgIFwiRG8gbm90IGNvbnRpbnVlIGFycmFuZ2luZyB0ZXN0IGRhdGEgYWZ0ZXIgdGhlIC8vIEFjdCBzZWN0aW9uIGhhcyBzdGFydGVkLlwiLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiBcInByb2JsZW1cIixcbiAgfSxcbn07XG5cbi8qKlxuICogUmVwb3J0cyBzZWN0aW9uIGNvbW1lbnRzIHRoYXQgYXJlIG1pc3NpbmcgYSBibGFuayBsaW5lIGFib3ZlIHRoZW0uXG4gKiBAcGFyYW0gY29udGV4dCBFU0xpbnQgcnVsZSBjb250ZXh0LlxuICogQHBhcmFtIGFuYWx5c2lzIFBhcnNlZCB0ZXN0LWJsb2NrIGFuYWx5c2lzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydEJsYW5rTGluZVNlcGFyYXRvcnMoeyByZXBvcnQoKSB7fSB9IGFzIG5ldmVyLCB7IHNlY3Rpb25Db21tZW50czogW10sIHNvdXJjZVRleHQ6IFwiXCIgfSBhcyBuZXZlcik7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gcmVwb3J0QmxhbmtMaW5lU2VwYXJhdG9ycyhcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgYW5hbHlzaXM6IFRlc3RCbG9ja0FuYWx5c2lzLFxuKTogdm9pZCB7XG4gIGNvbnN0IGZpcnN0U2VjdGlvbkNvbW1lbnQgPSBhbmFseXNpcy5zZWN0aW9uQ29tbWVudHNbMF0/LmNvbW1lbnQ7XG5cbiAgZm9yIChjb25zdCBzZWN0aW9uQ29tbWVudCBvZiBnZXRQaGFzZUJvdW5kYXJ5Q29tbWVudHMoYW5hbHlzaXMpKSB7XG4gICAgaWYgKFxuICAgICAgc2VjdGlvbkNvbW1lbnQuY29tbWVudCAhPT0gZmlyc3RTZWN0aW9uQ29tbWVudCAmJlxuICAgICAgIWhhc0JsYW5rTGluZUJlZm9yZUNvbW1lbnQoYW5hbHlzaXMuc291cmNlVGV4dCwgc2VjdGlvbkNvbW1lbnQuY29tbWVudClcbiAgICApIHtcbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgZGF0YTogeyBzZWN0aW9uOiBzZWN0aW9uQ29tbWVudC5waGFzZXMuam9pbihcIiAmIFwiKSB9LFxuICAgICAgICBmaXg6IChmaXhlcikgPT5cbiAgICAgICAgICBmaXhlci5pbnNlcnRUZXh0QmVmb3JlUmFuZ2UoXG4gICAgICAgICAgICBnZXRMaW5lU3RhcnRSYW5nZShcbiAgICAgICAgICAgICAgYW5hbHlzaXMuc291cmNlVGV4dCxcbiAgICAgICAgICAgICAgc2VjdGlvbkNvbW1lbnQuY29tbWVudC5sb2Muc3RhcnQubGluZSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBhbmFseXNpcy5uZXdsaW5lLFxuICAgICAgICAgICksXG4gICAgICAgIG1lc3NhZ2VJZDogXCJibGFua0xpbmVCZWZvcmVTZWN0aW9uXCIsXG4gICAgICAgIG5vZGU6IHNlY3Rpb25Db21tZW50LmNvbW1lbnQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSZXBvcnRzIGV4ZWN1dGFibGUgc3RhdGVtZW50cyB0aGF0IGFwcGVhciBiZWZvcmUgdGhlIGZpcnN0IEFycmFuZ2Ugc2VjdGlvbi5cbiAqIEBwYXJhbSBjb250ZXh0IEVTTGludCBydWxlIGNvbnRleHQuXG4gKiBAcGFyYW0gYW5hbHlzaXMgUGFyc2VkIHRlc3QtYmxvY2sgYW5hbHlzaXMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVwb3J0Q29kZUJlZm9yZUFycmFuZ2UoeyByZXBvcnQoKSB7fSB9IGFzIG5ldmVyLCB7IHNlY3Rpb25Db21tZW50czogW10sIHN0YXRlbWVudHM6IFtdIH0gYXMgbmV2ZXIpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHJlcG9ydENvZGVCZWZvcmVBcnJhbmdlKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBhbmFseXNpczogVGVzdEJsb2NrQW5hbHlzaXMsXG4pOiB2b2lkIHtcbiAgY29uc3QgZmlyc3RBcnJhbmdlTGluZSA9IGFuYWx5c2lzLnNlY3Rpb25Db21tZW50cy5maW5kKChzZWN0aW9uQ29tbWVudCkgPT5cbiAgICBzZWN0aW9uQ29tbWVudC5waGFzZXMuaW5jbHVkZXMoXCJBcnJhbmdlXCIpLFxuICApPy5jb21tZW50LmxvYy5zdGFydC5saW5lO1xuICBpZiAoZmlyc3RBcnJhbmdlTGluZSA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgc3RhdGVtZW50QmVmb3JlQXJyYW5nZSA9IGFuYWx5c2lzLnN0YXRlbWVudHMuZmluZChcbiAgICAoc3RhdGVtZW50KSA9PiBzdGF0ZW1lbnQubm9kZS5sb2Muc3RhcnQubGluZSA8IGZpcnN0QXJyYW5nZUxpbmUsXG4gICk7XG4gIGlmIChzdGF0ZW1lbnRCZWZvcmVBcnJhbmdlID09PSB2b2lkIDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb250ZXh0LnJlcG9ydCh7XG4gICAgbWVzc2FnZUlkOiBcImNvZGVCZWZvcmVBcnJhbmdlXCIsXG4gICAgbm9kZTogc3RhdGVtZW50QmVmb3JlQXJyYW5nZS5ub2RlLFxuICB9KTtcbn1cblxuLyoqXG4gKiBSZXBvcnRzIHNlY3Rpb25zIHRoYXQgY29udGFpbiBvbmx5IGNvbW1lbnRzIG9yIHdoaXRlc3BhY2UuXG4gKiBAcGFyYW0gY29udGV4dCBFU0xpbnQgcnVsZSBjb250ZXh0LlxuICogQHBhcmFtIGFuYWx5c2lzIFBhcnNlZCB0ZXN0LWJsb2NrIGFuYWx5c2lzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydEVtcHR5U2VjdGlvbnMoeyByZXBvcnQoKSB7fSB9IGFzIG5ldmVyLCB7IHNlY3Rpb25Db21tZW50czogW10sIHN0YXRlbWVudHM6IFtdIH0gYXMgbmV2ZXIpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHJlcG9ydEVtcHR5U2VjdGlvbnMoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIGFuYWx5c2lzOiBUZXN0QmxvY2tBbmFseXNpcyxcbik6IHZvaWQge1xuICBmb3IgKGNvbnN0IFtpbmRleCwgc2VjdGlvbkNvbW1lbnRdIG9mIGFuYWx5c2lzLnNlY3Rpb25Db21tZW50cy5lbnRyaWVzKCkpIHtcbiAgICBjb25zdCBuZXh0U2VjdGlvbkxpbmUgPVxuICAgICAgYW5hbHlzaXMuc2VjdGlvbkNvbW1lbnRzW2luZGV4ICsgMV0/LmNvbW1lbnQubG9jLnN0YXJ0LmxpbmU7XG4gICAgY29uc3QgaGFzQ29kZUluU2VjdGlvbiA9IGFuYWx5c2lzLnN0YXRlbWVudHMuc29tZSgoc3RhdGVtZW50KSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRMaW5lID0gc3RhdGVtZW50Lm5vZGUubG9jLnN0YXJ0LmxpbmU7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIHN0YXRlbWVudExpbmUgPiBzZWN0aW9uQ29tbWVudC5jb21tZW50LmxvYy5zdGFydC5saW5lICYmXG4gICAgICAgIChuZXh0U2VjdGlvbkxpbmUgPT09IHZvaWQgMCB8fCBzdGF0ZW1lbnRMaW5lIDwgbmV4dFNlY3Rpb25MaW5lKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGlmICghaGFzQ29kZUluU2VjdGlvbikge1xuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBkYXRhOiB7IHNlY3Rpb246IHNlY3Rpb25Db21tZW50LnBoYXNlcy5qb2luKFwiICYgXCIpIH0sXG4gICAgICAgIG1lc3NhZ2VJZDogXCJlbXB0eVNlY3Rpb25cIixcbiAgICAgICAgbm9kZTogc2VjdGlvbkNvbW1lbnQuY29tbWVudCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlcG9ydHMgYSBzaW5nbGUgb3V0LW9mLW9yZGVyIHNlY3Rpb24gcGFpci5cbiAqIEBwYXJhbSBjb250ZXh0IEVTTGludCBydWxlIGNvbnRleHQuXG4gKiBAcGFyYW0gcHJldmlvdXMgUHJldmlvdXMgc2VjdGlvbiBjb21tZW50LlxuICogQHBhcmFtIGN1cnJlbnQgQ3VycmVudCBzZWN0aW9uIGNvbW1lbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVwb3J0SWZPdXRPZk9yZGVyKHsgcmVwb3J0KCkge30gfSBhcyBuZXZlciwgeyBjb21tZW50OiB7fSBhcyBuZXZlciwgcGhhc2VzOiBbXSB9LCB7IGNvbW1lbnQ6IHt9IGFzIG5ldmVyLCBwaGFzZXM6IFtdIH0pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHJlcG9ydElmT3V0T2ZPcmRlcihcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgcHJldmlvdXM6IFNlY3Rpb25Db21tZW50LFxuICBjdXJyZW50OiBTZWN0aW9uQ29tbWVudCxcbik6IHZvaWQge1xuICBjb25zdCBtYXhQcmV2aW91c09yZGVyID0gTWF0aC5tYXgoXG4gICAgLi4ucHJldmlvdXMucGhhc2VzLm1hcCgocGhhc2UpID0+IGFhYVBoYXNlT3JkZXJbcGhhc2VdKSxcbiAgKTtcbiAgY29uc3QgbWluQ3VycmVudE9yZGVyID0gTWF0aC5taW4oXG4gICAgLi4uY3VycmVudC5waGFzZXMubWFwKChwaGFzZSkgPT4gYWFhUGhhc2VPcmRlcltwaGFzZV0pLFxuICApO1xuXG4gIGlmIChtaW5DdXJyZW50T3JkZXIgPD0gbWF4UHJldmlvdXNPcmRlcikge1xuICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgIGRhdGE6IHsgc2VjdGlvbjogY3VycmVudC5waGFzZXMuam9pbihcIiAmIFwiKSB9LFxuICAgICAgbWVzc2FnZUlkOiBcIm91dE9mT3JkZXJTZWN0aW9uXCIsXG4gICAgICBub2RlOiBjdXJyZW50LmNvbW1lbnQsXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXBvcnRzIGFueSBBQUEgc2VjdGlvbiBtYXJrZXJzIHRoYXQgYXJlIG1pc3NpbmcgZnJvbSBhIHN1cHBvcnRlZCB0ZXN0IGJsb2NrLlxuICogQHBhcmFtIGNvbnRleHQgRVNMaW50IHJ1bGUgY29udGV4dC5cbiAqIEBwYXJhbSBhbmFseXNpcyBQYXJzZWQgdGVzdC1ibG9jayBhbmFseXNpcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiByZXBvcnRNaXNzaW5nU2VjdGlvbnMoeyByZXBvcnQoKSB7fSB9IGFzIG5ldmVyLCB7IHNlY3Rpb25Db21tZW50czogW10gfSBhcyBuZXZlcik7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gcmVwb3J0TWlzc2luZ1NlY3Rpb25zKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBhbmFseXNpczogVGVzdEJsb2NrQW5hbHlzaXMsXG4pOiB2b2lkIHtcbiAgY29uc3QgcHJlc2VudFNlY3Rpb25zID0gbmV3IFNldChcbiAgICBhbmFseXNpcy5zZWN0aW9uQ29tbWVudHMuZmxhdE1hcCgoc2VjdGlvbkNvbW1lbnQpID0+IHNlY3Rpb25Db21tZW50LnBoYXNlcyksXG4gICk7XG4gIGNvbnN0IGhhc1ByZVNlY3Rpb25TdGF0ZW1lbnRzID0gYW5hbHlzaXMuc3RhdGVtZW50cy5zb21lKFxuICAgIChzdGF0ZW1lbnQpID0+IHN0YXRlbWVudC5waGFzZXMubGVuZ3RoID09PSAwLFxuICApO1xuICBjb25zdCBtaXNzaW5nU2VjdGlvbnMgPSAoW1wiQXJyYW5nZVwiLCBcIkFjdFwiLCBcIkFzc2VydFwiXSBhcyBjb25zdCkuZmlsdGVyKFxuICAgIChwaGFzZSkgPT5cbiAgICAgICFwcmVzZW50U2VjdGlvbnMuaGFzKHBoYXNlKSAmJlxuICAgICAgKHBoYXNlICE9PSBcIkFycmFuZ2VcIiB8fCBoYXNQcmVTZWN0aW9uU3RhdGVtZW50cyksXG4gICk7XG5cbiAgaWYgKG1pc3NpbmdTZWN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb250ZXh0LnJlcG9ydCh7XG4gICAgZGF0YTogeyBzZWN0aW9uczogbWlzc2luZ1NlY3Rpb25zLmpvaW4oXCIsIFwiKSB9LFxuICAgIGZpeDpcbiAgICAgIGFuYWx5c2lzLmJvZHlMaW5lQ291bnQgPj0gM1xuICAgICAgICA/IChmaXhlcjogUnVsZS5SdWxlRml4ZXIpOiBSdWxlLkZpeFtdID0+XG4gICAgICAgICAgICBidWlsZE1pc3NpbmdTZWN0aW9uRml4ZXMoYW5hbHlzaXMsIG1pc3NpbmdTZWN0aW9ucywgZml4ZXIpXG4gICAgICAgIDogdm9pZCAwLFxuICAgIG1lc3NhZ2VJZDogXCJtaXNzaW5nU2VjdGlvbnNcIixcbiAgICBub2RlOiBhbmFseXNpcy5jYWxsRXhwcmVzc2lvbixcbiAgfSk7XG59XG5cbi8qKlxuICogUmVwb3J0cyBzZWN0aW9uIGNvbW1lbnRzIHRoYXQgYXBwZWFyIG91dCBvZiBjYW5vbmljYWwgQXJyYW5nZSAtPiBBY3QgLT4gQXNzZXJ0IG9yZGVyLlxuICogQHBhcmFtIGNvbnRleHQgRVNMaW50IHJ1bGUgY29udGV4dC5cbiAqIEBwYXJhbSBhbmFseXNpcyBQYXJzZWQgdGVzdC1ibG9jayBhbmFseXNpcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiByZXBvcnRPdXRPZk9yZGVyU2VjdGlvbnMoeyByZXBvcnQoKSB7fSB9IGFzIG5ldmVyLCB7IHNlY3Rpb25Db21tZW50czogW10gfSBhcyBuZXZlcik7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gcmVwb3J0T3V0T2ZPcmRlclNlY3Rpb25zKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBhbmFseXNpczogVGVzdEJsb2NrQW5hbHlzaXMsXG4pOiB2b2lkIHtcbiAgY29uc3QgY29tbWVudHMgPSBhbmFseXNpcy5zZWN0aW9uQ29tbWVudHM7XG4gIGNvbnN0IGxhc3RJbmRleCA9IGNvbW1lbnRzLmxlbmd0aCAtIDE7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxhc3RJbmRleDsgaW5kZXggKz0gMSkge1xuICAgIGNvbnN0IHByZXZpb3VzID0gY29tbWVudHNbaW5kZXhdO1xuICAgIGNvbnN0IGN1cnJlbnQgPSBjb21tZW50c1tpbmRleCArIDFdO1xuXG4gICAgaWYgKHByZXZpb3VzICYmIGN1cnJlbnQpIHJlcG9ydElmT3V0T2ZPcmRlcihjb250ZXh0LCBwcmV2aW91cywgY3VycmVudCk7XG4gIH1cbn1cblxuZXhwb3J0IHsgZW5mb3JjZUFhYVN0cnVjdHVyZVJ1bGUgfTtcbiJdfQ==
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
export { assertActualExpectedNamesRule } from "./assert-actual-expected-names/index.js";
|
|
2
|
-
export { enforceAaaPhasePurityRule } from "./enforce-aaa-phase-purity/index.js";
|
|
3
2
|
export { enforceAaaStructureRule } from "./enforce-aaa-structure/index.js";
|
|
4
3
|
export { preferViMockedImportRule } from "./prefer-vi-mocked-import/index.js";
|
|
5
|
-
export { preferVitestIncrementalCastsRule } from "./prefer-vitest-incremental-casts/index.js";
|
|
6
|
-
export { requireAaaSectionsRule } from "./require-aaa-sections/index.js";
|
|
7
4
|
export { requireActResultCaptureRule } from "./require-act-result-capture/index.js";
|
|
8
5
|
export { requireTestCompanionRule } from "./require-test-companion/index.js";
|
|
9
6
|
export { singleActStatementRule } from "./single-act-statement/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
export { assertActualExpectedNamesRule } from "./assert-actual-expected-names/index.js";
|
|
2
|
-
export { enforceAaaPhasePurityRule } from "./enforce-aaa-phase-purity/index.js";
|
|
3
2
|
export { enforceAaaStructureRule } from "./enforce-aaa-structure/index.js";
|
|
4
3
|
export { preferViMockedImportRule } from "./prefer-vi-mocked-import/index.js";
|
|
5
|
-
export { preferVitestIncrementalCastsRule } from "./prefer-vitest-incremental-casts/index.js";
|
|
6
|
-
export { requireAaaSectionsRule } from "./require-aaa-sections/index.js";
|
|
7
4
|
export { requireActResultCaptureRule } from "./require-act-result-capture/index.js";
|
|
8
5
|
export { requireTestCompanionRule } from "./require-test-companion/index.js";
|
|
9
6
|
export { singleActStatementRule } from "./single-act-statement/index.js";
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBhc3NlcnRBY3R1YWxFeHBlY3RlZE5hbWVzUnVsZSB9IGZyb20gXCIuL2Fzc2VydC1hY3R1YWwtZXhwZWN0ZWQtbmFtZXNcIjtcbmV4cG9ydCB7IGVuZm9yY2VBYWFTdHJ1Y3R1cmVSdWxlIH0gZnJvbSBcIi4vZW5mb3JjZS1hYWEtc3RydWN0dXJlXCI7XG5leHBvcnQgeyBwcmVmZXJWaU1vY2tlZEltcG9ydFJ1bGUgfSBmcm9tIFwiLi9wcmVmZXItdmktbW9ja2VkLWltcG9ydFwiO1xuZXhwb3J0IHsgcmVxdWlyZUFjdFJlc3VsdENhcHR1cmVSdWxlIH0gZnJvbSBcIi4vcmVxdWlyZS1hY3QtcmVzdWx0LWNhcHR1cmVcIjtcbmV4cG9ydCB7IHJlcXVpcmVUZXN0Q29tcGFuaW9uUnVsZSB9IGZyb20gXCIuL3JlcXVpcmUtdGVzdC1jb21wYW5pb25cIjtcbmV4cG9ydCB7IHNpbmdsZUFjdFN0YXRlbWVudFJ1bGUgfSBmcm9tIFwiLi9zaW5nbGUtYWN0LXN0YXRlbWVudFwiO1xuIl19
|
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
import type { Rule } from "eslint";
|
|
2
|
-
import type { RuleMatch } from "./types.js";
|
|
3
|
-
/**
|
|
4
|
-
* Builds fixes for adding or updating imports.
|
|
5
|
-
* @param match Autofix context produced by the matcher.
|
|
6
|
-
* @param fixer ESLint fixer.
|
|
7
|
-
* @returns Import fixes for one match.
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* const fixes = buildImportFixes({} as never, {} as never);
|
|
11
|
-
* void fixes;
|
|
12
|
-
* ```
|
|
13
|
-
*/
|
|
14
|
-
declare function buildImportFixes(match: RuleMatch, fixer: Rule.RuleFixer): Rule.Fix[];
|
|
15
1
|
/**
|
|
16
2
|
* Creates an import statement string from import parts.
|
|
17
3
|
* @param moduleSpecifier Module path used in the generated statement.
|
|
@@ -25,5 +11,5 @@ declare function buildImportFixes(match: RuleMatch, fixer: Rule.RuleFixer): Rule
|
|
|
25
11
|
* ```
|
|
26
12
|
*/
|
|
27
13
|
declare function buildImportStatement(moduleSpecifier: string, defaultImportName: string | undefined, names: readonly string[]): string;
|
|
28
|
-
export {
|
|
14
|
+
export { buildImportStatement };
|
|
29
15
|
//# sourceMappingURL=fix-import-statements.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix-import-statements.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/fix-import-statements.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"fix-import-statements.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/fix-import-statements.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,iBAAS,oBAAoB,CAC3B,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM,GAAG,SAAS,EACrC,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,MAAM,CAOR;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -1,48 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Builds fixes for adding or updating imports.
|
|
3
|
-
* @param match Autofix context produced by the matcher.
|
|
4
|
-
* @param fixer ESLint fixer.
|
|
5
|
-
* @returns Import fixes for one match.
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* const fixes = buildImportFixes({} as never, {} as never);
|
|
9
|
-
* void fixes;
|
|
10
|
-
* ```
|
|
11
|
-
*/
|
|
12
|
-
function buildImportFixes(match, fixer) {
|
|
13
|
-
const { names } = match.importPlan;
|
|
14
|
-
if (names.length === 0) {
|
|
15
|
-
return [];
|
|
16
|
-
}
|
|
17
|
-
const sortedNames = [...names].toSorted();
|
|
18
|
-
const updateFix = buildImportUpdateFix(match, sortedNames, fixer);
|
|
19
|
-
return updateFix === void 0
|
|
20
|
-
? buildImportInsertFixes(match, sortedNames, fixer)
|
|
21
|
-
: [updateFix];
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Builds import insertion fixes when no compatible import exists.
|
|
25
|
-
* @param match Autofix context produced by the matcher.
|
|
26
|
-
* @param sortedNames Sorted names that must be imported.
|
|
27
|
-
* @param fixer ESLint fixer.
|
|
28
|
-
* @returns Import insertion fixes for one match.
|
|
29
|
-
* @example
|
|
30
|
-
* ```typescript
|
|
31
|
-
* const fixes = buildImportInsertFixes({ importPlan: { moduleSpecifier: "./x", names: [] }, newline: "\n" } as never, [], {} as never);
|
|
32
|
-
* void fixes;
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
function buildImportInsertFixes(match, sortedNames, fixer) {
|
|
36
|
-
const statementText = buildImportStatement(match.importPlan.moduleSpecifier, void 0, sortedNames);
|
|
37
|
-
const { afterRange } = match.importPlan.insert ?? {};
|
|
38
|
-
return afterRange === void 0
|
|
39
|
-
? [
|
|
40
|
-
fixer.insertTextBeforeRange([0, 0], `${statementText}${match.newline}${match.newline}`),
|
|
41
|
-
]
|
|
42
|
-
: [
|
|
43
|
-
fixer.insertTextAfterRange(afterRange, `${match.newline}${statementText}`),
|
|
44
|
-
];
|
|
45
|
-
}
|
|
46
1
|
/**
|
|
47
2
|
* Creates an import statement string from import parts.
|
|
48
3
|
* @param moduleSpecifier Module path used in the generated statement.
|
|
@@ -62,29 +17,5 @@ function buildImportStatement(moduleSpecifier, defaultImportName, names) {
|
|
|
62
17
|
? `import ${namedText} from ${moduleText};`
|
|
63
18
|
: `import ${defaultImportName}, ${namedText} from ${moduleText};`;
|
|
64
19
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
* @param match Autofix context produced by the matcher.
|
|
68
|
-
* @param sortedNames Sorted names that must be imported.
|
|
69
|
-
* @param fixer ESLint fixer.
|
|
70
|
-
* @returns Replacement fix when an import can be updated.
|
|
71
|
-
* @example
|
|
72
|
-
* ```typescript
|
|
73
|
-
* const fix = buildImportUpdateFix({ importPlan: { moduleSpecifier: "./x", names: [] } } as never, [], {} as never);
|
|
74
|
-
* void fix;
|
|
75
|
-
* ```
|
|
76
|
-
*/
|
|
77
|
-
function buildImportUpdateFix(match, sortedNames, fixer) {
|
|
78
|
-
const { moduleSpecifier, update } = match.importPlan;
|
|
79
|
-
if (update === void 0) {
|
|
80
|
-
return void 0;
|
|
81
|
-
}
|
|
82
|
-
const { defaultImportName, existingNamedImports, range } = update;
|
|
83
|
-
const mergedNames = [
|
|
84
|
-
...new Set([...sortedNames, ...existingNamedImports]),
|
|
85
|
-
].toSorted();
|
|
86
|
-
const statementText = buildImportStatement(moduleSpecifier, defaultImportName, mergedNames);
|
|
87
|
-
return fixer.replaceTextRange(range, statementText);
|
|
88
|
-
}
|
|
89
|
-
export { buildImportFixes, buildImportStatement };
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4LWltcG9ydC1zdGF0ZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3ByZWZlci12aS1tb2NrZWQtaW1wb3J0L2ZpeC1pbXBvcnQtc3RhdGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFnQixFQUFFLEtBQXFCO0lBQy9ELE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO0lBRW5DLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUMsTUFBTSxTQUFTLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUVsRSxPQUFPLFNBQVMsS0FBSyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQVMsc0JBQXNCLENBQzdCLEtBQWdCLEVBQ2hCLFdBQXFCLEVBQ3JCLEtBQXFCO0lBRXJCLE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUN4QyxLQUFLLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFDaEMsS0FBSyxDQUFDLEVBQ04sV0FBVyxDQUNaLENBQUM7SUFDRixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBRXJELE9BQU8sVUFBVSxLQUFLLEtBQUssQ0FBQztRQUMxQixDQUFDLENBQUM7WUFDRSxLQUFLLENBQUMscUJBQXFCLENBQ3pCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUNOLEdBQUcsYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUNuRDtTQUNGO1FBQ0gsQ0FBQyxDQUFDO1lBQ0UsS0FBSyxDQUFDLG9CQUFvQixDQUN4QixVQUFVLEVBQ1YsR0FBRyxLQUFLLENBQUMsT0FBTyxHQUFHLGFBQWEsRUFBRSxDQUNuQztTQUNGLENBQUM7QUFDUixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFTLG9CQUFvQixDQUMzQixlQUF1QixFQUN2QixpQkFBcUMsRUFDckMsS0FBd0I7SUFFeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNuRCxNQUFNLFNBQVMsR0FBRyxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUU1QyxPQUFPLGlCQUFpQixLQUFLLEtBQUssQ0FBQztRQUNqQyxDQUFDLENBQUMsVUFBVSxTQUFTLFNBQVMsVUFBVSxHQUFHO1FBQzNDLENBQUMsQ0FBQyxVQUFVLGlCQUFpQixLQUFLLFNBQVMsU0FBUyxVQUFVLEdBQUcsQ0FBQztBQUN0RSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFTLG9CQUFvQixDQUMzQixLQUFnQixFQUNoQixXQUFxQixFQUNyQixLQUFxQjtJQUVyQixNQUFNLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFFckQsSUFBSSxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ2xFLE1BQU0sV0FBVyxHQUFHO1FBQ2xCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsRUFBRSxHQUFHLG9CQUFvQixDQUFDLENBQUM7S0FDdEQsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNiLE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUN4QyxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLFdBQVcsQ0FDWixDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcclxuXHJcbmltcG9ydCB0eXBlIHsgUnVsZU1hdGNoIH0gZnJvbSBcIi4vdHlwZXNcIjtcclxuXHJcbi8qKlxyXG4gKiBCdWlsZHMgZml4ZXMgZm9yIGFkZGluZyBvciB1cGRhdGluZyBpbXBvcnRzLlxyXG4gKiBAcGFyYW0gbWF0Y2ggQXV0b2ZpeCBjb250ZXh0IHByb2R1Y2VkIGJ5IHRoZSBtYXRjaGVyLlxyXG4gKiBAcGFyYW0gZml4ZXIgRVNMaW50IGZpeGVyLlxyXG4gKiBAcmV0dXJucyBJbXBvcnQgZml4ZXMgZm9yIG9uZSBtYXRjaC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBmaXhlcyA9IGJ1aWxkSW1wb3J0Rml4ZXMoe30gYXMgbmV2ZXIsIHt9IGFzIG5ldmVyKTtcclxuICogdm9pZCBmaXhlcztcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBidWlsZEltcG9ydEZpeGVzKG1hdGNoOiBSdWxlTWF0Y2gsIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcik6IFJ1bGUuRml4W10ge1xyXG4gIGNvbnN0IHsgbmFtZXMgfSA9IG1hdGNoLmltcG9ydFBsYW47XHJcblxyXG4gIGlmIChuYW1lcy5sZW5ndGggPT09IDApIHtcclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHNvcnRlZE5hbWVzID0gWy4uLm5hbWVzXS50b1NvcnRlZCgpO1xyXG4gIGNvbnN0IHVwZGF0ZUZpeCA9IGJ1aWxkSW1wb3J0VXBkYXRlRml4KG1hdGNoLCBzb3J0ZWROYW1lcywgZml4ZXIpO1xyXG5cclxuICByZXR1cm4gdXBkYXRlRml4ID09PSB2b2lkIDBcclxuICAgID8gYnVpbGRJbXBvcnRJbnNlcnRGaXhlcyhtYXRjaCwgc29ydGVkTmFtZXMsIGZpeGVyKVxyXG4gICAgOiBbdXBkYXRlRml4XTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEJ1aWxkcyBpbXBvcnQgaW5zZXJ0aW9uIGZpeGVzIHdoZW4gbm8gY29tcGF0aWJsZSBpbXBvcnQgZXhpc3RzLlxyXG4gKiBAcGFyYW0gbWF0Y2ggQXV0b2ZpeCBjb250ZXh0IHByb2R1Y2VkIGJ5IHRoZSBtYXRjaGVyLlxyXG4gKiBAcGFyYW0gc29ydGVkTmFtZXMgU29ydGVkIG5hbWVzIHRoYXQgbXVzdCBiZSBpbXBvcnRlZC5cclxuICogQHBhcmFtIGZpeGVyIEVTTGludCBmaXhlci5cclxuICogQHJldHVybnMgSW1wb3J0IGluc2VydGlvbiBmaXhlcyBmb3Igb25lIG1hdGNoLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGZpeGVzID0gYnVpbGRJbXBvcnRJbnNlcnRGaXhlcyh7IGltcG9ydFBsYW46IHsgbW9kdWxlU3BlY2lmaWVyOiBcIi4veFwiLCBuYW1lczogW10gfSwgbmV3bGluZTogXCJcXG5cIiB9IGFzIG5ldmVyLCBbXSwge30gYXMgbmV2ZXIpO1xyXG4gKiB2b2lkIGZpeGVzO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGJ1aWxkSW1wb3J0SW5zZXJ0Rml4ZXMoXHJcbiAgbWF0Y2g6IFJ1bGVNYXRjaCxcclxuICBzb3J0ZWROYW1lczogc3RyaW5nW10sXHJcbiAgZml4ZXI6IFJ1bGUuUnVsZUZpeGVyLFxyXG4pOiBSdWxlLkZpeFtdIHtcclxuICBjb25zdCBzdGF0ZW1lbnRUZXh0ID0gYnVpbGRJbXBvcnRTdGF0ZW1lbnQoXHJcbiAgICBtYXRjaC5pbXBvcnRQbGFuLm1vZHVsZVNwZWNpZmllcixcclxuICAgIHZvaWQgMCxcclxuICAgIHNvcnRlZE5hbWVzLFxyXG4gICk7XHJcbiAgY29uc3QgeyBhZnRlclJhbmdlIH0gPSBtYXRjaC5pbXBvcnRQbGFuLmluc2VydCA/PyB7fTtcclxuXHJcbiAgcmV0dXJuIGFmdGVyUmFuZ2UgPT09IHZvaWQgMFxyXG4gICAgPyBbXHJcbiAgICAgICAgZml4ZXIuaW5zZXJ0VGV4dEJlZm9yZVJhbmdlKFxyXG4gICAgICAgICAgWzAsIDBdLFxyXG4gICAgICAgICAgYCR7c3RhdGVtZW50VGV4dH0ke21hdGNoLm5ld2xpbmV9JHttYXRjaC5uZXdsaW5lfWAsXHJcbiAgICAgICAgKSxcclxuICAgICAgXVxyXG4gICAgOiBbXHJcbiAgICAgICAgZml4ZXIuaW5zZXJ0VGV4dEFmdGVyUmFuZ2UoXHJcbiAgICAgICAgICBhZnRlclJhbmdlLFxyXG4gICAgICAgICAgYCR7bWF0Y2gubmV3bGluZX0ke3N0YXRlbWVudFRleHR9YCxcclxuICAgICAgICApLFxyXG4gICAgICBdO1xyXG59XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhbiBpbXBvcnQgc3RhdGVtZW50IHN0cmluZyBmcm9tIGltcG9ydCBwYXJ0cy5cclxuICogQHBhcmFtIG1vZHVsZVNwZWNpZmllciBNb2R1bGUgcGF0aCB1c2VkIGluIHRoZSBnZW5lcmF0ZWQgc3RhdGVtZW50LlxyXG4gKiBAcGFyYW0gZGVmYXVsdEltcG9ydE5hbWUgRXhpc3RpbmcgZGVmYXVsdC1pbXBvcnQgbG9jYWwgaWRlbnRpZmllciwgd2hlbiBwcmVzZW50LlxyXG4gKiBAcGFyYW0gbmFtZXMgTmFtZWQgaW1wb3J0cyB0byBpbmNsdWRlIGluIGJyYWNlcy5cclxuICogQHJldHVybnMgRnVsbHkgZm9ybWF0dGVkIGltcG9ydCBzdGF0ZW1lbnQgdGV4dC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCB0ZXh0ID0gYnVpbGRJbXBvcnRTdGF0ZW1lbnQoXCIuL3hcIiwgdm9pZCAwLCBbXCJhXCJdKTtcclxuICogdm9pZCB0ZXh0O1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGJ1aWxkSW1wb3J0U3RhdGVtZW50KFxyXG4gIG1vZHVsZVNwZWNpZmllcjogc3RyaW5nLFxyXG4gIGRlZmF1bHRJbXBvcnROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXHJcbiAgbmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdLFxyXG4pOiBzdHJpbmcge1xyXG4gIGNvbnN0IG1vZHVsZVRleHQgPSBKU09OLnN0cmluZ2lmeShtb2R1bGVTcGVjaWZpZXIpO1xyXG4gIGNvbnN0IG5hbWVkVGV4dCA9IGB7ICR7bmFtZXMuam9pbihcIiwgXCIpfSB9YDtcclxuXHJcbiAgcmV0dXJuIGRlZmF1bHRJbXBvcnROYW1lID09PSB2b2lkIDBcclxuICAgID8gYGltcG9ydCAke25hbWVkVGV4dH0gZnJvbSAke21vZHVsZVRleHR9O2BcclxuICAgIDogYGltcG9ydCAke2RlZmF1bHRJbXBvcnROYW1lfSwgJHtuYW1lZFRleHR9IGZyb20gJHttb2R1bGVUZXh0fTtgO1xyXG59XHJcblxyXG4vKipcclxuICogQnVpbGRzIGFuIGltcG9ydCB1cGRhdGUgZml4IHdoZW4gYW4gZXhpc3RpbmcgaW1wb3J0IGlzIGNvbXBhdGlibGUuXHJcbiAqIEBwYXJhbSBtYXRjaCBBdXRvZml4IGNvbnRleHQgcHJvZHVjZWQgYnkgdGhlIG1hdGNoZXIuXHJcbiAqIEBwYXJhbSBzb3J0ZWROYW1lcyBTb3J0ZWQgbmFtZXMgdGhhdCBtdXN0IGJlIGltcG9ydGVkLlxyXG4gKiBAcGFyYW0gZml4ZXIgRVNMaW50IGZpeGVyLlxyXG4gKiBAcmV0dXJucyBSZXBsYWNlbWVudCBmaXggd2hlbiBhbiBpbXBvcnQgY2FuIGJlIHVwZGF0ZWQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZml4ID0gYnVpbGRJbXBvcnRVcGRhdGVGaXgoeyBpbXBvcnRQbGFuOiB7IG1vZHVsZVNwZWNpZmllcjogXCIuL3hcIiwgbmFtZXM6IFtdIH0gfSBhcyBuZXZlciwgW10sIHt9IGFzIG5ldmVyKTtcclxuICogdm9pZCBmaXg7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRJbXBvcnRVcGRhdGVGaXgoXHJcbiAgbWF0Y2g6IFJ1bGVNYXRjaCxcclxuICBzb3J0ZWROYW1lczogc3RyaW5nW10sXHJcbiAgZml4ZXI6IFJ1bGUuUnVsZUZpeGVyLFxyXG4pOiBSdWxlLkZpeCB8IHVuZGVmaW5lZCB7XHJcbiAgY29uc3QgeyBtb2R1bGVTcGVjaWZpZXIsIHVwZGF0ZSB9ID0gbWF0Y2guaW1wb3J0UGxhbjtcclxuXHJcbiAgaWYgKHVwZGF0ZSA9PT0gdm9pZCAwKSB7XHJcbiAgICByZXR1cm4gdm9pZCAwO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgeyBkZWZhdWx0SW1wb3J0TmFtZSwgZXhpc3RpbmdOYW1lZEltcG9ydHMsIHJhbmdlIH0gPSB1cGRhdGU7XHJcbiAgY29uc3QgbWVyZ2VkTmFtZXMgPSBbXHJcbiAgICAuLi5uZXcgU2V0KFsuLi5zb3J0ZWROYW1lcywgLi4uZXhpc3RpbmdOYW1lZEltcG9ydHNdKSxcclxuICBdLnRvU29ydGVkKCk7XHJcbiAgY29uc3Qgc3RhdGVtZW50VGV4dCA9IGJ1aWxkSW1wb3J0U3RhdGVtZW50KFxyXG4gICAgbW9kdWxlU3BlY2lmaWVyLFxyXG4gICAgZGVmYXVsdEltcG9ydE5hbWUsXHJcbiAgICBtZXJnZWROYW1lcyxcclxuICApO1xyXG5cclxuICByZXR1cm4gZml4ZXIucmVwbGFjZVRleHRSYW5nZShyYW5nZSwgc3RhdGVtZW50VGV4dCk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGJ1aWxkSW1wb3J0Rml4ZXMsIGJ1aWxkSW1wb3J0U3RhdGVtZW50IH07XHJcbiJdfQ==
|
|
20
|
+
export { buildImportStatement };
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4LWltcG9ydC1zdGF0ZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi90ZXN0aW5nL3ByZWZlci12aS1tb2NrZWQtaW1wb3J0L2ZpeC1pbXBvcnQtc3RhdGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQVMsb0JBQW9CLENBQzNCLGVBQXVCLEVBQ3ZCLGlCQUFxQyxFQUNyQyxLQUF3QjtJQUV4QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sU0FBUyxHQUFHLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBRTVDLE9BQU8saUJBQWlCLEtBQUssS0FBSyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxVQUFVLFNBQVMsU0FBUyxVQUFVLEdBQUc7UUFDM0MsQ0FBQyxDQUFDLFVBQVUsaUJBQWlCLEtBQUssU0FBUyxTQUFTLFVBQVUsR0FBRyxDQUFDO0FBQ3RFLENBQUM7QUFFRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDcmVhdGVzIGFuIGltcG9ydCBzdGF0ZW1lbnQgc3RyaW5nIGZyb20gaW1wb3J0IHBhcnRzLlxyXG4gKiBAcGFyYW0gbW9kdWxlU3BlY2lmaWVyIE1vZHVsZSBwYXRoIHVzZWQgaW4gdGhlIGdlbmVyYXRlZCBzdGF0ZW1lbnQuXHJcbiAqIEBwYXJhbSBkZWZhdWx0SW1wb3J0TmFtZSBFeGlzdGluZyBkZWZhdWx0LWltcG9ydCBsb2NhbCBpZGVudGlmaWVyLCB3aGVuIHByZXNlbnQuXHJcbiAqIEBwYXJhbSBuYW1lcyBOYW1lZCBpbXBvcnRzIHRvIGluY2x1ZGUgaW4gYnJhY2VzLlxyXG4gKiBAcmV0dXJucyBGdWxseSBmb3JtYXR0ZWQgaW1wb3J0IHN0YXRlbWVudCB0ZXh0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IHRleHQgPSBidWlsZEltcG9ydFN0YXRlbWVudChcIi4veFwiLCB2b2lkIDAsIFtcImFcIl0pO1xyXG4gKiB2b2lkIHRleHQ7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRJbXBvcnRTdGF0ZW1lbnQoXHJcbiAgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmcsXHJcbiAgZGVmYXVsdEltcG9ydE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcclxuICBuYW1lczogcmVhZG9ubHkgc3RyaW5nW10sXHJcbik6IHN0cmluZyB7XHJcbiAgY29uc3QgbW9kdWxlVGV4dCA9IEpTT04uc3RyaW5naWZ5KG1vZHVsZVNwZWNpZmllcik7XHJcbiAgY29uc3QgbmFtZWRUZXh0ID0gYHsgJHtuYW1lcy5qb2luKFwiLCBcIil9IH1gO1xyXG5cclxuICByZXR1cm4gZGVmYXVsdEltcG9ydE5hbWUgPT09IHZvaWQgMFxyXG4gICAgPyBgaW1wb3J0ICR7bmFtZWRUZXh0fSBmcm9tICR7bW9kdWxlVGV4dH07YFxyXG4gICAgOiBgaW1wb3J0ICR7ZGVmYXVsdEltcG9ydE5hbWV9LCAke25hbWVkVGV4dH0gZnJvbSAke21vZHVsZVRleHR9O2A7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGJ1aWxkSW1wb3J0U3RhdGVtZW50IH07XHJcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix-imports.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/fix-imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAsDzC;;;;;;;;;;GAUG;AACH,iBAAS,wBAAwB,CAC/B,OAAO,EAAE,SAAS,EAAE,EACpB,KAAK,EAAE,IAAI,CAAC,SAAS,GACpB,IAAI,CAAC,GAAG,EAAE,CASZ;
|
|
1
|
+
{"version":3,"file":"fix-imports.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/fix-imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAsDzC;;;;;;;;;;GAUG;AACH,iBAAS,wBAAwB,CAC/B,OAAO,EAAE,SAAS,EAAE,EACpB,KAAK,EAAE,IAAI,CAAC,SAAS,GACpB,IAAI,CAAC,GAAG,EAAE,CASZ;AAsND,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -140,7 +140,9 @@ function createInsertGroup(afterRange) {
|
|
|
140
140
|
* ```
|
|
141
141
|
*/
|
|
142
142
|
function getInsertGroupKey(afterRange) {
|
|
143
|
-
return afterRange === void 0
|
|
143
|
+
return afterRange === void 0
|
|
144
|
+
? "TOP"
|
|
145
|
+
: `${afterRange[0].toFixed(0)}:${afterRange[1].toFixed(0)}`;
|
|
144
146
|
}
|
|
145
147
|
/**
|
|
146
148
|
* Merges one match into the combined import-plan map.
|
|
@@ -202,4 +204,4 @@ function mergeImportPlanUpdate(combinedPlan, match) {
|
|
|
202
204
|
}
|
|
203
205
|
}
|
|
204
206
|
export { buildCombinedImportFixes };
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4LWltcG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpLW1vY2tlZC1pbXBvcnQvZml4LWltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFzQmhFOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FDekIsWUFBc0MsRUFDdEMsSUFBd0I7SUFFeEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUUvQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUxRSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbkIsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FDaEUsQ0FBQztJQUNGLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FB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VSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDL0QsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsb0JBQW9CLENBQzNCLFlBQWdDLEVBQ2hDLEtBQWU7SUFFZixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHFCQUFxQixDQUM1QixZQUFnQyxFQUNoQyxLQUFnQjtJQUVoQixJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6RSxZQUFZLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQ2hELENBQUM7QUFDSCxDQUFDO0FBRUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IFJhbmdlIH0gZnJvbSBcIi4vbWF0Y2gtaGVscGVyc1wiO1xyXG5pbXBvcnQgdHlwZSB7IFJ1bGVNYXRjaCB9IGZyb20gXCIuL3R5cGVzXCI7XHJcblxyXG5pbXBvcnQgeyBidWlsZEltcG9ydFN0YXRlbWVudCB9IGZyb20gXCIuL2ZpeC1pbXBvcnQtc3RhdGVtZW50c1wiO1xyXG5pbXBvcnQgeyBidWlsZENvbWJpbmVkVXBkYXRlRml4ZXMgfSBmcm9tIFwiLi9maXgtaW1wb3J0LXVwZGF0ZXNcIjtcclxuXHJcbi8qKiBDb21iaW5lZCBpbXBvcnQgd29yayBmb3Igb25lIG1vZHVsZSBhY3Jvc3MgYWxsIG1hdGNoZXMuICovXHJcbmludGVyZmFjZSBDb21iaW5lZEltcG9ydFBsYW4ge1xyXG4gIC8qKiBJbnNlcnQgbG9jYXRpb24gZm9yIGEgbmV3IGltcG9ydC4gKi9cclxuICBhZnRlclJhbmdlPzogUmFuZ2U7XHJcbiAgLyoqIE1vZHVsZSBpbXBvcnRlZCBieSB0aGlzIHBsYW4uICovXHJcbiAgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmc7XHJcbiAgLyoqIE5hbWVkIGltcG9ydHMgcmVxdWlyZWQgZm9yIHRoaXMgbW9kdWxlLiAqL1xyXG4gIG5hbWVzOiBTZXQ8c3RyaW5nPjtcclxuICAvKiogRXhpc3RpbmcgaW1wb3J0IHJlcGxhY2VtZW50IHBsYW4gd2hlbiBwcmVzZW50LiAqL1xyXG4gIHVwZGF0ZT86IE5vbk51bGxhYmxlPFJ1bGVNYXRjaFtcImltcG9ydFBsYW5cIl1bXCJ1cGRhdGVcIl0+O1xyXG59XHJcblxyXG4vKiogSW1wb3J0IHN0YXRlbWVudHMgZ3JvdXBlZCBieSBpbnNlcnRpb24gcG9pbnQuICovXHJcbmludGVyZmFjZSBJbnNlcnRHcm91cCB7XHJcbiAgLyoqIEluc2VydCBsb2NhdGlvbiBmb3IgdGhpcyBncm91cC4gKi9cclxuICBhZnRlclJhbmdlPzogUmFuZ2U7XHJcbiAgLyoqIFN0YXRlbWVudHMgZW1pdHRlZCBhdCB0aGUgc2FtZSBpbnNlcnRpb24gcG9pbnQuICovXHJcbiAgc3RhdGVtZW50czogc3RyaW5nW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRzIG9uZSBpbXBvcnQgc3RhdGVtZW50IHRvIGl0cyBpbnNlcnRpb24gZ3JvdXAuXHJcbiAqIEBwYXJhbSBpbnNlcnRHcm91cHMgSW1wb3J0IHN0YXRlbWVudHMgZ3JvdXBlZCBieSBpbnNlcnRpb24gcG9pbnQuXHJcbiAqIEBwYXJhbSBwbGFuIENvbWJpbmVkIGltcG9ydCBwbGFuIGZvciBvbmUgbW9kdWxlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGFkZEluc2VydFN0YXRlbWVudChuZXcgTWFwKCksIHsgbW9kdWxlU3BlY2lmaWVyOiBcIi4veFwiLCBuYW1lczogbmV3IFNldChbXCJhXCJdKSB9IGFzIG5ldmVyKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBhZGRJbnNlcnRTdGF0ZW1lbnQoXHJcbiAgaW5zZXJ0R3JvdXBzOiBNYXA8c3RyaW5nLCBJbnNlcnRHcm91cD4sXHJcbiAgcGxhbjogQ29tYmluZWRJbXBvcnRQbGFuLFxyXG4pOiB2b2lkIHtcclxuICBjb25zdCBzb3J0ZWROYW1lcyA9IFsuLi5wbGFuLm5hbWVzXS50b1NvcnRlZCgpO1xyXG5cclxuICBpZiAoc29ydGVkTmFtZXMubGVuZ3RoID09PSAwIHx8IHBsYW4udXBkYXRlICE9PSB2b2lkIDApIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGNvbnN0IGtleSA9IGdldEluc2VydEdyb3VwS2V5KHBsYW4uYWZ0ZXJSYW5nZSk7XHJcbiAgY29uc3QgZ3JvdXAgPSBpbnNlcnRHcm91cHMuZ2V0KGtleSkgPz8gY3JlYXRlSW5zZXJ0R3JvdXAocGxhbi5hZnRlclJhbmdlKTtcclxuXHJcbiAgZ3JvdXAuc3RhdGVtZW50cy5wdXNoKFxyXG4gICAgYnVpbGRJbXBvcnRTdGF0ZW1lbnQocGxhbi5tb2R1bGVTcGVjaWZpZXIsIHZvaWQgMCwgc29ydGVkTmFtZXMpLFxyXG4gICk7XHJcbiAgZ3JvdXAuc3RhdGVtZW50cy5zb3J0KChsZWZ0LCByaWdodCkgPT4gbGVmdC5sb2NhbGVDb21wYXJlKHJpZ2h0KSk7XHJcbiAgaW5zZXJ0R3JvdXBzLnNldChrZXksIGdyb3VwKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEJ1aWxkcyBzaGFyZWQgaW1wb3J0IGZpeGVzIGZvciBldmVyeSBmaWxlIG1hdGNoLlxyXG4gKiBAcGFyYW0gbWF0Y2hlcyBBdXRvZml4IGNvbnRleHRzIHByb2R1Y2VkIGJ5IHRoZSBtYXRjaGVyLlxyXG4gKiBAcGFyYW0gZml4ZXIgRVNMaW50IGZpeGVyLlxyXG4gKiBAcmV0dXJucyBJbXBvcnQgZml4ZXMgZGUtZHVwbGljYXRlZCBieSBtb2R1bGUgYW5kIGluc2VydGlvbiBzaXRlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGZpeGVzID0gYnVpbGRDb21iaW5lZEltcG9ydEZpeGVzKFtdLCB7fSBhcyBuZXZlcik7XHJcbiAqIHZvaWQgZml4ZXM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRDb21iaW5lZEltcG9ydEZpeGVzKFxyXG4gIG1hdGNoZXM6IFJ1bGVNYXRjaFtdLFxyXG4gIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcixcclxuKTogUnVsZS5GaXhbXSB7XHJcbiAgY29uc3QgbmV3bGluZSA9IG1hdGNoZXNbMF0/Lm5ld2xpbmUgPz8gXCJcXG5cIjtcclxuICBjb25zdCBjb21iaW5lZFBsYW5zID0gY29tYmluZUltcG9ydFBsYW5zKG1hdGNoZXMpO1xyXG4gIGNvbnN0IGluc2VydEdyb3VwcyA9IGNvbGxlY3RJbnNlcnRHcm91cHMoY29tYmluZWRQbGFucyk7XHJcblxyXG4gIHJldHVybiBbXHJcbiAgICAuLi5idWlsZENvbWJpbmVkVXBkYXRlRml4ZXMoY29tYmluZWRQbGFucywgZml4ZXIpLFxyXG4gICAgLi4uYnVpbGRJbnNlcnRHcm91cEZpeGVzKGluc2VydEdyb3VwcywgZml4ZXIsIG5ld2xpbmUpLFxyXG4gIF07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCdWlsZHMgZ3JvdXBlZCBpbnNlcnRpb24gZml4ZXMgZm9yIG5ldyBpbXBvcnRzLlxyXG4gKiBAcGFyYW0gaW5zZXJ0R3JvdXBzIEltcG9ydCBzdGF0ZW1lbnRzIGdyb3VwZWQgYnkgaW5zZXJ0aW9uIHNpdGUuXHJcbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIuXHJcbiAqIEBwYXJhbSBuZXdsaW5lIFByZWZlcnJlZCBmaWxlIG5ld2xpbmUuXHJcbiAqIEByZXR1cm5zIEluc2VydCBmaXhlcyBmb3IgbmV3IGltcG9ydHMuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZml4ZXMgPSBidWlsZEluc2VydEdyb3VwRml4ZXMobmV3IE1hcCgpLCB7fSBhcyBuZXZlciwgXCJcXG5cIik7XHJcbiAqIHZvaWQgZml4ZXM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRJbnNlcnRHcm91cEZpeGVzKFxyXG4gIGluc2VydEdyb3VwczogTWFwPHN0cmluZywgSW5zZXJ0R3JvdXA+LFxyXG4gIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcixcclxuICBuZXdsaW5lOiBcIlxcblwiIHwgXCJcXHJcXG5cIixcclxuKTogUnVsZS5GaXhbXSB7XHJcbiAgcmV0dXJuIFsuLi5pbnNlcnRHcm91cHMudmFsdWVzKCldLm1hcCgoZ3JvdXApID0+XHJcbiAgICBncm91cC5hZnRlclJhbmdlID09PSB2b2lkIDBcclxuICAgICAgPyBmaXhlci5pbnNlcnRUZXh0QmVmb3JlUmFuZ2UoXHJcbiAgICAgICAgICBbMCwgMF0sXHJcbiAgICAgICAgICBgJHtncm91cC5zdGF0ZW1lbnRzLmpvaW4obmV3bGluZSl9JHtuZXdsaW5lfSR7bmV3bGluZX1gLFxyXG4gICAgICAgIClcclxuICAgICAgOiBmaXhlci5pbnNlcnRUZXh0QWZ0ZXJSYW5nZShcclxuICAgICAgICAgIGdyb3VwLmFmdGVyUmFuZ2UsXHJcbiAgICAgICAgICBgJHtuZXdsaW5lfSR7Z3JvdXAuc3RhdGVtZW50cy5qb2luKG5ld2xpbmUpfWAsXHJcbiAgICAgICAgKSxcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ29sbGVjdHMgaW5zZXJ0IGdyb3VwcyBrZXllZCBieSBpbnNlcnRpb24gcG9pbnQuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW5zIENvbWJpbmVkIHBsYW5zIGtleWVkIGJ5IG1vZHVsZSBzcGVjaWZpZXIuXHJcbiAqIEByZXR1cm5zIEltcG9ydCBzdGF0ZW1lbnRzIGdyb3VwZWQgYnkgaW5zZXJ0aW9uIHBvaW50LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGdyb3VwcyA9IGNvbGxlY3RJbnNlcnRHcm91cHMobmV3IE1hcCgpKTtcclxuICogdm9pZCBncm91cHM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29sbGVjdEluc2VydEdyb3VwcyhcclxuICBjb21iaW5lZFBsYW5zOiBNYXA8c3RyaW5nLCBDb21iaW5lZEltcG9ydFBsYW4+LFxyXG4pOiBNYXA8c3RyaW5nLCBJbnNlcnRHcm91cD4ge1xyXG4gIGNvbnN0IGluc2VydEdyb3VwcyA9IG5ldyBNYXA8c3RyaW5nLCBJbnNlcnRHcm91cD4oKTtcclxuXHJcbiAgZm9yIChjb25zdCBwbGFuIG9mIGNvbWJpbmVkUGxhbnMudmFsdWVzKCkpIHtcclxuICAgIGFkZEluc2VydFN0YXRlbWVudChpbnNlcnRHcm91cHMsIHBsYW4pO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGluc2VydEdyb3VwcztcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbWJpbmVzIGltcG9ydCBwbGFucyBhY3Jvc3MgZXZlcnkgZmlsZSBtYXRjaC5cclxuICogQHBhcmFtIG1hdGNoZXMgQXV0b2ZpeCBjb250ZXh0cyBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQHJldHVybnMgQ29tYmluZWQgcGxhbnMga2V5ZWQgYnkgbW9kdWxlIHNwZWNpZmllci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBwbGFucyA9IGNvbWJpbmVJbXBvcnRQbGFucyhbXSk7XHJcbiAqIHZvaWQgcGxhbnM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29tYmluZUltcG9ydFBsYW5zKFxyXG4gIG1hdGNoZXM6IFJ1bGVNYXRjaFtdLFxyXG4pOiBNYXA8c3RyaW5nLCBDb21iaW5lZEltcG9ydFBsYW4+IHtcclxuICBjb25zdCBjb21iaW5lZFBsYW5zID0gbmV3IE1hcDxzdHJpbmcsIENvbWJpbmVkSW1wb3J0UGxhbj4oKTtcclxuXHJcbiAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XHJcbiAgICBtZXJnZUltcG9ydFBsYW4oY29tYmluZWRQbGFucywgbWF0Y2gpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNvbWJpbmVkUGxhbnM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIHRoZSBpbml0aWFsIGNvbWJpbmVkIHBsYW4gZm9yIG9uZSBtYXRjaC5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQHJldHVybnMgQ29tYmluZWQgaW1wb3J0IHBsYW4gc2VlZC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBwbGFuID0gY3JlYXRlQ29tYmluZWRJbXBvcnRQbGFuKHsgbW9kdWxlU3BlY2lmaWVyOiBcIi4veFwiLCBpbXBvcnRQbGFuOiB7IG5hbWVzOiBbXSB9IH0gYXMgbmV2ZXIpO1xyXG4gKiB2b2lkIHBsYW47XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlQ29tYmluZWRJbXBvcnRQbGFuKG1hdGNoOiBSdWxlTWF0Y2gpOiBDb21iaW5lZEltcG9ydFBsYW4ge1xyXG4gIGNvbnN0IGNvbWJpbmVkUGxhbjogQ29tYmluZWRJbXBvcnRQbGFuID0ge1xyXG4gICAgbW9kdWxlU3BlY2lmaWVyOiBtYXRjaC5tb2R1bGVTcGVjaWZpZXIsXHJcbiAgICBuYW1lczogbmV3IFNldChtYXRjaC5pbXBvcnRQbGFuLm5hbWVzKSxcclxuICB9O1xyXG5cclxuICBpZiAobWF0Y2guaW1wb3J0UGxhbi5pbnNlcnQ/LmFmdGVyUmFuZ2UgIT09IHZvaWQgMCkge1xyXG4gICAgY29tYmluZWRQbGFuLmFmdGVyUmFuZ2UgPSBtYXRjaC5pbXBvcnRQbGFuLmluc2VydC5hZnRlclJhbmdlO1xyXG4gIH1cclxuXHJcbiAgaWYgKG1hdGNoLmltcG9ydFBsYW4udXBkYXRlICE9PSB2b2lkIDApIHtcclxuICAgIGNvbWJpbmVkUGxhbi51cGRhdGUgPSBtYXRjaC5pbXBvcnRQbGFuLnVwZGF0ZTtcclxuICB9XHJcblxyXG4gIHJldHVybiBjb21iaW5lZFBsYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGFuIGluc2VydGlvbiBncm91cCBmb3Igb25lIGxvY2F0aW9uLlxyXG4gKiBAcGFyYW0gYWZ0ZXJSYW5nZSBJbnNlcnQgbG9jYXRpb24gZm9yIHRoZSBncm91cC5cclxuICogQHJldHVybnMgSW5zZXJ0IGdyb3VwIHNlZWQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZ3JvdXAgPSBjcmVhdGVJbnNlcnRHcm91cCh2b2lkIDApO1xyXG4gKiB2b2lkIGdyb3VwO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNyZWF0ZUluc2VydEdyb3VwKGFmdGVyUmFuZ2U6IFJhbmdlIHwgdW5kZWZpbmVkKTogSW5zZXJ0R3JvdXAge1xyXG4gIHJldHVybiBhZnRlclJhbmdlID09PSB2b2lkIDBcclxuICAgID8geyBzdGF0ZW1lbnRzOiBbXSB9XHJcbiAgICA6IHsgYWZ0ZXJSYW5nZSwgc3RhdGVtZW50czogW10gfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBzdGFibGUga2V5IGZvciBhbiBpbnNlcnQgbG9jYXRpb24uXHJcbiAqIEBwYXJhbSBhZnRlclJhbmdlIEluc2VydCBsb2NhdGlvbiB3aGVuIGEgbmV3IGltcG9ydCBtdXN0IGJlIGluc2VydGVkLlxyXG4gKiBAcmV0dXJucyBTdGFibGUga2V5IGZvciB0aGUgaW5zZXJ0aW9uIHNpdGUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3Qga2V5ID0gZ2V0SW5zZXJ0R3JvdXBLZXkodm9pZCAwKTtcclxuICogdm9pZCBrZXk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0SW5zZXJ0R3JvdXBLZXkoYWZ0ZXJSYW5nZTogUmFuZ2UgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xyXG4gIHJldHVybiBhZnRlclJhbmdlID09PSB2b2lkIDAgPyBcIlRPUFwiIDogYCR7YWZ0ZXJSYW5nZVswXX06JHthZnRlclJhbmdlWzFdfWA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBNZXJnZXMgb25lIG1hdGNoIGludG8gdGhlIGNvbWJpbmVkIGltcG9ydC1wbGFuIG1hcC5cclxuICogQHBhcmFtIGNvbWJpbmVkUGxhbnMgQ29tYmluZWQgcGxhbnMga2V5ZWQgYnkgbW9kdWxlIHNwZWNpZmllci5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBtZXJnZUltcG9ydFBsYW4obmV3IE1hcCgpLCB7fSBhcyBuZXZlcik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gbWVyZ2VJbXBvcnRQbGFuKFxyXG4gIGNvbWJpbmVkUGxhbnM6IE1hcDxzdHJpbmcsIENvbWJpbmVkSW1wb3J0UGxhbj4sXHJcbiAgbWF0Y2g6IFJ1bGVNYXRjaCxcclxuKTogdm9pZCB7XHJcbiAgY29uc3QgY29tYmluZWRQbGFuID1cclxuICAgIGNvbWJpbmVkUGxhbnMuZ2V0KG1hdGNoLm1vZHVsZVNwZWNpZmllcikgPz8gY3JlYXRlQ29tYmluZWRJbXBvcnRQbGFuKG1hdGNoKTtcclxuXHJcbiAgbWVyZ2VJbXBvcnRQbGFuSW5zZXJ0UmFuZ2UoY29tYmluZWRQbGFuLCBtYXRjaCk7XHJcbiAgbWVyZ2VJbXBvcnRQbGFuTmFtZXMoY29tYmluZWRQbGFuLCBtYXRjaC5pbXBvcnRQbGFuLm5hbWVzKTtcclxuICBtZXJnZUltcG9ydFBsYW5VcGRhdGUoY29tYmluZWRQbGFuLCBtYXRjaCk7XHJcbiAgY29tYmluZWRQbGFucy5zZXQobWF0Y2gubW9kdWxlU3BlY2lmaWVyLCBjb21iaW5lZFBsYW4pO1xyXG59XHJcblxyXG4vKipcclxuICogTWVyZ2VzIHRoZSBmaXJzdCBkaXNjb3ZlcmVkIGluc2VydCByYW5nZSBmb3IgYSBtb2R1bGUuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW4gQ29tYmluZWQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBtZXJnZUltcG9ydFBsYW5JbnNlcnRSYW5nZSh7IG1vZHVsZVNwZWNpZmllcjogXCIuL3hcIiwgbmFtZXM6IG5ldyBTZXQoKSB9IGFzIG5ldmVyLCB7fSBhcyBuZXZlcik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gbWVyZ2VJbXBvcnRQbGFuSW5zZXJ0UmFuZ2UoXHJcbiAgY29tYmluZWRQbGFuOiBDb21iaW5lZEltcG9ydFBsYW4sXHJcbiAgbWF0Y2g6IFJ1bGVNYXRjaCxcclxuKTogdm9pZCB7XHJcbiAgaWYgKFxyXG4gICAgY29tYmluZWRQbGFuLmFmdGVyUmFuZ2UgPT09IHZvaWQgMCAmJlxyXG4gICAgbWF0Y2guaW1wb3J0UGxhbi5pbnNlcnQ/LmFmdGVyUmFuZ2UgIT09IHZvaWQgMFxyXG4gICkge1xyXG4gICAgY29tYmluZWRQbGFuLmFmdGVyUmFuZ2UgPSBtYXRjaC5pbXBvcnRQbGFuLmluc2VydC5hZnRlclJhbmdlO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIE1lcmdlcyBkaXNjb3ZlcmVkIGltcG9ydCBuYW1lcyBmb3IgYSBtb2R1bGUuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW4gQ29tYmluZWQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIG5hbWVzIEFkZGl0aW9uYWwgaW1wb3J0IG5hbWVzLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIG1lcmdlSW1wb3J0UGxhbk5hbWVzKHsgbW9kdWxlU3BlY2lmaWVyOiBcIi4veFwiLCBuYW1lczogbmV3IFNldCgpIH0gYXMgbmV2ZXIsIFtcImFcIl0pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIG1lcmdlSW1wb3J0UGxhbk5hbWVzKFxyXG4gIGNvbWJpbmVkUGxhbjogQ29tYmluZWRJbXBvcnRQbGFuLFxyXG4gIG5hbWVzOiBzdHJpbmdbXSxcclxuKTogdm9pZCB7XHJcbiAgZm9yIChjb25zdCBuYW1lIG9mIG5hbWVzKSB7XHJcbiAgICBjb21iaW5lZFBsYW4ubmFtZXMuYWRkKG5hbWUpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIE1lcmdlcyB0aGUgZmlyc3QgZGlzY292ZXJlZCB1cGRhdGUgcGxhbiBmb3IgYSBtb2R1bGUuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW4gQ29tYmluZWQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBtZXJnZUltcG9ydFBsYW5VcGRhdGUoeyBtb2R1bGVTcGVjaWZpZXI6IFwiLi94XCIsIG5hbWVzOiBuZXcgU2V0KCkgfSBhcyBuZXZlciwge30gYXMgbmV2ZXIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIG1lcmdlSW1wb3J0UGxhblVwZGF0ZShcclxuICBjb21iaW5lZFBsYW46IENvbWJpbmVkSW1wb3J0UGxhbixcclxuICBtYXRjaDogUnVsZU1hdGNoLFxyXG4pOiB2b2lkIHtcclxuICBpZiAoY29tYmluZWRQbGFuLnVwZGF0ZSA9PT0gdm9pZCAwICYmIG1hdGNoLmltcG9ydFBsYW4udXBkYXRlICE9PSB2b2lkIDApIHtcclxuICAgIGNvbWJpbmVkUGxhbi51cGRhdGUgPSBtYXRjaC5pbXBvcnRQbGFuLnVwZGF0ZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IGJ1aWxkQ29tYmluZWRJbXBvcnRGaXhlcyB9O1xyXG4iXX0=
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4LWltcG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL3Rlc3RpbmcvcHJlZmVyLXZpLW1vY2tlZC1pbXBvcnQvZml4LWltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFzQmhFOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FDekIsWUFBc0MsRUFDdEMsSUFBd0I7SUFFeEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUUvQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUxRSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbkIsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FDaEUsQ0FBQztJQUNGLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FB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QyxFQUM5QyxDQUFDO1FBQ0QsWUFBWSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDL0QsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsb0JBQW9CLENBQzNCLFlBQWdDLEVBQ2hDLEtBQWU7SUFFZixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHFCQUFxQixDQUM1QixZQUFnQyxFQUNoQyxLQUFnQjtJQUVoQixJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6RSxZQUFZLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQ2hELENBQUM7QUFDSCxDQUFDO0FBRUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IFJhbmdlIH0gZnJvbSBcIi4vbWF0Y2gtaGVscGVyc1wiO1xyXG5pbXBvcnQgdHlwZSB7IFJ1bGVNYXRjaCB9IGZyb20gXCIuL3R5cGVzXCI7XHJcblxyXG5pbXBvcnQgeyBidWlsZEltcG9ydFN0YXRlbWVudCB9IGZyb20gXCIuL2ZpeC1pbXBvcnQtc3RhdGVtZW50c1wiO1xyXG5pbXBvcnQgeyBidWlsZENvbWJpbmVkVXBkYXRlRml4ZXMgfSBmcm9tIFwiLi9maXgtaW1wb3J0LXVwZGF0ZXNcIjtcclxuXHJcbi8qKiBDb21iaW5lZCBpbXBvcnQgd29yayBmb3Igb25lIG1vZHVsZSBhY3Jvc3MgYWxsIG1hdGNoZXMuICovXHJcbmludGVyZmFjZSBDb21iaW5lZEltcG9ydFBsYW4ge1xyXG4gIC8qKiBJbnNlcnQgbG9jYXRpb24gZm9yIGEgbmV3IGltcG9ydC4gKi9cclxuICBhZnRlclJhbmdlPzogUmFuZ2U7XHJcbiAgLyoqIE1vZHVsZSBpbXBvcnRlZCBieSB0aGlzIHBsYW4uICovXHJcbiAgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmc7XHJcbiAgLyoqIE5hbWVkIGltcG9ydHMgcmVxdWlyZWQgZm9yIHRoaXMgbW9kdWxlLiAqL1xyXG4gIG5hbWVzOiBTZXQ8c3RyaW5nPjtcclxuICAvKiogRXhpc3RpbmcgaW1wb3J0IHJlcGxhY2VtZW50IHBsYW4gd2hlbiBwcmVzZW50LiAqL1xyXG4gIHVwZGF0ZT86IE5vbk51bGxhYmxlPFJ1bGVNYXRjaFtcImltcG9ydFBsYW5cIl1bXCJ1cGRhdGVcIl0+O1xyXG59XHJcblxyXG4vKiogSW1wb3J0IHN0YXRlbWVudHMgZ3JvdXBlZCBieSBpbnNlcnRpb24gcG9pbnQuICovXHJcbmludGVyZmFjZSBJbnNlcnRHcm91cCB7XHJcbiAgLyoqIEluc2VydCBsb2NhdGlvbiBmb3IgdGhpcyBncm91cC4gKi9cclxuICBhZnRlclJhbmdlPzogUmFuZ2U7XHJcbiAgLyoqIFN0YXRlbWVudHMgZW1pdHRlZCBhdCB0aGUgc2FtZSBpbnNlcnRpb24gcG9pbnQuICovXHJcbiAgc3RhdGVtZW50czogc3RyaW5nW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRzIG9uZSBpbXBvcnQgc3RhdGVtZW50IHRvIGl0cyBpbnNlcnRpb24gZ3JvdXAuXHJcbiAqIEBwYXJhbSBpbnNlcnRHcm91cHMgSW1wb3J0IHN0YXRlbWVudHMgZ3JvdXBlZCBieSBpbnNlcnRpb24gcG9pbnQuXHJcbiAqIEBwYXJhbSBwbGFuIENvbWJpbmVkIGltcG9ydCBwbGFuIGZvciBvbmUgbW9kdWxlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGFkZEluc2VydFN0YXRlbWVudChuZXcgTWFwKCksIHsgbW9kdWxlU3BlY2lmaWVyOiBcIi4veFwiLCBuYW1lczogbmV3IFNldChbXCJhXCJdKSB9IGFzIG5ldmVyKTtcclxuICogYGBgXHJcbiAqL1xyXG5mdW5jdGlvbiBhZGRJbnNlcnRTdGF0ZW1lbnQoXHJcbiAgaW5zZXJ0R3JvdXBzOiBNYXA8c3RyaW5nLCBJbnNlcnRHcm91cD4sXHJcbiAgcGxhbjogQ29tYmluZWRJbXBvcnRQbGFuLFxyXG4pOiB2b2lkIHtcclxuICBjb25zdCBzb3J0ZWROYW1lcyA9IFsuLi5wbGFuLm5hbWVzXS50b1NvcnRlZCgpO1xyXG5cclxuICBpZiAoc29ydGVkTmFtZXMubGVuZ3RoID09PSAwIHx8IHBsYW4udXBkYXRlICE9PSB2b2lkIDApIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGNvbnN0IGtleSA9IGdldEluc2VydEdyb3VwS2V5KHBsYW4uYWZ0ZXJSYW5nZSk7XHJcbiAgY29uc3QgZ3JvdXAgPSBpbnNlcnRHcm91cHMuZ2V0KGtleSkgPz8gY3JlYXRlSW5zZXJ0R3JvdXAocGxhbi5hZnRlclJhbmdlKTtcclxuXHJcbiAgZ3JvdXAuc3RhdGVtZW50cy5wdXNoKFxyXG4gICAgYnVpbGRJbXBvcnRTdGF0ZW1lbnQocGxhbi5tb2R1bGVTcGVjaWZpZXIsIHZvaWQgMCwgc29ydGVkTmFtZXMpLFxyXG4gICk7XHJcbiAgZ3JvdXAuc3RhdGVtZW50cy5zb3J0KChsZWZ0LCByaWdodCkgPT4gbGVmdC5sb2NhbGVDb21wYXJlKHJpZ2h0KSk7XHJcbiAgaW5zZXJ0R3JvdXBzLnNldChrZXksIGdyb3VwKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEJ1aWxkcyBzaGFyZWQgaW1wb3J0IGZpeGVzIGZvciBldmVyeSBmaWxlIG1hdGNoLlxyXG4gKiBAcGFyYW0gbWF0Y2hlcyBBdXRvZml4IGNvbnRleHRzIHByb2R1Y2VkIGJ5IHRoZSBtYXRjaGVyLlxyXG4gKiBAcGFyYW0gZml4ZXIgRVNMaW50IGZpeGVyLlxyXG4gKiBAcmV0dXJucyBJbXBvcnQgZml4ZXMgZGUtZHVwbGljYXRlZCBieSBtb2R1bGUgYW5kIGluc2VydGlvbiBzaXRlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGZpeGVzID0gYnVpbGRDb21iaW5lZEltcG9ydEZpeGVzKFtdLCB7fSBhcyBuZXZlcik7XHJcbiAqIHZvaWQgZml4ZXM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRDb21iaW5lZEltcG9ydEZpeGVzKFxyXG4gIG1hdGNoZXM6IFJ1bGVNYXRjaFtdLFxyXG4gIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcixcclxuKTogUnVsZS5GaXhbXSB7XHJcbiAgY29uc3QgbmV3bGluZSA9IG1hdGNoZXNbMF0/Lm5ld2xpbmUgPz8gXCJcXG5cIjtcclxuICBjb25zdCBjb21iaW5lZFBsYW5zID0gY29tYmluZUltcG9ydFBsYW5zKG1hdGNoZXMpO1xyXG4gIGNvbnN0IGluc2VydEdyb3VwcyA9IGNvbGxlY3RJbnNlcnRHcm91cHMoY29tYmluZWRQbGFucyk7XHJcblxyXG4gIHJldHVybiBbXHJcbiAgICAuLi5idWlsZENvbWJpbmVkVXBkYXRlRml4ZXMoY29tYmluZWRQbGFucywgZml4ZXIpLFxyXG4gICAgLi4uYnVpbGRJbnNlcnRHcm91cEZpeGVzKGluc2VydEdyb3VwcywgZml4ZXIsIG5ld2xpbmUpLFxyXG4gIF07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCdWlsZHMgZ3JvdXBlZCBpbnNlcnRpb24gZml4ZXMgZm9yIG5ldyBpbXBvcnRzLlxyXG4gKiBAcGFyYW0gaW5zZXJ0R3JvdXBzIEltcG9ydCBzdGF0ZW1lbnRzIGdyb3VwZWQgYnkgaW5zZXJ0aW9uIHNpdGUuXHJcbiAqIEBwYXJhbSBmaXhlciBFU0xpbnQgZml4ZXIuXHJcbiAqIEBwYXJhbSBuZXdsaW5lIFByZWZlcnJlZCBmaWxlIG5ld2xpbmUuXHJcbiAqIEByZXR1cm5zIEluc2VydCBmaXhlcyBmb3IgbmV3IGltcG9ydHMuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZml4ZXMgPSBidWlsZEluc2VydEdyb3VwRml4ZXMobmV3IE1hcCgpLCB7fSBhcyBuZXZlciwgXCJcXG5cIik7XHJcbiAqIHZvaWQgZml4ZXM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRJbnNlcnRHcm91cEZpeGVzKFxyXG4gIGluc2VydEdyb3VwczogTWFwPHN0cmluZywgSW5zZXJ0R3JvdXA+LFxyXG4gIGZpeGVyOiBSdWxlLlJ1bGVGaXhlcixcclxuICBuZXdsaW5lOiBcIlxcblwiIHwgXCJcXHJcXG5cIixcclxuKTogUnVsZS5GaXhbXSB7XHJcbiAgcmV0dXJuIFsuLi5pbnNlcnRHcm91cHMudmFsdWVzKCldLm1hcCgoZ3JvdXApID0+XHJcbiAgICBncm91cC5hZnRlclJhbmdlID09PSB2b2lkIDBcclxuICAgICAgPyBmaXhlci5pbnNlcnRUZXh0QmVmb3JlUmFuZ2UoXHJcbiAgICAgICAgICBbMCwgMF0sXHJcbiAgICAgICAgICBgJHtncm91cC5zdGF0ZW1lbnRzLmpvaW4obmV3bGluZSl9JHtuZXdsaW5lfSR7bmV3bGluZX1gLFxyXG4gICAgICAgIClcclxuICAgICAgOiBmaXhlci5pbnNlcnRUZXh0QWZ0ZXJSYW5nZShcclxuICAgICAgICAgIGdyb3VwLmFmdGVyUmFuZ2UsXHJcbiAgICAgICAgICBgJHtuZXdsaW5lfSR7Z3JvdXAuc3RhdGVtZW50cy5qb2luKG5ld2xpbmUpfWAsXHJcbiAgICAgICAgKSxcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogQ29sbGVjdHMgaW5zZXJ0IGdyb3VwcyBrZXllZCBieSBpbnNlcnRpb24gcG9pbnQuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW5zIENvbWJpbmVkIHBsYW5zIGtleWVkIGJ5IG1vZHVsZSBzcGVjaWZpZXIuXHJcbiAqIEByZXR1cm5zIEltcG9ydCBzdGF0ZW1lbnRzIGdyb3VwZWQgYnkgaW5zZXJ0aW9uIHBvaW50LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGdyb3VwcyA9IGNvbGxlY3RJbnNlcnRHcm91cHMobmV3IE1hcCgpKTtcclxuICogdm9pZCBncm91cHM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29sbGVjdEluc2VydEdyb3VwcyhcclxuICBjb21iaW5lZFBsYW5zOiBNYXA8c3RyaW5nLCBDb21iaW5lZEltcG9ydFBsYW4+LFxyXG4pOiBNYXA8c3RyaW5nLCBJbnNlcnRHcm91cD4ge1xyXG4gIGNvbnN0IGluc2VydEdyb3VwcyA9IG5ldyBNYXA8c3RyaW5nLCBJbnNlcnRHcm91cD4oKTtcclxuXHJcbiAgZm9yIChjb25zdCBwbGFuIG9mIGNvbWJpbmVkUGxhbnMudmFsdWVzKCkpIHtcclxuICAgIGFkZEluc2VydFN0YXRlbWVudChpbnNlcnRHcm91cHMsIHBsYW4pO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGluc2VydEdyb3VwcztcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbWJpbmVzIGltcG9ydCBwbGFucyBhY3Jvc3MgZXZlcnkgZmlsZSBtYXRjaC5cclxuICogQHBhcmFtIG1hdGNoZXMgQXV0b2ZpeCBjb250ZXh0cyBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQHJldHVybnMgQ29tYmluZWQgcGxhbnMga2V5ZWQgYnkgbW9kdWxlIHNwZWNpZmllci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBwbGFucyA9IGNvbWJpbmVJbXBvcnRQbGFucyhbXSk7XHJcbiAqIHZvaWQgcGxhbnM7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY29tYmluZUltcG9ydFBsYW5zKFxyXG4gIG1hdGNoZXM6IFJ1bGVNYXRjaFtdLFxyXG4pOiBNYXA8c3RyaW5nLCBDb21iaW5lZEltcG9ydFBsYW4+IHtcclxuICBjb25zdCBjb21iaW5lZFBsYW5zID0gbmV3IE1hcDxzdHJpbmcsIENvbWJpbmVkSW1wb3J0UGxhbj4oKTtcclxuXHJcbiAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XHJcbiAgICBtZXJnZUltcG9ydFBsYW4oY29tYmluZWRQbGFucywgbWF0Y2gpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNvbWJpbmVkUGxhbnM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIHRoZSBpbml0aWFsIGNvbWJpbmVkIHBsYW4gZm9yIG9uZSBtYXRjaC5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQHJldHVybnMgQ29tYmluZWQgaW1wb3J0IHBsYW4gc2VlZC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBwbGFuID0gY3JlYXRlQ29tYmluZWRJbXBvcnRQbGFuKHsgbW9kdWxlU3BlY2lmaWVyOiBcIi4veFwiLCBpbXBvcnRQbGFuOiB7IG5hbWVzOiBbXSB9IH0gYXMgbmV2ZXIpO1xyXG4gKiB2b2lkIHBsYW47XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlQ29tYmluZWRJbXBvcnRQbGFuKG1hdGNoOiBSdWxlTWF0Y2gpOiBDb21iaW5lZEltcG9ydFBsYW4ge1xyXG4gIGNvbnN0IGNvbWJpbmVkUGxhbjogQ29tYmluZWRJbXBvcnRQbGFuID0ge1xyXG4gICAgbW9kdWxlU3BlY2lmaWVyOiBtYXRjaC5tb2R1bGVTcGVjaWZpZXIsXHJcbiAgICBuYW1lczogbmV3IFNldChtYXRjaC5pbXBvcnRQbGFuLm5hbWVzKSxcclxuICB9O1xyXG5cclxuICBpZiAobWF0Y2guaW1wb3J0UGxhbi5pbnNlcnQ/LmFmdGVyUmFuZ2UgIT09IHZvaWQgMCkge1xyXG4gICAgY29tYmluZWRQbGFuLmFmdGVyUmFuZ2UgPSBtYXRjaC5pbXBvcnRQbGFuLmluc2VydC5hZnRlclJhbmdlO1xyXG4gIH1cclxuXHJcbiAgaWYgKG1hdGNoLmltcG9ydFBsYW4udXBkYXRlICE9PSB2b2lkIDApIHtcclxuICAgIGNvbWJpbmVkUGxhbi51cGRhdGUgPSBtYXRjaC5pbXBvcnRQbGFuLnVwZGF0ZTtcclxuICB9XHJcblxyXG4gIHJldHVybiBjb21iaW5lZFBsYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGFuIGluc2VydGlvbiBncm91cCBmb3Igb25lIGxvY2F0aW9uLlxyXG4gKiBAcGFyYW0gYWZ0ZXJSYW5nZSBJbnNlcnQgbG9jYXRpb24gZm9yIHRoZSBncm91cC5cclxuICogQHJldHVybnMgSW5zZXJ0IGdyb3VwIHNlZWQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZ3JvdXAgPSBjcmVhdGVJbnNlcnRHcm91cCh2b2lkIDApO1xyXG4gKiB2b2lkIGdyb3VwO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNyZWF0ZUluc2VydEdyb3VwKGFmdGVyUmFuZ2U6IFJhbmdlIHwgdW5kZWZpbmVkKTogSW5zZXJ0R3JvdXAge1xyXG4gIHJldHVybiBhZnRlclJhbmdlID09PSB2b2lkIDBcclxuICAgID8geyBzdGF0ZW1lbnRzOiBbXSB9XHJcbiAgICA6IHsgYWZ0ZXJSYW5nZSwgc3RhdGVtZW50czogW10gfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBzdGFibGUga2V5IGZvciBhbiBpbnNlcnQgbG9jYXRpb24uXHJcbiAqIEBwYXJhbSBhZnRlclJhbmdlIEluc2VydCBsb2NhdGlvbiB3aGVuIGEgbmV3IGltcG9ydCBtdXN0IGJlIGluc2VydGVkLlxyXG4gKiBAcmV0dXJucyBTdGFibGUga2V5IGZvciB0aGUgaW5zZXJ0aW9uIHNpdGUuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3Qga2V5ID0gZ2V0SW5zZXJ0R3JvdXBLZXkodm9pZCAwKTtcclxuICogdm9pZCBrZXk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0SW5zZXJ0R3JvdXBLZXkoYWZ0ZXJSYW5nZTogUmFuZ2UgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xyXG4gIHJldHVybiBhZnRlclJhbmdlID09PSB2b2lkIDBcclxuICAgID8gXCJUT1BcIlxyXG4gICAgOiBgJHthZnRlclJhbmdlWzBdLnRvRml4ZWQoMCl9OiR7YWZ0ZXJSYW5nZVsxXS50b0ZpeGVkKDApfWA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBNZXJnZXMgb25lIG1hdGNoIGludG8gdGhlIGNvbWJpbmVkIGltcG9ydC1wbGFuIG1hcC5cclxuICogQHBhcmFtIGNvbWJpbmVkUGxhbnMgQ29tYmluZWQgcGxhbnMga2V5ZWQgYnkgbW9kdWxlIHNwZWNpZmllci5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBtZXJnZUltcG9ydFBsYW4obmV3IE1hcCgpLCB7fSBhcyBuZXZlcik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gbWVyZ2VJbXBvcnRQbGFuKFxyXG4gIGNvbWJpbmVkUGxhbnM6IE1hcDxzdHJpbmcsIENvbWJpbmVkSW1wb3J0UGxhbj4sXHJcbiAgbWF0Y2g6IFJ1bGVNYXRjaCxcclxuKTogdm9pZCB7XHJcbiAgY29uc3QgY29tYmluZWRQbGFuID1cclxuICAgIGNvbWJpbmVkUGxhbnMuZ2V0KG1hdGNoLm1vZHVsZVNwZWNpZmllcikgPz8gY3JlYXRlQ29tYmluZWRJbXBvcnRQbGFuKG1hdGNoKTtcclxuXHJcbiAgbWVyZ2VJbXBvcnRQbGFuSW5zZXJ0UmFuZ2UoY29tYmluZWRQbGFuLCBtYXRjaCk7XHJcbiAgbWVyZ2VJbXBvcnRQbGFuTmFtZXMoY29tYmluZWRQbGFuLCBtYXRjaC5pbXBvcnRQbGFuLm5hbWVzKTtcclxuICBtZXJnZUltcG9ydFBsYW5VcGRhdGUoY29tYmluZWRQbGFuLCBtYXRjaCk7XHJcbiAgY29tYmluZWRQbGFucy5zZXQobWF0Y2gubW9kdWxlU3BlY2lmaWVyLCBjb21iaW5lZFBsYW4pO1xyXG59XHJcblxyXG4vKipcclxuICogTWVyZ2VzIHRoZSBmaXJzdCBkaXNjb3ZlcmVkIGluc2VydCByYW5nZSBmb3IgYSBtb2R1bGUuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW4gQ29tYmluZWQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBtZXJnZUltcG9ydFBsYW5JbnNlcnRSYW5nZSh7IG1vZHVsZVNwZWNpZmllcjogXCIuL3hcIiwgbmFtZXM6IG5ldyBTZXQoKSB9IGFzIG5ldmVyLCB7fSBhcyBuZXZlcik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gbWVyZ2VJbXBvcnRQbGFuSW5zZXJ0UmFuZ2UoXHJcbiAgY29tYmluZWRQbGFuOiBDb21iaW5lZEltcG9ydFBsYW4sXHJcbiAgbWF0Y2g6IFJ1bGVNYXRjaCxcclxuKTogdm9pZCB7XHJcbiAgaWYgKFxyXG4gICAgY29tYmluZWRQbGFuLmFmdGVyUmFuZ2UgPT09IHZvaWQgMCAmJlxyXG4gICAgbWF0Y2guaW1wb3J0UGxhbi5pbnNlcnQ/LmFmdGVyUmFuZ2UgIT09IHZvaWQgMFxyXG4gICkge1xyXG4gICAgY29tYmluZWRQbGFuLmFmdGVyUmFuZ2UgPSBtYXRjaC5pbXBvcnRQbGFuLmluc2VydC5hZnRlclJhbmdlO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIE1lcmdlcyBkaXNjb3ZlcmVkIGltcG9ydCBuYW1lcyBmb3IgYSBtb2R1bGUuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW4gQ29tYmluZWQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIG5hbWVzIEFkZGl0aW9uYWwgaW1wb3J0IG5hbWVzLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIG1lcmdlSW1wb3J0UGxhbk5hbWVzKHsgbW9kdWxlU3BlY2lmaWVyOiBcIi4veFwiLCBuYW1lczogbmV3IFNldCgpIH0gYXMgbmV2ZXIsIFtcImFcIl0pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIG1lcmdlSW1wb3J0UGxhbk5hbWVzKFxyXG4gIGNvbWJpbmVkUGxhbjogQ29tYmluZWRJbXBvcnRQbGFuLFxyXG4gIG5hbWVzOiBzdHJpbmdbXSxcclxuKTogdm9pZCB7XHJcbiAgZm9yIChjb25zdCBuYW1lIG9mIG5hbWVzKSB7XHJcbiAgICBjb21iaW5lZFBsYW4ubmFtZXMuYWRkKG5hbWUpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIE1lcmdlcyB0aGUgZmlyc3QgZGlzY292ZXJlZCB1cGRhdGUgcGxhbiBmb3IgYSBtb2R1bGUuXHJcbiAqIEBwYXJhbSBjb21iaW5lZFBsYW4gQ29tYmluZWQgcGxhbiBmb3Igb25lIG1vZHVsZS5cclxuICogQHBhcmFtIG1hdGNoIEF1dG9maXggY29udGV4dCBwcm9kdWNlZCBieSB0aGUgbWF0Y2hlci5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBtZXJnZUltcG9ydFBsYW5VcGRhdGUoeyBtb2R1bGVTcGVjaWZpZXI6IFwiLi94XCIsIG5hbWVzOiBuZXcgU2V0KCkgfSBhcyBuZXZlciwge30gYXMgbmV2ZXIpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIG1lcmdlSW1wb3J0UGxhblVwZGF0ZShcclxuICBjb21iaW5lZFBsYW46IENvbWJpbmVkSW1wb3J0UGxhbixcclxuICBtYXRjaDogUnVsZU1hdGNoLFxyXG4pOiB2b2lkIHtcclxuICBpZiAoY29tYmluZWRQbGFuLnVwZGF0ZSA9PT0gdm9pZCAwICYmIG1hdGNoLmltcG9ydFBsYW4udXBkYXRlICE9PSB2b2lkIDApIHtcclxuICAgIGNvbWJpbmVkUGxhbi51cGRhdGUgPSBtYXRjaC5pbXBvcnRQbGFuLnVwZGF0ZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IGJ1aWxkQ29tYmluZWRJbXBvcnRGaXhlcyB9O1xyXG4iXX0=
|
|
@@ -1,17 +1,5 @@
|
|
|
1
1
|
import type { Rule } from "eslint";
|
|
2
2
|
import type { RuleMatch } from "./types.js";
|
|
3
|
-
/**
|
|
4
|
-
* Builds all autofix operations for a single match.
|
|
5
|
-
* @param match Autofix context produced by the matcher.
|
|
6
|
-
* @param fixer ESLint fixer.
|
|
7
|
-
* @returns Combined fix list.
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* const fixes = buildFix({} as never, {} as never);
|
|
11
|
-
* void fixes;
|
|
12
|
-
* ```
|
|
13
|
-
*/
|
|
14
|
-
declare function buildFix(match: RuleMatch, fixer: Rule.RuleFixer): Rule.Fix[];
|
|
15
3
|
/**
|
|
16
4
|
* Builds all autofix operations for every match in a file.
|
|
17
5
|
* @param matches Autofix contexts produced by the matcher.
|
|
@@ -24,5 +12,5 @@ declare function buildFix(match: RuleMatch, fixer: Rule.RuleFixer): Rule.Fix[];
|
|
|
24
12
|
* ```
|
|
25
13
|
*/
|
|
26
14
|
declare function buildFixes(matches: RuleMatch[], fixer: Rule.RuleFixer): Rule.Fix[];
|
|
27
|
-
export {
|
|
15
|
+
export { buildFixes };
|
|
28
16
|
//# sourceMappingURL=fix.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/fix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../../../src/domain/testing/prefer-vi-mocked-import/fix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAqCzC;;;;;;;;;;GAUG;AACH,iBAAS,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAK3E;AA+ID,OAAO,EAAE,UAAU,EAAE,CAAC"}
|