@codeperfect/eslint-plugin 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/.tsbuildinfo +1 -1
- package/dist/application/custom-rules.d.ts +8 -8
- package/dist/application/custom-rules.js +14 -14
- package/dist/application/index.d.ts +1 -1
- package/dist/application/index.d.ts.map +1 -1
- package/dist/application/index.js +2 -2
- package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts +3 -4
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +5 -3
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +17 -7
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +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 +608 -0
- package/dist/domain/architecture/no-unused-exports/rule.d.ts +5 -0
- package/dist/domain/architecture/no-unused-exports/rule.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/rule.js +82 -0
- package/dist/domain/architecture/no-unused-exports/types.d.ts +32 -0
- package/dist/domain/architecture/no-unused-exports/types.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/types.js +2 -0
- package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
- package/dist/domain/core/no-multiple-declarators/rule.js +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 +21 -30
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-unused-exports/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAkBnC,8DAA8D;AAC9D,QAAA,MAAM,mBAAmB,EAAE,IAAI,CAAC,UAkG/B,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { DEFAULT_PUBLIC_API_FILES, DEFAULT_TEST_FILE_PATTERNS, getOptions, isLintableFilename, isPublicApiFile, } from "./no-unused-exports-options.js";
|
|
3
|
+
import { classifyExportUsage, collectCrossFileUsages, collectExportedElements, getTypeScriptProgram, } from "./no-unused-exports-utilities.js";
|
|
4
|
+
/** ESLint rule flagging exports unused in production code. */
|
|
5
|
+
const noUnusedExportsRule = {
|
|
6
|
+
create(context) {
|
|
7
|
+
const state = getOptions(context.options);
|
|
8
|
+
const filename = context.filename;
|
|
9
|
+
if (!isLintableFilename(filename)) {
|
|
10
|
+
return {};
|
|
11
|
+
}
|
|
12
|
+
const program = getTypeScriptProgram(context);
|
|
13
|
+
if (program === void 0) {
|
|
14
|
+
return {};
|
|
15
|
+
}
|
|
16
|
+
const projectRoot = path.resolve(program.getCurrentDirectory());
|
|
17
|
+
if (isPublicApiFile(filename, state, projectRoot)) {
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
Program(node) {
|
|
22
|
+
const exportedElements = collectExportedElements(node.body);
|
|
23
|
+
if (exportedElements.length === 0) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
for (const element of exportedElements) {
|
|
27
|
+
const usageClassification = classifyExportUsage(collectCrossFileUsages(program, filename, state, projectRoot, element));
|
|
28
|
+
if (usageClassification === "production") {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
context.report({
|
|
32
|
+
data: { exportedName: element.exportedName },
|
|
33
|
+
messageId: usageClassification === "test-only"
|
|
34
|
+
? "usedOnlyInTests"
|
|
35
|
+
: "unusedExport",
|
|
36
|
+
node: element.node,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
},
|
|
42
|
+
meta: {
|
|
43
|
+
defaultOptions: [
|
|
44
|
+
{
|
|
45
|
+
publicApiFiles: [...DEFAULT_PUBLIC_API_FILES],
|
|
46
|
+
testFilePatterns: [...DEFAULT_TEST_FILE_PATTERNS],
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
docs: {
|
|
50
|
+
description: "Disallow exports that are unused or consumed only by test files.",
|
|
51
|
+
recommended: false,
|
|
52
|
+
url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/no-unused-exports.md",
|
|
53
|
+
},
|
|
54
|
+
messages: {
|
|
55
|
+
unusedExport: "Export '{{exportedName}}' is never consumed by any file in the project.",
|
|
56
|
+
usedOnlyInTests: "Export '{{exportedName}}' is consumed only by test files.",
|
|
57
|
+
},
|
|
58
|
+
schema: [
|
|
59
|
+
{
|
|
60
|
+
additionalProperties: false,
|
|
61
|
+
properties: {
|
|
62
|
+
publicApiFiles: {
|
|
63
|
+
description: "File globs that define public API export surfaces.",
|
|
64
|
+
items: { type: "string" },
|
|
65
|
+
minItems: 1,
|
|
66
|
+
type: "array",
|
|
67
|
+
},
|
|
68
|
+
testFilePatterns: {
|
|
69
|
+
description: "File globs treated as tests when classifying export consumers.",
|
|
70
|
+
items: { type: "string" },
|
|
71
|
+
minItems: 1,
|
|
72
|
+
type: "array",
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
type: "object",
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
type: "problem",
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
export { noUnusedExportsRule };
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vYXJjaGl0ZWN0dXJlL25vLXVudXNlZC1leHBvcnRzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsMEJBQTBCLEVBQzFCLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsZUFBZSxHQUNoQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixvQkFBb0IsR0FDckIsTUFBTSwrQkFBK0IsQ0FBQztBQUV2Qyw4REFBOEQ7QUFDOUQsTUFBTSxtQkFBbUIsR0FBb0I7SUFDM0MsTUFBTSxDQUFDLE9BQXlCO1FBQzlCLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUVsQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU5QyxJQUFJLE9BQU8sS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztRQUVoRSxJQUFJLGVBQWUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDbEQsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsT0FBTztZQUNMLE9BQU8sQ0FBQyxJQUFJO2dCQUNWLE1BQU0sZ0JBQWdCLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUU1RCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDbEMsT0FBTztnQkFDVCxDQUFDO2dCQUVELEtBQUssTUFBTSxPQUFPLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztvQkFDdkMsTUFBTSxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FDN0Msc0JBQXNCLENBQ3BCLE9BQU8sRUFDUCxRQUFRLEVBQ1IsS0FBSyxFQUNMLFdBQVcsRUFDWCxPQUFPLENBQ1IsQ0FDRixDQUFDO29CQUVGLElBQUksbUJBQW1CLEtBQUssWUFBWSxFQUFFLENBQUM7d0JBQ3pDLFNBQVM7b0JBQ1gsQ0FBQztvQkFFRCxPQUFPLENBQUMsTUFBTSxDQUFDO3dCQUNiLElBQUksRUFBRSxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWSxFQUFFO3dCQUM1QyxTQUFTLEVBQ1AsbUJBQW1CLEtBQUssV0FBVzs0QkFDakMsQ0FBQyxDQUFDLGlCQUFpQjs0QkFDbkIsQ0FBQyxDQUFDLGNBQWM7d0JBQ3BCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtxQkFDbkIsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLEVBQUU7UUFDSixjQUFjLEVBQUU7WUFDZDtnQkFDRSxjQUFjLEVBQUUsQ0FBQyxHQUFHLHdCQUF3QixDQUFDO2dCQUM3QyxnQkFBZ0IsRUFBRSxDQUFDLEdBQUcsMEJBQTBCLENBQUM7YUFDbEQ7U0FDRjtRQUNELElBQUksRUFBRTtZQUNKLFdBQVcsRUFDVCxrRUFBa0U7WUFDcEUsV0FBVyxFQUFFLEtBQUs7WUFDbEIsR0FBRyxFQUFFLG9GQUFvRjtTQUMxRjtRQUNELFFBQVEsRUFBRTtZQUNSLFlBQVksRUFDVix5RUFBeUU7WUFDM0UsZUFBZSxFQUNiLDJEQUEyRDtTQUM5RDtRQUNELE1BQU0sRUFBRTtZQUNOO2dCQUNFLG9CQUFvQixFQUFFLEtBQUs7Z0JBQzNCLFVBQVUsRUFBRTtvQkFDVixjQUFjLEVBQUU7d0JBQ2QsV0FBVyxFQUFFLG9EQUFvRDt3QkFDakUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTt3QkFDekIsUUFBUSxFQUFFLENBQUM7d0JBQ1gsSUFBSSxFQUFFLE9BQU87cUJBQ2Q7b0JBQ0QsZ0JBQWdCLEVBQUU7d0JBQ2hCLFdBQVcsRUFDVCxnRUFBZ0U7d0JBQ2xFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7d0JBQ3pCLFFBQVEsRUFBRSxDQUFDO3dCQUNYLElBQUksRUFBRSxPQUFPO3FCQUNkO2lCQUNGO2dCQUNELElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtRQUNELElBQUksRUFBRSxTQUFTO0tBQ2hCO0NBQ0YsQ0FBQztBQUVGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5cbmltcG9ydCB7XG4gIERFRkFVTFRfUFVCTElDX0FQSV9GSUxFUyxcbiAgREVGQVVMVF9URVNUX0ZJTEVfUEFUVEVSTlMsXG4gIGdldE9wdGlvbnMsXG4gIGlzTGludGFibGVGaWxlbmFtZSxcbiAgaXNQdWJsaWNBcGlGaWxlLFxufSBmcm9tIFwiLi9uby11bnVzZWQtZXhwb3J0cy1vcHRpb25zXCI7XG5pbXBvcnQge1xuICBjbGFzc2lmeUV4cG9ydFVzYWdlLFxuICBjb2xsZWN0Q3Jvc3NGaWxlVXNhZ2VzLFxuICBjb2xsZWN0RXhwb3J0ZWRFbGVtZW50cyxcbiAgZ2V0VHlwZVNjcmlwdFByb2dyYW0sXG59IGZyb20gXCIuL25vLXVudXNlZC1leHBvcnRzLXV0aWxpdGllc1wiO1xuXG4vKiogRVNMaW50IHJ1bGUgZmxhZ2dpbmcgZXhwb3J0cyB1bnVzZWQgaW4gcHJvZHVjdGlvbiBjb2RlLiAqL1xuY29uc3Qgbm9VbnVzZWRFeHBvcnRzUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyIHtcbiAgICBjb25zdCBzdGF0ZSA9IGdldE9wdGlvbnMoY29udGV4dC5vcHRpb25zKTtcbiAgICBjb25zdCBmaWxlbmFtZSA9IGNvbnRleHQuZmlsZW5hbWU7XG5cbiAgICBpZiAoIWlzTGludGFibGVGaWxlbmFtZShmaWxlbmFtZSkpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9ncmFtID0gZ2V0VHlwZVNjcmlwdFByb2dyYW0oY29udGV4dCk7XG5cbiAgICBpZiAocHJvZ3JhbSA9PT0gdm9pZCAwKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29uc3QgcHJvamVjdFJvb3QgPSBwYXRoLnJlc29sdmUocHJvZ3JhbS5nZXRDdXJyZW50RGlyZWN0b3J5KCkpO1xuXG4gICAgaWYgKGlzUHVibGljQXBpRmlsZShmaWxlbmFtZSwgc3RhdGUsIHByb2plY3RSb290KSkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBQcm9ncmFtKG5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXhwb3J0ZWRFbGVtZW50cyA9IGNvbGxlY3RFeHBvcnRlZEVsZW1lbnRzKG5vZGUuYm9keSk7XG5cbiAgICAgICAgaWYgKGV4cG9ydGVkRWxlbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIGV4cG9ydGVkRWxlbWVudHMpIHtcbiAgICAgICAgICBjb25zdCB1c2FnZUNsYXNzaWZpY2F0aW9uID0gY2xhc3NpZnlFeHBvcnRVc2FnZShcbiAgICAgICAgICAgIGNvbGxlY3RDcm9zc0ZpbGVVc2FnZXMoXG4gICAgICAgICAgICAgIHByb2dyYW0sXG4gICAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgICAgcHJvamVjdFJvb3QsXG4gICAgICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAodXNhZ2VDbGFzc2lmaWNhdGlvbiA9PT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIGRhdGE6IHsgZXhwb3J0ZWROYW1lOiBlbGVtZW50LmV4cG9ydGVkTmFtZSB9LFxuICAgICAgICAgICAgbWVzc2FnZUlkOlxuICAgICAgICAgICAgICB1c2FnZUNsYXNzaWZpY2F0aW9uID09PSBcInRlc3Qtb25seVwiXG4gICAgICAgICAgICAgICAgPyBcInVzZWRPbmx5SW5UZXN0c1wiXG4gICAgICAgICAgICAgICAgOiBcInVudXNlZEV4cG9ydFwiLFxuICAgICAgICAgICAgbm9kZTogZWxlbWVudC5ub2RlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkZWZhdWx0T3B0aW9uczogW1xuICAgICAge1xuICAgICAgICBwdWJsaWNBcGlGaWxlczogWy4uLkRFRkFVTFRfUFVCTElDX0FQSV9GSUxFU10sXG4gICAgICAgIHRlc3RGaWxlUGF0dGVybnM6IFsuLi5ERUZBVUxUX1RFU1RfRklMRV9QQVRURVJOU10sXG4gICAgICB9LFxuICAgIF0sXG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiRGlzYWxsb3cgZXhwb3J0cyB0aGF0IGFyZSB1bnVzZWQgb3IgY29uc3VtZWQgb25seSBieSB0ZXN0IGZpbGVzLlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvbm8tdW51c2VkLWV4cG9ydHMubWRcIixcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICB1bnVzZWRFeHBvcnQ6XG4gICAgICAgIFwiRXhwb3J0ICd7e2V4cG9ydGVkTmFtZX19JyBpcyBuZXZlciBjb25zdW1lZCBieSBhbnkgZmlsZSBpbiB0aGUgcHJvamVjdC5cIixcbiAgICAgIHVzZWRPbmx5SW5UZXN0czpcbiAgICAgICAgXCJFeHBvcnQgJ3t7ZXhwb3J0ZWROYW1lfX0nIGlzIGNvbnN1bWVkIG9ubHkgYnkgdGVzdCBmaWxlcy5cIixcbiAgICB9LFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBwdWJsaWNBcGlGaWxlczoge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRmlsZSBnbG9icyB0aGF0IGRlZmluZSBwdWJsaWMgQVBJIGV4cG9ydCBzdXJmYWNlcy5cIixcbiAgICAgICAgICAgIGl0ZW1zOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGVzdEZpbGVQYXR0ZXJuczoge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiRmlsZSBnbG9icyB0cmVhdGVkIGFzIHRlc3RzIHdoZW4gY2xhc3NpZnlpbmcgZXhwb3J0IGNvbnN1bWVycy5cIixcbiAgICAgICAgICAgIGl0ZW1zOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICB9LFxuICAgIF0sXG4gICAgdHlwZTogXCJwcm9ibGVtXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyBub1VudXNlZEV4cG9ydHNSdWxlIH07XG4iXX0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { AST } from "eslint";
|
|
2
|
+
/** One exported element discovered in the current source file. */
|
|
3
|
+
export interface ExportedElement {
|
|
4
|
+
/** Exported name as seen by importers. */
|
|
5
|
+
exportedName: string;
|
|
6
|
+
/** Whether the exported entity is type-only or value-capable. */
|
|
7
|
+
exportKind: ExportKind;
|
|
8
|
+
/** AST node used for diagnostics. */
|
|
9
|
+
node: AST.Program["body"][number];
|
|
10
|
+
}
|
|
11
|
+
/** Export category used when classifying concrete usages. */
|
|
12
|
+
export type ExportKind = "type" | "value";
|
|
13
|
+
/** One concrete usage found in another file. */
|
|
14
|
+
export interface ExportUsage {
|
|
15
|
+
/** Whether the usage comes from a test file. */
|
|
16
|
+
isTestFile: boolean;
|
|
17
|
+
}
|
|
18
|
+
/** Rule options for no-unused-exports. */
|
|
19
|
+
export interface NoUnusedExportsOptions {
|
|
20
|
+
/** File globs that define public API export surfaces. */
|
|
21
|
+
publicApiFiles?: string[];
|
|
22
|
+
/** File globs treated as test files when classifying usages. */
|
|
23
|
+
testFilePatterns?: string[];
|
|
24
|
+
}
|
|
25
|
+
/** Normalized state used by the rule implementation. */
|
|
26
|
+
export interface NoUnusedExportsState {
|
|
27
|
+
/** File globs that define public API export surfaces. */
|
|
28
|
+
publicApiFiles: string[];
|
|
29
|
+
/** File globs treated as test files when classifying usages. */
|
|
30
|
+
testFilePatterns: string[];
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-unused-exports/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAElC,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IAErB,iEAAiE;IACjE,UAAU,EAAE,UAAU,CAAC;IAEvB,qCAAqC;IACrC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;CACnC;AAED,6DAA6D;AAC7D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAE1C,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,0CAA0C;AAC1C,MAAM,WAAW,sBAAsB;IACrC,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,wDAAwD;AACxD,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB,gEAAgE;IAChE,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2FyY2hpdGVjdHVyZS9uby11bnVzZWQtZXhwb3J0cy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBU1QgfSBmcm9tIFwiZXNsaW50XCI7XG5cbi8qKiBPbmUgZXhwb3J0ZWQgZWxlbWVudCBkaXNjb3ZlcmVkIGluIHRoZSBjdXJyZW50IHNvdXJjZSBmaWxlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRlZEVsZW1lbnQge1xuICAvKiogRXhwb3J0ZWQgbmFtZSBhcyBzZWVuIGJ5IGltcG9ydGVycy4gKi9cbiAgZXhwb3J0ZWROYW1lOiBzdHJpbmc7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGV4cG9ydGVkIGVudGl0eSBpcyB0eXBlLW9ubHkgb3IgdmFsdWUtY2FwYWJsZS4gKi9cbiAgZXhwb3J0S2luZDogRXhwb3J0S2luZDtcblxuICAvKiogQVNUIG5vZGUgdXNlZCBmb3IgZGlhZ25vc3RpY3MuICovXG4gIG5vZGU6IEFTVC5Qcm9ncmFtW1wiYm9keVwiXVtudW1iZXJdO1xufVxuXG4vKiogRXhwb3J0IGNhdGVnb3J5IHVzZWQgd2hlbiBjbGFzc2lmeWluZyBjb25jcmV0ZSB1c2FnZXMuICovXG5leHBvcnQgdHlwZSBFeHBvcnRLaW5kID0gXCJ0eXBlXCIgfCBcInZhbHVlXCI7XG5cbi8qKiBPbmUgY29uY3JldGUgdXNhZ2UgZm91bmQgaW4gYW5vdGhlciBmaWxlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRVc2FnZSB7XG4gIC8qKiBXaGV0aGVyIHRoZSB1c2FnZSBjb21lcyBmcm9tIGEgdGVzdCBmaWxlLiAqL1xuICBpc1Rlc3RGaWxlOiBib29sZWFuO1xufVxuXG4vKiogUnVsZSBvcHRpb25zIGZvciBuby11bnVzZWQtZXhwb3J0cy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm9VbnVzZWRFeHBvcnRzT3B0aW9ucyB7XG4gIC8qKiBGaWxlIGdsb2JzIHRoYXQgZGVmaW5lIHB1YmxpYyBBUEkgZXhwb3J0IHN1cmZhY2VzLiAqL1xuICBwdWJsaWNBcGlGaWxlcz86IHN0cmluZ1tdO1xuXG4gIC8qKiBGaWxlIGdsb2JzIHRyZWF0ZWQgYXMgdGVzdCBmaWxlcyB3aGVuIGNsYXNzaWZ5aW5nIHVzYWdlcy4gKi9cbiAgdGVzdEZpbGVQYXR0ZXJucz86IHN0cmluZ1tdO1xufVxuXG4vKiogTm9ybWFsaXplZCBzdGF0ZSB1c2VkIGJ5IHRoZSBydWxlIGltcGxlbWVudGF0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb1VudXNlZEV4cG9ydHNTdGF0ZSB7XG4gIC8qKiBGaWxlIGdsb2JzIHRoYXQgZGVmaW5lIHB1YmxpYyBBUEkgZXhwb3J0IHN1cmZhY2VzLiAqL1xuICBwdWJsaWNBcGlGaWxlczogc3RyaW5nW107XG5cbiAgLyoqIEZpbGUgZ2xvYnMgdHJlYXRlZCBhcyB0ZXN0IGZpbGVzIHdoZW4gY2xhc3NpZnlpbmcgdXNhZ2VzLiAqL1xuICB0ZXN0RmlsZVBhdHRlcm5zOiBzdHJpbmdbXTtcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-multiple-declarators/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-multiple-declarators/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA+UnC,4EAA4E;AAC5E,QAAA,MAAM,yBAAyB,EAAE,IAAI,CAAC,UAuBrC,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { hasFixData, hasRange } from "./types.js";
|
|
2
2
|
/** Matches comment syntax between declarators. */
|
|
3
3
|
const commentPattern = /\/\/|\/\*/u;
|
|
4
|
+
/** Declaration kinds that can be safely split into standalone statements. */
|
|
5
|
+
const fixableDeclarationKinds = new Set(["const", "let", "var"]);
|
|
4
6
|
/** Loop parent types whose initializers cannot be safely split. */
|
|
5
|
-
const loopParentTypes = new Set([
|
|
7
|
+
const loopParentTypes = new Set([
|
|
8
|
+
"ForAwaitOfStatement",
|
|
9
|
+
"ForInStatement",
|
|
10
|
+
"ForOfStatement",
|
|
11
|
+
]);
|
|
6
12
|
/**
|
|
7
13
|
* Gets the source access wrapper from the ESLint context.
|
|
8
14
|
* @param context Rule execution context.
|
|
@@ -23,6 +29,16 @@ const getSourceCode = (context) => context.sourceCode;
|
|
|
23
29
|
* ```
|
|
24
30
|
*/
|
|
25
31
|
const getSourceText = (sourceCode) => typeof sourceCode.text === "string" ? sourceCode.text : sourceCode.getText();
|
|
32
|
+
/**
|
|
33
|
+
* Gets the line separator style used by the current source file.
|
|
34
|
+
* @param sourceText Full source text.
|
|
35
|
+
* @returns File-native line separator sequence.
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* const lineSeparator = getLineSeparator("const a = 1;\r\nconst b = 2;");
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
const getLineSeparator = (sourceText) => sourceText.includes("\r\n") ? "\r\n" : "\n";
|
|
26
42
|
/**
|
|
27
43
|
* Determines whether a declaration is used as a loop initializer.
|
|
28
44
|
* @param node Declaration node to inspect.
|
|
@@ -53,6 +69,26 @@ const isLoopInitializer = (node) => {
|
|
|
53
69
|
*/
|
|
54
70
|
const isWrappedExport = (node) => node.parent?.type === "ExportDefaultDeclaration" ||
|
|
55
71
|
node.parent?.type === "ExportNamedDeclaration";
|
|
72
|
+
/**
|
|
73
|
+
* Determines whether a declaration is ambient in TypeScript source.
|
|
74
|
+
* @param node Declaration node to inspect.
|
|
75
|
+
* @returns Whether the declaration is marked with `declare`.
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* const ambient = isTypeScriptAmbientDeclaration(node);
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
const isTypeScriptAmbientDeclaration = (node) => node.declare === true;
|
|
82
|
+
/**
|
|
83
|
+
* Determines whether a declaration kind is safe to rewrite.
|
|
84
|
+
* @param node Declaration node to inspect.
|
|
85
|
+
* @returns Whether the declaration kind supports conservative split fixes.
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* const safeKind = hasFixableDeclarationKind(node);
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
const hasFixableDeclarationKind = (node) => hasFixData(node) && fixableDeclarationKinds.has(node.kind);
|
|
56
92
|
/**
|
|
57
93
|
* Gets the indentation for the line containing a declaration.
|
|
58
94
|
* @param sourceText Full source text.
|
|
@@ -66,7 +102,15 @@ const isWrappedExport = (node) => node.parent?.type === "ExportDefaultDeclaratio
|
|
|
66
102
|
const getLineIndent = (sourceText, start) => {
|
|
67
103
|
const lineStart = sourceText.lastIndexOf("\n", start - 1) + 1;
|
|
68
104
|
const linePrefix = sourceText.slice(lineStart, start);
|
|
69
|
-
|
|
105
|
+
let indentLength = 0;
|
|
106
|
+
while (indentLength < linePrefix.length) {
|
|
107
|
+
const currentCharacter = linePrefix[indentLength];
|
|
108
|
+
if (currentCharacter !== "\t" && currentCharacter !== " ") {
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
indentLength += 1;
|
|
112
|
+
}
|
|
113
|
+
return linePrefix.slice(0, indentLength);
|
|
70
114
|
};
|
|
71
115
|
/**
|
|
72
116
|
* Detects whether comments appear between declarators.
|
|
@@ -109,6 +153,10 @@ const canFix = (node, declarations, sourceText) => {
|
|
|
109
153
|
if (!hasFixData(node)) {
|
|
110
154
|
return false;
|
|
111
155
|
}
|
|
156
|
+
if (!hasFixableDeclarationKind(node) ||
|
|
157
|
+
isTypeScriptAmbientDeclaration(node)) {
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
112
160
|
if (isLoopInitializer(node) || isWrappedExport(node)) {
|
|
113
161
|
return false;
|
|
114
162
|
}
|
|
@@ -128,9 +176,10 @@ const canFix = (node, declarations, sourceText) => {
|
|
|
128
176
|
const buildReplacement = (node, declarations, sourceCode) => {
|
|
129
177
|
const sourceText = getSourceText(sourceCode);
|
|
130
178
|
const indent = getLineIndent(sourceText, node.range[0]);
|
|
179
|
+
const lineSeparator = getLineSeparator(sourceText);
|
|
131
180
|
return declarations
|
|
132
181
|
.map((declaration) => `${node.kind} ${sourceCode.getText(declaration)};`)
|
|
133
|
-
.join(
|
|
182
|
+
.join(`${lineSeparator}${indent}`);
|
|
134
183
|
};
|
|
135
184
|
/**
|
|
136
185
|
* Collects ranged declarators when every declarator exposes a range.
|
|
@@ -219,4 +268,4 @@ const noMultipleDeclaratorsRule = {
|
|
|
219
268
|
},
|
|
220
269
|
};
|
|
221
270
|
export { noMultipleDeclaratorsRule };
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vY29yZS9uby1tdWx0aXBsZS1kZWNsYXJhdG9ycy9ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRS9DLGtEQUFrRDtBQUNsRCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUM7QUFDcEMsbUVBQW1FO0FBQ25FLE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0FBRXRFOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUF5QixFQUFvQixFQUFFLENBQ3BFLE9BQU8sQ0FBQyxVQUF5QyxDQUFDO0FBRXBEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FBQyxVQUE0QixFQUFVLEVBQUUsQ0FDN0QsT0FBTyxVQUFVLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBRS9FOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLElBQTZCLEVBQVcsRUFBRTtJQUNuRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBRXhCLElBQUksTUFBTSxFQUFFLElBQUksS0FBSyxjQUFjLEVBQUUsQ0FBQztRQUNwQyxPQUFRLE1BQTJCLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxNQUFNLEtBQUssS0FBSyxDQUFDLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMxRCxPQUFRLE1BQWlDLENBQUMsSUFBSSxLQUFLLElBQUks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RSx5QkFBeUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgdHlwZSB7XG4gIEZpeGFibGVWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSxcbiAgRm9ySW5Pck9mU3RhdGVtZW50Tm9kZSxcbiAgRm9yU3RhdGVtZW50Tm9kZSxcbiAgUmFuZ2VkVmFyaWFibGVEZWNsYXJhdG9yTm9kZSxcbiAgU291cmNlQ29kZUFjY2VzcyxcbiAgVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsXG4gIFZhcmlhYmxlRGVjbGFyYXRvck5vZGUsXG59IGZyb20gXCIuL3R5cGVzXCI7XG5cbmltcG9ydCB7IGhhc0ZpeERhdGEsIGhhc1JhbmdlIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqIE1hdGNoZXMgY29tbWVudCBzeW50YXggYmV0d2VlbiBkZWNsYXJhdG9ycy4gKi9cbmNvbnN0IGNvbW1lbnRQYXR0ZXJuID0gL1xcL1xcL3xcXC9cXCovdTtcbi8qKiBMb29wIHBhcmVudCB0eXBlcyB3aG9zZSBpbml0aWFsaXplcnMgY2Fubm90IGJlIHNhZmVseSBzcGxpdC4gKi9cbmNvbnN0IGxvb3BQYXJlbnRUeXBlcyA9IG5ldyBTZXQoW1wiRm9ySW5TdGF0ZW1lbnRcIiwgXCJGb3JPZlN0YXRlbWVudFwiXSk7XG5cbi8qKlxuICogR2V0cyB0aGUgc291cmNlIGFjY2VzcyB3cmFwcGVyIGZyb20gdGhlIEVTTGludCBjb250ZXh0LlxuICogQHBhcmFtIGNvbnRleHQgUnVsZSBleGVjdXRpb24gY29udGV4dC5cbiAqIEByZXR1cm5zIFNvdXJjZSBhY2Nlc3MgaGVscGVycyB1c2VkIGJ5IHRoZSBmaXhlci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzb3VyY2VDb2RlID0gZ2V0U291cmNlQ29kZShjb250ZXh0KTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRTb3VyY2VDb2RlID0gKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBTb3VyY2VDb2RlQWNjZXNzID0+XG4gIGNvbnRleHQuc291cmNlQ29kZSBhcyB1bmtub3duIGFzIFNvdXJjZUNvZGVBY2Nlc3M7XG5cbi8qKlxuICogUmVhZHMgdGhlIGZ1bGwgc291cmNlIHRleHQgZm9yIHRoZSBhY3RpdmUgZmlsZS5cbiAqIEBwYXJhbSBzb3VyY2VDb2RlIFNvdXJjZSBhY2Nlc3Mgd3JhcHBlci5cbiAqIEByZXR1cm5zIEZ1bGwgc291cmNlIHRleHQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc291cmNlVGV4dCA9IGdldFNvdXJjZVRleHQoc291cmNlQ29kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0U291cmNlVGV4dCA9IChzb3VyY2VDb2RlOiBTb3VyY2VDb2RlQWNjZXNzKTogc3RyaW5nID0+XG4gIHR5cGVvZiBzb3VyY2VDb2RlLnRleHQgPT09IFwic3RyaW5nXCIgPyBzb3VyY2VDb2RlLnRleHQgOiBzb3VyY2VDb2RlLmdldFRleHQoKTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBkZWNsYXJhdGlvbiBpcyB1c2VkIGFzIGEgbG9vcCBpbml0aWFsaXplci5cbiAqIEBwYXJhbSBub2RlIERlY2xhcmF0aW9uIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGRlY2xhcmF0aW9uIGlzIGF0dGFjaGVkIHRvIGEgbG9vcCBpbml0aWFsaXplci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBpbkxvb3AgPSBpc0xvb3BJbml0aWFsaXplcihub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBpc0xvb3BJbml0aWFsaXplciA9IChub2RlOiBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCB7IHBhcmVudCB9ID0gbm9kZTtcblxuICBpZiAocGFyZW50Py50eXBlID09PSBcIkZvclN0YXRlbWVudFwiKSB7XG4gICAgcmV0dXJuIChwYXJlbnQgYXMgRm9yU3RhdGVtZW50Tm9kZSkuaW5pdCA9PT0gbm9kZTtcbiAgfVxuXG4gIGlmIChwYXJlbnQgIT09IHZvaWQgMCAmJiBsb29wUGFyZW50VHlwZXMuaGFzKHBhcmVudC50eXBlKSkge1xuICAgIHJldHVybiAocGFyZW50IGFzIEZvckluT3JPZlN0YXRlbWVudE5vZGUpLmxlZnQgPT09IG5vZGU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGRlY2xhcmF0aW9uIGlzIHdyYXBwZWQgaW4gYW4gZXhwb3J0IHN0YXRlbWVudC5cbiAqIEBwYXJhbSBub2RlIERlY2xhcmF0aW9uIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGRlY2xhcmF0aW9uIGlzIGRpcmVjdGx5IGV4cG9ydGVkLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGV4cG9ydGVkID0gaXNXcmFwcGVkRXhwb3J0KG5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzV3JhcHBlZEV4cG9ydCA9IChub2RlOiBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSk6IGJvb2xlYW4gPT5cbiAgbm9kZS5wYXJlbnQ/LnR5cGUgPT09IFwiRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uXCIgfHxcbiAgbm9kZS5wYXJlbnQ/LnR5cGUgPT09IFwiRXhwb3J0TmFtZWREZWNsYXJhdGlvblwiO1xuXG4vKipcbiAqIEdldHMgdGhlIGluZGVudGF0aW9uIGZvciB0aGUgbGluZSBjb250YWluaW5nIGEgZGVjbGFyYXRpb24uXG4gKiBAcGFyYW0gc291cmNlVGV4dCBGdWxsIHNvdXJjZSB0ZXh0LlxuICogQHBhcmFtIHN0YXJ0IFN0YXJ0IG9mZnNldCBvZiB0aGUgZGVjbGFyYXRpb24uXG4gKiBAcmV0dXJucyBMZWFkaW5nIGluZGVudGF0aW9uIGZvciB0aGUgZGVjbGFyYXRpb24gbGluZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBpbmRlbnQgPSBnZXRMaW5lSW5kZW50KFwiY29uc3QgYSA9IDE7XCIsIDApO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldExpbmVJbmRlbnQgPSAoc291cmNlVGV4dDogc3RyaW5nLCBzdGFydDogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgY29uc3QgbGluZVN0YXJ0ID0gc291cmNlVGV4dC5sYXN0SW5kZXhPZihcIlxcblwiLCBzdGFydCAtIDEpICsgMTtcbiAgY29uc3QgbGluZVByZWZpeCA9IHNvdXJjZVRleHQuc2xpY2UobGluZVN0YXJ0LCBzdGFydCk7XG5cbiAgcmV0dXJuIGxpbmVQcmVmaXgucmVwbGFjZSgvW15cXHQgXS4qJC91LCBcIlwiKTtcbn07XG5cbi8qKlxuICogRGV0ZWN0cyB3aGV0aGVyIGNvbW1lbnRzIGFwcGVhciBiZXR3ZWVuIGRlY2xhcmF0b3JzLlxuICogQHBhcmFtIGRlY2xhcmF0aW9ucyBEZWNsYXJhdG9ycyBmcm9tIGEgc2luZ2xlIGRlY2xhcmF0aW9uIHN0YXRlbWVudC5cbiAqIEBwYXJhbSBzb3VyY2VUZXh0IEZ1bGwgc291cmNlIHRleHQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIGNvbW1lbnRzIGFwcGVhciBiZXR3ZWVuIGRlY2xhcmF0b3JzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGJsb2NrZWQgPSBoYXNTZXBhcmF0b3JDb21tZW50KGRlY2xhcmF0aW9ucywgc291cmNlVGV4dCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaGFzU2VwYXJhdG9yQ29tbWVudCA9IChcbiAgZGVjbGFyYXRpb25zOiByZWFkb25seSBWYXJpYWJsZURlY2xhcmF0b3JOb2RlW10sXG4gIHNvdXJjZVRleHQ6IHN0cmluZyxcbik6IGJvb2xlYW4gPT4ge1xuICBmb3IgKGNvbnN0IFtpbmRleCwgZGVjbGFyYXRpb25dIG9mIGRlY2xhcmF0aW9ucy5lbnRyaWVzKCkpIHtcbiAgICBjb25zdCBuZXh0RGVjbGFyYXRpb24gPSBkZWNsYXJhdGlvbnNbaW5kZXggKyAxXTtcblxuICAgIGlmIChuZXh0RGVjbGFyYXRpb24gPT09IHZvaWQgMCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKCFoYXNSYW5nZShkZWNsYXJhdGlvbikgfHwgIWhhc1JhbmdlKG5leHREZWNsYXJhdGlvbikpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHNlcGFyYXRvclRleHQgPSBzb3VyY2VUZXh0LnNsaWNlKFxuICAgICAgZGVjbGFyYXRpb24ucmFuZ2VbMV0sXG4gICAgICBuZXh0RGVjbGFyYXRpb24ucmFuZ2VbMF0sXG4gICAgKTtcblxuICAgIGlmIChjb21tZW50UGF0dGVybi50ZXN0KHNlcGFyYXRvclRleHQpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGRlY2xhcmF0aW9uIGNhbiBiZSBzYWZlbHkgcmV3cml0dGVuLlxuICogQHBhcmFtIG5vZGUgRGVjbGFyYXRpb24gbm9kZSB0byBpbnNwZWN0LlxuICogQHBhcmFtIGRlY2xhcmF0aW9ucyBEZWNsYXJhdG9ycyB3aXRoaW4gdGhlIGRlY2xhcmF0aW9uLlxuICogQHBhcmFtIHNvdXJjZVRleHQgRnVsbCBzb3VyY2UgdGV4dC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGRlY2xhcmF0aW9uIGlzIHNhZmUgdG8gYXV0b2ZpeC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBmaXhhYmxlID0gY2FuRml4KG5vZGUsIGRlY2xhcmF0aW9ucywgc291cmNlVGV4dCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY2FuRml4ID0gKFxuICBub2RlOiBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSxcbiAgZGVjbGFyYXRpb25zOiByZWFkb25seSBWYXJpYWJsZURlY2xhcmF0b3JOb2RlW10sXG4gIHNvdXJjZVRleHQ6IHN0cmluZyxcbik6IGJvb2xlYW4gPT4ge1xuICBpZiAoIWhhc0ZpeERhdGEobm9kZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoaXNMb29wSW5pdGlhbGl6ZXIobm9kZSkgfHwgaXNXcmFwcGVkRXhwb3J0KG5vZGUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuICFoYXNTZXBhcmF0b3JDb21tZW50KGRlY2xhcmF0aW9ucywgc291cmNlVGV4dCk7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGRlY2xhcmF0b3JzIGludG8gc2VwYXJhdGUgZGVjbGFyYXRpb24gc3RhdGVtZW50cy5cbiAqIEBwYXJhbSBub2RlIEZpeGFibGUgZGVjbGFyYXRpb24gbm9kZS5cbiAqIEBwYXJhbSBkZWNsYXJhdGlvbnMgRGVjbGFyYXRvcnMgdGhhdCBzaG91bGQgYmUgc3BsaXQuXG4gKiBAcGFyYW0gc291cmNlQ29kZSBTb3VyY2UgYWNjZXNzIHdyYXBwZXIuXG4gKiBAcmV0dXJucyBSZXBsYWNlbWVudCB0ZXh0IGZvciB0aGUgZnVsbCBkZWNsYXJhdGlvbi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXBsYWNlbWVudCA9IGJ1aWxkUmVwbGFjZW1lbnQobm9kZSwgZGVjbGFyYXRpb25zLCBzb3VyY2VDb2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBidWlsZFJlcGxhY2VtZW50ID0gKFxuICBub2RlOiBGaXhhYmxlVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsXG4gIGRlY2xhcmF0aW9uczogcmVhZG9ubHkgUmFuZ2VkVmFyaWFibGVEZWNsYXJhdG9yTm9kZVtdLFxuICBzb3VyY2VDb2RlOiBTb3VyY2VDb2RlQWNjZXNzLFxuKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgc291cmNlVGV4dCA9IGdldFNvdXJjZVRleHQoc291cmNlQ29kZSk7XG4gIGNvbnN0IGluZGVudCA9IGdldExpbmVJbmRlbnQoc291cmNlVGV4dCwgbm9kZS5yYW5nZVswXSk7XG5cbiAgcmV0dXJuIGRlY2xhcmF0aW9uc1xuICAgIC5tYXAoKGRlY2xhcmF0aW9uKSA9PiBgJHtub2RlLmtpbmR9ICR7c291cmNlQ29kZS5nZXRUZXh0KGRlY2xhcmF0aW9uKX07YClcbiAgICAuam9pbihgXFxuJHtpbmRlbnR9YCk7XG59O1xuXG4vKipcbiAqIENvbGxlY3RzIHJhbmdlZCBkZWNsYXJhdG9ycyB3aGVuIGV2ZXJ5IGRlY2xhcmF0b3IgZXhwb3NlcyBhIHJhbmdlLlxuICogQHBhcmFtIGRlY2xhcmF0aW9ucyBEZWNsYXJhdG9ycyBmcm9tIHRoZSBkZWNsYXJhdGlvbiBub2RlLlxuICogQHJldHVybnMgRGVjbGFyYXRvcnMgd2l0aCBjb25maXJtZWQgcmFuZ2VzLCBvciBgdW5kZWZpbmVkYCB3aGVuIGFueSByYW5nZSBpcyBtaXNzaW5nLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJhbmdlZCA9IGdldFJhbmdlZERlY2xhcmF0aW9ucyhub2RlLmRlY2xhcmF0aW9ucyA/PyBbXSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0UmFuZ2VkRGVjbGFyYXRpb25zID0gKFxuICBkZWNsYXJhdGlvbnM6IHJlYWRvbmx5IFZhcmlhYmxlRGVjbGFyYXRvck5vZGVbXSxcbik6IHJlYWRvbmx5IFJhbmdlZFZhcmlhYmxlRGVjbGFyYXRvck5vZGVbXSB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHJhbmdlZERlY2xhcmF0aW9uczogUmFuZ2VkVmFyaWFibGVEZWNsYXJhdG9yTm9kZVtdID0gW107XG5cbiAgZm9yIChjb25zdCBkZWNsYXJhdGlvbiBvZiBkZWNsYXJhdGlvbnMpIHtcbiAgICBpZiAoIWhhc1JhbmdlKGRlY2xhcmF0aW9uKSkge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG5cbiAgICByYW5nZWREZWNsYXJhdGlvbnMucHVzaChkZWNsYXJhdGlvbik7XG4gIH1cblxuICByZXR1cm4gcmFuZ2VkRGVjbGFyYXRpb25zO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGF1dG9maXggY2FsbGJhY2sgd2hlbiB0aGUgZGVjbGFyYXRpb24gY2FuIGJlIHJld3JpdHRlbiBzYWZlbHkuXG4gKiBAcGFyYW0gbm9kZSBEZWNsYXJhdGlvbiBub2RlIHRvIGluc3BlY3QuXG4gKiBAcGFyYW0gZGVjbGFyYXRpb25zIERlY2xhcmF0b3JzIGZyb20gdGhlIGRlY2xhcmF0aW9uIHN0YXRlbWVudC5cbiAqIEBwYXJhbSBzb3VyY2VDb2RlIFNvdXJjZSBhY2Nlc3Mgd3JhcHBlci5cbiAqIEByZXR1cm5zIEZpeCBjYWxsYmFjayB3aGVuIHRoZSBkZWNsYXJhdGlvbiBpcyBzYWZlIHRvIHNwbGl0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGZpeCA9IGNyZWF0ZURlY2xhcmF0aW9uRml4KG5vZGUsIGRlY2xhcmF0aW9ucywgc291cmNlQ29kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlRGVjbGFyYXRpb25GaXggPSAoXG4gIG5vZGU6IFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLFxuICBkZWNsYXJhdGlvbnM6IHJlYWRvbmx5IFZhcmlhYmxlRGVjbGFyYXRvck5vZGVbXSxcbiAgc291cmNlQ29kZTogU291cmNlQ29kZUFjY2Vzcyxcbik6ICgoZml4ZXI6IFJ1bGUuUnVsZUZpeGVyKSA9PiBSdWxlLkZpeCkgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBzb3VyY2VUZXh0ID0gZ2V0U291cmNlVGV4dChzb3VyY2VDb2RlKTtcblxuICBpZiAoIWNhbkZpeChub2RlLCBkZWNsYXJhdGlvbnMsIHNvdXJjZVRleHQpIHx8ICFoYXNGaXhEYXRhKG5vZGUpKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IHJhbmdlZERlY2xhcmF0aW9ucyA9IGdldFJhbmdlZERlY2xhcmF0aW9ucyhkZWNsYXJhdGlvbnMpO1xuICBpZiAocmFuZ2VkRGVjbGFyYXRpb25zID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgcmV0dXJuIChmaXhlcjogUnVsZS5SdWxlRml4ZXIpOiBSdWxlLkZpeCA9PlxuICAgIGZpeGVyLnJlcGxhY2VUZXh0UmFuZ2UoXG4gICAgICBub2RlLnJhbmdlLFxuICAgICAgYnVpbGRSZXBsYWNlbWVudChub2RlLCByYW5nZWREZWNsYXJhdGlvbnMsIHNvdXJjZUNvZGUpLFxuICAgICk7XG59O1xuXG4vKipcbiAqIFJlcG9ydHMgZGVjbGFyYXRpb25zIHRoYXQgY29udGFpbiBtb3JlIHRoYW4gb25lIGRlY2xhcmF0b3IuXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGV4ZWN1dGlvbiBjb250ZXh0LlxuICogQHBhcmFtIG5vZGUgRGVjbGFyYXRpb24gbm9kZSB0byByZXBvcnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVwb3J0VmFyaWFibGVEZWNsYXJhdGlvbihjb250ZXh0LCBub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCByZXBvcnRWYXJpYWJsZURlY2xhcmF0aW9uID0gKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBub2RlOiBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSxcbik6IHZvaWQgPT4ge1xuICBjb25zdCBkZWNsYXJhdGlvbnMgPSBub2RlLmRlY2xhcmF0aW9ucyA/PyBbXTtcblxuICBpZiAoZGVjbGFyYXRpb25zLmxlbmd0aCA8PSAxKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgc291cmNlQ29kZSA9IGdldFNvdXJjZUNvZGUoY29udGV4dCk7XG4gIGNvbnN0IGZpeCA9IGNyZWF0ZURlY2xhcmF0aW9uRml4KG5vZGUsIGRlY2xhcmF0aW9ucywgc291cmNlQ29kZSk7XG5cbiAgY29udGV4dC5yZXBvcnQoe1xuICAgIC4uLihmaXggPT09IHZvaWQgMCA/IHt9IDogeyBmaXggfSksXG4gICAgbWVzc2FnZUlkOiBcInNpbmdsZURlY2xhcmF0b3JcIixcbiAgICBub2RlOiBub2RlIGFzIHVua25vd24gYXMgUnVsZS5Ob2RlLFxuICB9KTtcbn07XG5cbi8qKiBFU0xpbnQgcnVsZSBpbXBsZW1lbnRhdGlvbiBmb3Igc2luZ2xlLWRlY2xhcmF0b3IgdmFyaWFibGUgc3RhdGVtZW50cy4gKi9cbmNvbnN0IG5vTXVsdGlwbGVEZWNsYXJhdG9yc1J1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBSdWxlLlJ1bGVMaXN0ZW5lciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFZhcmlhYmxlRGVjbGFyYXRpb246IChub2RlOiBSdWxlLk5vZGUpOiB2b2lkID0+IHtcbiAgICAgICAgcmVwb3J0VmFyaWFibGVEZWNsYXJhdGlvbihjb250ZXh0LCBub2RlIGFzIFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlJlcXVpcmUgdmFyaWFibGUgZGVjbGFyYXRpb25zIHRvIGNvbnRhaW4gZXhhY3RseSBvbmUgZGVjbGFyYXRvciBwZXIgc3RhdGVtZW50LlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvbm8tbXVsdGlwbGUtZGVjbGFyYXRvcnMubWRcIixcbiAgICB9LFxuICAgIGZpeGFibGU6IFwiY29kZVwiLFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBzaW5nbGVEZWNsYXJhdG9yOlxuICAgICAgICBcIkRlY2xhcmUgZXhhY3RseSBvbmUgdmFyaWFibGUgcGVyIGRlY2xhcmF0aW9uIHN0YXRlbWVudC5cIixcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogXCJzdWdnZXN0aW9uXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlIH07XG4iXX0=
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vY29yZS9uby1tdWx0aXBsZS1kZWNsYXJhdG9ycy9ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRS9DLGtEQUFrRDtBQUNsRCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUM7QUFDcEMsNkVBQTZFO0FBQzdFLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDakUsbUVBQW1FO0FBQ25FLE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxDQUFDO0lBQzlCLHFCQUFxQjtJQUNyQixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0NBQ2pCLENBQUMsQ0FBQztBQUVIOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUF5QixFQUFvQixFQUFFLENBQ3BFLE9BQU8sQ0FBQyxVQUF5QyxDQUFDO0FBRXBEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FBQyxVQUE0QixFQUFVLEVBQUUsQ0FDN0QsT0FBTyxVQUFVLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBRS9FOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFVBQWtCLEVBQVUsRUFBRSxDQUN0RCxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUU5Qzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUE2QixFQUFXLEVBQUU7SUFDbkUsTUFB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QXlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHR5cGUge1xuICBGaXhhYmxlVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsXG4gIEZvckluT3JPZlN0YXRlbWVudE5vZGUsXG4gIEZvclN0YXRlbWVudE5vZGUsXG4gIFJhbmdlZFZhcmlhYmxlRGVjbGFyYXRvck5vZGUsXG4gIFNvdXJjZUNvZGVBY2Nlc3MsXG4gIFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLFxuICBWYXJpYWJsZURlY2xhcmF0b3JOb2RlLFxufSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQgeyBoYXNGaXhEYXRhLCBoYXNSYW5nZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKiBNYXRjaGVzIGNvbW1lbnQgc3ludGF4IGJldHdlZW4gZGVjbGFyYXRvcnMuICovXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXC98XFwvXFwqL3U7XG4vKiogRGVjbGFyYXRpb24ga2luZHMgdGhhdCBjYW4gYmUgc2FmZWx5IHNwbGl0IGludG8gc3RhbmRhbG9uZSBzdGF0ZW1lbnRzLiAqL1xuY29uc3QgZml4YWJsZURlY2xhcmF0aW9uS2luZHMgPSBuZXcgU2V0KFtcImNvbnN0XCIsIFwibGV0XCIsIFwidmFyXCJdKTtcbi8qKiBMb29wIHBhcmVudCB0eXBlcyB3aG9zZSBpbml0aWFsaXplcnMgY2Fubm90IGJlIHNhZmVseSBzcGxpdC4gKi9cbmNvbnN0IGxvb3BQYXJlbnRUeXBlcyA9IG5ldyBTZXQoW1xuICBcIkZvckF3YWl0T2ZTdGF0ZW1lbnRcIixcbiAgXCJGb3JJblN0YXRlbWVudFwiLFxuICBcIkZvck9mU3RhdGVtZW50XCIsXG5dKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBzb3VyY2UgYWNjZXNzIHdyYXBwZXIgZnJvbSB0aGUgRVNMaW50IGNvbnRleHQuXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGV4ZWN1dGlvbiBjb250ZXh0LlxuICogQHJldHVybnMgU291cmNlIGFjY2VzcyBoZWxwZXJzIHVzZWQgYnkgdGhlIGZpeGVyLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHNvdXJjZUNvZGUgPSBnZXRTb3VyY2VDb2RlKGNvbnRleHQpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFNvdXJjZUNvZGUgPSAoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFNvdXJjZUNvZGVBY2Nlc3MgPT5cbiAgY29udGV4dC5zb3VyY2VDb2RlIGFzIHVua25vd24gYXMgU291cmNlQ29kZUFjY2VzcztcblxuLyoqXG4gKiBSZWFkcyB0aGUgZnVsbCBzb3VyY2UgdGV4dCBmb3IgdGhlIGFjdGl2ZSBmaWxlLlxuICogQHBhcmFtIHNvdXJjZUNvZGUgU291cmNlIGFjY2VzcyB3cmFwcGVyLlxuICogQHJldHVybnMgRnVsbCBzb3VyY2UgdGV4dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzb3VyY2VUZXh0ID0gZ2V0U291cmNlVGV4dChzb3VyY2VDb2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRTb3VyY2VUZXh0ID0gKHNvdXJjZUNvZGU6IFNvdXJjZUNvZGVBY2Nlc3MpOiBzdHJpbmcgPT5cbiAgdHlwZW9mIHNvdXJjZUNvZGUudGV4dCA9PT0gXCJzdHJpbmdcIiA/IHNvdXJjZUNvZGUudGV4dCA6IHNvdXJjZUNvZGUuZ2V0VGV4dCgpO1xuXG4vKipcbiAqIEdldHMgdGhlIGxpbmUgc2VwYXJhdG9yIHN0eWxlIHVzZWQgYnkgdGhlIGN1cnJlbnQgc291cmNlIGZpbGUuXG4gKiBAcGFyYW0gc291cmNlVGV4dCBGdWxsIHNvdXJjZSB0ZXh0LlxuICogQHJldHVybnMgRmlsZS1uYXRpdmUgbGluZSBzZXBhcmF0b3Igc2VxdWVuY2UuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbGluZVNlcGFyYXRvciA9IGdldExpbmVTZXBhcmF0b3IoXCJjb25zdCBhID0gMTtcXHJcXG5jb25zdCBiID0gMjtcIik7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0TGluZVNlcGFyYXRvciA9IChzb3VyY2VUZXh0OiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgc291cmNlVGV4dC5pbmNsdWRlcyhcIlxcclxcblwiKSA/IFwiXFxyXFxuXCIgOiBcIlxcblwiO1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGRlY2xhcmF0aW9uIGlzIHVzZWQgYXMgYSBsb29wIGluaXRpYWxpemVyLlxuICogQHBhcmFtIG5vZGUgRGVjbGFyYXRpb24gbm9kZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgV2hldGhlciB0aGUgZGVjbGFyYXRpb24gaXMgYXR0YWNoZWQgdG8gYSBsb29wIGluaXRpYWxpemVyLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGluTG9vcCA9IGlzTG9vcEluaXRpYWxpemVyKG5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzTG9vcEluaXRpYWxpemVyID0gKG5vZGU6IFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHsgcGFyZW50IH0gPSBub2RlO1xuXG4gIGlmIChwYXJlbnQ/LnR5cGUgPT09IFwiRm9yU3RhdGVtZW50XCIpIHtcbiAgICByZXR1cm4gKHBhcmVudCBhcyBGb3JTdGF0ZW1lbnROb2RlKS5pbml0ID09PSBub2RlO1xuICB9XG5cbiAgaWYgKHBhcmVudCAhPT0gdm9pZCAwICYmIGxvb3BQYXJlbnRUeXBlcy5oYXMocGFyZW50LnR5cGUpKSB7XG4gICAgcmV0dXJuIChwYXJlbnQgYXMgRm9ySW5Pck9mU3RhdGVtZW50Tm9kZSkubGVmdCA9PT0gbm9kZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZGVjbGFyYXRpb24gaXMgd3JhcHBlZCBpbiBhbiBleHBvcnQgc3RhdGVtZW50LlxuICogQHBhcmFtIG5vZGUgRGVjbGFyYXRpb24gbm9kZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgV2hldGhlciB0aGUgZGVjbGFyYXRpb24gaXMgZGlyZWN0bHkgZXhwb3J0ZWQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZXhwb3J0ZWQgPSBpc1dyYXBwZWRFeHBvcnQobm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNXcmFwcGVkRXhwb3J0ID0gKG5vZGU6IFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKTogYm9vbGVhbiA9PlxuICBub2RlLnBhcmVudD8udHlwZSA9PT0gXCJFeHBvcnREZWZhdWx0RGVjbGFyYXRpb25cIiB8fFxuICBub2RlLnBhcmVudD8udHlwZSA9PT0gXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCI7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZGVjbGFyYXRpb24gaXMgYW1iaWVudCBpbiBUeXBlU2NyaXB0IHNvdXJjZS5cbiAqIEBwYXJhbSBub2RlIERlY2xhcmF0aW9uIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGRlY2xhcmF0aW9uIGlzIG1hcmtlZCB3aXRoIGBkZWNsYXJlYC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBhbWJpZW50ID0gaXNUeXBlU2NyaXB0QW1iaWVudERlY2xhcmF0aW9uKG5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzVHlwZVNjcmlwdEFtYmllbnREZWNsYXJhdGlvbiA9IChcbiAgbm9kZTogVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsXG4pOiBib29sZWFuID0+IG5vZGUuZGVjbGFyZSA9PT0gdHJ1ZTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBkZWNsYXJhdGlvbiBraW5kIGlzIHNhZmUgdG8gcmV3cml0ZS5cbiAqIEBwYXJhbSBub2RlIERlY2xhcmF0aW9uIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGRlY2xhcmF0aW9uIGtpbmQgc3VwcG9ydHMgY29uc2VydmF0aXZlIHNwbGl0IGZpeGVzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHNhZmVLaW5kID0gaGFzRml4YWJsZURlY2xhcmF0aW9uS2luZChub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBoYXNGaXhhYmxlRGVjbGFyYXRpb25LaW5kID0gKG5vZGU6IFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKTogYm9vbGVhbiA9PlxuICBoYXNGaXhEYXRhKG5vZGUpICYmIGZpeGFibGVEZWNsYXJhdGlvbktpbmRzLmhhcyhub2RlLmtpbmQpO1xuXG4vKipcbiAqIEdldHMgdGhlIGluZGVudGF0aW9uIGZvciB0aGUgbGluZSBjb250YWluaW5nIGEgZGVjbGFyYXRpb24uXG4gKiBAcGFyYW0gc291cmNlVGV4dCBGdWxsIHNvdXJjZSB0ZXh0LlxuICogQHBhcmFtIHN0YXJ0IFN0YXJ0IG9mZnNldCBvZiB0aGUgZGVjbGFyYXRpb24uXG4gKiBAcmV0dXJucyBMZWFkaW5nIGluZGVudGF0aW9uIGZvciB0aGUgZGVjbGFyYXRpb24gbGluZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBpbmRlbnQgPSBnZXRMaW5lSW5kZW50KFwiY29uc3QgYSA9IDE7XCIsIDApO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldExpbmVJbmRlbnQgPSAoc291cmNlVGV4dDogc3RyaW5nLCBzdGFydDogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgY29uc3QgbGluZVN0YXJ0ID0gc291cmNlVGV4dC5sYXN0SW5kZXhPZihcIlxcblwiLCBzdGFydCAtIDEpICsgMTtcbiAgY29uc3QgbGluZVByZWZpeCA9IHNvdXJjZVRleHQuc2xpY2UobGluZVN0YXJ0LCBzdGFydCk7XG4gIGxldCBpbmRlbnRMZW5ndGggPSAwO1xuXG4gIHdoaWxlIChpbmRlbnRMZW5ndGggPCBsaW5lUHJlZml4Lmxlbmd0aCkge1xuICAgIGNvbnN0IGN1cnJlbnRDaGFyYWN0ZXIgPSBsaW5lUHJlZml4W2luZGVudExlbmd0aF07XG5cbiAgICBpZiAoY3VycmVudENoYXJhY3RlciAhPT0gXCJcXHRcIiAmJiBjdXJyZW50Q2hhcmFjdGVyICE9PSBcIiBcIikge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaW5kZW50TGVuZ3RoICs9IDE7XG4gIH1cblxuICByZXR1cm4gbGluZVByZWZpeC5zbGljZSgwLCBpbmRlbnRMZW5ndGgpO1xufTtcblxuLyoqXG4gKiBEZXRlY3RzIHdoZXRoZXIgY29tbWVudHMgYXBwZWFyIGJldHdlZW4gZGVjbGFyYXRvcnMuXG4gKiBAcGFyYW0gZGVjbGFyYXRpb25zIERlY2xhcmF0b3JzIGZyb20gYSBzaW5nbGUgZGVjbGFyYXRpb24gc3RhdGVtZW50LlxuICogQHBhcmFtIHNvdXJjZVRleHQgRnVsbCBzb3VyY2UgdGV4dC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgY29tbWVudHMgYXBwZWFyIGJldHdlZW4gZGVjbGFyYXRvcnMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgYmxvY2tlZCA9IGhhc1NlcGFyYXRvckNvbW1lbnQoZGVjbGFyYXRpb25zLCBzb3VyY2VUZXh0KTtcbiAqIGBgYFxuICovXG5jb25zdCBoYXNTZXBhcmF0b3JDb21tZW50ID0gKFxuICBkZWNsYXJhdGlvbnM6IHJlYWRvbmx5IFZhcmlhYmxlRGVjbGFyYXRvck5vZGVbXSxcbiAgc291cmNlVGV4dDogc3RyaW5nLFxuKTogYm9vbGVhbiA9PiB7XG4gIGZvciAoY29uc3QgW2luZGV4LCBkZWNsYXJhdGlvbl0gb2YgZGVjbGFyYXRpb25zLmVudHJpZXMoKSkge1xuICAgIGNvbnN0IG5leHREZWNsYXJhdGlvbiA9IGRlY2xhcmF0aW9uc1tpbmRleCArIDFdO1xuXG4gICAgaWYgKG5leHREZWNsYXJhdGlvbiA9PT0gdm9pZCAwKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoIWhhc1JhbmdlKGRlY2xhcmF0aW9uKSB8fCAhaGFzUmFuZ2UobmV4dERlY2xhcmF0aW9uKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VwYXJhdG9yVGV4dCA9IHNvdXJjZVRleHQuc2xpY2UoXG4gICAgICBkZWNsYXJhdGlvbi5yYW5nZVsxXSxcbiAgICAgIG5leHREZWNsYXJhdGlvbi5yYW5nZVswXSxcbiAgICApO1xuXG4gICAgaWYgKGNvbW1lbnRQYXR0ZXJuLnRlc3Qoc2VwYXJhdG9yVGV4dCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZGVjbGFyYXRpb24gY2FuIGJlIHNhZmVseSByZXdyaXR0ZW4uXG4gKiBAcGFyYW0gbm9kZSBEZWNsYXJhdGlvbiBub2RlIHRvIGluc3BlY3QuXG4gKiBAcGFyYW0gZGVjbGFyYXRpb25zIERlY2xhcmF0b3JzIHdpdGhpbiB0aGUgZGVjbGFyYXRpb24uXG4gKiBAcGFyYW0gc291cmNlVGV4dCBGdWxsIHNvdXJjZSB0ZXh0LlxuICogQHJldHVybnMgV2hldGhlciB0aGUgZGVjbGFyYXRpb24gaXMgc2FmZSB0byBhdXRvZml4LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGZpeGFibGUgPSBjYW5GaXgobm9kZSwgZGVjbGFyYXRpb25zLCBzb3VyY2VUZXh0KTtcbiAqIGBgYFxuICovXG5jb25zdCBjYW5GaXggPSAoXG4gIG5vZGU6IFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLFxuICBkZWNsYXJhdGlvbnM6IHJlYWRvbmx5IFZhcmlhYmxlRGVjbGFyYXRvck5vZGVbXSxcbiAgc291cmNlVGV4dDogc3RyaW5nLFxuKTogYm9vbGVhbiA9PiB7XG4gIGlmICghaGFzRml4RGF0YShub2RlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChcbiAgICAhaGFzRml4YWJsZURlY2xhcmF0aW9uS2luZChub2RlKSB8fFxuICAgIGlzVHlwZVNjcmlwdEFtYmllbnREZWNsYXJhdGlvbihub2RlKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoaXNMb29wSW5pdGlhbGl6ZXIobm9kZSkgfHwgaXNXcmFwcGVkRXhwb3J0KG5vZGUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuICFoYXNTZXBhcmF0b3JDb21tZW50KGRlY2xhcmF0aW9ucywgc291cmNlVGV4dCk7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGRlY2xhcmF0b3JzIGludG8gc2VwYXJhdGUgZGVjbGFyYXRpb24gc3RhdGVtZW50cy5cbiAqIEBwYXJhbSBub2RlIEZpeGFibGUgZGVjbGFyYXRpb24gbm9kZS5cbiAqIEBwYXJhbSBkZWNsYXJhdGlvbnMgRGVjbGFyYXRvcnMgdGhhdCBzaG91bGQgYmUgc3BsaXQuXG4gKiBAcGFyYW0gc291cmNlQ29kZSBTb3VyY2UgYWNjZXNzIHdyYXBwZXIuXG4gKiBAcmV0dXJucyBSZXBsYWNlbWVudCB0ZXh0IGZvciB0aGUgZnVsbCBkZWNsYXJhdGlvbi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXBsYWNlbWVudCA9IGJ1aWxkUmVwbGFjZW1lbnQobm9kZSwgZGVjbGFyYXRpb25zLCBzb3VyY2VDb2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBidWlsZFJlcGxhY2VtZW50ID0gKFxuICBub2RlOiBGaXhhYmxlVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsXG4gIGRlY2xhcmF0aW9uczogcmVhZG9ubHkgUmFuZ2VkVmFyaWFibGVEZWNsYXJhdG9yTm9kZVtdLFxuICBzb3VyY2VDb2RlOiBTb3VyY2VDb2RlQWNjZXNzLFxuKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgc291cmNlVGV4dCA9IGdldFNvdXJjZVRleHQoc291cmNlQ29kZSk7XG4gIGNvbnN0IGluZGVudCA9IGdldExpbmVJbmRlbnQoc291cmNlVGV4dCwgbm9kZS5yYW5nZVswXSk7XG4gIGNvbnN0IGxpbmVTZXBhcmF0b3IgPSBnZXRMaW5lU2VwYXJhdG9yKHNvdXJjZVRleHQpO1xuXG4gIHJldHVybiBkZWNsYXJhdGlvbnNcbiAgICAubWFwKChkZWNsYXJhdGlvbikgPT4gYCR7bm9kZS5raW5kfSAke3NvdXJjZUNvZGUuZ2V0VGV4dChkZWNsYXJhdGlvbil9O2ApXG4gICAgLmpvaW4oYCR7bGluZVNlcGFyYXRvcn0ke2luZGVudH1gKTtcbn07XG5cbi8qKlxuICogQ29sbGVjdHMgcmFuZ2VkIGRlY2xhcmF0b3JzIHdoZW4gZXZlcnkgZGVjbGFyYXRvciBleHBvc2VzIGEgcmFuZ2UuXG4gKiBAcGFyYW0gZGVjbGFyYXRpb25zIERlY2xhcmF0b3JzIGZyb20gdGhlIGRlY2xhcmF0aW9uIG5vZGUuXG4gKiBAcmV0dXJucyBEZWNsYXJhdG9ycyB3aXRoIGNvbmZpcm1lZCByYW5nZXMsIG9yIGB1bmRlZmluZWRgIHdoZW4gYW55IHJhbmdlIGlzIG1pc3NpbmcuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmFuZ2VkID0gZ2V0UmFuZ2VkRGVjbGFyYXRpb25zKG5vZGUuZGVjbGFyYXRpb25zID8/IFtdKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRSYW5nZWREZWNsYXJhdGlvbnMgPSAoXG4gIGRlY2xhcmF0aW9uczogcmVhZG9ubHkgVmFyaWFibGVEZWNsYXJhdG9yTm9kZVtdLFxuKTogcmVhZG9ubHkgUmFuZ2VkVmFyaWFibGVEZWNsYXJhdG9yTm9kZVtdIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgcmFuZ2VkRGVjbGFyYXRpb25zOiBSYW5nZWRWYXJpYWJsZURlY2xhcmF0b3JOb2RlW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IGRlY2xhcmF0aW9uIG9mIGRlY2xhcmF0aW9ucykge1xuICAgIGlmICghaGFzUmFuZ2UoZGVjbGFyYXRpb24pKSB7XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cblxuICAgIHJhbmdlZERlY2xhcmF0aW9ucy5wdXNoKGRlY2xhcmF0aW9uKTtcbiAgfVxuXG4gIHJldHVybiByYW5nZWREZWNsYXJhdGlvbnM7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXV0b2ZpeCBjYWxsYmFjayB3aGVuIHRoZSBkZWNsYXJhdGlvbiBjYW4gYmUgcmV3cml0dGVuIHNhZmVseS5cbiAqIEBwYXJhbSBub2RlIERlY2xhcmF0aW9uIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSBkZWNsYXJhdGlvbnMgRGVjbGFyYXRvcnMgZnJvbSB0aGUgZGVjbGFyYXRpb24gc3RhdGVtZW50LlxuICogQHBhcmFtIHNvdXJjZUNvZGUgU291cmNlIGFjY2VzcyB3cmFwcGVyLlxuICogQHJldHVybnMgRml4IGNhbGxiYWNrIHdoZW4gdGhlIGRlY2xhcmF0aW9uIGlzIHNhZmUgdG8gc3BsaXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZml4ID0gY3JlYXRlRGVjbGFyYXRpb25GaXgobm9kZSwgZGVjbGFyYXRpb25zLCBzb3VyY2VDb2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVEZWNsYXJhdGlvbkZpeCA9IChcbiAgbm9kZTogVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsXG4gIGRlY2xhcmF0aW9uczogcmVhZG9ubHkgVmFyaWFibGVEZWNsYXJhdG9yTm9kZVtdLFxuICBzb3VyY2VDb2RlOiBTb3VyY2VDb2RlQWNjZXNzLFxuKTogKChmaXhlcjogUnVsZS5SdWxlRml4ZXIpID0+IFJ1bGUuRml4KSB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHNvdXJjZVRleHQgPSBnZXRTb3VyY2VUZXh0KHNvdXJjZUNvZGUpO1xuXG4gIGlmICghY2FuRml4KG5vZGUsIGRlY2xhcmF0aW9ucywgc291cmNlVGV4dCkgfHwgIWhhc0ZpeERhdGEobm9kZSkpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgcmFuZ2VkRGVjbGFyYXRpb25zID0gZ2V0UmFuZ2VkRGVjbGFyYXRpb25zKGRlY2xhcmF0aW9ucyk7XG4gIGlmIChyYW5nZWREZWNsYXJhdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICByZXR1cm4gKGZpeGVyOiBSdWxlLlJ1bGVGaXhlcik6IFJ1bGUuRml4ID0+XG4gICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShcbiAgICAgIG5vZGUucmFuZ2UsXG4gICAgICBidWlsZFJlcGxhY2VtZW50KG5vZGUsIHJhbmdlZERlY2xhcmF0aW9ucywgc291cmNlQ29kZSksXG4gICAgKTtcbn07XG5cbi8qKlxuICogUmVwb3J0cyBkZWNsYXJhdGlvbnMgdGhhdCBjb250YWluIG1vcmUgdGhhbiBvbmUgZGVjbGFyYXRvci5cbiAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgZXhlY3V0aW9uIGNvbnRleHQuXG4gKiBAcGFyYW0gbm9kZSBEZWNsYXJhdGlvbiBub2RlIHRvIHJlcG9ydC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiByZXBvcnRWYXJpYWJsZURlY2xhcmF0aW9uKGNvbnRleHQsIG5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IHJlcG9ydFZhcmlhYmxlRGVjbGFyYXRpb24gPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIG5vZGU6IFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLFxuKTogdm9pZCA9PiB7XG4gIGNvbnN0IGRlY2xhcmF0aW9ucyA9IG5vZGUuZGVjbGFyYXRpb25zID8/IFtdO1xuXG4gIGlmIChkZWNsYXJhdGlvbnMubGVuZ3RoIDw9IDEpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBzb3VyY2VDb2RlID0gZ2V0U291cmNlQ29kZShjb250ZXh0KTtcbiAgY29uc3QgZml4ID0gY3JlYXRlRGVjbGFyYXRpb25GaXgobm9kZSwgZGVjbGFyYXRpb25zLCBzb3VyY2VDb2RlKTtcblxuICBjb250ZXh0LnJlcG9ydCh7XG4gICAgLi4uKGZpeCA9PT0gdm9pZCAwID8ge30gOiB7IGZpeCB9KSxcbiAgICBtZXNzYWdlSWQ6IFwic2luZ2xlRGVjbGFyYXRvclwiLFxuICAgIG5vZGU6IG5vZGUgYXMgdW5rbm93biBhcyBSdWxlLk5vZGUsXG4gIH0pO1xufTtcblxuLyoqIEVTTGludCBydWxlIGltcGxlbWVudGF0aW9uIGZvciBzaW5nbGUtZGVjbGFyYXRvciB2YXJpYWJsZSBzdGF0ZW1lbnRzLiAqL1xuY29uc3Qgbm9NdWx0aXBsZURlY2xhcmF0b3JzUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgVmFyaWFibGVEZWNsYXJhdGlvbjogKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgICByZXBvcnRWYXJpYWJsZURlY2xhcmF0aW9uKGNvbnRleHQsIG5vZGUgYXMgVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpO1xuICAgICAgfSxcbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiUmVxdWlyZSB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgdG8gY29udGFpbiBleGFjdGx5IG9uZSBkZWNsYXJhdG9yIHBlciBzdGF0ZW1lbnQuXCIsXG4gICAgICByZWNvbW1lbmRlZDogZmFsc2UsXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL3BhcmxvdGkvZXNsaW50LXBsdWdpbi9ibG9iL21haW4vZG9jcy9ydWxlcy9uby1tdWx0aXBsZS1kZWNsYXJhdG9ycy5tZFwiLFxuICAgIH0sXG4gICAgZml4YWJsZTogXCJjb2RlXCIsXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIHNpbmdsZURlY2xhcmF0b3I6XG4gICAgICAgIFwiRGVjbGFyZSBleGFjdGx5IG9uZSB2YXJpYWJsZSBwZXIgZGVjbGFyYXRpb24gc3RhdGVtZW50LlwiLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiBcInN1Z2dlc3Rpb25cIixcbiAgfSxcbn07XG5cbmV4cG9ydCB7IG5vTXVsdGlwbGVEZWNsYXJhdG9yc1J1bGUgfTtcbiJdfQ==
|
|
@@ -47,6 +47,8 @@ interface SourceCodeAccess {
|
|
|
47
47
|
interface VariableDeclarationNode extends BaseNode {
|
|
48
48
|
/** Individual declarators contained in the declaration. */
|
|
49
49
|
declarations?: VariableDeclaratorNode[];
|
|
50
|
+
/** TypeScript ambient declaration modifier. */
|
|
51
|
+
declare?: boolean;
|
|
50
52
|
/** Declaration kind such as `const`, `let`, or `var`. */
|
|
51
53
|
kind?: string;
|
|
52
54
|
}
|
|
@@ -73,5 +75,5 @@ declare function hasFixData(node: VariableDeclarationNode): node is FixableVaria
|
|
|
73
75
|
*/
|
|
74
76
|
declare function hasRange(node: BaseNode | undefined): node is RangedNode;
|
|
75
77
|
export { hasFixData, hasRange };
|
|
76
|
-
export type { FixableVariableDeclarationNode, ForInOrOfStatementNode, ForStatementNode,
|
|
78
|
+
export type { FixableVariableDeclarationNode, ForInOrOfStatementNode, ForStatementNode, RangedVariableDeclaratorNode, SourceCodeAccess, VariableDeclarationNode, VariableDeclaratorNode, };
|
|
77
79
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-multiple-declarators/types.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,UAAU,QAAQ;IAChB,sDAAsD;IACtD,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,mEAAmE;AACnE,UAAU,8BAA+B,SAAQ,uBAAuB;IACtE,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,KAAK,EAAE,KAAK,CAAC;CACd;AAED,uDAAuD;AACvD,UAAU,sBAAuB,SAAQ,QAAQ;IAC/C,yCAAyC;IACzC,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,4CAA4C;AAC5C,UAAU,gBAAiB,SAAQ,QAAQ;IACzC,uCAAuC;IACvC,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACxB;AAED,0DAA0D;AAC1D,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9B,wDAAwD;AACxD,UAAU,UAAW,SAAQ,QAAQ;IACnC,2CAA2C;IAC3C,KAAK,EAAE,KAAK,CAAC;CACd;AAED,8DAA8D;AAC9D,UAAU,4BAA6B,SAAQ,sBAAsB;IACnE,iDAAiD;IACjD,KAAK,EAAE,KAAK,CAAC;CACd;AAED,0DAA0D;AAC1D,UAAU,gBAAgB;IACxB,wEAAwE;IACxE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAC;IACrC,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mDAAmD;AACnD,UAAU,uBAAwB,SAAQ,QAAQ;IAChD,2DAA2D;IAC3D,YAAY,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACxC,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,+CAA+C;AAC/C,KAAK,sBAAsB,GAAG,QAAQ,CAAC;AAEvC;;;;;;;;GAQG;AACH,iBAAS,UAAU,CACjB,IAAI,EAAE,uBAAuB,GAC5B,IAAI,IAAI,8BAA8B,CAExC;AAED;;;;;;;;GAQG;AACH,iBAAS,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,IAAI,UAAU,CAEhE;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/no-multiple-declarators/types.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,UAAU,QAAQ;IAChB,sDAAsD;IACtD,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,mEAAmE;AACnE,UAAU,8BAA+B,SAAQ,uBAAuB;IACtE,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,KAAK,EAAE,KAAK,CAAC;CACd;AAED,uDAAuD;AACvD,UAAU,sBAAuB,SAAQ,QAAQ;IAC/C,yCAAyC;IACzC,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,4CAA4C;AAC5C,UAAU,gBAAiB,SAAQ,QAAQ;IACzC,uCAAuC;IACvC,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACxB;AAED,0DAA0D;AAC1D,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9B,wDAAwD;AACxD,UAAU,UAAW,SAAQ,QAAQ;IACnC,2CAA2C;IAC3C,KAAK,EAAE,KAAK,CAAC;CACd;AAED,8DAA8D;AAC9D,UAAU,4BAA6B,SAAQ,sBAAsB;IACnE,iDAAiD;IACjD,KAAK,EAAE,KAAK,CAAC;CACd;AAED,0DAA0D;AAC1D,UAAU,gBAAgB;IACxB,wEAAwE;IACxE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAC;IACrC,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mDAAmD;AACnD,UAAU,uBAAwB,SAAQ,QAAQ;IAChD,2DAA2D;IAC3D,YAAY,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACxC,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,+CAA+C;AAC/C,KAAK,sBAAsB,GAAG,QAAQ,CAAC;AAEvC;;;;;;;;GAQG;AACH,iBAAS,UAAU,CACjB,IAAI,EAAE,uBAAuB,GAC5B,IAAI,IAAI,8BAA8B,CAExC;AAED;;;;;;;;GAQG;AACH,iBAAS,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,IAAI,UAAU,CAEhE;AAoBD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAChC,YAAY,EACV,8BAA8B,EAC9B,sBAAsB,EACtB,gBAAgB,EAChB,4BAA4B,EAC5B,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,GACvB,CAAC"}
|
|
@@ -32,7 +32,10 @@ function hasRange(node) {
|
|
|
32
32
|
* ```
|
|
33
33
|
*/
|
|
34
34
|
function isRange(value) {
|
|
35
|
-
return Array.isArray(value)
|
|
35
|
+
return (Array.isArray(value) &&
|
|
36
|
+
value.length === 2 &&
|
|
37
|
+
value.every((part) => Number.isInteger(part) && part >= 0) &&
|
|
38
|
+
value[0] <= value[1]);
|
|
36
39
|
}
|
|
37
40
|
export { hasFixData, hasRange };
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2NvcmUvbm8tbXVsdGlwbGUtZGVjbGFyYXRvcnMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0VBOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxVQUFVLENBQ2pCLElBQTZCO0lBRTdCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQztBQUMzRSxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLFFBQVEsQ0FBQyxJQUEwQjtJQUMxQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxPQUFPLENBQUMsS0FBYztJQUM3QixPQUFPLENBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDcEIsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQ2xCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztRQUMxRCxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNyQixDQUFDO0FBQ0osQ0FBQztBQUVELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUHJvdmlkZXMgdGhlIG1pbmltYWwgbm9kZSBzaGFwZSB1c2VkIGJ5IHRoZSBydWxlLiAqL1xyXG5pbnRlcmZhY2UgQmFzZU5vZGUge1xyXG4gIC8qKiBQYXJlbnQgbm9kZSB1c2VkIHRvIGluc3BlY3Qgc3Vycm91bmRpbmcgc3ludGF4LiAqL1xyXG4gIHBhcmVudD86IEJhc2VOb2RlO1xyXG4gIC8qKiBTb3VyY2UgcmFuZ2UgdXNlZCBieSBhdXRvZml4IGxvZ2ljLiAqL1xyXG4gIHJhbmdlPzogUmFuZ2U7XHJcbiAgLyoqIEVTVHJlZSBub2RlIHR5cGUuICovXHJcbiAgdHlwZTogc3RyaW5nO1xyXG59XHJcblxyXG4vKiogUmVwcmVzZW50cyBhIGRlY2xhcmF0aW9uIHRoYXQgY2FuIGJlIHJld3JpdHRlbiBieSB0aGUgZml4ZXIuICovXHJcbmludGVyZmFjZSBGaXhhYmxlVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgZXh0ZW5kcyBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSB7XHJcbiAgLyoqIENvbmZpcm1lZCBkZWNsYXJhdGlvbiBrZXl3b3JkLiAqL1xyXG4gIGtpbmQ6IHN0cmluZztcclxuICAvKiogQ29uZmlybWVkIHNvdXJjZSByYW5nZSBmb3IgdGhlIGZ1bGwgZGVjbGFyYXRpb24uICovXHJcbiAgcmFuZ2U6IFJhbmdlO1xyXG59XHJcblxyXG4vKiogUmVwcmVzZW50cyBhIGBmb3IuLi5pbmAgb3IgYGZvci4uLm9mYCBzdGF0ZW1lbnQuICovXHJcbmludGVyZmFjZSBGb3JJbk9yT2ZTdGF0ZW1lbnROb2RlIGV4dGVuZHMgQmFzZU5vZGUge1xyXG4gIC8qKiBMZWZ0LWhhbmQgaW5pdGlhbGl6ZXIgb2YgdGhlIGxvb3AuICovXHJcbiAgbGVmdD86IEJhc2VOb2RlO1xyXG59XHJcblxyXG4vKiogUmVwcmVzZW50cyBhIGNsYXNzaWMgYGZvcmAgc3RhdGVtZW50LiAqL1xyXG5pbnRlcmZhY2UgRm9yU3RhdGVtZW50Tm9kZSBleHRlbmRzIEJhc2VOb2RlIHtcclxuICAvKiogSW5pdGlhbGl6ZXIgc2VjdGlvbiBvZiB0aGUgbG9vcC4gKi9cclxuICBpbml0PzogQmFzZU5vZGUgfCBudWxsO1xyXG59XHJcblxyXG4vKiogUmVwcmVzZW50cyBhIHNvdXJjZSByYW5nZSB3aXRoaW4gdGhlIG9yaWdpbmFsIGZpbGUuICovXHJcbnR5cGUgUmFuZ2UgPSBbbnVtYmVyLCBudW1iZXJdO1xyXG5cclxuLyoqIFJlcHJlc2VudHMgYSBub2RlIHdob3NlIHJhbmdlIGhhcyBiZWVuIGNvbmZpcm1lZC4gKi9cclxuaW50ZXJmYWNlIFJhbmdlZE5vZGUgZXh0ZW5kcyBCYXNlTm9kZSB7XHJcbiAgLyoqIENvbmZpcm1lZCBzb3VyY2UgcmFuZ2UgZm9yIHRoZSBub2RlLiAqL1xyXG4gIHJhbmdlOiBSYW5nZTtcclxufVxyXG5cclxuLyoqIFJlcHJlc2VudHMgYSBkZWNsYXJhdG9yIHdob3NlIHJhbmdlIGhhcyBiZWVuIGNvbmZpcm1lZC4gKi9cclxuaW50ZXJmYWNlIFJhbmdlZFZhcmlhYmxlRGVjbGFyYXRvck5vZGUgZXh0ZW5kcyBWYXJpYWJsZURlY2xhcmF0b3JOb2RlIHtcclxuICAvKiogQ29uZmlybWVkIHNvdXJjZSByYW5nZSBmb3IgdGhlIGRlY2xhcmF0b3IuICovXHJcbiAgcmFuZ2U6IFJhbmdlO1xyXG59XHJcblxyXG4vKiogRXhwb3NlcyB0aGUgc291cmNlIGFjY2VzcyBtZXRob2RzIHVzZWQgYnkgdGhlIHJ1bGUuICovXHJcbmludGVyZmFjZSBTb3VyY2VDb2RlQWNjZXNzIHtcclxuICAvKiogUmV0dXJucyB0aGUgc291cmNlIHRleHQgZm9yIGEgbm9kZSBvciB0aGUgZnVsbCBmaWxlIHdoZW4gb21pdHRlZC4gKi9cclxuICBnZXRUZXh0OiAobm9kZT86IEJhc2VOb2RlKSA9PiBzdHJpbmc7XHJcbiAgLyoqIFJhdyBzb3VyY2UgdGV4dCB3aGVuIGF2YWlsYWJsZSBmcm9tIEVTTGludC4gKi9cclxuICB0ZXh0Pzogc3RyaW5nO1xyXG59XHJcblxyXG4vKiogUmVwcmVzZW50cyBhIHZhcmlhYmxlIGRlY2xhcmF0aW9uIHN0YXRlbWVudC4gKi9cclxuaW50ZXJmYWNlIFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIGV4dGVuZHMgQmFzZU5vZGUge1xyXG4gIC8qKiBJbmRpdmlkdWFsIGRlY2xhcmF0b3JzIGNvbnRhaW5lZCBpbiB0aGUgZGVjbGFyYXRpb24uICovXHJcbiAgZGVjbGFyYXRpb25zPzogVmFyaWFibGVEZWNsYXJhdG9yTm9kZVtdO1xyXG4gIC8qKiBUeXBlU2NyaXB0IGFtYmllbnQgZGVjbGFyYXRpb24gbW9kaWZpZXIuICovXHJcbiAgZGVjbGFyZT86IGJvb2xlYW47XHJcbiAgLyoqIERlY2xhcmF0aW9uIGtpbmQgc3VjaCBhcyBgY29uc3RgLCBgbGV0YCwgb3IgYHZhcmAuICovXHJcbiAga2luZD86IHN0cmluZztcclxufVxyXG5cclxuLyoqIFJlcHJlc2VudHMgYSBzaW5nbGUgdmFyaWFibGUgZGVjbGFyYXRvci4gKi9cclxudHlwZSBWYXJpYWJsZURlY2xhcmF0b3JOb2RlID0gQmFzZU5vZGU7XHJcblxyXG4vKipcclxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZGVjbGFyYXRpb24gY29udGFpbnMgdGhlIGRhdGEgbmVlZGVkIGZvciBhdXRvZml4LlxyXG4gKiBAcGFyYW0gbm9kZSBEZWNsYXJhdGlvbiB0byB2YWxpZGF0ZS5cclxuICogQHJldHVybnMgV2hldGhlciB0aGUgZGVjbGFyYXRpb24gZXhwb3NlcyBib3RoIGBraW5kYCBhbmQgYHJhbmdlYC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBmaXhhYmxlID0gaGFzRml4RGF0YSh7IGtpbmQ6IFwiY29uc3RcIiwgcmFuZ2U6IFswLCA1XSwgdHlwZTogXCJWYXJpYWJsZURlY2xhcmF0aW9uXCIgfSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaGFzRml4RGF0YShcclxuICBub2RlOiBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSxcclxuKTogbm9kZSBpcyBGaXhhYmxlVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUge1xyXG4gIHJldHVybiBoYXNSYW5nZShub2RlKSAmJiBcImtpbmRcIiBpbiBub2RlICYmIHR5cGVvZiBub2RlLmtpbmQgPT09IFwic3RyaW5nXCI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBub2RlIGhhcyBhIGNvbXBsZXRlIHJhbmdlLlxyXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIHZhbGlkYXRlLlxyXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBub2RlIGV4cG9zZXMgYSB2YWxpZCB0d28taXRlbSByYW5nZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCByYW5nZWQgPSBoYXNSYW5nZSh7IHJhbmdlOiBbMCwgMV0sIHR5cGU6IFwiSWRlbnRpZmllclwiIH0pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGhhc1JhbmdlKG5vZGU6IEJhc2VOb2RlIHwgdW5kZWZpbmVkKTogbm9kZSBpcyBSYW5nZWROb2RlIHtcclxuICByZXR1cm4gaXNSYW5nZShub2RlPy5yYW5nZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIHZhbHVlIGlzIGEgY29tcGxldGUgc291cmNlIHJhbmdlLlxyXG4gKiBAcGFyYW0gdmFsdWUgQ2FuZGlkYXRlIHJhbmdlIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSB2YWx1ZSBpcyBhIHZhbGlkIHNvdXJjZSByYW5nZSB0dXBsZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCB2YWxpZFJhbmdlID0gaXNSYW5nZShbMCwgMV0pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzUmFuZ2UodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBSYW5nZSB7XHJcbiAgcmV0dXJuIChcclxuICAgIEFycmF5LmlzQXJyYXkodmFsdWUpICYmXHJcbiAgICB2YWx1ZS5sZW5ndGggPT09IDIgJiZcclxuICAgIHZhbHVlLmV2ZXJ5KChwYXJ0KSA9PiBOdW1iZXIuaXNJbnRlZ2VyKHBhcnQpICYmIHBhcnQgPj0gMCkgJiZcclxuICAgIHZhbHVlWzBdIDw9IHZhbHVlWzFdXHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IHsgaGFzRml4RGF0YSwgaGFzUmFuZ2UgfTtcclxuZXhwb3J0IHR5cGUge1xyXG4gIEZpeGFibGVWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSxcclxuICBGb3JJbk9yT2ZTdGF0ZW1lbnROb2RlLFxyXG4gIEZvclN0YXRlbWVudE5vZGUsXHJcbiAgUmFuZ2VkVmFyaWFibGVEZWNsYXJhdG9yTm9kZSxcclxuICBTb3VyY2VDb2RlQWNjZXNzLFxyXG4gIFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLFxyXG4gIFZhcmlhYmxlRGVjbGFyYXRvck5vZGUsXHJcbn07XHJcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/prefer-interface-types/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/prefer-interface-types/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAwQnC,2EAA2E;AAC3E,QAAA,MAAM,wBAAwB,EAAE,IAAI,CAAC,UA6DpC,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|