@codeperfect/eslint-plugin 2.4.0 → 2.6.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 +2 -0
- package/dist/application/custom-rules.d.ts +3 -0
- package/dist/application/custom-rules.d.ts.map +1 -1
- package/dist/application/custom-rules.js +6 -2
- 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 +1 -11
- 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 +6 -14
- 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/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +2 -12
- package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/rule.js +4 -3
- 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-utilities.d.ts → no-unused-exports-usage-utilities.d.ts} +2 -23
- 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/rule.js +4 -2
- package/dist/domain/core/index.d.ts +1 -0
- package/dist/domain/core/index.d.ts.map +1 -1
- package/dist/domain/core/index.js +2 -1
- 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/no-useless-delegation/index.d.ts +2 -0
- package/dist/domain/core/no-useless-delegation/index.d.ts.map +1 -0
- package/dist/domain/core/no-useless-delegation/index.js +2 -0
- package/dist/domain/core/no-useless-delegation/rule.d.ts +5 -0
- package/dist/domain/core/no-useless-delegation/rule.d.ts.map +1 -0
- package/dist/domain/core/no-useless-delegation/rule.js +200 -0
- 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/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.map +1 -1
- package/dist/domain/testing/no-unsafe-vitest-mock-factory-cast/rule.js +18 -450
- 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/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/infrastructure/codeperfect-plugin.d.ts +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 +60 -69
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.d.ts.map +0 -1
- package/dist/domain/architecture/no-unused-exports/no-unused-exports-utilities.js +0 -612
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves a node value when it is an ESTree node.
|
|
3
|
+
* @param value Candidate AST value.
|
|
4
|
+
* @returns The value as an ESTree node when it has a type discriminator.
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* const node = asNode({ type: "Identifier" });
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
const asNode = (value) => typeof value === "object" && value !== null && "type" in value
|
|
11
|
+
? value
|
|
12
|
+
: void 0;
|
|
13
|
+
/**
|
|
14
|
+
* Resolves a node array while rejecting malformed AST data.
|
|
15
|
+
* @param value Candidate AST value.
|
|
16
|
+
* @returns AST nodes when every array item is a node.
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const nodes = asNodeArray([{ type: "Identifier" }]);
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
const asNodeArray = (value) => Array.isArray(value) && value.every((item) => asNode(item) !== void 0)
|
|
23
|
+
? value
|
|
24
|
+
: void 0;
|
|
25
|
+
/**
|
|
26
|
+
* Reads an identifier name from a node.
|
|
27
|
+
* @param node Candidate identifier node.
|
|
28
|
+
* @returns Identifier name when the node is an identifier.
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const name = getIdentifierName({ name: "run", type: "Identifier" });
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
const getIdentifierName = (node) => node?.type === "Identifier" && typeof node["name"] === "string"
|
|
35
|
+
? node["name"]
|
|
36
|
+
: void 0;
|
|
37
|
+
/**
|
|
38
|
+
* Gets the called expression from a function with one return statement.
|
|
39
|
+
* @param functionNode Function node to inspect.
|
|
40
|
+
* @returns The directly returned call expression when present.
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const call = getDelegatedCall(functionNode);
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
const getDelegatedCall = (functionNode) => {
|
|
47
|
+
if (functionNode.async === true || functionNode.generator === true) {
|
|
48
|
+
return void 0;
|
|
49
|
+
}
|
|
50
|
+
const body = asNode(functionNode["body"]);
|
|
51
|
+
if (body === void 0) {
|
|
52
|
+
return void 0;
|
|
53
|
+
}
|
|
54
|
+
if (body.type === "CallExpression") {
|
|
55
|
+
return body;
|
|
56
|
+
}
|
|
57
|
+
const statements = asNodeArray(body["body"]);
|
|
58
|
+
if (body.type !== "BlockStatement" || statements?.length !== 1) {
|
|
59
|
+
return void 0;
|
|
60
|
+
}
|
|
61
|
+
const returnStatement = statements[0];
|
|
62
|
+
return returnStatement?.type === "ReturnStatement"
|
|
63
|
+
? asNode(returnStatement["argument"])
|
|
64
|
+
: void 0;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Gets parameter names and whether each parameter is a rest parameter.
|
|
68
|
+
* @param functionNode Function node to inspect.
|
|
69
|
+
* @returns Named parameter metadata when every parameter is supported.
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* const parameters = getParameters(functionNode);
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
const getParameters = (functionNode) => {
|
|
76
|
+
const parameters = asNodeArray(functionNode["params"]);
|
|
77
|
+
if (parameters === void 0) {
|
|
78
|
+
return void 0;
|
|
79
|
+
}
|
|
80
|
+
const result = [];
|
|
81
|
+
for (const parameter of parameters) {
|
|
82
|
+
const isRest = parameter.type === "RestElement";
|
|
83
|
+
const name = getIdentifierName(isRest ? asNode(parameter["argument"]) : parameter);
|
|
84
|
+
if (name === void 0) {
|
|
85
|
+
return void 0;
|
|
86
|
+
}
|
|
87
|
+
result.push({ isRest, name });
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Determines whether one call argument forwards its corresponding parameter.
|
|
93
|
+
* @param argument Call argument to inspect.
|
|
94
|
+
* @param parameter Corresponding function parameter.
|
|
95
|
+
* @returns Whether the argument forwards the parameter without change.
|
|
96
|
+
* @example
|
|
97
|
+
* ```typescript
|
|
98
|
+
* const forwards = forwardsParameter(argument, parameter);
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
const forwardsParameter = (argument, parameter) => {
|
|
102
|
+
if (parameter.isRest) {
|
|
103
|
+
return (argument.type === "SpreadElement" &&
|
|
104
|
+
getIdentifierName(asNode(argument["argument"])) === parameter.name);
|
|
105
|
+
}
|
|
106
|
+
return getIdentifierName(argument) === parameter.name;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Determines whether a call invokes a method on a literal value.
|
|
110
|
+
* @param callee Call target to inspect.
|
|
111
|
+
* @returns Whether the target is a member access on a literal receiver.
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* const isLiteralCall = isLiteralMemberCall(callee);
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
const isLiteralMemberCall = (callee) => callee.type === "MemberExpression" &&
|
|
118
|
+
asNode(callee["object"])?.type === "Literal";
|
|
119
|
+
/**
|
|
120
|
+
* Determines whether a function does nothing except directly call another function.
|
|
121
|
+
* @param functionNode Function node to inspect.
|
|
122
|
+
* @param functionName Declared wrapper function name.
|
|
123
|
+
* @returns Whether the function is an exact synchronous delegation.
|
|
124
|
+
* @example
|
|
125
|
+
* ```typescript
|
|
126
|
+
* const isDelegation = isUselessDelegation(functionNode, "run");
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
const isUselessDelegation = (functionNode, functionName) => {
|
|
130
|
+
const call = getDelegatedCall(functionNode);
|
|
131
|
+
const parameters = getParameters(functionNode);
|
|
132
|
+
const arguments_ = asNodeArray(call?.["arguments"]);
|
|
133
|
+
const callee = asNode(call?.["callee"]);
|
|
134
|
+
if (call?.type !== "CallExpression" ||
|
|
135
|
+
parameters === void 0 ||
|
|
136
|
+
arguments_ === void 0 ||
|
|
137
|
+
callee === void 0 ||
|
|
138
|
+
isLiteralMemberCall(callee) ||
|
|
139
|
+
getIdentifierName(callee) === functionName ||
|
|
140
|
+
arguments_.length !== parameters.length) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
return arguments_.every((argument, index) => {
|
|
144
|
+
const parameter = parameters[index];
|
|
145
|
+
return parameter !== void 0 && forwardsParameter(argument, parameter);
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* Reports a function when it is a no-op delegation.
|
|
150
|
+
* @param context Rule execution context.
|
|
151
|
+
* @param functionNode Function node to inspect.
|
|
152
|
+
* @param nameNode Declared wrapper name node.
|
|
153
|
+
* @example
|
|
154
|
+
* ```typescript
|
|
155
|
+
* reportIfUselessDelegation(context, functionNode, nameNode);
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
const reportIfUselessDelegation = (context, functionNode, nameNode) => {
|
|
159
|
+
const functionName = getIdentifierName(nameNode);
|
|
160
|
+
if (functionName === void 0 ||
|
|
161
|
+
!isUselessDelegation(functionNode, functionName)) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
context.report({
|
|
165
|
+
messageId: "uselessDelegation",
|
|
166
|
+
node: nameNode,
|
|
167
|
+
});
|
|
168
|
+
};
|
|
169
|
+
/** ESLint rule implementation for functions that only forward their arguments. */
|
|
170
|
+
const noUselessDelegationRule = {
|
|
171
|
+
create: (context) => ({
|
|
172
|
+
FunctionDeclaration: (node) => {
|
|
173
|
+
const functionNode = node;
|
|
174
|
+
reportIfUselessDelegation(context, functionNode, asNode(functionNode["id"]));
|
|
175
|
+
},
|
|
176
|
+
VariableDeclarator: (node) => {
|
|
177
|
+
const declarator = node;
|
|
178
|
+
const initializer = asNode(declarator["init"]);
|
|
179
|
+
if (initializer?.type !== "ArrowFunctionExpression" &&
|
|
180
|
+
initializer?.type !== "FunctionExpression") {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
reportIfUselessDelegation(context, initializer, asNode(declarator["id"]));
|
|
184
|
+
},
|
|
185
|
+
}),
|
|
186
|
+
meta: {
|
|
187
|
+
docs: {
|
|
188
|
+
description: "Disallow named functions that only delegate directly to another call.",
|
|
189
|
+
recommended: false,
|
|
190
|
+
url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/no-useless-delegation.md",
|
|
191
|
+
},
|
|
192
|
+
messages: {
|
|
193
|
+
uselessDelegation: "This function only delegates to another call; remove the wrapper or call the target directly.",
|
|
194
|
+
},
|
|
195
|
+
schema: [],
|
|
196
|
+
type: "suggestion",
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
export { noUselessDelegationRule };
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vY29yZS9uby11c2VsZXNzLWRlbGVnYXRpb24vcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQkE7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQWMsRUFBb0IsRUFBRSxDQUNsRCxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxNQUFNLElBQUksS0FBSztJQUM1RCxDQUFDLENBQUUsS0FBYztJQUNqQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFYjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBYyxFQUFzQixFQUFFLENBQ3pELEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUMsQ0FBRSxLQUFnQjtJQUNuQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFYjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFzQixFQUFzQixFQUFFLENBQ3ZFLElBQUksRUFBRSxJQUFJLEtBQUssWUFBWSxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFFBQVE7SUFDN0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDZCxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFYjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxZQUFrQixFQUFvQixFQUFFO0lBQ2hFLElBQUksWUFBWSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNuRSxPQUFP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Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbi8qKiBPbmUgbmFtZWQgcGFyYW1ldGVyIGFuZCB3aGV0aGVyIGl0IG11c3QgYmUgc3ByZWFkIGF0IHRoZSBjYWxsIHNpdGUuICovXG5pbnRlcmZhY2UgRGVsZWdhdGVkUGFyYW1ldGVyIHtcbiAgLyoqIFdoZXRoZXIgdGhpcyBwYXJhbWV0ZXIgdXNlcyByZXN0IHN5bnRheC4gKi9cbiAgaXNSZXN0OiBib29sZWFuO1xuICAvKiogUGFyYW1ldGVyIGlkZW50aWZpZXIgbmFtZS4gKi9cbiAgbmFtZTogc3RyaW5nO1xufVxuXG4vKiogTWluaW1hbCBFU1RyZWUgbm9kZSBzaGFwZSB1c2VkIHRvIGluc3BlY3QgcGFzcy10aHJvdWdoIGZ1bmN0aW9ucy4gKi9cbmludGVyZmFjZSBOb2RlIHtcbiAgLyoqIER5bmFtaWNhbGx5IHJlYWQgY2hpbGQgbm9kZXMgYW5kIHBhcnNlci1zcGVjaWZpYyBwcm9wZXJ0aWVzLiAqL1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICAvKiogV2hldGhlciB0aGUgZnVuY3Rpb24gaXMgYXN5bmNocm9ub3VzLiAqL1xuICBhc3luYz86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRoZSBmdW5jdGlvbiBpcyBhIGdlbmVyYXRvci4gKi9cbiAgZ2VuZXJhdG9yPzogYm9vbGVhbjtcbiAgLyoqIEVTVHJlZSBkaXNjcmltaW5hdG9yLiAqL1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgYSBub2RlIHZhbHVlIHdoZW4gaXQgaXMgYW4gRVNUcmVlIG5vZGUuXG4gKiBAcGFyYW0gdmFsdWUgQ2FuZGlkYXRlIEFTVCB2YWx1ZS5cbiAqIEByZXR1cm5zIFRoZSB2YWx1ZSBhcyBhbiBFU1RyZWUgbm9kZSB3aGVuIGl0IGhhcyBhIHR5cGUgZGlzY3JpbWluYXRvci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBub2RlID0gYXNOb2RlKHsgdHlwZTogXCJJZGVudGlmaWVyXCIgfSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgYXNOb2RlID0gKHZhbHVlOiB1bmtub3duKTogTm9kZSB8IHVuZGVmaW5lZCA9PlxuICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgdmFsdWUgIT09IG51bGwgJiYgXCJ0eXBlXCIgaW4gdmFsdWVcbiAgICA/ICh2YWx1ZSBhcyBOb2RlKVxuICAgIDogdm9pZCAwO1xuXG4vKipcbiAqIFJlc29sdmVzIGEgbm9kZSBhcnJheSB3aGlsZSByZWplY3RpbmcgbWFsZm9ybWVkIEFTVCBkYXRhLlxuICogQHBhcmFtIHZhbHVlIENhbmRpZGF0ZSBBU1QgdmFsdWUuXG4gKiBAcmV0dXJucyBBU1Qgbm9kZXMgd2hlbiBldmVyeSBhcnJheSBpdGVtIGlzIGEgbm9kZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBub2RlcyA9IGFzTm9kZUFycmF5KFt7IHR5cGU6IFwiSWRlbnRpZmllclwiIH1dKTtcbiAqIGBgYFxuICovXG5jb25zdCBhc05vZGVBcnJheSA9ICh2YWx1ZTogdW5rbm93bik6IE5vZGVbXSB8IHVuZGVmaW5lZCA9PlxuICBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5ldmVyeSgoaXRlbSkgPT4gYXNOb2RlKGl0ZW0pICE9PSB2b2lkIDApXG4gICAgPyAodmFsdWUgYXMgTm9kZVtdKVxuICAgIDogdm9pZCAwO1xuXG4vKipcbiAqIFJlYWRzIGFuIGlkZW50aWZpZXIgbmFtZSBmcm9tIGEgbm9kZS5cbiAqIEBwYXJhbSBub2RlIENhbmRpZGF0ZSBpZGVudGlmaWVyIG5vZGUuXG4gKiBAcmV0dXJucyBJZGVudGlmaWVyIG5hbWUgd2hlbiB0aGUgbm9kZSBpcyBhbiBpZGVudGlmaWVyLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5hbWUgPSBnZXRJZGVudGlmaWVyTmFtZSh7IG5hbWU6IFwicnVuXCIsIHR5cGU6IFwiSWRlbnRpZmllclwiIH0pO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldElkZW50aWZpZXJOYW1lID0gKG5vZGU6IE5vZGUgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT5cbiAgbm9kZT8udHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiYgdHlwZW9mIG5vZGVbXCJuYW1lXCJdID09PSBcInN0cmluZ1wiXG4gICAgPyBub2RlW1wibmFtZVwiXVxuICAgIDogdm9pZCAwO1xuXG4vKipcbiAqIEdldHMgdGhlIGNhbGxlZCBleHByZXNzaW9uIGZyb20gYSBmdW5jdGlvbiB3aXRoIG9uZSByZXR1cm4gc3RhdGVtZW50LlxuICogQHBhcmFtIGZ1bmN0aW9uTm9kZSBGdW5jdGlvbiBub2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUaGUgZGlyZWN0bHkgcmV0dXJuZWQgY2FsbCBleHByZXNzaW9uIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBjYWxsID0gZ2V0RGVsZWdhdGVkQ2FsbChmdW5jdGlvbk5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldERlbGVnYXRlZENhbGwgPSAoZnVuY3Rpb25Ob2RlOiBOb2RlKTogTm9kZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChmdW5jdGlvbk5vZGUuYXN5bmMgPT09IHRydWUgfHwgZnVuY3Rpb25Ob2RlLmdlbmVyYXRvciA9PT0gdHJ1ZSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBib2R5ID0gYXNOb2RlKGZ1bmN0aW9uTm9kZVtcImJvZHlcIl0pO1xuICBpZiAoYm9keSA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGlmIChib2R5LnR5cGUgPT09IFwiQ2FsbEV4cHJlc3Npb25cIikge1xuICAgIHJldHVybiBib2R5O1xuICB9XG5cbiAgY29uc3Qgc3RhdGVtZW50cyA9IGFzTm9kZUFycmF5KGJvZHlbXCJib2R5XCJdKTtcbiAgaWYgKGJvZHkudHlwZSAhPT0gXCJCbG9ja1N0YXRlbWVudFwiIHx8IHN0YXRlbWVudHM/Lmxlbmd0aCAhPT0gMSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCByZXR1cm5TdGF0ZW1lbnQgPSBzdGF0ZW1lbnRzWzBdO1xuICByZXR1cm4gcmV0dXJuU3RhdGVtZW50Py50eXBlID09PSBcIlJldHVyblN0YXRlbWVudFwiXG4gICAgPyBhc05vZGUocmV0dXJuU3RhdGVtZW50W1wiYXJndW1lbnRcIl0pXG4gICAgOiB2b2lkIDA7XG59O1xuXG4vKipcbiAqIEdldHMgcGFyYW1ldGVyIG5hbWVzIGFuZCB3aGV0aGVyIGVhY2ggcGFyYW1ldGVyIGlzIGEgcmVzdCBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0gZnVuY3Rpb25Ob2RlIEZ1bmN0aW9uIG5vZGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIE5hbWVkIHBhcmFtZXRlciBtZXRhZGF0YSB3aGVuIGV2ZXJ5IHBhcmFtZXRlciBpcyBzdXBwb3J0ZWQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcGFyYW1ldGVycyA9IGdldFBhcmFtZXRlcnMoZnVuY3Rpb25Ob2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRQYXJhbWV0ZXJzID0gKFxuICBmdW5jdGlvbk5vZGU6IE5vZGUsXG4pOiBEZWxlZ2F0ZWRQYXJhbWV0ZXJbXSB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHBhcmFtZXRlcnMgPSBhc05vZGVBcnJheShmdW5jdGlvbk5vZGVbXCJwYXJhbXNcIl0pO1xuICBpZiAocGFyYW1ldGVycyA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogRGVsZWdhdGVkUGFyYW1ldGVyW10gPSBbXTtcbiAgZm9yIChjb25zdCBwYXJhbWV0ZXIgb2YgcGFyYW1ldGVycykge1xuICAgIGNvbnN0IGlzUmVzdCA9IHBhcmFtZXRlci50eXBlID09PSBcIlJlc3RFbGVtZW50XCI7XG4gICAgY29uc3QgbmFtZSA9IGdldElkZW50aWZpZXJOYW1lKFxuICAgICAgaXNSZXN0ID8gYXNOb2RlKHBhcmFtZXRlcltcImFyZ3VtZW50XCJdKSA6IHBhcmFtZXRlcixcbiAgICApO1xuICAgIGlmIChuYW1lID09PSB2b2lkIDApIHtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuXG4gICAgcmVzdWx0LnB1c2goeyBpc1Jlc3QsIG5hbWUgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgb25lIGNhbGwgYXJndW1lbnQgZm9yd2FyZHMgaXRzIGNvcnJlc3BvbmRpbmcgcGFyYW1ldGVyLlxuICogQHBhcmFtIGFyZ3VtZW50IENhbGwgYXJndW1lbnQgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSBwYXJhbWV0ZXIgQ29ycmVzcG9uZGluZyBmdW5jdGlvbiBwYXJhbWV0ZXIuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBmb3J3YXJkcyB0aGUgcGFyYW1ldGVyIHdpdGhvdXQgY2hhbmdlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGZvcndhcmRzID0gZm9yd2FyZHNQYXJhbWV0ZXIoYXJndW1lbnQsIHBhcmFtZXRlcik7XG4gKiBgYGBcbiAqL1xuY29uc3QgZm9yd2FyZHNQYXJhbWV0ZXIgPSAoXG4gIGFyZ3VtZW50OiBOb2RlLFxuICBwYXJhbWV0ZXI6IERlbGVnYXRlZFBhcmFtZXRlcixcbik6IGJvb2xlYW4gPT4ge1xuICBpZiAocGFyYW1ldGVyLmlzUmVzdCkge1xuICAgIHJldHVybiAoXG4gICAgICBhcmd1bWVudC50eXBlID09PSBcIlNwcmVhZEVsZW1lbnRcIiAmJlxuICAgICAgZ2V0SWRlbnRpZmllck5hbWUoYXNOb2RlKGFyZ3VtZW50W1wiYXJndW1lbnRcIl0pKSA9PT0gcGFyYW1ldGVyLm5hbWVcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGdldElkZW50aWZpZXJOYW1lKGFyZ3VtZW50KSA9PT0gcGFyYW1ldGVyLm5hbWU7XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGNhbGwgaW52b2tlcyBhIG1ldGhvZCBvbiBhIGxpdGVyYWwgdmFsdWUuXG4gKiBAcGFyYW0gY2FsbGVlIENhbGwgdGFyZ2V0IHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSB0YXJnZXQgaXMgYSBtZW1iZXIgYWNjZXNzIG9uIGEgbGl0ZXJhbCByZWNlaXZlci5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBpc0xpdGVyYWxDYWxsID0gaXNMaXRlcmFsTWVtYmVyQ2FsbChjYWxsZWUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzTGl0ZXJhbE1lbWJlckNhbGwgPSAoY2FsbGVlOiBOb2RlKTogYm9vbGVhbiA9PlxuICBjYWxsZWUudHlwZSA9PT0gXCJNZW1iZXJFeHByZXNzaW9uXCIgJiZcbiAgYXNOb2RlKGNhbGxlZVtcIm9iamVjdFwiXSk/LnR5cGUgPT09IFwiTGl0ZXJhbFwiO1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGZ1bmN0aW9uIGRvZXMgbm90aGluZyBleGNlcHQgZGlyZWN0bHkgY2FsbCBhbm90aGVyIGZ1bmN0aW9uLlxuICogQHBhcmFtIGZ1bmN0aW9uTm9kZSBGdW5jdGlvbiBub2RlIHRvIGluc3BlY3QuXG4gKiBAcGFyYW0gZnVuY3Rpb25OYW1lIERlY2xhcmVkIHdyYXBwZXIgZnVuY3Rpb24gbmFtZS5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGZ1bmN0aW9uIGlzIGFuIGV4YWN0IHN5bmNocm9ub3VzIGRlbGVnYXRpb24uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaXNEZWxlZ2F0aW9uID0gaXNVc2VsZXNzRGVsZWdhdGlvbihmdW5jdGlvbk5vZGUsIFwicnVuXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzVXNlbGVzc0RlbGVnYXRpb24gPSAoXG4gIGZ1bmN0aW9uTm9kZTogTm9kZSxcbiAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4pOiBib29sZWFuID0+IHtcbiAgY29uc3QgY2FsbCA9IGdldERlbGVnYXRlZENhbGwoZnVuY3Rpb25Ob2RlKTtcbiAgY29uc3QgcGFyYW1ldGVycyA9IGdldFBhcmFtZXRlcnMoZnVuY3Rpb25Ob2RlKTtcbiAgY29uc3QgYXJndW1lbnRzXyA9IGFzTm9kZUFycmF5KGNhbGw/LltcImFyZ3VtZW50c1wiXSk7XG4gIGNvbnN0IGNhbGxlZSA9IGFzTm9kZShjYWxsPy5bXCJjYWxsZWVcIl0pO1xuXG4gIGlmIChcbiAgICBjYWxsPy50eXBlICE9PSBcIkNhbGxFeHByZXNzaW9uXCIgfHxcbiAgICBwYXJhbWV0ZXJzID09PSB2b2lkIDAgfHxcbiAgICBhcmd1bWVudHNfID09PSB2b2lkIDAgfHxcbiAgICBjYWxsZWUgPT09IHZvaWQgMCB8fFxuICAgIGlzTGl0ZXJhbE1lbWJlckNhbGwoY2FsbGVlKSB8fFxuICAgIGdldElkZW50aWZpZXJOYW1lKGNhbGxlZSkgPT09IGZ1bmN0aW9uTmFtZSB8fFxuICAgIGFyZ3VtZW50c18ubGVuZ3RoICE9PSBwYXJhbWV0ZXJzLmxlbmd0aFxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gYXJndW1lbnRzXy5ldmVyeSgoYXJndW1lbnQsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgcGFyYW1ldGVyID0gcGFyYW1ldGVyc1tpbmRleF07XG4gICAgcmV0dXJuIHBhcmFtZXRlciAhPT0gdm9pZCAwICYmIGZvcndhcmRzUGFyYW1ldGVyKGFyZ3VtZW50LCBwYXJhbWV0ZXIpO1xuICB9KTtcbn07XG5cbi8qKlxuICogUmVwb3J0cyBhIGZ1bmN0aW9uIHdoZW4gaXQgaXMgYSBuby1vcCBkZWxlZ2F0aW9uLlxuICogQHBhcmFtIGNvbnRleHQgUnVsZSBleGVjdXRpb24gY29udGV4dC5cbiAqIEBwYXJhbSBmdW5jdGlvbk5vZGUgRnVuY3Rpb24gbm9kZSB0byBpbnNwZWN0LlxuICogQHBhcmFtIG5hbWVOb2RlIERlY2xhcmVkIHdyYXBwZXIgbmFtZSBub2RlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydElmVXNlbGVzc0RlbGVnYXRpb24oY29udGV4dCwgZnVuY3Rpb25Ob2RlLCBuYW1lTm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVwb3J0SWZVc2VsZXNzRGVsZWdhdGlvbiA9IChcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgZnVuY3Rpb25Ob2RlOiBOb2RlLFxuICBuYW1lTm9kZTogTm9kZSB8IHVuZGVmaW5lZCxcbik6IHZvaWQgPT4ge1xuICBjb25zdCBmdW5jdGlvbk5hbWUgPSBnZXRJZGVudGlmaWVyTmFtZShuYW1lTm9kZSk7XG4gIGlmIChcbiAgICBmdW5jdGlvbk5hbWUgPT09IHZvaWQgMCB8fFxuICAgICFpc1VzZWxlc3NEZWxlZ2F0aW9uKGZ1bmN0aW9uTm9kZSwgZnVuY3Rpb25OYW1lKVxuICApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb250ZXh0LnJlcG9ydCh7XG4gICAgbWVzc2FnZUlkOiBcInVzZWxlc3NEZWxlZ2F0aW9uXCIsXG4gICAgbm9kZTogbmFtZU5vZGUgYXMgdW5rbm93biBhcyBSdWxlLk5vZGUsXG4gIH0pO1xufTtcblxuLyoqIEVTTGludCBydWxlIGltcGxlbWVudGF0aW9uIGZvciBmdW5jdGlvbnMgdGhhdCBvbmx5IGZvcndhcmQgdGhlaXIgYXJndW1lbnRzLiAqL1xuY29uc3Qgbm9Vc2VsZXNzRGVsZWdhdGlvblJ1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlOiAoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyID0+ICh7XG4gICAgRnVuY3Rpb25EZWNsYXJhdGlvbjogKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgZnVuY3Rpb25Ob2RlID0gbm9kZSBhcyB1bmtub3duIGFzIE5vZGU7XG4gICAgICByZXBvcnRJZlVzZWxlc3NEZWxlZ2F0aW9uKFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBmdW5jdGlvbk5vZGUsXG4gICAgICAgIGFzTm9kZShmdW5jdGlvbk5vZGVbXCJpZFwiXSksXG4gICAgICApO1xuICAgIH0sXG4gICAgVmFyaWFibGVEZWNsYXJhdG9yOiAobm9kZTogUnVsZS5Ob2RlKTogdm9pZCA9PiB7XG4gICAgICBjb25zdCBkZWNsYXJhdG9yID0gbm9kZSBhcyB1bmtub3duIGFzIE5vZGU7XG4gICAgICBjb25zdCBpbml0aWFsaXplciA9IGFzTm9kZShkZWNsYXJhdG9yW1wiaW5pdFwiXSk7XG4gICAgICBpZiAoXG4gICAgICAgIGluaXRpYWxpemVyPy50eXBlICE9PSBcIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCIgJiZcbiAgICAgICAgaW5pdGlhbGl6ZXI/LnR5cGUgIT09IFwiRnVuY3Rpb25FeHByZXNzaW9uXCJcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJlcG9ydElmVXNlbGVzc0RlbGVnYXRpb24oY29udGV4dCwgaW5pdGlhbGl6ZXIsIGFzTm9kZShkZWNsYXJhdG9yW1wiaWRcIl0pKTtcbiAgICB9LFxuICB9KSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkRpc2FsbG93IG5hbWVkIGZ1bmN0aW9ucyB0aGF0IG9ubHkgZGVsZWdhdGUgZGlyZWN0bHkgdG8gYW5vdGhlciBjYWxsLlwiLFxuICAgICAgcmVjb21tZW5kZWQ6IGZhbHNlLFxuICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJsb3RpL2VzbGludC1wbHVnaW4vYmxvYi9tYWluL2RvY3MvcnVsZXMvbm8tdXNlbGVzcy1kZWxlZ2F0aW9uLm1kXCIsXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgdXNlbGVzc0RlbGVnYXRpb246XG4gICAgICAgIFwiVGhpcyBmdW5jdGlvbiBvbmx5IGRlbGVnYXRlcyB0byBhbm90aGVyIGNhbGw7IHJlbW92ZSB0aGUgd3JhcHBlciBvciBjYWxsIHRoZSB0YXJnZXQgZGlyZWN0bHkuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6IFwic3VnZ2VzdGlvblwiLFxuICB9LFxufTtcblxuZXhwb3J0IHsgbm9Vc2VsZXNzRGVsZWdhdGlvblJ1bGUgfTtcbiJdfQ==
|
|
@@ -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"}
|