@eui/mcp 1.0.3

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 (191) hide show
  1. package/README.md +846 -0
  2. package/dist/config/index.d.ts +6 -0
  3. package/dist/config/index.d.ts.map +1 -0
  4. package/dist/config/index.js +6 -0
  5. package/dist/config/index.js.map +1 -0
  6. package/dist/config/loader.d.ts +27 -0
  7. package/dist/config/loader.d.ts.map +1 -0
  8. package/dist/config/loader.js +224 -0
  9. package/dist/config/loader.js.map +1 -0
  10. package/dist/config/schema.d.ts +171 -0
  11. package/dist/config/schema.d.ts.map +1 -0
  12. package/dist/config/schema.js +100 -0
  13. package/dist/config/schema.js.map +1 -0
  14. package/dist/index.d.ts +3 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +45 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/loader/cache-manager.d.ts +74 -0
  19. package/dist/loader/cache-manager.d.ts.map +1 -0
  20. package/dist/loader/cache-manager.js +107 -0
  21. package/dist/loader/cache-manager.js.map +1 -0
  22. package/dist/loader/documentation-loader.d.ts +57 -0
  23. package/dist/loader/documentation-loader.d.ts.map +1 -0
  24. package/dist/loader/documentation-loader.js +81 -0
  25. package/dist/loader/documentation-loader.js.map +1 -0
  26. package/dist/loader/documentation-source.d.ts +37 -0
  27. package/dist/loader/documentation-source.d.ts.map +1 -0
  28. package/dist/loader/documentation-source.js +2 -0
  29. package/dist/loader/documentation-source.js.map +1 -0
  30. package/dist/loader/errors.d.ts +34 -0
  31. package/dist/loader/errors.d.ts.map +1 -0
  32. package/dist/loader/errors.js +65 -0
  33. package/dist/loader/errors.js.map +1 -0
  34. package/dist/loader/http-client.d.ts +43 -0
  35. package/dist/loader/http-client.d.ts.map +1 -0
  36. package/dist/loader/http-client.js +144 -0
  37. package/dist/loader/http-client.js.map +1 -0
  38. package/dist/loader/index.d.ts +6 -0
  39. package/dist/loader/index.d.ts.map +1 -0
  40. package/dist/loader/index.js +5 -0
  41. package/dist/loader/index.js.map +1 -0
  42. package/dist/loader/local-documentation-source.d.ts +62 -0
  43. package/dist/loader/local-documentation-source.d.ts.map +1 -0
  44. package/dist/loader/local-documentation-source.js +190 -0
  45. package/dist/loader/local-documentation-source.js.map +1 -0
  46. package/dist/loader/path-type-detector.d.ts +34 -0
  47. package/dist/loader/path-type-detector.d.ts.map +1 -0
  48. package/dist/loader/path-type-detector.js +78 -0
  49. package/dist/loader/path-type-detector.js.map +1 -0
  50. package/dist/loader/remote-documentation-source.d.ts +112 -0
  51. package/dist/loader/remote-documentation-source.d.ts.map +1 -0
  52. package/dist/loader/remote-documentation-source.js +252 -0
  53. package/dist/loader/remote-documentation-source.js.map +1 -0
  54. package/dist/main.d.ts +3 -0
  55. package/dist/main.d.ts.map +1 -0
  56. package/dist/main.js +211 -0
  57. package/dist/main.js.map +1 -0
  58. package/dist/mcp/index.d.ts +5 -0
  59. package/dist/mcp/index.d.ts.map +1 -0
  60. package/dist/mcp/index.js +5 -0
  61. package/dist/mcp/index.js.map +1 -0
  62. package/dist/mcp/server.d.ts +65 -0
  63. package/dist/mcp/server.d.ts.map +1 -0
  64. package/dist/mcp/server.js +224 -0
  65. package/dist/mcp/server.js.map +1 -0
  66. package/dist/publish/index.d.ts +8 -0
  67. package/dist/publish/index.d.ts.map +1 -0
  68. package/dist/publish/index.js +8 -0
  69. package/dist/publish/index.js.map +1 -0
  70. package/dist/publish/publish-utils.d.ts +74 -0
  71. package/dist/publish/publish-utils.d.ts.map +1 -0
  72. package/dist/publish/publish-utils.js +170 -0
  73. package/dist/publish/publish-utils.js.map +1 -0
  74. package/dist/query/component-query.d.ts +33 -0
  75. package/dist/query/component-query.d.ts.map +1 -0
  76. package/dist/query/component-query.js +63 -0
  77. package/dist/query/component-query.js.map +1 -0
  78. package/dist/query/index-builder.d.ts +79 -0
  79. package/dist/query/index-builder.d.ts.map +1 -0
  80. package/dist/query/index-builder.js +217 -0
  81. package/dist/query/index-builder.js.map +1 -0
  82. package/dist/query/index.d.ts +5 -0
  83. package/dist/query/index.d.ts.map +1 -0
  84. package/dist/query/index.js +6 -0
  85. package/dist/query/index.js.map +1 -0
  86. package/dist/query/result-formatter.d.ts +108 -0
  87. package/dist/query/result-formatter.d.ts.map +1 -0
  88. package/dist/query/result-formatter.js +165 -0
  89. package/dist/query/result-formatter.js.map +1 -0
  90. package/dist/query/search-engine.d.ts +54 -0
  91. package/dist/query/search-engine.d.ts.map +1 -0
  92. package/dist/query/search-engine.js +178 -0
  93. package/dist/query/search-engine.js.map +1 -0
  94. package/dist/test-error.ts +1 -0
  95. package/dist/tools/get-component-docs.d.ts +43 -0
  96. package/dist/tools/get-component-docs.d.ts.map +1 -0
  97. package/dist/tools/get-component-docs.js +55 -0
  98. package/dist/tools/get-component-docs.js.map +1 -0
  99. package/dist/tools/get-component-examples.d.ts +45 -0
  100. package/dist/tools/get-component-examples.d.ts.map +1 -0
  101. package/dist/tools/get-component-examples.js +56 -0
  102. package/dist/tools/get-component-examples.js.map +1 -0
  103. package/dist/tools/get-component-inputs.d.ts +44 -0
  104. package/dist/tools/get-component-inputs.d.ts.map +1 -0
  105. package/dist/tools/get-component-inputs.js +55 -0
  106. package/dist/tools/get-component-inputs.js.map +1 -0
  107. package/dist/tools/get-component-outputs.d.ts +44 -0
  108. package/dist/tools/get-component-outputs.d.ts.map +1 -0
  109. package/dist/tools/get-component-outputs.js +55 -0
  110. package/dist/tools/get-component-outputs.js.map +1 -0
  111. package/dist/tools/index.d.ts +7 -0
  112. package/dist/tools/index.d.ts.map +1 -0
  113. package/dist/tools/index.js +8 -0
  114. package/dist/tools/index.js.map +1 -0
  115. package/dist/tools/list-components.d.ts +69 -0
  116. package/dist/tools/list-components.d.ts.map +1 -0
  117. package/dist/tools/list-components.js +84 -0
  118. package/dist/tools/list-components.js.map +1 -0
  119. package/dist/tools/search-components.d.ts +69 -0
  120. package/dist/tools/search-components.d.ts.map +1 -0
  121. package/dist/tools/search-components.js +98 -0
  122. package/dist/tools/search-components.js.map +1 -0
  123. package/dist/types/compodoc.d.ts +261 -0
  124. package/dist/types/compodoc.d.ts.map +1 -0
  125. package/dist/types/compodoc.js +5 -0
  126. package/dist/types/compodoc.js.map +1 -0
  127. package/dist/types/index.d.ts +5 -0
  128. package/dist/types/index.d.ts.map +1 -0
  129. package/dist/types/index.js +5 -0
  130. package/dist/types/index.js.map +1 -0
  131. package/dist/utils/circuit-breaker.d.ts +91 -0
  132. package/dist/utils/circuit-breaker.d.ts.map +1 -0
  133. package/dist/utils/circuit-breaker.js +186 -0
  134. package/dist/utils/circuit-breaker.js.map +1 -0
  135. package/dist/utils/credential-masking.d.ts +90 -0
  136. package/dist/utils/credential-masking.d.ts.map +1 -0
  137. package/dist/utils/credential-masking.js +202 -0
  138. package/dist/utils/credential-masking.js.map +1 -0
  139. package/dist/utils/error-handler.d.ts +68 -0
  140. package/dist/utils/error-handler.d.ts.map +1 -0
  141. package/dist/utils/error-handler.js +184 -0
  142. package/dist/utils/error-handler.js.map +1 -0
  143. package/dist/utils/errors.d.ts +156 -0
  144. package/dist/utils/errors.d.ts.map +1 -0
  145. package/dist/utils/errors.js +242 -0
  146. package/dist/utils/errors.js.map +1 -0
  147. package/dist/utils/index.d.ts +10 -0
  148. package/dist/utils/index.d.ts.map +1 -0
  149. package/dist/utils/index.js +16 -0
  150. package/dist/utils/index.js.map +1 -0
  151. package/dist/utils/logger.d.ts +76 -0
  152. package/dist/utils/logger.d.ts.map +1 -0
  153. package/dist/utils/logger.js +150 -0
  154. package/dist/utils/logger.js.map +1 -0
  155. package/dist/utils/retry.d.ts +19 -0
  156. package/dist/utils/retry.d.ts.map +1 -0
  157. package/dist/utils/retry.js +81 -0
  158. package/dist/utils/retry.js.map +1 -0
  159. package/dist/version/changelog-file-utils.d.ts +69 -0
  160. package/dist/version/changelog-file-utils.d.ts.map +1 -0
  161. package/dist/version/changelog-file-utils.js +161 -0
  162. package/dist/version/changelog-file-utils.js.map +1 -0
  163. package/dist/version/changelog-utils.d.ts +98 -0
  164. package/dist/version/changelog-utils.d.ts.map +1 -0
  165. package/dist/version/changelog-utils.js +198 -0
  166. package/dist/version/changelog-utils.js.map +1 -0
  167. package/dist/version/dry-run-utils.d.ts +108 -0
  168. package/dist/version/dry-run-utils.d.ts.map +1 -0
  169. package/dist/version/dry-run-utils.js +126 -0
  170. package/dist/version/dry-run-utils.js.map +1 -0
  171. package/dist/version/git-tag-utils.d.ts +50 -0
  172. package/dist/version/git-tag-utils.d.ts.map +1 -0
  173. package/dist/version/git-tag-utils.js +66 -0
  174. package/dist/version/git-tag-utils.js.map +1 -0
  175. package/dist/version/index.d.ts +11 -0
  176. package/dist/version/index.d.ts.map +1 -0
  177. package/dist/version/index.js +11 -0
  178. package/dist/version/index.js.map +1 -0
  179. package/dist/version/release-utils.d.ts +94 -0
  180. package/dist/version/release-utils.d.ts.map +1 -0
  181. package/dist/version/release-utils.js +170 -0
  182. package/dist/version/release-utils.js.map +1 -0
  183. package/dist/version/rollback-utils.d.ts +47 -0
  184. package/dist/version/rollback-utils.d.ts.map +1 -0
  185. package/dist/version/rollback-utils.js +73 -0
  186. package/dist/version/rollback-utils.js.map +1 -0
  187. package/dist/version/version-manager.d.ts +98 -0
  188. package/dist/version/version-manager.d.ts.map +1 -0
  189. package/dist/version/version-manager.js +158 -0
  190. package/dist/version/version-manager.js.map +1 -0
  191. package/package.json +61 -0
@@ -0,0 +1,79 @@
1
+ /**
2
+ * IndexBuilder - Transforms raw Compodoc JSON into searchable in-memory structures
3
+ */
4
+ import { CompodocDocumentation, ComponentDoc, DirectiveDoc, PipeDoc, InjectableDoc } from '../types/compodoc.js';
5
+ /**
6
+ * Type union for all indexable documentation items
7
+ */
8
+ export type IndexableDoc = ComponentDoc | DirectiveDoc | PipeDoc | InjectableDoc;
9
+ /**
10
+ * In-memory index structure for fast lookups and searches
11
+ */
12
+ export interface ComponentIndex {
13
+ byName: Map<string, IndexableDoc>;
14
+ bySelector: Map<string, IndexableDoc>;
15
+ searchIndex: Map<string, Set<string>>;
16
+ components: ComponentDoc[];
17
+ directives: DirectiveDoc[];
18
+ pipes: PipeDoc[];
19
+ services: InjectableDoc[];
20
+ lastUpdated: Date;
21
+ totalCount: number;
22
+ }
23
+ /**
24
+ * Statistics about the index
25
+ */
26
+ export interface IndexStatistics {
27
+ totalCount: number;
28
+ componentCount: number;
29
+ directiveCount: number;
30
+ pipeCount: number;
31
+ serviceCount: number;
32
+ lastUpdated: Date;
33
+ }
34
+ /**
35
+ * IndexBuilder class
36
+ * Builds searchable in-memory structures from Compodoc documentation
37
+ */
38
+ export declare class IndexBuilder {
39
+ /**
40
+ * Build a complete index from Compodoc documentation
41
+ * @throws Error if duplicate names are found across types
42
+ */
43
+ build(documentation: CompodocDocumentation): ComponentIndex;
44
+ /**
45
+ * Index a component
46
+ */
47
+ private indexComponent;
48
+ /**
49
+ * Index a directive
50
+ */
51
+ private indexDirective;
52
+ /**
53
+ * Index a pipe
54
+ */
55
+ private indexPipe;
56
+ /**
57
+ * Index an injectable (service)
58
+ */
59
+ private indexInjectable;
60
+ /**
61
+ * Add a document to the search index
62
+ * Creates an inverted index: word -> set of component names
63
+ */
64
+ private addToSearchIndex;
65
+ /**
66
+ * Extract searchable words from text
67
+ * Converts to lowercase, splits on non-alphanumeric characters
68
+ */
69
+ private extractWords;
70
+ /**
71
+ * Get statistics about the index
72
+ */
73
+ getStatistics(index: ComponentIndex): IndexStatistics;
74
+ /**
75
+ * Rebuild the index with new documentation
76
+ */
77
+ rebuild(documentation: CompodocDocumentation, _existingIndex?: ComponentIndex): ComponentIndex;
78
+ }
79
+ //# sourceMappingURL=index-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-builder.d.ts","sourceRoot":"","sources":["../../src/query/index-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,aAAa,EACd,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,GAAG,aAAa,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,cAAc;IAE7B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAGlC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAGtC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAGtC,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAG1B,WAAW,EAAE,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,IAAI,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB;;;OAGG;IACH,KAAK,CAAC,aAAa,EAAE,qBAAqB,GAAG,cAAc;IAkF3D;;OAEG;IACH,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,OAAO,CAAC,SAAS;IAWjB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAoDxB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAmBpB;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe;IAWrD;;OAEG;IACH,OAAO,CAAC,aAAa,EAAE,qBAAqB,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,cAAc;CAK/F"}
@@ -0,0 +1,217 @@
1
+ /**
2
+ * IndexBuilder class
3
+ * Builds searchable in-memory structures from Compodoc documentation
4
+ */
5
+ export class IndexBuilder {
6
+ /**
7
+ * Build a complete index from Compodoc documentation
8
+ * @throws Error if duplicate names are found across types
9
+ */
10
+ build(documentation) {
11
+ const index = {
12
+ byName: new Map(),
13
+ bySelector: new Map(),
14
+ searchIndex: new Map(),
15
+ components: [],
16
+ directives: [],
17
+ pipes: [],
18
+ services: [],
19
+ lastUpdated: new Date(),
20
+ totalCount: 0,
21
+ };
22
+ // Track names to detect duplicates
23
+ const seenNames = new Map(); // name -> type
24
+ // Index components
25
+ if (documentation.components) {
26
+ for (const component of documentation.components) {
27
+ if (seenNames.has(component.name)) {
28
+ throw new Error(`Duplicate name detected: "${component.name}" exists as both ${seenNames.get(component.name)} and component. ` +
29
+ `All component, directive, pipe, and service names must be unique across the entire documentation.`);
30
+ }
31
+ seenNames.set(component.name, 'component');
32
+ this.indexComponent(component, index);
33
+ }
34
+ }
35
+ // Index directives
36
+ if (documentation.directives) {
37
+ for (const directive of documentation.directives) {
38
+ if (seenNames.has(directive.name)) {
39
+ throw new Error(`Duplicate name detected: "${directive.name}" exists as both ${seenNames.get(directive.name)} and directive. ` +
40
+ `All component, directive, pipe, and service names must be unique across the entire documentation.`);
41
+ }
42
+ seenNames.set(directive.name, 'directive');
43
+ this.indexDirective(directive, index);
44
+ }
45
+ }
46
+ // Index pipes
47
+ if (documentation.pipes) {
48
+ for (const pipe of documentation.pipes) {
49
+ if (seenNames.has(pipe.name)) {
50
+ throw new Error(`Duplicate name detected: "${pipe.name}" exists as both ${seenNames.get(pipe.name)} and pipe. ` +
51
+ `All component, directive, pipe, and service names must be unique across the entire documentation.`);
52
+ }
53
+ seenNames.set(pipe.name, 'pipe');
54
+ this.indexPipe(pipe, index);
55
+ }
56
+ }
57
+ // Index services (injectables)
58
+ if (documentation.injectables) {
59
+ for (const injectable of documentation.injectables) {
60
+ if (seenNames.has(injectable.name)) {
61
+ throw new Error(`Duplicate name detected: "${injectable.name}" exists as both ${seenNames.get(injectable.name)} and injectable. ` +
62
+ `All component, directive, pipe, and service names must be unique across the entire documentation.`);
63
+ }
64
+ seenNames.set(injectable.name, 'injectable');
65
+ this.indexInjectable(injectable, index);
66
+ }
67
+ }
68
+ // Calculate total count
69
+ index.totalCount =
70
+ index.components.length +
71
+ index.directives.length +
72
+ index.pipes.length +
73
+ index.services.length;
74
+ return index;
75
+ }
76
+ /**
77
+ * Index a component
78
+ */
79
+ indexComponent(component, index) {
80
+ // Add to type-specific array
81
+ index.components.push(component);
82
+ // Add to name lookup
83
+ index.byName.set(component.name, component);
84
+ // Add to selector lookup
85
+ if (component.selector) {
86
+ index.bySelector.set(component.selector, component);
87
+ }
88
+ // Add to search index
89
+ this.addToSearchIndex(component, index);
90
+ }
91
+ /**
92
+ * Index a directive
93
+ */
94
+ indexDirective(directive, index) {
95
+ // Add to type-specific array
96
+ index.directives.push(directive);
97
+ // Add to name lookup
98
+ index.byName.set(directive.name, directive);
99
+ // Add to selector lookup
100
+ if (directive.selector) {
101
+ index.bySelector.set(directive.selector, directive);
102
+ }
103
+ // Add to search index
104
+ this.addToSearchIndex(directive, index);
105
+ }
106
+ /**
107
+ * Index a pipe
108
+ */
109
+ indexPipe(pipe, index) {
110
+ // Add to type-specific array
111
+ index.pipes.push(pipe);
112
+ // Add to name lookup
113
+ index.byName.set(pipe.name, pipe);
114
+ // Add to search index
115
+ this.addToSearchIndex(pipe, index);
116
+ }
117
+ /**
118
+ * Index an injectable (service)
119
+ */
120
+ indexInjectable(injectable, index) {
121
+ // Add to type-specific array
122
+ index.services.push(injectable);
123
+ // Add to name lookup
124
+ index.byName.set(injectable.name, injectable);
125
+ // Add to search index
126
+ this.addToSearchIndex(injectable, index);
127
+ }
128
+ /**
129
+ * Add a document to the search index
130
+ * Creates an inverted index: word -> set of component names
131
+ */
132
+ addToSearchIndex(doc, index) {
133
+ const words = new Set();
134
+ // Extract words from name
135
+ this.extractWords(doc.name, words);
136
+ // Extract words from selector (if available)
137
+ if ('selector' in doc && doc.selector) {
138
+ this.extractWords(doc.selector, words);
139
+ }
140
+ // Extract words from description
141
+ if (doc.description) {
142
+ this.extractWords(doc.description, words);
143
+ }
144
+ // Extract words from input names
145
+ if ('inputs' in doc && doc.inputs) {
146
+ for (const input of doc.inputs) {
147
+ this.extractWords(input.name, words);
148
+ if (input.description) {
149
+ this.extractWords(input.description, words);
150
+ }
151
+ }
152
+ }
153
+ // Extract words from output names
154
+ if ('outputs' in doc && doc.outputs) {
155
+ for (const output of doc.outputs) {
156
+ this.extractWords(output.name, words);
157
+ if (output.description) {
158
+ this.extractWords(output.description, words);
159
+ }
160
+ }
161
+ }
162
+ // Extract words from method names
163
+ if ('methods' in doc && doc.methods) {
164
+ for (const method of doc.methods) {
165
+ this.extractWords(method.name, words);
166
+ }
167
+ }
168
+ // Add to inverted index
169
+ for (const word of words) {
170
+ if (!index.searchIndex.has(word)) {
171
+ index.searchIndex.set(word, new Set());
172
+ }
173
+ index.searchIndex.get(word).add(doc.name);
174
+ }
175
+ }
176
+ /**
177
+ * Extract searchable words from text
178
+ * Converts to lowercase, splits on non-alphanumeric characters
179
+ */
180
+ extractWords(text, words) {
181
+ // Convert to lowercase
182
+ const normalized = text.toLowerCase();
183
+ // Split on non-alphanumeric characters and filter out empty strings
184
+ const tokens = normalized.split(/[^a-z0-9]+/).filter((token) => token.length > 0);
185
+ // Add to word set
186
+ for (const token of tokens) {
187
+ words.add(token);
188
+ }
189
+ // If no tokens were extracted but text is non-empty, add the original text
190
+ // This handles cases where the name consists only of special characters
191
+ if (tokens.length === 0 && text.trim().length > 0) {
192
+ words.add(normalized.trim());
193
+ }
194
+ }
195
+ /**
196
+ * Get statistics about the index
197
+ */
198
+ getStatistics(index) {
199
+ return {
200
+ totalCount: index.totalCount,
201
+ componentCount: index.components.length,
202
+ directiveCount: index.directives.length,
203
+ pipeCount: index.pipes.length,
204
+ serviceCount: index.services.length,
205
+ lastUpdated: index.lastUpdated,
206
+ };
207
+ }
208
+ /**
209
+ * Rebuild the index with new documentation
210
+ */
211
+ rebuild(documentation, _existingIndex) {
212
+ // For now, just build a new index
213
+ // In the future, we could implement incremental updates
214
+ return this.build(documentation);
215
+ }
216
+ }
217
+ //# sourceMappingURL=index-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-builder.js","sourceRoot":"","sources":["../../src/query/index-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { IndexBuilder, ComponentIndex, IndexStatistics, IndexableDoc } from './index-builder.js';
2
+ export { ComponentQuery } from './component-query.js';
3
+ export { SearchEngine, SearchOptions, SearchResult, SearchResultItem } from './search-engine.js';
4
+ export { ResultFormatter, ComponentSummary, ComponentDetails, PropertySummary, MethodSummary, ParameterSummary, SearchResultSummary, } from './result-formatter.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,6 @@
1
+ // Query engine exports
2
+ export { IndexBuilder } from './index-builder.js';
3
+ export { ComponentQuery } from './component-query.js';
4
+ export { SearchEngine } from './search-engine.js';
5
+ export { ResultFormatter, } from './result-formatter.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,OAAO,EAAE,YAAY,EAAiD,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAiD,MAAM,oBAAoB,CAAC;AACjG,OAAO,EACL,eAAe,GAOhB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * ResultFormatter - Formats query results for MCP responses
3
+ */
4
+ import { IndexableDoc } from './index-builder.js';
5
+ import { SearchResultItem } from './search-engine.js';
6
+ import { ExampleDoc } from '../types/compodoc.js';
7
+ export interface ComponentSummary {
8
+ name: string;
9
+ type: 'component' | 'directive' | 'pipe' | 'service';
10
+ selector?: string;
11
+ description: string;
12
+ deprecated: boolean;
13
+ }
14
+ export interface ComponentDetails {
15
+ name: string;
16
+ type: 'component' | 'directive' | 'pipe' | 'service';
17
+ selector?: string;
18
+ description: string;
19
+ inputs: PropertySummary[];
20
+ outputs: PropertySummary[];
21
+ methods: MethodSummary[];
22
+ examples: ExampleDoc[];
23
+ deprecated: boolean;
24
+ deprecationMessage?: string;
25
+ standalone?: boolean;
26
+ imports?: string[];
27
+ }
28
+ export interface PropertySummary {
29
+ name: string;
30
+ type: string;
31
+ required: boolean;
32
+ description: string;
33
+ defaultValue?: string;
34
+ }
35
+ export interface MethodSummary {
36
+ name: string;
37
+ signature: string;
38
+ description: string;
39
+ parameters: ParameterSummary[];
40
+ returnType: string;
41
+ }
42
+ export interface ParameterSummary {
43
+ name: string;
44
+ type: string;
45
+ optional: boolean;
46
+ defaultValue?: string;
47
+ }
48
+ export interface SearchResultSummary {
49
+ name: string;
50
+ type: 'component' | 'directive' | 'pipe' | 'service';
51
+ selector?: string;
52
+ description: string;
53
+ deprecated: boolean;
54
+ relevanceScore: number;
55
+ }
56
+ /**
57
+ * ResultFormatter class
58
+ * Formats query results into structured responses
59
+ */
60
+ export declare class ResultFormatter {
61
+ /**
62
+ * Format a list of documents as summaries
63
+ */
64
+ formatList(docs: IndexableDoc[], includeDeprecated?: boolean): ComponentSummary[];
65
+ /**
66
+ * Format a single document as a summary
67
+ */
68
+ formatSummary(doc: IndexableDoc): ComponentSummary;
69
+ /**
70
+ * Format a document with full details
71
+ */
72
+ formatDetails(doc: IndexableDoc): ComponentDetails;
73
+ /**
74
+ * Format inputs as property summaries
75
+ * Checks both 'inputs' (metadata inputs) and 'inputsClass' (modern @Input() decorator)
76
+ */
77
+ formatInputs(doc: IndexableDoc): PropertySummary[];
78
+ /**
79
+ * Format outputs as property summaries
80
+ * Checks both 'outputs' (metadata outputs) and 'outputsClass' (modern @Output() decorator)
81
+ */
82
+ formatOutputs(doc: IndexableDoc): PropertySummary[];
83
+ /**
84
+ * Format a property
85
+ */
86
+ private formatProperty;
87
+ /**
88
+ * Format methods as method summaries
89
+ */
90
+ formatMethods(doc: IndexableDoc): MethodSummary[];
91
+ /**
92
+ * Format a method
93
+ */
94
+ private formatMethod;
95
+ /**
96
+ * Format examples
97
+ */
98
+ formatExamples(doc: IndexableDoc): ExampleDoc[];
99
+ /**
100
+ * Format search results
101
+ */
102
+ formatSearchResults(results: SearchResultItem[]): SearchResultSummary[];
103
+ /**
104
+ * Format as JSON string
105
+ */
106
+ toJSON(data: unknown): string;
107
+ }
108
+ //# sourceMappingURL=result-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result-formatter.d.ts","sourceRoot":"","sources":["../../src/query/result-formatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * ResultFormatter class
3
+ * Formats query results into structured responses
4
+ */
5
+ export class ResultFormatter {
6
+ /**
7
+ * Format a list of documents as summaries
8
+ */
9
+ formatList(docs, includeDeprecated = false) {
10
+ return docs
11
+ .filter((doc) => includeDeprecated || !doc.deprecated)
12
+ .map((doc) => this.formatSummary(doc));
13
+ }
14
+ /**
15
+ * Format a single document as a summary
16
+ */
17
+ formatSummary(doc) {
18
+ // Map 'injectable' to 'service' for output
19
+ const type = doc.type === 'injectable' ? 'service' : doc.type;
20
+ return {
21
+ name: doc.name,
22
+ type: type,
23
+ selector: 'selector' in doc ? doc.selector : undefined,
24
+ description: doc.description || '',
25
+ deprecated: doc.deprecated,
26
+ };
27
+ }
28
+ /**
29
+ * Format a document with full details
30
+ */
31
+ formatDetails(doc) {
32
+ const inputs = this.formatInputs(doc);
33
+ const outputs = this.formatOutputs(doc);
34
+ const methods = this.formatMethods(doc);
35
+ const examples = this.formatExamples(doc);
36
+ // Map 'injectable' to 'service' for output
37
+ const type = doc.type === 'injectable' ? 'service' : doc.type;
38
+ return {
39
+ name: doc.name,
40
+ type: type,
41
+ selector: 'selector' in doc ? doc.selector : undefined,
42
+ description: doc.description || '',
43
+ inputs,
44
+ outputs,
45
+ methods,
46
+ examples,
47
+ deprecated: doc.deprecated,
48
+ deprecationMessage: doc.deprecationMessage,
49
+ standalone: 'standalone' in doc ? doc.standalone : undefined,
50
+ imports: 'imports' in doc ? doc.imports : undefined,
51
+ };
52
+ }
53
+ /**
54
+ * Format inputs as property summaries
55
+ * Checks both 'inputs' (metadata inputs) and 'inputsClass' (modern @Input() decorator)
56
+ */
57
+ formatInputs(doc) {
58
+ const inputs = [];
59
+ // Check metadata inputs (defined in @Component decorator)
60
+ if ('inputs' in doc && doc.inputs) {
61
+ inputs.push(...doc.inputs.map((input) => this.formatProperty(input)));
62
+ }
63
+ // Check class inputs (modern @Input() decorator)
64
+ if ('inputsClass' in doc && doc.inputsClass) {
65
+ inputs.push(...doc.inputsClass.map((input) => this.formatProperty(input)));
66
+ }
67
+ return inputs;
68
+ }
69
+ /**
70
+ * Format outputs as property summaries
71
+ * Checks both 'outputs' (metadata outputs) and 'outputsClass' (modern @Output() decorator)
72
+ */
73
+ formatOutputs(doc) {
74
+ const outputs = [];
75
+ // Check metadata outputs (defined in @Component/@Directive decorator)
76
+ if ('outputs' in doc && doc.outputs) {
77
+ outputs.push(...doc.outputs.map((output) => this.formatProperty(output)));
78
+ }
79
+ // Check class outputs (modern @Output() decorator)
80
+ if ('outputsClass' in doc && doc.outputsClass) {
81
+ outputs.push(...doc.outputsClass.map((output) => this.formatProperty(output)));
82
+ }
83
+ return outputs;
84
+ }
85
+ /**
86
+ * Format a property
87
+ */
88
+ formatProperty(prop) {
89
+ return {
90
+ name: prop.name,
91
+ type: prop.type || 'any',
92
+ required: !prop.optional,
93
+ description: prop.description || '',
94
+ defaultValue: prop.defaultValue,
95
+ };
96
+ }
97
+ /**
98
+ * Format methods as method summaries
99
+ */
100
+ formatMethods(doc) {
101
+ if (!('methods' in doc) || !doc.methods) {
102
+ return [];
103
+ }
104
+ return doc.methods.map((method) => this.formatMethod(method));
105
+ }
106
+ /**
107
+ * Format a method
108
+ */
109
+ formatMethod(method) {
110
+ const parameters = (method.args || []).map((arg) => ({
111
+ name: arg.name,
112
+ type: arg.type || 'any',
113
+ optional: arg.optional || false,
114
+ defaultValue: arg.defaultValue,
115
+ }));
116
+ const paramSignature = parameters
117
+ .map((p) => {
118
+ const optional = p.optional ? '?' : '';
119
+ const defaultVal = p.defaultValue ? ` = ${p.defaultValue}` : '';
120
+ return `${p.name}${optional}: ${p.type}${defaultVal}`;
121
+ })
122
+ .join(', ');
123
+ const signature = `${method.name}(${paramSignature}): ${method.returnType || 'void'}`;
124
+ return {
125
+ name: method.name,
126
+ signature,
127
+ description: method.description || '',
128
+ parameters,
129
+ returnType: method.returnType || 'void',
130
+ };
131
+ }
132
+ /**
133
+ * Format examples
134
+ */
135
+ formatExamples(doc) {
136
+ if (!('examples' in doc) || !doc.examples) {
137
+ return [];
138
+ }
139
+ return doc.examples;
140
+ }
141
+ /**
142
+ * Format search results
143
+ */
144
+ formatSearchResults(results) {
145
+ return results.map((result) => {
146
+ // Map 'injectable' to 'service' for output
147
+ const type = result.doc.type === 'injectable' ? 'service' : result.doc.type;
148
+ return {
149
+ name: result.doc.name,
150
+ type: type,
151
+ selector: 'selector' in result.doc ? result.doc.selector : undefined,
152
+ description: result.doc.description || '',
153
+ deprecated: result.doc.deprecated,
154
+ relevanceScore: result.relevanceScore,
155
+ };
156
+ });
157
+ }
158
+ /**
159
+ * Format as JSON string
160
+ */
161
+ toJSON(data) {
162
+ return JSON.stringify(data, null, 2);
163
+ }
164
+ }
165
+ //# sourceMappingURL=result-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result-formatter.js","sourceRoot":"","sources":["../../src/query/result-formatter.ts"],"names":[],"mappings":"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"}