@eui/mcp 1.0.3 → 1.3.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 (315) hide show
  1. package/README.md +117 -743
  2. package/dist/config/__tests__/schema.property.test.d.ts +2 -0
  3. package/dist/config/__tests__/schema.property.test.d.ts.map +1 -0
  4. package/dist/config/__tests__/schema.property.test.js +203 -0
  5. package/dist/config/__tests__/schema.property.test.js.map +1 -0
  6. package/dist/config/__tests__/schema.test.d.ts +2 -0
  7. package/dist/config/__tests__/schema.test.d.ts.map +1 -0
  8. package/dist/config/__tests__/schema.test.js +454 -0
  9. package/dist/config/__tests__/schema.test.js.map +1 -0
  10. package/dist/config/loader.js +4 -4
  11. package/dist/config/loader.js.map +1 -1
  12. package/dist/index.js +2 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/loader/__tests__/cache-manager.property.test.d.ts +2 -0
  15. package/dist/loader/__tests__/cache-manager.property.test.d.ts.map +1 -0
  16. package/dist/loader/__tests__/cache-manager.property.test.js +245 -0
  17. package/dist/loader/__tests__/cache-manager.property.test.js.map +1 -0
  18. package/dist/loader/__tests__/cache-manager.test.d.ts +2 -0
  19. package/dist/loader/__tests__/cache-manager.test.d.ts.map +1 -0
  20. package/dist/loader/__tests__/cache-manager.test.js +256 -0
  21. package/dist/loader/__tests__/cache-manager.test.js.map +1 -0
  22. package/dist/loader/__tests__/documentation-loader.integration.test.d.ts +2 -0
  23. package/dist/loader/__tests__/documentation-loader.integration.test.d.ts.map +1 -0
  24. package/dist/loader/__tests__/documentation-loader.integration.test.js +498 -0
  25. package/dist/loader/__tests__/documentation-loader.integration.test.js.map +1 -0
  26. package/dist/loader/__tests__/documentation-loader.property.test.d.ts +2 -0
  27. package/dist/loader/__tests__/documentation-loader.property.test.d.ts.map +1 -0
  28. package/dist/loader/__tests__/documentation-loader.property.test.js +258 -0
  29. package/dist/loader/__tests__/documentation-loader.property.test.js.map +1 -0
  30. package/dist/loader/__tests__/errors.test.d.ts +2 -0
  31. package/dist/loader/__tests__/errors.test.d.ts.map +1 -0
  32. package/dist/loader/__tests__/errors.test.js +132 -0
  33. package/dist/loader/__tests__/errors.test.js.map +1 -0
  34. package/dist/loader/__tests__/http-client.property.test.d.ts +2 -0
  35. package/dist/loader/__tests__/http-client.property.test.d.ts.map +1 -0
  36. package/dist/loader/__tests__/http-client.property.test.js +288 -0
  37. package/dist/loader/__tests__/http-client.property.test.js.map +1 -0
  38. package/dist/loader/__tests__/http-client.test.d.ts +2 -0
  39. package/dist/loader/__tests__/http-client.test.d.ts.map +1 -0
  40. package/dist/loader/__tests__/http-client.test.js +497 -0
  41. package/dist/loader/__tests__/http-client.test.js.map +1 -0
  42. package/dist/loader/__tests__/local-documentation-source.property.test.d.ts +2 -0
  43. package/dist/loader/__tests__/local-documentation-source.property.test.d.ts.map +1 -0
  44. package/dist/loader/__tests__/local-documentation-source.property.test.js +373 -0
  45. package/dist/loader/__tests__/local-documentation-source.property.test.js.map +1 -0
  46. package/dist/loader/__tests__/local-documentation-source.test.d.ts +2 -0
  47. package/dist/loader/__tests__/local-documentation-source.test.d.ts.map +1 -0
  48. package/dist/loader/__tests__/local-documentation-source.test.js +544 -0
  49. package/dist/loader/__tests__/local-documentation-source.test.js.map +1 -0
  50. package/dist/loader/__tests__/path-type-detector.property.test.d.ts +2 -0
  51. package/dist/loader/__tests__/path-type-detector.property.test.d.ts.map +1 -0
  52. package/dist/loader/__tests__/path-type-detector.property.test.js +245 -0
  53. package/dist/loader/__tests__/path-type-detector.property.test.js.map +1 -0
  54. package/dist/loader/__tests__/path-type-detector.test.d.ts +2 -0
  55. package/dist/loader/__tests__/path-type-detector.test.d.ts.map +1 -0
  56. package/dist/loader/__tests__/path-type-detector.test.js +390 -0
  57. package/dist/loader/__tests__/path-type-detector.test.js.map +1 -0
  58. package/dist/loader/__tests__/remote-documentation-source.property.test.d.ts +2 -0
  59. package/dist/loader/__tests__/remote-documentation-source.property.test.d.ts.map +1 -0
  60. package/dist/loader/__tests__/remote-documentation-source.property.test.js +462 -0
  61. package/dist/loader/__tests__/remote-documentation-source.property.test.js.map +1 -0
  62. package/dist/loader/__tests__/remote-documentation-source.test.d.ts +2 -0
  63. package/dist/loader/__tests__/remote-documentation-source.test.d.ts.map +1 -0
  64. package/dist/loader/__tests__/remote-documentation-source.test.js +707 -0
  65. package/dist/loader/__tests__/remote-documentation-source.test.js.map +1 -0
  66. package/dist/loader/remote-documentation-source.d.ts +0 -4
  67. package/dist/loader/remote-documentation-source.d.ts.map +1 -1
  68. package/dist/loader/remote-documentation-source.js +1 -4
  69. package/dist/loader/remote-documentation-source.js.map +1 -1
  70. package/dist/main.js +0 -0
  71. package/dist/main.js.map +1 -1
  72. package/dist/mcp/__tests__/server.property.test.d.ts +2 -0
  73. package/dist/mcp/__tests__/server.property.test.d.ts.map +1 -0
  74. package/dist/mcp/__tests__/server.property.test.js +286 -0
  75. package/dist/mcp/__tests__/server.property.test.js.map +1 -0
  76. package/dist/mcp/__tests__/server.test.d.ts +2 -0
  77. package/dist/mcp/__tests__/server.test.d.ts.map +1 -0
  78. package/dist/mcp/__tests__/server.test.js +101 -0
  79. package/dist/mcp/__tests__/server.test.js.map +1 -0
  80. package/dist/mcp/server.d.ts.map +1 -1
  81. package/dist/mcp/server.js +16 -4
  82. package/dist/mcp/server.js.map +1 -1
  83. package/dist/publish/__tests__/publish-utils.test.d.ts +5 -0
  84. package/dist/publish/__tests__/publish-utils.test.d.ts.map +1 -0
  85. package/dist/publish/__tests__/publish-utils.test.js +189 -0
  86. package/dist/publish/__tests__/publish-utils.test.js.map +1 -0
  87. package/dist/query/__tests__/deprecation-parser.test.d.ts +2 -0
  88. package/dist/query/__tests__/deprecation-parser.test.d.ts.map +1 -0
  89. package/dist/query/__tests__/deprecation-parser.test.js +154 -0
  90. package/dist/query/__tests__/deprecation-parser.test.js.map +1 -0
  91. package/dist/query/__tests__/deprecation-query.test.d.ts +2 -0
  92. package/dist/query/__tests__/deprecation-query.test.d.ts.map +1 -0
  93. package/dist/query/__tests__/deprecation-query.test.js +199 -0
  94. package/dist/query/__tests__/deprecation-query.test.js.map +1 -0
  95. package/dist/query/__tests__/index-builder-debug.test.d.ts +2 -0
  96. package/dist/query/__tests__/index-builder-debug.test.d.ts.map +1 -0
  97. package/dist/query/__tests__/index-builder-debug.test.js +34 -0
  98. package/dist/query/__tests__/index-builder-debug.test.js.map +1 -0
  99. package/dist/query/__tests__/index-builder.property.test.d.ts +2 -0
  100. package/dist/query/__tests__/index-builder.property.test.d.ts.map +1 -0
  101. package/dist/query/__tests__/index-builder.property.test.js +422 -0
  102. package/dist/query/__tests__/index-builder.property.test.js.map +1 -0
  103. package/dist/query/__tests__/index-builder.test.d.ts +2 -0
  104. package/dist/query/__tests__/index-builder.test.d.ts.map +1 -0
  105. package/dist/query/__tests__/index-builder.test.js +55 -0
  106. package/dist/query/__tests__/index-builder.test.js.map +1 -0
  107. package/dist/query/__tests__/result-formatter-deprecation.test.d.ts +2 -0
  108. package/dist/query/__tests__/result-formatter-deprecation.test.d.ts.map +1 -0
  109. package/dist/query/__tests__/result-formatter-deprecation.test.js +159 -0
  110. package/dist/query/__tests__/result-formatter-deprecation.test.js.map +1 -0
  111. package/dist/query/__tests__/result-formatter.integration.test.d.ts +2 -0
  112. package/dist/query/__tests__/result-formatter.integration.test.d.ts.map +1 -0
  113. package/dist/query/__tests__/result-formatter.integration.test.js +140 -0
  114. package/dist/query/__tests__/result-formatter.integration.test.js.map +1 -0
  115. package/dist/query/__tests__/result-formatter.property.test.d.ts +2 -0
  116. package/dist/query/__tests__/result-formatter.property.test.d.ts.map +1 -0
  117. package/dist/query/__tests__/result-formatter.property.test.js +163 -0
  118. package/dist/query/__tests__/result-formatter.property.test.js.map +1 -0
  119. package/dist/query/__tests__/result-formatter.test.d.ts +2 -0
  120. package/dist/query/__tests__/result-formatter.test.d.ts.map +1 -0
  121. package/dist/query/__tests__/result-formatter.test.js +85 -0
  122. package/dist/query/__tests__/result-formatter.test.js.map +1 -0
  123. package/dist/query/__tests__/search-engine.property.test.d.ts +2 -0
  124. package/dist/query/__tests__/search-engine.property.test.d.ts.map +1 -0
  125. package/dist/query/__tests__/search-engine.property.test.js +389 -0
  126. package/dist/query/__tests__/search-engine.property.test.js.map +1 -0
  127. package/dist/query/deprecation-parser.d.ts +46 -0
  128. package/dist/query/deprecation-parser.d.ts.map +1 -0
  129. package/dist/query/deprecation-parser.js +81 -0
  130. package/dist/query/deprecation-parser.js.map +1 -0
  131. package/dist/query/deprecation-query.d.ts +19 -0
  132. package/dist/query/deprecation-query.d.ts.map +1 -0
  133. package/dist/query/deprecation-query.js +73 -0
  134. package/dist/query/deprecation-query.js.map +1 -0
  135. package/dist/query/result-formatter.d.ts +27 -0
  136. package/dist/query/result-formatter.d.ts.map +1 -1
  137. package/dist/query/result-formatter.js +64 -5
  138. package/dist/query/result-formatter.js.map +1 -1
  139. package/dist/tools/__tests__/deprecation-tools.test.d.ts +2 -0
  140. package/dist/tools/__tests__/deprecation-tools.test.d.ts.map +1 -0
  141. package/dist/tools/__tests__/deprecation-tools.test.js +178 -0
  142. package/dist/tools/__tests__/deprecation-tools.test.js.map +1 -0
  143. package/dist/tools/__tests__/get-component-docs.property.test.d.ts +2 -0
  144. package/dist/tools/__tests__/get-component-docs.property.test.d.ts.map +1 -0
  145. package/dist/tools/__tests__/get-component-docs.property.test.js +594 -0
  146. package/dist/tools/__tests__/get-component-docs.property.test.js.map +1 -0
  147. package/dist/tools/__tests__/get-component-docs.test.d.ts +2 -0
  148. package/dist/tools/__tests__/get-component-docs.test.d.ts.map +1 -0
  149. package/dist/tools/__tests__/get-component-docs.test.js +137 -0
  150. package/dist/tools/__tests__/get-component-docs.test.js.map +1 -0
  151. package/dist/tools/__tests__/get-component-examples.property.test.d.ts +2 -0
  152. package/dist/tools/__tests__/get-component-examples.property.test.d.ts.map +1 -0
  153. package/dist/tools/__tests__/get-component-examples.property.test.js +245 -0
  154. package/dist/tools/__tests__/get-component-examples.property.test.js.map +1 -0
  155. package/dist/tools/__tests__/get-component-examples.test.d.ts +2 -0
  156. package/dist/tools/__tests__/get-component-examples.test.d.ts.map +1 -0
  157. package/dist/tools/__tests__/get-component-examples.test.js +128 -0
  158. package/dist/tools/__tests__/get-component-examples.test.js.map +1 -0
  159. package/dist/tools/__tests__/get-component-inputs.property.test.d.ts +2 -0
  160. package/dist/tools/__tests__/get-component-inputs.property.test.d.ts.map +1 -0
  161. package/dist/tools/__tests__/get-component-inputs.property.test.js +310 -0
  162. package/dist/tools/__tests__/get-component-inputs.property.test.js.map +1 -0
  163. package/dist/tools/__tests__/get-component-inputs.test.d.ts +2 -0
  164. package/dist/tools/__tests__/get-component-inputs.test.d.ts.map +1 -0
  165. package/dist/tools/__tests__/get-component-inputs.test.js +245 -0
  166. package/dist/tools/__tests__/get-component-inputs.test.js.map +1 -0
  167. package/dist/tools/__tests__/get-component-outputs.property.test.d.ts +2 -0
  168. package/dist/tools/__tests__/get-component-outputs.property.test.d.ts.map +1 -0
  169. package/dist/tools/__tests__/get-component-outputs.property.test.js +227 -0
  170. package/dist/tools/__tests__/get-component-outputs.property.test.js.map +1 -0
  171. package/dist/tools/__tests__/get-component-outputs.test.d.ts +2 -0
  172. package/dist/tools/__tests__/get-component-outputs.test.d.ts.map +1 -0
  173. package/dist/tools/__tests__/get-component-outputs.test.js +189 -0
  174. package/dist/tools/__tests__/get-component-outputs.test.js.map +1 -0
  175. package/dist/tools/__tests__/get-library-version.property.test.d.ts +2 -0
  176. package/dist/tools/__tests__/get-library-version.property.test.d.ts.map +1 -0
  177. package/dist/tools/__tests__/get-library-version.property.test.js +115 -0
  178. package/dist/tools/__tests__/get-library-version.property.test.js.map +1 -0
  179. package/dist/tools/__tests__/get-library-version.test.d.ts +2 -0
  180. package/dist/tools/__tests__/get-library-version.test.d.ts.map +1 -0
  181. package/dist/tools/__tests__/get-library-version.test.js +97 -0
  182. package/dist/tools/__tests__/get-library-version.test.js.map +1 -0
  183. package/dist/tools/__tests__/list-components.property.test.d.ts +2 -0
  184. package/dist/tools/__tests__/list-components.property.test.d.ts.map +1 -0
  185. package/dist/tools/__tests__/list-components.property.test.js +241 -0
  186. package/dist/tools/__tests__/list-components.property.test.js.map +1 -0
  187. package/dist/tools/__tests__/list-components.test.d.ts +2 -0
  188. package/dist/tools/__tests__/list-components.test.d.ts.map +1 -0
  189. package/dist/tools/__tests__/list-components.test.js +170 -0
  190. package/dist/tools/__tests__/list-components.test.js.map +1 -0
  191. package/dist/tools/__tests__/search-components.test.d.ts +2 -0
  192. package/dist/tools/__tests__/search-components.test.d.ts.map +1 -0
  193. package/dist/tools/__tests__/search-components.test.js +239 -0
  194. package/dist/tools/__tests__/search-components.test.js.map +1 -0
  195. package/dist/tools/get-deprecation-info.d.ts +42 -0
  196. package/dist/tools/get-deprecation-info.d.ts.map +1 -0
  197. package/dist/tools/get-deprecation-info.js +55 -0
  198. package/dist/tools/get-deprecation-info.js.map +1 -0
  199. package/dist/tools/get-library-version.d.ts +33 -0
  200. package/dist/tools/get-library-version.d.ts.map +1 -0
  201. package/dist/tools/get-library-version.js +62 -0
  202. package/dist/tools/get-library-version.js.map +1 -0
  203. package/dist/tools/index.d.ts +3 -0
  204. package/dist/tools/index.d.ts.map +1 -1
  205. package/dist/tools/index.js +3 -0
  206. package/dist/tools/index.js.map +1 -1
  207. package/dist/tools/list-deprecated.d.ts +47 -0
  208. package/dist/tools/list-deprecated.d.ts.map +1 -0
  209. package/dist/tools/list-deprecated.js +56 -0
  210. package/dist/tools/list-deprecated.js.map +1 -0
  211. package/dist/types/compodoc.d.ts +1 -0
  212. package/dist/types/compodoc.d.ts.map +1 -1
  213. package/dist/types/deprecation.d.ts +33 -0
  214. package/dist/types/deprecation.d.ts.map +1 -0
  215. package/dist/types/deprecation.js +5 -0
  216. package/dist/types/deprecation.js.map +1 -0
  217. package/dist/utils/__tests__/credential-masking.property.test.d.ts +2 -0
  218. package/dist/utils/__tests__/credential-masking.property.test.d.ts.map +1 -0
  219. package/dist/utils/__tests__/credential-masking.property.test.js +145 -0
  220. package/dist/utils/__tests__/credential-masking.property.test.js.map +1 -0
  221. package/dist/utils/__tests__/credential-masking.test.d.ts +2 -0
  222. package/dist/utils/__tests__/credential-masking.test.d.ts.map +1 -0
  223. package/dist/utils/__tests__/credential-masking.test.js +188 -0
  224. package/dist/utils/__tests__/credential-masking.test.js.map +1 -0
  225. package/dist/utils/__tests__/errors.test.d.ts +2 -0
  226. package/dist/utils/__tests__/errors.test.d.ts.map +1 -0
  227. package/dist/utils/__tests__/errors.test.js +110 -0
  228. package/dist/utils/__tests__/errors.test.js.map +1 -0
  229. package/dist/utils/__tests__/integration.test.d.ts +2 -0
  230. package/dist/utils/__tests__/integration.test.d.ts.map +1 -0
  231. package/dist/utils/__tests__/integration.test.js +142 -0
  232. package/dist/utils/__tests__/integration.test.js.map +1 -0
  233. package/dist/utils/__tests__/logger.test.d.ts +2 -0
  234. package/dist/utils/__tests__/logger.test.d.ts.map +1 -0
  235. package/dist/utils/__tests__/logger.test.js +119 -0
  236. package/dist/utils/__tests__/logger.test.js.map +1 -0
  237. package/dist/utils/__tests__/retry.test.d.ts +2 -0
  238. package/dist/utils/__tests__/retry.test.d.ts.map +1 -0
  239. package/dist/utils/__tests__/retry.test.js +84 -0
  240. package/dist/utils/__tests__/retry.test.js.map +1 -0
  241. package/dist/utils/credential-masking.js +4 -4
  242. package/dist/utils/credential-masking.js.map +1 -1
  243. package/dist/version/__tests__/changelog-commit-grouping.property.test.d.ts +2 -0
  244. package/dist/version/__tests__/changelog-commit-grouping.property.test.d.ts.map +1 -0
  245. package/dist/version/__tests__/changelog-commit-grouping.property.test.js +297 -0
  246. package/dist/version/__tests__/changelog-commit-grouping.property.test.js.map +1 -0
  247. package/dist/version/__tests__/changelog-commit-parsing.property.test.d.ts +2 -0
  248. package/dist/version/__tests__/changelog-commit-parsing.property.test.d.ts.map +1 -0
  249. package/dist/version/__tests__/changelog-commit-parsing.property.test.js +396 -0
  250. package/dist/version/__tests__/changelog-commit-parsing.property.test.js.map +1 -0
  251. package/dist/version/__tests__/changelog-file-updates.property.test.d.ts +11 -0
  252. package/dist/version/__tests__/changelog-file-updates.property.test.d.ts.map +1 -0
  253. package/dist/version/__tests__/changelog-file-updates.property.test.js +452 -0
  254. package/dist/version/__tests__/changelog-file-updates.property.test.js.map +1 -0
  255. package/dist/version/__tests__/dry-run-action.property.test.d.ts +8 -0
  256. package/dist/version/__tests__/dry-run-action.property.test.d.ts.map +1 -0
  257. package/dist/version/__tests__/dry-run-action.property.test.js +50 -0
  258. package/dist/version/__tests__/dry-run-action.property.test.js.map +1 -0
  259. package/dist/version/__tests__/dry-run-changelog.property.test.d.ts +8 -0
  260. package/dist/version/__tests__/dry-run-changelog.property.test.d.ts.map +1 -0
  261. package/dist/version/__tests__/dry-run-changelog.property.test.js +53 -0
  262. package/dist/version/__tests__/dry-run-changelog.property.test.js.map +1 -0
  263. package/dist/version/__tests__/dry-run-utils.test.d.ts +7 -0
  264. package/dist/version/__tests__/dry-run-utils.test.d.ts.map +1 -0
  265. package/dist/version/__tests__/dry-run-utils.test.js +205 -0
  266. package/dist/version/__tests__/dry-run-utils.test.js.map +1 -0
  267. package/dist/version/__tests__/dry-run-version.property.test.d.ts +8 -0
  268. package/dist/version/__tests__/dry-run-version.property.test.d.ts.map +1 -0
  269. package/dist/version/__tests__/dry-run-version.property.test.js +59 -0
  270. package/dist/version/__tests__/dry-run-version.property.test.js.map +1 -0
  271. package/dist/version/__tests__/git-tag-annotation.property.test.d.ts +11 -0
  272. package/dist/version/__tests__/git-tag-annotation.property.test.d.ts.map +1 -0
  273. package/dist/version/__tests__/git-tag-annotation.property.test.js +271 -0
  274. package/dist/version/__tests__/git-tag-annotation.property.test.js.map +1 -0
  275. package/dist/version/__tests__/git-tag-format.property.test.d.ts +11 -0
  276. package/dist/version/__tests__/git-tag-format.property.test.d.ts.map +1 -0
  277. package/dist/version/__tests__/git-tag-format.property.test.js +411 -0
  278. package/dist/version/__tests__/git-tag-format.property.test.js.map +1 -0
  279. package/dist/version/__tests__/git-tag-utils.test.d.ts +2 -0
  280. package/dist/version/__tests__/git-tag-utils.test.d.ts.map +1 -0
  281. package/dist/version/__tests__/git-tag-utils.test.js +142 -0
  282. package/dist/version/__tests__/git-tag-utils.test.js.map +1 -0
  283. package/dist/version/__tests__/npm-tag-selection.property.test.d.ts +2 -0
  284. package/dist/version/__tests__/npm-tag-selection.property.test.d.ts.map +1 -0
  285. package/dist/version/__tests__/npm-tag-selection.property.test.js +79 -0
  286. package/dist/version/__tests__/npm-tag-selection.property.test.js.map +1 -0
  287. package/dist/version/__tests__/release-title-format.property.test.d.ts +11 -0
  288. package/dist/version/__tests__/release-title-format.property.test.d.ts.map +1 -0
  289. package/dist/version/__tests__/release-title-format.property.test.js +422 -0
  290. package/dist/version/__tests__/release-title-format.property.test.js.map +1 -0
  291. package/dist/version/__tests__/release-utils.test.d.ts +7 -0
  292. package/dist/version/__tests__/release-utils.test.d.ts.map +1 -0
  293. package/dist/version/__tests__/release-utils.test.js +176 -0
  294. package/dist/version/__tests__/release-utils.test.js.map +1 -0
  295. package/dist/version/__tests__/rollback-changelog.property.test.d.ts +8 -0
  296. package/dist/version/__tests__/rollback-changelog.property.test.d.ts.map +1 -0
  297. package/dist/version/__tests__/rollback-changelog.property.test.js +61 -0
  298. package/dist/version/__tests__/rollback-changelog.property.test.js.map +1 -0
  299. package/dist/version/__tests__/rollback-utils.test.d.ts +7 -0
  300. package/dist/version/__tests__/rollback-utils.test.d.ts.map +1 -0
  301. package/dist/version/__tests__/rollback-utils.test.js +74 -0
  302. package/dist/version/__tests__/rollback-utils.test.js.map +1 -0
  303. package/dist/version/__tests__/version-manager.property.test.d.ts +2 -0
  304. package/dist/version/__tests__/version-manager.property.test.d.ts.map +1 -0
  305. package/dist/version/__tests__/version-manager.property.test.js +143 -0
  306. package/dist/version/__tests__/version-manager.property.test.js.map +1 -0
  307. package/dist/version/__tests__/version-manager.test.d.ts +2 -0
  308. package/dist/version/__tests__/version-manager.test.d.ts.map +1 -0
  309. package/dist/version/__tests__/version-manager.test.js +203 -0
  310. package/dist/version/__tests__/version-manager.test.js.map +1 -0
  311. package/dist/version/version-manager.d.ts.map +1 -1
  312. package/dist/version/version-manager.js +0 -4
  313. package/dist/version/version-manager.js.map +1 -1
  314. package/package.json +1 -1
  315. package/dist/test-error.ts +0 -1
package/README.md CHANGED
@@ -1,846 +1,220 @@
1
- # EUI Compodoc MCP Server
1
+ # Quick Start Guide
2
2
 
3
- A Model Context Protocol (MCP) server that exposes Angular component library metadata from Compodoc's `documentation.json` to AI assistants.
3
+ Get the EUI Compodoc MCP Server running in 5 minutes.
4
4
 
5
- ## Overview
6
-
7
- This MCP server provides efficient access to Angular component documentation by leveraging Compodoc's pre-generated `documentation.json` file. Instead of parsing TypeScript files on-the-fly, it uses the structured JSON as a knowledge base, offering fast queries for component inputs, outputs, examples, and other metadata.
8
-
9
- The server implements the [Model Context Protocol](https://modelcontextprotocol.io/), enabling AI assistants like Claude, Kiro, and others to discover and understand Angular components through standardized tool calls.
10
-
11
- ## Features
12
-
13
- - **Fast Component Discovery**: List all available components with filtering options
14
- - **Detailed Documentation**: Retrieve complete component metadata including inputs, outputs, and examples
15
- - **Smart Search**: Search components by name, description, or functionality with relevance ranking
16
- - **Property-Based Testing**: Comprehensive test coverage using fast-check
17
- - **File Watching**: Automatic reloading when documentation.json changes
18
- - **Type-Safe**: Built with TypeScript and strict type checking
19
- - **Error Resilient**: Graceful error handling with meaningful error messages
20
- - **Zero Configuration**: Works out of the box with sensible defaults
21
-
22
- ## Table of Contents
23
-
24
- - [Installation](#installation)
25
- - [Quick Start](#quick-start)
26
- - [Configuration](#configuration)
27
- - [MCP Tools Reference](#mcp-tools-reference)
28
- - [Usage Examples](#usage-examples)
29
- - [Development](#development)
30
- - [CI/CD Pipeline](#cicd-pipeline)
31
- - [Architecture](#architecture)
32
- - [Testing](#testing)
33
- - [Troubleshooting](#troubleshooting)
34
- - [Contributing](#contributing)
35
- - [License](#license)
36
-
37
- ## Installation
38
-
39
- ### Prerequisites
5
+ ## Prerequisites
40
6
 
41
7
  - Node.js 18 or higher
42
- - npm or yarn package manager
43
- - A Compodoc-generated `documentation.json` file
8
+ - An MCP client (Kiro CLI, Claude Desktop, etc.)
44
9
 
45
- ### Install Dependencies
10
+ ## Step 1: Get EUI Documentation URL
46
11
 
47
- ```bash
48
- npm install
49
- ```
50
-
51
- ### Build the Project
12
+ The EUI library documentation is available at:
52
13
 
53
- ```bash
54
- npm run build
55
14
  ```
56
-
57
- ## Quick Start
58
-
59
- See the [QUICKSTART.md](./QUICKSTART.md) guide for a step-by-step tutorial on getting started.
60
-
61
- ### Basic Usage
62
-
63
- 1. **Generate Compodoc documentation** for your Angular project:
64
-
65
- ```bash
66
- npx @compodoc/compodoc -p tsconfig.json -e json -d ./docs
15
+ https://euidev.ecdevops.eu/eui-docs-eui-21.x/json/documentation.json
67
16
  ```
68
17
 
69
- 2. **Create a configuration file** (`config.json`):
18
+ You can use this URL directly (recommended) or download it locally:
70
19
 
71
- ```json
72
- {
73
- "documentation": {
74
- "path": "./docs/documentation.json"
75
- }
76
- }
20
+ ```bash
21
+ # Optional: Download locally
22
+ curl -o documentation.json https://euidev.ecdevops.eu/eui-docs-eui-21.x/json/documentation.json
77
23
  ```
78
24
 
79
- 3. **Start the MCP server**:
25
+ ## Step 2: Configure Your MCP Client
80
26
 
81
- ```bash
82
- npm start -- --config ./config.json
83
- ```
27
+ ### For Kiro CLI
84
28
 
85
- 4. **Configure your MCP client** (e.g., in Kiro's `mcp.json`):
29
+ Add to `.kiro/settings/mcp.json`:
86
30
 
87
31
  ```json
88
32
  {
89
33
  "mcpServers": {
90
34
  "eui-compodoc": {
91
- "command": "node",
92
- "args": ["/path/to/eui-compodoc-mcp/dist/main.js", "--config", "/path/to/config.json"]
35
+ "command": "npx",
36
+ "args": [
37
+ "-y",
38
+ "@eui/mcp",
39
+ "--doc-path",
40
+ "https://euidev.ecdevops.eu/eui-docs-eui-21.x/json/documentation.json"
41
+ ]
93
42
  }
94
43
  }
95
44
  }
96
45
  ```
97
46
 
98
- ## Configuration
47
+ ### For Claude Desktop
99
48
 
100
- ### Configuration File Format
49
+ Add to Claude Desktop configuration:
101
50
 
102
- The server accepts a JSON configuration file with the following structure:
51
+ **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
52
+ **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
103
53
 
104
54
  ```json
105
55
  {
106
- "server": {
107
- "name": "eui-compodoc-mcp",
108
- "version": "1.0.0"
109
- },
110
- "documentation": {
111
- "path": "./documentation.json",
112
- "watchForChanges": true,
113
- "reloadDebounce": 1000
114
- },
115
- "search": {
116
- "maxResults": 50,
117
- "minQueryLength": 2
118
- },
119
- "logging": {
120
- "level": "info",
121
- "format": "json"
56
+ "mcpServers": {
57
+ "eui-compodoc": {
58
+ "command": "npx",
59
+ "args": [
60
+ "-y",
61
+ "@eui/mcp",
62
+ "--doc-path",
63
+ "https://euidev.ecdevops.eu/eui-docs-eui-21.x/json/documentation.json"
64
+ ]
65
+ }
122
66
  }
123
67
  }
124
68
  ```
125
69
 
126
- ### Configuration Options
127
-
128
- #### Server Configuration
129
-
130
- | Option | Type | Default | Description |
131
- |--------|------|---------|-------------|
132
- | `server.name` | string | `"eui-compodoc-mcp"` | Server name for MCP identification |
133
- | `server.version` | string | `"1.0.0"` | Server version |
70
+ ## Step 3: Restart Your MCP Client
134
71
 
135
- #### Documentation Configuration
72
+ - **Kiro CLI**: Restart your terminal session
73
+ - **Claude Desktop**: Quit and reopen the application
136
74
 
137
- | Option | Type | Default | Description |
138
- |--------|------|---------|-------------|
139
- | `documentation.path` | string | `"./documentation.json"` | Path to Compodoc documentation.json file |
140
- | `documentation.watchForChanges` | boolean | `true` | Enable file watching for hot reloading |
141
- | `documentation.reloadDebounce` | number | `1000` | Debounce time (ms) for file change events |
75
+ ## Step 4: Test the Integration
142
76
 
143
- #### Search Configuration
77
+ Ask your AI assistant:
144
78
 
145
- | Option | Type | Default | Description |
146
- |--------|------|---------|-------------|
147
- | `search.maxResults` | number | `50` | Maximum search results to return |
148
- | `search.minQueryLength` | number | `2` | Minimum query length for searches |
79
+ > "List 5 components from the EUI library"
149
80
 
150
- #### Logging Configuration
81
+ You should see component names and descriptions.
151
82
 
152
- | Option | Type | Default | Description |
153
- |--------|------|---------|-------------|
154
- | `logging.level` | string | `"info"` | Log level: `"debug"`, `"info"`, `"warn"`, `"error"` |
155
- | `logging.format` | string | `"json"` | Log format: `"json"` or `"text"` |
83
+ ## Alternative: Local Setup
156
84
 
157
- ### Environment Variables
85
+ If you prefer to run from source or use a local documentation file:
158
86
 
159
- You can override configuration using environment variables:
160
-
161
- - `COMPODOC_MCP_CONFIG`: Path to configuration file
162
- - `COMPODOC_MCP_DOC_PATH`: Override documentation.json path
163
- - `COMPODOC_MCP_LOG_LEVEL`: Override log level
164
-
165
- Example:
87
+ ### 1. Clone and Build
166
88
 
167
89
  ```bash
168
- COMPODOC_MCP_DOC_PATH=./my-docs/documentation.json npm start
169
- ```
170
-
171
- ## MCP Tools Reference
172
-
173
- The server exposes six MCP tools for querying component documentation:
174
-
175
- ### 1. list-components
176
-
177
- Lists all available components, directives, pipes, and services.
178
-
179
- **Parameters:**
180
-
181
- ```typescript
182
- {
183
- includeDeprecated?: boolean; // Include deprecated items (default: false)
184
- type?: 'component' | 'directive' | 'pipe' | 'service' | 'all'; // Filter by type (default: 'all')
185
- limit?: number; // Max results (default: 50, max: 1000)
186
- offset?: number; // Pagination offset (default: 0)
187
- }
188
- ```
189
-
190
- **Returns:**
191
-
192
- ```typescript
193
- {
194
- items: Array<{
195
- name: string;
196
- type: string;
197
- selector?: string;
198
- description: string;
199
- deprecated: boolean;
200
- }>;
201
- total: number;
202
- hasMore: boolean;
203
- offset: number;
204
- limit: number;
205
- }
206
- ```
207
-
208
- ### 2. get-component-docs
209
-
210
- Retrieves detailed documentation for a specific component.
211
-
212
- **Parameters:**
213
-
214
- ```typescript
215
- {
216
- name: string; // Component name (required)
217
- }
218
- ```
219
-
220
- **Returns:**
221
-
222
- ```typescript
223
- {
224
- name: string;
225
- type: string;
226
- selector?: string;
227
- description: string;
228
- inputs: Array<{
229
- name: string;
230
- type: string;
231
- required: boolean;
232
- description: string;
233
- defaultValue?: string;
234
- }>;
235
- outputs: Array<{
236
- name: string;
237
- type: string;
238
- description: string;
239
- }>;
240
- methods: Array<{
241
- name: string;
242
- signature: string;
243
- description: string;
244
- parameters: Array<{
245
- name: string;
246
- type: string;
247
- optional: boolean;
248
- }>;
249
- returnType: string;
250
- }>;
251
- examples: Array<{
252
- title: string;
253
- description: string;
254
- code: string;
255
- language: string;
256
- }>;
257
- deprecated: boolean;
258
- deprecationMessage?: string;
259
- standalone?: boolean;
260
- imports?: string[];
261
- }
262
- ```
263
-
264
- ### 3. search-components
265
-
266
- Searches for components by keyword or functionality.
267
-
268
- **Parameters:**
269
-
270
- ```typescript
271
- {
272
- query: string; // Search query (required)
273
- types?: Array<'component' | 'directive' | 'pipe' | 'service'>; // Filter by types
274
- includeDeprecated?: boolean; // Include deprecated items (default: false)
275
- limit?: number; // Max results (default: 50)
276
- }
277
- ```
278
-
279
- **Returns:**
280
-
281
- ```typescript
282
- {
283
- items: Array<{
284
- name: string;
285
- type: string;
286
- selector?: string;
287
- description: string;
288
- deprecated: boolean;
289
- relevanceScore: number;
290
- }>;
291
- total: number;
292
- query: string;
293
- }
294
- ```
295
-
296
- ### 4. get-component-inputs
297
-
298
- Retrieves input properties for a specific component.
299
-
300
- **Parameters:**
301
-
302
- ```typescript
303
- {
304
- name: string; // Component name (required)
305
- }
306
- ```
307
-
308
- **Returns:**
309
-
310
- ```typescript
311
- {
312
- componentName: string;
313
- inputs: Array<{
314
- name: string;
315
- type: string;
316
- required: boolean;
317
- description: string;
318
- defaultValue?: string;
319
- }>;
320
- }
321
- ```
322
-
323
- ### 5. get-component-outputs
324
-
325
- Retrieves output events for a specific component.
326
-
327
- **Parameters:**
328
-
329
- ```typescript
330
- {
331
- name: string; // Component name (required)
332
- }
333
- ```
334
-
335
- **Returns:**
336
-
337
- ```typescript
338
- {
339
- componentName: string;
340
- outputs: Array<{
341
- name: string;
342
- type: string;
343
- description: string;
344
- }>;
345
- }
346
- ```
347
-
348
- ### 6. get-component-examples
349
-
350
- Retrieves usage examples for a specific component.
351
-
352
- **Parameters:**
353
-
354
- ```typescript
355
- {
356
- name: string; // Component name (required)
357
- }
358
- ```
359
-
360
- **Returns:**
361
-
362
- ```typescript
363
- {
364
- componentName: string;
365
- examples: Array<{
366
- title: string;
367
- description: string;
368
- code: string;
369
- language: string;
370
- }>;
371
- }
90
+ git clone <repository-url>
91
+ cd eui-compodoc-mcp
92
+ npm install
93
+ npm run build
372
94
  ```
373
95
 
374
- ## Usage Examples
96
+ ### 2. Create config.json
375
97
 
376
- ### Example 1: List All Components
377
-
378
- ```typescript
379
- // Request
98
+ ```json
380
99
  {
381
- "tool": "list-components",
382
- "params": {
383
- "type": "component",
384
- "limit": 10
100
+ "documentation": {
101
+ "path": "https://euidev.ecdevops.eu/eui-docs-eui-21.x/json/documentation.json"
385
102
  }
386
103
  }
387
-
388
- // Response
389
- {
390
- "items": [
391
- {
392
- "name": "ButtonComponent",
393
- "type": "component",
394
- "selector": "eui-button",
395
- "description": "A customizable button component",
396
- "deprecated": false
397
- },
398
- // ... more components
399
- ],
400
- "total": 150,
401
- "hasMore": true,
402
- "offset": 0,
403
- "limit": 10
404
- }
405
104
  ```
406
105
 
407
- ### Example 2: Get Component Details
106
+ Or for local file:
408
107
 
409
- ```typescript
410
- // Request
108
+ ```json
411
109
  {
412
- "tool": "get-component-docs",
413
- "params": {
414
- "name": "ButtonComponent"
110
+ "documentation": {
111
+ "path": "/absolute/path/to/documentation.json"
415
112
  }
416
113
  }
417
-
418
- // Response
419
- {
420
- "name": "ButtonComponent",
421
- "type": "component",
422
- "selector": "eui-button",
423
- "description": "A customizable button component with various styles and sizes",
424
- "inputs": [
425
- {
426
- "name": "label",
427
- "type": "string",
428
- "required": true,
429
- "description": "Button label text"
430
- },
431
- {
432
- "name": "disabled",
433
- "type": "boolean",
434
- "required": false,
435
- "description": "Whether the button is disabled",
436
- "defaultValue": "false"
437
- }
438
- ],
439
- "outputs": [
440
- {
441
- "name": "click",
442
- "type": "EventEmitter<MouseEvent>",
443
- "description": "Emitted when button is clicked"
444
- }
445
- ],
446
- "examples": [
447
- {
448
- "title": "Basic Button",
449
- "description": "A simple button with a label",
450
- "code": "<eui-button label=\"Click Me\"></eui-button>",
451
- "language": "html"
452
- }
453
- ],
454
- "deprecated": false,
455
- "standalone": true
456
- }
457
114
  ```
458
115
 
459
- ### Example 3: Search Components
460
-
461
- ```typescript
462
- // Request
463
- {
464
- "tool": "search-components",
465
- "params": {
466
- "query": "button",
467
- "types": ["component"],
468
- "limit": 5
469
- }
470
- }
116
+ ### 3. Update MCP Configuration
471
117
 
472
- // Response
118
+ ```json
473
119
  {
474
- "items": [
475
- {
476
- "name": "ButtonComponent",
477
- "type": "component",
478
- "selector": "eui-button",
479
- "description": "A customizable button component",
480
- "deprecated": false,
481
- "relevanceScore": 100
482
- },
483
- {
484
- "name": "IconButtonComponent",
485
- "type": "component",
486
- "selector": "eui-icon-button",
487
- "description": "Button with icon support",
488
- "deprecated": false,
489
- "relevanceScore": 80
120
+ "mcpServers": {
121
+ "eui-compodoc": {
122
+ "command": "node",
123
+ "args": [
124
+ "/absolute/path/to/eui-compodoc-mcp/dist/main.js",
125
+ "--config",
126
+ "/absolute/path/to/config.json"
127
+ ]
490
128
  }
491
- ],
492
- "total": 2,
493
- "query": "button"
494
- }
495
- ```
496
-
497
- ## Development
498
-
499
- ### Project Structure
500
-
501
- ```
502
- eui-compodoc-mcp/
503
- ├── src/
504
- │ ├── config/ # Configuration loading and validation
505
- │ ├── loader/ # Documentation file loading and watching
506
- │ ├── mcp/ # MCP server implementation
507
- │ ├── query/ # Query engine and search functionality
508
- │ ├── tools/ # MCP tool handlers
509
- │ ├── types/ # TypeScript type definitions
510
- │ ├── utils/ # Utility functions and logging
511
- │ └── main.ts # Application entry point
512
- ├── dist/ # Compiled JavaScript output
513
- ├── coverage/ # Test coverage reports
514
- ├── config.json # Configuration file (example)
515
- ├── package.json
516
- ├── tsconfig.json
517
- └── jest.config.js
518
- ```
519
-
520
- ### Development Commands
521
-
522
- ```bash
523
- # Install dependencies
524
- npm install
525
-
526
- # Build the project
527
- npm run build
528
-
529
- # Development mode with auto-rebuild
530
- npm run dev
531
-
532
- # Run tests
533
- npm test
534
-
535
- # Run tests in watch mode
536
- npm run test:watch
537
-
538
- # Run tests with coverage
539
- npm run test:coverage
540
-
541
- # Lint code
542
- npm run lint
543
- ```
544
-
545
- ### Adding a New Tool
546
-
547
- 1. Create a new file in `src/tools/` (e.g., `my-new-tool.ts`)
548
- 2. Implement the tool class with `execute()` and `getToolDefinition()` methods
549
- 3. Export the tool from `src/tools/index.ts`
550
- 4. Register the tool in `src/mcp/server.ts`
551
- 5. Add tests in `src/tools/__tests__/`
552
-
553
- Example tool structure:
554
-
555
- ```typescript
556
- export class MyNewTool {
557
- constructor(private query: ComponentQuery, private formatter: ResultFormatter) {}
558
-
559
- execute(params: MyParams): MyResult {
560
- // Tool implementation
561
- }
562
-
563
- static getToolDefinition() {
564
- return {
565
- name: 'my-new-tool',
566
- description: 'Description of what the tool does',
567
- inputSchema: {
568
- type: 'object',
569
- properties: {
570
- // Parameter definitions
571
- },
572
- },
573
- };
574
129
  }
575
130
  }
576
131
  ```
577
132
 
578
- ## CI/CD Pipeline
579
-
580
- This project includes a comprehensive GitLab CI/CD pipeline for automated releases.
581
-
582
- ### Pipeline Stages
583
-
584
- 1. **Build**: Compiles TypeScript to JavaScript
585
- 2. **Test**: Runs unit and property-based tests
586
- 3. **Version**: Bumps version, creates Git tags, generates changelog
587
- 4. **Publish**: Publishes package to npm registry (with approval gate)
588
- 5. **Release**: Creates GitLab release with artifacts and notes
589
-
590
- ### Required Setup
591
-
592
- To use the CI/CD pipeline, you need to configure the following:
593
-
594
- 1. **CI/CD Variables**:
595
- - `NPM_TOKEN` (required): npm authentication token
596
- - `GITLAB_TOKEN` (optional): GitLab API token
133
+ ## Available Tools
597
134
 
598
- 2. **Protected Branches**:
599
- - Protect the `main` branch
600
- - Protect version tags (`v*` pattern)
135
+ Once configured, you can:
601
136
 
602
- 3. **Variable Masking**:
603
- - All credentials are automatically masked in logs
604
- - Uses credential masking utilities to prevent exposure
137
+ - **list-components** - List all components, directives, pipes, services
138
+ - **get-component-docs** - Get detailed documentation for a component
139
+ - **search-components** - Search components by keyword
140
+ - **get-component-inputs** - Get input properties
141
+ - **get-component-outputs** - Get output events
142
+ - **get-component-examples** - Get usage examples
143
+ - **get-library-version** - Get current library version
144
+ - **list-deprecated** - List deprecated items
145
+ - **get-deprecation-info** - Get deprecation details
605
146
 
606
- ### Quick Start
147
+ ## Example Questions
607
148
 
608
- 1. Configure required CI/CD variables in GitLab project settings
609
- 2. Ensure `main` branch is protected
610
- 3. Trigger a release by running the `version` job manually
611
- 4. Approve the publish step for production releases
149
+ Try asking:
612
150
 
613
- For detailed setup instructions, security best practices, and troubleshooting, see the [CI/CD Setup Guide](./docs/CI_CD_SETUP.md).
151
+ - "What components are available for forms?"
152
+ - "Show me the ButtonComponent documentation"
153
+ - "What inputs does ModalComponent accept?"
154
+ - "List all deprecated components"
155
+ - "Search for table components"
614
156
 
615
- ### Manual Release Process
616
-
617
- ```bash
618
- # 1. Ensure all changes are merged to main
619
- # 2. Go to CI/CD → Pipelines in GitLab
620
- # 3. Click play button on 'version' job
621
- # 4. Set RELEASE_TYPE variable (patch, minor, major)
622
- # 5. Approve publish step when prompted
623
- # 6. Verify release on npm and GitLab
624
- ```
625
-
626
- ## Architecture
627
-
628
- ### High-Level Architecture
629
-
630
- ```
631
- ┌─────────────┐
632
- │ MCP Client │ (Kiro, Claude, etc.)
633
- └──────┬──────┘
634
- │ MCP Protocol (stdio)
635
-
636
- ┌─────────────────────────────────┐
637
- │ CompodocMcpServer │
638
- │ - Tool Registration │
639
- │ - Request Routing │
640
- │ - Error Handling │
641
- └──────┬──────────────────────────┘
642
-
643
-
644
- ┌─────────────────────────────────┐
645
- │ Tool Handlers │
646
- │ - list-components │
647
- │ - get-component-docs │
648
- │ - search-components │
649
- │ - get-component-inputs │
650
- │ - get-component-outputs │
651
- │ - get-component-examples │
652
- └──────┬──────────────────────────┘
653
-
654
-
655
- ┌─────────────────────────────────┐
656
- │ Query Engine │
657
- │ - ComponentQuery │
658
- │ - SearchEngine │
659
- │ - ResultFormatter │
660
- └──────┬──────────────────────────┘
661
-
662
-
663
- ┌─────────────────────────────────┐
664
- │ In-Memory Index │
665
- │ - Name lookup (Map) │
666
- │ - Selector lookup (Map) │
667
- │ - Search index (inverted) │
668
- │ - Type-based indexes │
669
- └──────┬──────────────────────────┘
670
-
671
-
672
- ┌─────────────────────────────────┐
673
- │ DocumentationLoader │
674
- │ - File reading │
675
- │ - JSON parsing │
676
- │ - File watching │
677
- │ - Index building │
678
- └──────┬──────────────────────────┘
679
-
680
-
681
- ┌─────────────────────────────────┐
682
- │ documentation.json │
683
- │ (Compodoc output) │
684
- └─────────────────────────────────┘
685
- ```
686
-
687
- ### Key Design Principles
688
-
689
- 1. **Single Source of Truth**: `documentation.json` is the only data source
690
- 2. **In-Memory Index**: Fast lookups using Map-based indexes
691
- 3. **Stateless Tools**: Each tool execution is independent
692
- 4. **Error Resilience**: Graceful error handling at every layer
693
- 5. **Hot Reloading**: Automatic index updates when documentation changes
694
-
695
- ## Testing
696
-
697
- ### Test Coverage
698
-
699
- The project uses a dual testing approach:
700
-
701
- 1. **Unit Tests**: Test individual functions and classes
702
- 2. **Property-Based Tests**: Verify universal properties using fast-check
157
+ ## Troubleshooting
703
158
 
704
- ### Running Tests
159
+ ### Server won't start
705
160
 
706
161
  ```bash
707
- # Run all tests
708
- npm test
709
-
710
- # Run tests in watch mode
711
- npm run test:watch
712
-
713
- # Run tests with coverage
714
- npm run test:coverage
715
-
716
- # Run specific test file
717
- npm test -- src/tools/__tests__/list-components.test.ts
162
+ # Test manually
163
+ npx -y @eui/mcp --doc-path https://euidev.ecdevops.eu/eui-docs-eui-21.x/json/documentation.json
718
164
  ```
719
165
 
720
- ### Property-Based Testing
721
-
722
- The project includes comprehensive property-based tests that verify correctness properties such as:
166
+ ### Can't reach documentation URL
723
167
 
724
- - Complete component listing
725
- - Pagination consistency
726
- - Search result relevance
727
- - Type information preservation
728
- - Round-trip serialization
729
-
730
- Each property test runs 100+ iterations with randomly generated test data.
731
-
732
- ## Troubleshooting
168
+ Check your network connection and firewall settings. If the URL is blocked, download the file locally and use a file path instead.
733
169
 
734
- ### Common Issues
170
+ ### MCP client doesn't see the tools
735
171
 
736
- #### Server Won't Start
172
+ 1. Verify the configuration file syntax is valid JSON
173
+ 2. Restart your MCP client completely
174
+ 3. Check client logs for connection errors
737
175
 
738
- **Problem**: Server fails to start with configuration error
176
+ ## Advanced Configuration
739
177
 
740
- **Solution**: Check that your `config.json` is valid JSON and includes required fields:
178
+ ### Enable File Watching (Local Files Only)
741
179
 
742
180
  ```json
743
181
  {
744
182
  "documentation": {
745
- "path": "./documentation.json"
183
+ "path": "/path/to/documentation.json",
184
+ "watchForChanges": true,
185
+ "reloadDebounce": 1000
746
186
  }
747
187
  }
748
188
  ```
749
189
 
750
- #### Documentation Not Found
751
-
752
- **Problem**: Error message "Failed to load documentation"
753
-
754
- **Solution**:
755
- 1. Verify the path in your configuration is correct
756
- 2. Ensure the file exists and is readable
757
- 3. Check that the file is valid JSON
758
-
759
- ```bash
760
- # Test if file is valid JSON
761
- cat documentation.json | jq .
762
- ```
763
-
764
- #### Empty Component List
765
-
766
- **Problem**: `list-components` returns empty array
767
-
768
- **Solution**:
769
- 1. Check that your `documentation.json` contains components
770
- 2. Try with `includeDeprecated: true` to see if all components are deprecated
771
- 3. Verify the JSON structure matches Compodoc's output format
772
-
773
- #### Search Returns No Results
774
-
775
- **Problem**: `search-components` returns empty results
776
-
777
- **Solution**:
778
- 1. Try a broader search query
779
- 2. Check that components exist with `list-components`
780
- 3. Ensure search query is at least 2 characters (configurable)
781
-
782
- #### File Watching Not Working
783
-
784
- **Problem**: Changes to `documentation.json` don't trigger reload
785
-
786
- **Solution**:
787
- 1. Check that `watchForChanges` is `true` in configuration
788
- 2. Verify file system permissions
789
- 3. Try increasing `reloadDebounce` value
790
- 4. Check server logs for file watcher errors
791
-
792
- ### Debug Mode
793
-
794
- Enable debug logging to troubleshoot issues:
190
+ ### Enable Debug Logging
795
191
 
796
192
  ```json
797
193
  {
194
+ "documentation": {
195
+ "path": "https://euidev.ecdevops.eu/eui-docs-eui-21.x/json/documentation.json"
196
+ },
798
197
  "logging": {
799
198
  "level": "debug"
800
199
  }
801
200
  }
802
201
  ```
803
202
 
804
- Or use environment variable:
203
+ ### HTTP Polling for Remote URLs
805
204
 
806
- ```bash
807
- COMPODOC_MCP_LOG_LEVEL=debug npm start
205
+ ```json
206
+ {
207
+ "documentation": {
208
+ "path": "https://euidev.ecdevops.eu/eui-docs-eui-21.x/json/documentation.json",
209
+ "pollInterval": 300000
210
+ }
211
+ }
808
212
  ```
809
213
 
810
- ### Getting Help
811
-
812
- If you encounter issues:
813
-
814
- 1. Check the [Troubleshooting](#troubleshooting) section
815
- 2. Review server logs for error messages
816
- 3. Verify your `documentation.json` is valid Compodoc output
817
- 4. Check that Node.js version is 18 or higher
818
-
819
- ## Contributing
820
-
821
- Contributions are welcome! Please follow these guidelines:
822
-
823
- 1. Fork the repository
824
- 2. Create a feature branch (`git checkout -b feature/my-feature`)
825
- 3. Write tests for new functionality
826
- 4. Ensure all tests pass (`npm test`)
827
- 5. Follow TypeScript and ESLint conventions
828
- 6. Update documentation as needed
829
- 7. Submit a pull request
830
-
831
- ### Code Style
832
-
833
- - Use TypeScript strict mode
834
- - Follow existing code formatting
835
- - Add JSDoc comments to public APIs
836
- - Write descriptive commit messages
837
-
838
- ## License
839
-
840
- MIT License - see LICENSE file for details
214
+ ## Next Steps
841
215
 
842
- ## Acknowledgments
216
+ - Read the [full documentation](./README.md) for all features
217
+ - Explore all available tools
218
+ - Customize configuration for your workflow
843
219
 
844
- - Built with [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/sdk)
845
- - Uses [Compodoc](https://compodoc.app/) for Angular documentation generation
846
- - Property-based testing with [fast-check](https://github.com/dubzzz/fast-check)
220
+ Happy coding! 🚀