@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.
Files changed (135) hide show
  1. package/dist/adapters/angular/angular-template-block-usage-utilities.d.ts +4 -0
  2. package/dist/adapters/angular/angular-template-block-usage-utilities.d.ts.map +1 -0
  3. package/dist/adapters/angular/angular-template-block-usage-utilities.js +69 -0
  4. package/dist/adapters/angular/angular-template-expression-utilities.d.ts +5 -0
  5. package/dist/adapters/angular/angular-template-expression-utilities.d.ts.map +1 -0
  6. package/dist/adapters/angular/angular-template-expression-utilities.js +121 -0
  7. package/dist/adapters/angular/angular-template-node-usage-utilities.d.ts +4 -0
  8. package/dist/adapters/angular/angular-template-node-usage-utilities.d.ts.map +1 -0
  9. package/dist/adapters/angular/angular-template-node-usage-utilities.js +47 -0
  10. package/dist/adapters/angular/angular-template-usage-context.d.ts +26 -0
  11. package/dist/adapters/angular/angular-template-usage-context.d.ts.map +1 -0
  12. package/dist/adapters/angular/angular-template-usage-context.js +12 -0
  13. package/dist/adapters/angular/index.d.ts +2 -0
  14. package/dist/adapters/angular/index.d.ts.map +1 -0
  15. package/dist/adapters/angular/index.js +2 -0
  16. package/dist/adapters/angular/no-unused-public-members-template-adapter.d.ts +15 -0
  17. package/dist/adapters/angular/no-unused-public-members-template-adapter.d.ts.map +1 -0
  18. package/dist/adapters/angular/no-unused-public-members-template-adapter.js +126 -0
  19. package/dist/adapters/angular/plugin.d.ts +12 -0
  20. package/dist/adapters/angular/plugin.d.ts.map +1 -0
  21. package/dist/adapters/angular/plugin.js +14 -0
  22. package/dist/adapters/index.d.ts +2 -0
  23. package/dist/adapters/index.d.ts.map +1 -0
  24. package/dist/adapters/index.js +2 -0
  25. package/dist/application/custom-rules.d.ts +3 -0
  26. package/dist/application/custom-rules.d.ts.map +1 -1
  27. package/dist/application/custom-rules.js +3 -2
  28. package/dist/application/index.d.ts +1 -1
  29. package/dist/application/index.d.ts.map +1 -1
  30. package/dist/application/index.js +2 -2
  31. package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
  32. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts +0 -2
  33. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts.map +1 -1
  34. package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +1 -2
  35. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +0 -2
  36. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -1
  37. package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +2 -10
  38. package/dist/domain/architecture/index.d.ts +1 -0
  39. package/dist/domain/architecture/index.d.ts.map +1 -1
  40. package/dist/domain/architecture/index.js +2 -1
  41. package/dist/domain/architecture/no-unused-public-members/index.d.ts +2 -0
  42. package/dist/domain/architecture/no-unused-public-members/index.d.ts.map +1 -0
  43. package/dist/domain/architecture/no-unused-public-members/index.js +2 -0
  44. package/dist/domain/architecture/no-unused-public-members/member-contract-utilities.d.ts +16 -0
  45. package/dist/domain/architecture/no-unused-public-members/member-contract-utilities.d.ts.map +1 -0
  46. package/dist/domain/architecture/no-unused-public-members/member-contract-utilities.js +102 -0
  47. package/dist/domain/architecture/no-unused-public-members/member-declaration-utilities.d.ts +34 -0
  48. package/dist/domain/architecture/no-unused-public-members/member-declaration-utilities.d.ts.map +1 -0
  49. package/dist/domain/architecture/no-unused-public-members/member-declaration-utilities.js +55 -0
  50. package/dist/domain/architecture/no-unused-public-members/member-host-utilities.d.ts +68 -0
  51. package/dist/domain/architecture/no-unused-public-members/member-host-utilities.d.ts.map +1 -0
  52. package/dist/domain/architecture/no-unused-public-members/member-host-utilities.js +195 -0
  53. package/dist/domain/architecture/no-unused-public-members/member-public-api-utilities.d.ts +30 -0
  54. package/dist/domain/architecture/no-unused-public-members/member-public-api-utilities.d.ts.map +1 -0
  55. package/dist/domain/architecture/no-unused-public-members/member-public-api-utilities.js +106 -0
  56. package/dist/domain/architecture/no-unused-public-members/member-usage-expression-reference-utilities.d.ts +16 -0
  57. package/dist/domain/architecture/no-unused-public-members/member-usage-expression-reference-utilities.d.ts.map +1 -0
  58. package/dist/domain/architecture/no-unused-public-members/member-usage-expression-reference-utilities.js +77 -0
  59. package/dist/domain/architecture/no-unused-public-members/member-usage-handoff-utilities.d.ts +28 -0
  60. package/dist/domain/architecture/no-unused-public-members/member-usage-handoff-utilities.d.ts.map +1 -0
  61. package/dist/domain/architecture/no-unused-public-members/member-usage-handoff-utilities.js +151 -0
  62. package/dist/domain/architecture/no-unused-public-members/member-usage-local-flow-utilities.d.ts +16 -0
  63. package/dist/domain/architecture/no-unused-public-members/member-usage-local-flow-utilities.d.ts.map +1 -0
  64. package/dist/domain/architecture/no-unused-public-members/member-usage-local-flow-utilities.js +151 -0
  65. package/dist/domain/architecture/no-unused-public-members/member-usage-reference-utilities.d.ts +29 -0
  66. package/dist/domain/architecture/no-unused-public-members/member-usage-reference-utilities.d.ts.map +1 -0
  67. package/dist/domain/architecture/no-unused-public-members/member-usage-reference-utilities.js +115 -0
  68. package/dist/domain/architecture/no-unused-public-members/member-usage-serialization-utilities.d.ts +30 -0
  69. package/dist/domain/architecture/no-unused-public-members/member-usage-serialization-utilities.d.ts.map +1 -0
  70. package/dist/domain/architecture/no-unused-public-members/member-usage-serialization-utilities.js +107 -0
  71. package/dist/domain/architecture/no-unused-public-members/member-usage-type-utilities.d.ts +64 -0
  72. package/dist/domain/architecture/no-unused-public-members/member-usage-type-utilities.d.ts.map +1 -0
  73. package/dist/domain/architecture/no-unused-public-members/member-usage-type-utilities.js +152 -0
  74. package/dist/domain/architecture/no-unused-public-members/member-usage-utilities.d.ts +22 -0
  75. package/dist/domain/architecture/no-unused-public-members/member-usage-utilities.d.ts.map +1 -0
  76. package/dist/domain/architecture/no-unused-public-members/member-usage-utilities.js +137 -0
  77. package/dist/domain/architecture/no-unused-public-members/member-usage-value-utilities.d.ts +43 -0
  78. package/dist/domain/architecture/no-unused-public-members/member-usage-value-utilities.d.ts.map +1 -0
  79. package/dist/domain/architecture/no-unused-public-members/member-usage-value-utilities.js +126 -0
  80. package/dist/domain/architecture/no-unused-public-members/member-utilities.d.ts +43 -0
  81. package/dist/domain/architecture/no-unused-public-members/member-utilities.d.ts.map +1 -0
  82. package/dist/domain/architecture/no-unused-public-members/member-utilities.js +52 -0
  83. package/dist/domain/architecture/no-unused-public-members/rule.d.ts +16 -0
  84. package/dist/domain/architecture/no-unused-public-members/rule.d.ts.map +1 -0
  85. package/dist/domain/architecture/no-unused-public-members/rule.js +88 -0
  86. package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +4 -4
  87. package/dist/domain/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -1
  88. package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +2 -2
  89. package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +4 -4
  90. package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -1
  91. package/dist/domain/docs/no-interface-member-docs/rule.js +2 -5
  92. package/dist/domain/docs/require-example-language/example-utilities.d.ts +1 -7
  93. package/dist/domain/docs/require-example-language/example-utilities.d.ts.map +1 -1
  94. package/dist/domain/docs/require-example-language/example-utilities.js +4 -6
  95. package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -1
  96. package/dist/domain/docs/require-example-language/examples.js +2 -4
  97. package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -1
  98. package/dist/domain/docs/require-example-language/reporting.js +1 -4
  99. package/dist/domain/docs/require-example-language/types.d.ts +0 -2
  100. package/dist/domain/docs/require-example-language/types.d.ts.map +1 -1
  101. package/dist/domain/docs/require-example-language/types.js +1 -1
  102. package/dist/domain/index.d.ts +1 -1
  103. package/dist/domain/index.d.ts.map +1 -1
  104. package/dist/domain/index.js +2 -2
  105. package/dist/domain/testing/aaa/analyzer.analysis.d.ts.map +1 -1
  106. package/dist/domain/testing/aaa/analyzer.analysis.js +2 -7
  107. package/dist/domain/testing/aaa/analyzer.assertions.js +2 -2
  108. package/dist/domain/testing/aaa/analyzer.classification.js +2 -2
  109. package/dist/domain/testing/aaa/types.d.ts +0 -4
  110. package/dist/domain/testing/aaa/types.d.ts.map +1 -1
  111. package/dist/domain/testing/aaa/types.js +1 -1
  112. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -1
  113. package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +2 -7
  114. package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -1
  115. package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.js +5 -9
  116. package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.d.ts.map +1 -1
  117. package/dist/domain/testing/prefer-vi-mocked-import/match-collisions.js +2 -7
  118. package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -1
  119. package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.js +5 -5
  120. package/dist/domain/testing/prefer-vi-mocked-import/match-imports.d.ts.map +1 -1
  121. package/dist/domain/testing/prefer-vi-mocked-import/match-imports.js +13 -20
  122. package/dist/domain/testing/prefer-vi-mocked-import/types.d.ts +0 -2
  123. package/dist/domain/testing/prefer-vi-mocked-import/types.d.ts.map +1 -1
  124. package/dist/domain/testing/prefer-vi-mocked-import/types.js +1 -1
  125. package/dist/domain/testing/require-test-companion/require-test-companion-options.js +3 -3
  126. package/dist/domain/testing/require-test-companion/rule.js +2 -2
  127. package/dist/index.d.ts +2 -1
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +3 -2
  130. package/dist/infrastructure/codeperfect-plugin.d.ts +2 -0
  131. package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -1
  132. package/dist/infrastructure/codeperfect-plugin.js +3 -2
  133. package/dist/infrastructure/presets.d.ts.map +1 -1
  134. package/dist/infrastructure/presets.js +3 -1
  135. 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 !== "number" || typeof end !== "number"
91
- ? ""
92
- : sourceCode.text.slice(start, end);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2RvY3Mvbm8taW50ZXJmYWNlLW1lbWJlci1kb2NzL2NvbW1lbnQtdXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFnQixFQUFXLEVBQUUsQ0FDbkQsT0FBTyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFNUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQWdCLEVBQXNCLEVBQUU7SUFDN0QsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXRDLE9BQU8sT0FBTyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlELENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsQ0FDekIsUUFBbUIsRUFDbkIsU0FBaUIsRUFDSSxFQUFFO0lBQ3ZCLElBQUksT0FBTyxHQUF3QixLQUFLLENBQUMsQ0FBQztJQUMxQyxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUVwQixLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBRXhFLElBQUksQ0FBQyxDQUNILGNBQWM7WUFDZCxVQUFVLElBQUksU0FBUztZQUN2QixVQUFVLEdBQUcsVUFBVSxDQUN4QixFQUFFLENBQUM7WUFDRixTQUFTO1FBQ1gsQ0FBQztRQUVELE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDbEIsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsVUFBMEMsRUFDMUMsSUFBZSxFQUNNLEVBQUU7SUFDdkIsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzdDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVsQyxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzNELE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUV4RCxJQUFJLE9BQU8sS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV0QyxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ25DLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0scUJBQXFCLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRTNFLE9BQU8scUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0RSxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGNBQWMsR0FBRyxDQUNyQixVQUEwQyxFQUMxQyxPQUFnQixFQUNSLEVBQUU7SUFDVixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRS9CLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFDekQsQ0FBQyxDQUFDLEVBQUU7UUFDSixDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3hDLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB0eXBlIHsgQ29tbWVudCB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogQ2hlY2tzIGlzSnNkb2NDb21tZW50LlxuICogQHBhcmFtIGNvbW1lbnQgSW5wdXQgY29tbWVudCB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaXNKc2RvY0NvbW1lbnQoKTtcbiAqIGBgYFxuICovXG5jb25zdCBpc0pzZG9jQ29tbWVudCA9IChjb21tZW50OiBDb21tZW50KTogYm9vbGVhbiA9PlxuICBjb21tZW50LnR5cGUgPT09IFwiQmxvY2tcIiAmJiBjb21tZW50LnZhbHVlLnN0YXJ0c1dpdGgoXCIqXCIpO1xuXG4vKipcbiAqIEdldHMgZ2V0Q29tbWVudEVuZC5cbiAqIEBwYXJhbSBjb21tZW50IElucHV0IGNvbW1lbnQgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGdldENvbW1lbnRFbmQoKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRDb21tZW50RW5kID0gKGNvbW1lbnQ6IENvbW1lbnQpOiBudW1iZXIgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBjb21tZW50RW5kID0gY29tbWVudC5yYW5nZT8uWzFdO1xuXG4gIHJldHVybiB0eXBlb2YgY29tbWVudEVuZCA9PT0gXCJudW1iZXJcIiA/IGNvbW1lbnRFbmQgOiB2b2lkIDA7XG59O1xuXG4vKipcbiAqIEZpbmRzIHRoZSBjbG9zZXN0IEpTRG9jIGNvbW1lbnQgYmVmb3JlIGEgbm9kZS5cbiAqIEBwYXJhbSBjb21tZW50cyBDb21tZW50IGxpc3QgdG8gc2VhcmNoLlxuICogQHBhcmFtIG5vZGVTdGFydCBTdGFydCBvZmZzZXQgb2YgdGhlIG5vZGUuXG4gKiBAcmV0dXJucyBUaGUgY2xvc2VzdCBKU0RvYyBjb21tZW50IHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBjb21tZW50ID0gZmluZENsb3Nlc3RDb21tZW50KGNvbW1lbnRzLCBub2RlU3RhcnQpO1xuICogYGBgXG4gKi9cbmNvbnN0IGZpbmRDbG9zZXN0Q29tbWVudCA9IChcbiAgY29tbWVudHM6IENvbW1lbnRbXSxcbiAgbm9kZVN0YXJ0OiBudW1iZXIsXG4pOiBDb21tZW50IHwgdW5kZWZpbmVkID0+IHtcbiAgbGV0IGNsb3Nlc3Q6IENvbW1lbnQgfCB1bmRlZmluZWQgPSB2b2lkIDA7XG4gIGxldCBjbG9zZXN0RW5kID0gLTE7XG5cbiAgZm9yIChjb25zdCBjb21tZW50IG9mIGNvbW1lbnRzKSB7XG4gICAgY29uc3QgY29tbWVudEVuZCA9IGdldENvbW1lbnRFbmQoY29tbWVudCk7XG4gICAgY29uc3Qgc2hvdWxkQ29uc2lkZXIgPSBpc0pzZG9jQ29tbWVudChjb21tZW50KSAmJiBjb21tZW50RW5kICE9PSB2b2lkIDA7XG5cbiAgICBpZiAoIShcbiAgICAgIHNob3VsZENvbnNpZGVyICYmXG4gICAgICBjb21tZW50RW5kIDw9IG5vZGVTdGFydCAmJlxuICAgICAgY29tbWVudEVuZCA+IGNsb3Nlc3RFbmRcbiAgICApKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjbG9zZXN0ID0gY29tbWVudDtcbiAgICBjbG9zZXN0RW5kID0gY29tbWVudEVuZDtcbiAgfVxuXG4gIHJldHVybiBjbG9zZXN0O1xufTtcblxuLyoqXG4gKiBHZXRzIHRoZSBjbG9zZXN0IEpTRG9jIGNvbW1lbnQgZm9yIGEgbm9kZS5cbiAqIEBwYXJhbSBzb3VyY2VDb2RlIFNvdXJjZSBjb2RlIHdyYXBwZXIuXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBUaGUgY2xvc2VzdCBKU0RvYyBjb21tZW50IHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBjb21tZW50ID0gZ2V0SnNkb2NDb21tZW50KHNvdXJjZUNvZGUsIG5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldEpzZG9jQ29tbWVudCA9IChcbiAgc291cmNlQ29kZTogUnVsZS5SdWxlQ29udGV4dFtcInNvdXJjZUNvZGVcIl0sXG4gIG5vZGU6IFJ1bGUuTm9kZSxcbik6IENvbW1lbnQgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBjb21tZW50cyA9IHNvdXJjZUNvZGUuZ2V0QWxsQ29tbWVudHMoKTtcbiAgY29uc3Qgbm9kZVN0YXJ0ID0gbm9kZS5yYW5nZT8uWzBdO1xuXG4gIGlmICh0eXBlb2Ygbm9kZVN0YXJ0ICE9PSBcIm51bWJlclwiIHx8IGNvbW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBjb25zdCBjb21tZW50ID0gZmluZENsb3Nlc3RDb21tZW50KGNvbW1lbnRzLCBub2RlU3RhcnQpO1xuXG4gIGlmIChjb21tZW50ID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgY29tbWVudEVuZCA9IGNvbW1lbnQucmFuZ2U/LlsxXTtcblxuICBpZiAodHlwZW9mIGNvbW1lbnRFbmQgIT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgYmV0d2VlbkNvbW1lbnRBbmROb2RlID0gc291cmNlQ29kZS50ZXh0LnNsaWNlKGNvbW1lbnRFbmQsIG5vZGVTdGFydCk7XG5cbiAgcmV0dXJuIGJldHdlZW5Db21tZW50QW5kTm9kZS50cmltKCkubGVuZ3RoID09PSAwID8gY29tbWVudCA6IHZvaWQgMDtcbn07XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGZ1bGwgdGV4dCBmb3IgYSBjb21tZW50IHJhbmdlLlxuICogQHBhcmFtIHNvdXJjZUNvZGUgU291cmNlIGNvZGUgd3JhcHBlci5cbiAqIEBwYXJhbSBjb21tZW50IENvbW1lbnQgdG8gcmVhZC5cbiAqIEByZXR1cm5zIENvbW1lbnQgY29udGVudHMgZnJvbSB0aGUgc291cmNlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHRleHQgPSBnZXRDb21tZW50VGV4dChzb3VyY2VDb2RlLCBjb21tZW50KTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRDb21tZW50VGV4dCA9IChcbiAgc291cmNlQ29kZTogUnVsZS5SdWxlQ29udGV4dFtcInNvdXJjZUNvZGVcIl0sXG4gIGNvbW1lbnQ6IENvbW1lbnQsXG4pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBzdGFydCA9IGNvbW1lbnQucmFuZ2U/LlswXTtcbiAgY29uc3QgZW5kID0gY29tbWVudC5yYW5nZT8uWzFdO1xuXG4gIHJldHVybiB0eXBlb2Ygc3RhcnQgIT09IFwibnVtYmVyXCIgfHwgdHlwZW9mIGVuZCAhPT0gXCJudW1iZXJcIlxuICAgID8gXCJcIlxuICAgIDogc291cmNlQ29kZS50ZXh0LnNsaWNlKHN0YXJ0LCBlbmQpO1xufTtcblxuZXhwb3J0IHsgZ2V0Q29tbWVudFRleHQsIGdldEpzZG9jQ29tbWVudCB9O1xuIl19
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;AAmG/D;;;;;;;;GAQG;AACH,QAAA,MAAM,qBAAqB,GACzB,MAAM,WAAW,KAChB,kBAAkB,GAAG,SAavB,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,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, memberPath } : void 0;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLXRhZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZG9tYWluL2RvY3Mvbm8taW50ZXJmYWNlLW1lbWJlci1kb2NzL3BhcmFtZXRlci10YWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLDZEQUE2RDtBQUM3RCxNQUFNLG1CQUFtQixHQUFHLDZDQUE2QyxDQUFDO0FBRTFFOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxJQUFZLEVBQVUsRUFBRSxDQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBRTVDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE9BQWUsRUFBVSxFQUFFO0lBQ3BELE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFMUMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxPQUFlLEVBQVUsRUFBRSxDQUN6RCxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7S0FDdkIsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7S0FDbkIsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7S0FDbkIsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztBQUV6Qjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFlLEVBQXNCLEVBQUU7SUFDL0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QyxNQUFNLFVBQVUsR0FBRyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVuRCxPQUFPLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JELENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FBQyxVQUFrQixFQUFtQyxFQUFFO0lBQzVFLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFekMsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbEIsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0MsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFekQsT0FBTyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25FLENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixJQUFpQixFQUNlLEVBQUU7SUFDbEMsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUU3QyxJQUFJLFVBQVUsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV6QyxPQUFPLE1BQU0sS0FBSyxLQUFLLENBQUM7UUFDdEIsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNSLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDaEUsQ0FBQyxDQUFDO0FBRUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbW1lbnRMaW5lLCBQYXJhbWV0ZXJNZW1iZXJUYWcgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKiogTWVtYmVyIHBhdGggZGV0YWlscyBleHRyYWN0ZWQgZnJvbSBhIHBhcmFtZXRlciB0YWcuICovXG5pbnRlcmZhY2UgUGFyYW1ldGVyTWVtYmVyTmFtZSB7XG4gIC8qKiBCYXNlbmFtZSBmaWVsZCB2YWx1ZS4gKi9cbiAgYmFzZW5hbWU6IHN0cmluZztcblxuICAvKiogTWVtYmVyUGF0aCBmaWVsZCB2YWx1ZS4gKi9cbiAgbWVtYmVyUGF0aDogc3RyaW5nO1xufVxuXG4vKiogRXh0cmFjdHMgdGhlIHBhcmFtZXRlciBuYW1lIGZyb20gYW4gYEBwYXJhbWAgdGFnIGxpbmUuICovXG5jb25zdCBwYXJhbWV0ZXJUYWdQYXR0ZXJuID0gL0BwYXJhbVxccysoPzpcXHtbXn1dKlxcfVxccyspPyg/PG5hbWU+W15cXHMtXSspL3U7XG5cbi8qKlxuICogRGVmaW5lcyBzdHJpcEpzZG9jTGluZS5cbiAqIEBwYXJhbSBsaW5lIElucHV0IGxpbmUgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHN0cmlwSnNkb2NMaW5lKCk7XG4gKiBgYGBcbiAqL1xuY29uc3Qgc3RyaXBKc2RvY0xpbmUgPSAobGluZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIGxpbmUucmVwbGFjZSgvXlxccypcXC8/XFwqKlxccz8vdSwgXCJcIikudHJpbSgpO1xuXG4vKipcbiAqIERlZmluZXMgc3RyaXBEZWZhdWx0VmFsdWUuXG4gKiBAcGFyYW0gcmF3TmFtZSBJbnB1dCByYXdOYW1lIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBzdHJpcERlZmF1bHRWYWx1ZSgpO1xuICogYGBgXG4gKi9cbmNvbnN0IHN0cmlwRGVmYXVsdFZhbHVlID0gKHJhd05hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IFtoZWFkID0gXCJcIl0gPSByYXdOYW1lLnNwbGl0KFwiPVwiLCAxKTtcblxuICByZXR1cm4gaGVhZDtcbn07XG5cbi8qKlxuICogTm9ybWFsaXplcyBub3JtYWxpemVQYXJhbWV0ZXJOYW1lLlxuICogQHBhcmFtIHJhd05hbWUgSW5wdXQgcmF3TmFtZSB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogbm9ybWFsaXplUGFyYW1ldGVyTmFtZSgpO1xuICogYGBgXG4gKi9cbmNvbnN0IG5vcm1hbGl6ZVBhcmFtZXRlck5hbWUgPSAocmF3TmFtZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIHN0cmlwRGVmYXVsdFZhbHVlKHJhd05hbWUpXG4gICAgLnJlcGxhY2UoL15cXFsvdSwgXCJcIilcbiAgICAucmVwbGFjZSgvXFxdJC91LCBcIlwiKVxuICAgIC5yZXBsYWNlKC9cXD8kL3UsIFwiXCIpO1xuXG4vKipcbiAqIEdldHMgZ2V0UGFyYW1ldGVyTmFtZS5cbiAqIEBwYXJhbSBjb250ZW50IElucHV0IGNvbnRlbnQgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGdldFBhcmFtZXRlck5hbWUoKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRQYXJhbWV0ZXJOYW1lID0gKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmICghY29udGVudC5zdGFydHNXaXRoKFwiQHBhcmFtXCIpKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IG1hdGNoID0gcGFyYW1ldGVyVGFnUGF0dGVybi5leGVjKGNvbnRlbnQpO1xuICBjb25zdCByYXdOYW1lID0gbWF0Y2g/Lmdyb3Vwcz8uW1wibmFtZVwiXSA/PyBcIlwiO1xuICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplUGFyYW1ldGVyTmFtZShyYXdOYW1lKTtcblxuICByZXR1cm4gbm9ybWFsaXplZC5sZW5ndGggPiAwID8gbm9ybWFsaXplZCA6IHZvaWQgMDtcbn07XG5cbi8qKlxuICogRXh0cmFjdHMgbWVtYmVyIHBhdGggZGV0YWlscyBmcm9tIGEgbm9ybWFsaXplZCBwYXJhbWV0ZXIgbmFtZS5cbiAqIEBwYXJhbSBub3JtYWxpemVkIE5vcm1hbGl6ZWQgcGFyYW1ldGVyIG5hbWUuXG4gKiBAcmV0dXJucyBNZW1iZXIgcGF0aCBkZXRhaWxzIHdoZW4gYXZhaWxhYmxlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG1lbWJlciA9IGdldE1lbWJlck5hbWUoXCJwcm9wcy50aXRsZVwiKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRNZW1iZXJOYW1lID0gKG5vcm1hbGl6ZWQ6IHN0cmluZyk6IFBhcmFtZXRlck1lbWJlck5hbWUgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBkb3RJbmRleCA9IG5vcm1hbGl6ZWQuaW5kZXhPZihcIi5cIik7XG5cbiAgaWYgKGRvdEluZGV4IDw9IDApIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgYmFzZW5hbWUgPSBub3JtYWxpemVkLnNsaWNlKDAsIGRvdEluZGV4KTtcbiAgY29uc3QgbWVtYmVyUGF0aCA9IG5vcm1hbGl6ZWQuc2xpY2UoZG90SW5kZXggKyAxKS50cmltKCk7XG5cbiAgcmV0dXJuIG1lbWJlclBhdGgubGVuZ3RoID4gMCA/IHsgYmFzZW5hbWUsIG1lbWJlclBhdGggfSA6IHZvaWQgMDtcbn07XG5cbi8qKlxuICogUGFyc2VzIGEgYEBwYXJhbWAgdGFnIGxpbmUgaW50byBhIG1lbWJlciB0YWcgd2hlbiBhcHBsaWNhYmxlLlxuICogQHBhcmFtIGxpbmUgQ29tbWVudCBsaW5lIG1ldGFkYXRhLlxuICogQHJldHVybnMgUGFyc2VkIHBhcmFtZXRlciBtZW1iZXIgdGFnIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB0YWcgPSBwYXJzZVBhcmFtZXRlclRhZ0xpbmUobGluZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgcGFyc2VQYXJhbWV0ZXJUYWdMaW5lID0gKFxuICBsaW5lOiBDb21tZW50TGluZSxcbik6IFBhcmFtZXRlck1lbWJlclRhZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IGNvbnRlbnQgPSBzdHJpcEpzZG9jTGluZShsaW5lLnRleHQpO1xuICBjb25zdCBub3JtYWxpemVkID0gZ2V0UGFyYW1ldGVyTmFtZShjb250ZW50KTtcblxuICBpZiAobm9ybWFsaXplZCA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IG1lbWJlciA9IGdldE1lbWJlck5hbWUobm9ybWFsaXplZCk7XG5cbiAgcmV0dXJuIG1lbWJlciA9PT0gdm9pZCAwXG4gICAgPyB2b2lkIDBcbiAgICA6IHsgYmFzZW5hbWU6IG1lbWJlci5iYXNlbmFtZSwgZnVsbE5hbWU6IG5vcm1hbGl6ZWQsIGxpbmUgfTtcbn07XG5cbmV4cG9ydCB7IHBhcnNlUGFyYW1ldGVyVGFnTGluZSB9O1xuIl19
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 !== "string" || identifier.type !== "Identifier"
52
- ? void 0
53
- : { ...identifier, name };
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;AA+PnC,+EAA+E;AAC/E,QAAA,MAAM,kCAAkC,EAAE,IAAI,CAAC,UAqC9C,CAAC;AAEF,OAAO,EAAE,kCAAkC,EAAE,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"}