@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
@@ -0,0 +1,389 @@
1
+ /**
2
+ * Property-based tests for SearchEngine
3
+ */
4
+ import { describe, it, expect } from '@jest/globals';
5
+ import * as fc from 'fast-check';
6
+ import { IndexBuilder } from '../index-builder.js';
7
+ import { SearchEngine } from '../search-engine.js';
8
+ // Reuse arbitraries from index-builder tests
9
+ const componentArbitrary = fc.record({
10
+ name: fc.string({ minLength: 1, maxLength: 50 }).filter((s) => s.trim().length > 0),
11
+ id: fc.string({ minLength: 1 }),
12
+ file: fc.string({ minLength: 1 }),
13
+ type: fc.constant('component'),
14
+ selector: fc.option(fc.string({ minLength: 1 }), { nil: undefined }),
15
+ description: fc.option(fc.string(), { nil: undefined }),
16
+ deprecated: fc.boolean(),
17
+ inputs: fc.option(fc.array(fc.record({
18
+ name: fc.string({ minLength: 1 }),
19
+ type: fc.string({ minLength: 1 }),
20
+ deprecated: fc.boolean(),
21
+ })), { nil: undefined }),
22
+ outputs: fc.option(fc.array(fc.record({
23
+ name: fc.string({ minLength: 1 }),
24
+ type: fc.string({ minLength: 1 }),
25
+ deprecated: fc.boolean(),
26
+ })), { nil: undefined }),
27
+ methods: fc.option(fc.array(fc.record({
28
+ name: fc.string({ minLength: 1 }),
29
+ deprecated: fc.boolean(),
30
+ })), { nil: undefined }),
31
+ });
32
+ const directiveArbitrary = fc.record({
33
+ name: fc.string({ minLength: 1, maxLength: 50 }).filter((s) => s.trim().length > 0),
34
+ id: fc.string({ minLength: 1 }),
35
+ file: fc.string({ minLength: 1 }),
36
+ type: fc.constant('directive'),
37
+ selector: fc.option(fc.string({ minLength: 1 }), { nil: undefined }),
38
+ description: fc.option(fc.string(), { nil: undefined }),
39
+ deprecated: fc.boolean(),
40
+ });
41
+ const pipeArbitrary = fc.record({
42
+ name: fc.string({ minLength: 1, maxLength: 50 }).filter((s) => s.trim().length > 0),
43
+ id: fc.string({ minLength: 1 }),
44
+ file: fc.string({ minLength: 1 }),
45
+ type: fc.constant('pipe'),
46
+ description: fc.option(fc.string(), { nil: undefined }),
47
+ deprecated: fc.boolean(),
48
+ });
49
+ const injectableArbitrary = fc.record({
50
+ name: fc.string({ minLength: 1, maxLength: 50 }).filter((s) => s.trim().length > 0),
51
+ id: fc.string({ minLength: 1 }),
52
+ file: fc.string({ minLength: 1 }),
53
+ type: fc.constant('injectable'),
54
+ description: fc.option(fc.string(), { nil: undefined }),
55
+ deprecated: fc.boolean(),
56
+ });
57
+ const documentationArbitrary = fc
58
+ .record({
59
+ components: fc.array(componentArbitrary, { maxLength: 20 }),
60
+ directives: fc.array(directiveArbitrary, { maxLength: 20 }),
61
+ pipes: fc.array(pipeArbitrary, { maxLength: 20 }),
62
+ injectables: fc.array(injectableArbitrary, { maxLength: 20 }),
63
+ interfaces: fc.constant([]),
64
+ classes: fc.constant([]),
65
+ modules: fc.constant([]),
66
+ })
67
+ .filter((doc) => {
68
+ // Ensure all names are unique across all types
69
+ const allNames = new Set();
70
+ const items = [...doc.components, ...doc.directives, ...doc.pipes, ...doc.injectables];
71
+ for (const item of items) {
72
+ if (allNames.has(item.name)) {
73
+ return false;
74
+ }
75
+ allNames.add(item.name);
76
+ }
77
+ return true;
78
+ });
79
+ describe('SearchEngine Property Tests', () => {
80
+ describe('Property 10: Case-insensitive search', () => {
81
+ /**
82
+ * Feature: eui-compodoc-mcp, Property 10: Case-insensitive search
83
+ * Validates: Requirements 3.4
84
+ *
85
+ * For any search query, searching with different case variations (lowercase,
86
+ * uppercase, mixed) should return the same set of components.
87
+ */
88
+ it('should return same results regardless of query case', () => {
89
+ fc.assert(fc.property(documentationArbitrary, fc.string({ minLength: 1, maxLength: 20 }).filter((s) => s.trim().length > 0), (documentation, query) => {
90
+ const builder = new IndexBuilder();
91
+ const index = builder.build(documentation);
92
+ const searchEngine = new SearchEngine(index);
93
+ // Search with different case variations
94
+ const lowerCaseResults = searchEngine.search({ query: query.toLowerCase() });
95
+ const upperCaseResults = searchEngine.search({ query: query.toUpperCase() });
96
+ const mixedCaseResults = searchEngine.search({ query });
97
+ // Extract component names from results
98
+ const lowerCaseNames = new Set(lowerCaseResults.items.map((item) => item.doc.name));
99
+ const upperCaseNames = new Set(upperCaseResults.items.map((item) => item.doc.name));
100
+ const mixedCaseNames = new Set(mixedCaseResults.items.map((item) => item.doc.name));
101
+ // All should return the same set of components
102
+ expect(lowerCaseNames).toEqual(upperCaseNames);
103
+ expect(lowerCaseNames).toEqual(mixedCaseNames);
104
+ expect(upperCaseNames).toEqual(mixedCaseNames);
105
+ // Total counts should match
106
+ expect(lowerCaseResults.total).toBe(upperCaseResults.total);
107
+ expect(lowerCaseResults.total).toBe(mixedCaseResults.total);
108
+ }), { numRuns: 100 });
109
+ });
110
+ it('should find components with case-insensitive name matching', () => {
111
+ fc.assert(fc.property(documentationArbitrary, (documentation) => {
112
+ const builder = new IndexBuilder();
113
+ const index = builder.build(documentation);
114
+ const searchEngine = new SearchEngine(index);
115
+ // For each component, search with different case variations of its name
116
+ for (const component of documentation.components) {
117
+ // Skip components whose names normalize to empty (only special chars)
118
+ const normalized = component.name.toLowerCase();
119
+ const words = normalized.split(/[^a-z0-9]+/).filter((w) => w.length > 0);
120
+ if (words.length === 0 && normalized.trim().length > 0) {
121
+ // Name consists only of special characters, skip
122
+ continue;
123
+ }
124
+ // Include deprecated to ensure we find all components
125
+ const lowerResults = searchEngine.search({
126
+ query: component.name.toLowerCase(),
127
+ includeDeprecated: true
128
+ });
129
+ const upperResults = searchEngine.search({
130
+ query: component.name.toUpperCase(),
131
+ includeDeprecated: true
132
+ });
133
+ // Both should find the component
134
+ const lowerNames = lowerResults.items.map((item) => item.doc.name);
135
+ const upperNames = upperResults.items.map((item) => item.doc.name);
136
+ expect(lowerNames).toContain(component.name);
137
+ expect(upperNames).toContain(component.name);
138
+ }
139
+ }), { numRuns: 100 });
140
+ });
141
+ });
142
+ describe('Property 3: Pagination consistency', () => {
143
+ /**
144
+ * Feature: eui-compodoc-mcp, Property 3: Pagination consistency
145
+ * Validates: Requirements 1.5
146
+ *
147
+ * For any large component list, applying pagination with limit and offset
148
+ * should return non-overlapping subsets that together equal the full list.
149
+ */
150
+ it('should return non-overlapping pages that together equal the full list', () => {
151
+ fc.assert(fc.property(documentationArbitrary, fc.string({ minLength: 1, maxLength: 20 }).filter((s) => s.trim().length > 0), fc.integer({ min: 1, max: 10 }), (documentation, query, pageSize) => {
152
+ const builder = new IndexBuilder();
153
+ const index = builder.build(documentation);
154
+ const searchEngine = new SearchEngine(index);
155
+ // Get full results
156
+ const fullResults = searchEngine.search({ query, limit: 1000 });
157
+ if (fullResults.total === 0) {
158
+ return true; // Skip if no results
159
+ }
160
+ // Collect all items through pagination
161
+ const paginatedItems = new Set();
162
+ let offset = 0;
163
+ while (offset < fullResults.total) {
164
+ const pageResults = searchEngine.search({
165
+ query,
166
+ limit: pageSize,
167
+ offset,
168
+ });
169
+ // Add items from this page
170
+ for (const item of pageResults.items) {
171
+ // Check for duplicates
172
+ expect(paginatedItems.has(item.doc.name)).toBe(false);
173
+ paginatedItems.add(item.doc.name);
174
+ }
175
+ offset += pageSize;
176
+ }
177
+ // Verify we got all items
178
+ expect(paginatedItems.size).toBe(fullResults.total);
179
+ // Verify all items match
180
+ const fullNames = new Set(fullResults.items.map((item) => item.doc.name));
181
+ expect(paginatedItems).toEqual(fullNames);
182
+ return true;
183
+ }), { numRuns: 100 });
184
+ });
185
+ it('should respect limit parameter', () => {
186
+ fc.assert(fc.property(documentationArbitrary, fc.string({ minLength: 1, maxLength: 20 }).filter((s) => s.trim().length > 0), fc.integer({ min: 1, max: 20 }), (documentation, query, limit) => {
187
+ const builder = new IndexBuilder();
188
+ const index = builder.build(documentation);
189
+ const searchEngine = new SearchEngine(index);
190
+ const results = searchEngine.search({ query, limit });
191
+ // Results should not exceed limit
192
+ expect(results.items.length).toBeLessThanOrEqual(limit);
193
+ // If there are more results than limit, hasMore should be true
194
+ if (results.total > limit) {
195
+ expect(results.hasMore).toBe(true);
196
+ }
197
+ }), { numRuns: 100 });
198
+ });
199
+ it('should respect offset parameter', () => {
200
+ fc.assert(fc.property(documentationArbitrary, fc.string({ minLength: 1, maxLength: 20 }).filter((s) => s.trim().length > 0), fc.integer({ min: 0, max: 10 }), (documentation, query, offset) => {
201
+ const builder = new IndexBuilder();
202
+ const index = builder.build(documentation);
203
+ const searchEngine = new SearchEngine(index);
204
+ const fullResults = searchEngine.search({ query, limit: 1000 });
205
+ const offsetResults = searchEngine.search({ query, limit: 1000, offset });
206
+ if (fullResults.total === 0) {
207
+ return true; // Skip if no results
208
+ }
209
+ // Offset results should start after the offset
210
+ const expectedCount = Math.max(0, fullResults.total - offset);
211
+ expect(offsetResults.items.length).toBe(expectedCount);
212
+ // Items should match the tail of full results
213
+ if (offset < fullResults.total) {
214
+ const fullNames = fullResults.items.slice(offset).map((item) => item.doc.name);
215
+ const offsetNames = offsetResults.items.map((item) => item.doc.name);
216
+ expect(offsetNames).toEqual(fullNames);
217
+ }
218
+ return true;
219
+ }), { numRuns: 100 });
220
+ });
221
+ });
222
+ describe('Property 8: Search result relevance', () => {
223
+ /**
224
+ * Feature: eui-compodoc-mcp, Property 8: Search result relevance
225
+ * Validates: Requirements 3.1
226
+ *
227
+ * For any search query, all returned components should contain the query
228
+ * string in their name, selector, description, or metadata fields.
229
+ */
230
+ it('should only return components that match the query', () => {
231
+ fc.assert(fc.property(documentationArbitrary, fc.string({ minLength: 1, maxLength: 20 }).filter((s) => s.trim().length > 0), (documentation, query) => {
232
+ const builder = new IndexBuilder();
233
+ const index = builder.build(documentation);
234
+ const searchEngine = new SearchEngine(index);
235
+ const results = searchEngine.search({ query });
236
+ const normalizedQuery = query.toLowerCase().trim();
237
+ // Extract searchable words from query (same logic as IndexBuilder)
238
+ const queryWords = normalizedQuery.split(/[^a-z0-9]+/).filter((w) => w.length > 0);
239
+ // If no words extracted, skip this test case
240
+ if (queryWords.length === 0) {
241
+ return true;
242
+ }
243
+ // Every result should contain at least one query word in some field
244
+ for (const result of results.items) {
245
+ const doc = result.doc;
246
+ // Extract all searchable text from the document
247
+ let searchableText = [
248
+ doc.name,
249
+ doc.description || '',
250
+ 'selector' in doc && doc.selector ? doc.selector : '',
251
+ ].join(' ').toLowerCase();
252
+ // Add input names
253
+ if ('inputs' in doc && doc.inputs) {
254
+ for (const input of doc.inputs) {
255
+ searchableText += ' ' + input.name.toLowerCase();
256
+ }
257
+ }
258
+ // Add output names
259
+ if ('outputs' in doc && doc.outputs) {
260
+ for (const output of doc.outputs) {
261
+ searchableText += ' ' + output.name.toLowerCase();
262
+ }
263
+ }
264
+ // Add method names
265
+ if ('methods' in doc && doc.methods) {
266
+ for (const method of doc.methods) {
267
+ searchableText += ' ' + method.name.toLowerCase();
268
+ }
269
+ }
270
+ // Check if any query word appears in searchable text
271
+ const hasMatch = queryWords.some((word) => searchableText.includes(word));
272
+ expect(hasMatch).toBe(true);
273
+ }
274
+ return true;
275
+ }), { numRuns: 100 });
276
+ });
277
+ });
278
+ describe('Property 9: Search result ordering', () => {
279
+ /**
280
+ * Feature: eui-compodoc-mcp, Property 9: Search result ordering
281
+ * Validates: Requirements 3.2
282
+ *
283
+ * For any search results, items should be ordered by relevance score in
284
+ * descending order.
285
+ */
286
+ it('should order results by relevance score descending', () => {
287
+ fc.assert(fc.property(documentationArbitrary, fc.string({ minLength: 1, maxLength: 20 }).filter((s) => s.trim().length > 0), (documentation, query) => {
288
+ const builder = new IndexBuilder();
289
+ const index = builder.build(documentation);
290
+ const searchEngine = new SearchEngine(index);
291
+ const results = searchEngine.search({ query });
292
+ // Verify results are ordered by score descending
293
+ for (let i = 0; i < results.items.length - 1; i++) {
294
+ const currentScore = results.items[i].relevanceScore;
295
+ const nextScore = results.items[i + 1].relevanceScore;
296
+ expect(currentScore).toBeGreaterThanOrEqual(nextScore);
297
+ }
298
+ }), { numRuns: 100 });
299
+ });
300
+ it('should give exact name matches high scores', () => {
301
+ fc.assert(fc.property(documentationArbitrary, (documentation) => {
302
+ const builder = new IndexBuilder();
303
+ const index = builder.build(documentation);
304
+ const searchEngine = new SearchEngine(index);
305
+ // For each component, search by its exact name
306
+ for (const component of documentation.components) {
307
+ // Skip components whose names normalize to empty (only special chars)
308
+ const normalized = component.name.toLowerCase();
309
+ const words = normalized.split(/[^a-z0-9]+/).filter((w) => w.length > 0);
310
+ if (words.length === 0 && normalized.trim().length > 0) {
311
+ continue;
312
+ }
313
+ const results = searchEngine.search({
314
+ query: component.name,
315
+ includeDeprecated: true
316
+ });
317
+ if (results.items.length > 0) {
318
+ // Find the exact match
319
+ const exactMatch = results.items.find((item) => item.doc.name === component.name);
320
+ if (exactMatch) {
321
+ // Check if the query (after normalization) exactly matches the component name
322
+ const normalizedQuery = component.name.toLowerCase().trim();
323
+ const nameLower = component.name.toLowerCase();
324
+ if (nameLower === normalizedQuery) {
325
+ // True exact match - should get 100 points (or 50 if deprecated)
326
+ const expectedScore = component.deprecated ? 50 : 100;
327
+ expect(exactMatch.relevanceScore).toBeGreaterThanOrEqual(expectedScore);
328
+ }
329
+ else {
330
+ // Not an exact match after normalization, but should still be found
331
+ expect(exactMatch.relevanceScore).toBeGreaterThan(0);
332
+ }
333
+ }
334
+ }
335
+ }
336
+ }), { numRuns: 100 });
337
+ });
338
+ it('should apply deprecated penalty to scores', () => {
339
+ fc.assert(fc.property(fc.record({
340
+ components: fc
341
+ .tuple(
342
+ // Create two components with same name prefix, one deprecated
343
+ fc.string({ minLength: 5, maxLength: 20 }).filter((s) => s.trim().length > 0), fc.string({ minLength: 1, maxLength: 10 }))
344
+ .map(([prefix, suffix]) => [
345
+ {
346
+ name: `${prefix}Component`,
347
+ id: '1',
348
+ file: 'file1.ts',
349
+ type: 'component',
350
+ description: `${prefix} description`,
351
+ deprecated: false,
352
+ },
353
+ {
354
+ name: `${prefix}${suffix}Component`,
355
+ id: '2',
356
+ file: 'file2.ts',
357
+ type: 'component',
358
+ description: `${prefix} description`,
359
+ deprecated: true,
360
+ },
361
+ ]),
362
+ directives: fc.constant([]),
363
+ pipes: fc.constant([]),
364
+ injectables: fc.constant([]),
365
+ interfaces: fc.constant([]),
366
+ classes: fc.constant([]),
367
+ modules: fc.constant([]),
368
+ }), (documentation) => {
369
+ const builder = new IndexBuilder();
370
+ const index = builder.build(documentation);
371
+ const searchEngine = new SearchEngine(index);
372
+ const nonDeprecated = documentation.components[0];
373
+ const deprecated = documentation.components[1];
374
+ // Search for the common prefix
375
+ const prefix = nonDeprecated.name.replace('Component', '');
376
+ const results = searchEngine.search({ query: prefix, includeDeprecated: true });
377
+ // Find both components in results
378
+ const nonDepResult = results.items.find((item) => item.doc.name === nonDeprecated.name);
379
+ const depResult = results.items.find((item) => item.doc.name === deprecated.name);
380
+ if (nonDepResult && depResult) {
381
+ // Non-deprecated should have higher or equal score
382
+ // (equal if both have score 0, which can happen with very different names)
383
+ expect(nonDepResult.relevanceScore).toBeGreaterThanOrEqual(depResult.relevanceScore);
384
+ }
385
+ }), { numRuns: 100 });
386
+ });
387
+ });
388
+ });
389
+ //# sourceMappingURL=search-engine.property.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-engine.property.test.js","sourceRoot":"","sources":["../../../src/query/__tests__/search-engine.property.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Extracts deprecation information from Compodoc JSON data
3
+ */
4
+ interface DeprecatableItem {
5
+ deprecated?: boolean;
6
+ deprecationMessage?: string;
7
+ decorators?: Array<{
8
+ name: string;
9
+ }>;
10
+ jsdoctags?: Array<{
11
+ tagName?: {
12
+ text: string;
13
+ };
14
+ comment?: string;
15
+ }>;
16
+ file?: string;
17
+ }
18
+ export declare class DeprecationParser {
19
+ /**
20
+ * Checks if an item has deprecation information
21
+ */
22
+ isDeprecated(item: DeprecatableItem): boolean;
23
+ /**
24
+ * Extracts deprecation message from item metadata
25
+ */
26
+ extractDeprecationMessage(item: DeprecatableItem): string;
27
+ /**
28
+ * Extracts version information from deprecation message
29
+ */
30
+ extractVersion(message: string): string | undefined;
31
+ /**
32
+ * Extracts replacement suggestion from deprecation message
33
+ */
34
+ extractReplacement(message: string): string | undefined;
35
+ /**
36
+ * Parses complete deprecation information from an item
37
+ */
38
+ parseDeprecationInfo(item: DeprecatableItem): {
39
+ deprecationMessage: string;
40
+ versionDeprecated?: string;
41
+ replacementSuggestion?: string;
42
+ filePath?: string;
43
+ };
44
+ }
45
+ export {};
46
+ //# sourceMappingURL=deprecation-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deprecation-parser.d.ts","sourceRoot":"","sources":["../../src/query/deprecation-parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,UAAU,gBAAgB;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,iBAAiB;IAC5B;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;IAa7C;;OAEG;IACH,yBAAyB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM;IAazD;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAiBnD;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAkBvD;;OAEG;IACH,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG;QAC5C,kBAAkB,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;CAUF"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Extracts deprecation information from Compodoc JSON data
3
+ */
4
+ export class DeprecationParser {
5
+ /**
6
+ * Checks if an item has deprecation information
7
+ */
8
+ isDeprecated(item) {
9
+ if (item.deprecated === true) {
10
+ return true;
11
+ }
12
+ if (item.decorators && item.decorators.some((d) => d.name === 'deprecated')) {
13
+ return true;
14
+ }
15
+ if (item.jsdoctags && item.jsdoctags.some((tag) => tag.tagName?.text === 'deprecated')) {
16
+ return true;
17
+ }
18
+ return false;
19
+ }
20
+ /**
21
+ * Extracts deprecation message from item metadata
22
+ */
23
+ extractDeprecationMessage(item) {
24
+ const deprecatedTag = item.jsdoctags?.find((tag) => tag.tagName?.text === 'deprecated');
25
+ if (deprecatedTag?.comment) {
26
+ return deprecatedTag.comment;
27
+ }
28
+ if (item.deprecationMessage) {
29
+ return item.deprecationMessage;
30
+ }
31
+ return 'This item is deprecated.';
32
+ }
33
+ /**
34
+ * Extracts version information from deprecation message
35
+ */
36
+ extractVersion(message) {
37
+ const versionPatterns = [
38
+ /since\s+v?(\d+\.\d+\.\d+)/i,
39
+ /deprecated\s+in\s+v?(\d+\.\d+\.\d+)/i,
40
+ /v(\d+\.\d+\.\d+)/i,
41
+ ];
42
+ for (const pattern of versionPatterns) {
43
+ const match = message.match(pattern);
44
+ if (match) {
45
+ return match[1];
46
+ }
47
+ }
48
+ return undefined;
49
+ }
50
+ /**
51
+ * Extracts replacement suggestion from deprecation message
52
+ */
53
+ extractReplacement(message) {
54
+ const replacementPatterns = [
55
+ /use\s+([A-Za-z0-9_-]+)\s+instead/i,
56
+ /replaced\s+by\s+([A-Za-z0-9_-]+)/i,
57
+ /migrate\s+to\s+([A-Za-z0-9_-]+)/i,
58
+ /see\s+([A-Za-z0-9_-]+)/i,
59
+ ];
60
+ for (const pattern of replacementPatterns) {
61
+ const match = message.match(pattern);
62
+ if (match) {
63
+ return match[1];
64
+ }
65
+ }
66
+ return undefined;
67
+ }
68
+ /**
69
+ * Parses complete deprecation information from an item
70
+ */
71
+ parseDeprecationInfo(item) {
72
+ const message = this.extractDeprecationMessage(item);
73
+ return {
74
+ deprecationMessage: message,
75
+ versionDeprecated: this.extractVersion(message),
76
+ replacementSuggestion: this.extractReplacement(message),
77
+ filePath: item.file,
78
+ };
79
+ }
80
+ }
81
+ //# sourceMappingURL=deprecation-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deprecation-parser.js","sourceRoot":"","sources":["../../src/query/deprecation-parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,MAAM,OAAO,iBAAiB;IAC5B;;OAEG;IACH,YAAY,CAAC,IAAsB;QACjC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;YAC5E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;YACvF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,yBAAyB,CAAC,IAAsB;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK,YAAY,CAAC,CAAC;QACxF,IAAI,aAAa,EAAE,OAAO,EAAE,CAAC;YAC3B,OAAO,aAAa,CAAC,OAAO,CAAC;QAC/B,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,kBAAkB,CAAC;QACjC,CAAC;QAED,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,OAAe;QAC5B,MAAM,eAAe,GAAG;YACtB,4BAA4B;YAC5B,sCAAsC;YACtC,mBAAmB;SACpB,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,OAAe;QAChC,MAAM,mBAAmB,GAAG;YAC1B,mCAAmC;YACnC,mCAAmC;YACnC,kCAAkC;YAClC,yBAAyB;SAC1B,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,mBAAmB,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,IAAsB;QAMzC,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAErD,OAAO;YACL,kBAAkB,EAAE,OAAO;YAC3B,iBAAiB,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC/C,qBAAqB,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;YACvD,QAAQ,EAAE,IAAI,CAAC,IAAI;SACpB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import { DeprecatedItem, DeprecationListOptions, DeprecationInfo } from '../types/deprecation.js';
2
+ import { ComponentIndex } from './index-builder.js';
3
+ /**
4
+ * Query functions for deprecation information
5
+ */
6
+ export declare class DeprecationQuery {
7
+ private index;
8
+ private parser;
9
+ constructor(index: ComponentIndex);
10
+ /**
11
+ * Lists all deprecated items, optionally filtered by type
12
+ */
13
+ listDeprecated(options?: DeprecationListOptions): DeprecatedItem[];
14
+ /**
15
+ * Gets detailed deprecation information for a specific component
16
+ */
17
+ getDeprecationInfo(componentName: string): DeprecationInfo | null;
18
+ }
19
+ //# sourceMappingURL=deprecation-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deprecation-query.d.ts","sourceRoot":"","sources":["../../src/query/deprecation-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAElG,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;GAEG;AACH,qBAAa,gBAAgB;IAGf,OAAO,CAAC,KAAK;IAFzB,OAAO,CAAC,MAAM,CAAoB;gBAEd,KAAK,EAAE,cAAc;IAIzC;;OAEG;IACH,cAAc,CAAC,OAAO,GAAE,sBAA2B,GAAG,cAAc,EAAE;IAsCtE;;OAEG;IACH,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;CA4BlE"}
@@ -0,0 +1,73 @@
1
+ import { DeprecationParser } from './deprecation-parser.js';
2
+ /**
3
+ * Query functions for deprecation information
4
+ */
5
+ export class DeprecationQuery {
6
+ index;
7
+ parser;
8
+ constructor(index) {
9
+ this.index = index;
10
+ this.parser = new DeprecationParser();
11
+ }
12
+ /**
13
+ * Lists all deprecated items, optionally filtered by type
14
+ */
15
+ listDeprecated(options = {}) {
16
+ const deprecated = [];
17
+ const itemTypes = [
18
+ { items: this.index.components, type: 'component' },
19
+ { items: this.index.directives, type: 'directive' },
20
+ { items: this.index.pipes, type: 'pipe' },
21
+ { items: this.index.services, type: 'injectable' },
22
+ ];
23
+ for (const { items, type } of itemTypes) {
24
+ if (options.type && options.type !== type) {
25
+ continue;
26
+ }
27
+ for (const item of items) {
28
+ if (this.parser.isDeprecated(item)) {
29
+ const deprecationInfo = this.parser.parseDeprecationInfo(item);
30
+ const replacement = options.includeReplacements
31
+ ? deprecationInfo.replacementSuggestion
32
+ : undefined;
33
+ deprecated.push({
34
+ name: item.name,
35
+ type,
36
+ deprecationMessage: deprecationInfo.deprecationMessage,
37
+ versionDeprecated: deprecationInfo.versionDeprecated,
38
+ replacementSuggestion: replacement,
39
+ filePath: deprecationInfo.filePath,
40
+ });
41
+ }
42
+ }
43
+ }
44
+ return deprecated;
45
+ }
46
+ /**
47
+ * Gets detailed deprecation information for a specific component
48
+ */
49
+ getDeprecationInfo(componentName) {
50
+ const item = this.index.byName.get(componentName);
51
+ if (!item) {
52
+ return null;
53
+ }
54
+ const isDeprecated = this.parser.isDeprecated(item);
55
+ if (!isDeprecated) {
56
+ return {
57
+ name: componentName,
58
+ type: item.type,
59
+ isDeprecated: false,
60
+ };
61
+ }
62
+ const deprecationInfo = this.parser.parseDeprecationInfo(item);
63
+ return {
64
+ name: componentName,
65
+ type: item.type,
66
+ isDeprecated: true,
67
+ deprecationMessage: deprecationInfo.deprecationMessage,
68
+ versionDeprecated: deprecationInfo.versionDeprecated,
69
+ replacementSuggestion: deprecationInfo.replacementSuggestion,
70
+ };
71
+ }
72
+ }
73
+ //# sourceMappingURL=deprecation-query.js.map