@codeperfect/eslint-plugin 2.6.0 → 2.8.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 -7
- package/dist/application/custom-rules.d.ts.map +1 -1
- package/dist/application/custom-rules.js +15 -57
- package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +1 -1
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts +0 -1
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/index.js +1 -2
- 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 +3 -9
- 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 +3 -9
- 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-import-export-extensions/index.d.ts +2 -0
- package/dist/domain/architecture/no-import-export-extensions/index.d.ts.map +1 -0
- package/dist/domain/architecture/no-import-export-extensions/index.js +2 -0
- package/dist/domain/architecture/no-import-export-extensions/no-import-export-extensions-rule.d.ts.map +1 -0
- package/dist/domain/architecture/no-import-export-extensions/no-import-export-extensions-rule.js +171 -0
- package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -1
- package/dist/domain/core/no-multiple-declarators/rule.js +6 -1
- package/dist/domain/core/no-multiple-declarators/types.js +1 -1
- package/dist/domain/core/no-useless-delegation/rule.d.ts.map +1 -1
- package/dist/domain/core/no-useless-delegation/rule.js +12 -8
- package/dist/domain/core/prefer-interface-types/autofix.d.ts +15 -0
- package/dist/domain/core/prefer-interface-types/autofix.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/autofix.js +196 -0
- package/dist/domain/core/prefer-interface-types/declaration-names.d.ts +23 -0
- package/dist/domain/core/prefer-interface-types/declaration-names.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/declaration-names.js +139 -0
- package/dist/domain/core/prefer-interface-types/naming.d.ts +45 -0
- package/dist/domain/core/prefer-interface-types/naming.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/naming.js +179 -0
- package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts +2 -0
- package/dist/domain/core/prefer-interface-types/rule-utilities.d.ts.map +1 -1
- package/dist/domain/core/prefer-interface-types/rule-utilities.js +1 -1
- package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -1
- package/dist/domain/core/prefer-interface-types/rule.js +40 -16
- package/dist/domain/core/prefer-interface-types/types.d.ts +80 -0
- package/dist/domain/core/prefer-interface-types/types.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/types.js +2 -0
- package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/comment-removal-ranges.js +2 -7
- 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 +2 -6
- package/dist/domain/docs/no-interface-member-docs/parameter-utilities.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +2 -5
- package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/rule.js +6 -2
- package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/examples.js +2 -6
- package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/reporting.js +34 -7
- package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/rule.js +6 -1
- package/dist/domain/docs/single-line-jsdoc/rule.d.ts.map +1 -1
- package/dist/domain/docs/single-line-jsdoc/rule.js +5 -3
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +1 -1
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +4 -2
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +1 -1
- package/dist/domain/testing/aaa/analyzer.analysis.js +1 -1
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.assertions.helpers.js +27 -3
- package/dist/domain/testing/aaa/analyzer.assertions.operands.js +1 -1
- package/dist/domain/testing/aaa/analyzer.classification.helpers.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.classification.helpers.js +29 -4
- package/dist/domain/testing/aaa/analyzer.classification.traversal.js +1 -1
- package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.super.helpers.js +1 -1
- package/dist/domain/testing/aaa/analyzer.super.js +10 -3
- package/dist/domain/testing/aaa/index.d.ts +1 -1
- package/dist/domain/testing/aaa/index.d.ts.map +1 -1
- package/dist/domain/testing/aaa/index.js +1 -1
- package/dist/domain/testing/aaa/types.d.ts +7 -9
- package/dist/domain/testing/aaa/types.d.ts.map +1 -1
- package/dist/domain/testing/aaa/types.js +1 -1
- 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 +2 -18
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.js +1 -1
- 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 +3 -2
- package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-structure/rule-section-reporting.js +44 -58
- package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -1
- package/dist/domain/testing/enforce-aaa-structure/rule.js +4 -1
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.d.ts.map +1 -1
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.js +10 -4
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.js +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-imports.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-imports.js +2 -6
- package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/rule.js +10 -4
- package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -1
- package/dist/domain/testing/require-act-result-capture/rule.js +10 -5
- package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -1
- package/dist/domain/testing/require-test-companion/rule.js +4 -13
- package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -1
- package/dist/infrastructure/codeperfect-plugin.js +2 -4
- package/dist/infrastructure/index.js +1 -1
- package/dist/infrastructure/presets.d.ts.map +1 -1
- package/dist/infrastructure/presets.js +2 -4
- package/package.json +24 -23
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.d.ts.map +0 -1
- package/dist/domain/architecture/consistent-barrel-files/no-import-export-extensions-rule.js +0 -134
- /package/dist/domain/architecture/{consistent-barrel-files → no-import-export-extensions}/no-import-export-extensions-rule.d.ts +0 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { AST_NODE_TYPES } from "@typescript-eslint/utils";
|
|
2
|
+
import { collectTopLevelNames } from "./declaration-names.js";
|
|
3
|
+
/**
|
|
4
|
+
* Allocates unique PascalCase names for collected inline object types.
|
|
5
|
+
* @param matches Collected inline object types in report order.
|
|
6
|
+
* @param topLevelStatements Program statements used for collision detection.
|
|
7
|
+
* @param reservedNames Names declared in lexical scopes that could capture a generated reference.
|
|
8
|
+
* @returns Matches paired with collision-free names.
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const namedMatches = allocateNames(matches, program.body);
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
function allocateNames(matches, topLevelStatements, reservedNames = new Set()) {
|
|
15
|
+
const usedNames = collectTopLevelNames(topLevelStatements);
|
|
16
|
+
for (const reservedName of reservedNames) {
|
|
17
|
+
usedNames.add(reservedName);
|
|
18
|
+
}
|
|
19
|
+
return matches.map((match) => {
|
|
20
|
+
const fallback = match.baseName === "Parameter" ? "Parameter" : "Type";
|
|
21
|
+
const preferredName = toPascalCase(match.baseName, fallback);
|
|
22
|
+
let name = preferredName;
|
|
23
|
+
let suffix = 1;
|
|
24
|
+
while (usedNames.has(name)) {
|
|
25
|
+
name = `${preferredName}${String(suffix)}`;
|
|
26
|
+
suffix += 1;
|
|
27
|
+
}
|
|
28
|
+
usedNames.add(name);
|
|
29
|
+
return { ...match, name };
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Narrows an unknown value to the small naming node surface.
|
|
34
|
+
* @param value Candidate node value.
|
|
35
|
+
* @returns Naming node when the value is object-like.
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* const node = asNamingNode(value);
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
function asNamingNode(value) {
|
|
42
|
+
return value !== null && typeof value === "object" ? value : void 0;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Returns an identifier name when the supplied value is an identifier node.
|
|
46
|
+
* @param value Candidate identifier node.
|
|
47
|
+
* @returns Identifier name when present.
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const name = getIdentifierName(node);
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
function getIdentifierName(value) {
|
|
54
|
+
const node = asNamingNode(value);
|
|
55
|
+
return node?.type === AST_NODE_TYPES.Identifier &&
|
|
56
|
+
typeof node.name === "string"
|
|
57
|
+
? node.name
|
|
58
|
+
: void 0;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Gets an identifier name from a parameter, including supported wrappers.
|
|
62
|
+
* @param parameter Parameter node to inspect.
|
|
63
|
+
* @returns Parameter identifier or the required fallback.
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* const name = getParameterBaseName(parameter);
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
function getParameterBaseName(parameter) {
|
|
70
|
+
let node = asNamingNode(parameter);
|
|
71
|
+
while (node !== void 0) {
|
|
72
|
+
if (node.type === AST_NODE_TYPES.Identifier &&
|
|
73
|
+
typeof node.name === "string") {
|
|
74
|
+
return node.name;
|
|
75
|
+
}
|
|
76
|
+
if (node.type === AST_NODE_TYPES.RestElement) {
|
|
77
|
+
node = asNamingNode(node.argument);
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (node.type === AST_NODE_TYPES.AssignmentPattern) {
|
|
81
|
+
node = asNamingNode(node.left);
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if (node.type === AST_NODE_TYPES.TSParameterProperty) {
|
|
85
|
+
node = asNamingNode(node.parameter);
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
return "Parameter";
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Returns a static identifier or string-literal property name.
|
|
94
|
+
* @param value Candidate property key.
|
|
95
|
+
* @returns Static property name when present.
|
|
96
|
+
* @example
|
|
97
|
+
* ```typescript
|
|
98
|
+
* const name = getPropertyName(node.key);
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
function getPropertyName(value) {
|
|
102
|
+
const node = asNamingNode(value);
|
|
103
|
+
if (node?.type === AST_NODE_TYPES.Identifier &&
|
|
104
|
+
typeof node.name === "string") {
|
|
105
|
+
return node.name;
|
|
106
|
+
}
|
|
107
|
+
if (node?.type === AST_NODE_TYPES.Literal) {
|
|
108
|
+
const literalValue = node.value;
|
|
109
|
+
return typeof literalValue === "string" ? literalValue : void 0;
|
|
110
|
+
}
|
|
111
|
+
return void 0;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Resolves the nearest declared name for a function-like return type.
|
|
115
|
+
* @param functionNode Function-like node owning the return annotation.
|
|
116
|
+
* @returns Nearby identifier or the anonymous-context fallback.
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* const name = getReturnBaseName(functionNode);
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
function getReturnBaseName(functionNode) {
|
|
123
|
+
const node = asNamingNode(functionNode);
|
|
124
|
+
if (node === void 0) {
|
|
125
|
+
return "Type";
|
|
126
|
+
}
|
|
127
|
+
const ownIdentifier = getIdentifierName(node.id) ?? getPropertyName(node.key);
|
|
128
|
+
if (ownIdentifier !== void 0) {
|
|
129
|
+
return ownIdentifier;
|
|
130
|
+
}
|
|
131
|
+
let current = node.parent;
|
|
132
|
+
while (current !== null && current !== void 0) {
|
|
133
|
+
if (current.type === AST_NODE_TYPES.VariableDeclarator) {
|
|
134
|
+
return getIdentifierName(current.id) ?? "Type";
|
|
135
|
+
}
|
|
136
|
+
const propertyName = getPropertyName(current.key);
|
|
137
|
+
if (propertyName !== void 0) {
|
|
138
|
+
return propertyName;
|
|
139
|
+
}
|
|
140
|
+
current = current.parent;
|
|
141
|
+
}
|
|
142
|
+
return "Type";
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Gets the declared identifier for a variable annotation.
|
|
146
|
+
* @param variableNode Variable declarator node.
|
|
147
|
+
* @returns Variable identifier or the anonymous-context fallback.
|
|
148
|
+
* @example
|
|
149
|
+
* ```typescript
|
|
150
|
+
* const name = getVariableBaseName(variableNode);
|
|
151
|
+
* ```
|
|
152
|
+
*/
|
|
153
|
+
function getVariableBaseName(variableNode) {
|
|
154
|
+
return getIdentifierName(asNamingNode(variableNode)?.id) ?? "Type";
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Converts an identifier-like value to a small PascalCase name.
|
|
158
|
+
* @param value Identifier-like source value.
|
|
159
|
+
* @param fallback Name used when the value has no ASCII word characters.
|
|
160
|
+
* @returns PascalCase name suitable for a generated interface.
|
|
161
|
+
* @example
|
|
162
|
+
* ```typescript
|
|
163
|
+
* const name = toPascalCase("input_value", "Type");
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
166
|
+
function toPascalCase(value, fallback) {
|
|
167
|
+
const words = value
|
|
168
|
+
.replaceAll(/([a-z\d])([A-Z])/g, "$1 $2")
|
|
169
|
+
.replaceAll(/[^A-Za-z\d]+/g, " ")
|
|
170
|
+
.trim()
|
|
171
|
+
.split(/\s+/)
|
|
172
|
+
.filter((word) => word.length > 0);
|
|
173
|
+
const name = words
|
|
174
|
+
.map((word) => word.slice(0, 1).toUpperCase() + word.slice(1))
|
|
175
|
+
.join("");
|
|
176
|
+
return name.length > 0 && !/^\d/.test(name) ? name : fallback;
|
|
177
|
+
}
|
|
178
|
+
export { allocateNames, getParameterBaseName, getReturnBaseName, getVariableBaseName, };
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RvbWFpbi9jb3JlL3ByZWZlci1pbnRlcmZhY2UtdHlwZXMvbmFtaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVExRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBUyxhQUFhLENBQ3BCLE9BQW1DLEVBQ25DLGtCQUFzQyxFQUN0QyxnQkFBcUMsSUFBSSxHQUFHLEVBQUU7SUFFOUMsTUFBTSxTQUFTLEdBQUcsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUUzRCxLQUFLLE1BQU0sWUFBWSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3pDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQzNCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN2RSxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM3RCxJQUFJLElBQUksR0FBRyxhQUFhLENBQUM7UUFDekIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRWYsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0IsSUFBSSxHQUFHLEdBQUcsYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDZCxDQUFDO1FBRUQsU0FBUyxDQUFDLEdBQUcs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LEVBQUU7U0FDTixLQUFLLENBQUMsS0FBSyxDQUFDO1NBQ1osTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRXJDLE1BQU0sSUFBSSxHQUFHLEtBQUs7U0FDZixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRVosT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBQ2hFLENBQUM7QUFFRCxPQUFPLEVBQ0wsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsbUJBQW1CLEdBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBU1RfTk9ERV9UWVBFUyB9IGZyb20gXCJAdHlwZXNjcmlwdC1lc2xpbnQvdXRpbHNcIjtcblxuaW1wb3J0IHR5cGUge1xuICBJbmxpbmVUeXBlTWF0Y2gsXG4gIE5hbWVkSW5saW5lVHlwZU1hdGNoLFxuICBOYW1pbmdOb2RlLFxufSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQgeyBjb2xsZWN0VG9wTGV2ZWxOYW1lcyB9IGZyb20gXCIuL2RlY2xhcmF0aW9uLW5hbWVzXCI7XG5cbi8qKlxuICogQWxsb2NhdGVzIHVuaXF1ZSBQYXNjYWxDYXNlIG5hbWVzIGZvciBjb2xsZWN0ZWQgaW5saW5lIG9iamVjdCB0eXBlcy5cbiAqIEBwYXJhbSBtYXRjaGVzIENvbGxlY3RlZCBpbmxpbmUgb2JqZWN0IHR5cGVzIGluIHJlcG9ydCBvcmRlci5cbiAqIEBwYXJhbSB0b3BMZXZlbFN0YXRlbWVudHMgUHJvZ3JhbSBzdGF0ZW1lbnRzIHVzZWQgZm9yIGNvbGxpc2lvbiBkZXRlY3Rpb24uXG4gKiBAcGFyYW0gcmVzZXJ2ZWROYW1lcyBOYW1lcyBkZWNsYXJlZCBpbiBsZXhpY2FsIHNjb3BlcyB0aGF0IGNvdWxkIGNhcHR1cmUgYSBnZW5lcmF0ZWQgcmVmZXJlbmNlLlxuICogQHJldHVybnMgTWF0Y2hlcyBwYWlyZWQgd2l0aCBjb2xsaXNpb24tZnJlZSBuYW1lcy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBuYW1lZE1hdGNoZXMgPSBhbGxvY2F0ZU5hbWVzKG1hdGNoZXMsIHByb2dyYW0uYm9keSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gYWxsb2NhdGVOYW1lcyhcbiAgbWF0Y2hlczogcmVhZG9ubHkgSW5saW5lVHlwZU1hdGNoW10sXG4gIHRvcExldmVsU3RhdGVtZW50czogcmVhZG9ubHkgdW5rbm93bltdLFxuICByZXNlcnZlZE5hbWVzOiBSZWFkb25seVNldDxzdHJpbmc+ID0gbmV3IFNldCgpLFxuKTogTmFtZWRJbmxpbmVUeXBlTWF0Y2hbXSB7XG4gIGNvbnN0IHVzZWROYW1lcyA9IGNvbGxlY3RUb3BMZXZlbE5hbWVzKHRvcExldmVsU3RhdGVtZW50cyk7XG5cbiAgZm9yIChjb25zdCByZXNlcnZlZE5hbWUgb2YgcmVzZXJ2ZWROYW1lcykge1xuICAgIHVzZWROYW1lcy5hZGQocmVzZXJ2ZWROYW1lKTtcbiAgfVxuXG4gIHJldHVybiBtYXRjaGVzLm1hcCgobWF0Y2gpID0+IHtcbiAgICBjb25zdCBmYWxsYmFjayA9IG1hdGNoLmJhc2VOYW1lID09PSBcIlBhcmFtZXRlclwiID8gXCJQYXJhbWV0ZXJcIiA6IFwiVHlwZVwiO1xuICAgIGNvbnN0IHByZWZlcnJlZE5hbWUgPSB0b1Bhc2NhbENhc2UobWF0Y2guYmFzZU5hbWUsIGZhbGxiYWNrKTtcbiAgICBsZXQgbmFtZSA9IHByZWZlcnJlZE5hbWU7XG4gICAgbGV0IHN1ZmZpeCA9IDE7XG5cbiAgICB3aGlsZSAodXNlZE5hbWVzLmhhcyhuYW1lKSkge1xuICAgICAgbmFtZSA9IGAke3ByZWZlcnJlZE5hbWV9JHtTdHJpbmcoc3VmZml4KX1gO1xuICAgICAgc3VmZml4ICs9IDE7XG4gICAgfVxuXG4gICAgdXNlZE5hbWVzLmFkZChuYW1lKTtcblxuICAgIHJldHVybiB7IC4uLm1hdGNoLCBuYW1lIH07XG4gIH0pO1xufVxuXG4vKipcbiAqIE5hcnJvd3MgYW4gdW5rbm93biB2YWx1ZSB0byB0aGUgc21hbGwgbmFtaW5nIG5vZGUgc3VyZmFjZS5cbiAqIEBwYXJhbSB2YWx1ZSBDYW5kaWRhdGUgbm9kZSB2YWx1ZS5cbiAqIEByZXR1cm5zIE5hbWluZyBub2RlIHdoZW4gdGhlIHZhbHVlIGlzIG9iamVjdC1saWtlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5vZGUgPSBhc05hbWluZ05vZGUodmFsdWUpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGFzTmFtaW5nTm9kZSh2YWx1ZTogdW5rbm93bik6IE5hbWluZ05vZGUgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiID8gdmFsdWUgOiB2b2lkIDA7XG59XG5cbi8qKlxuICogUmV0dXJucyBhbiBpZGVudGlmaWVyIG5hbWUgd2hlbiB0aGUgc3VwcGxpZWQgdmFsdWUgaXMgYW4gaWRlbnRpZmllciBub2RlLlxuICogQHBhcmFtIHZhbHVlIENhbmRpZGF0ZSBpZGVudGlmaWVyIG5vZGUuXG4gKiBAcmV0dXJucyBJZGVudGlmaWVyIG5hbWUgd2hlbiBwcmVzZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5hbWUgPSBnZXRJZGVudGlmaWVyTmFtZShub2RlKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRJZGVudGlmaWVyTmFtZSh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG5vZGUgPSBhc05hbWluZ05vZGUodmFsdWUpO1xuXG4gIHJldHVybiBub2RlPy50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyICYmXG4gICAgdHlwZW9mIG5vZGUubmFtZSA9PT0gXCJzdHJpbmdcIlxuICAgID8gbm9kZS5uYW1lXG4gICAgOiB2b2lkIDA7XG59XG5cbi8qKlxuICogR2V0cyBhbiBpZGVudGlmaWVyIG5hbWUgZnJvbSBhIHBhcmFtZXRlciwgaW5jbHVkaW5nIHN1cHBvcnRlZCB3cmFwcGVycy5cbiAqIEBwYXJhbSBwYXJhbWV0ZXIgUGFyYW1ldGVyIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFBhcmFtZXRlciBpZGVudGlmaWVyIG9yIHRoZSByZXF1aXJlZCBmYWxsYmFjay5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBuYW1lID0gZ2V0UGFyYW1ldGVyQmFzZU5hbWUocGFyYW1ldGVyKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRQYXJhbWV0ZXJCYXNlTmFtZShwYXJhbWV0ZXI6IHVua25vd24pOiBzdHJpbmcge1xuICBsZXQgbm9kZSA9IGFzTmFtaW5nTm9kZShwYXJhbWV0ZXIpO1xuXG4gIHdoaWxlIChub2RlICE9PSB2b2lkIDApIHtcbiAgICBpZiAoXG4gICAgICBub2RlLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIgJiZcbiAgICAgIHR5cGVvZiBub2RlLm5hbWUgPT09IFwic3RyaW5nXCJcbiAgICApIHtcbiAgICAgIHJldHVybiBub2RlLm5hbWU7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuUmVzdEVsZW1lbnQpIHtcbiAgICAgIG5vZGUgPSBhc05hbWluZ05vZGUoKG5vZGUgYXMgeyBhcmd1bWVudD86IHVua25vd24gfSkuYXJndW1lbnQpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuQXNzaWdubWVudFBhdHRlcm4pIHtcbiAgICAgIG5vZGUgPSBhc05hbWluZ05vZGUoKG5vZGUgYXMgeyBsZWZ0PzogdW5rbm93biB9KS5sZWZ0KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChub2RlLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLlRTUGFyYW1ldGVyUHJvcGVydHkpIHtcbiAgICAgIG5vZGUgPSBhc05hbWluZ05vZGUoKG5vZGUgYXMgeyBwYXJhbWV0ZXI/OiB1bmtub3duIH0pLnBhcmFtZXRlcik7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBicmVhaztcbiAgfVxuXG4gIHJldHVybiBcIlBhcmFtZXRlclwiO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBzdGF0aWMgaWRlbnRpZmllciBvciBzdHJpbmctbGl0ZXJhbCBwcm9wZXJ0eSBuYW1lLlxuICogQHBhcmFtIHZhbHVlIENhbmRpZGF0ZSBwcm9wZXJ0eSBrZXkuXG4gKiBAcmV0dXJucyBTdGF0aWMgcHJvcGVydHkgbmFtZSB3aGVuIHByZXNlbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbmFtZSA9IGdldFByb3BlcnR5TmFtZShub2RlLmtleSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZ2V0UHJvcGVydHlOYW1lKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgbm9kZSA9IGFzTmFtaW5nTm9kZSh2YWx1ZSk7XG5cbiAgaWYgKFxuICAgIG5vZGU/LnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIgJiZcbiAgICB0eXBlb2Ygbm9kZS5uYW1lID09PSBcInN0cmluZ1wiXG4gICkge1xuICAgIHJldHVybiBub2RlLm5hbWU7XG4gIH1cblxuICBpZiAobm9kZT8udHlwZSA9PT0gQVNUX05PREVfVFlQRVMuTGl0ZXJhbCkge1xuICAgIGNvbnN0IGxpdGVyYWxWYWx1ZSA9IG5vZGUudmFsdWU7XG5cbiAgICByZXR1cm4gdHlwZW9mIGxpdGVyYWxWYWx1ZSA9PT0gXCJzdHJpbmdcIiA/IGxpdGVyYWxWYWx1ZSA6IHZvaWQgMDtcbiAgfVxuXG4gIHJldHVybiB2b2lkIDA7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIG5lYXJlc3QgZGVjbGFyZWQgbmFtZSBmb3IgYSBmdW5jdGlvbi1saWtlIHJldHVybiB0eXBlLlxuICogQHBhcmFtIGZ1bmN0aW9uTm9kZSBGdW5jdGlvbi1saWtlIG5vZGUgb3duaW5nIHRoZSByZXR1cm4gYW5ub3RhdGlvbi5cbiAqIEByZXR1cm5zIE5lYXJieSBpZGVudGlmaWVyIG9yIHRoZSBhbm9ueW1vdXMtY29udGV4dCBmYWxsYmFjay5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBuYW1lID0gZ2V0UmV0dXJuQmFzZU5hbWUoZnVuY3Rpb25Ob2RlKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBnZXRSZXR1cm5CYXNlTmFtZShmdW5jdGlvbk5vZGU6IHVua25vd24pOiBzdHJpbmcge1xuICBjb25zdCBub2RlID0gYXNOYW1pbmdOb2RlKGZ1bmN0aW9uTm9kZSk7XG5cbiAgaWYgKG5vZGUgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBcIlR5cGVcIjtcbiAgfVxuXG4gIGNvbnN0IG93bklkZW50aWZpZXIgPSBnZXRJZGVudGlmaWVyTmFtZShub2RlLmlkKSA/PyBnZXRQcm9wZXJ0eU5hbWUobm9kZS5rZXkpO1xuXG4gIGlmIChvd25JZGVudGlmaWVyICE9PSB2b2lkIDApIHtcbiAgICByZXR1cm4gb3duSWRlbnRpZmllcjtcbiAgfVxuXG4gIGxldCBjdXJyZW50ID0gbm9kZS5wYXJlbnQ7XG5cbiAgd2hpbGUgKGN1cnJlbnQgIT09IG51bGwgJiYgY3VycmVudCAhPT0gdm9pZCAwKSB7XG4gICAgaWYgKGN1cnJlbnQudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuVmFyaWFibGVEZWNsYXJhdG9yKSB7XG4gICAgICByZXR1cm4gZ2V0SWRlbnRpZmllck5hbWUoY3VycmVudC5pZCkgPz8gXCJUeXBlXCI7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gZ2V0UHJvcGVydHlOYW1lKGN1cnJlbnQua2V5KTtcblxuICAgIGlmIChwcm9wZXJ0eU5hbWUgIT09IHZvaWQgMCkge1xuICAgICAgcmV0dXJuIHByb3BlcnR5TmFtZTtcbiAgICB9XG5cbiAgICBjdXJyZW50ID0gY3VycmVudC5wYXJlbnQ7XG4gIH1cblxuICByZXR1cm4gXCJUeXBlXCI7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgZGVjbGFyZWQgaWRlbnRpZmllciBmb3IgYSB2YXJpYWJsZSBhbm5vdGF0aW9uLlxuICogQHBhcmFtIHZhcmlhYmxlTm9kZSBWYXJpYWJsZSBkZWNsYXJhdG9yIG5vZGUuXG4gKiBAcmV0dXJucyBWYXJpYWJsZSBpZGVudGlmaWVyIG9yIHRoZSBhbm9ueW1vdXMtY29udGV4dCBmYWxsYmFjay5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBuYW1lID0gZ2V0VmFyaWFibGVCYXNlTmFtZSh2YXJpYWJsZU5vZGUpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGdldFZhcmlhYmxlQmFzZU5hbWUodmFyaWFibGVOb2RlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldElkZW50aWZpZXJOYW1lKGFzTmFtaW5nTm9kZSh2YXJpYWJsZU5vZGUpPy5pZCkgPz8gXCJUeXBlXCI7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gaWRlbnRpZmllci1saWtlIHZhbHVlIHRvIGEgc21hbGwgUGFzY2FsQ2FzZSBuYW1lLlxuICogQHBhcmFtIHZhbHVlIElkZW50aWZpZXItbGlrZSBzb3VyY2UgdmFsdWUuXG4gKiBAcGFyYW0gZmFsbGJhY2sgTmFtZSB1c2VkIHdoZW4gdGhlIHZhbHVlIGhhcyBubyBBU0NJSSB3b3JkIGNoYXJhY3RlcnMuXG4gKiBAcmV0dXJucyBQYXNjYWxDYXNlIG5hbWUgc3VpdGFibGUgZm9yIGEgZ2VuZXJhdGVkIGludGVyZmFjZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBuYW1lID0gdG9QYXNjYWxDYXNlKFwiaW5wdXRfdmFsdWVcIiwgXCJUeXBlXCIpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHRvUGFzY2FsQ2FzZSh2YWx1ZTogc3RyaW5nLCBmYWxsYmFjazogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgd29yZHMgPSB2YWx1ZVxuICAgIC5yZXBsYWNlQWxsKC8oW2EtelxcZF0pKFtBLVpdKS9nLCBcIiQxICQyXCIpXG4gICAgLnJlcGxhY2VBbGwoL1teQS1aYS16XFxkXSsvZywgXCIgXCIpXG4gICAgLnRyaW0oKVxuICAgIC5zcGxpdCgvXFxzKy8pXG4gICAgLmZpbHRlcigod29yZCkgPT4gd29yZC5sZW5ndGggPiAwKTtcblxuICBjb25zdCBuYW1lID0gd29yZHNcbiAgICAubWFwKCh3b3JkKSA9PiB3b3JkLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpKVxuICAgIC5qb2luKFwiXCIpO1xuXG4gIHJldHVybiBuYW1lLmxlbmd0aCA+IDAgJiYgIS9eXFxkLy50ZXN0KG5hbWUpID8gbmFtZSA6IGZhbGxiYWNrO1xufVxuXG5leHBvcnQge1xuICBhbGxvY2F0ZU5hbWVzLFxuICBnZXRQYXJhbWV0ZXJCYXNlTmFtZSxcbiAgZ2V0UmV0dXJuQmFzZU5hbWUsXG4gIGdldFZhcmlhYmxlQmFzZU5hbWUsXG59O1xuIl19
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/** Type definition for type annotation nodes inspected by this rule. */
|
|
2
2
|
interface TypeAnnotationNode {
|
|
3
|
+
/** Source range used for safe autofix replacement. */
|
|
4
|
+
range?: [number, number];
|
|
3
5
|
/** Type field value. */
|
|
4
6
|
type: string;
|
|
5
7
|
/** Nested annotation for parenthesized types. */
|
|
@@ -1 +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"}
|
|
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,sDAAsD;IACtD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEzB,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"}
|
|
@@ -102,4 +102,4 @@ const getInlineObjectTypeLiteral = (node) => {
|
|
|
102
102
|
return void 0;
|
|
103
103
|
};
|
|
104
104
|
export { getInlineObjectTypeLiteral, getParameters, getReturnTypeAnnotation, getTypeAnnotationNode, };
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2NvcmUvcHJlZmVyLWludGVyZmFjZS10eXBlcy9ydWxlLXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtREE7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHVCQUF1QixHQUFHLENBQzlCLElBQXdCLEVBQ1EsRUFBRTtJQUNsQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixJQUFhLEVBQ21CLEVBQUU7SUFDbEMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlDLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sb0JBQW9CLEdBQUksSUFBZ0MsQ0FBQyxjQUFjO1FBQzNFLEVBQUUsY0FBYyxDQUFDO0lBRW5CLElBQUksb0JBQW9CLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxDQUM5QixJQUFhLEVBQ21CLEVBQUU7SUFDbEMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlDLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLElBQXdCLENBQUM7SUFFM0MsT0FBTyxTQUFTLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQztBQUM5QyxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBYSxFQUFhLEVBQUU7SUFDakQsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLElBQXdCLENBQUM7SUFFM0MsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ2pFLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSwwQkFBMEIsR0FBRyxDQUNqQyxJQUFvQyxFQUNKLEVBQUU7SUFDbEMsSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUFFLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLHFCQUFxQixFQUFFLENBQUM7UUFDeEMsT0FBTywwQkFBMEIsQ0FDL0IsSUFBSSxDQUFDLGNBQWdELENBQ3RELENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGFBQWEsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixFQUFFLENBQUM7UUFDdEUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVoRSxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sc0JBQXNCLEdBQUcsMEJBQTBCLENBQ3ZELFVBQTRDLENBQzdDLENBQUM7WUFFRixJQUFJLHNCQUFzQixLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3RDLE9BQU8sc0JBQXNCLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLGFBQWEsRUFDYix1QkFBdUIsRUFDdkIscUJBQXFCLEdBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVHlwZSBkZWZpbml0aW9uIGZvciBmdW5jdGlvbi1saWtlIG5vZGVzIGNhcnJ5aW5nIHBhcmFtZXRlcnMgYW5kIHJldHVybiB0eXBlcy4gKi9cbmludGVyZmFjZSBGdW5jdGlvbkxpa2VOb2RlIHtcbiAgLyoqIFBhcmFtcyBoZWxwZXIgdmFsdWUuICovXG4gIHBhcmFtcz86IHVua25vd25bXTtcblxuICAvKiogUmV0dXJuVHlwZSBoZWxwZXIgdmFsdWUuICovXG4gIHJldHVyblR5cGU/OiB7XG4gICAgLyoqIFR5cGVBbm5vdGF0aW9uIGhlbHBlciB2YWx1ZS4gKi9cbiAgICB0eXBlQW5ub3RhdGlvbj86IFR5cGVBbm5vdGF0aW9uTm9kZTtcbiAgfTtcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3Igbm9kZXMgdGhhdCBjYW4gd3JhcCBhIHNpbmdsZSBwYXJhbWV0ZXItbGlrZSBjaGlsZC4gKi9cbmludGVyZmFjZSBQYXJhbWV0ZXJDb250YWluZXIge1xuICAvKiogQXJndW1lbnQgaGVscGVyIHZhbHVlLiAqL1xuICBhcmd1bWVudD86IHVua25vd247XG5cbiAgLyoqIExlZnQtc2lkZSBoZWxwZXIgdmFsdWUgdXNlZCBieSBhc3NpZ25tZW50IHBhdHRlcm5zLiAqL1xuICBsZWZ0PzogdW5rbm93bjtcblxuICAvKiogUGFyYW1ldGVyIGhlbHBlciB2YWx1ZS4gKi9cbiAgcGFyYW1ldGVyPzogdW5rbm93bjtcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3Igbm9kZXMgZXhwb3NpbmcgYSBuZXN0ZWQgdHlwZSBhbm5vdGF0aW9uIHdyYXBwZXIuICovXG5pbnRlcmZhY2UgVHlwZUFubm90YXRpb25Db250YWluZXIge1xuICAvKiogVHlwZUFubm90YXRpb24gaGVscGVyIHZhbHVlLiAqL1xuICB0eXBlQW5ub3RhdGlvbj86IHtcbiAgICAvKiogVHlwZUFubm90YXRpb24gaGVscGVyIHZhbHVlLiAqL1xuICAgIHR5cGVBbm5vdGF0aW9uPzogVHlwZUFubm90YXRpb25Ob2RlO1xuICB9O1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciB0eXBlIGFubm90YXRpb24gbm9kZXMgaW5zcGVjdGVkIGJ5IHRoaXMgcnVsZS4gKi9cbmludGVyZmFjZSBUeXBlQW5ub3RhdGlvbk5vZGUge1xuICAvKiogVHlwZSBmaWVsZCB2YWx1ZS4gKi9cbiAgdHlwZTogc3RyaW5nO1xuXG4gIC8qKiBOZXN0ZWQgYW5ub3RhdGlvbiBmb3IgcGFyZW50aGVzaXplZCB0eXBlcy4gKi9cbiAgdHlwZUFubm90YXRpb24/OiB1bmtub3duO1xuXG4gIC8qKiBOZXN0ZWQgbWVtYmVyIGFubm90YXRpb25zIGZvciB1bmlvbi9pbnRlcnNlY3Rpb24gdHlwZXMuICovXG4gIHR5cGVzPzogdW5rbm93bltdO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciB2YXJpYWJsZSBkZWNsYXJhdG9yIG5vZGVzIHdpdGggb3B0aW9uYWwgaWRlbnRpZmllcnMuICovXG5pbnRlcmZhY2UgVmFyaWFibGVEZWNsYXJhdG9yTm9kZSB7XG4gIC8qKiBJZGVudGlmaWVyIG9yIGJpbmRpbmcgcGF0dGVybiBmb3IgdGhlIHZhcmlhYmxlIGRlY2xhcmF0b3IuICovXG4gIGlkPzogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBHZXRzIGEgbmVzdGVkIHR5cGUgYW5ub3RhdGlvbiBmcm9tIHBhcmFtZXRlciB3cmFwcGVycy5cbiAqIEBwYXJhbSBub2RlIFBhcmFtZXRlciB3cmFwcGVyIG5vZGUuXG4gKiBAcmV0dXJucyBUaGUgbmVzdGVkIHR5cGUgYW5ub3RhdGlvbiB3aGVuIHByZXNlbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgYW5ub3RhdGlvbiA9IGdldE5lc3RlZFR5cGVBbm5vdGF0aW9uKHsgYXJndW1lbnQ6IG5vZGUgfSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0TmVzdGVkVHlwZUFubm90YXRpb24gPSAoXG4gIG5vZGU6IFBhcmFtZXRlckNvbnRhaW5lcixcbik6IFR5cGVBbm5vdGF0aW9uTm9kZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChub2RlLmFyZ3VtZW50ICE9PSB2b2lkIDApIHtcbiAgICByZXR1cm4gZ2V0VHlwZUFubm90YXRpb25Ob2RlKG5vZGUuYXJndW1lbnQpO1xuICB9XG5cbiAgaWYgKG5vZGUubGVmdCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIGdldFR5cGVBbm5vdGF0aW9uTm9kZShub2RlLmxlZnQpO1xuICB9XG5cbiAgaWYgKG5vZGUucGFyYW1ldGVyICE9PSB2b2lkIDApIHtcbiAgICByZXR1cm4gZ2V0VHlwZUFubm90YXRpb25Ob2RlKG5vZGUucGFyYW1ldGVyKTtcbiAgfVxuXG4gIHJldHVybiB2b2lkIDA7XG59O1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSB0eXBlIGFubm90YXRpb24gZnJvbSBhIG5vZGUuXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRoYXQgbWF5IGNvbnRhaW4gYSB0eXBlIGFubm90YXRpb24uXG4gKiBAcmV0dXJucyBUaGUgdHlwZSBhbm5vdGF0aW9uIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBhbm5vdGF0aW9uID0gZ2V0VHlwZUFubm90YXRpb25Ob2RlKG5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFR5cGVBbm5vdGF0aW9uTm9kZSA9IChcbiAgbm9kZTogdW5rbm93bixcbik6IFR5cGVBbm5vdGF0aW9uTm9kZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChub2RlID09PSBudWxsIHx8IHR5cGVvZiBub2RlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IGRpcmVjdFR5cGVBbm5vdGF0aW9uID0gKG5vZGUgYXMgVHlwZUFubm90YXRpb25Db250YWluZXIpLnR5cGVBbm5vdGF0aW9uXG4gICAgPy50eXBlQW5ub3RhdGlvbjtcblxuICBpZiAoZGlyZWN0VHlwZUFubm90YXRpb24gIT09IHZvaWQgMCkge1xuICAgIHJldHVybiBkaXJlY3RUeXBlQW5ub3RhdGlvbjtcbiAgfVxuXG4gIHJldHVybiBnZXROZXN0ZWRUeXBlQW5ub3RhdGlvbihub2RlKTtcbn07XG5cbi8qKlxuICogR2V0cyB0aGUgcmV0dXJuIHR5cGUgYW5ub3RhdGlvbiBmb3IgYSBmdW5jdGlvbi1saWtlIG5vZGUuXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRoYXQgbWF5IGNvbnRhaW4gYSByZXR1cm4gdHlwZS5cbiAqIEByZXR1cm5zIFRoZSByZXR1cm4gdHlwZSBhbm5vdGF0aW9uIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBhbm5vdGF0aW9uID0gZ2V0UmV0dXJuVHlwZUFubm90YXRpb24obm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0UmV0dXJuVHlwZUFubm90YXRpb24gPSAoXG4gIG5vZGU6IHVua25vd24sXG4pOiBUeXBlQW5ub3RhdGlvbk5vZGUgfCB1bmRlZmluZWQgPT4ge1xuICBpZiAobm9kZSA9PT0gbnVsbCB8fCB0eXBlb2Ygbm9kZSAhPT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCB0eXBlZE5vZGUgPSBub2RlIGFzIEZ1bmN0aW9uTGlrZU5vZGU7XG5cbiAgcmV0dXJuIHR5cGVkTm9kZS5yZXR1cm5UeXBlPy50eXBlQW5ub3RhdGlvbjtcbn07XG5cbi8qKlxuICogR2V0cyBnZXRQYXJhbWV0ZXJzLlxuICogQHBhcmFtIG5vZGUgSW5wdXQgbm9kZSB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogZ2V0UGFyYW1ldGVycygpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFBhcmFtZXRlcnMgPSAobm9kZTogdW5rbm93bik6IHVua25vd25bXSA9PiB7XG4gIGlmIChub2RlID09PSBudWxsIHx8IHR5cGVvZiBub2RlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgdHlwZWROb2RlID0gbm9kZSBhcyBGdW5jdGlvbkxpa2VOb2RlO1xuXG4gIHJldHVybiBBcnJheS5pc0FycmF5KHR5cGVkTm9kZS5wYXJhbXMpID8gdHlwZWROb2RlLnBhcmFtcyA6IFtdO1xufTtcblxuLyoqXG4gKiBGaW5kcyBhbiBpbmxpbmUgb2JqZWN0IHR5cGUgbGl0ZXJhbCB3aXRoaW4gYSB0eXBlIGFubm90YXRpb24gbm9kZS5cbiAqIEBwYXJhbSBub2RlIFR5cGUgYW5ub3RhdGlvbiBub2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUaGUgZmlyc3QgaW5saW5lIG9iamVjdCB0eXBlIGxpdGVyYWwgd2hlbiBwcmVzZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGlubGluZU9iamVjdFR5cGUgPSBnZXRJbmxpbmVPYmplY3RUeXBlTGl0ZXJhbChhbm5vdGF0aW9uKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRJbmxpbmVPYmplY3RUeXBlTGl0ZXJhbCA9IChcbiAgbm9kZTogVHlwZUFubm90YXRpb25Ob2RlIHwgdW5kZWZpbmVkLFxuKTogVHlwZUFubm90YXRpb25Ob2RlIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKG5vZGUgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBpZiAobm9kZS50eXBlID09PSBcIlRTVHlwZUxpdGVyYWxcIikge1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgaWYgKG5vZGUudHlwZSA9PT0gXCJUU1BhcmVudGhlc2l6ZWRUeXBlXCIpIHtcbiAgICByZXR1cm4gZ2V0SW5saW5lT2JqZWN0VHlwZUxpdGVyYWwoXG4gICAgICBub2RlLnR5cGVBbm5vdGF0aW9uIGFzIFR5cGVBbm5vdGF0aW9uTm9kZSB8IHVuZGVmaW5lZCxcbiAgICApO1xuICB9XG5cbiAgaWYgKG5vZGUudHlwZSA9PT0gXCJUU1VuaW9uVHlwZVwiIHx8IG5vZGUudHlwZSA9PT0gXCJUU0ludGVyc2VjdGlvblR5cGVcIikge1xuICAgIGNvbnN0IG5lc3RlZFR5cGVzID0gQXJyYXkuaXNBcnJheShub2RlLnR5cGVzKSA/IG5vZGUudHlwZXMgOiBbXTtcblxuICAgIGZvciAoY29uc3QgbmVzdGVkVHlwZSBvZiBuZXN0ZWRUeXBlcykge1xuICAgICAgY29uc3QgbmVzdGVkSW5saW5lT2JqZWN0VHlwZSA9IGdldElubGluZU9iamVjdFR5cGVMaXRlcmFsKFxuICAgICAgICBuZXN0ZWRUeXBlIGFzIFR5cGVBbm5vdGF0aW9uTm9kZSB8IHVuZGVmaW5lZCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChuZXN0ZWRJbmxpbmVPYmplY3RUeXBlICE9PSB2b2lkIDApIHtcbiAgICAgICAgcmV0dXJuIG5lc3RlZElubGluZU9iamVjdFR5cGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZvaWQgMDtcbn07XG5cbmV4cG9ydCB7XG4gIGdldElubGluZU9iamVjdFR5cGVMaXRlcmFsLFxuICBnZXRQYXJhbWV0ZXJzLFxuICBnZXRSZXR1cm5UeXBlQW5ub3RhdGlvbixcbiAgZ2V0VHlwZUFubm90YXRpb25Ob2RlLFxufTtcbmV4cG9ydCB0eXBlIHsgVHlwZUFubm90YXRpb25Ob2RlLCBWYXJpYWJsZURlY2xhcmF0b3JOb2RlIH07XG4iXX0=
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2NvcmUvcHJlZmVyLWludGVyZmFjZS10eXBlcy9ydWxlLXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzREE7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHVCQUF1QixHQUFHLENBQzlCLElBQXdCLEVBQ1EsRUFBRTtJQUNsQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixJQUFhLEVBQ21CLEVBQUU7SUFDbEMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlDLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sb0JBQW9CLEdBQUksSUFBZ0MsQ0FBQyxjQUFjO1FBQzNFLEVBQUUsY0FBYyxDQUFDO0lBRW5CLElBQUksb0JBQW9CLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxDQUM5QixJQUFhLEVBQ21CLEVBQUU7SUFDbEMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlDLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLElBQXdCLENBQUM7SUFFM0MsT0FBTyxTQUFTLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQztBQUM5QyxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBYSxFQUFhLEVBQUU7SUFDakQsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLElBQXdCLENBQUM7SUFFM0MsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ2pFLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSwwQkFBMEIsR0FBRyxDQUNqQyxJQUFvQyxFQUNKLEVBQUU7SUFDbEMsSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNwQixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUFFLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLHFCQUFxQixFQUFFLENBQUM7UUFDeEMsT0FBTywwQkFBMEIsQ0FDL0IsSUFBSSxDQUFDLGNBQWdELENBQ3RELENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGFBQWEsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixFQUFFLENBQUM7UUFDdEUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVoRSxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sc0JBQXNCLEdBQUcsMEJBQTBCLENBQ3ZELFVBQTRDLENBQzdDLENBQUM7WUFFRixJQUFJLHNCQUFzQixLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3RDLE9BQU8sc0JBQXNCLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLGFBQWEsRUFDYix1QkFBdUIsRUFDdkIscUJBQXFCLEdBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVHlwZSBkZWZpbml0aW9uIGZvciBmdW5jdGlvbi1saWtlIG5vZGVzIGNhcnJ5aW5nIHBhcmFtZXRlcnMgYW5kIHJldHVybiB0eXBlcy4gKi9cbmludGVyZmFjZSBGdW5jdGlvbkxpa2VOb2RlIHtcbiAgLyoqIFBhcmFtcyBoZWxwZXIgdmFsdWUuICovXG4gIHBhcmFtcz86IHVua25vd25bXTtcblxuICAvKiogUmV0dXJuVHlwZSBoZWxwZXIgdmFsdWUuICovXG4gIHJldHVyblR5cGU/OiB7XG4gICAgLyoqIFR5cGVBbm5vdGF0aW9uIGhlbHBlciB2YWx1ZS4gKi9cbiAgICB0eXBlQW5ub3RhdGlvbj86IFR5cGVBbm5vdGF0aW9uTm9kZTtcbiAgfTtcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3Igbm9kZXMgdGhhdCBjYW4gd3JhcCBhIHNpbmdsZSBwYXJhbWV0ZXItbGlrZSBjaGlsZC4gKi9cbmludGVyZmFjZSBQYXJhbWV0ZXJDb250YWluZXIge1xuICAvKiogQXJndW1lbnQgaGVscGVyIHZhbHVlLiAqL1xuICBhcmd1bWVudD86IHVua25vd247XG5cbiAgLyoqIExlZnQtc2lkZSBoZWxwZXIgdmFsdWUgdXNlZCBieSBhc3NpZ25tZW50IHBhdHRlcm5zLiAqL1xuICBsZWZ0PzogdW5rbm93bjtcblxuICAvKiogUGFyYW1ldGVyIGhlbHBlciB2YWx1ZS4gKi9cbiAgcGFyYW1ldGVyPzogdW5rbm93bjtcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3Igbm9kZXMgZXhwb3NpbmcgYSBuZXN0ZWQgdHlwZSBhbm5vdGF0aW9uIHdyYXBwZXIuICovXG5pbnRlcmZhY2UgVHlwZUFubm90YXRpb25Db250YWluZXIge1xuICAvKiogVHlwZUFubm90YXRpb24gaGVscGVyIHZhbHVlLiAqL1xuICB0eXBlQW5ub3RhdGlvbj86IHtcbiAgICAvKiogVHlwZUFubm90YXRpb24gaGVscGVyIHZhbHVlLiAqL1xuICAgIHR5cGVBbm5vdGF0aW9uPzogVHlwZUFubm90YXRpb25Ob2RlO1xuICB9O1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciB0eXBlIGFubm90YXRpb24gbm9kZXMgaW5zcGVjdGVkIGJ5IHRoaXMgcnVsZS4gKi9cbmludGVyZmFjZSBUeXBlQW5ub3RhdGlvbk5vZGUge1xuICAvKiogU291cmNlIHJhbmdlIHVzZWQgZm9yIHNhZmUgYXV0b2ZpeCByZXBsYWNlbWVudC4gKi9cbiAgcmFuZ2U/OiBbbnVtYmVyLCBudW1iZXJdO1xuXG4gIC8qKiBUeXBlIGZpZWxkIHZhbHVlLiAqL1xuICB0eXBlOiBzdHJpbmc7XG5cbiAgLyoqIE5lc3RlZCBhbm5vdGF0aW9uIGZvciBwYXJlbnRoZXNpemVkIHR5cGVzLiAqL1xuICB0eXBlQW5ub3RhdGlvbj86IHVua25vd247XG5cbiAgLyoqIE5lc3RlZCBtZW1iZXIgYW5ub3RhdGlvbnMgZm9yIHVuaW9uL2ludGVyc2VjdGlvbiB0eXBlcy4gKi9cbiAgdHlwZXM/OiB1bmtub3duW107XG59XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHZhcmlhYmxlIGRlY2xhcmF0b3Igbm9kZXMgd2l0aCBvcHRpb25hbCBpZGVudGlmaWVycy4gKi9cbmludGVyZmFjZSBWYXJpYWJsZURlY2xhcmF0b3JOb2RlIHtcbiAgLyoqIElkZW50aWZpZXIgb3IgYmluZGluZyBwYXR0ZXJuIGZvciB0aGUgdmFyaWFibGUgZGVjbGFyYXRvci4gKi9cbiAgaWQ/OiB1bmtub3duO1xufVxuXG4vKipcbiAqIEdldHMgYSBuZXN0ZWQgdHlwZSBhbm5vdGF0aW9uIGZyb20gcGFyYW1ldGVyIHdyYXBwZXJzLlxuICogQHBhcmFtIG5vZGUgUGFyYW1ldGVyIHdyYXBwZXIgbm9kZS5cbiAqIEByZXR1cm5zIFRoZSBuZXN0ZWQgdHlwZSBhbm5vdGF0aW9uIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBhbm5vdGF0aW9uID0gZ2V0TmVzdGVkVHlwZUFubm90YXRpb24oeyBhcmd1bWVudDogbm9kZSB9KTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXROZXN0ZWRUeXBlQW5ub3RhdGlvbiA9IChcbiAgbm9kZTogUGFyYW1ldGVyQ29udGFpbmVyLFxuKTogVHlwZUFubm90YXRpb25Ob2RlIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKG5vZGUuYXJndW1lbnQgIT09IHZvaWQgMCkge1xuICAgIHJldHVybiBnZXRUeXBlQW5ub3RhdGlvbk5vZGUobm9kZS5hcmd1bWVudCk7XG4gIH1cblxuICBpZiAobm9kZS5sZWZ0ICE9PSB2b2lkIDApIHtcbiAgICByZXR1cm4gZ2V0VHlwZUFubm90YXRpb25Ob2RlKG5vZGUubGVmdCk7XG4gIH1cblxuICBpZiAobm9kZS5wYXJhbWV0ZXIgIT09IHZvaWQgMCkge1xuICAgIHJldHVybiBnZXRUeXBlQW5ub3RhdGlvbk5vZGUobm9kZS5wYXJhbWV0ZXIpO1xuICB9XG5cbiAgcmV0dXJuIHZvaWQgMDtcbn07XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIHR5cGUgYW5ub3RhdGlvbiBmcm9tIGEgbm9kZS5cbiAqIEBwYXJhbSBub2RlIE5vZGUgdGhhdCBtYXkgY29udGFpbiBhIHR5cGUgYW5ub3RhdGlvbi5cbiAqIEByZXR1cm5zIFRoZSB0eXBlIGFubm90YXRpb24gd2hlbiBwcmVzZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGFubm90YXRpb24gPSBnZXRUeXBlQW5ub3RhdGlvbk5vZGUobm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0VHlwZUFubm90YXRpb25Ob2RlID0gKFxuICBub2RlOiB1bmtub3duLFxuKTogVHlwZUFubm90YXRpb25Ob2RlIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKG5vZGUgPT09IG51bGwgfHwgdHlwZW9mIG5vZGUgIT09IFwib2JqZWN0XCIpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgZGlyZWN0VHlwZUFubm90YXRpb24gPSAobm9kZSBhcyBUeXBlQW5ub3RhdGlvbkNvbnRhaW5lcikudHlwZUFubm90YXRpb25cbiAgICA/LnR5cGVBbm5vdGF0aW9uO1xuXG4gIGlmIChkaXJlY3RUeXBlQW5ub3RhdGlvbiAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIGRpcmVjdFR5cGVBbm5vdGF0aW9uO1xuICB9XG5cbiAgcmV0dXJuIGdldE5lc3RlZFR5cGVBbm5vdGF0aW9uKG5vZGUpO1xufTtcblxuLyoqXG4gKiBHZXRzIHRoZSByZXR1cm4gdHlwZSBhbm5vdGF0aW9uIGZvciBhIGZ1bmN0aW9uLWxpa2Ugbm9kZS5cbiAqIEBwYXJhbSBub2RlIE5vZGUgdGhhdCBtYXkgY29udGFpbiBhIHJldHVybiB0eXBlLlxuICogQHJldHVybnMgVGhlIHJldHVybiB0eXBlIGFubm90YXRpb24gd2hlbiBwcmVzZW50LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGFubm90YXRpb24gPSBnZXRSZXR1cm5UeXBlQW5ub3RhdGlvbihub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRSZXR1cm5UeXBlQW5ub3RhdGlvbiA9IChcbiAgbm9kZTogdW5rbm93bixcbik6IFR5cGVBbm5vdGF0aW9uTm9kZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChub2RlID09PSBudWxsIHx8IHR5cGVvZiBub2RlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IHR5cGVkTm9kZSA9IG5vZGUgYXMgRnVuY3Rpb25MaWtlTm9kZTtcblxuICByZXR1cm4gdHlwZWROb2RlLnJldHVyblR5cGU/LnR5cGVBbm5vdGF0aW9uO1xufTtcblxuLyoqXG4gKiBHZXRzIGdldFBhcmFtZXRlcnMuXG4gKiBAcGFyYW0gbm9kZSBJbnB1dCBub2RlIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBnZXRQYXJhbWV0ZXJzKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0UGFyYW1ldGVycyA9IChub2RlOiB1bmtub3duKTogdW5rbm93bltdID0+IHtcbiAgaWYgKG5vZGUgPT09IG51bGwgfHwgdHlwZW9mIG5vZGUgIT09IFwib2JqZWN0XCIpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCB0eXBlZE5vZGUgPSBub2RlIGFzIEZ1bmN0aW9uTGlrZU5vZGU7XG5cbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodHlwZWROb2RlLnBhcmFtcykgPyB0eXBlZE5vZGUucGFyYW1zIDogW107XG59O1xuXG4vKipcbiAqIEZpbmRzIGFuIGlubGluZSBvYmplY3QgdHlwZSBsaXRlcmFsIHdpdGhpbiBhIHR5cGUgYW5ub3RhdGlvbiBub2RlLlxuICogQHBhcmFtIG5vZGUgVHlwZSBhbm5vdGF0aW9uIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFRoZSBmaXJzdCBpbmxpbmUgb2JqZWN0IHR5cGUgbGl0ZXJhbCB3aGVuIHByZXNlbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaW5saW5lT2JqZWN0VHlwZSA9IGdldElubGluZU9iamVjdFR5cGVMaXRlcmFsKGFubm90YXRpb24pO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldElubGluZU9iamVjdFR5cGVMaXRlcmFsID0gKFxuICBub2RlOiBUeXBlQW5ub3RhdGlvbk5vZGUgfCB1bmRlZmluZWQsXG4pOiBUeXBlQW5ub3RhdGlvbk5vZGUgfCB1bmRlZmluZWQgPT4ge1xuICBpZiAobm9kZSA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGlmIChub2RlLnR5cGUgPT09IFwiVFNUeXBlTGl0ZXJhbFwiKSB7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBpZiAobm9kZS50eXBlID09PSBcIlRTUGFyZW50aGVzaXplZFR5cGVcIikge1xuICAgIHJldHVybiBnZXRJbmxpbmVPYmplY3RUeXBlTGl0ZXJhbChcbiAgICAgIG5vZGUudHlwZUFubm90YXRpb24gYXMgVHlwZUFubm90YXRpb25Ob2RlIHwgdW5kZWZpbmVkLFxuICAgICk7XG4gIH1cblxuICBpZiAobm9kZS50eXBlID09PSBcIlRTVW5pb25UeXBlXCIgfHwgbm9kZS50eXBlID09PSBcIlRTSW50ZXJzZWN0aW9uVHlwZVwiKSB7XG4gICAgY29uc3QgbmVzdGVkVHlwZXMgPSBBcnJheS5pc0FycmF5KG5vZGUudHlwZXMpID8gbm9kZS50eXBlcyA6IFtdO1xuXG4gICAgZm9yIChjb25zdCBuZXN0ZWRUeXBlIG9mIG5lc3RlZFR5cGVzKSB7XG4gICAgICBjb25zdCBuZXN0ZWRJbmxpbmVPYmplY3RUeXBlID0gZ2V0SW5saW5lT2JqZWN0VHlwZUxpdGVyYWwoXG4gICAgICAgIG5lc3RlZFR5cGUgYXMgVHlwZUFubm90YXRpb25Ob2RlIHwgdW5kZWZpbmVkLFxuICAgICAgKTtcblxuICAgICAgaWYgKG5lc3RlZElubGluZU9iamVjdFR5cGUgIT09IHZvaWQgMCkge1xuICAgICAgICByZXR1cm4gbmVzdGVkSW5saW5lT2JqZWN0VHlwZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdm9pZCAwO1xufTtcblxuZXhwb3J0IHtcbiAgZ2V0SW5saW5lT2JqZWN0VHlwZUxpdGVyYWwsXG4gIGdldFBhcmFtZXRlcnMsXG4gIGdldFJldHVyblR5cGVBbm5vdGF0aW9uLFxuICBnZXRUeXBlQW5ub3RhdGlvbk5vZGUsXG59O1xuZXhwb3J0IHR5cGUgeyBUeXBlQW5ub3RhdGlvbk5vZGUsIFZhcmlhYmxlRGVjbGFyYXRvck5vZGUgfTtcbiJdfQ==
|
|
@@ -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;AAyGnC,2EAA2E;AAC3E,QAAA,MAAM,wBAAwB,EAAE,IAAI,CAAC,UA4FpC,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -1,54 +1,55 @@
|
|
|
1
|
+
import { createAggregateFix } from "./autofix.js";
|
|
2
|
+
import { collectScopeNames } from "./declaration-names.js";
|
|
3
|
+
import { allocateNames, getParameterBaseName, getReturnBaseName, getVariableBaseName, } from "./naming.js";
|
|
1
4
|
import { getInlineObjectTypeLiteral, getParameters, getReturnTypeAnnotation, getTypeAnnotationNode, } from "./rule-utilities.js";
|
|
2
5
|
/**
|
|
3
6
|
* Reports an inline object type annotation.
|
|
4
|
-
* @param
|
|
7
|
+
* @param matches Deferred match collection.
|
|
5
8
|
* @param typeAnnotation Type annotation node to report.
|
|
9
|
+
* @param baseName Preferred generated name before normalization.
|
|
6
10
|
* @example
|
|
7
11
|
* ```typescript
|
|
8
12
|
* reportTypeLiteral(context, typeAnnotation);
|
|
9
13
|
* ```
|
|
10
14
|
*/
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
messageId: "preferNamedObject",
|
|
14
|
-
node: typeAnnotation,
|
|
15
|
-
});
|
|
15
|
+
const collectTypeLiteral = (matches, typeAnnotation, baseName) => {
|
|
16
|
+
matches.push({ baseName, node: typeAnnotation });
|
|
16
17
|
};
|
|
17
18
|
/**
|
|
18
19
|
* Checks function-like nodes for inline object types.
|
|
19
|
-
* @param
|
|
20
|
+
* @param matches Deferred match collection.
|
|
20
21
|
* @param node Function-like node to check.
|
|
21
22
|
* @example
|
|
22
23
|
* ```typescript
|
|
23
24
|
* checkFunctionLike(context, node);
|
|
24
25
|
* ```
|
|
25
26
|
*/
|
|
26
|
-
const checkFunctionLike = (
|
|
27
|
+
const checkFunctionLike = (matches, node) => {
|
|
27
28
|
for (const parameter of getParameters(node)) {
|
|
28
29
|
const inlineObjectType = getInlineObjectTypeLiteral(getTypeAnnotationNode(parameter));
|
|
29
30
|
if (inlineObjectType !== void 0) {
|
|
30
|
-
|
|
31
|
+
collectTypeLiteral(matches, inlineObjectType, getParameterBaseName(parameter));
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
34
|
const inlineReturnObjectType = getInlineObjectTypeLiteral(getReturnTypeAnnotation(node));
|
|
34
35
|
if (inlineReturnObjectType !== void 0) {
|
|
35
|
-
|
|
36
|
+
collectTypeLiteral(matches, inlineReturnObjectType, getReturnBaseName(node));
|
|
36
37
|
}
|
|
37
38
|
};
|
|
38
39
|
/**
|
|
39
40
|
* Checks variable declarators for inline object types.
|
|
40
|
-
* @param
|
|
41
|
+
* @param matches Deferred match collection.
|
|
41
42
|
* @param node Variable declarator to check.
|
|
42
43
|
* @example
|
|
43
44
|
* ```typescript
|
|
44
45
|
* checkVariableDeclarator(context, node);
|
|
45
46
|
* ```
|
|
46
47
|
*/
|
|
47
|
-
const checkVariableDeclarator = (
|
|
48
|
+
const checkVariableDeclarator = (matches, node) => {
|
|
48
49
|
const typedNode = node;
|
|
49
50
|
const inlineObjectType = getInlineObjectTypeLiteral(getTypeAnnotationNode(typedNode.id));
|
|
50
51
|
if (inlineObjectType !== void 0) {
|
|
51
|
-
|
|
52
|
+
collectTypeLiteral(matches, inlineObjectType, getVariableBaseName(node));
|
|
52
53
|
}
|
|
53
54
|
};
|
|
54
55
|
/** ESLint rule requiring named interface/type aliases for object types. */
|
|
@@ -63,6 +64,7 @@ const preferInterfaceTypesRule = {
|
|
|
63
64
|
* ```
|
|
64
65
|
*/
|
|
65
66
|
create(context) {
|
|
67
|
+
const matches = [];
|
|
66
68
|
/**
|
|
67
69
|
* Checks function-like nodes for inline object types.
|
|
68
70
|
* @param node Function-like node to inspect.
|
|
@@ -72,7 +74,7 @@ const preferInterfaceTypesRule = {
|
|
|
72
74
|
* ```
|
|
73
75
|
*/
|
|
74
76
|
const functionLikeListener = (node) => {
|
|
75
|
-
checkFunctionLike(
|
|
77
|
+
checkFunctionLike(matches, node);
|
|
76
78
|
};
|
|
77
79
|
/**
|
|
78
80
|
* Checks variable declarators for inline object types.
|
|
@@ -83,12 +85,33 @@ const preferInterfaceTypesRule = {
|
|
|
83
85
|
* ```
|
|
84
86
|
*/
|
|
85
87
|
const variableDeclaratorListener = (node) => {
|
|
86
|
-
checkVariableDeclarator(
|
|
88
|
+
checkVariableDeclarator(matches, node);
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Reports all collected findings and owns the single aggregate fix.
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* programExitListener();
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
const programExitListener = () => {
|
|
98
|
+
const statements = context.sourceCode.ast.body;
|
|
99
|
+
const scopeManager = context.sourceCode.scopeManager;
|
|
100
|
+
const namedMatches = allocateNames(matches, statements, collectScopeNames(scopeManager));
|
|
101
|
+
const aggregateFix = createAggregateFix(context, namedMatches);
|
|
102
|
+
for (const [index, match] of namedMatches.entries()) {
|
|
103
|
+
context.report({
|
|
104
|
+
...(index === 0 && aggregateFix !== void 0 && { fix: aggregateFix }),
|
|
105
|
+
messageId: "preferNamedObject",
|
|
106
|
+
node: match.node,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
87
109
|
};
|
|
88
110
|
return {
|
|
89
111
|
ArrowFunctionExpression: functionLikeListener,
|
|
90
112
|
FunctionDeclaration: functionLikeListener,
|
|
91
113
|
FunctionExpression: functionLikeListener,
|
|
114
|
+
"Program:exit": programExitListener,
|
|
92
115
|
TSCallSignatureDeclaration: functionLikeListener,
|
|
93
116
|
TSConstructSignatureDeclaration: functionLikeListener,
|
|
94
117
|
TSDeclareFunction: functionLikeListener,
|
|
@@ -103,6 +126,7 @@ const preferInterfaceTypesRule = {
|
|
|
103
126
|
recommended: false,
|
|
104
127
|
url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/prefer-interface-types.md",
|
|
105
128
|
},
|
|
129
|
+
fixable: "code",
|
|
106
130
|
messages: {
|
|
107
131
|
preferNamedObject: "Use a named interface or type alias instead of an inline object type.",
|
|
108
132
|
},
|
|
@@ -111,4 +135,4 @@ const preferInterfaceTypesRule = {
|
|
|
111
135
|
},
|
|
112
136
|
};
|
|
113
137
|
export { preferInterfaceTypesRule };
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vY29yZS9wcmVmZXItaW50ZXJmYWNlLXR5cGVzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixhQUFhLEVBQ2IsdUJBQXVCLEVBQ3ZCLHFCQUFxQixHQUN0QixNQUFNLGtCQUFrQixDQUFDO0FBRTFCOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUN4QixPQUF5QixFQUN6QixjQUFrQyxFQUM1QixFQUFFO0lBQ1IsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNiLFNBQVMsRUFBRSxtQkFBbUI7UUFDOUIsSUFBSSxFQUFFLGNBQXNDO0tBQzdDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUN4QixPQUF5QixFQUN6QixJQUFlLEVBQ1QsRUFBRTtJQUNSLEtBQUssTUFBTSxTQUFTLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDNUMsTUFBTSxnQkFBZ0IsR0FBRywwQkFBMEIsQ0FDakQscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQ2pDLENBQUM7UUFFRixJQUFJLGdCQUFnQixLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLHNCQUFzQixHQUFHLDBCQUEwQixDQUN2RCx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FDOUIsQ0FBQztJQUVGLElBQUksc0JBQXNCLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUNyRCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHVCQUF1QixHQUFHLENBQzlCLE9BQXlCLEVBQ3pCLElBQWUsRUFDVCxFQUFFO0lBQ1IsTUFBTSxTQUFTLEdBQUcsSUFBOEIsQ0FBQztJQUVqRCxNQUFNLGdCQUFnQixHQUFHLDBCQUEwQixDQUNqRCxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQ3BDLENBQUM7SUFFRixJQUFJLGdCQUFnQixLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDaEMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDL0MsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLDJFQUEyRTtBQUMzRSxNQUFNLHdCQUF3QixHQUFvQjtJQUNoRDs7Ozs7Ozs7T0FRRztJQUNILE1BQU0sQ0FBQyxPQUF5QjtRQUM5Qjs7Ozs7OztXQU9HO1FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLElBQWUsRUFBUSxFQUFFO1lBQ3JELGlCQUFpQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUM7UUFFRjs7Ozs7OztXQU9HO1FBQ0gsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLElBQWUsRUFBUSxFQUFFO1lBQzNELHVCQUF1QixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUM7UUFFRixPQUFPO1lBQ0wsdUJBQXVCLEVBQUUsb0JBQW9CO1lBQzdDLG1CQUFtQixFQUFFLG9CQUFvQjtZQUN6QyxrQkFBa0IsRUFBRSxvQkFBb0I7WUFDeEMsMEJBQTBCLEVBQUUsb0JBQW9CO1lBQ2hELCtCQUErQixFQUFFLG9CQUFvQjtZQUNyRCxpQkFBaUIsRUFBRSxvQkFBb0I7WUFDdkMsY0FBYyxFQUFFLG9CQUFvQjtZQUNwQyxpQkFBaUIsRUFBRSxvQkFBb0I7WUFDdkMsa0JBQWtCLEVBQUUsMEJBQTBCO1NBQy9DLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUNULGtIQUFrSDtZQUNwSCxXQUFXLEVBQUUsS0FBSztZQUNsQixHQUFHLEVBQUUseUZBQXlGO1NBQy9GO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsaUJBQWlCLEVBQ2YsdUVBQXVFO1NBQzFFO1FBQ0QsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsWUFBWTtLQUNuQjtDQUNGLENBQUM7QUFFRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHR5cGUge1xuICBUeXBlQW5ub3RhdGlvbk5vZGUsXG4gIFZhcmlhYmxlRGVjbGFyYXRvck5vZGUsXG59IGZyb20gXCIuL3J1bGUtdXRpbGl0aWVzXCI7XG5cbmltcG9ydCB7XG4gIGdldElubGluZU9iamVjdFR5cGVMaXRlcmFsLFxuICBnZXRQYXJhbWV0ZXJzLFxuICBnZXRSZXR1cm5UeXBlQW5ub3RhdGlvbixcbiAgZ2V0VHlwZUFubm90YXRpb25Ob2RlLFxufSBmcm9tIFwiLi9ydWxlLXV0aWxpdGllc1wiO1xuXG4vKipcbiAqIFJlcG9ydHMgYW4gaW5saW5lIG9iamVjdCB0eXBlIGFubm90YXRpb24uXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGV4ZWN1dGlvbiBjb250ZXh0LlxuICogQHBhcmFtIHR5cGVBbm5vdGF0aW9uIFR5cGUgYW5ub3RhdGlvbiBub2RlIHRvIHJlcG9ydC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiByZXBvcnRUeXBlTGl0ZXJhbChjb250ZXh0LCB0eXBlQW5ub3RhdGlvbik7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVwb3J0VHlwZUxpdGVyYWwgPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIHR5cGVBbm5vdGF0aW9uOiBUeXBlQW5ub3RhdGlvbk5vZGUsXG4pOiB2b2lkID0+IHtcbiAgY29udGV4dC5yZXBvcnQoe1xuICAgIG1lc3NhZ2VJZDogXCJwcmVmZXJOYW1lZE9iamVjdFwiLFxuICAgIG5vZGU6IHR5cGVBbm5vdGF0aW9uIGFzIHVua25vd24gYXMgUnVsZS5Ob2RlLFxuICB9KTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIGZ1bmN0aW9uLWxpa2Ugbm9kZXMgZm9yIGlubGluZSBvYmplY3QgdHlwZXMuXG4gKiBAcGFyYW0gY29udGV4dCBSdWxlIGV4ZWN1dGlvbiBjb250ZXh0LlxuICogQHBhcmFtIG5vZGUgRnVuY3Rpb24tbGlrZSBub2RlIHRvIGNoZWNrLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNoZWNrRnVuY3Rpb25MaWtlKGNvbnRleHQsIG5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNoZWNrRnVuY3Rpb25MaWtlID0gKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBub2RlOiBSdWxlLk5vZGUsXG4pOiB2b2lkID0+IHtcbiAgZm9yIChjb25zdCBwYXJhbWV0ZXIgb2YgZ2V0UGFyYW1ldGVycyhub2RlKSkge1xuICAgIGNvbnN0IGlubGluZU9iamVjdFR5cGUgPSBnZXRJbmxpbmVPYmplY3RUeXBlTGl0ZXJhbChcbiAgICAgIGdldFR5cGVBbm5vdGF0aW9uTm9kZShwYXJhbWV0ZXIpLFxuICAgICk7XG5cbiAgICBpZiAoaW5saW5lT2JqZWN0VHlwZSAhPT0gdm9pZCAwKSB7XG4gICAgICByZXBvcnRUeXBlTGl0ZXJhbChjb250ZXh0LCBpbmxpbmVPYmplY3RUeXBlKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBpbmxpbmVSZXR1cm5PYmplY3RUeXBlID0gZ2V0SW5saW5lT2JqZWN0VHlwZUxpdGVyYWwoXG4gICAgZ2V0UmV0dXJuVHlwZUFubm90YXRpb24obm9kZSksXG4gICk7XG5cbiAgaWYgKGlubGluZVJldHVybk9iamVjdFR5cGUgIT09IHZvaWQgMCkge1xuICAgIHJlcG9ydFR5cGVMaXRlcmFsKGNvbnRleHQsIGlubGluZVJldHVybk9iamVjdFR5cGUpO1xuICB9XG59O1xuXG4vKipcbiAqIENoZWNrcyB2YXJpYWJsZSBkZWNsYXJhdG9ycyBmb3IgaW5saW5lIG9iamVjdCB0eXBlcy5cbiAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgZXhlY3V0aW9uIGNvbnRleHQuXG4gKiBAcGFyYW0gbm9kZSBWYXJpYWJsZSBkZWNsYXJhdG9yIHRvIGNoZWNrLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNoZWNrVmFyaWFibGVEZWNsYXJhdG9yKGNvbnRleHQsIG5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNoZWNrVmFyaWFibGVEZWNsYXJhdG9yID0gKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBub2RlOiBSdWxlLk5vZGUsXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgdHlwZWROb2RlID0gbm9kZSBhcyBWYXJpYWJsZURlY2xhcmF0b3JOb2RlO1xuXG4gIGNvbnN0IGlubGluZU9iamVjdFR5cGUgPSBnZXRJbmxpbmVPYmplY3RUeXBlTGl0ZXJhbChcbiAgICBnZXRUeXBlQW5ub3RhdGlvbk5vZGUodHlwZWROb2RlLmlkKSxcbiAgKTtcblxuICBpZiAoaW5saW5lT2JqZWN0VHlwZSAhPT0gdm9pZCAwKSB7XG4gICAgcmVwb3J0VHlwZUxpdGVyYWwoY29udGV4dCwgaW5saW5lT2JqZWN0VHlwZSk7XG4gIH1cbn07XG5cbi8qKiBFU0xpbnQgcnVsZSByZXF1aXJpbmcgbmFtZWQgaW50ZXJmYWNlL3R5cGUgYWxpYXNlcyBmb3Igb2JqZWN0IHR5cGVzLiAqL1xuY29uc3QgcHJlZmVySW50ZXJmYWNlVHlwZXNSdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGxpc3RlbmVycyB0aGF0IHZhbGlkYXRlIGZ1bmN0aW9uLWxpa2UgYW5kIHZhcmlhYmxlIGFubm90YXRpb25zLlxuICAgKiBAcGFyYW0gY29udGV4dCBSdWxlIGV4ZWN1dGlvbiBjb250ZXh0LlxuICAgKiBAcmV0dXJucyBSdWxlIGxpc3RlbmVyIG1hcC5cbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBsaXN0ZW5lcnMgPSBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGUuY3JlYXRlKGNvbnRleHQpO1xuICAgKiBgYGBcbiAgICovXG4gIGNyZWF0ZShjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIge1xuICAgIC8qKlxuICAgICAqIENoZWNrcyBmdW5jdGlvbi1saWtlIG5vZGVzIGZvciBpbmxpbmUgb2JqZWN0IHR5cGVzLlxuICAgICAqIEBwYXJhbSBub2RlIEZ1bmN0aW9uLWxpa2Ugbm9kZSB0byBpbnNwZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGZ1bmN0aW9uTGlrZUxpc3RlbmVyKG5vZGUpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIGNvbnN0IGZ1bmN0aW9uTGlrZUxpc3RlbmVyID0gKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgY2hlY2tGdW5jdGlvbkxpa2UoY29udGV4dCwgbm9kZSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyB2YXJpYWJsZSBkZWNsYXJhdG9ycyBmb3IgaW5saW5lIG9iamVjdCB0eXBlcy5cbiAgICAgKiBAcGFyYW0gbm9kZSBWYXJpYWJsZSBkZWNsYXJhdG9yIHRvIGluc3BlY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdmFyaWFibGVEZWNsYXJhdG9yTGlzdGVuZXIobm9kZSk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgY29uc3QgdmFyaWFibGVEZWNsYXJhdG9yTGlzdGVuZXIgPSAobm9kZTogUnVsZS5Ob2RlKTogdm9pZCA9PiB7XG4gICAgICBjaGVja1ZhcmlhYmxlRGVjbGFyYXRvcihjb250ZXh0LCBub2RlKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIEFycm93RnVuY3Rpb25FeHByZXNzaW9uOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIEZ1bmN0aW9uRGVjbGFyYXRpb246IGZ1bmN0aW9uTGlrZUxpc3RlbmVyLFxuICAgICAgRnVuY3Rpb25FeHByZXNzaW9uOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIFRTQ2FsbFNpZ25hdHVyZURlY2xhcmF0aW9uOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIFRTQ29uc3RydWN0U2lnbmF0dXJlRGVjbGFyYXRpb246IGZ1bmN0aW9uTGlrZUxpc3RlbmVyLFxuICAgICAgVFNEZWNsYXJlRnVuY3Rpb246IGZ1bmN0aW9uTGlrZUxpc3RlbmVyLFxuICAgICAgVFNGdW5jdGlvblR5cGU6IGZ1bmN0aW9uTGlrZUxpc3RlbmVyLFxuICAgICAgVFNNZXRob2RTaWduYXR1cmU6IGZ1bmN0aW9uTGlrZUxpc3RlbmVyLFxuICAgICAgVmFyaWFibGVEZWNsYXJhdG9yOiB2YXJpYWJsZURlY2xhcmF0b3JMaXN0ZW5lcixcbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiUmVxdWlyZSBuYW1lZCBpbnRlcmZhY2VzIG9yIHR5cGUgYWxpYXNlcyBmb3Igb2JqZWN0IHR5cGVzIGluIHBhcmFtZXRlcnMsIHJldHVybiB0eXBlcywgYW5kIHZhcmlhYmxlIGFubm90YXRpb25zLlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvcHJlZmVyLWludGVyZmFjZS10eXBlcy5tZFwiLFxuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIHByZWZlck5hbWVkT2JqZWN0OlxuICAgICAgICBcIlVzZSBhIG5hbWVkIGludGVyZmFjZSBvciB0eXBlIGFsaWFzIGluc3RlYWQgb2YgYW4gaW5saW5lIG9iamVjdCB0eXBlLlwiLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiBcInN1Z2dlc3Rpb25cIixcbiAgfSxcbn07XG5cbmV4cG9ydCB7IHByZWZlckludGVyZmFjZVR5cGVzUnVsZSB9O1xuIl19
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vY29yZS9wcmVmZXItaW50ZXJmYWNlLXR5cGVzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFDTCxhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixtQkFBbUIsR0FDcEIsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixhQUFhLEVBQ2IsdUJBQXVCLEVBQ3ZCLHFCQUFxQixHQUN0QixNQUFNLGtCQUFrQixDQUFDO0FBRTFCOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsQ0FDekIsT0FBMEIsRUFDMUIsY0FBa0MsRUFDbEMsUUFBZ0IsRUFDVixFQUFFO0lBQ1IsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztBQUNuRCxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FDeEIsT0FBMEIsRUFDMUIsSUFBZSxFQUNULEVBQUU7SUFDUixLQUFLLE1BQU0sU0FBUyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzVDLE1BQU0sZ0JBQWdCLEdBQUcsMEJBQTBCLENBQ2pELHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUNqQyxDQUFDO1FBRUYsSUFBSSxnQkFBZ0IsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLGtCQUFrQixDQUNoQixPQUFPLEVBQ1AsZ0JBQWdCLEVBQ2hCLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUNoQyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFF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QUFXLEVBQUUsS0FBSztZQUNsQixHQUFHLEVBQUUseUZBQXlGO1NBQy9GO1FBQ0QsT0FBTyxFQUFFLE1BQU07UUFDZixRQUFRLEVBQUU7WUFDUixpQkFBaUIsRUFDZix1RUFBdUU7U0FDMUU7UUFDRCxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxZQUFZO0tBQ25CO0NBQ0YsQ0FBQztBQUVGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgdHlwZSB7XG4gIFR5cGVBbm5vdGF0aW9uTm9kZSxcbiAgVmFyaWFibGVEZWNsYXJhdG9yTm9kZSxcbn0gZnJvbSBcIi4vcnVsZS11dGlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIHsgSW5saW5lVHlwZU1hdGNoIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuaW1wb3J0IHsgY3JlYXRlQWdncmVnYXRlRml4IH0gZnJvbSBcIi4vYXV0b2ZpeFwiO1xuaW1wb3J0IHsgY29sbGVjdFNjb3BlTmFtZXMgfSBmcm9tIFwiLi9kZWNsYXJhdGlvbi1uYW1lc1wiO1xuaW1wb3J0IHtcbiAgYWxsb2NhdGVOYW1lcyxcbiAgZ2V0UGFyYW1ldGVyQmFzZU5hbWUsXG4gIGdldFJldHVybkJhc2VOYW1lLFxuICBnZXRWYXJpYWJsZUJhc2VOYW1lLFxufSBmcm9tIFwiLi9uYW1pbmdcIjtcbmltcG9ydCB7XG4gIGdldElubGluZU9iamVjdFR5cGVMaXRlcmFsLFxuICBnZXRQYXJhbWV0ZXJzLFxuICBnZXRSZXR1cm5UeXBlQW5ub3RhdGlvbixcbiAgZ2V0VHlwZUFubm90YXRpb25Ob2RlLFxufSBmcm9tIFwiLi9ydWxlLXV0aWxpdGllc1wiO1xuXG4vKipcbiAqIFJlcG9ydHMgYW4gaW5saW5lIG9iamVjdCB0eXBlIGFubm90YXRpb24uXG4gKiBAcGFyYW0gbWF0Y2hlcyBEZWZlcnJlZCBtYXRjaCBjb2xsZWN0aW9uLlxuICogQHBhcmFtIHR5cGVBbm5vdGF0aW9uIFR5cGUgYW5ub3RhdGlvbiBub2RlIHRvIHJlcG9ydC5cbiAqIEBwYXJhbSBiYXNlTmFtZSBQcmVmZXJyZWQgZ2VuZXJhdGVkIG5hbWUgYmVmb3JlIG5vcm1hbGl6YXRpb24uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVwb3J0VHlwZUxpdGVyYWwoY29udGV4dCwgdHlwZUFubm90YXRpb24pO1xuICogYGBgXG4gKi9cbmNvbnN0IGNvbGxlY3RUeXBlTGl0ZXJhbCA9IChcbiAgbWF0Y2hlczogSW5saW5lVHlwZU1hdGNoW10sXG4gIHR5cGVBbm5vdGF0aW9uOiBUeXBlQW5ub3RhdGlvbk5vZGUsXG4gIGJhc2VOYW1lOiBzdHJpbmcsXG4pOiB2b2lkID0+IHtcbiAgbWF0Y2hlcy5wdXNoKHsgYmFzZU5hbWUsIG5vZGU6IHR5cGVBbm5vdGF0aW9uIH0pO1xufTtcblxuLyoqXG4gKiBDaGVja3MgZnVuY3Rpb24tbGlrZSBub2RlcyBmb3IgaW5saW5lIG9iamVjdCB0eXBlcy5cbiAqIEBwYXJhbSBtYXRjaGVzIERlZmVycmVkIG1hdGNoIGNvbGxlY3Rpb24uXG4gKiBAcGFyYW0gbm9kZSBGdW5jdGlvbi1saWtlIG5vZGUgdG8gY2hlY2suXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY2hlY2tGdW5jdGlvbkxpa2UoY29udGV4dCwgbm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY2hlY2tGdW5jdGlvbkxpa2UgPSAoXG4gIG1hdGNoZXM6IElubGluZVR5cGVNYXRjaFtdLFxuICBub2RlOiBSdWxlLk5vZGUsXG4pOiB2b2lkID0+IHtcbiAgZm9yIChjb25zdCBwYXJhbWV0ZXIgb2YgZ2V0UGFyYW1ldGVycyhub2RlKSkge1xuICAgIGNvbnN0IGlubGluZU9iamVjdFR5cGUgPSBnZXRJbmxpbmVPYmplY3RUeXBlTGl0ZXJhbChcbiAgICAgIGdldFR5cGVBbm5vdGF0aW9uTm9kZShwYXJhbWV0ZXIpLFxuICAgICk7XG5cbiAgICBpZiAoaW5saW5lT2JqZWN0VHlwZSAhPT0gdm9pZCAwKSB7XG4gICAgICBjb2xsZWN0VHlwZUxpdGVyYWwoXG4gICAgICAgIG1hdGNoZXMsXG4gICAgICAgIGlubGluZU9iamVjdFR5cGUsXG4gICAgICAgIGdldFBhcmFtZXRlckJhc2VOYW1lKHBhcmFtZXRlciksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGlubGluZVJldHVybk9iamVjdFR5cGUgPSBnZXRJbmxpbmVPYmplY3RUeXBlTGl0ZXJhbChcbiAgICBnZXRSZXR1cm5UeXBlQW5ub3RhdGlvbihub2RlKSxcbiAgKTtcblxuICBpZiAoaW5saW5lUmV0dXJuT2JqZWN0VHlwZSAhPT0gdm9pZCAwKSB7XG4gICAgY29sbGVjdFR5cGVMaXRlcmFsKFxuICAgICAgbWF0Y2hlcyxcbiAgICAgIGlubGluZVJldHVybk9iamVjdFR5cGUsXG4gICAgICBnZXRSZXR1cm5CYXNlTmFtZShub2RlKSxcbiAgICApO1xuICB9XG59O1xuXG4vKipcbiAqIENoZWNrcyB2YXJpYWJsZSBkZWNsYXJhdG9ycyBmb3IgaW5saW5lIG9iamVjdCB0eXBlcy5cbiAqIEBwYXJhbSBtYXRjaGVzIERlZmVycmVkIG1hdGNoIGNvbGxlY3Rpb24uXG4gKiBAcGFyYW0gbm9kZSBWYXJpYWJsZSBkZWNsYXJhdG9yIHRvIGNoZWNrLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNoZWNrVmFyaWFibGVEZWNsYXJhdG9yKGNvbnRleHQsIG5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNoZWNrVmFyaWFibGVEZWNsYXJhdG9yID0gKFxuICBtYXRjaGVzOiBJbmxpbmVUeXBlTWF0Y2hbXSxcbiAgbm9kZTogUnVsZS5Ob2RlLFxuKTogdm9pZCA9PiB7XG4gIGNvbnN0IHR5cGVkTm9kZSA9IG5vZGUgYXMgVmFyaWFibGVEZWNsYXJhdG9yTm9kZTtcblxuICBjb25zdCBpbmxpbmVPYmplY3RUeXBlID0gZ2V0SW5saW5lT2JqZWN0VHlwZUxpdGVyYWwoXG4gICAgZ2V0VHlwZUFubm90YXRpb25Ob2RlKHR5cGVkTm9kZS5pZCksXG4gICk7XG5cbiAgaWYgKGlubGluZU9iamVjdFR5cGUgIT09IHZvaWQgMCkge1xuICAgIGNvbGxlY3RUeXBlTGl0ZXJhbChtYXRjaGVzLCBpbmxpbmVPYmplY3RUeXBlLCBnZXRWYXJpYWJsZUJhc2VOYW1lKG5vZGUpKTtcbiAgfVxufTtcblxuLyoqIEVTTGludCBydWxlIHJlcXVpcmluZyBuYW1lZCBpbnRlcmZhY2UvdHlwZSBhbGlhc2VzIGZvciBvYmplY3QgdHlwZXMuICovXG5jb25zdCBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgbGlzdGVuZXJzIHRoYXQgdmFsaWRhdGUgZnVuY3Rpb24tbGlrZSBhbmQgdmFyaWFibGUgYW5ub3RhdGlvbnMuXG4gICAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgZXhlY3V0aW9uIGNvbnRleHQuXG4gICAqIEByZXR1cm5zIFJ1bGUgbGlzdGVuZXIgbWFwLlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGxpc3RlbmVycyA9IHByZWZlckludGVyZmFjZVR5cGVzUnVsZS5jcmVhdGUoY29udGV4dCk7XG4gICAqIGBgYFxuICAgKi9cbiAgY3JlYXRlKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBSdWxlLlJ1bGVMaXN0ZW5lciB7XG4gICAgY29uc3QgbWF0Y2hlczogSW5saW5lVHlwZU1hdGNoW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBmdW5jdGlvbi1saWtlIG5vZGVzIGZvciBpbmxpbmUgb2JqZWN0IHR5cGVzLlxuICAgICAqIEBwYXJhbSBub2RlIEZ1bmN0aW9uLWxpa2Ugbm9kZSB0byBpbnNwZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGZ1bmN0aW9uTGlrZUxpc3RlbmVyKG5vZGUpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIGNvbnN0IGZ1bmN0aW9uTGlrZUxpc3RlbmVyID0gKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgY2hlY2tGdW5jdGlvbkxpa2UobWF0Y2hlcywgbm9kZSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyB2YXJpYWJsZSBkZWNsYXJhdG9ycyBmb3IgaW5saW5lIG9iamVjdCB0eXBlcy5cbiAgICAgKiBAcGFyYW0gbm9kZSBWYXJpYWJsZSBkZWNsYXJhdG9yIHRvIGluc3BlY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdmFyaWFibGVEZWNsYXJhdG9yTGlzdGVuZXIobm9kZSk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgY29uc3QgdmFyaWFibGVEZWNsYXJhdG9yTGlzdGVuZXIgPSAobm9kZTogUnVsZS5Ob2RlKTogdm9pZCA9PiB7XG4gICAgICBjaGVja1ZhcmlhYmxlRGVjbGFyYXRvcihtYXRjaGVzLCBub2RlKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVwb3J0cyBhbGwgY29sbGVjdGVkIGZpbmRpbmdzIGFuZCBvd25zIHRoZSBzaW5nbGUgYWdncmVnYXRlIGZpeC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBwcm9ncmFtRXhpdExpc3RlbmVyKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgY29uc3QgcHJvZ3JhbUV4aXRMaXN0ZW5lciA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudHMgPSBjb250ZXh0LnNvdXJjZUNvZGUuYXN0LmJvZHk7XG4gICAgICBjb25zdCBzY29wZU1hbmFnZXIgPSBjb250ZXh0LnNvdXJjZUNvZGUuc2NvcGVNYW5hZ2VyIGFzXG4gICAgICAgIGltcG9ydChcIi4vdHlwZXNcIikuU2NvcGVNYW5hZ2VyIHwgdW5kZWZpbmVkO1xuICAgICAgY29uc3QgbmFtZWRNYXRjaGVzID0gYWxsb2NhdGVOYW1lcyhcbiAgICAgICAgbWF0Y2hlcyxcbiAgICAgICAgc3RhdGVtZW50cyxcbiAgICAgICAgY29sbGVjdFNjb3BlTmFtZXMoc2NvcGVNYW5hZ2VyKSxcbiAgICAgICk7XG4gICAgICBjb25zdCBhZ2dyZWdhdGVGaXggPSBjcmVhdGVBZ2dyZWdhdGVGaXgoY29udGV4dCwgbmFtZWRNYXRjaGVzKTtcblxuICAgICAgZm9yIChjb25zdCBbaW5kZXgsIG1hdGNoXSBvZiBuYW1lZE1hdGNoZXMuZW50cmllcygpKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAuLi4oaW5kZXggPT09IDAgJiYgYWdncmVnYXRlRml4ICE9PSB2b2lkIDAgJiYgeyBmaXg6IGFnZ3JlZ2F0ZUZpeCB9KSxcbiAgICAgICAgICBtZXNzYWdlSWQ6IFwicHJlZmVyTmFtZWRPYmplY3RcIixcbiAgICAgICAgICBub2RlOiBtYXRjaC5ub2RlIGFzIHVua25vd24gYXMgUnVsZS5Ob2RlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIEFycm93RnVuY3Rpb25FeHByZXNzaW9uOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIEZ1bmN0aW9uRGVjbGFyYXRpb246IGZ1bmN0aW9uTGlrZUxpc3RlbmVyLFxuICAgICAgRnVuY3Rpb25FeHByZXNzaW9uOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIFwiUHJvZ3JhbTpleGl0XCI6IHByb2dyYW1FeGl0TGlzdGVuZXIsXG4gICAgICBUU0NhbGxTaWduYXR1cmVEZWNsYXJhdGlvbjogZnVuY3Rpb25MaWtlTGlzdGVuZXIsXG4gICAgICBUU0NvbnN0cnVjdFNpZ25hdHVyZURlY2xhcmF0aW9uOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIFRTRGVjbGFyZUZ1bmN0aW9uOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIFRTRnVuY3Rpb25UeXBlOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIFRTTWV0aG9kU2lnbmF0dXJlOiBmdW5jdGlvbkxpa2VMaXN0ZW5lcixcbiAgICAgIFZhcmlhYmxlRGVjbGFyYXRvcjogdmFyaWFibGVEZWNsYXJhdG9yTGlzdGVuZXIsXG4gICAgfTtcbiAgfSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlJlcXVpcmUgbmFtZWQgaW50ZXJmYWNlcyBvciB0eXBlIGFsaWFzZXMgZm9yIG9iamVjdCB0eXBlcyBpbiBwYXJhbWV0ZXJzLCByZXR1cm4gdHlwZXMsIGFuZCB2YXJpYWJsZSBhbm5vdGF0aW9ucy5cIixcbiAgICAgIHJlY29tbWVuZGVkOiBmYWxzZSxcbiAgICAgIHVybDogXCJodHRwczovL2dpdGh1Yi5jb20vcGFybG90aS9lc2xpbnQtcGx1Z2luL2Jsb2IvbWFpbi9kb2NzL3J1bGVzL3ByZWZlci1pbnRlcmZhY2UtdHlwZXMubWRcIixcbiAgICB9LFxuICAgIGZpeGFibGU6IFwiY29kZVwiLFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBwcmVmZXJOYW1lZE9iamVjdDpcbiAgICAgICAgXCJVc2UgYSBuYW1lZCBpbnRlcmZhY2Ugb3IgdHlwZSBhbGlhcyBpbnN0ZWFkIG9mIGFuIGlubGluZSBvYmplY3QgdHlwZS5cIixcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogXCJzdWdnZXN0aW9uXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgeyBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGUgfTtcbiJdfQ==
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
import type { TypeAnnotationNode } from "./rule-utilities.js";
|
|
3
|
+
/** Source-code surface required to build the aggregate autofix. */
|
|
4
|
+
type FixSourceCode = Pick<Rule.RuleContext["sourceCode"], "ast" | "getText" | "text"> & {
|
|
5
|
+
/** Scope information used to preserve lexical type bindings. */
|
|
6
|
+
scopeManager?: ScopeManager;
|
|
7
|
+
};
|
|
8
|
+
/** One inline object type collected for deferred reporting and fixing. */
|
|
9
|
+
interface InlineTypeMatch {
|
|
10
|
+
/** Preferred base name before PascalCase conversion and collision handling. */
|
|
11
|
+
baseName: string;
|
|
12
|
+
/** Inline object type reported by the rule. */
|
|
13
|
+
node: TypeAnnotationNode;
|
|
14
|
+
}
|
|
15
|
+
/** One collected inline object type with its allocated interface name. */
|
|
16
|
+
interface NamedInlineTypeMatch extends InlineTypeMatch {
|
|
17
|
+
/** Collision-free generated interface name. */
|
|
18
|
+
name: string;
|
|
19
|
+
}
|
|
20
|
+
/** Node shape used to resolve nearby declaration names. */
|
|
21
|
+
interface NamingNode {
|
|
22
|
+
/** Optional declaration identifier. */
|
|
23
|
+
id?: unknown;
|
|
24
|
+
/** Optional property or method key. */
|
|
25
|
+
key?: unknown;
|
|
26
|
+
/** Optional identifier name. */
|
|
27
|
+
name?: unknown;
|
|
28
|
+
/** Parent node supplied by the parser. */
|
|
29
|
+
parent?: NamingNode | null;
|
|
30
|
+
/** Node type discriminator. */
|
|
31
|
+
type?: unknown;
|
|
32
|
+
/** Optional literal value. */
|
|
33
|
+
value?: unknown;
|
|
34
|
+
}
|
|
35
|
+
/** Named match whose source range has been validated for replacement. */
|
|
36
|
+
interface RangedNamedInlineTypeMatch extends NamedInlineTypeMatch {
|
|
37
|
+
/** Inline object type with a required source range. */
|
|
38
|
+
node: TypeAnnotationNode & {
|
|
39
|
+
range: [number, number];
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/** Minimal lexical scope surface required by autofix safety checks. */
|
|
43
|
+
interface Scope {
|
|
44
|
+
/** AST node that owns the scope. */
|
|
45
|
+
block?: {
|
|
46
|
+
range?: [number, number];
|
|
47
|
+
};
|
|
48
|
+
/** References originating from the scope. */
|
|
49
|
+
references?: ScopeReference[];
|
|
50
|
+
/** Scope category reported by the TypeScript ESLint parser. */
|
|
51
|
+
type?: string;
|
|
52
|
+
/** Declarations visible through the scope. */
|
|
53
|
+
variables?: ScopeVariable[];
|
|
54
|
+
}
|
|
55
|
+
/** Minimal identifier surface exposed by scope references. */
|
|
56
|
+
interface ScopeIdentifier {
|
|
57
|
+
/** Source range for the referenced identifier. */
|
|
58
|
+
range?: [number, number];
|
|
59
|
+
}
|
|
60
|
+
/** Scope manager surface exposed by the TypeScript ESLint parser. */
|
|
61
|
+
interface ScopeManager {
|
|
62
|
+
/** Lexical scopes discovered in the source file. */
|
|
63
|
+
scopes: Scope[];
|
|
64
|
+
}
|
|
65
|
+
/** One identifier reference and its resolved declaration scope. */
|
|
66
|
+
interface ScopeReference {
|
|
67
|
+
/** Referenced identifier node. */
|
|
68
|
+
identifier?: ScopeIdentifier;
|
|
69
|
+
/** Resolved declaration when the reference is locally bound. */
|
|
70
|
+
resolved?: null | {
|
|
71
|
+
scope?: Scope;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/** One declaration recorded by the scope manager. */
|
|
75
|
+
interface ScopeVariable {
|
|
76
|
+
/** Declared identifier name. */
|
|
77
|
+
name?: string;
|
|
78
|
+
}
|
|
79
|
+
export type { FixSourceCode, InlineTypeMatch, NamedInlineTypeMatch, NamingNode, RangedNamedInlineTypeMatch, Scope, ScopeManager, };
|
|
80
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/domain/core/prefer-interface-types/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,mEAAmE;AACnE,KAAK,aAAa,GAAG,IAAI,CACvB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAC9B,KAAK,GAAG,SAAS,GAAG,MAAM,CAC3B,GAAG;IACF,gEAAgE;IAChE,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,0EAA0E;AAC1E,UAAU,eAAe;IACvB,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IAEjB,+CAA+C;IAC/C,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED,0EAA0E;AAC1E,UAAU,oBAAqB,SAAQ,eAAe;IACpD,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;CACd;AAED,2DAA2D;AAC3D,UAAU,UAAU;IAClB,uCAAuC;IACvC,EAAE,CAAC,EAAE,OAAO,CAAC;IAEb,uCAAuC;IACvC,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,0CAA0C;IAC1C,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAE3B,+BAA+B;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,8BAA8B;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,yEAAyE;AACzE,UAAU,0BAA2B,SAAQ,oBAAoB;IAC/D,uDAAuD;IACvD,IAAI,EAAE,kBAAkB,GAAG;QAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CACxD;AAED,uEAAuE;AACvE,UAAU,KAAK;IACb,oCAAoC;IACpC,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;IAErC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAE9B,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,8CAA8C;IAC9C,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED,8DAA8D;AAC9D,UAAU,eAAe;IACvB,kDAAkD;IAClD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1B;AAED,qEAAqE;AACrE,UAAU,YAAY;IACpB,oDAAoD;IACpD,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,mEAAmE;AACnE,UAAU,cAAc;IACtB,kCAAkC;IAClC,UAAU,CAAC,EAAE,eAAe,CAAC;IAE7B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,IAAI,GAAG;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC;CACrC;AAED,qDAAqD;AACrD,UAAU,aAAa;IACrB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,YAAY,EACV,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,UAAU,EACV,0BAA0B,EAC1B,KAAK,EACL,YAAY,GACb,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2NvcmUvcHJlZmVyLWludGVyZmFjZS10eXBlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgdHlwZSB7IFR5cGVBbm5vdGF0aW9uTm9kZSB9IGZyb20gXCIuL3J1bGUtdXRpbGl0aWVzXCI7XG5cbi8qKiBTb3VyY2UtY29kZSBzdXJmYWNlIHJlcXVpcmVkIHRvIGJ1aWxkIHRoZSBhZ2dyZWdhdGUgYXV0b2ZpeC4gKi9cbnR5cGUgRml4U291cmNlQ29kZSA9IFBpY2s8XG4gIFJ1bGUuUnVsZUNvbnRleHRbXCJzb3VyY2VDb2RlXCJdLFxuICBcImFzdFwiIHwgXCJnZXRUZXh0XCIgfCBcInRleHRcIlxuPiAmIHtcbiAgLyoqIFNjb3BlIGluZm9ybWF0aW9uIHVzZWQgdG8gcHJlc2VydmUgbGV4aWNhbCB0eXBlIGJpbmRpbmdzLiAqL1xuICBzY29wZU1hbmFnZXI/OiBTY29wZU1hbmFnZXI7XG59O1xuXG4vKiogT25lIGlubGluZSBvYmplY3QgdHlwZSBjb2xsZWN0ZWQgZm9yIGRlZmVycmVkIHJlcG9ydGluZyBhbmQgZml4aW5nLiAqL1xuaW50ZXJmYWNlIElubGluZVR5cGVNYXRjaCB7XG4gIC8qKiBQcmVmZXJyZWQgYmFzZSBuYW1lIGJlZm9yZSBQYXNjYWxDYXNlIGNvbnZlcnNpb24gYW5kIGNvbGxpc2lvbiBoYW5kbGluZy4gKi9cbiAgYmFzZU5hbWU6IHN0cmluZztcblxuICAvKiogSW5saW5lIG9iamVjdCB0eXBlIHJlcG9ydGVkIGJ5IHRoZSBydWxlLiAqL1xuICBub2RlOiBUeXBlQW5ub3RhdGlvbk5vZGU7XG59XG5cbi8qKiBPbmUgY29sbGVjdGVkIGlubGluZSBvYmplY3QgdHlwZSB3aXRoIGl0cyBhbGxvY2F0ZWQgaW50ZXJmYWNlIG5hbWUuICovXG5pbnRlcmZhY2UgTmFtZWRJbmxpbmVUeXBlTWF0Y2ggZXh0ZW5kcyBJbmxpbmVUeXBlTWF0Y2gge1xuICAvKiogQ29sbGlzaW9uLWZyZWUgZ2VuZXJhdGVkIGludGVyZmFjZSBuYW1lLiAqL1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBOb2RlIHNoYXBlIHVzZWQgdG8gcmVzb2x2ZSBuZWFyYnkgZGVjbGFyYXRpb24gbmFtZXMuICovXG5pbnRlcmZhY2UgTmFtaW5nTm9kZSB7XG4gIC8qKiBPcHRpb25hbCBkZWNsYXJhdGlvbiBpZGVudGlmaWVyLiAqL1xuICBpZD86IHVua25vd247XG5cbiAgLyoqIE9wdGlvbmFsIHByb3BlcnR5IG9yIG1ldGhvZCBrZXkuICovXG4gIGtleT86IHVua25vd247XG5cbiAgLyoqIE9wdGlvbmFsIGlkZW50aWZpZXIgbmFtZS4gKi9cbiAgbmFtZT86IHVua25vd247XG5cbiAgLyoqIFBhcmVudCBub2RlIHN1cHBsaWVkIGJ5IHRoZSBwYXJzZXIuICovXG4gIHBhcmVudD86IE5hbWluZ05vZGUgfCBudWxsO1xuXG4gIC8qKiBOb2RlIHR5cGUgZGlzY3JpbWluYXRvci4gKi9cbiAgdHlwZT86IHVua25vd247XG5cbiAgLyoqIE9wdGlvbmFsIGxpdGVyYWwgdmFsdWUuICovXG4gIHZhbHVlPzogdW5rbm93bjtcbn1cblxuLyoqIE5hbWVkIG1hdGNoIHdob3NlIHNvdXJjZSByYW5nZSBoYXMgYmVlbiB2YWxpZGF0ZWQgZm9yIHJlcGxhY2VtZW50LiAqL1xuaW50ZXJmYWNlIFJhbmdlZE5hbWVkSW5saW5lVHlwZU1hdGNoIGV4dGVuZHMgTmFtZWRJbmxpbmVUeXBlTWF0Y2gge1xuICAvKiogSW5saW5lIG9iamVjdCB0eXBlIHdpdGggYSByZXF1aXJlZCBzb3VyY2UgcmFuZ2UuICovXG4gIG5vZGU6IFR5cGVBbm5vdGF0aW9uTm9kZSAmIHsgcmFuZ2U6IFtudW1iZXIsIG51bWJlcl0gfTtcbn1cblxuLyoqIE1pbmltYWwgbGV4aWNhbCBzY29wZSBzdXJmYWNlIHJlcXVpcmVkIGJ5IGF1dG9maXggc2FmZXR5IGNoZWNrcy4gKi9cbmludGVyZmFjZSBTY29wZSB7XG4gIC8qKiBBU1Qgbm9kZSB0aGF0IG93bnMgdGhlIHNjb3BlLiAqL1xuICBibG9jaz86IHsgcmFuZ2U/OiBbbnVtYmVyLCBudW1iZXJdIH07XG5cbiAgLyoqIFJlZmVyZW5jZXMgb3JpZ2luYXRpbmcgZnJvbSB0aGUgc2NvcGUuICovXG4gIHJlZmVyZW5jZXM/OiBTY29wZVJlZmVyZW5jZVtdO1xuXG4gIC8qKiBTY29wZSBjYXRlZ29yeSByZXBvcnRlZCBieSB0aGUgVHlwZVNjcmlwdCBFU0xpbnQgcGFyc2VyLiAqL1xuICB0eXBlPzogc3RyaW5nO1xuXG4gIC8qKiBEZWNsYXJhdGlvbnMgdmlzaWJsZSB0aHJvdWdoIHRoZSBzY29wZS4gKi9cbiAgdmFyaWFibGVzPzogU2NvcGVWYXJpYWJsZVtdO1xufVxuXG4vKiogTWluaW1hbCBpZGVudGlmaWVyIHN1cmZhY2UgZXhwb3NlZCBieSBzY29wZSByZWZlcmVuY2VzLiAqL1xuaW50ZXJmYWNlIFNjb3BlSWRlbnRpZmllciB7XG4gIC8qKiBTb3VyY2UgcmFuZ2UgZm9yIHRoZSByZWZlcmVuY2VkIGlkZW50aWZpZXIuICovXG4gIHJhbmdlPzogW251bWJlciwgbnVtYmVyXTtcbn1cblxuLyoqIFNjb3BlIG1hbmFnZXIgc3VyZmFjZSBleHBvc2VkIGJ5IHRoZSBUeXBlU2NyaXB0IEVTTGludCBwYXJzZXIuICovXG5pbnRlcmZhY2UgU2NvcGVNYW5hZ2VyIHtcbiAgLyoqIExleGljYWwgc2NvcGVzIGRpc2NvdmVyZWQgaW4gdGhlIHNvdXJjZSBmaWxlLiAqL1xuICBzY29wZXM6IFNjb3BlW107XG59XG5cbi8qKiBPbmUgaWRlbnRpZmllciByZWZlcmVuY2UgYW5kIGl0cyByZXNvbHZlZCBkZWNsYXJhdGlvbiBzY29wZS4gKi9cbmludGVyZmFjZSBTY29wZVJlZmVyZW5jZSB7XG4gIC8qKiBSZWZlcmVuY2VkIGlkZW50aWZpZXIgbm9kZS4gKi9cbiAgaWRlbnRpZmllcj86IFNjb3BlSWRlbnRpZmllcjtcblxuICAvKiogUmVzb2x2ZWQgZGVjbGFyYXRpb24gd2hlbiB0aGUgcmVmZXJlbmNlIGlzIGxvY2FsbHkgYm91bmQuICovXG4gIHJlc29sdmVkPzogbnVsbCB8IHsgc2NvcGU/OiBTY29wZSB9O1xufVxuXG4vKiogT25lIGRlY2xhcmF0aW9uIHJlY29yZGVkIGJ5IHRoZSBzY29wZSBtYW5hZ2VyLiAqL1xuaW50ZXJmYWNlIFNjb3BlVmFyaWFibGUge1xuICAvKiogRGVjbGFyZWQgaWRlbnRpZmllciBuYW1lLiAqL1xuICBuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSB7XG4gIEZpeFNvdXJjZUNvZGUsXG4gIElubGluZVR5cGVNYXRjaCxcbiAgTmFtZWRJbmxpbmVUeXBlTWF0Y2gsXG4gIE5hbWluZ05vZGUsXG4gIFJhbmdlZE5hbWVkSW5saW5lVHlwZU1hdGNoLFxuICBTY29wZSxcbiAgU2NvcGVNYW5hZ2VyLFxufTtcbiJdfQ==
|
|
@@ -1 +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,
|
|
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,EAoBzD,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"}
|
|
@@ -19,12 +19,7 @@ const getCommentLines = (commentText) => {
|
|
|
19
19
|
: nextSlice.startsWith("\n")
|
|
20
20
|
? 1
|
|
21
21
|
: 0;
|
|
22
|
-
results.push({
|
|
23
|
-
end: lineEnd,
|
|
24
|
-
lineBreakLength,
|
|
25
|
-
start: offset,
|
|
26
|
-
text: line,
|
|
27
|
-
});
|
|
22
|
+
results.push({ end: lineEnd, lineBreakLength, start: offset, text: line });
|
|
28
23
|
offset = lineEnd + lineBreakLength;
|
|
29
24
|
}
|
|
30
25
|
return results;
|
|
@@ -61,4 +56,4 @@ const buildRemovalRange = (commentStart, commentText, line) => {
|
|
|
61
56
|
return [commentStart + line.start, commentStart + line.end];
|
|
62
57
|
};
|
|
63
58
|
export { buildRemovalRange, getCommentLines };
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1yZW1vdmFsLXJhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vZG9jcy9uby1pbnRlcmZhY2UtbWVtYmVyLWRvY3MvY29tbWVudC1yZW1vdmFsLXJhbmdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sZUFBZSxHQUFHLENBQUMsV0FBbUIsRUFBaUIsRUFBRTtJQUM3RCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sT0FBTyxHQUFrQixFQUFFLENBQUM7SUFDbEMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRWYsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixNQUFNLE9BQU8sR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNyQyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUQsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUM7WUFDSCxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLENBQUMsQ0FBQyxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFUixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUUzRSxNQUFNLEdBQUcsT0FBTyxHQUFHLGVBQWUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FDeEIsWUFBb0IsRUFDcEIsV0FBbUIsRUFDbkIsSUFBaUIsRUFDQyxFQUFFO0lBQ3BCLElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPO1lBQ0wsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ3pCLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxlQUFlO1NBQy9DLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ25CLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sbUJBQW1CLEdBQUcsWUFBWSxLQUFLLElBQUksQ0FBQztRQUVsRCxJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEIsTUFBTSxlQUFlLEdBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakUsT0FBTztnQkFDTCxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxlQUFlO2dCQUMzQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUc7YUFDeEIsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDOUQsQ0FBQyxDQUFDO0FBRUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb21tZW50TGluZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogR2V0cyBnZXRDb21tZW50TGluZXMuXG4gKiBAcGFyYW0gY29tbWVudFRleHQgSW5wdXQgY29tbWVudFRleHQgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGdldENvbW1lbnRMaW5lcygpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldENvbW1lbnRMaW5lcyA9IChjb21tZW50VGV4dDogc3RyaW5nKTogQ29tbWVudExpbmVbXSA9PiB7XG4gIGNvbnN0IGxpbmVzID0gY29tbWVudFRleHQuc3BsaXQoL1xccj9cXG4vdSk7XG4gIGNvbnN0IHJlc3VsdHM6IENvbW1lbnRMaW5lW10gPSBbXTtcbiAgbGV0IG9mZnNldCA9IDA7XG5cbiAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgY29uc3QgbGluZUVuZCA9IG9mZnNldCArIGxpbmUubGVuZ3RoO1xuICAgIGNvbnN0IG5leHRTbGljZSA9IGNvbW1lbnRUZXh0LnNsaWNlKGxpbmVFbmQsIGxpbmVFbmQgKyAyKTtcbiAgICBjb25zdCBsaW5lQnJlYWtMZW5ndGggPSBuZXh0U2xpY2Uuc3RhcnRzV2l0aChcIlxcclxcblwiKVxuICAgICAgPyAyXG4gICAgICA6IG5leHRTbGljZS5zdGFydHNXaXRoKFwiXFxuXCIpXG4gICAgICAgID8gMVxuICAgICAgICA6IDA7XG5cbiAgICByZXN1bHRzLnB1c2goeyBlbmQ6IGxpbmVFbmQsIGxpbmVCcmVha0xlbmd0aCwgc3RhcnQ6IG9mZnNldCwgdGV4dDogbGluZSB9KTtcblxuICAgIG9mZnNldCA9IGxpbmVFbmQgKyBsaW5lQnJlYWtMZW5ndGg7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0cztcbn07XG5cbi8qKlxuICogQnVpbGRzIGEgcmVtb3ZhbCByYW5nZSBmb3IgdGhlIHNwZWNpZmllZCBjb21tZW50IGxpbmUuXG4gKiBAcGFyYW0gY29tbWVudFN0YXJ0IENvbW1lbnQgc3RhcnQgb2Zmc2V0IGluIHRoZSBzb3VyY2UuXG4gKiBAcGFyYW0gY29tbWVudFRleHQgRnVsbCBjb21tZW50IHRleHQuXG4gKiBAcGFyYW0gbGluZSBMaW5lIG1ldGFkYXRhIGZvciB0aGUgY29tbWVudC5cbiAqIEByZXR1cm5zIFRoZSByYW5nZSB0byByZW1vdmUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmFuZ2UgPSBidWlsZFJlbW92YWxSYW5nZSgwLCBjb21tZW50VGV4dCwgbGluZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgYnVpbGRSZW1vdmFsUmFuZ2UgPSAoXG4gIGNvbW1lbnRTdGFydDogbnVtYmVyLFxuICBjb21tZW50VGV4dDogc3RyaW5nLFxuICBsaW5lOiBDb21tZW50TGluZSxcbik6IFtudW1iZXIsIG51bWJlcl0gPT4ge1xuICBpZiAobGluZS5saW5lQnJlYWtMZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGNvbW1lbnRTdGFydCArIGxpbmUuc3RhcnQsXG4gICAgICBjb21tZW50U3RhcnQgKyBsaW5lLmVuZCArIGxpbmUubGluZUJyZWFrTGVuZ3RoLFxuICAgIF07XG4gIH1cblxuICBpZiAobGluZS5zdGFydCA+IDApIHtcbiAgICBjb25zdCBwcmV2aW91c0NoYXIgPSBjb21tZW50VGV4dFtsaW5lLnN0YXJ0IC0gMV07XG4gICAgY29uc3QgaXNQcmV2aW91c0xpbmVCcmVhayA9IHByZXZpb3VzQ2hhciA9PT0gXCJcXG5cIjtcblxuICAgIGlmIChpc1ByZXZpb3VzTGluZUJyZWFrKSB7XG4gICAgICBjb25zdCBsaW5lQnJlYWtMZW5ndGggPVxuICAgICAgICBsaW5lLnN0YXJ0ID4gMSAmJiBjb21tZW50VGV4dFtsaW5lLnN0YXJ0IC0gMl0gPT09IFwiXFxyXCIgPyAyIDogMTtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIGNvbW1lbnRTdGFydCArIGxpbmUuc3RhcnQgLSBsaW5lQnJlYWtMZW5ndGgsXG4gICAgICAgIGNvbW1lbnRTdGFydCArIGxpbmUuZW5kLFxuICAgICAgXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gW2NvbW1lbnRTdGFydCArIGxpbmUuc3RhcnQsIGNvbW1lbnRTdGFydCArIGxpbmUuZW5kXTtcbn07XG5cbmV4cG9ydCB7IGJ1aWxkUmVtb3ZhbFJhbmdlLCBnZXRDb21tZW50TGluZXMgfTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-tags.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/no-interface-member-docs/parameter-tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAmG/D;;;;;;;;GAQG;AACH,QAAA,MAAM,qBAAqB,GACzB,MAAM,WAAW,KAChB,kBAAkB,GAAG,
|
|
1
|
+
{"version":3,"file":"parameter-tags.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/no-interface-member-docs/parameter-tags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAmG/D;;;;;;;;GAQG;AACH,QAAA,MAAM,qBAAqB,GACzB,MAAM,WAAW,KAChB,kBAAkB,GAAG,SAevB,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|