@codeperfect/eslint-plugin 3.0.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/angular/angular-template-block-usage-utilities.d.ts +4 -0
- package/dist/adapters/angular/angular-template-block-usage-utilities.d.ts.map +1 -0
- package/dist/adapters/angular/angular-template-block-usage-utilities.js +69 -0
- package/dist/adapters/angular/angular-template-expression-utilities.d.ts +5 -0
- package/dist/adapters/angular/angular-template-expression-utilities.d.ts.map +1 -0
- package/dist/adapters/angular/angular-template-expression-utilities.js +121 -0
- package/dist/adapters/angular/angular-template-node-usage-utilities.d.ts +4 -0
- package/dist/adapters/angular/angular-template-node-usage-utilities.d.ts.map +1 -0
- package/dist/adapters/angular/angular-template-node-usage-utilities.js +47 -0
- package/dist/adapters/angular/angular-template-usage-context.d.ts +26 -0
- package/dist/adapters/angular/angular-template-usage-context.d.ts.map +1 -0
- package/dist/adapters/angular/angular-template-usage-context.js +12 -0
- package/dist/adapters/angular/index.d.ts +2 -0
- package/dist/adapters/angular/index.d.ts.map +1 -0
- package/dist/adapters/angular/index.js +2 -0
- package/dist/adapters/angular/no-unused-public-members-template-adapter.d.ts +15 -0
- package/dist/adapters/angular/no-unused-public-members-template-adapter.d.ts.map +1 -0
- package/dist/adapters/angular/no-unused-public-members-template-adapter.js +126 -0
- package/dist/adapters/angular/plugin.d.ts +12 -0
- package/dist/adapters/angular/plugin.d.ts.map +1 -0
- package/dist/adapters/angular/plugin.js +14 -0
- package/dist/adapters/index.d.ts +2 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +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 +3 -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/barrel-file-utilities.d.ts +0 -2
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts.map +1 -1
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +1 -2
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +0 -2
- 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 +2 -10
- package/dist/domain/architecture/index.d.ts +1 -0
- package/dist/domain/architecture/index.d.ts.map +1 -1
- package/dist/domain/architecture/index.js +2 -1
- package/dist/domain/architecture/no-unused-public-members/index.d.ts +2 -0
- package/dist/domain/architecture/no-unused-public-members/index.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/index.js +2 -0
- package/dist/domain/architecture/no-unused-public-members/member-contract-utilities.d.ts +16 -0
- package/dist/domain/architecture/no-unused-public-members/member-contract-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-contract-utilities.js +102 -0
- package/dist/domain/architecture/no-unused-public-members/member-declaration-utilities.d.ts +34 -0
- package/dist/domain/architecture/no-unused-public-members/member-declaration-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-declaration-utilities.js +55 -0
- package/dist/domain/architecture/no-unused-public-members/member-host-utilities.d.ts +68 -0
- package/dist/domain/architecture/no-unused-public-members/member-host-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-host-utilities.js +195 -0
- package/dist/domain/architecture/no-unused-public-members/member-public-api-utilities.d.ts +30 -0
- package/dist/domain/architecture/no-unused-public-members/member-public-api-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-public-api-utilities.js +106 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-expression-reference-utilities.d.ts +16 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-expression-reference-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-expression-reference-utilities.js +77 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-handoff-utilities.d.ts +28 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-handoff-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-handoff-utilities.js +151 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-local-flow-utilities.d.ts +16 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-local-flow-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-local-flow-utilities.js +151 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-reference-utilities.d.ts +29 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-reference-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-reference-utilities.js +115 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-serialization-utilities.d.ts +30 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-serialization-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-serialization-utilities.js +107 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-type-utilities.d.ts +64 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-type-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-type-utilities.js +152 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-utilities.d.ts +22 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-utilities.js +137 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-value-utilities.d.ts +43 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-value-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-usage-value-utilities.js +126 -0
- package/dist/domain/architecture/no-unused-public-members/member-utilities.d.ts +43 -0
- package/dist/domain/architecture/no-unused-public-members/member-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/member-utilities.js +52 -0
- package/dist/domain/architecture/no-unused-public-members/rule.d.ts +16 -0
- package/dist/domain/architecture/no-unused-public-members/rule.d.ts.map +1 -0
- package/dist/domain/architecture/no-unused-public-members/rule.js +88 -0
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +4 -4
- 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 -2
- package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +4 -4
- package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
- package/dist/domain/docs/no-interface-member-docs/rule.js +2 -5
- package/dist/domain/docs/require-example-language/example-utilities.d.ts +1 -7
- package/dist/domain/docs/require-example-language/example-utilities.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/example-utilities.js +4 -6
- package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/examples.js +2 -4
- package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -1
- package/dist/domain/docs/require-example-language/reporting.js +1 -4
- package/dist/domain/docs/require-example-language/types.d.ts +0 -2
- 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.d.ts.map +1 -1
- package/dist/domain/testing/aaa/analyzer.analysis.js +2 -7
- package/dist/domain/testing/aaa/analyzer.assertions.js +2 -2
- package/dist/domain/testing/aaa/analyzer.classification.js +2 -2
- package/dist/domain/testing/aaa/types.d.ts +0 -4
- 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 -7
- package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.js +5 -9
- package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.js +2 -7
- package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.js +5 -5
- 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 +13 -20
- package/dist/domain/testing/prefer-vi-mocked-import/types.d.ts +0 -2
- package/dist/domain/testing/prefer-vi-mocked-import/types.d.ts.map +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/types.js +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-options.js +3 -3
- package/dist/domain/testing/require-test-companion/rule.js +2 -2
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -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 +36 -24
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
import { isSameSymbol, resolveCanonicalSymbol, } from "../no-unused-exports/no-unused-exports-symbol-utilities.js";
|
|
3
|
+
/**
|
|
4
|
+
* Checks whether an expression carries the member's declaration.
|
|
5
|
+
* @param expression Value being copied or serialized.
|
|
6
|
+
* @param checker TypeScript type checker.
|
|
7
|
+
* @param member Member whose declaration must be present.
|
|
8
|
+
* @param visitedExpressions Expressions already inspected across local return paths.
|
|
9
|
+
* @returns True when the expression carries this member rather than an unrelated matching shape.
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const matches = carriesMember(expression, checker, member);
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
const carriesMember = (expression, checker, member, visitedExpressions = new Set()) => {
|
|
16
|
+
if (visitedExpressions.has(expression)) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
visitedExpressions.add(expression);
|
|
20
|
+
const expressionSymbol = ts.isShorthandPropertyAssignment(expression.parent)
|
|
21
|
+
? checker.getShorthandAssignmentValueSymbol(expression.parent)
|
|
22
|
+
: checker.getSymbolAtLocation(expression);
|
|
23
|
+
if (ts.isVariableDeclaration(member.hostDeclaration) &&
|
|
24
|
+
member.hostSymbol !== void 0 &&
|
|
25
|
+
expressionSymbol !== void 0 &&
|
|
26
|
+
isSameSymbol(resolveCanonicalSymbol(expressionSymbol, checker), resolveCanonicalSymbol(member.hostSymbol, checker))) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
const property = checker.getPropertyOfType(checker.getNonNullableType(checker.getTypeAtLocation(expression)), member.memberName);
|
|
30
|
+
const declaredProperty = checker.getPropertyOfType(checker.getTypeAtLocation(member.hostDeclaration), member.memberName);
|
|
31
|
+
if (property !== void 0 &&
|
|
32
|
+
(isSameSymbol(property, member.memberSymbol) ||
|
|
33
|
+
(declaredProperty !== void 0 && isSameSymbol(property, declaredProperty)))) {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
if (!ts.isCallExpression(expression)) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
const declaration = checker
|
|
40
|
+
.getResolvedSignature(expression)
|
|
41
|
+
?.getDeclaration();
|
|
42
|
+
const body = declaration !== void 0 && "body" in declaration ? declaration.body : void 0;
|
|
43
|
+
if (body === void 0) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if (!ts.isBlock(body)) {
|
|
47
|
+
return carriesMember(body, checker, member, visitedExpressions);
|
|
48
|
+
}
|
|
49
|
+
const findReturnedMember = (node) => {
|
|
50
|
+
if (ts.isFunctionLike(node)) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
return ts.isReturnStatement(node)
|
|
54
|
+
? node.expression !== void 0 &&
|
|
55
|
+
carriesMember(node.expression, checker, member, visitedExpressions)
|
|
56
|
+
: ts.forEachChild(node, findReturnedMember) === true;
|
|
57
|
+
};
|
|
58
|
+
return findReturnedMember(body);
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Checks serialized property types without following method signatures.
|
|
62
|
+
* @param type Type whose enumerable data may be serialized.
|
|
63
|
+
* @param checker TypeScript type checker.
|
|
64
|
+
* @param member Member whose declaration must be reachable.
|
|
65
|
+
* @param visitedTypes Types already searched.
|
|
66
|
+
* @param depth Remaining nested data depth.
|
|
67
|
+
* @returns Whether the serialized data contains the member declaration.
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* const used = containsSerializedMember(type, checker, member, new Set(), 5);
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
const containsSerializedMember = (type, checker, member, visitedTypes, depth) => {
|
|
74
|
+
if (depth < 0 || visitedTypes.has(type)) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
visitedTypes.add(type);
|
|
78
|
+
if (type.isUnionOrIntersection()) {
|
|
79
|
+
return type.types.some((part) => containsSerializedMember(part, checker, member, visitedTypes, depth));
|
|
80
|
+
}
|
|
81
|
+
if ((type.flags & ts.TypeFlags.Object) === 0) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
const property = checker.getPropertyOfType(type, member.memberName);
|
|
85
|
+
if (property !== void 0 && isSameSymbol(property, member.memberSymbol)) {
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
const elementType = checker.getIndexTypeOfType(type, ts.IndexKind.Number);
|
|
89
|
+
return elementType === void 0
|
|
90
|
+
? checker
|
|
91
|
+
.getPropertiesOfType(type)
|
|
92
|
+
.some((nestedProperty) => (nestedProperty.flags & ts.SymbolFlags.Method) === 0 &&
|
|
93
|
+
containsSerializedMember(checker.getTypeOfSymbolAtLocation(nestedProperty, member.declaration), checker, member, visitedTypes, depth - 1))
|
|
94
|
+
: containsSerializedMember(elementType, checker, member, visitedTypes, depth - 1);
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Checks whether an expression contains a value carrying the member.
|
|
98
|
+
* @param expression Value expression to inspect.
|
|
99
|
+
* @param checker TypeScript type checker.
|
|
100
|
+
* @param member Member whose value is being searched for.
|
|
101
|
+
* @returns True when the expression contains the member or its host value.
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* const carries = expressionCarriesMemberValue(value, checker, member);
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
const expressionCarriesMemberValue = (expression, checker, member) => {
|
|
108
|
+
if (carriesMember(expression, checker, member) ||
|
|
109
|
+
containsSerializedMember(checker.getTypeAtLocation(expression), checker, member, new Set(), 5)) {
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
if (ts.isObjectLiteralExpression(expression)) {
|
|
113
|
+
return expression.properties.some((property) => {
|
|
114
|
+
return ts.isSpreadAssignment(property)
|
|
115
|
+
? expressionCarriesMemberValue(property.expression, checker, member)
|
|
116
|
+
: (ts.isPropertyAssignment(property) &&
|
|
117
|
+
expressionCarriesMemberValue(property.initializer, checker, member)) ||
|
|
118
|
+
(ts.isShorthandPropertyAssignment(property) &&
|
|
119
|
+
expressionCarriesMemberValue(property.name, checker, member));
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
return (ts.isArrayLiteralExpression(expression) &&
|
|
123
|
+
expression.elements.some((element) => expressionCarriesMemberValue(element, checker, member)));
|
|
124
|
+
};
|
|
125
|
+
export { carriesMember, containsSerializedMember, expressionCarriesMemberValue, };
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLXVzYWdlLXZhbHVlLXV0aWxpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vYXJjaGl0ZWN0dXJlL25vLXVudXNlZC1wdWJsaWMtbWVtYmVycy9tZW1iZXItdXNhZ2UtdmFsdWUtdXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBSWpDLE9BQU8sRUFDTCxZQUFZLEVBQ1osc0JBQXNCLEdBQ3ZCLE1BQU0seURBQXlELENBQUM7QUFFakU7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLGFBQWEsR0FBRyxDQUNwQixVQUF5QixFQUN6QixPQUF1QixFQUN2QixNQUFvQixFQUNwQixxQkFBeUMsSUFBSSxHQUFHLEVBQUUsRUFDekMsRUFBRTtJQUNYLElBQUksa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDdkMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRW5DLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLDZCQUE2QixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDMUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQzlELENBQUMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsSUFDRSxFQUFFLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUNoRCxNQUFNLENBQUMsVUFBVSxLQUFLLEtBQUssQ0FBQztRQUM1QixnQkFBZ0IsS0FBSyxLQUFLLENBQUM7UUFDM0IsWUFBWSxDQUNWLHNCQUFzQixDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxFQUNqRCxzQkFBc0IsQ0FBQyxNQUFNLENB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QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUN2RCxDQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixPQUFPLEVBQ0wsYUFBYSxFQUNiLHdCQUF3QixFQUN4Qiw0QkFBNEIsR0FDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XG5cbmltcG9ydCB0eXBlIHsgUHVibGljTWVtYmVyIH0gZnJvbSBcIi4vbWVtYmVyLWRlY2xhcmF0aW9uLXV0aWxpdGllc1wiO1xuXG5pbXBvcnQge1xuICBpc1NhbWVTeW1ib2wsXG4gIHJlc29sdmVDYW5vbmljYWxTeW1ib2wsXG59IGZyb20gXCIuLi9uby11bnVzZWQtZXhwb3J0cy9uby11bnVzZWQtZXhwb3J0cy1zeW1ib2wtdXRpbGl0aWVzXCI7XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYW4gZXhwcmVzc2lvbiBjYXJyaWVzIHRoZSBtZW1iZXIncyBkZWNsYXJhdGlvbi5cbiAqIEBwYXJhbSBleHByZXNzaW9uIFZhbHVlIGJlaW5nIGNvcGllZCBvciBzZXJpYWxpemVkLlxuICogQHBhcmFtIGNoZWNrZXIgVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcGFyYW0gbWVtYmVyIE1lbWJlciB3aG9zZSBkZWNsYXJhdGlvbiBtdXN0IGJlIHByZXNlbnQuXG4gKiBAcGFyYW0gdmlzaXRlZEV4cHJlc3Npb25zIEV4cHJlc3Npb25zIGFscmVhZHkgaW5zcGVjdGVkIGFjcm9zcyBsb2NhbCByZXR1cm4gcGF0aHMuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gdGhlIGV4cHJlc3Npb24gY2FycmllcyB0aGlzIG1lbWJlciByYXRoZXIgdGhhbiBhbiB1bnJlbGF0ZWQgbWF0Y2hpbmcgc2hhcGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbWF0Y2hlcyA9IGNhcnJpZXNNZW1iZXIoZXhwcmVzc2lvbiwgY2hlY2tlciwgbWVtYmVyKTtcbiAqIGBgYFxuICovXG5jb25zdCBjYXJyaWVzTWVtYmVyID0gKFxuICBleHByZXNzaW9uOiB0cy5FeHByZXNzaW9uLFxuICBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcixcbiAgbWVtYmVyOiBQdWJsaWNNZW1iZXIsXG4gIHZpc2l0ZWRFeHByZXNzaW9uczogU2V0PHRzLkV4cHJlc3Npb24+ID0gbmV3IFNldCgpLFxuKTogYm9vbGVhbiA9PiB7XG4gIGlmICh2aXNpdGVkRXhwcmVzc2lvbnMuaGFzKGV4cHJlc3Npb24pKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZpc2l0ZWRFeHByZXNzaW9ucy5hZGQoZXhwcmVzc2lvbik7XG5cbiAgY29uc3QgZXhwcmVzc2lvblN5bWJvbCA9IHRzLmlzU2hvcnRoYW5kUHJvcGVydHlBc3NpZ25tZW50KGV4cHJlc3Npb24ucGFyZW50KVxuICAgID8gY2hlY2tlci5nZXRTaG9ydGhhbmRBc3NpZ25tZW50VmFsdWVTeW1ib2woZXhwcmVzc2lvbi5wYXJlbnQpXG4gICAgOiBjaGVja2VyLmdldFN5bWJvbEF0TG9jYXRpb24oZXhwcmVzc2lvbik7XG4gIGlmIChcbiAgICB0cy5pc1ZhcmlhYmxlRGVjbGFyYXRpb24obWVtYmVyLmhvc3REZWNsYXJhdGlvbikgJiZcbiAgICBtZW1iZXIuaG9zdFN5bWJvbCAhPT0gdm9pZCAwICYmXG4gICAgZXhwcmVzc2lvblN5bWJvbCAhPT0gdm9pZCAwICYmXG4gICAgaXNTYW1lU3ltYm9sKFxuICAgICAgcmVzb2x2ZUNhbm9uaWNhbFN5bWJvbChleHByZXNzaW9uU3ltYm9sLCBjaGVja2VyKSxcbiAgICAgIHJlc29sdmVDYW5vbmljYWxTeW1ib2wobWVtYmVyLmhvc3RTeW1ib2wsIGNoZWNrZXIpLFxuICAgIClcbiAgKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBjb25zdCBwcm9wZXJ0eSA9IGNoZWNrZXIuZ2V0UHJvcGVydHlPZlR5cGUoXG4gICAgY2hlY2tlci5nZXROb25OdWxsYWJsZVR5cGUoY2hlY2tlci5nZXRUeXBlQXRMb2NhdGlvbihleHByZXNzaW9uKSksXG4gICAgbWVtYmVyLm1lbWJlck5hbWUsXG4gICk7XG4gIGNvbnN0IGRlY2xhcmVkUHJvcGVydHkgPSBjaGVja2VyLmdldFByb3BlcnR5T2ZUeXBlKFxuICAgIGNoZWNrZXIuZ2V0VHlwZUF0TG9jYXRpb24obWVtYmVyLmhvc3REZWNsYXJhdGlvbiksXG4gICAgbWVtYmVyLm1lbWJlck5hbWUsXG4gICk7XG5cbiAgaWYgKFxuICAgIHByb3BlcnR5ICE9PSB2b2lkIDAgJiZcbiAgICAoaXNTYW1lU3ltYm9sKHByb3BlcnR5LCBtZW1iZXIubWVtYmVyU3ltYm9sKSB8fFxuICAgICAgKGRlY2xhcmVkUHJvcGVydHkgIT09IHZvaWQgMCAmJiBpc1NhbWVTeW1ib2wocHJvcGVydHksIGRlY2xhcmVkUHJvcGVydHkpKSlcbiAgKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoIXRzLmlzQ2FsbEV4cHJlc3Npb24oZXhwcmVzc2lvbikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBkZWNsYXJhdGlvbiA9IGNoZWNrZXJcbiAgICAuZ2V0UmVzb2x2ZWRTaWduYXR1cmUoZXhwcmVzc2lvbilcbiAgICA/LmdldERlY2xhcmF0aW9uKCk7XG4gIGNvbnN0IGJvZHkgPVxuICAgIGRlY2xhcmF0aW9uICE9PSB2b2lkIDAgJiYgXCJib2R5XCIgaW4gZGVjbGFyYXRpb24gPyBkZWNsYXJhdGlvbi5ib2R5IDogdm9pZCAwO1xuICBpZiAoYm9keSA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICghdHMuaXNCbG9jayhib2R5KSkge1xuICAgIHJldHVybiBjYXJyaWVzTWVtYmVyKGJvZHksIGNoZWNrZXIsIG1lbWJlciwgdmlzaXRlZEV4cHJlc3Npb25zKTtcbiAgfVxuXG4gIGNvbnN0IGZpbmRSZXR1cm5lZE1lbWJlciA9IChub2RlOiB0cy5Ob2RlKTogYm9vbGVhbiA9PiB7XG4gICAgaWYgKHRzLmlzRnVuY3Rpb25MaWtlKG5vZGUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cy5pc1JldHVyblN0YXRlbWVudChub2RlKVxuICAgICAgPyBub2RlLmV4cHJlc3Npb24gIT09IHZvaWQgMCAmJlxuICAgICAgICAgIGNhcnJpZXNNZW1iZXIobm9kZS5leHByZXNzaW9uLCBjaGVja2VyLCBtZW1iZXIsIHZpc2l0ZWRFeHByZXNzaW9ucylcbiAgICAgIDogdHMuZm9yRWFjaENoaWxkKG5vZGUsIGZpbmRSZXR1cm5lZE1lbWJlcikgPT09IHRydWU7XG4gIH07XG5cbiAgcmV0dXJuIGZpbmRSZXR1cm5lZE1lbWJlcihib2R5KTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHNlcmlhbGl6ZWQgcHJvcGVydHkgdHlwZXMgd2l0aG91dCBmb2xsb3dpbmcgbWV0aG9kIHNpZ25hdHVyZXMuXG4gKiBAcGFyYW0gdHlwZSBUeXBlIHdob3NlIGVudW1lcmFibGUgZGF0YSBtYXkgYmUgc2VyaWFsaXplZC5cbiAqIEBwYXJhbSBjaGVja2VyIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyLlxuICogQHBhcmFtIG1lbWJlciBNZW1iZXIgd2hvc2UgZGVjbGFyYXRpb24gbXVzdCBiZSByZWFjaGFibGUuXG4gKiBAcGFyYW0gdmlzaXRlZFR5cGVzIFR5cGVzIGFscmVhZHkgc2VhcmNoZWQuXG4gKiBAcGFyYW0gZGVwdGggUmVtYWluaW5nIG5lc3RlZCBkYXRhIGRlcHRoLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgc2VyaWFsaXplZCBkYXRhIGNvbnRhaW5zIHRoZSBtZW1iZXIgZGVjbGFyYXRpb24uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgdXNlZCA9IGNvbnRhaW5zU2VyaWFsaXplZE1lbWJlcih0eXBlLCBjaGVja2VyLCBtZW1iZXIsIG5ldyBTZXQoKSwgNSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY29udGFpbnNTZXJpYWxpemVkTWVtYmVyID0gKFxuICB0eXBlOiB0cy5UeXBlLFxuICBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcixcbiAgbWVtYmVyOiBQdWJsaWNNZW1iZXIsXG4gIHZpc2l0ZWRUeXBlczogU2V0PHRzLlR5cGU+LFxuICBkZXB0aDogbnVtYmVyLFxuKTogYm9vbGVhbiA9PiB7XG4gIGlmIChkZXB0aCA8IDAgfHwgdmlzaXRlZFR5cGVzLmhhcyh0eXBlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2aXNpdGVkVHlwZXMuYWRkKHR5cGUpO1xuXG4gIGlmICh0eXBlLmlzVW5pb25PckludGVyc2VjdGlvbigpKSB7XG4gICAgcmV0dXJuIHR5cGUudHlwZXMuc29tZSgocGFydCkgPT5cbiAgICAgIGNvbnRhaW5zU2VyaWFsaXplZE1lbWJlcihwYXJ0LCBjaGVja2VyLCBtZW1iZXIsIHZpc2l0ZWRUeXBlcywgZGVwdGgpLFxuICAgICk7XG4gIH1cblxuICBpZiAoKHR5cGUuZmxhZ3MgJiB0cy5UeXBlRmxhZ3MuT2JqZWN0KSA9PT0gMCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHByb3BlcnR5ID0gY2hlY2tlci5nZXRQcm9wZXJ0eU9mVHlwZSh0eXBlLCBtZW1iZXIubWVtYmVyTmFtZSk7XG4gIGlmIChwcm9wZXJ0eSAhPT0gdm9pZCAwICYmIGlzU2FtZVN5bWJvbChwcm9wZXJ0eSwgbWVtYmVyLm1lbWJlclN5bWJvbCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IGVsZW1lbnRUeXBlID0gY2hlY2tlci5nZXRJbmRleFR5cGVPZlR5cGUodHlwZSwgdHMuSW5kZXhLaW5kLk51bWJlcik7XG4gIHJldHVybiBlbGVtZW50VHlwZSA9PT0gdm9pZCAwXG4gICAgPyBjaGVja2VyXG4gICAgICAgIC5nZXRQcm9wZXJ0aWVzT2ZUeXBlKHR5cGUpXG4gICAgICAgIC5zb21lKFxuICAgICAgICAgIChuZXN0ZWRQcm9wZXJ0eSkgPT5cbiAgICAgICAgICAgIChuZXN0ZWRQcm9wZXJ0eS5mbGFncyAmIHRzLlN5bWJvbEZsYWdzLk1ldGhvZCkgPT09IDAgJiZcbiAgICAgICAgICAgIGNvbnRhaW5zU2VyaWFsaXplZE1lbWJlcihcbiAgICAgICAgICAgICAgY2hlY2tlci5nZXRUeXBlT2ZTeW1ib2xBdExvY2F0aW9uKFxuICAgICAgICAgICAgICAgIG5lc3RlZFByb3BlcnR5LFxuICAgICAgICAgICAgICAgIG1lbWJlci5kZWNsYXJhdGlvbixcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgY2hlY2tlcixcbiAgICAgICAgICAgICAgbWVtYmVyLFxuICAgICAgICAgICAgICB2aXNpdGVkVHlwZXMsXG4gICAgICAgICAgICAgIGRlcHRoIC0gMSxcbiAgICAgICAgICAgICksXG4gICAgICAgIClcbiAgICA6IGNvbnRhaW5zU2VyaWFsaXplZE1lbWJlcihcbiAgICAgICAgZWxlbWVudFR5cGUsXG4gICAgICAgIGNoZWNrZXIsXG4gICAgICAgIG1lbWJlcixcbiAgICAgICAgdmlzaXRlZFR5cGVzLFxuICAgICAgICBkZXB0aCAtIDEsXG4gICAgICApO1xufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhbiBleHByZXNzaW9uIGNvbnRhaW5zIGEgdmFsdWUgY2FycnlpbmcgdGhlIG1lbWJlci5cbiAqIEBwYXJhbSBleHByZXNzaW9uIFZhbHVlIGV4cHJlc3Npb24gdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSBjaGVja2VyIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyLlxuICogQHBhcmFtIG1lbWJlciBNZW1iZXIgd2hvc2UgdmFsdWUgaXMgYmVpbmcgc2VhcmNoZWQgZm9yLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBleHByZXNzaW9uIGNvbnRhaW5zIHRoZSBtZW1iZXIgb3IgaXRzIGhvc3QgdmFsdWUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgY2FycmllcyA9IGV4cHJlc3Npb25DYXJyaWVzTWVtYmVyVmFsdWUodmFsdWUsIGNoZWNrZXIsIG1lbWJlcik7XG4gKiBgYGBcbiAqL1xuY29uc3QgZXhwcmVzc2lvbkNhcnJpZXNNZW1iZXJWYWx1ZSA9IChcbiAgZXhwcmVzc2lvbjogdHMuRXhwcmVzc2lvbixcbiAgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsXG4gIG1lbWJlcjogUHVibGljTWVtYmVyLFxuKTogYm9vbGVhbiA9PiB7XG4gIGlmIChcbiAgICBjYXJyaWVzTWVtYmVyKGV4cHJlc3Npb24sIGNoZWNrZXIsIG1lbWJlcikgfHxcbiAgICBjb250YWluc1NlcmlhbGl6ZWRNZW1iZXIoXG4gICAgICBjaGVja2VyLmdldFR5cGVBdExvY2F0aW9uKGV4cHJlc3Npb24pLFxuICAgICAgY2hlY2tlcixcbiAgICAgIG1lbWJlcixcbiAgICAgIG5ldyBTZXQoKSxcbiAgICAgIDUsXG4gICAgKVxuICApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICh0cy5pc09iamVjdExpdGVyYWxFeHByZXNzaW9uKGV4cHJlc3Npb24pKSB7XG4gICAgcmV0dXJuIGV4cHJlc3Npb24ucHJvcGVydGllcy5zb21lKChwcm9wZXJ0eSkgPT4ge1xuICAgICAgcmV0dXJuIHRzLmlzU3ByZWFkQXNzaWdubWVudChwcm9wZXJ0eSlcbiAgICAgICAgPyBleHByZXNzaW9uQ2Fycmllc01lbWJlclZhbHVlKHByb3BlcnR5LmV4cHJlc3Npb24sIGNoZWNrZXIsIG1lbWJlcilcbiAgICAgICAgOiAodHMuaXNQcm9wZXJ0eUFzc2lnbm1lbnQocHJvcGVydHkpICYmXG4gICAgICAgICAgICBleHByZXNzaW9uQ2Fycmllc01lbWJlclZhbHVlKFxuICAgICAgICAgICAgICBwcm9wZXJ0eS5pbml0aWFsaXplcixcbiAgICAgICAgICAgICAgY2hlY2tlcixcbiAgICAgICAgICAgICAgbWVtYmVyLFxuICAgICAgICAgICAgKSkgfHxcbiAgICAgICAgICAgICh0cy5pc1Nob3J0aGFuZFByb3BlcnR5QXNzaWdubWVudChwcm9wZXJ0eSkgJiZcbiAgICAgICAgICAgICAgZXhwcmVzc2lvbkNhcnJpZXNNZW1iZXJWYWx1ZShwcm9wZXJ0eS5uYW1lLCBjaGVja2VyLCBtZW1iZXIpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgdHMuaXNBcnJheUxpdGVyYWxFeHByZXNzaW9uKGV4cHJlc3Npb24pICYmXG4gICAgZXhwcmVzc2lvbi5lbGVtZW50cy5zb21lKChlbGVtZW50KSA9PlxuICAgICAgZXhwcmVzc2lvbkNhcnJpZXNNZW1iZXJWYWx1ZShlbGVtZW50LCBjaGVja2VyLCBtZW1iZXIpLFxuICAgIClcbiAgKTtcbn07XG5cbmV4cG9ydCB7XG4gIGNhcnJpZXNNZW1iZXIsXG4gIGNvbnRhaW5zU2VyaWFsaXplZE1lbWJlcixcbiAgZXhwcmVzc2lvbkNhcnJpZXNNZW1iZXJWYWx1ZSxcbn07XG4iXX0=
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
import * as ts from "typescript";
|
|
3
|
+
import type { NoUnusedExportsState } from "../no-unused-exports/types.js";
|
|
4
|
+
import type { MemberUsageAdapter } from "./member-usage-utilities.js";
|
|
5
|
+
type ParserServices = ReturnType<typeof ESLintUtils.getParserServices>;
|
|
6
|
+
/**
|
|
7
|
+
* Collects unused direct public members from a linted source file.
|
|
8
|
+
* @param sourceFile Source file being linted.
|
|
9
|
+
* @param program TypeScript project program.
|
|
10
|
+
* @param state Normalized public API and test patterns.
|
|
11
|
+
* @param repoRoot Root directory used for glob matching.
|
|
12
|
+
* @param parserServices TypeScript and ESTree node maps.
|
|
13
|
+
* @param usageAdapters Adapters that recognize usage outside TypeScript source.
|
|
14
|
+
* @returns Members outside the public API with no production use.
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const unused = collectUnusedPublicMembers(sourceFile, program, state, repoRoot, services);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
declare const collectUnusedPublicMembers: (sourceFile: ts.SourceFile, program: ts.Program, state: NoUnusedExportsState, repoRoot: string, parserServices: ParserServices, usageAdapters?: readonly MemberUsageAdapter[]) => import("./member-declaration-utilities.js").PublicMember[];
|
|
21
|
+
/**
|
|
22
|
+
* Finds the program source file matching an absolute lint filename.
|
|
23
|
+
* @param program TypeScript project program.
|
|
24
|
+
* @param filename Absolute filename to find.
|
|
25
|
+
* @returns Matching source file when it belongs to the program.
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const sourceFile = getProgramSourceFile(program, context.filename);
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
declare const getProgramSourceFile: (program: ts.Program, filename: string) => ts.SourceFile | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Returns the absolute project root from the TypeScript program.
|
|
34
|
+
* @param program TypeScript project program.
|
|
35
|
+
* @returns Absolute TypeScript project root.
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* const projectRoot = getProjectRoot(program);
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
declare const getProjectRoot: (program: ts.Program) => string;
|
|
42
|
+
export { collectUnusedPublicMembers, getProgramSourceFile, getProjectRoot };
|
|
43
|
+
//# sourceMappingURL=member-utilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"member-utilities.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-unused-public-members/member-utilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AASnE,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAEvE;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,0BAA0B,GAC9B,YAAY,EAAE,CAAC,UAAU,EACzB,SAAS,EAAE,CAAC,OAAO,EACnB,OAAO,oBAAoB,EAC3B,UAAU,MAAM,EAChB,gBAAgB,cAAc,EAC9B,gBAAe,SAAS,kBAAkB,EAAO,4DAUlD,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,oBAAoB,GACxB,SAAS,EAAE,CAAC,OAAO,EACnB,UAAU,MAAM,KACf,EAAE,CAAC,UAAU,GAAG,SAOd,CAAC;AAEN;;;;;;;;GAQG;AACH,QAAA,MAAM,cAAc,GAAI,SAAS,EAAE,CAAC,OAAO,KAAG,MACD,CAAC;AAE9C,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import * as ts from "typescript";
|
|
4
|
+
import { collectPublicMembers } from "./member-declaration-utilities.js";
|
|
5
|
+
import { isPublicApiHost, isPublicApiMember, } from "./member-public-api-utilities.js";
|
|
6
|
+
import { hasProductionUsage } from "./member-usage-utilities.js";
|
|
7
|
+
/**
|
|
8
|
+
* Collects unused direct public members from a linted source file.
|
|
9
|
+
* @param sourceFile Source file being linted.
|
|
10
|
+
* @param program TypeScript project program.
|
|
11
|
+
* @param state Normalized public API and test patterns.
|
|
12
|
+
* @param repoRoot Root directory used for glob matching.
|
|
13
|
+
* @param parserServices TypeScript and ESTree node maps.
|
|
14
|
+
* @param usageAdapters Adapters that recognize usage outside TypeScript source.
|
|
15
|
+
* @returns Members outside the public API with no production use.
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const unused = collectUnusedPublicMembers(sourceFile, program, state, repoRoot, services);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
const collectUnusedPublicMembers = (sourceFile, program, state, repoRoot, parserServices, usageAdapters = []) => {
|
|
22
|
+
const checker = program.getTypeChecker();
|
|
23
|
+
return collectPublicMembers(sourceFile, checker, parserServices).filter((member) => !isPublicApiHost(program, state, repoRoot, member.hostSymbol) &&
|
|
24
|
+
!isPublicApiMember(program, state, repoRoot, member.memberSymbol) &&
|
|
25
|
+
!hasProductionUsage(program, state, repoRoot, member, usageAdapters));
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Finds the program source file matching an absolute lint filename.
|
|
29
|
+
* @param program TypeScript project program.
|
|
30
|
+
* @param filename Absolute filename to find.
|
|
31
|
+
* @returns Matching source file when it belongs to the program.
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const sourceFile = getProgramSourceFile(program, context.filename);
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
const getProgramSourceFile = (program, filename) => program
|
|
38
|
+
.getSourceFiles()
|
|
39
|
+
.find((sourceFile) => path.resolve(sourceFile.fileName).toLowerCase() ===
|
|
40
|
+
path.resolve(filename).toLowerCase());
|
|
41
|
+
/**
|
|
42
|
+
* Returns the absolute project root from the TypeScript program.
|
|
43
|
+
* @param program TypeScript project program.
|
|
44
|
+
* @returns Absolute TypeScript project root.
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* const projectRoot = getProjectRoot(program);
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
const getProjectRoot = (program) => path.resolve(program.getCurrentDirectory());
|
|
51
|
+
export { collectUnusedPublicMembers, getProgramSourceFile, getProjectRoot };
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLXV0aWxpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vYXJjaGl0ZWN0dXJlL25vLXVudXNlZC1wdWJsaWMtbWVtYmVycy9tZW1iZXItdXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFLakMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUNMLGVBQWUsRUFDZixpQkFBaUIsR0FDbEIsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUk5RDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSwwQkFBMEIsR0FBRyxDQUNqQyxVQUF5QixFQUN6QixPQUFtQixFQUNuQixLQUEyQixFQUMzQixRQUFnQixFQUNoQixjQUE4QixFQUM5QixnQkFBK0MsRUFBRSxFQUNqRCxFQUFFO0lBQ0YsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBRXpDLE9BQU8sb0JBQW9CLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQ3JFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDVCxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQzdELENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUNqRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FDdkUsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sb0JBQW9CLEdBQUcsQ0FDM0IsT0FBbUIsRUFDbkIsUUFBZ0IsRUFDVyxFQUFFLENBQzdCLE9BQU87S0FDSixjQUFjLEVBQUU7S0FDaEIsSUFBSSxDQUNILENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDYixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUU7SUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FDdkMsQ0FBQztBQUVOOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFtQixFQUFVLEVBQUUsQ0FDckQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0FBRTlDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVTTGludFV0aWxzIH0gZnJvbSBcIkB0eXBlc2NyaXB0LWVzbGludC91dGlsc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0ICogYXMgdHMgZnJvbSBcInR5cGVzY3JpcHRcIjtcblxuaW1wb3J0IHR5cGUgeyBOb1VudXNlZEV4cG9ydHNTdGF0ZSB9IGZyb20gXCIuLi9uby11bnVzZWQtZXhwb3J0cy90eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBNZW1iZXJVc2FnZUFkYXB0ZXIgfSBmcm9tIFwiLi9tZW1iZXItdXNhZ2UtdXRpbGl0aWVzXCI7XG5cbmltcG9ydCB7IGNvbGxlY3RQdWJsaWNNZW1iZXJzIH0gZnJvbSBcIi4vbWVtYmVyLWRlY2xhcmF0aW9uLXV0aWxpdGllc1wiO1xuaW1wb3J0IHtcbiAgaXNQdWJsaWNBcGlIb3N0LFxuICBpc1B1YmxpY0FwaU1lbWJlcixcbn0gZnJvbSBcIi4vbWVtYmVyLXB1YmxpYy1hcGktdXRpbGl0aWVzXCI7XG5pbXBvcnQgeyBoYXNQcm9kdWN0aW9uVXNhZ2UgfSBmcm9tIFwiLi9tZW1iZXItdXNhZ2UtdXRpbGl0aWVzXCI7XG5cbnR5cGUgUGFyc2VyU2VydmljZXMgPSBSZXR1cm5UeXBlPHR5cGVvZiBFU0xpbnRVdGlscy5nZXRQYXJzZXJTZXJ2aWNlcz47XG5cbi8qKlxuICogQ29sbGVjdHMgdW51c2VkIGRpcmVjdCBwdWJsaWMgbWVtYmVycyBmcm9tIGEgbGludGVkIHNvdXJjZSBmaWxlLlxuICogQHBhcmFtIHNvdXJjZUZpbGUgU291cmNlIGZpbGUgYmVpbmcgbGludGVkLlxuICogQHBhcmFtIHByb2dyYW0gVHlwZVNjcmlwdCBwcm9qZWN0IHByb2dyYW0uXG4gKiBAcGFyYW0gc3RhdGUgTm9ybWFsaXplZCBwdWJsaWMgQVBJIGFuZCB0ZXN0IHBhdHRlcm5zLlxuICogQHBhcmFtIHJlcG9Sb290IFJvb3QgZGlyZWN0b3J5IHVzZWQgZm9yIGdsb2IgbWF0Y2hpbmcuXG4gKiBAcGFyYW0gcGFyc2VyU2VydmljZXMgVHlwZVNjcmlwdCBhbmQgRVNUcmVlIG5vZGUgbWFwcy5cbiAqIEBwYXJhbSB1c2FnZUFkYXB0ZXJzIEFkYXB0ZXJzIHRoYXQgcmVjb2duaXplIHVzYWdlIG91dHNpZGUgVHlwZVNjcmlwdCBzb3VyY2UuXG4gKiBAcmV0dXJucyBNZW1iZXJzIG91dHNpZGUgdGhlIHB1YmxpYyBBUEkgd2l0aCBubyBwcm9kdWN0aW9uIHVzZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB1bnVzZWQgPSBjb2xsZWN0VW51c2VkUHVibGljTWVtYmVycyhzb3VyY2VGaWxlLCBwcm9ncmFtLCBzdGF0ZSwgcmVwb1Jvb3QsIHNlcnZpY2VzKTtcbiAqIGBgYFxuICovXG5jb25zdCBjb2xsZWN0VW51c2VkUHVibGljTWVtYmVycyA9IChcbiAgc291cmNlRmlsZTogdHMuU291cmNlRmlsZSxcbiAgcHJvZ3JhbTogdHMuUHJvZ3JhbSxcbiAgc3RhdGU6IE5vVW51c2VkRXhwb3J0c1N0YXRlLFxuICByZXBvUm9vdDogc3RyaW5nLFxuICBwYXJzZXJTZXJ2aWNlczogUGFyc2VyU2VydmljZXMsXG4gIHVzYWdlQWRhcHRlcnM6IHJlYWRvbmx5IE1lbWJlclVzYWdlQWRhcHRlcltdID0gW10sXG4pID0+IHtcbiAgY29uc3QgY2hlY2tlciA9IHByb2dyYW0uZ2V0VHlwZUNoZWNrZXIoKTtcblxuICByZXR1cm4gY29sbGVjdFB1YmxpY01lbWJlcnMoc291cmNlRmlsZSwgY2hlY2tlciwgcGFyc2VyU2VydmljZXMpLmZpbHRlcihcbiAgICAobWVtYmVyKSA9PlxuICAgICAgIWlzUHVibGljQXBpSG9zdChwcm9ncmFtLCBzdGF0ZSwgcmVwb1Jvb3QsIG1lbWJlci5ob3N0U3ltYm9sKSAmJlxuICAgICAgIWlzUHVibGljQXBpTWVtYmVyKHByb2dyYW0sIHN0YXRlLCByZXBvUm9vdCwgbWVtYmVyLm1lbWJlclN5bWJvbCkgJiZcbiAgICAgICFoYXNQcm9kdWN0aW9uVXNhZ2UocHJvZ3JhbSwgc3RhdGUsIHJlcG9Sb290LCBtZW1iZXIsIHVzYWdlQWRhcHRlcnMpLFxuICApO1xufTtcblxuLyoqXG4gKiBGaW5kcyB0aGUgcHJvZ3JhbSBzb3VyY2UgZmlsZSBtYXRjaGluZyBhbiBhYnNvbHV0ZSBsaW50IGZpbGVuYW1lLlxuICogQHBhcmFtIHByb2dyYW0gVHlwZVNjcmlwdCBwcm9qZWN0IHByb2dyYW0uXG4gKiBAcGFyYW0gZmlsZW5hbWUgQWJzb2x1dGUgZmlsZW5hbWUgdG8gZmluZC5cbiAqIEByZXR1cm5zIE1hdGNoaW5nIHNvdXJjZSBmaWxlIHdoZW4gaXQgYmVsb25ncyB0byB0aGUgcHJvZ3JhbS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzb3VyY2VGaWxlID0gZ2V0UHJvZ3JhbVNvdXJjZUZpbGUocHJvZ3JhbSwgY29udGV4dC5maWxlbmFtZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0UHJvZ3JhbVNvdXJjZUZpbGUgPSAoXG4gIHByb2dyYW06IHRzLlByb2dyYW0sXG4gIGZpbGVuYW1lOiBzdHJpbmcsXG4pOiB0cy5Tb3VyY2VGaWxlIHwgdW5kZWZpbmVkID0+XG4gIHByb2dyYW1cbiAgICAuZ2V0U291cmNlRmlsZXMoKVxuICAgIC5maW5kKFxuICAgICAgKHNvdXJjZUZpbGUpID0+XG4gICAgICAgIHBhdGgucmVzb2x2ZShzb3VyY2VGaWxlLmZpbGVOYW1lKS50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICBwYXRoLnJlc29sdmUoZmlsZW5hbWUpLnRvTG93ZXJDYXNlKCksXG4gICAgKTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBhYnNvbHV0ZSBwcm9qZWN0IHJvb3QgZnJvbSB0aGUgVHlwZVNjcmlwdCBwcm9ncmFtLlxuICogQHBhcmFtIHByb2dyYW0gVHlwZVNjcmlwdCBwcm9qZWN0IHByb2dyYW0uXG4gKiBAcmV0dXJucyBBYnNvbHV0ZSBUeXBlU2NyaXB0IHByb2plY3Qgcm9vdC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBwcm9qZWN0Um9vdCA9IGdldFByb2plY3RSb290KHByb2dyYW0pO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFByb2plY3RSb290ID0gKHByb2dyYW06IHRzLlByb2dyYW0pOiBzdHJpbmcgPT5cbiAgcGF0aC5yZXNvbHZlKHByb2dyYW0uZ2V0Q3VycmVudERpcmVjdG9yeSgpKTtcblxuZXhwb3J0IHsgY29sbGVjdFVudXNlZFB1YmxpY01lbWJlcnMsIGdldFByb2dyYW1Tb3VyY2VGaWxlLCBnZXRQcm9qZWN0Um9vdCB9O1xuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
import type { MemberUsageAdapter } from "./member-usage-utilities.js";
|
|
3
|
+
/**
|
|
4
|
+
* Creates the rule listener with optional framework-specific member usage adapters.
|
|
5
|
+
* @param usageAdapters Adapters that recognize uses outside TypeScript source.
|
|
6
|
+
* @returns ESLint's create listener for the rule.
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const create = createNoUnusedPublicMembersListener();
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
declare const createNoUnusedPublicMembersListener: (usageAdapters?: readonly MemberUsageAdapter[]) => ((context: Rule.RuleContext) => Rule.RuleListener);
|
|
13
|
+
/** ESLint rule flagging public members unused by production code. */
|
|
14
|
+
declare const noUnusedPublicMembersRule: Rule.RuleModule;
|
|
15
|
+
export { createNoUnusedPublicMembersListener, noUnusedPublicMembersRule };
|
|
16
|
+
//# sourceMappingURL=rule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/architecture/no-unused-public-members/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAInC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAenE;;;;;;;;GAQG;AACH,QAAA,MAAM,mCAAmC,GAErC,gBAAe,SAAS,kBAAkB,EAAO,KAChD,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,YAAY,CA8CnD,CAAC;AAEJ,qEAAqE;AACrE,QAAA,MAAM,yBAAyB,EAAE,IAAI,CAAC,UA0CrC,CAAC;AAEF,OAAO,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
2
|
+
import { DEFAULT_PUBLIC_API_FILES, DEFAULT_TEST_FILE_PATTERNS, getOptions, isLintableFilename, isTestFile, } from "../no-unused-exports/no-unused-exports-options.js";
|
|
3
|
+
import { collectUnusedPublicMembers, getProgramSourceFile, getProjectRoot, } from "./member-utilities.js";
|
|
4
|
+
/**
|
|
5
|
+
* Creates the rule listener with optional framework-specific member usage adapters.
|
|
6
|
+
* @param usageAdapters Adapters that recognize uses outside TypeScript source.
|
|
7
|
+
* @returns ESLint's create listener for the rule.
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const create = createNoUnusedPublicMembersListener();
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
const createNoUnusedPublicMembersListener = (usageAdapters = []) => (context) => {
|
|
14
|
+
if (!isLintableFilename(context.filename)) {
|
|
15
|
+
return {};
|
|
16
|
+
}
|
|
17
|
+
let parserServices;
|
|
18
|
+
try {
|
|
19
|
+
parserServices = ESLintUtils.getParserServices(context);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return {};
|
|
23
|
+
}
|
|
24
|
+
const program = parserServices.program;
|
|
25
|
+
const state = getOptions(context.options);
|
|
26
|
+
const projectRoot = getProjectRoot(program);
|
|
27
|
+
if (isTestFile(context.filename, state, projectRoot)) {
|
|
28
|
+
return {};
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
Program() {
|
|
32
|
+
const sourceFile = getProgramSourceFile(program, context.filename);
|
|
33
|
+
if (sourceFile === void 0) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
for (const member of collectUnusedPublicMembers(sourceFile, program, state, projectRoot, parserServices, usageAdapters)) {
|
|
37
|
+
context.report({
|
|
38
|
+
data: { hostName: member.hostName, memberName: member.memberName },
|
|
39
|
+
messageId: "unusedPublicMember",
|
|
40
|
+
node: member.reportNode,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
/** ESLint rule flagging public members unused by production code. */
|
|
47
|
+
const noUnusedPublicMembersRule = {
|
|
48
|
+
create: createNoUnusedPublicMembersListener(),
|
|
49
|
+
meta: {
|
|
50
|
+
defaultOptions: [
|
|
51
|
+
{
|
|
52
|
+
publicApiFiles: [...DEFAULT_PUBLIC_API_FILES],
|
|
53
|
+
testFilePatterns: [...DEFAULT_TEST_FILE_PATTERNS],
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
docs: {
|
|
57
|
+
description: "Disallow public members that are unused by production code unless their host is part of the public API.",
|
|
58
|
+
recommended: false,
|
|
59
|
+
url: "https://github.com/parloti/eslint-plugin/blob/main/docs/rules/no-unused-public-members.md",
|
|
60
|
+
},
|
|
61
|
+
messages: {
|
|
62
|
+
unusedPublicMember: "Member '{{memberName}}' of '{{hostName}}' is never used by production code; remove it or make it private.",
|
|
63
|
+
},
|
|
64
|
+
schema: [
|
|
65
|
+
{
|
|
66
|
+
additionalProperties: false,
|
|
67
|
+
properties: {
|
|
68
|
+
publicApiFiles: {
|
|
69
|
+
description: "File globs that define public API export surfaces.",
|
|
70
|
+
items: { type: "string" },
|
|
71
|
+
minItems: 1,
|
|
72
|
+
type: "array",
|
|
73
|
+
},
|
|
74
|
+
testFilePatterns: {
|
|
75
|
+
description: "File globs treated as tests when classifying member consumers.",
|
|
76
|
+
items: { type: "string" },
|
|
77
|
+
minItems: 1,
|
|
78
|
+
type: "array",
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
type: "object",
|
|
82
|
+
},
|
|
83
|
+
],
|
|
84
|
+
type: "problem",
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
export { createNoUnusedPublicMembersListener, noUnusedPublicMembersRule };
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vYXJjaGl0ZWN0dXJlL25vLXVudXNlZC1wdWJsaWMtbWVtYmVycy9ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUl2RCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQixVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLFVBQVUsR0FDWCxNQUFNLGdEQUFnRCxDQUFDO0FBQ3hELE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLGNBQWMsR0FDZixNQUFNLG9CQUFvQixDQUFDO0FBRTVCOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxtQ0FBbUMsR0FDdkMsQ0FDRSxnQkFBK0MsRUFBRSxFQUNHLEVBQUUsQ0FDeEQsQ0FBQyxPQUFPLEVBQXFCLEVBQUU7SUFDN0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzFDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELElBQUksY0FBZ0UsQ0FBQztJQUVyRSxJQUFJLENBQUM7UUFDSCxjQUFjLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixDQUFDLE9BQWdCLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQztJQUN2QyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUU1QyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ3JELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPO1lBQ0wsTUFBTSxVQUFVLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVuRSxJQUFJLFVBQVUsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMxQixPQUFPO1lBQ1QsQ0FBQztZQUVELEtBQUssTUFBTSxNQUFNLElBQUksMEJBQTBCLENBQzdDLFVBQVUsRUFDVixPQUFPLEVBQ1AsS0FBSyxFQUNMLFdBQVcsRUFDWCxjQUFjLEVBQ2QsYUFBYSxDQUNkLEVBQUUsQ0FBQztnQkFDRixPQUFPLENBQUMsTUFBTSxDQUFDO29CQUNiLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFO29CQUNsRSxTQUFTLEVBQUUsb0JBQW9CO29CQUMvQixJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVU7aUJBQ3hCLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVKLHFFQUFxRTtBQUNyRSxNQUFNLHlCQUF5QixHQUFvQjtJQUNqRCxNQUFNLEVBQUUsbUNBQW1DLEVBQUU7SUFDN0MsSUFBSSxFQUFFO1FBQ0osY0FBYyxFQUFFO1lBQ2Q7Z0JBQ0UsY0FBYyxFQUFFLENBQUMsR0FBRyx3QkFBd0IsQ0FBQztnQkFDN0MsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLDBCQUEwQixDQUFDO2FBQ2xEO1NBQ0Y7UUFDRCxJQUFJLEVBQUU7WUFDSixXQUFXLEVBQ1QseUdBQXlHO1lBQzNHLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLEdBQUcsRUFBRSwyRkFBMkY7U0FDakc7UUFDRCxRQUFRLEVBQUU7WUFDUixrQkFBa0IsRUFDaEIsMkdBQTJHO1NBQzlHO1FBQ0QsTUFBTSxFQUFFO1lBQ047Z0JBQ0Usb0JBQW9CLEVBQUUsS0FBSztnQkFDM0IsVUFBVSxFQUFFO29CQUNWLGNBQWMsRUFBRTt3QkFDZCxXQUFXLEVBQUUsb0RBQW9EO3dCQUNqRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO3dCQUN6QixRQUFRLEVBQUUsQ0FBQzt3QkFDWCxJQUFJLEVBQUUsT0FBTztxQkFDZDtvQkFDRCxnQkFBZ0IsRUFBRTt3QkFDaEIsV0FBVyxFQUNULGdFQUFnRTt3QkFDbEUsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTt3QkFDekIsUUFBUSxFQUFFLENBQUM7d0JBQ1gsSUFBSSxFQUFFLE9BQU87cUJBQ2Q7aUJBQ0Y7Z0JBQ0QsSUFBSSxFQUFFLFFBQVE7YUFDZjtTQUNGO1FBQ0QsSUFBSSxFQUFFLFNBQVM7S0FDaEI7Q0FDRixDQUFDO0FBRUYsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLHlCQUF5QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7IEVTTGludFV0aWxzIH0gZnJvbSBcIkB0eXBlc2NyaXB0LWVzbGludC91dGlsc1wiO1xuXG5pbXBvcnQgdHlwZSB7IE1lbWJlclVzYWdlQWRhcHRlciB9IGZyb20gXCIuL21lbWJlci11c2FnZS11dGlsaXRpZXNcIjtcblxuaW1wb3J0IHtcbiAgREVGQVVMVF9QVUJMSUNfQVBJX0ZJTEVTLFxuICBERUZBVUxUX1RFU1RfRklMRV9QQVRURVJOUyxcbiAgZ2V0T3B0aW9ucyxcbiAgaXNMaW50YWJsZUZpbGVuYW1lLFxuICBpc1Rlc3RGaWxlLFxufSBmcm9tIFwiLi4vbm8tdW51c2VkLWV4cG9ydHMvbm8tdW51c2VkLWV4cG9ydHMtb3B0aW9uc1wiO1xuaW1wb3J0IHtcbiAgY29sbGVjdFVudXNlZFB1YmxpY01lbWJlcnMsXG4gIGdldFByb2dyYW1Tb3VyY2VGaWxlLFxuICBnZXRQcm9qZWN0Um9vdCxcbn0gZnJvbSBcIi4vbWVtYmVyLXV0aWxpdGllc1wiO1xuXG4vKipcbiAqIENyZWF0ZXMgdGhlIHJ1bGUgbGlzdGVuZXIgd2l0aCBvcHRpb25hbCBmcmFtZXdvcmstc3BlY2lmaWMgbWVtYmVyIHVzYWdlIGFkYXB0ZXJzLlxuICogQHBhcmFtIHVzYWdlQWRhcHRlcnMgQWRhcHRlcnMgdGhhdCByZWNvZ25pemUgdXNlcyBvdXRzaWRlIFR5cGVTY3JpcHQgc291cmNlLlxuICogQHJldHVybnMgRVNMaW50J3MgY3JlYXRlIGxpc3RlbmVyIGZvciB0aGUgcnVsZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBjcmVhdGUgPSBjcmVhdGVOb1VudXNlZFB1YmxpY01lbWJlcnNMaXN0ZW5lcigpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZU5vVW51c2VkUHVibGljTWVtYmVyc0xpc3RlbmVyID1cbiAgKFxuICAgIHVzYWdlQWRhcHRlcnM6IHJlYWRvbmx5IE1lbWJlclVzYWdlQWRhcHRlcltdID0gW10sXG4gICk6ICgoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCkgPT4gUnVsZS5SdWxlTGlzdGVuZXIpID0+XG4gIChjb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIgPT4ge1xuICAgIGlmICghaXNMaW50YWJsZUZpbGVuYW1lKGNvbnRleHQuZmlsZW5hbWUpKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgbGV0IHBhcnNlclNlcnZpY2VzOiBSZXR1cm5UeXBlPHR5cGVvZiBFU0xpbnRVdGlscy5nZXRQYXJzZXJTZXJ2aWNlcz47XG5cbiAgICB0cnkge1xuICAgICAgcGFyc2VyU2VydmljZXMgPSBFU0xpbnRVdGlscy5nZXRQYXJzZXJTZXJ2aWNlcyhjb250ZXh0IGFzIG5ldmVyKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9ncmFtID0gcGFyc2VyU2VydmljZXMucHJvZ3JhbTtcbiAgICBjb25zdCBzdGF0ZSA9IGdldE9wdGlvbnMoY29udGV4dC5vcHRpb25zKTtcbiAgICBjb25zdCBwcm9qZWN0Um9vdCA9IGdldFByb2plY3RSb290KHByb2dyYW0pO1xuXG4gICAgaWYgKGlzVGVzdEZpbGUoY29udGV4dC5maWxlbmFtZSwgc3RhdGUsIHByb2plY3RSb290KSkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBQcm9ncmFtKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzb3VyY2VGaWxlID0gZ2V0UHJvZ3JhbVNvdXJjZUZpbGUocHJvZ3JhbSwgY29udGV4dC5maWxlbmFtZSk7XG5cbiAgICAgICAgaWYgKHNvdXJjZUZpbGUgPT09IHZvaWQgMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgbWVtYmVyIG9mIGNvbGxlY3RVbnVzZWRQdWJsaWNNZW1iZXJzKFxuICAgICAgICAgIHNvdXJjZUZpbGUsXG4gICAgICAgICAgcHJvZ3JhbSxcbiAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICBwcm9qZWN0Um9vdCxcbiAgICAgICAgICBwYXJzZXJTZXJ2aWNlcyxcbiAgICAgICAgICB1c2FnZUFkYXB0ZXJzLFxuICAgICAgICApKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgZGF0YTogeyBob3N0TmFtZTogbWVtYmVyLmhvc3ROYW1lLCBtZW1iZXJOYW1lOiBtZW1iZXIubWVtYmVyTmFtZSB9LFxuICAgICAgICAgICAgbWVzc2FnZUlkOiBcInVudXNlZFB1YmxpY01lbWJlclwiLFxuICAgICAgICAgICAgbm9kZTogbWVtYmVyLnJlcG9ydE5vZGUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgfTtcblxuLyoqIEVTTGludCBydWxlIGZsYWdnaW5nIHB1YmxpYyBtZW1iZXJzIHVudXNlZCBieSBwcm9kdWN0aW9uIGNvZGUuICovXG5jb25zdCBub1VudXNlZFB1YmxpY01lbWJlcnNSdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZTogY3JlYXRlTm9VbnVzZWRQdWJsaWNNZW1iZXJzTGlzdGVuZXIoKSxcbiAgbWV0YToge1xuICAgIGRlZmF1bHRPcHRpb25zOiBbXG4gICAgICB7XG4gICAgICAgIHB1YmxpY0FwaUZpbGVzOiBbLi4uREVGQVVMVF9QVUJMSUNfQVBJX0ZJTEVTXSxcbiAgICAgICAgdGVzdEZpbGVQYXR0ZXJuczogWy4uLkRFRkFVTFRfVEVTVF9GSUxFX1BBVFRFUk5TXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJEaXNhbGxvdyBwdWJsaWMgbWVtYmVycyB0aGF0IGFyZSB1bnVzZWQgYnkgcHJvZHVjdGlvbiBjb2RlIHVubGVzcyB0aGVpciBob3N0IGlzIHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkuXCIsXG4gICAgICByZWNvbW1lbmRlZDogZmFsc2UsXG4gICAgICB1cmw6IFwiaHR0cHM6Ly9naXRodWIuY29tL3BhcmxvdGkvZXNsaW50LXBsdWdpbi9ibG9iL21haW4vZG9jcy9ydWxlcy9uby11bnVzZWQtcHVibGljLW1lbWJlcnMubWRcIixcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICB1bnVzZWRQdWJsaWNNZW1iZXI6XG4gICAgICAgIFwiTWVtYmVyICd7e21lbWJlck5hbWV9fScgb2YgJ3t7aG9zdE5hbWV9fScgaXMgbmV2ZXIgdXNlZCBieSBwcm9kdWN0aW9uIGNvZGU7IHJlbW92ZSBpdCBvciBtYWtlIGl0IHByaXZhdGUuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgcHVibGljQXBpRmlsZXM6IHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkZpbGUgZ2xvYnMgdGhhdCBkZWZpbmUgcHVibGljIEFQSSBleHBvcnQgc3VyZmFjZXMuXCIsXG4gICAgICAgICAgICBpdGVtczogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICBtaW5JdGVtczogMSxcbiAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRlc3RGaWxlUGF0dGVybnM6IHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcIkZpbGUgZ2xvYnMgdHJlYXRlZCBhcyB0ZXN0cyB3aGVuIGNsYXNzaWZ5aW5nIG1lbWJlciBjb25zdW1lcnMuXCIsXG4gICAgICAgICAgICBpdGVtczogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICBtaW5JdGVtczogMSxcbiAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgfSxcbiAgICBdLFxuICAgIHR5cGU6IFwicHJvYmxlbVwiLFxuICB9LFxufTtcblxuZXhwb3J0IHsgY3JlYXRlTm9VbnVzZWRQdWJsaWNNZW1iZXJzTGlzdGVuZXIsIG5vVW51c2VkUHVibGljTWVtYmVyc1J1bGUgfTtcbiJdfQ==
|
|
@@ -87,9 +87,9 @@ const getJsdocComment = (sourceCode, node) => {
|
|
|
87
87
|
const getCommentText = (sourceCode, comment) => {
|
|
88
88
|
const start = comment.range?.[0];
|
|
89
89
|
const end = comment.range?.[1];
|
|
90
|
-
return typeof start
|
|
91
|
-
?
|
|
92
|
-
:
|
|
90
|
+
return typeof start === "number" && typeof end === "number"
|
|
91
|
+
? sourceCode.text.slice(start, end)
|
|
92
|
+
: "";
|
|
93
93
|
};
|
|
94
94
|
export { getCommentText, getJsdocComment };
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2RvY3Mvbm8taW50ZXJmYWNlLW1lbWJlci1kb2NzL2NvbW1lbnQtdXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFnQixFQUFXLEVBQUUsQ0FDbkQsT0FBTyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFNUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQWdCLEVBQXNCLEVBQUU7SUFDN0QsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXRDLE9BQU8sT0FBTyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlELENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsQ0FDekIsUUFBbUIsRUFDbkIsU0FBaUIsRUFDSSxFQUFFO0lBQ3ZCLElBQUksT0FBTyxHQUF3QixLQUFLLENBQUMsQ0FBQztJQUMxQyxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUVwQixLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBRXhFLElBQUksQ0FBQyxDQUNILGNBQWM7WUFDZCxVQUFVLElBQUksU0FBUztZQUN2QixVQUFVLEdBQUcsVUFBVSxDQUN4QixFQUFFLENBQUM7WUFDRixTQUFTO1FBQ1gsQ0FBQztRQUVELE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDbEIsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsVUFBMEMsRUFDMUMsSUFBZSxFQUNNLEVBQUU7SUFDdkIsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzdDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVsQyxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzNELE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUV4RCxJQUFJLE9BQU8sS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV0QyxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ25DLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0scUJBQXFCLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRTNFLE9BQU8scUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0RSxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGNBQWMsR0FBRyxDQUNyQixVQUEwQyxFQUMxQyxPQUFnQixFQUNSLEVBQUU7SUFDVixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRS9CLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFDekQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7UUFDbkMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNULENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB0eXBlIHsgQ29tbWVudCB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogQ2hlY2tzIGlzSnNkb2NDb21tZW50LlxuICogQHBhcmFtIGNvbW1lbnQgSW5wdXQgY29tbWVudCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaXNKc2RvY0NvbW1lbnQoKTtcbiAqIGBgYFxuICovXG5jb25zdCBpc0pzZG9jQ29tbWVudCA9IChjb21tZW50OiBDb21tZW50KTogYm9vbGVhbiA9PlxuICBjb21tZW50LnR5cGUgPT09IFwiQmxvY2tcIiAmJiBjb21tZW50LnZhbHVlLnN0YXJ0c1dpdGgoXCIqXCIpO1xuXG4vKipcbiAqIEdldHMgZ2V0Q29tbWVudEVuZC5cbiAqIEBwYXJhbSBjb21tZW50IElucHV0IGNvbW1lbnQgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGdldENvbW1lbnRFbmQoKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRDb21tZW50RW5kID0gKGNvbW1lbnQ6IENvbW1lbnQpOiBudW1iZXIgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBjb21tZW50RW5kID0gY29tbWVudC5yYW5nZT8uWzFdO1xuXG4gIHJldHVybiB0eXBlb2YgY29tbWVudEVuZCA9PT0gXCJudW1iZXJcIiA/IGNvbW1lbnRFbmQgOiB2b2lkIDA7XG59O1xuXG4vKipcbiAqIEZpbmRzIHRoZSBjbG9zZXN0IEpTRG9jIGNvbW1lbnQgYmVmb3JlIGEgbm9kZS5cbiAqIEBwYXJhbSBjb21tZW50cyBDb21tZW50IGxpc3QgdG8gc2VhcmNoLlxuICogQHBhcmFtIG5vZGVTdGFydCBTdGFydCBvZmZzZXQgb2YgdGhlIG5vZGUuXG4gKiBAcmV0dXJucyBUaGUgY2xvc2VzdCBKU0RvYyBjb21tZW50IHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBjb21tZW50ID0gZmluZENsb3Nlc3RDb21tZW50KGNvbW1lbnRzLCBub2RlU3RhcnQpO1xuICogYGBgXG4gKi9cbmNvbnN0IGZpbmRDbG9zZXN0Q29tbWVudCA9IChcbiAgY29tbWVudHM6IENvbW1lbnRbXSxcbiAgbm9kZVN0YXJ0OiBudW1iZXIsXG4pOiBDb21tZW50IHwgdW5kZWZpbmVkID0+IHtcbiAgbGV0IGNsb3Nlc3Q6IENvbW1lbnQgfCB1bmRlZmluZWQgPSB2b2lkIDA7XG4gIGxldCBjbG9zZXN0RW5kID0gLTE7XG5cbiAgZm9yIChjb25zdCBjb21tZW50IG9mIGNvbW1lbnRzKSB7XG4gICAgY29uc3QgY29tbWVudEVuZCA9IGdldENvbW1lbnRFbmQoY29tbWVudCk7XG4gICAgY29uc3Qgc2hvdWxkQ29uc2lkZXIgPSBpc0pzZG9jQ29tbWVudChjb21tZW50KSAmJiBjb21tZW50RW5kICE9PSB2b2lkIDA7XG5cbiAgICBpZiAoIShcbiAgICAgIHNob3VsZENvbnNpZGVyICYmXG4gICAgICBjb21tZW50RW5kIDw9IG5vZGVTdGFydCAmJlxuICAgICAgY29tbWVudEVuZCA+IGNsb3Nlc3RFbmRcbiAgICApKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjbG9zZXN0ID0gY29tbWVudDtcbiAgICBjbG9zZXN0RW5kID0gY29tbWVudEVuZDtcbiAgfVxuXG4gIHJldHVybiBjbG9zZXN0O1xufTtcblxuLyoqXG4gKiBHZXRzIHRoZSBjbG9zZXN0IEpTRG9jIGNvbW1lbnQgZm9yIGEgbm9kZS5cbiAqIEBwYXJhbSBzb3VyY2VDb2RlIFNvdXJjZSBjb2RlIHdyYXBwZXIuXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUaGUgY2xvc2VzdCBKU0RvYyBjb21tZW50IHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBjb21tZW50ID0gZ2V0SnNkb2NDb21tZW50KHNvdXJjZUNvZGUsIG5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldEpzZG9jQ29tbWVudCA9IChcbiAgc291cmNlQ29kZTogUnVsZS5SdWxlQ29udGV4dFtcInNvdXJjZUNvZGVcIl0sXG4gIG5vZGU6IFJ1bGUuTm9kZSxcbik6IENvbW1lbnQgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBjb21tZW50cyA9IHNvdXJjZUNvZGUuZ2V0QWxsQ29tbWVudHMoKTtcbiAgY29uc3Qgbm9kZVN0YXJ0ID0gbm9kZS5yYW5nZT8uWzBdO1xuXG4gIGlmICh0eXBlb2Ygbm9kZVN0YXJ0ICE9PSBcIm51bWJlclwiIHx8IGNvbW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBjb21tZW50ID0gZmluZENsb3Nlc3RDb21tZW50KGNvbW1lbnRzLCBub2RlU3RhcnQpO1xuXG4gIGlmIChjb21tZW50ID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgY29tbWVudEVuZCA9IGNvbW1lbnQucmFuZ2U/LlsxXTtcblxuICBpZiAodHlwZW9mIGNvbW1lbnRFbmQgIT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgYmV0d2VlbkNvbW1lbnRBbmROb2RlID0gc291cmNlQ29kZS50ZXh0LnNsaWNlKGNvbW1lbnRFbmQsIG5vZGVTdGFydCk7XG5cbiAgcmV0dXJuIGJldHdlZW5Db21tZW50QW5kTm9kZS50cmltKCkubGVuZ3RoID09PSAwID8gY29tbWVudCA6IHZvaWQgMDtcbn07XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGZ1bGwgdGV4dCBmb3IgYSBjb21tZW50IHJhbmdlLlxuICogQHBhcmFtIHNvdXJjZUNvZGUgU291cmNlIGNvZGUgd3JhcHBlci5cbiAqIEBwYXJhbSBjb21tZW50IENvbW1lbnQgdG8gcmVhZC5cbiAqIEByZXR1cm5zIENvbW1lbnQgY29udGVudHMgZnJvbSB0aGUgc291cmNlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHRleHQgPSBnZXRDb21tZW50VGV4dChzb3VyY2VDb2RlLCBjb21tZW50KTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRDb21tZW50VGV4dCA9IChcbiAgc291cmNlQ29kZTogUnVsZS5SdWxlQ29udGV4dFtcInNvdXJjZUNvZGVcIl0sXG4gIGNvbW1lbnQ6IENvbW1lbnQsXG4pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBzdGFydCA9IGNvbW1lbnQucmFuZ2U/LlswXTtcbiAgY29uc3QgZW5kID0gY29tbWVudC5yYW5nZT8uWzFdO1xuXG4gIHJldHVybiB0eXBlb2Ygc3RhcnQgPT09IFwibnVtYmVyXCIgJiYgdHlwZW9mIGVuZCA9PT0gXCJudW1iZXJcIlxuICAgID8gc291cmNlQ29kZS50ZXh0LnNsaWNlKHN0YXJ0LCBlbmQpXG4gICAgOiBcIlwiO1xufTtcblxuZXhwb3J0IHsgZ2V0Q29tbWVudFRleHQsIGdldEpzZG9jQ29tbWVudCB9O1xuIl19
|
|
@@ -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;
|
|
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;AAgG/D;;;;;;;;GAQG;AACH,QAAA,MAAM,qBAAqB,GACzB,MAAM,WAAW,KAChB,kBAAkB,GAAG,SAavB,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -70,7 +70,7 @@ const getMemberName = (normalized) => {
|
|
|
70
70
|
}
|
|
71
71
|
const basename = normalized.slice(0, dotIndex);
|
|
72
72
|
const memberPath = normalized.slice(dotIndex + 1).trim();
|
|
73
|
-
return memberPath.length > 0 ? { basename
|
|
73
|
+
return memberPath.length > 0 ? { basename } : void 0;
|
|
74
74
|
};
|
|
75
75
|
/**
|
|
76
76
|
* Parses a `@param` tag line into a member tag when applicable.
|
|
@@ -93,4 +93,4 @@ const parseParameterTagLine = (line) => {
|
|
|
93
93
|
: { basename: member.basename, fullName: normalized, line };
|
|
94
94
|
};
|
|
95
95
|
export { parseParameterTagLine };
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLXRhZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2RvY3Mvbm8taW50ZXJmYWNlLW1lbWJlci1kb2NzL3BhcmFtZXRlci10YWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLDZEQUE2RDtBQUM3RCxNQUFNLG1CQUFtQixHQUFHLDZDQUE2QyxDQUFDO0FBRTFFOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxJQUFZLEVBQVUsRUFBRSxDQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBRTVDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE9BQWUsRUFBVSxFQUFFO0lBQ3BELE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFMUMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxPQUFlLEVBQVUsRUFBRSxDQUN6RCxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7S0FDdkIsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7S0FDbkIsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7S0FDbkIsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztBQUV6Qjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFlLEVBQXNCLEVBQUU7SUFDL0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QyxNQUFNLFVBQVUsR0FBRyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVuRCxPQUFPLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JELENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FBQyxVQUFrQixFQUFtQyxFQUFFO0lBQzVFLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFekMsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbEIsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0MsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFekQsT0FBTyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkQsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHFCQUFxQixHQUFHLENBQzVCLElBQWlCLEVBQ2UsRUFBRTtJQUNsQyxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTdDLElBQUksVUFBVSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXpDLE9BQU8sTUFBTSxLQUFLLEtBQUssQ0FBQztRQUN0QixDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNoRSxDQUFDLENBQUM7QUFFRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tbWVudExpbmUsIFBhcmFtZXRlck1lbWJlclRhZyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKiBNZW1iZXIgcGF0aCBkZXRhaWxzIGV4dHJhY3RlZCBmcm9tIGEgcGFyYW1ldGVyIHRhZy4gKi9cbmludGVyZmFjZSBQYXJhbWV0ZXJNZW1iZXJOYW1lIHtcbiAgLyoqIEJhc2VuYW1lIGZpZWxkIHZhbHVlLiAqL1xuICBiYXNlbmFtZTogc3RyaW5nO1xufVxuXG4vKiogRXh0cmFjdHMgdGhlIHBhcmFtZXRlciBuYW1lIGZyb20gYW4gYEBwYXJhbWAgdGFnIGxpbmUuICovXG5jb25zdCBwYXJhbWV0ZXJUYWdQYXR0ZXJuID0gL0BwYXJhbVxccysoPzpcXHtbXn1dKlxcfVxccyspPyg/PG5hbWU+W15cXHMtXSspL3U7XG5cbi8qKlxuICogRGVmaW5lcyBzdHJpcEpzZG9jTGluZS5cbiAqIEBwYXJhbSBsaW5lIElucHV0IGxpbmUgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHN0cmlwSnNkb2NMaW5lKCk7XG4gKiBgYGBcbiAqL1xuY29uc3Qgc3RyaXBKc2RvY0xpbmUgPSAobGluZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIGxpbmUucmVwbGFjZSgvXlxccypcXC8/XFwqKlxccz8vdSwgXCJcIikudHJpbSgpO1xuXG4vKipcbiAqIERlZmluZXMgc3RyaXBEZWZhdWx0VmFsdWUuXG4gKiBAcGFyYW0gcmF3TmFtZSBJbnB1dCByYXdOYW1lIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBzdHJpcERlZmF1bHRWYWx1ZSgpO1xuICogYGBgXG4gKi9cbmNvbnN0IHN0cmlwRGVmYXVsdFZhbHVlID0gKHJhd05hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IFtoZWFkID0gXCJcIl0gPSByYXdOYW1lLnNwbGl0KFwiPVwiLCAxKTtcblxuICByZXR1cm4gaGVhZDtcbn07XG5cbi8qKlxuICogTm9ybWFsaXplcyBub3JtYWxpemVQYXJhbWV0ZXJOYW1lLlxuICogQHBhcmFtIHJhd05hbWUgSW5wdXQgcmF3TmFtZSB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogbm9ybWFsaXplUGFyYW1ldGVyTmFtZSgpO1xuICogYGBgXG4gKi9cbmNvbnN0IG5vcm1hbGl6ZVBhcmFtZXRlck5hbWUgPSAocmF3TmFtZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIHN0cmlwRGVmYXVsdFZhbHVlKHJhd05hbWUpXG4gICAgLnJlcGxhY2UoL15cXFsvdSwgXCJcIilcbiAgICAucmVwbGFjZSgvXFxdJC91LCBcIlwiKVxuICAgIC5yZXBsYWNlKC9cXD8kL3UsIFwiXCIpO1xuXG4vKipcbiAqIEdldHMgZ2V0UGFyYW1ldGVyTmFtZS5cbiAqIEBwYXJhbSBjb250ZW50IElucHV0IGNvbnRlbnQgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGdldFBhcmFtZXRlck5hbWUoKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRQYXJhbWV0ZXJOYW1lID0gKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmICghY29udGVudC5zdGFydHNXaXRoKFwiQHBhcmFtXCIpKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IG1hdGNoID0gcGFyYW1ldGVyVGFnUGF0dGVybi5leGVjKGNvbnRlbnQpO1xuICBjb25zdCByYXdOYW1lID0gbWF0Y2g/Lmdyb3Vwcz8uW1wibmFtZVwiXSA/PyBcIlwiO1xuICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplUGFyYW1ldGVyTmFtZShyYXdOYW1lKTtcblxuICByZXR1cm4gbm9ybWFsaXplZC5sZW5ndGggPiAwID8gbm9ybWFsaXplZCA6IHZvaWQgMDtcbn07XG5cbi8qKlxuICogRXh0cmFjdHMgbWVtYmVyIHBhdGggZGV0YWlscyBmcm9tIGEgbm9ybWFsaXplZCBwYXJhbWV0ZXIgbmFtZS5cbiAqIEBwYXJhbSBub3JtYWxpemVkIE5vcm1hbGl6ZWQgcGFyYW1ldGVyIG5hbWUuXG4gKiBAcmV0dXJucyBNZW1iZXIgcGF0aCBkZXRhaWxzIHdoZW4gYXZhaWxhYmxlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG1lbWJlciA9IGdldE1lbWJlck5hbWUoXCJwcm9wcy50aXRsZVwiKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRNZW1iZXJOYW1lID0gKG5vcm1hbGl6ZWQ6IHN0cmluZyk6IFBhcmFtZXRlck1lbWJlck5hbWUgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBkb3RJbmRleCA9IG5vcm1hbGl6ZWQuaW5kZXhPZihcIi5cIik7XG5cbiAgaWYgKGRvdEluZGV4IDw9IDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgYmFzZW5hbWUgPSBub3JtYWxpemVkLnNsaWNlKDAsIGRvdEluZGV4KTtcbiAgY29uc3QgbWVtYmVyUGF0aCA9IG5vcm1hbGl6ZWQuc2xpY2UoZG90SW5kZXggKyAxKS50cmltKCk7XG5cbiAgcmV0dXJuIG1lbWJlclBhdGgubGVuZ3RoID4gMCA/IHsgYmFzZW5hbWUgfSA6IHZvaWQgMDtcbn07XG5cbi8qKlxuICogUGFyc2VzIGEgYEBwYXJhbWAgdGFnIGxpbmUgaW50byBhIG1lbWJlciB0YWcgd2hlbiBhcHBsaWNhYmxlLlxuICogQHBhcmFtIGxpbmUgQ29tbWVudCBsaW5lIG1ldGFkYXRhLlxuICogQHJldHVybnMgUGFyc2VkIHBhcmFtZXRlciBtZW1iZXIgdGFnIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB0YWcgPSBwYXJzZVBhcmFtZXRlclRhZ0xpbmUobGluZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcGFyc2VQYXJhbWV0ZXJUYWdMaW5lID0gKFxuICBsaW5lOiBDb21tZW50TGluZSxcbik6IFBhcmFtZXRlck1lbWJlclRhZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IGNvbnRlbnQgPSBzdHJpcEpzZG9jTGluZShsaW5lLnRleHQpO1xuICBjb25zdCBub3JtYWxpemVkID0gZ2V0UGFyYW1ldGVyTmFtZShjb250ZW50KTtcblxuICBpZiAobm9ybWFsaXplZCA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IG1lbWJlciA9IGdldE1lbWJlck5hbWUobm9ybWFsaXplZCk7XG5cbiAgcmV0dXJuIG1lbWJlciA9PT0gdm9pZCAwXG4gICAgPyB2b2lkIDBcbiAgICA6IHsgYmFzZW5hbWU6IG1lbWJlci5iYXNlbmFtZSwgZnVsbE5hbWU6IG5vcm1hbGl6ZWQsIGxpbmUgfTtcbn07XG5cbmV4cG9ydCB7IHBhcnNlUGFyYW1ldGVyVGFnTGluZSB9O1xuIl19
|
|
@@ -48,9 +48,9 @@ const getParameterIdentifier = (node) => {
|
|
|
48
48
|
}
|
|
49
49
|
const identifier = resolved;
|
|
50
50
|
const { name } = identifier;
|
|
51
|
-
return typeof name
|
|
52
|
-
?
|
|
53
|
-
:
|
|
51
|
+
return typeof name === "string" && identifier.type === "Identifier"
|
|
52
|
+
? { ...identifier, name }
|
|
53
|
+
: void 0;
|
|
54
54
|
};
|
|
55
55
|
/**
|
|
56
56
|
* Gets parameter info for the given node.
|
|
@@ -117,4 +117,4 @@ const getParameterTypeLookup = (node) => {
|
|
|
117
117
|
*/
|
|
118
118
|
const isNamedTypeReference = (typeAnnotation) => typeAnnotation?.type === "TSTypeReference";
|
|
119
119
|
export { getParameterTypeLookup, isNamedTypeReference };
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLXV0aWxpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vZG9jcy9uby1pbnRlcmZhY2UtbWVtYmVyLWRvY3MvcGFyYW1ldGVyLXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1REE7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHFCQUFxQixHQUFHLENBQzVCLElBQW9CLEVBQ1ksRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDO0FBRXpFOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLElBQWEsRUFBVyxFQUFFO0lBQ3RELElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxJQUEwQixDQUFDO0lBRTdDLElBQUksU0FBUyxDQUFDLFFBQVEsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkMsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUM7UUFDeEUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJO1FBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDWCxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sc0JBQXNCLEdBQUcsQ0FDN0IsSUFBYSxFQUNvQixFQUFFO0lBQ25DLE1BQU0sUUFBUSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTVDLElBQUksUUFBUSxLQUFLLElBQUksSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUN0RCxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxRQUEwQixDQUFDO0lBQzlDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxVQUFVLENBQUM7SUFFNUIsT0FBTyxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQ2pFLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDUixDQUFDLENBQUMsRUFBRSxHQUFHLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUM5QixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFhLEVBQTZCLEVBQUU7SUFDcEUsTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFaEQsSUFBSSxVQUFVLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV6RCxPQUFPLGNBQWMsS0FBSyxLQUFLLENBQUM7UUFDOUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUU7UUFDM0IsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUM7QUFDaEQsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQWEsRUFBYSxFQUFFO0lBQ2pELElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxJQUF3QixDQUFDO0lBRTNDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNqRSxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sc0JBQXNCLEdBQUcsQ0FDN0IsSUFBZSxFQUNrQixFQUFFO0lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO0lBRXJELEtBQUssTUFBTSxTQUFTLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDNUMsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFekMsSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RELE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sb0JBQW9CLEdBQUcsQ0FDM0IsY0FBOEMsRUFDckMsRUFBRSxDQUFDLGNBQWMsRUFBRSxJQUFJLEtBQUssaUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB0eXBlIHsgVHlwZUFubm90YXRpb25Ob2RlIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIEZ1bmN0aW9uTGlrZU5vZGUge1xuICAvKiogUGFyYW1zIGhlbHBlciB2YWx1ZS4gKi9cbiAgcGFyYW1zPzogdW5rbm93bltdO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgSWRlbnRpZmllck5vZGUge1xuICAvKiogTmFtZSBoZWxwZXIgdmFsdWUuICovXG4gIG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqIFR5cGUgaGVscGVyIHZhbHVlLiAqL1xuICB0eXBlPzogc3RyaW5nO1xuXG4gIC8qKiBUeXBlQW5ub3RhdGlvbiBoZWxwZXIgdmFsdWUuICovXG4gIHR5cGVBbm5vdGF0aW9uPzoge1xuICAgIC8qKiBUeXBlQW5ub3RhdGlvbiBoZWxwZXIgdmFsdWUuICovXG4gICAgdHlwZUFubm90YXRpb24/OiBUeXBlQW5ub3RhdGlvbk5vZGU7XG4gIH07XG59XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBOYW1lZElkZW50aWZpZXJOb2RlIGV4dGVuZHMgSWRlbnRpZmllck5vZGUge1xuICAvKiogTmFtZSBmaWVsZCB2YWx1ZS4gKi9cbiAgbmFtZTogc3RyaW5nO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgUGFyYW1ldGVyQ29udGFpbmVyIHtcbiAgLyoqIEFyZ3VtZW50IGhlbHBlciB2YWx1ZS4gKi9cbiAgYXJndW1lbnQ/OiB1bmtub3duO1xuXG4gIC8qKiBMZWZ0IGhlbHBlciB2YWx1ZS4gKi9cbiAgbGVmdD86IHVua25vd247XG5cbiAgLyoqIFBhcmFtZXRlciBoZWxwZXIgdmFsdWUuICovXG4gIHBhcmFtZXRlcj86IHVua25vd247XG5cbiAgLyoqIFR5cGUgaGVscGVyIHZhbHVlLiAqL1xuICB0eXBlPzogc3RyaW5nO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgUGFyYW1ldGVySW5mbyB7XG4gIC8qKiBOYW1lIGZpZWxkIHZhbHVlLiAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIFR5cGVBbm5vdGF0aW9uIGhlbHBlciB2YWx1ZS4gKi9cbiAgdHlwZUFubm90YXRpb24/OiBUeXBlQW5ub3RhdGlvbk5vZGU7XG59XG5cbi8qKlxuICogR2V0cyBhIHR5cGUgYW5ub3RhdGlvbiBub2RlIGZyb20gYW4gaWRlbnRpZmllci5cbiAqIEBwYXJhbSBub2RlIElkZW50aWZpZXIgbm9kZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVGhlIHR5cGUgYW5ub3RhdGlvbiBub2RlIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBhbm5vdGF0aW9uID0gZ2V0VHlwZUFubm90YXRpb25Ob2RlKGlkZW50aWZpZXIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFR5cGVBbm5vdGF0aW9uTm9kZSA9IChcbiAgbm9kZTogSWRlbnRpZmllck5vZGUsXG4pOiBUeXBlQW5ub3RhdGlvbk5vZGUgfCB1bmRlZmluZWQgPT4gbm9kZS50eXBlQW5ub3RhdGlvbj8udHlwZUFubm90YXRpb247XG5cbi8qKlxuICogRGVmaW5lcyByZXNvbHZlUGFyYW1ldGVyTm9kZS5cbiAqIEBwYXJhbSBub2RlIElucHV0IG5vZGUgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlc29sdmVQYXJhbWV0ZXJOb2RlKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVzb2x2ZVBhcmFtZXRlck5vZGUgPSAobm9kZTogdW5rbm93bik6IHVua25vd24gPT4ge1xuICBpZiAobm9kZSA9PT0gbnVsbCB8fCB0eXBlb2Ygbm9kZSAhPT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgY29uc3QgY29udGFpbmVyID0gbm9kZSBhcyBQYXJhbWV0ZXJDb250YWluZXI7XG5cbiAgaWYgKGNvbnRhaW5lci5hcmd1bWVudCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lci5hcmd1bWVudDtcbiAgfVxuXG4gIGlmIChjb250YWluZXIucGFyYW1ldGVyICE9PSB2b2lkIDApIHtcbiAgICByZXR1cm4gY29udGFpbmVyLnBhcmFtZXRlcjtcbiAgfVxuXG4gIHJldHVybiBjb250YWluZXIudHlwZSA9PT0gXCJBc3NpZ25tZW50UGF0dGVyblwiICYmIGNvbnRhaW5lci5sZWZ0ICE9PSB2b2lkIDBcbiAgICA/IGNvbnRhaW5lci5sZWZ0XG4gICAgOiBub2RlO1xufTtcblxuLyoqXG4gKiBHZXRzIHRoZSBwYXJhbWV0ZXIgaWRlbnRpZmllciBmb3IgYSBwYXJhbWV0ZXIgbm9kZS5cbiAqIEBwYXJhbSBub2RlIFBhcmFtZXRlciBub2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUaGUgaWRlbnRpZmllciBub2RlIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBpZGVudGlmaWVyID0gZ2V0UGFyYW1ldGVySWRlbnRpZmllcihub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRQYXJhbWV0ZXJJZGVudGlmaWVyID0gKFxuICBub2RlOiB1bmtub3duLFxuKTogTmFtZWRJZGVudGlmaWVyTm9kZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZVBhcmFtZXRlck5vZGUobm9kZSk7XG5cbiAgaWYgKHJlc29sdmVkID09PSBudWxsIHx8IHR5cGVvZiByZXNvbHZlZCAhPT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBpZGVudGlmaWVyID0gcmVzb2x2ZWQgYXMgSWRlbnRpZmllck5vZGU7XG4gIGNvbnN0IHsgbmFtZSB9ID0gaWRlbnRpZmllcjtcblxuICByZXR1cm4gdHlwZW9mIG5hbWUgIT09IFwic3RyaW5nXCIgfHwgaWRlbnRpZmllci50eXBlICE9PSBcIklkZW50aWZpZXJcIlxuICAgID8gdm9pZCAwXG4gICAgOiB7IC4uLmlkZW50aWZpZXIsIG5hbWUgfTtcbn07XG5cbi8qKlxuICogR2V0cyBwYXJhbWV0ZXIgaW5mbyBmb3IgdGhlIGdpdmVuIG5vZGUuXG4gKiBAcGFyYW0gbm9kZSBQYXJhbWV0ZXIgbm9kZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgUGFyYW1ldGVyIGluZm8gd2hlbiBhdmFpbGFibGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaW5mbyA9IGdldFBhcmFtZXRlckluZm8obm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0UGFyYW1ldGVySW5mbyA9IChub2RlOiB1bmtub3duKTogUGFyYW1ldGVySW5mbyB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IGlkZW50aWZpZXIgPSBnZXRQYXJhbWV0ZXJJZGVudGlmaWVyKG5vZGUpO1xuXG4gIGlmIChpZGVudGlmaWVyID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgdHlwZUFubm90YXRpb24gPSBnZXRUeXBlQW5ub3RhdGlvbk5vZGUoaWRlbnRpZmllcik7XG5cbiAgcmV0dXJuIHR5cGVBbm5vdGF0aW9uID09PSB2b2lkIDBcbiAgICA/IHsgbmFtZTogaWRlbnRpZmllci5uYW1lIH1cbiAgICA6IHsgbmFtZTogaWRlbnRpZmllci5uYW1lLCB0eXBlQW5ub3RhdGlvbiB9O1xufTtcblxuLyoqXG4gKiBHZXRzIGdldFBhcmFtZXRlcnMuXG4gKiBAcGFyYW0gbm9kZSBJbnB1dCBub2RlIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBnZXRQYXJhbWV0ZXJzKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0UGFyYW1ldGVycyA9IChub2RlOiB1bmtub3duKTogdW5rbm93bltdID0+IHtcbiAgaWYgKG5vZGUgPT09IG51bGwgfHwgdHlwZW9mIG5vZGUgIT09IFwib2JqZWN0XCIpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCB0eXBlZE5vZGUgPSBub2RlIGFzIEZ1bmN0aW9uTGlrZU5vZGU7XG5cbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodHlwZWROb2RlLnBhcmFtcykgPyB0eXBlZE5vZGUucGFyYW1zIDogW107XG59O1xuXG4vKipcbiAqIEJ1aWxkcyBhIGxvb2t1cCBvZiBwYXJhbWV0ZXIgbmFtZXMgdG8gdHlwZSBhbm5vdGF0aW9ucy5cbiAqIEBwYXJhbSBub2RlIEZ1bmN0aW9uLWxpa2Ugbm9kZS5cbiAqIEByZXR1cm5zIExvb2t1cCBvZiBwYXJhbWV0ZXIgbmFtZXMgdG8gYW5ub3RhdGlvbnMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbG9va3VwID0gZ2V0UGFyYW1ldGVyVHlwZUxvb2t1cChub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRQYXJhbWV0ZXJUeXBlTG9va3VwID0gKFxuICBub2RlOiBSdWxlLk5vZGUsXG4pOiBNYXA8c3RyaW5nLCBUeXBlQW5ub3RhdGlvbk5vZGU+ID0+IHtcbiAgY29uc3QgbG9va3VwID0gbmV3IE1hcDxzdHJpbmcsIFR5cGVBbm5vdGF0aW9uTm9kZT4oKTtcblxuICBmb3IgKGNvbnN0IHBhcmFtZXRlciBvZiBnZXRQYXJhbWV0ZXJzKG5vZGUpKSB7XG4gICAgY29uc3QgaW5mbyA9IGdldFBhcmFtZXRlckluZm8ocGFyYW1ldGVyKTtcblxuICAgIGlmIChpbmZvICE9PSB2b2lkIDAgJiYgaW5mby50eXBlQW5ub3RhdGlvbiAhPT0gdm9pZCAwKSB7XG4gICAgICBsb29rdXAuc2V0KGluZm8ubmFtZSwgaW5mby50eXBlQW5ub3RhdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvb2t1cDtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSB0eXBlIGFubm90YXRpb24gaXMgYSBuYW1lZCB0eXBlIHJlZmVyZW5jZS5cbiAqIEBwYXJhbSB0eXBlQW5ub3RhdGlvbiBUeXBlIGFubm90YXRpb24gdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiB0aGUgYW5ub3RhdGlvbiBpcyBhIG5hbWVkIHJlZmVyZW5jZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBvayA9IGlzTmFtZWRUeXBlUmVmZXJlbmNlKGFubm90YXRpb24pO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzTmFtZWRUeXBlUmVmZXJlbmNlID0gKFxuICB0eXBlQW5ub3RhdGlvbjogVHlwZUFubm90YXRpb25Ob2RlIHwgdW5kZWZpbmVkLFxuKTogYm9vbGVhbiA9PiB0eXBlQW5ub3RhdGlvbj8udHlwZSA9PT0gXCJUU1R5cGVSZWZlcmVuY2VcIjtcblxuZXhwb3J0IHsgZ2V0UGFyYW1ldGVyVHlwZUxvb2t1cCwgaXNOYW1lZFR5cGVSZWZlcmVuY2UgfTtcbiJdfQ==
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLXV0aWxpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb21haW4vZG9jcy9uby1pbnRlcmZhY2UtbWVtYmVyLWRvY3MvcGFyYW1ldGVyLXV0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1REE7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHFCQUFxQixHQUFHLENBQzVCLElBQW9CLEVBQ1ksRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDO0FBRXpFOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLElBQWEsRUFBVyxFQUFFO0lBQ3RELElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxJQUEwQixDQUFDO0lBRTdDLElBQUksU0FBUyxDQUFDLFFBQVEsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkMsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUM7UUFDeEUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJO1FBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDWCxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sc0JBQXNCLEdBQUcsQ0FDN0IsSUFBYSxFQUNvQixFQUFFO0lBQ25DLE1BQU0sUUFBUSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTVDLElBQUksUUFBUSxLQUFLLElBQUksSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUN0RCxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxRQUEwQixDQUFDO0lBQzlDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxVQUFVLENBQUM7SUFFNUIsT0FBTyxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxZQUFZO1FBQ2pFLENBQUMsQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLElBQUksRUFBRTtRQUN6QixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDYixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFhLEVBQTZCLEVBQUU7SUFDcEUsTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFaEQsSUFBSSxVQUFVLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV6RCxPQUFPLGNBQWMsS0FBSyxLQUFLLENBQUM7UUFDOUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUU7UUFDM0IsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUM7QUFDaEQsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQWEsRUFBYSxFQUFFO0lBQ2pELElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxJQUF3QixDQUFDO0lBRTNDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNqRSxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sc0JBQXNCLEdBQUcsQ0FDN0IsSUFBZSxFQUNrQixFQUFFO0lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO0lBRXJELEtBQUssTUFBTSxTQUFTLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDNUMsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFekMsSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RELE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sb0JBQW9CLEdBQUcsQ0FDM0IsY0FBOEMsRUFDckMsRUFBRSxDQUFDLGNBQWMsRUFBRSxJQUFJLEtBQUssaUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB0eXBlIHsgVHlwZUFubm90YXRpb25Ob2RlIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIEZ1bmN0aW9uTGlrZU5vZGUge1xuICAvKiogUGFyYW1zIGhlbHBlciB2YWx1ZS4gKi9cbiAgcGFyYW1zPzogdW5rbm93bltdO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgSWRlbnRpZmllck5vZGUge1xuICAvKiogTmFtZSBoZWxwZXIgdmFsdWUuICovXG4gIG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqIFR5cGUgaGVscGVyIHZhbHVlLiAqL1xuICB0eXBlPzogc3RyaW5nO1xuXG4gIC8qKiBUeXBlQW5ub3RhdGlvbiBoZWxwZXIgdmFsdWUuICovXG4gIHR5cGVBbm5vdGF0aW9uPzoge1xuICAgIC8qKiBUeXBlQW5ub3RhdGlvbiBoZWxwZXIgdmFsdWUuICovXG4gICAgdHlwZUFubm90YXRpb24/OiBUeXBlQW5ub3RhdGlvbk5vZGU7XG4gIH07XG59XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBOYW1lZElkZW50aWZpZXJOb2RlIGV4dGVuZHMgSWRlbnRpZmllck5vZGUge1xuICAvKiogTmFtZSBmaWVsZCB2YWx1ZS4gKi9cbiAgbmFtZTogc3RyaW5nO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgUGFyYW1ldGVyQ29udGFpbmVyIHtcbiAgLyoqIEFyZ3VtZW50IGhlbHBlciB2YWx1ZS4gKi9cbiAgYXJndW1lbnQ/OiB1bmtub3duO1xuXG4gIC8qKiBMZWZ0IGhlbHBlciB2YWx1ZS4gKi9cbiAgbGVmdD86IHVua25vd247XG5cbiAgLyoqIFBhcmFtZXRlciBoZWxwZXIgdmFsdWUuICovXG4gIHBhcmFtZXRlcj86IHVua25vd247XG5cbiAgLyoqIFR5cGUgaGVscGVyIHZhbHVlLiAqL1xuICB0eXBlPzogc3RyaW5nO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgUGFyYW1ldGVySW5mbyB7XG4gIC8qKiBOYW1lIGZpZWxkIHZhbHVlLiAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIFR5cGVBbm5vdGF0aW9uIGhlbHBlciB2YWx1ZS4gKi9cbiAgdHlwZUFubm90YXRpb24/OiBUeXBlQW5ub3RhdGlvbk5vZGU7XG59XG5cbi8qKlxuICogR2V0cyBhIHR5cGUgYW5ub3RhdGlvbiBub2RlIGZyb20gYW4gaWRlbnRpZmllci5cbiAqIEBwYXJhbSBub2RlIElkZW50aWZpZXIgbm9kZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgVGhlIHR5cGUgYW5ub3RhdGlvbiBub2RlIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBhbm5vdGF0aW9uID0gZ2V0VHlwZUFubm90YXRpb25Ob2RlKGlkZW50aWZpZXIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFR5cGVBbm5vdGF0aW9uTm9kZSA9IChcbiAgbm9kZTogSWRlbnRpZmllck5vZGUsXG4pOiBUeXBlQW5ub3RhdGlvbk5vZGUgfCB1bmRlZmluZWQgPT4gbm9kZS50eXBlQW5ub3RhdGlvbj8udHlwZUFubm90YXRpb247XG5cbi8qKlxuICogRGVmaW5lcyByZXNvbHZlUGFyYW1ldGVyTm9kZS5cbiAqIEBwYXJhbSBub2RlIElucHV0IG5vZGUgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlc29sdmVQYXJhbWV0ZXJOb2RlKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcmVzb2x2ZVBhcmFtZXRlck5vZGUgPSAobm9kZTogdW5rbm93bik6IHVua25vd24gPT4ge1xuICBpZiAobm9kZSA9PT0gbnVsbCB8fCB0eXBlb2Ygbm9kZSAhPT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgY29uc3QgY29udGFpbmVyID0gbm9kZSBhcyBQYXJhbWV0ZXJDb250YWluZXI7XG5cbiAgaWYgKGNvbnRhaW5lci5hcmd1bWVudCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lci5hcmd1bWVudDtcbiAgfVxuXG4gIGlmIChjb250YWluZXIucGFyYW1ldGVyICE9PSB2b2lkIDApIHtcbiAgICByZXR1cm4gY29udGFpbmVyLnBhcmFtZXRlcjtcbiAgfVxuXG4gIHJldHVybiBjb250YWluZXIudHlwZSA9PT0gXCJBc3NpZ25tZW50UGF0dGVyblwiICYmIGNvbnRhaW5lci5sZWZ0ICE9PSB2b2lkIDBcbiAgICA/IGNvbnRhaW5lci5sZWZ0XG4gICAgOiBub2RlO1xufTtcblxuLyoqXG4gKiBHZXRzIHRoZSBwYXJhbWV0ZXIgaWRlbnRpZmllciBmb3IgYSBwYXJhbWV0ZXIgbm9kZS5cbiAqIEBwYXJhbSBub2RlIFBhcmFtZXRlciBub2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUaGUgaWRlbnRpZmllciBub2RlIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBpZGVudGlmaWVyID0gZ2V0UGFyYW1ldGVySWRlbnRpZmllcihub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRQYXJhbWV0ZXJJZGVudGlmaWVyID0gKFxuICBub2RlOiB1bmtub3duLFxuKTogTmFtZWRJZGVudGlmaWVyTm9kZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZVBhcmFtZXRlck5vZGUobm9kZSk7XG5cbiAgaWYgKHJlc29sdmVkID09PSBudWxsIHx8IHR5cGVvZiByZXNvbHZlZCAhPT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBpZGVudGlmaWVyID0gcmVzb2x2ZWQgYXMgSWRlbnRpZmllck5vZGU7XG4gIGNvbnN0IHsgbmFtZSB9ID0gaWRlbnRpZmllcjtcblxuICByZXR1cm4gdHlwZW9mIG5hbWUgPT09IFwic3RyaW5nXCIgJiYgaWRlbnRpZmllci50eXBlID09PSBcIklkZW50aWZpZXJcIlxuICAgID8geyAuLi5pZGVudGlmaWVyLCBuYW1lIH1cbiAgICA6IHZvaWQgMDtcbn07XG5cbi8qKlxuICogR2V0cyBwYXJhbWV0ZXIgaW5mbyBmb3IgdGhlIGdpdmVuIG5vZGUuXG4gKiBAcGFyYW0gbm9kZSBQYXJhbWV0ZXIgbm9kZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgUGFyYW1ldGVyIGluZm8gd2hlbiBhdmFpbGFibGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaW5mbyA9IGdldFBhcmFtZXRlckluZm8obm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0UGFyYW1ldGVySW5mbyA9IChub2RlOiB1bmtub3duKTogUGFyYW1ldGVySW5mbyB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IGlkZW50aWZpZXIgPSBnZXRQYXJhbWV0ZXJJZGVudGlmaWVyKG5vZGUpO1xuXG4gIGlmIChpZGVudGlmaWVyID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgdHlwZUFubm90YXRpb24gPSBnZXRUeXBlQW5ub3RhdGlvbk5vZGUoaWRlbnRpZmllcik7XG5cbiAgcmV0dXJuIHR5cGVBbm5vdGF0aW9uID09PSB2b2lkIDBcbiAgICA/IHsgbmFtZTogaWRlbnRpZmllci5uYW1lIH1cbiAgICA6IHsgbmFtZTogaWRlbnRpZmllci5uYW1lLCB0eXBlQW5ub3RhdGlvbiB9O1xufTtcblxuLyoqXG4gKiBHZXRzIGdldFBhcmFtZXRlcnMuXG4gKiBAcGFyYW0gbm9kZSBJbnB1dCBub2RlIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBnZXRQYXJhbWV0ZXJzKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0UGFyYW1ldGVycyA9IChub2RlOiB1bmtub3duKTogdW5rbm93bltdID0+IHtcbiAgaWYgKG5vZGUgPT09IG51bGwgfHwgdHlwZW9mIG5vZGUgIT09IFwib2JqZWN0XCIpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCB0eXBlZE5vZGUgPSBub2RlIGFzIEZ1bmN0aW9uTGlrZU5vZGU7XG5cbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodHlwZWROb2RlLnBhcmFtcykgPyB0eXBlZE5vZGUucGFyYW1zIDogW107XG59O1xuXG4vKipcbiAqIEJ1aWxkcyBhIGxvb2t1cCBvZiBwYXJhbWV0ZXIgbmFtZXMgdG8gdHlwZSBhbm5vdGF0aW9ucy5cbiAqIEBwYXJhbSBub2RlIEZ1bmN0aW9uLWxpa2Ugbm9kZS5cbiAqIEByZXR1cm5zIExvb2t1cCBvZiBwYXJhbWV0ZXIgbmFtZXMgdG8gYW5ub3RhdGlvbnMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbG9va3VwID0gZ2V0UGFyYW1ldGVyVHlwZUxvb2t1cChub2RlKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRQYXJhbWV0ZXJUeXBlTG9va3VwID0gKFxuICBub2RlOiBSdWxlLk5vZGUsXG4pOiBNYXA8c3RyaW5nLCBUeXBlQW5ub3RhdGlvbk5vZGU+ID0+IHtcbiAgY29uc3QgbG9va3VwID0gbmV3IE1hcDxzdHJpbmcsIFR5cGVBbm5vdGF0aW9uTm9kZT4oKTtcblxuICBmb3IgKGNvbnN0IHBhcmFtZXRlciBvZiBnZXRQYXJhbWV0ZXJzKG5vZGUpKSB7XG4gICAgY29uc3QgaW5mbyA9IGdldFBhcmFtZXRlckluZm8ocGFyYW1ldGVyKTtcblxuICAgIGlmIChpbmZvICE9PSB2b2lkIDAgJiYgaW5mby50eXBlQW5ub3RhdGlvbiAhPT0gdm9pZCAwKSB7XG4gICAgICBsb29rdXAuc2V0KGluZm8ubmFtZSwgaW5mby50eXBlQW5ub3RhdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvb2t1cDtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSB0eXBlIGFubm90YXRpb24gaXMgYSBuYW1lZCB0eXBlIHJlZmVyZW5jZS5cbiAqIEBwYXJhbSB0eXBlQW5ub3RhdGlvbiBUeXBlIGFubm90YXRpb24gdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIFRydWUgd2hlbiB0aGUgYW5ub3RhdGlvbiBpcyBhIG5hbWVkIHJlZmVyZW5jZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBvayA9IGlzTmFtZWRUeXBlUmVmZXJlbmNlKGFubm90YXRpb24pO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzTmFtZWRUeXBlUmVmZXJlbmNlID0gKFxuICB0eXBlQW5ub3RhdGlvbjogVHlwZUFubm90YXRpb25Ob2RlIHwgdW5kZWZpbmVkLFxuKTogYm9vbGVhbiA9PiB0eXBlQW5ub3RhdGlvbj8udHlwZSA9PT0gXCJUU1R5cGVSZWZlcmVuY2VcIjtcblxuZXhwb3J0IHsgZ2V0UGFyYW1ldGVyVHlwZUxvb2t1cCwgaXNOYW1lZFR5cGVSZWZlcmVuY2UgfTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/no-interface-member-docs/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../../src/domain/docs/no-interface-member-docs/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAgPnC,+EAA+E;AAC/E,QAAA,MAAM,kCAAkC,EAAE,IAAI,CAAC,UAqC9C,CAAC;AAEF,OAAO,EAAE,kCAAkC,EAAE,CAAC"}
|