@codeperfect/eslint-plugin 2.3.0 → 2.5.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/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/consistent-barrel-files-options.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +4 -2
- 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 +2 -4
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-rule.js +4 -134
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.d.ts +14 -0
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-aliases-utilities.js +154 -0
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js +10 -12
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +4 -11
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.d.ts +14 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-declaration-utilities.js +187 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.d.ts +26 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-identifier-utilities.js +95 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.d.ts +32 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-pattern-utilities.js +78 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.d.ts +18 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-public-api-usage-utilities.js +45 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.d.ts +34 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-record-utilities.js +44 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.d.ts +59 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-symbol-utilities.js +133 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.d.ts +28 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-usage-utilities.js +106 -0
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts +21 -21
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts.map +1 -1
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.js +24 -587
- package/dist/domain/architecture/no-unused-exports/rule.js +3 -3
- package/dist/domain/core/no-multiple-declarators/rule-utilities.d.ts +58 -0
- package/dist/domain/core/no-multiple-declarators/rule-utilities.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule-utilities.js +204 -0
- package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
- package/dist/domain/core/no-multiple-declarators/rule.js +9 -211
- package/dist/domain/core/no-multiple-declarators/types.js +2 -2
- package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts +57 -0
- package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/rule-utilities.js +105 -0
- package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -1
- package/dist/domain/core/prefer-interface-types/rule.js +2 -104
- package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.d.ts +25 -0
- package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.js +64 -0
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts +2 -24
- 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 +3 -65
- package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +2 -2
- package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +2 -2
- package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/rule.js +3 -2
- package/dist/domain/docs/require-example-language/examples-collect.d.ts +15 -0
- package/dist/domain/docs/require-example-language/examples-collect.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/examples-collect.js +113 -0
- package/dist/domain/docs/require-example-language/examples.d.ts +24 -13
- package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/examples.js +2 -111
- package/dist/domain/docs/require-example-language/fixes.js +4 -4
- package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/rule.js +9 -8
- 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/index.d.ts +1 -1
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +2 -2
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +8 -8
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +10 -9
- package/dist/domain/testing/aaa/analyzer.assertions.operands.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.assertions.operands.js +2 -5
- package/dist/domain/testing/aaa/analyzer.classification.helpers.js +14 -16
- package/dist/domain/testing/aaa/analyzer.classification.traversal.js +6 -4
- package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.super.js +10 -8
- package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -1
- package/dist/domain/testing/assert-actual-expected-names/rule.js +21 -23
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +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 +2 -160
- package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.d.ts +41 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/statement-purity-reporters.js +161 -0
- package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-structure/missing-section-fixes.js +2 -2
- package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts +81 -0
- package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.js +181 -0
- package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-structure/rule.js +28 -217
- package/dist/domain/testing/index.d.ts +1 -0
- package/dist/domain/testing/index.d.ts.map +1 -1
- package/dist/domain/testing/index.js +2 -1
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/index.d.ts +2 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/index.d.ts.map +1 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/index.js +2 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.d.ts +29 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.d.ts.map +1 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-detection.js +200 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.d.ts +12 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.d.ts.map +1 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-names.js +151 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.d.ts +16 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.d.ts.map +1 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule-reporting.js +109 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.d.ts +5 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.d.ts.map +1 -0
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.js +35 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +7 -4
- 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 +7 -4
- package/dist/domain/testing/prefer-vi-mocked-import/fix.js +2 -2
- package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.d.ts +18 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.js +162 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +5 -4
- package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.d.ts +29 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-seeds.js +100 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match.js +5 -246
- package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/rule.js +18 -20
- package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -1
- package/dist/domain/testing/require-act-result-capture/rule.js +47 -21
- package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -1
- package/dist/domain/testing/require-test-companion/rule.js +2 -4
- package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -1
- package/dist/domain/testing/single-act-statement/rule.js +20 -22
- package/dist/infrastructure/codeperfect-plugin.d.ts +2 -0
- package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -1
- package/dist/infrastructure/codeperfect-plugin.js +3 -2
- package/dist/infrastructure/presets.d.ts.map +1 -1
- package/dist/infrastructure/presets.js +3 -1
- package/package.json +58 -58
- package/dist/.tsbuildinfo +0 -1
|
@@ -34,8 +34,8 @@ function hasRange(node) {
|
|
|
34
34
|
function isRange(value) {
|
|
35
35
|
return (Array.isArray(value) &&
|
|
36
36
|
value.length === 2 &&
|
|
37
|
-
value.every((part) => Number.
|
|
37
|
+
value.every((part) => Number.isSafeInteger(part) && part >= 0) &&
|
|
38
38
|
value[0] <= value[1]);
|
|
39
39
|
}
|
|
40
40
|
export { hasFixData, hasRange };
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2NvcmUvbm8tbXVsdGlwbGUtZGVjbGFyYXRvcnMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0VBOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxVQUFVLENBQ2pCLElBQTZCO0lBRTdCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQztBQUMzRSxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLFFBQVEsQ0FBQyxJQUEwQjtJQUMxQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxPQUFPLENBQUMsS0FBYztJQUM3QixPQUFPLENBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDcEIsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQ2xCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztRQUM5RCxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNyQixDQUFDO0FBQ0osQ0FBQztBQUVELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUHJvdmlkZXMgdGhlIG1pbmltYWwgbm9kZSBzaGFwZSB1c2VkIGJ5IHRoZSBydWxlLiAqL1xyXG5pbnRlcmZhY2UgQmFzZU5vZGUge1xyXG4gIC8qKiBQYXJlbnQgbm9kZSB1c2VkIHRvIGluc3BlY3Qgc3Vycm91bmRpbmcgc3ludGF4LiAqL1xyXG4gIHBhcmVudD86IEJhc2VOb2RlO1xyXG4gIC8qKiBTb3VyY2UgcmFuZ2UgdXNlZCBieSBhdXRvZml4IGxvZ2ljLiAqL1xyXG4gIHJhbmdlPzogUmFuZ2U7XHJcbiAgLyoqIEVTVHJlZSBub2RlIHR5cGUuICovXHJcbiAgdHlwZTogc3RyaW5nO1xyXG59XHJcblxyXG4vKiogUmVwcmVzZW50cyBhIGRlY2xhcmF0aW9uIHRoYXQgY2FuIGJlIHJld3JpdHRlbiBieSB0aGUgZml4ZXIuICovXHJcbmludGVyZmFjZSBGaXhhYmxlVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgZXh0ZW5kcyBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSB7XHJcbiAgLyoqIENvbmZpcm1lZCBkZWNsYXJhdGlvbiBrZXl3b3JkLiAqL1xyXG4gIGtpbmQ6IHN0cmluZztcclxuICAvKiogQ29uZmlybWVkIHNvdXJjZSByYW5nZSBmb3IgdGhlIGZ1bGwgZGVjbGFyYXRpb24uICovXHJcbiAgcmFuZ2U6IFJhbmdlO1xyXG59XHJcblxyXG4vKiogUmVwcmVzZW50cyBhIGBmb3IuLi5pbmAgb3IgYGZvci4uLm9mYCBzdGF0ZW1lbnQuICovXHJcbmludGVyZmFjZSBGb3JJbk9yT2ZTdGF0ZW1lbnROb2RlIGV4dGVuZHMgQmFzZU5vZGUge1xyXG4gIC8qKiBMZWZ0LWhhbmQgaW5pdGlhbGl6ZXIgb2YgdGhlIGxvb3AuICovXHJcbiAgbGVmdD86IEJhc2VOb2RlO1xyXG59XHJcblxyXG4vKiogUmVwcmVzZW50cyBhIGNsYXNzaWMgYGZvcmAgc3RhdGVtZW50LiAqL1xyXG5pbnRlcmZhY2UgRm9yU3RhdGVtZW50Tm9kZSBleHRlbmRzIEJhc2VOb2RlIHtcclxuICAvKiogSW5pdGlhbGl6ZXIgc2VjdGlvbiBvZiB0aGUgbG9vcC4gKi9cclxuICBpbml0PzogQmFzZU5vZGUgfCBudWxsO1xyXG59XHJcblxyXG4vKiogUmVwcmVzZW50cyBhIHNvdXJjZSByYW5nZSB3aXRoaW4gdGhlIG9yaWdpbmFsIGZpbGUuICovXHJcbnR5cGUgUmFuZ2UgPSBbbnVtYmVyLCBudW1iZXJdO1xyXG5cclxuLyoqIFJlcHJlc2VudHMgYSBub2RlIHdob3NlIHJhbmdlIGhhcyBiZWVuIGNvbmZpcm1lZC4gKi9cclxuaW50ZXJmYWNlIFJhbmdlZE5vZGUgZXh0ZW5kcyBCYXNlTm9kZSB7XHJcbiAgLyoqIENvbmZpcm1lZCBzb3VyY2UgcmFuZ2UgZm9yIHRoZSBub2RlLiAqL1xyXG4gIHJhbmdlOiBSYW5nZTtcclxufVxyXG5cclxuLyoqIFJlcHJlc2VudHMgYSBkZWNsYXJhdG9yIHdob3NlIHJhbmdlIGhhcyBiZWVuIGNvbmZpcm1lZC4gKi9cclxuaW50ZXJmYWNlIFJhbmdlZFZhcmlhYmxlRGVjbGFyYXRvck5vZGUgZXh0ZW5kcyBWYXJpYWJsZURlY2xhcmF0b3JOb2RlIHtcclxuICAvKiogQ29uZmlybWVkIHNvdXJjZSByYW5nZSBmb3IgdGhlIGRlY2xhcmF0b3IuICovXHJcbiAgcmFuZ2U6IFJhbmdlO1xyXG59XHJcblxyXG4vKiogRXhwb3NlcyB0aGUgc291cmNlIGFjY2VzcyBtZXRob2RzIHVzZWQgYnkgdGhlIHJ1bGUuICovXHJcbmludGVyZmFjZSBTb3VyY2VDb2RlQWNjZXNzIHtcclxuICAvKiogUmV0dXJucyB0aGUgc291cmNlIHRleHQgZm9yIGEgbm9kZSBvciB0aGUgZnVsbCBmaWxlIHdoZW4gb21pdHRlZC4gKi9cclxuICBnZXRUZXh0OiAobm9kZT86IEJhc2VOb2RlKSA9PiBzdHJpbmc7XHJcbiAgLyoqIFJhdyBzb3VyY2UgdGV4dCB3aGVuIGF2YWlsYWJsZSBmcm9tIEVTTGludC4gKi9cclxuICB0ZXh0Pzogc3RyaW5nO1xyXG59XHJcblxyXG4vKiogUmVwcmVzZW50cyBhIHZhcmlhYmxlIGRlY2xhcmF0aW9uIHN0YXRlbWVudC4gKi9cclxuaW50ZXJmYWNlIFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIGV4dGVuZHMgQmFzZU5vZGUge1xyXG4gIC8qKiBJbmRpdmlkdWFsIGRlY2xhcmF0b3JzIGNvbnRhaW5lZCBpbiB0aGUgZGVjbGFyYXRpb24uICovXHJcbiAgZGVjbGFyYXRpb25zPzogVmFyaWFibGVEZWNsYXJhdG9yTm9kZVtdO1xyXG4gIC8qKiBUeXBlU2NyaXB0IGFtYmllbnQgZGVjbGFyYXRpb24gbW9kaWZpZXIuICovXHJcbiAgZGVjbGFyZT86IGJvb2xlYW47XHJcbiAgLyoqIERlY2xhcmF0aW9uIGtpbmQgc3VjaCBhcyBgY29uc3RgLCBgbGV0YCwgb3IgYHZhcmAuICovXHJcbiAga2luZD86IHN0cmluZztcclxufVxyXG5cclxuLyoqIFJlcHJlc2VudHMgYSBzaW5nbGUgdmFyaWFibGUgZGVjbGFyYXRvci4gKi9cclxudHlwZSBWYXJpYWJsZURlY2xhcmF0b3JOb2RlID0gQmFzZU5vZGU7XHJcblxyXG4vKipcclxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZGVjbGFyYXRpb24gY29udGFpbnMgdGhlIGRhdGEgbmVlZGVkIGZvciBhdXRvZml4LlxyXG4gKiBAcGFyYW0gbm9kZSBEZWNsYXJhdGlvbiB0byB2YWxpZGF0ZS5cclxuICogQHJldHVybnMgV2hldGhlciB0aGUgZGVjbGFyYXRpb24gZXhwb3NlcyBib3RoIGBraW5kYCBhbmQgYHJhbmdlYC5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBmaXhhYmxlID0gaGFzRml4RGF0YSh7IGtpbmQ6IFwiY29uc3RcIiwgcmFuZ2U6IFswLCA1XSwgdHlwZTogXCJWYXJpYWJsZURlY2xhcmF0aW9uXCIgfSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaGFzRml4RGF0YShcclxuICBub2RlOiBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSxcclxuKTogbm9kZSBpcyBGaXhhYmxlVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUge1xyXG4gIHJldHVybiBoYXNSYW5nZShub2RlKSAmJiBcImtpbmRcIiBpbiBub2RlICYmIHR5cGVvZiBub2RlLmtpbmQgPT09IFwic3RyaW5nXCI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBub2RlIGhhcyBhIGNvbXBsZXRlIHJhbmdlLlxyXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIHZhbGlkYXRlLlxyXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBub2RlIGV4cG9zZXMgYSB2YWxpZCB0d28taXRlbSByYW5nZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCByYW5nZWQgPSBoYXNSYW5nZSh7IHJhbmdlOiBbMCwgMV0sIHR5cGU6IFwiSWRlbnRpZmllclwiIH0pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGhhc1JhbmdlKG5vZGU6IEJhc2VOb2RlIHwgdW5kZWZpbmVkKTogbm9kZSBpcyBSYW5nZWROb2RlIHtcclxuICByZXR1cm4gaXNSYW5nZShub2RlPy5yYW5nZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIHZhbHVlIGlzIGEgY29tcGxldGUgc291cmNlIHJhbmdlLlxyXG4gKiBAcGFyYW0gdmFsdWUgQ2FuZGlkYXRlIHJhbmdlIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSB2YWx1ZSBpcyBhIHZhbGlkIHNvdXJjZSByYW5nZSB0dXBsZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCB2YWxpZFJhbmdlID0gaXNSYW5nZShbMCwgMV0pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzUmFuZ2UodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBSYW5nZSB7XHJcbiAgcmV0dXJuIChcclxuICAgIEFycmF5LmlzQXJyYXkodmFsdWUpICYmXHJcbiAgICB2YWx1ZS5sZW5ndGggPT09IDIgJiZcclxuICAgIHZhbHVlLmV2ZXJ5KChwYXJ0KSA9PiBOdW1iZXIuaXNTYWZlSW50ZWdlcihwYXJ0KSAmJiBwYXJ0ID49IDApICYmXHJcbiAgICB2YWx1ZVswXSA8PSB2YWx1ZVsxXVxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGhhc0ZpeERhdGEsIGhhc1JhbmdlIH07XHJcbmV4cG9ydCB0eXBlIHtcclxuICBGaXhhYmxlVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsXHJcbiAgRm9ySW5Pck9mU3RhdGVtZW50Tm9kZSxcclxuICBGb3JTdGF0ZW1lbnROb2RlLFxyXG4gIFJhbmdlZFZhcmlhYmxlRGVjbGFyYXRvck5vZGUsXHJcbiAgU291cmNlQ29kZUFjY2VzcyxcclxuICBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSxcclxuICBWYXJpYWJsZURlY2xhcmF0b3JOb2RlLFxyXG59O1xyXG4iXX0=
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/** Type definition for type annotation nodes inspected by this rule. */
|
|
2
|
+
interface TypeAnnotationNode {
|
|
3
|
+
/** Type field value. */
|
|
4
|
+
type: string;
|
|
5
|
+
/** Nested annotation for parenthesized types. */
|
|
6
|
+
typeAnnotation?: unknown;
|
|
7
|
+
/** Nested member annotations for union/intersection types. */
|
|
8
|
+
types?: unknown[];
|
|
9
|
+
}
|
|
10
|
+
/** Type definition for variable declarator nodes with optional identifiers. */
|
|
11
|
+
interface VariableDeclaratorNode {
|
|
12
|
+
/** Identifier or binding pattern for the variable declarator. */
|
|
13
|
+
id?: unknown;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Extracts the type annotation from a node.
|
|
17
|
+
* @param node Node that may contain a type annotation.
|
|
18
|
+
* @returns The type annotation when present.
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const annotation = getTypeAnnotationNode(node);
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
declare const getTypeAnnotationNode: (node: unknown) => TypeAnnotationNode | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Gets the return type annotation for a function-like node.
|
|
27
|
+
* @param node Node that may contain a return type.
|
|
28
|
+
* @returns The return type annotation when present.
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const annotation = getReturnTypeAnnotation(node);
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
declare const getReturnTypeAnnotation: (node: unknown) => TypeAnnotationNode | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Gets getParameters.
|
|
37
|
+
* @param node Input node value.
|
|
38
|
+
* @returns Return value output.
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* getParameters();
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
declare const getParameters: (node: unknown) => unknown[];
|
|
45
|
+
/**
|
|
46
|
+
* Finds an inline object type literal within a type annotation node.
|
|
47
|
+
* @param node Type annotation node to inspect.
|
|
48
|
+
* @returns The first inline object type literal when present.
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const inlineObjectType = getInlineObjectTypeLiteral(annotation);
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
declare const getInlineObjectTypeLiteral: (node: TypeAnnotationNode | undefined) => TypeAnnotationNode | undefined;
|
|
55
|
+
export { getInlineObjectTypeLiteral, getParameters, getReturnTypeAnnotation, getTypeAnnotationNode, };
|
|
56
|
+
export type { TypeAnnotationNode, VariableDeclaratorNode };
|
|
57
|
+
//# sourceMappingURL=rule-utilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/prefer-interface-types/rule-utilities.ts"],"names":[],"mappings":"AAiCA,wEAAwE;AACxE,UAAU,kBAAkB;IAC1B,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IAEb,iDAAiD;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,+EAA+E;AAC/E,UAAU,sBAAsB;IAC9B,iEAAiE;IACjE,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AA6BD;;;;;;;;GAQG;AACH,QAAA,MAAM,qBAAqB,GACzB,MAAM,OAAO,KACZ,kBAAkB,GAAG,SAavB,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,uBAAuB,GAC3B,MAAM,OAAO,KACZ,kBAAkB,GAAG,SAQvB,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,aAAa,GAAI,MAAM,OAAO,KAAG,OAAO,EAQ7C,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,0BAA0B,GAC9B,MAAM,kBAAkB,GAAG,SAAS,KACnC,kBAAkB,GAAG,SA8BvB,CAAC;AAEF,OAAO,EACL,0BAA0B,EAC1B,aAAa,EACb,uBAAuB,EACvB,qBAAqB,GACtB,CAAC;AACF,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets a nested type annotation from parameter wrappers.
|
|
3
|
+
* @param node Parameter wrapper node.
|
|
4
|
+
* @returns The nested type annotation when present.
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* const annotation = getNestedTypeAnnotation({ argument: node });
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
const getNestedTypeAnnotation = (node) => {
|
|
11
|
+
if (node.argument !== void 0) {
|
|
12
|
+
return getTypeAnnotationNode(node.argument);
|
|
13
|
+
}
|
|
14
|
+
if (node.left !== void 0) {
|
|
15
|
+
return getTypeAnnotationNode(node.left);
|
|
16
|
+
}
|
|
17
|
+
if (node.parameter !== void 0) {
|
|
18
|
+
return getTypeAnnotationNode(node.parameter);
|
|
19
|
+
}
|
|
20
|
+
return void 0;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Extracts the type annotation from a node.
|
|
24
|
+
* @param node Node that may contain a type annotation.
|
|
25
|
+
* @returns The type annotation when present.
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const annotation = getTypeAnnotationNode(node);
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
const getTypeAnnotationNode = (node) => {
|
|
32
|
+
if (node === null || typeof node !== "object") {
|
|
33
|
+
return void 0;
|
|
34
|
+
}
|
|
35
|
+
const directTypeAnnotation = node.typeAnnotation
|
|
36
|
+
?.typeAnnotation;
|
|
37
|
+
if (directTypeAnnotation !== void 0) {
|
|
38
|
+
return directTypeAnnotation;
|
|
39
|
+
}
|
|
40
|
+
return getNestedTypeAnnotation(node);
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Gets the return type annotation for a function-like node.
|
|
44
|
+
* @param node Node that may contain a return type.
|
|
45
|
+
* @returns The return type annotation when present.
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const annotation = getReturnTypeAnnotation(node);
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
const getReturnTypeAnnotation = (node) => {
|
|
52
|
+
if (node === null || typeof node !== "object") {
|
|
53
|
+
return void 0;
|
|
54
|
+
}
|
|
55
|
+
const typedNode = node;
|
|
56
|
+
return typedNode.returnType?.typeAnnotation;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Gets getParameters.
|
|
60
|
+
* @param node Input node value.
|
|
61
|
+
* @returns Return value output.
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* getParameters();
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
const getParameters = (node) => {
|
|
68
|
+
if (node === null || typeof node !== "object") {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
const typedNode = node;
|
|
72
|
+
return Array.isArray(typedNode.params) ? typedNode.params : [];
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Finds an inline object type literal within a type annotation node.
|
|
76
|
+
* @param node Type annotation node to inspect.
|
|
77
|
+
* @returns The first inline object type literal when present.
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* const inlineObjectType = getInlineObjectTypeLiteral(annotation);
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
const getInlineObjectTypeLiteral = (node) => {
|
|
84
|
+
if (node === void 0) {
|
|
85
|
+
return void 0;
|
|
86
|
+
}
|
|
87
|
+
if (node.type === "TSTypeLiteral") {
|
|
88
|
+
return node;
|
|
89
|
+
}
|
|
90
|
+
if (node.type === "TSParenthesizedType") {
|
|
91
|
+
return getInlineObjectTypeLiteral(node.typeAnnotation);
|
|
92
|
+
}
|
|
93
|
+
if (node.type === "TSUnionType" || node.type === "TSIntersectionType") {
|
|
94
|
+
const nestedTypes = Array.isArray(node.types) ? node.types : [];
|
|
95
|
+
for (const nestedType of nestedTypes) {
|
|
96
|
+
const nestedInlineObjectType = getInlineObjectTypeLiteral(nestedType);
|
|
97
|
+
if (nestedInlineObjectType !== void 0) {
|
|
98
|
+
return nestedInlineObjectType;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return void 0;
|
|
103
|
+
};
|
|
104
|
+
export { getInlineObjectTypeLiteral, getParameters, getReturnTypeAnnotation, getTypeAnnotationNode, };
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2NvcmUvcHJlZmVyLWludGVyZmFjZS10eXBlcy9ydWxlLXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtREE7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHVCQUF1QixHQUFHLENBQzlCLElBQXdCLEVBQ1EsRUFBRTtJQUNsQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixJQUFhLEVBQ21CLEVBQUU7SUFDbEMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlDLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sb0JBQW9CLEdBQUksSUFBZ0MsQ0FBQyxjQUFjO1FBQzNFLEVBQUUsY0FBYyxDQUFDO0lBRW5CLElBQUksb0JBQW9CLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxDQUM5QixJQUFhLEVBQ21CLEVBQUU7SUFDbEMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlDLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLElBQXdCLENBQUM7SUFFM0MsT0FBTyxTQUFTLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQztBQUM5QyxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBYSxFQUFhLEVBQUU7SUFDakQsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLElBQXdCLENBQUM7SUFFM0MsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ2pFLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSwwQkFBMEIsR0FBRyxDQUNqQyxJQUFvQyxFQUNKLEVBQUU7SUFDbEMsSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUFFLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLHFCQUFxQixFQUFFLENBQUM7UUFDeEMsT0FBTywwQkFBMEIsQ0FDL0IsSUFBSSxDQUFDLGNBQWdELENBQ3RELENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGFBQWEsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixFQUFFLENBQUM7UUFDdEUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVoRSxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sc0JBQXNCLEdBQUcsMEJBQTBCLENBQ3ZELFVBQTRDLENBQzdDLENBQUM7WUFFRixJQUFJLHNCQUFzQixLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3RDLE9BQU8sc0JBQXNCLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLGFBQWEsRUFDYix1QkFBdUIsRUFDdkIscUJBQXFCLEdBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVHlwZSBkZWZpbml0aW9uIGZvciBmdW5jdGlvbi1saWtlIG5vZGVzIGNhcnJ5aW5nIHBhcmFtZXRlcnMgYW5kIHJldHVybiB0eXBlcy4gKi9cbmludGVyZmFjZSBGdW5jdGlvbkxpa2VOb2RlIHtcbiAgLyoqIFBhcmFtcyBoZWxwZXIgdmFsdWUuICovXG4gIHBhcmFtcz86IHVua25vd25bXTtcblxuICAvKiogUmV0dXJuVHlwZSBoZWxwZXIgdmFsdWUuICovXG4gIHJldHVyblR5cGU/OiB7XG4gICAgLyoqIFR5cGVBbm5vdGF0aW9uIGhlbHBlciB2YWx1ZS4gKi9cbiAgICB0eXBlQW5ub3RhdGlvbj86IFR5cGVBbm5vdGF0aW9uTm9kZTtcbiAgfTtcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3Igbm9kZXMgdGhhdCBjYW4gd3JhcCBhIHNpbmdsZSBwYXJhbWV0ZXItbGlrZSBjaGlsZC4gKi9cbmludGVyZmFjZSBQYXJhbWV0ZXJDb250YWluZXIge1xuICAvKiogQXJndW1lbnQgaGVscGVyIHZhbHVlLiAqL1xuICBhcmd1bWVudD86IHVua25vd247XG5cbiAgLyoqIExlZnQtc2lkZSBoZWxwZXIgdmFsdWUgdXNlZCBieSBhc3NpZ25tZW50IHBhdHRlcm5zLiAqL1xuICBsZWZ0PzogdW5rbm93bjtcblxuICAvKiogUGFyYW1ldGVyIGhlbHBlciB2YWx1ZS4gKi9cbiAgcGFyYW1ldGVyPzogdW5rbm93bjtcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3Igbm9kZXMgZXhwb3NpbmcgYSBuZXN0ZWQgdHlwZSBhbm5vdGF0aW9uIHdyYXBwZXIuICovXG5pbnRlcmZhY2UgVHlwZUFubm90YXRpb25Db250YWluZXIge1xuICAvKiogVHlwZUFubm90YXRpb24gaGVscGVyIHZhbHVlLiAqL1xuICB0eXBlQW5ub3RhdGlvbj86IHtcbiAgICAvKiogVHlwZUFubm90YXRpb24gaGVscGVyIHZhbHVlLiAqL1xuICAgIHR5cGVBbm5vdGF0aW9uPzogVHlwZUFubm90YXRpb25Ob2RlO1xuICB9O1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciB0eXBlIGFubm90YXRpb24gbm9kZXMgaW5zcGVjdGVkIGJ5IHRoaXMgcnVsZS4gKi9cbmludGVyZmFjZSBUeXBlQW5ub3RhdGlvbk5vZGUge1xuICAvKiogVHlwZSBmaWVsZCB2YWx1ZS4gKi9cbiAgdHlwZTogc3RyaW5nO1xuXG4gIC8qKiBOZXN0ZWQgYW5ub3RhdGlvbiBmb3IgcGFyZW50aGVzaXplZCB0eXBlcy4gKi9cbiAgdHlwZUFubm90YXRpb24/OiB1bmtub3duO1xuXG4gIC8qKiBOZXN0ZWQgbWVtYmVyIGFubm90YXRpb25zIGZvciB1bmlvbi9pbnRlcnNlY3Rpb24gdHlwZXMuICovXG4gIHR5cGVzPzogdW5rbm93bltdO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciB2YXJpYWJsZSBkZWNsYXJhdG9yIG5vZGVzIHdpdGggb3B0aW9uYWwgaWRlbnRpZmllcnMuICovXG5pbnRlcmZhY2UgVmFyaWFibGVEZWNsYXJhdG9yTm9kZSB7XG4gIC8qKiBJZGVudGlmaWVyIG9yIGJpbmRpbmcgcGF0dGVybiBmb3IgdGhlIHZhcmlhYmxlIGRlY2xhcmF0b3IuICovXG4gIGlkPzogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBHZXRzIGEgbmVzdGVkIHR5cGUgYW5ub3RhdGlvbiBmcm9tIHBhcmFtZXRlciB3cmFwcGVycy5cbiAqIEBwYXJhbSBub2RlIFBhcmFtZXRlciB3cmFwcGVyIG5vZGUuXG4gKiBAcmV0dXJucyBUaGUgbmVzdGVkIHR5cGUgYW5ub3RhdGlvbiB3aGVuIHByZXNlbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgYW5ub3RhdGlvbiA9IGdldE5lc3RlZFR5cGVBbm5vdGF0aW9uKHsgYXJndW1lbnQ6IG5vZGUgfSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0TmVzdGVkVHlwZUFubm90YXRpb24gPSAoXG4gIG5vZGU6IFBhcmFtZXRlckNvbnRhaW5lcixcbik6IFR5cGVBbm5vdGF0aW9uTm9kZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChub2RlLmFyZ3VtZW50ICE9PSB2b2lkIDApIHtcbiAgICByZXR1cm4gZ2V0VHlwZUFubm90YXRpb25Ob2RlKG5vZGUuYXJndW1lbnQpO1xuICB9XG5cbiAgaWYgKG5vZGUubGVmdCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIGdldFR5cGVBbm5vdGF0aW9uTm9kZShub2RlLmxlZnQpO1xuICB9XG5cbiAgaWYgKG5vZGUucGFyYW1ldGVyICE9PSB2b2lkIDApIHtcbiAgICByZXR1cm4gZ2V0VHlwZUFubm90YXRpb25Ob2RlKG5vZGUucGFyYW1ldGVyKTtcbiAgfVxuXG4gIHJldHVybiB2b2lkIDA7XG59O1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSB0eXBlIGFubm90YXRpb24gZnJvbSBhIG5vZGUuXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRoYXQgbWF5IGNvbnRhaW4gYSB0eXBlIGFubm90YXRpb24uXG4gKiBAcmV0dXJucyBUaGUgdHlwZSBhbm5vdGF0aW9uIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBhbm5vdGF0aW9uID0gZ2V0VHlwZUFubm90YXRpb25Ob2RlKG5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFR5cGVBbm5vdGF0aW9uTm9kZSA9IChcbiAgbm9kZTogdW5rbm93bixcbik6IFR5cGVBbm5vdGF0aW9uTm9kZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChub2RlID09PSBudWxsIHx8IHR5cGVvZiBub2RlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IGRpcmVjdFR5cGVBbm5vdGF0aW9uID0gKG5vZGUgYXMgVHlwZUFubm90YXRpb25Db250YWluZXIpLnR5cGVBbm5vdGF0aW9uXG4gICAgPy50eXBlQW5ub3RhdGlvbjtcblxuICBpZiAoZGlyZWN0VHlwZUFubm90YXRpb24gIT09IHZvaWQgMCkge1xuICAgIHJldHVybiBkaXJlY3RUeXBlQW5ub3RhdGlvbjtcbiAgfVxuXG4gIHJldHVybiBnZXROZXN0ZWRUeXBlQW5ub3RhdGlvbihub2RlKTtcbn07XG5cbi8qKlxuICogR2V0cyB0aGUgcmV0dXJuIHR5cGUgYW5ub3RhdGlvbiBmb3IgYSBmdW5jdGlvbi1saWtlIG5vZGUuXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRoYXQgbWF5IGNvbnRhaW4gYSByZXR1cm4gdHlwZS5cbiAqIEByZXR1cm5zIFRoZSByZXR1cm4gdHlwZSBhbm5vdGF0aW9uIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBhbm5vdGF0aW9uID0gZ2V0UmV0dXJuVHlwZUFubm90YXRpb24obm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0UmV0dXJuVHlwZUFubm90YXRpb24gPSAoXG4gIG5vZGU6IHVua25vd24sXG4pOiBUeXBlQW5ub3RhdGlvbk5vZGUgfCB1bmRlZmluZWQgPT4ge1xuICBpZiAobm9kZSA9PT0gbnVsbCB8fCB0eXBlb2Ygbm9kZSAhPT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCB0eXBlZE5vZGUgPSBub2RlIGFzIEZ1bmN0aW9uTGlrZU5vZGU7XG5cbiAgcmV0dXJuIHR5cGVkTm9kZS5yZXR1cm5UeXBlPy50eXBlQW5ub3RhdGlvbjtcbn07XG5cbi8qKlxuICogR2V0cyBnZXRQYXJhbWV0ZXJzLlxuICogQHBhcmFtIG5vZGUgSW5wdXQgbm9kZSB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZ2V0UGFyYW1ldGVycygpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFBhcmFtZXRlcnMgPSAobm9kZTogdW5rbm93bik6IHVua25vd25bXSA9PiB7XG4gIGlmIChub2RlID09PSBudWxsIHx8IHR5cGVvZiBub2RlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgdHlwZWROb2RlID0gbm9kZSBhcyBGdW5jdGlvbkxpa2VOb2RlO1xuXG4gIHJldHVybiBBcnJheS5pc0FycmF5KHR5cGVkTm9kZS5wYXJhbXMpID8gdHlwZWROb2RlLnBhcmFtcyA6IFtdO1xufTtcblxuLyoqXG4gKiBGaW5kcyBhbiBpbmxpbmUgb2JqZWN0IHR5cGUgbGl0ZXJhbCB3aXRoaW4gYSB0eXBlIGFubm90YXRpb24gbm9kZS5cbiAqIEBwYXJhbSBub2RlIFR5cGUgYW5ub3RhdGlvbiBub2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUaGUgZmlyc3QgaW5saW5lIG9iamVjdCB0eXBlIGxpdGVyYWwgd2hlbiBwcmVzZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGlubGluZU9iamVjdFR5cGUgPSBnZXRJbmxpbmVPYmplY3RUeXBlTGl0ZXJhbChhbm5vdGF0aW9uKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRJbmxpbmVPYmplY3RUeXBlTGl0ZXJhbCA9IChcbiAgbm9kZTogVHlwZUFubm90YXRpb25Ob2RlIHwgdW5kZWZpbmVkLFxuKTogVHlwZUFubm90YXRpb25Ob2RlIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKG5vZGUgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBpZiAobm9kZS50eXBlID09PSBcIlRTVHlwZUxpdGVyYWxcIikge1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgaWYgKG5vZGUudHlwZSA9PT0gXCJUU1BhcmVudGhlc2l6ZWRUeXBlXCIpIHtcbiAgICByZXR1cm4gZ2V0SW5saW5lT2JqZWN0VHlwZUxpdGVyYWwoXG4gICAgICBub2RlLnR5cGVBbm5vdGF0aW9uIGFzIFR5cGVBbm5vdGF0aW9uTm9kZSB8IHVuZGVmaW5lZCxcbiAgICApO1xuICB9XG5cbiAgaWYgKG5vZGUudHlwZSA9PT0gXCJUU1VuaW9uVHlwZVwiIHx8IG5vZGUudHlwZSA9PT0gXCJUU0ludGVyc2VjdGlvblR5cGVcIikge1xuICAgIGNvbnN0IG5lc3RlZFR5cGVzID0gQXJyYXkuaXNBcnJheShub2RlLnR5cGVzKSA/IG5vZGUudHlwZXMgOiBbXTtcblxuICAgIGZvciAoY29uc3QgbmVzdGVkVHlwZSBvZiBuZXN0ZWRUeXBlcykge1xuICAgICAgY29uc3QgbmVzdGVkSW5saW5lT2JqZWN0VHlwZSA9IGdldElubGluZU9iamVjdFR5cGVMaXRlcmFsKFxuICAgICAgICBuZXN0ZWRUeXBlIGFzIFR5cGVBbm5vdGF0aW9uTm9kZSB8IHVuZGVmaW5lZCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChuZXN0ZWRJbmxpbmVPYmplY3RUeXBlICE9PSB2b2lkIDApIHtcbiAgICAgICAgcmV0dXJuIG5lc3RlZElubGluZU9iamVjdFR5cGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZvaWQgMDtcbn07XG5cbmV4cG9ydCB7XG4gIGdldElubGluZU9iamVjdFR5cGVMaXRlcmFsLFxuICBnZXRQYXJhbWV0ZXJzLFxuICBnZXRSZXR1cm5UeXBlQW5ub3RhdGlvbixcbiAgZ2V0VHlwZUFubm90YXRpb25Ob2RlLFxufTtcbmV4cG9ydCB0eXBlIHsgVHlwZUFubm90YXRpb25Ob2RlLCBWYXJpYWJsZURlY2xhcmF0b3JOb2RlIH07XG4iXX0=
|
|
@@ -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;AAyFnC,2EAA2E;AAC3E,QAAA,MAAM,wBAAwB,EAAE,IAAI,CAAC,UA6DpC,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -1,106 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Gets a nested type annotation from parameter wrappers.
|
|
3
|
-
* @param node Parameter wrapper node.
|
|
4
|
-
* @returns The nested type annotation when present.
|
|
5
|
-
* @example
|
|
6
|
-
* ```typescript
|
|
7
|
-
* const annotation = getNestedTypeAnnotation({ argument: node });
|
|
8
|
-
* ```
|
|
9
|
-
*/
|
|
10
|
-
const getNestedTypeAnnotation = (node) => {
|
|
11
|
-
if (node.argument !== void 0) {
|
|
12
|
-
return getTypeAnnotationNode(node.argument);
|
|
13
|
-
}
|
|
14
|
-
if (node.left !== void 0) {
|
|
15
|
-
return getTypeAnnotationNode(node.left);
|
|
16
|
-
}
|
|
17
|
-
if (node.parameter !== void 0) {
|
|
18
|
-
return getTypeAnnotationNode(node.parameter);
|
|
19
|
-
}
|
|
20
|
-
return void 0;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* Extracts the type annotation from a node.
|
|
24
|
-
* @param node Node that may contain a type annotation.
|
|
25
|
-
* @returns The type annotation when present.
|
|
26
|
-
* @example
|
|
27
|
-
* ```typescript
|
|
28
|
-
* const annotation = getTypeAnnotationNode(node);
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
const getTypeAnnotationNode = (node) => {
|
|
32
|
-
if (node === null || typeof node !== "object") {
|
|
33
|
-
return void 0;
|
|
34
|
-
}
|
|
35
|
-
const directTypeAnnotation = node.typeAnnotation
|
|
36
|
-
?.typeAnnotation;
|
|
37
|
-
if (directTypeAnnotation !== void 0) {
|
|
38
|
-
return directTypeAnnotation;
|
|
39
|
-
}
|
|
40
|
-
return getNestedTypeAnnotation(node);
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* Gets the return type annotation for a function-like node.
|
|
44
|
-
* @param node Node that may contain a return type.
|
|
45
|
-
* @returns The return type annotation when present.
|
|
46
|
-
* @example
|
|
47
|
-
* ```typescript
|
|
48
|
-
* const annotation = getReturnTypeAnnotation(node);
|
|
49
|
-
* ```
|
|
50
|
-
*/
|
|
51
|
-
const getReturnTypeAnnotation = (node) => {
|
|
52
|
-
if (node === null || typeof node !== "object") {
|
|
53
|
-
return void 0;
|
|
54
|
-
}
|
|
55
|
-
const typedNode = node;
|
|
56
|
-
return typedNode.returnType?.typeAnnotation;
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* Gets getParameters.
|
|
60
|
-
* @param node Input node value.
|
|
61
|
-
* @returns Return value output.
|
|
62
|
-
* @example
|
|
63
|
-
* ```typescript
|
|
64
|
-
* getParameters();
|
|
65
|
-
* ```
|
|
66
|
-
*/
|
|
67
|
-
const getParameters = (node) => {
|
|
68
|
-
if (node === null || typeof node !== "object") {
|
|
69
|
-
return [];
|
|
70
|
-
}
|
|
71
|
-
const typedNode = node;
|
|
72
|
-
return Array.isArray(typedNode.params) ? typedNode.params : [];
|
|
73
|
-
};
|
|
74
|
-
/**
|
|
75
|
-
* Finds an inline object type literal within a type annotation node.
|
|
76
|
-
* @param node Type annotation node to inspect.
|
|
77
|
-
* @returns The first inline object type literal when present.
|
|
78
|
-
* @example
|
|
79
|
-
* ```typescript
|
|
80
|
-
* const inlineObjectType = getInlineObjectTypeLiteral(annotation);
|
|
81
|
-
* ```
|
|
82
|
-
*/
|
|
83
|
-
const getInlineObjectTypeLiteral = (node) => {
|
|
84
|
-
if (node === void 0) {
|
|
85
|
-
return void 0;
|
|
86
|
-
}
|
|
87
|
-
if (node.type === "TSTypeLiteral") {
|
|
88
|
-
return node;
|
|
89
|
-
}
|
|
90
|
-
if (node.type === "TSParenthesizedType") {
|
|
91
|
-
return getInlineObjectTypeLiteral(node.typeAnnotation);
|
|
92
|
-
}
|
|
93
|
-
if (node.type === "TSUnionType" || node.type === "TSIntersectionType") {
|
|
94
|
-
const nestedTypes = Array.isArray(node.types) ? node.types : [];
|
|
95
|
-
for (const nestedType of nestedTypes) {
|
|
96
|
-
const nestedInlineObjectType = getInlineObjectTypeLiteral(nestedType);
|
|
97
|
-
if (nestedInlineObjectType !== void 0) {
|
|
98
|
-
return nestedInlineObjectType;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return void 0;
|
|
103
|
-
};
|
|
1
|
+
import { getInlineObjectTypeLiteral, getParameters, getReturnTypeAnnotation, getTypeAnnotationNode, } from "./rule-utilities.js";
|
|
104
2
|
/**
|
|
105
3
|
* Reports an inline object type annotation.
|
|
106
4
|
* @param context Rule execution context.
|
|
@@ -213,4 +111,4 @@ const preferInterfaceTypesRule = {
|
|
|
213
111
|
},
|
|
214
112
|
};
|
|
215
113
|
export { preferInterfaceTypesRule };
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vY29yZS9wcmVmZXItaW50ZXJmYWNlLXR5cGVzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcURBOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxDQUM5QixJQUF3QixFQUNRLEVBQUU7SUFDbEMsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM5QixPQUFPLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0scUJBQXFCLEdBQUcsQ0FDNUIsSUFBYSxFQUNtQixFQUFFO0lBQ2xDLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLG9CQUFvQixHQUFJLElBQWdDLENBQUMsY0FBYztRQUMzRSxFQUFFLGNBQWMsQ0FBQztJQUVuQixJQUFJLG9CQUFvQixLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDcEMsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMs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QStCLEVBQUUsb0JBQW9CO1lBQ3JELGlCQUFpQixFQUFFLG9CQUFvQjtZQUN2QyxjQUFjLEVBQUUsb0JBQW9CO1lBQ3BDLGlCQUFpQixFQUFFLG9CQUFvQjtZQUN2QyxrQkFBa0IsRUFBRSwwQkFBMEI7U0FDL0MsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUU7WUFDSixXQUFXLEVBQ1Qsa0hBQWtIO1lBQ3BILFdBQVcsRUFBRSxLQUFLO1lBQ2xCLEdBQUcsRUFBRSx5RkFBeUY7U0FDL0Y7UUFDRCxRQUFRLEVBQUU7WUFDUixpQkFBaUIsRUFDZix1RUFBdUU7U0FDMUU7UUFDRCxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxZQUFZO0tBQ25CO0NBQ0YsQ0FBQztBQUVGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgRnVuY3Rpb25MaWtlTm9kZSB7XG4gIC8qKiBQYXJhbXMgaGVscGVyIHZhbHVlLiAqL1xuICBwYXJhbXM/OiB1bmtub3duW107XG5cbiAgLyoqIFJldHVyblR5cGUgaGVscGVyIHZhbHVlLiAqL1xuICByZXR1cm5UeXBlPzoge1xuICAgIC8qKiBUeXBlQW5ub3RhdGlvbiBoZWxwZXIgdmFsdWUuICovXG4gICAgdHlwZUFubm90YXRpb24/OiBUeXBlQW5ub3RhdGlvbk5vZGU7XG4gIH07XG59XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBQYXJhbWV0ZXJDb250YWluZXIge1xuICAvKiogQXJndW1lbnQgaGVscGVyIHZhbHVlLiAqL1xuICBhcmd1bWVudD86IHVua25vd247XG5cbiAgLyoqIExlZnQtc2lkZSBoZWxwZXIgdmFsdWUgdXNlZCBieSBhc3NpZ25tZW50IHBhdHRlcm5zLiAqL1xuICBsZWZ0PzogdW5rbm93bjtcblxuICAvKiogUGFyYW1ldGVyIGhlbHBlciB2YWx1ZS4gKi9cbiAgcGFyYW1ldGVyPzogdW5rbm93bjtcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIFR5cGVBbm5vdGF0aW9uQ29udGFpbmVyIHtcbiAgLyoqIFR5cGVBbm5vdGF0aW9uIGhlbHBlciB2YWx1ZS4gKi9cbiAgdHlwZUFubm90YXRpb24/OiB7XG4gICAgLyoqIFR5cGVBbm5vdGF0aW9uIGhlbHBlciB2YWx1ZS4gKi9cbiAgICB0eXBlQW5ub3RhdGlvbj86IFR5cGVBbm5vdGF0aW9uTm9kZTtcbiAgfTtcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIFR5cGVBbm5vdGF0aW9uTm9kZSB7XG4gIC8qKiBUeXBlIGZpZWxkIHZhbHVlLiAqL1xuICB0eXBlOiBzdHJpbmc7XG5cbiAgLyoqIE5lc3RlZCBhbm5vdGF0aW9uIGZvciBwYXJlbnRoZXNpemVkIHR5cGVzLiAqL1xuICB0eXBlQW5ub3RhdGlvbj86IHVua25vd247XG5cbiAgLyoqIE5lc3RlZCBtZW1iZXIgYW5ub3RhdGlvbnMgZm9yIHVuaW9uL2ludGVyc2VjdGlvbiB0eXBlcy4gKi9cbiAgdHlwZXM/OiB1bmtub3duW107XG59XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHZhcmlhYmxlIGRlY2xhcmF0b3Igbm9kZXMgd2l0aCBvcHRpb25hbCBpZGVudGlmaWVycy4gKi9cbmludGVyZmFjZSBWYXJpYWJsZURlY2xhcmF0b3JOb2RlIHtcbiAgLyoqIElkZW50aWZpZXIgb3IgYmluZGluZyBwYXR0ZXJuIGZvciB0aGUgdmFyaWFibGUgZGVjbGFyYXRvci4gKi9cbiAgaWQ/OiB1bmtub3duO1xufVxuXG4vKipcbiAqIEdldHMgYSBuZXN0ZWQgdHlwZSBhbm5vdGF0aW9uIGZyb20gcGFyYW1ldGVyIHdyYXBwZXJzLlxuICogQHBhcmFtIG5vZGUgUGFyYW1ldGVyIHdyYXBwZXIgbm9kZS5cbiAqIEByZXR1cm5zIFRoZSBuZXN0ZWQgdHlwZSBhbm5vdGF0aW9uIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBhbm5vdGF0aW9uID0gZ2V0TmVzdGVkVHlwZUFubm90YXRpb24oeyBhcmd1bWVudDogbm9kZSB9KTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXROZXN0ZWRUeXBlQW5ub3RhdGlvbiA9IChcbiAgbm9kZTogUGFyYW1ldGVyQ29udGFpbmVyLFxuKTogVHlwZUFubm90YXRpb25Ob2RlIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKG5vZGUuYXJndW1lbnQgIT09IHZvaWQgMCkge1xuICAgIHJldHVybiBnZXRUeXBlQW5ub3RhdGlvbk5vZGUobm9kZS5hcmd1bWVudCk7XG4gIH1cblxuICBpZiAobm9kZS5sZWZ0ICE9PSB2b2lkIDApIHtcbiAgICByZXR1cm4gZ2V0VHlwZUFubm90YXRpb25Ob2RlKG5vZGUubGVmdCk7XG4gIH1cblxuICBpZiAobm9kZS5wYXJhbWV0ZXIgIT09IHZvaWQgMCkge1xuICAgIHJldHVybiBnZXRUeXBlQW5ub3RhdGlvbk5vZGUobm9kZS5wYXJhbWV0ZXIpO1xuICB9XG5cbiAgcmV0dXJuIHZvaWQgMDtcbn07XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIHR5cGUgYW5ub3RhdGlvbiBmcm9tIGEgbm9kZS5cbiAqIEBwYXJhbSBub2RlIE5vZGUgdGhhdCBtYXkgY29udGFpbiBhIHR5cGUgYW5ub3RhdGlvbi5cbiAqIEByZXR1cm5zIFRoZSB0eXBlIGFubm90YXRpb24gd2hlbiBwcmVzZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGFubm90YXRpb24gPSBnZXRUeXBlQW5ub3RhdGlvbk5vZGUobm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0VHlwZUFubm90YXRpb25Ob2RlID0gKFxuICBub2RlOiB1bmtub3duLFxuKTogVHlwZUFubm90YXRpb25Ob2RlIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKG5vZGUgPT09IG51bGwgfHwgdHlwZW9mIG5vZGUgIT09IFwib2JqZWN0XCIpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgZGlyZWN0VHlwZUFubm90YXRpb24gPSAobm9kZSBhcyBUeXBlQW5ub3RhdGlvbkNvbnRhaW5lcikudHlwZUFubm90YXRpb25cbiAgICA/LnR5cGVBbm5vdGF0aW9uO1xuXG4gIGlmIChkaXJlY3RUeXBlQW5ub3RhdGlvbiAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIGRpcmVjdFR5cGVBbm5vdGF0aW9uO1xuICB9XG5cbiAgcmV0dXJuIGdldE5lc3RlZFR5cGVBbm5vdGF0aW9uKG5vZGUpO1xufTtcblxuLyoqXG4gKiBHZXRzIHRoZSByZXR1cm4gdHlwZSBhbm5vdGF0aW9uIGZvciBhIGZ1bmN0aW9uLWxpa2Ugbm9kZS5cbiAqIEBwYXJhbSBub2RlIE5vZGUgdGhhdCBtYXkgY29udGFpbiBhIHJldHVybiB0eXBlLlxuICogQHJldHVybnMgVGhlIHJldHVybiB0eXBlIGFubm90YXRpb24gd2hlbiBwcmVzZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGFubm90YXRpb24gPSBnZXRSZXR1cm5UeXBlQW5ub3RhdGlvbihub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRSZXR1cm5UeXBlQW5ub3RhdGlvbiA9IChcbiAgbm9kZTogdW5rbm93bixcbik6IFR5cGVBbm5vdGF0aW9uTm9kZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChub2RlID09PSBudWxsIHx8IHR5cGVvZiBub2RlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IHR5cGVkTm9kZSA9IG5vZGUgYXMgRnVuY3Rpb25MaWtlTm9kZTtcblxuICByZXR1cm4gdHlwZWROb2RlLnJldHVyblR5cGU/LnR5cGVBbm5vdGF0aW9uO1xufTtcblxuLyoqXG4gKiBHZXRzIGdldFBhcmFtZXRlcnMuXG4gKiBAcGFyYW0gbm9kZSBJbnB1dCBub2RlIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBnZXRQYXJhbWV0ZXJzKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0UGFyYW1ldGVycyA9IChub2RlOiB1bmtub3duKTogdW5rbm93bltdID0+IHtcbiAgaWYgKG5vZGUgPT09IG51bGwgfHwgdHlwZW9mIG5vZGUgIT09IFwib2JqZWN0XCIpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCB0eXBlZE5vZGUgPSBub2RlIGFzIEZ1bmN0aW9uTGlrZU5vZGU7XG5cbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodHlwZWROb2RlLnBhcmFtcykgPyB0eXBlZE5vZGUucGFyYW1zIDogW107XG59O1xuXG4vKipcbiAqIEZpbmRzIGFuIGlubGluZSBvYmplY3QgdHlwZSBsaXRlcmFsIHdpdGhpbiBhIHR5cGUgYW5ub3RhdGlvbiBub2RlLlxuICogQHBhcmFtIG5vZGUgVHlwZSBhbm5vdGF0aW9uIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFRoZSBmaXJzdCBpbmxpbmUgb2JqZWN0IHR5cGUgbGl0ZXJhbCB3aGVuIHByZXNlbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaW5saW5lT2JqZWN0VHlwZSA9IGdldElubGluZU9iamVjdFR5cGVMaXRlcmFsKGFubm90YXRpb24pO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldElubGluZU9iamVjdFR5cGVMaXRlcmFsID0gKFxuICBub2RlOiBUeXBlQW5ub3RhdGlvbk5vZGUgfCB1bmRlZmluZWQsXG4pOiBUeXBlQW5ub3RhdGlvbk5vZGUgfCB1bmRlZmluZWQgPT4ge1xuICBpZiAobm9kZSA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGlmIChub2RlLnR5cGUgPT09IFwiVFNUeXBlTGl0ZXJhbFwiKSB7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBpZiAobm9kZS50eXBlID09PSBcIlRTUGFyZW50aGVzaXplZFR5cGVcIikge1xuICAgIHJldHVybiBnZXRJbmxpbmVPYmplY3RUeXBlTGl0ZXJhbChcbiAgICAgIG5vZGUudHlwZUFubm90YXRpb24gYXMgVHlwZUFubm90YXRpb25Ob2RlIHwgdW5kZWZpbmVkLFxuICAgICk7XG4gIH1cblxuICBpZiAobm9kZS50eXBlID09PSBcIlRTVW5pb25UeXBlXCIgfHwgbm9kZS50eXBlID09PSBcIlRTSW50ZXJzZWN0aW9uVHlwZVwiKSB7XG4gICAgY29uc3QgbmVzdGVkVHlwZXMgPSBBcnJheS5pc0FycmF5KG5vZGUudHlwZXMpID8gbm9kZS50eXBlcyA6IFtdO1xuXG4gICAgZm9yIChjb25zdCBuZXN0ZWRUeXBlIG9mIG5lc3RlZFR5cGVzKSB7XG4gICAgICBjb25zdCBuZXN0ZWRJbmxpbmVPYmplY3RUeXBlID0gZ2V0SW5saW5lT2JqZWN0VHlwZUxpdGVyYWwoXG4gICAgICAgIG5lc3RlZFR5cGUgYXMgVHlwZUFubm90YXRpb25Ob2RlIHwgdW5kZWZpbmVkLFxuICAgICAgKTtcblxuICAgICAgaWYgKG5lc3RlZElubGluZU9iamVjdFR5cGUgIT09IHZvaWQgMCkge1xuICAgICAgICByZXR1cm4gbmVzdGVkSW5saW5lT2JqZWN0VHlwZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdm9pZCAwO1xufTtcblxuLyoqXG4gKiBSZXBvcnRzIGFuIGlubGluZSBvYmplY3QgdHlwZSBhbm5vdGF0aW9uLlxuICogQHBhcmFtIGNvbnRleHQgUnVsZSBleGVjdXRpb24gY29udGV4dC5cbiAqIEBwYXJhbSB0eXBlQW5ub3RhdGlvbiBUeXBlIGFubm90YXRpb24gbm9kZSB0byByZXBvcnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVwb3J0VHlwZUxpdGVyYWwoY29udGV4dCwgdHlwZUFubm90YXRpb24pO1xuICogYGBgXG4gKi9cbmNvbnN0IHJlcG9ydFR5cGVMaXRlcmFsID0gKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICB0eXBlQW5ub3RhdGlvbjogVHlwZUFubm90YXRpb25Ob2RlLFxuKTogdm9pZCA9PiB7XG4gIGNvbnRleHQucmVwb3J0KHtcbiAgICBtZXNzYWdlSWQ6IFwicHJlZmVyTmFtZWRPYmplY3RcIixcbiAgICBub2RlOiB0eXBlQW5ub3RhdGlvbiBhcyB1bmtub3duIGFzIFJ1bGUuTm9kZSxcbiAgfSk7XG59O1xuXG4vKipcbiAqIENoZWNrcyBmdW5jdGlvbi1saWtlIG5vZGVzIGZvciBpbmxpbmUgb2JqZWN0IHR5cGVzLlxuICogQHBhcmFtIGNvbnRleHQgUnVsZSBleGVjdXRpb24gY29udGV4dC5cbiAqIEBwYXJhbSBub2RlIEZ1bmN0aW9uLWxpa2Ugbm9kZSB0byBjaGVjay5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjaGVja0Z1bmN0aW9uTGlrZShjb250ZXh0LCBub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBjaGVja0Z1bmN0aW9uTGlrZSA9IChcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgbm9kZTogUnVsZS5Ob2RlLFxuKTogdm9pZCA9PiB7XG4gIGZvciAoY29uc3QgcGFyYW1ldGVyIG9mIGdldFBhcmFtZXRlcnMobm9kZSkpIHtcbiAgICBjb25zdCBpbmxpbmVPYmplY3RUeXBlID0gZ2V0SW5saW5lT2JqZWN0VHlwZUxpdGVyYWwoXG4gICAgICBnZXRUeXBlQW5ub3RhdGlvbk5vZGUocGFyYW1ldGVyKSxcbiAgICApO1xuXG4gICAgaWYgKGlubGluZU9iamVjdFR5cGUgIT09IHZvaWQgMCkge1xuICAgICAgcmVwb3J0VHlwZUxpdGVyYWwoY29udGV4dCwgaW5saW5lT2JqZWN0VHlwZSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgaW5saW5lUmV0dXJuT2JqZWN0VHlwZSA9IGdldElubGluZU9iamVjdFR5cGVMaXRlcmFsKFxuICAgIGdldFJldHVyblR5cGVBbm5vdGF0aW9uKG5vZGUpLFxuICApO1xuXG4gIGlmIChpbmxpbmVSZXR1cm5PYmplY3RUeXBlICE9PSB2b2lkIDApIHtcbiAgICByZXBvcnRUeXBlTGl0ZXJhbChjb250ZXh0LCBpbmxpbmVSZXR1cm5PYmplY3RUeXBlKTtcbiAgfVxufTtcblxuLyoqXG4gKiBDaGVja3MgdmFyaWFibGUgZGVjbGFyYXRvcnMgZm9yIGlubGluZSBvYmplY3QgdHlwZXMuXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGV4ZWN1dGlvbiBjb250ZXh0LlxuICogQHBhcmFtIG5vZGUgVmFyaWFibGUgZGVjbGFyYXRvciB0byBjaGVjay5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjaGVja1ZhcmlhYmxlRGVjbGFyYXRvcihjb250ZXh0LCBub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBjaGVja1ZhcmlhYmxlRGVjbGFyYXRvciA9IChcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgbm9kZTogUnVsZS5Ob2RlLFxuKTogdm9pZCA9PiB7XG4gIGNvbnN0IHR5cGVkTm9kZSA9IG5vZGUgYXMgVmFyaWFibGVEZWNsYXJhdG9yTm9kZTtcblxuICBjb25zdCBpbmxpbmVPYmplY3RUeXBlID0gZ2V0SW5saW5lT2JqZWN0VHlwZUxpdGVyYWwoXG4gICAgZ2V0VHlwZUFubm90YXRpb25Ob2RlKHR5cGVkTm9kZS5pZCksXG4gICk7XG5cbiAgaWYgKGlubGluZU9iamVjdFR5cGUgIT09IHZvaWQgMCkge1xuICAgIHJlcG9ydFR5cGVMaXRlcmFsKGNvbnRleHQsIGlubGluZU9iamVjdFR5cGUpO1xuICB9XG59O1xuXG4vKiogRVNMaW50IHJ1bGUgcmVxdWlyaW5nIG5hbWVkIGludGVyZmFjZS90eXBlIGFsaWFzZXMgZm9yIG9iamVjdCB0eXBlcy4gKi9cbmNvbnN0IHByZWZlckludGVyZmFjZVR5cGVzUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICAvKipcbiAgICogQ3JlYXRlcyBsaXN0ZW5lcnMgdGhhdCB2YWxpZGF0ZSBmdW5jdGlvbi1saWtlIGFuZCB2YXJpYWJsZSBhbm5vdGF0aW9ucy5cbiAgICogQHBhcmFtIGNvbnRleHQgUnVsZSBleGVjdXRpb24gY29udGV4dC5cbiAgICogQHJldHVybnMgUnVsZSBsaXN0ZW5lciBtYXAuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgbGlzdGVuZXJzID0gcHJlZmVySW50ZXJmYWNlVHlwZXNSdWxlLmNyZWF0ZShjb250ZXh0KTtcbiAgICogYGBgXG4gICAqL1xuICBjcmVhdGUoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyIHtcbiAgICAvKipcbiAgICAgKiBDaGVja3MgZnVuY3Rpb24tbGlrZSBub2RlcyBmb3IgaW5saW5lIG9iamVjdCB0eXBlcy5cbiAgICAgKiBAcGFyYW0gbm9kZSBGdW5jdGlvbi1saWtlIG5vZGUgdG8gaW5zcGVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBmdW5jdGlvbkxpa2VMaXN0ZW5lcihub2RlKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBjb25zdCBmdW5jdGlvbkxpa2VMaXN0ZW5lciA9IChub2RlOiBSdWxlLk5vZGUpOiB2b2lkID0+IHtcbiAgICAgIGNoZWNrRnVuY3Rpb25MaWtlKGNvbnRleHQsIG5vZGUpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgdmFyaWFibGUgZGVjbGFyYXRvcnMgZm9yIGlubGluZSBvYmplY3QgdHlwZXMuXG4gICAgICogQHBhcmFtIG5vZGUgVmFyaWFibGUgZGVjbGFyYXRvciB0byBpbnNwZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHZhcmlhYmxlRGVjbGFyYXRvckxpc3RlbmVyKG5vZGUpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIGNvbnN0IHZhcmlhYmxlRGVjbGFyYXRvckxpc3RlbmVyID0gKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgY2hlY2tWYXJpYWJsZURlY2xhcmF0b3IoY29udGV4dCwgbm9kZSk7XG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjogZnVuY3Rpb25MaWtlTGlzdGVuZXIsXG4gICAgICBGdW5jdGlvbkRlY2xhcmF0aW9uOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIEZ1bmN0aW9uRXhwcmVzc2lvbjogZnVuY3Rpb25MaWtlTGlzdGVuZXIsXG4gICAgICBUU0NhbGxTaWduYXR1cmVEZWNsYXJhdGlvbjogZnVuY3Rpb25MaWtlTGlzdGVuZXIsXG4gICAgICBUU0NvbnN0cnVjdFNpZ25hdHVyZURlY2xhcmF0aW9uOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIFRTRGVjbGFyZUZ1bmN0aW9uOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIFRTRnVuY3Rpb25UeXBlOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIFRTTWV0aG9kU2lnbmF0dXJlOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIFZhcmlhYmxlRGVjbGFyYXRvcjogdmFyaWFibGVEZWNsYXJhdG9yTGlzdGVuZXIsXG4gICAgfTtcbiAgfSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlJlcXVpcmUgbmFtZWQgaW50ZXJmYWNlcyBvciB0eXBlIGFsaWFzZXMgZm9yIG9iamVjdCB0eXBlcyBpbiBwYXJhbWV0ZXJzLCByZXR1cm4gdHlwZXMsIGFuZCB2YXJpYWJsZSBhbm5vdGF0aW9ucy5cIixcbiAgICAgIHJlY29tbWVuZGVkOiBmYWxzZSxcbiAgICAgIHVybDogXCJodHRwczovL2dpdGh1Yi5jb20vcGFybG90aS9lc2xpbnQtcGx1Z2luL2Jsb2IvbWFpbi9kb2NzL3J1bGVzL3ByZWZlci1pbnRlcmZhY2UtdHlwZXMubWRcIixcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBwcmVmZXJOYW1lZE9iamVjdDpcbiAgICAgICAgXCJVc2UgYSBuYW1lZCBpbnRlcmZhY2Ugb3IgdHlwZSBhbGlhcyBpbnN0ZWFkIG9mIGFuIGlubGluZSBvYmplY3QgdHlwZS5cIixcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogXCJzdWdnZXN0aW9uXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGUgfTtcbiJdfQ==
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vY29yZS9wcmVmZXItaW50ZXJmYWNlLXR5cGVzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixhQUFhLEVBQ2IsdUJBQXVCLEVBQ3ZCLHFCQUFxQixHQUN0QixNQUFNLGtCQUFrQixDQUFDO0FBRTFCOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUN4QixPQUF5QixFQUN6QixjQUFrQyxFQUM1QixFQUFFO0lBQ1IsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNiLFNBQVMsRUFBRSxtQkFBbUI7UUFDOUIsSUFBSSxFQUFFLGNBQXNDO0tBQzdDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUN4QixPQUF5QixFQUN6QixJQUFlLEVBQ1QsRUFBRTtJQUNSLEtBQUssTUFBTSxTQUFTLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDNUMsTUFBTSxnQkFBZ0IsR0FBRywwQkFBMEIsQ0FDakQscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQ2pDLENBQUM7UUFFRixJQUFJLGdCQUFnQixLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLHNCQUFzQixHQUFHLDBCQUEwQixDQUN2RCx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FDOUIsQ0FBQztJQUVGLElBQUksc0JBQXNCLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUNyRCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHVCQUF1QixHQUFHLENBQzlCLE9BQXlCLEVBQ3pCLElBQWUsRUFDVCxFQUFFO0lBQ1IsTUFBTSxTQUFTLEdBQUcsSUFBOEIsQ0FBQztJQUVqRCxNQUFNLGdCQUFnQixHQUFHLDBCQUEwQixDQUNqRCxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQ3BDLENBQUM7SUFFRixJQUFJLGdCQUFnQixLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDaEMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDL0MsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLDJFQUEyRTtBQUMzRSxNQUFNLHdCQUF3QixHQUFvQjtJQUNoRDs7Ozs7Ozs7T0FRRztJQUNILE1BQU0sQ0FBQyxPQUF5QjtRQUM5Qjs7Ozs7OztXQU9HO1FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLElBQWUsRUFBUSxFQUFFO1lBQ3JELGlCQUFpQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUM7UUFFRjs7Ozs7OztXQU9HO1FBQ0gsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLElBQWUsRUFBUSxFQUFFO1lBQzNELHVCQUF1QixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUM7UUFFRixPQUFPO1lBQ0wsdUJBQXVCLEVBQUUsb0JBQW9CO1lBQzdDLG1CQUFtQixFQUFFLG9CQUFvQjtZQUN6QyxrQkFBa0IsRUFBRSxvQkFBb0I7WUFDeEMsMEJBQTBCLEVBQUUsb0JBQW9CO1lBQ2hELCtCQUErQixFQUFFLG9CQUFvQjtZQUNyRCxpQkFBaUIsRUFBRSxvQkFBb0I7WUFDdkMsY0FBYyxFQUFFLG9CQUFvQjtZQUNwQyxpQkFBaUIsRUFBRSxvQkFBb0I7WUFDdkMsa0JBQWtCLEVBQUUsMEJBQTBCO1NBQy9DLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUNULGtIQUFrSDtZQUNwSCxXQUFXLEVBQUUsS0FBSztZQUNsQixHQUFHLEVBQUUseUZBQXlGO1NBQy9GO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsaUJBQWlCLEVBQ2YsdUVBQXVFO1NBQzFFO1FBQ0QsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsWUFBWTtLQUNuQjtDQUNGLENBQUM7QUFFRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHR5cGUge1xuICBUeXBlQW5ub3RhdGlvbk5vZGUsXG4gIFZhcmlhYmxlRGVjbGFyYXRvck5vZGUsXG59IGZyb20gXCIuL3J1bGUtdXRpbGl0aWVzXCI7XG5cbmltcG9ydCB7XG4gIGdldElubGluZU9iamVjdFR5cGVMaXRlcmFsLFxuICBnZXRQYXJhbWV0ZXJzLFxuICBnZXRSZXR1cm5UeXBlQW5ub3RhdGlvbixcbiAgZ2V0VHlwZUFubm90YXRpb25Ob2RlLFxufSBmcm9tIFwiLi9ydWxlLXV0aWxpdGllc1wiO1xuXG4vKipcbiAqIFJlcG9ydHMgYW4gaW5saW5lIG9iamVjdCB0eXBlIGFubm90YXRpb24uXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGV4ZWN1dGlvbiBjb250ZXh0LlxuICogQHBhcmFtIHR5cGVBbm5vdGF0aW9uIFR5cGUgYW5ub3RhdGlvbiBub2RlIHRvIHJlcG9ydC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiByZXBvcnRUeXBlTGl0ZXJhbChjb250ZXh0LCB0eXBlQW5ub3RhdGlvbik7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVwb3J0VHlwZUxpdGVyYWwgPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIHR5cGVBbm5vdGF0aW9uOiBUeXBlQW5ub3RhdGlvbk5vZGUsXG4pOiB2b2lkID0+IHtcbiAgY29udGV4dC5yZXBvcnQoe1xuICAgIG1lc3NhZ2VJZDogXCJwcmVmZXJOYW1lZE9iamVjdFwiLFxuICAgIG5vZGU6IHR5cGVBbm5vdGF0aW9uIGFzIHVua25vd24gYXMgUnVsZS5Ob2RlLFxuICB9KTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIGZ1bmN0aW9uLWxpa2Ugbm9kZXMgZm9yIGlubGluZSBvYmplY3QgdHlwZXMuXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGV4ZWN1dGlvbiBjb250ZXh0LlxuICogQHBhcmFtIG5vZGUgRnVuY3Rpb24tbGlrZSBub2RlIHRvIGNoZWNrLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNoZWNrRnVuY3Rpb25MaWtlKGNvbnRleHQsIG5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNoZWNrRnVuY3Rpb25MaWtlID0gKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBub2RlOiBSdWxlLk5vZGUsXG4pOiB2b2lkID0+IHtcbiAgZm9yIChjb25zdCBwYXJhbWV0ZXIgb2YgZ2V0UGFyYW1ldGVycyhub2RlKSkge1xuICAgIGNvbnN0IGlubGluZU9iamVjdFR5cGUgPSBnZXRJbmxpbmVPYmplY3RUeXBlTGl0ZXJhbChcbiAgICAgIGdldFR5cGVBbm5vdGF0aW9uTm9kZShwYXJhbWV0ZXIpLFxuICAgICk7XG5cbiAgICBpZiAoaW5saW5lT2JqZWN0VHlwZSAhPT0gdm9pZCAwKSB7XG4gICAgICByZXBvcnRUeXBlTGl0ZXJhbChjb250ZXh0LCBpbmxpbmVPYmplY3RUeXBlKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBpbmxpbmVSZXR1cm5PYmplY3RUeXBlID0gZ2V0SW5saW5lT2JqZWN0VHlwZUxpdGVyYWwoXG4gICAgZ2V0UmV0dXJuVHlwZUFubm90YXRpb24obm9kZSksXG4gICk7XG5cbiAgaWYgKGlubGluZVJldHVybk9iamVjdFR5cGUgIT09IHZvaWQgMCkge1xuICAgIHJlcG9ydFR5cGVMaXRlcmFsKGNvbnRleHQsIGlubGluZVJldHVybk9iamVjdFR5cGUpO1xuICB9XG59O1xuXG4vKipcbiAqIENoZWNrcyB2YXJpYWJsZSBkZWNsYXJhdG9ycyBmb3IgaW5saW5lIG9iamVjdCB0eXBlcy5cbiAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgZXhlY3V0aW9uIGNvbnRleHQuXG4gKiBAcGFyYW0gbm9kZSBWYXJpYWJsZSBkZWNsYXJhdG9yIHRvIGNoZWNrLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNoZWNrVmFyaWFibGVEZWNsYXJhdG9yKGNvbnRleHQsIG5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNoZWNrVmFyaWFibGVEZWNsYXJhdG9yID0gKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBub2RlOiBSdWxlLk5vZGUsXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgdHlwZWROb2RlID0gbm9kZSBhcyBWYXJpYWJsZURlY2xhcmF0b3JOb2RlO1xuXG4gIGNvbnN0IGlubGluZU9iamVjdFR5cGUgPSBnZXRJbmxpbmVPYmplY3RUeXBlTGl0ZXJhbChcbiAgICBnZXRUeXBlQW5ub3RhdGlvbk5vZGUodHlwZWROb2RlLmlkKSxcbiAgKTtcblxuICBpZiAoaW5saW5lT2JqZWN0VHlwZSAhPT0gdm9pZCAwKSB7XG4gICAgcmVwb3J0VHlwZUxpdGVyYWwoY29udGV4dCwgaW5saW5lT2JqZWN0VHlwZSk7XG4gIH1cbn07XG5cbi8qKiBFU0xpbnQgcnVsZSByZXF1aXJpbmcgbmFtZWQgaW50ZXJmYWNlL3R5cGUgYWxpYXNlcyBmb3Igb2JqZWN0IHR5cGVzLiAqL1xuY29uc3QgcHJlZmVySW50ZXJmYWNlVHlwZXNSdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGxpc3RlbmVycyB0aGF0IHZhbGlkYXRlIGZ1bmN0aW9uLWxpa2UgYW5kIHZhcmlhYmxlIGFubm90YXRpb25zLlxuICAgKiBAcGFyYW0gY29udGV4dCBSdWxlIGV4ZWN1dGlvbiBjb250ZXh0LlxuICAgKiBAcmV0dXJucyBSdWxlIGxpc3RlbmVyIG1hcC5cbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBsaXN0ZW5lcnMgPSBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGUuY3JlYXRlKGNvbnRleHQpO1xuICAgKiBgYGBcbiAgICovXG4gIGNyZWF0ZShjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIge1xuICAgIC8qKlxuICAgICAqIENoZWNrcyBmdW5jdGlvbi1saWtlIG5vZGVzIGZvciBpbmxpbmUgb2JqZWN0IHR5cGVzLlxuICAgICAqIEBwYXJhbSBub2RlIEZ1bmN0aW9uLWxpa2Ugbm9kZSB0byBpbnNwZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGZ1bmN0aW9uTGlrZUxpc3RlbmVyKG5vZGUpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIGNvbnN0IGZ1bmN0aW9uTGlrZUxpc3RlbmVyID0gKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgY2hlY2tGdW5jdGlvbkxpa2UoY29udGV4dCwgbm9kZSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyB2YXJpYWJsZSBkZWNsYXJhdG9ycyBmb3IgaW5saW5lIG9iamVjdCB0eXBlcy5cbiAgICAgKiBAcGFyYW0gbm9kZSBWYXJpYWJsZSBkZWNsYXJhdG9yIHRvIGluc3BlY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdmFyaWFibGVEZWNsYXJhdG9yTGlzdGVuZXIobm9kZSk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgY29uc3QgdmFyaWFibGVEZWNsYXJhdG9yTGlzdGVuZXIgPSAobm9kZTogUnVsZS5Ob2RlKTogdm9pZCA9PiB7XG4gICAgICBjaGVja1ZhcmlhYmxlRGVjbGFyYXRvcihjb250ZXh0LCBub2RlKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIEFycm93RnVuY3Rpb25FeHByZXNzaW9uOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIEZ1bmN0aW9uRGVjbGFyYXRpb246IGZ1bmN0aW9uTGlrZUxpc3RlbmVyLFxuICAgICAgRnVuY3Rpb25FeHByZXNzaW9uOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIFRTQ2FsbFNpZ25hdHVyZURlY2xhcmF0aW9uOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIFRTQ29uc3RydWN0U2lnbmF0dXJlRGVjbGFyYXRpb246IGZ1bmN0aW9uTGlrZUxpc3RlbmVyLFxuICAgICAgVFNEZWNsYXJlRnVuY3Rpb246IGZ1bmN0aW9uTGlrZUxpc3RlbmVyLFxuICAgICAgVFNGdW5jdGlvblR5cGU6IGZ1bmN0aW9uTGlrZUxpc3RlbmVyLFxuICAgICAgVFNNZXRob2RTaWduYXR1cmU6IGZ1bmN0aW9uTGlrZUxpc3RlbmVyLFxuICAgICAgVmFyaWFibGVEZWNsYXJhdG9yOiB2YXJpYWJsZURlY2xhcmF0b3JMaXN0ZW5lcixcbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiUmVxdWlyZSBuYW1lZCBpbnRlcmZhY2VzIG9yIHR5cGUgYWxpYXNlcyBmb3Igb2JqZWN0IHR5cGVzIGluIHBhcmFtZXRlcnMsIHJldHVybiB0eXBlcywgYW5kIHZhcmlhYmxlIGFubm90YXRpb25zLlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvcHJlZmVyLWludGVyZmFjZS10eXBlcy5tZFwiLFxuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIHByZWZlck5hbWVkT2JqZWN0OlxuICAgICAgICBcIlVzZSBhIG5hbWVkIGludGVyZmFjZSBvciB0eXBlIGFsaWFzIGluc3RlYWQgb2YgYW4gaW5saW5lIG9iamVjdCB0eXBlLlwiLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiBcInN1Z2dlc3Rpb25cIixcbiAgfSxcbn07XG5cbmV4cG9ydCB7IHByZWZlckludGVyZmFjZVR5cGVzUnVsZSB9O1xuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { CommentLine } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Gets getCommentLines.
|
|
4
|
+
* @param commentText Input commentText value.
|
|
5
|
+
* @returns Return value output.
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* getCommentLines();
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
declare const getCommentLines: (commentText: string) => CommentLine[];
|
|
12
|
+
/**
|
|
13
|
+
* Builds a removal range for the specified comment line.
|
|
14
|
+
* @param commentStart Comment start offset in the source.
|
|
15
|
+
* @param commentText Full comment text.
|
|
16
|
+
* @param line Line metadata for the comment.
|
|
17
|
+
* @returns The range to remove.
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const range = buildRemovalRange(0, commentText, line);
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
declare const buildRemovalRange: (commentStart: number, commentText: string, line: CommentLine) => [number, number];
|
|
24
|
+
export { buildRemovalRange, getCommentLines };
|
|
25
|
+
//# sourceMappingURL=comment-removal-ranges.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comment-removal-ranges.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/no-interface-member-docs/comment-removal-ranges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;;;GAQG;AACH,QAAA,MAAM,eAAe,GAAI,aAAa,MAAM,KAAG,WAAW,EAyBzD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,QAAA,MAAM,iBAAiB,GACrB,cAAc,MAAM,EACpB,aAAa,MAAM,EACnB,MAAM,WAAW,KAChB,CAAC,MAAM,EAAE,MAAM,CAuBjB,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets getCommentLines.
|
|
3
|
+
* @param commentText Input commentText value.
|
|
4
|
+
* @returns Return value output.
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* getCommentLines();
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
const getCommentLines = (commentText) => {
|
|
11
|
+
const lines = commentText.split(/\r?\n/u);
|
|
12
|
+
const results = [];
|
|
13
|
+
let offset = 0;
|
|
14
|
+
for (const line of lines) {
|
|
15
|
+
const lineEnd = offset + line.length;
|
|
16
|
+
const nextSlice = commentText.slice(lineEnd, lineEnd + 2);
|
|
17
|
+
const lineBreakLength = nextSlice.startsWith("\r\n")
|
|
18
|
+
? 2
|
|
19
|
+
: nextSlice.startsWith("\n")
|
|
20
|
+
? 1
|
|
21
|
+
: 0;
|
|
22
|
+
results.push({
|
|
23
|
+
end: lineEnd,
|
|
24
|
+
lineBreakLength,
|
|
25
|
+
start: offset,
|
|
26
|
+
text: line,
|
|
27
|
+
});
|
|
28
|
+
offset = lineEnd + lineBreakLength;
|
|
29
|
+
}
|
|
30
|
+
return results;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Builds a removal range for the specified comment line.
|
|
34
|
+
* @param commentStart Comment start offset in the source.
|
|
35
|
+
* @param commentText Full comment text.
|
|
36
|
+
* @param line Line metadata for the comment.
|
|
37
|
+
* @returns The range to remove.
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* const range = buildRemovalRange(0, commentText, line);
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
const buildRemovalRange = (commentStart, commentText, line) => {
|
|
44
|
+
if (line.lineBreakLength > 0) {
|
|
45
|
+
return [
|
|
46
|
+
commentStart + line.start,
|
|
47
|
+
commentStart + line.end + line.lineBreakLength,
|
|
48
|
+
];
|
|
49
|
+
}
|
|
50
|
+
if (line.start > 0) {
|
|
51
|
+
const previousChar = commentText[line.start - 1];
|
|
52
|
+
const isPreviousLineBreak = previousChar === "\n";
|
|
53
|
+
if (isPreviousLineBreak) {
|
|
54
|
+
const lineBreakLength = line.start > 1 && commentText[line.start - 2] === "\r" ? 2 : 1;
|
|
55
|
+
return [
|
|
56
|
+
commentStart + line.start - lineBreakLength,
|
|
57
|
+
commentStart + line.end,
|
|
58
|
+
];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return [commentStart + line.start, commentStart + line.end];
|
|
62
|
+
};
|
|
63
|
+
export { buildRemovalRange, getCommentLines };
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1yZW1vdmFsLXJhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vZG9jcy9uby1pbnRlcmZhY2UtbWVtYmVyLWRvY3MvY29tbWVudC1yZW1vdmFsLXJhbmdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sZUFBZSxHQUFHLENBQUMsV0FBbUIsRUFBaUIsRUFBRTtJQUM3RCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sT0FBTyxHQUFrQixFQUFFLENBQUM7SUFDbEMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRWYsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixNQUFNLE9BQU8sR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNyQyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUQsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUM7WUFDSCxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLENBQUMsQ0FBQyxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFUixPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ1gsR0FBRyxFQUFFLE9BQU87WUFDWixlQUFlO1lBQ2YsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztRQUVILE1BQU0sR0FBRyxPQUFPLEdBQUcsZUFBZSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUN4QixZQUFvQixFQUNwQixXQUFtQixFQUNuQixJQUFpQixFQUNDLEVBQUU7SUFDcEIsSUFBSSxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzdCLE9BQU87WUFDTCxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDekIsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWU7U0FDL0MsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbkIsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakQsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLEtBQUssSUFBSSxDQUFDO1FBRWxELElBQUksbUJBQW1CLEVBQUUsQ0FBQztZQUN4QixNQUFNLGVBQWUsR0FDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRSxPQUFPO2dCQUNMLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLGVBQWU7Z0JBQzNDLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRzthQUN4QixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM5RCxDQUFDLENBQUM7QUFFRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbW1lbnRMaW5lIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBHZXRzIGdldENvbW1lbnRMaW5lcy5cbiAqIEBwYXJhbSBjb21tZW50VGV4dCBJbnB1dCBjb21tZW50VGV4dCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZ2V0Q29tbWVudExpbmVzKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0Q29tbWVudExpbmVzID0gKGNvbW1lbnRUZXh0OiBzdHJpbmcpOiBDb21tZW50TGluZVtdID0+IHtcbiAgY29uc3QgbGluZXMgPSBjb21tZW50VGV4dC5zcGxpdCgvXFxyP1xcbi91KTtcbiAgY29uc3QgcmVzdWx0czogQ29tbWVudExpbmVbXSA9IFtdO1xuICBsZXQgb2Zmc2V0ID0gMDtcblxuICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICBjb25zdCBsaW5lRW5kID0gb2Zmc2V0ICsgbGluZS5sZW5ndGg7XG4gICAgY29uc3QgbmV4dFNsaWNlID0gY29tbWVudFRleHQuc2xpY2UobGluZUVuZCwgbGluZUVuZCArIDIpO1xuICAgIGNvbnN0IGxpbmVCcmVha0xlbmd0aCA9IG5leHRTbGljZS5zdGFydHNXaXRoKFwiXFxyXFxuXCIpXG4gICAgICA/IDJcbiAgICAgIDogbmV4dFNsaWNlLnN0YXJ0c1dpdGgoXCJcXG5cIilcbiAgICAgICAgPyAxXG4gICAgICAgIDogMDtcblxuICAgIHJlc3VsdHMucHVzaCh7XG4gICAgICBlbmQ6IGxpbmVFbmQsXG4gICAgICBsaW5lQnJlYWtMZW5ndGgsXG4gICAgICBzdGFydDogb2Zmc2V0LFxuICAgICAgdGV4dDogbGluZSxcbiAgICB9KTtcblxuICAgIG9mZnNldCA9IGxpbmVFbmQgKyBsaW5lQnJlYWtMZW5ndGg7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0cztcbn07XG5cbi8qKlxuICogQnVpbGRzIGEgcmVtb3ZhbCByYW5nZSBmb3IgdGhlIHNwZWNpZmllZCBjb21tZW50IGxpbmUuXG4gKiBAcGFyYW0gY29tbWVudFN0YXJ0IENvbW1lbnQgc3RhcnQgb2Zmc2V0IGluIHRoZSBzb3VyY2UuXG4gKiBAcGFyYW0gY29tbWVudFRleHQgRnVsbCBjb21tZW50IHRleHQuXG4gKiBAcGFyYW0gbGluZSBMaW5lIG1ldGFkYXRhIGZvciB0aGUgY29tbWVudC5cbiAqIEByZXR1cm5zIFRoZSByYW5nZSB0byByZW1vdmUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmFuZ2UgPSBidWlsZFJlbW92YWxSYW5nZSgwLCBjb21tZW50VGV4dCwgbGluZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgYnVpbGRSZW1vdmFsUmFuZ2UgPSAoXG4gIGNvbW1lbnRTdGFydDogbnVtYmVyLFxuICBjb21tZW50VGV4dDogc3RyaW5nLFxuICBsaW5lOiBDb21tZW50TGluZSxcbik6IFtudW1iZXIsIG51bWJlcl0gPT4ge1xuICBpZiAobGluZS5saW5lQnJlYWtMZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGNvbW1lbnRTdGFydCArIGxpbmUuc3RhcnQsXG4gICAgICBjb21tZW50U3RhcnQgKyBsaW5lLmVuZCArIGxpbmUubGluZUJyZWFrTGVuZ3RoLFxuICAgIF07XG4gIH1cblxuICBpZiAobGluZS5zdGFydCA+IDApIHtcbiAgICBjb25zdCBwcmV2aW91c0NoYXIgPSBjb21tZW50VGV4dFtsaW5lLnN0YXJ0IC0gMV07XG4gICAgY29uc3QgaXNQcmV2aW91c0xpbmVCcmVhayA9IHByZXZpb3VzQ2hhciA9PT0gXCJcXG5cIjtcblxuICAgIGlmIChpc1ByZXZpb3VzTGluZUJyZWFrKSB7XG4gICAgICBjb25zdCBsaW5lQnJlYWtMZW5ndGggPVxuICAgICAgICBsaW5lLnN0YXJ0ID4gMSAmJiBjb21tZW50VGV4dFtsaW5lLnN0YXJ0IC0gMl0gPT09IFwiXFxyXCIgPyAyIDogMTtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIGNvbW1lbnRTdGFydCArIGxpbmUuc3RhcnQgLSBsaW5lQnJlYWtMZW5ndGgsXG4gICAgICAgIGNvbW1lbnRTdGFydCArIGxpbmUuZW5kLFxuICAgICAgXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gW2NvbW1lbnRTdGFydCArIGxpbmUuc3RhcnQsIGNvbW1lbnRTdGFydCArIGxpbmUuZW5kXTtcbn07XG5cbmV4cG9ydCB7IGJ1aWxkUmVtb3ZhbFJhbmdlLCBnZXRDb21tZW50TGluZXMgfTtcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Rule } from "eslint";
|
|
2
|
-
import type { Comment
|
|
2
|
+
import type { Comment } from "./types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Gets the closest JSDoc comment for a node.
|
|
5
5
|
* @param sourceCode Source code wrapper.
|
|
@@ -22,27 +22,5 @@ declare const getJsdocComment: (sourceCode: Rule.RuleContext["sourceCode"], node
|
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
24
|
declare const getCommentText: (sourceCode: Rule.RuleContext["sourceCode"], comment: Comment) => string;
|
|
25
|
-
|
|
26
|
-
* Gets getCommentLines.
|
|
27
|
-
* @param commentText Input commentText value.
|
|
28
|
-
* @returns Return value output.
|
|
29
|
-
* @example
|
|
30
|
-
* ```typescript
|
|
31
|
-
* getCommentLines();
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
declare const getCommentLines: (commentText: string) => CommentLine[];
|
|
35
|
-
/**
|
|
36
|
-
* Builds a removal range for the specified comment line.
|
|
37
|
-
* @param commentStart Comment start offset in the source.
|
|
38
|
-
* @param commentText Full comment text.
|
|
39
|
-
* @param line Line metadata for the comment.
|
|
40
|
-
* @returns The range to remove.
|
|
41
|
-
* @example
|
|
42
|
-
* ```typescript
|
|
43
|
-
* const range = buildRemovalRange(0, commentText, line);
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
declare const buildRemovalRange: (commentStart: number, commentText: string, line: CommentLine) => [number, number];
|
|
47
|
-
export { buildRemovalRange, getCommentLines, getCommentText, getJsdocComment };
|
|
25
|
+
export { getCommentText, getJsdocComment };
|
|
48
26
|
//# sourceMappingURL=comment-utilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comment-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/no-interface-member-docs/comment-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"comment-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/no-interface-member-docs/comment-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AA2DvC;;;;;;;;;GASG;AACH,QAAA,MAAM,eAAe,GACnB,YAAY,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAC1C,MAAM,IAAI,CAAC,IAAI,KACd,OAAO,GAAG,SAuBZ,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,cAAc,GAClB,YAAY,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAC1C,SAAS,OAAO,KACf,MASF,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
|