bluera-knowledge 0.14.0 → 0.14.2

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 (659) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +14 -0
  3. package/dist/{chunk-AIS5S77C.js → chunk-X7E4RYJE.js} +51 -9
  4. package/dist/{chunk-AIS5S77C.js.map → chunk-X7E4RYJE.js.map} +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/workers/background-worker-cli.js +1 -1
  7. package/package.json +12 -1
  8. package/.claude/commands/code-review.md +0 -15
  9. package/.claude/commands/commit.md +0 -34
  10. package/.claude/council-cache/1a43ed5977b8f29afc79a9bf5c4082ee5ad8338c42ab991a4241a48f80c1e46d.json +0 -7
  11. package/.claude/hooks/post-edit-check.sh +0 -40
  12. package/.claude/rules/code-quality.md +0 -12
  13. package/.claude/rules/git.md +0 -5
  14. package/.claude/rules/versioning.md +0 -7
  15. package/.claude/settings.local.json.example +0 -45
  16. package/.claude/skills/atomic-commits/SKILL.md +0 -61
  17. package/.claude/skills/code-review-repo/skill.md +0 -62
  18. package/.editorconfig +0 -15
  19. package/.env.example +0 -21
  20. package/.github/workflows/auto-release.yml +0 -64
  21. package/.github/workflows/ci.yml +0 -168
  22. package/.github/workflows/release.yml +0 -74
  23. package/.github/workflows/update-marketplace.yml +0 -96
  24. package/.husky/pre-commit +0 -48
  25. package/.husky/pre-push +0 -39
  26. package/.mcp.json +0 -11
  27. package/.prettierrc +0 -9
  28. package/.versionrc.json +0 -24
  29. package/CLAUDE.md +0 -110
  30. package/CONTRIBUTING.md +0 -307
  31. package/NOTICE +0 -47
  32. package/SECURITY.md +0 -65
  33. package/bun.lock +0 -2036
  34. package/docs/claude-code-best-practices.md +0 -458
  35. package/docs/cli.md +0 -170
  36. package/docs/commands.md +0 -392
  37. package/docs/crawler-architecture.md +0 -89
  38. package/docs/mcp-integration.md +0 -130
  39. package/docs/token-efficiency.md +0 -91
  40. package/eslint-rules/require-skip-comment.js +0 -81
  41. package/eslint.config.js +0 -103
  42. package/knip.json +0 -43
  43. package/scripts/test-mcp-dev.js +0 -260
  44. package/scripts/validate-npm-release.sh +0 -314
  45. package/src/analysis/adapter-registry.test.ts +0 -211
  46. package/src/analysis/adapter-registry.ts +0 -155
  47. package/src/analysis/ast-parser.test.ts +0 -470
  48. package/src/analysis/ast-parser.ts +0 -198
  49. package/src/analysis/code-graph.test.ts +0 -718
  50. package/src/analysis/code-graph.ts +0 -249
  51. package/src/analysis/dependency-usage-analyzer.test.ts +0 -619
  52. package/src/analysis/dependency-usage-analyzer.ts +0 -433
  53. package/src/analysis/go-ast-parser.test.ts +0 -531
  54. package/src/analysis/go-ast-parser.ts +0 -471
  55. package/src/analysis/language-adapter.ts +0 -127
  56. package/src/analysis/parser-factory.test.ts +0 -210
  57. package/src/analysis/parser-factory.ts +0 -52
  58. package/src/analysis/python-ast-parser.test.ts +0 -210
  59. package/src/analysis/python-ast-parser.ts +0 -34
  60. package/src/analysis/repo-url-resolver.test.ts +0 -533
  61. package/src/analysis/repo-url-resolver.ts +0 -233
  62. package/src/analysis/rust-ast-parser.test.ts +0 -568
  63. package/src/analysis/rust-ast-parser.ts +0 -467
  64. package/src/analysis/tree-sitter-parser.test.ts +0 -297
  65. package/src/analysis/tree-sitter-parser.ts +0 -217
  66. package/src/analysis/zil/index.ts +0 -34
  67. package/src/analysis/zil/zil-adapter.test.ts +0 -187
  68. package/src/analysis/zil/zil-adapter.ts +0 -121
  69. package/src/analysis/zil/zil-lexer.test.ts +0 -222
  70. package/src/analysis/zil/zil-lexer.ts +0 -239
  71. package/src/analysis/zil/zil-parser.test.ts +0 -210
  72. package/src/analysis/zil/zil-parser.ts +0 -360
  73. package/src/analysis/zil/zil-special-forms.ts +0 -193
  74. package/src/cli/commands/crawl.test.ts +0 -1086
  75. package/src/cli/commands/crawl.ts +0 -220
  76. package/src/cli/commands/index-cmd.test.ts +0 -733
  77. package/src/cli/commands/index-cmd.ts +0 -128
  78. package/src/cli/commands/mcp.test.ts +0 -218
  79. package/src/cli/commands/mcp.ts +0 -18
  80. package/src/cli/commands/plugin-api.test.ts +0 -373
  81. package/src/cli/commands/plugin-api.ts +0 -82
  82. package/src/cli/commands/search.test.ts +0 -1047
  83. package/src/cli/commands/search.ts +0 -197
  84. package/src/cli/commands/serve.test.ts +0 -371
  85. package/src/cli/commands/serve.ts +0 -43
  86. package/src/cli/commands/setup.test.ts +0 -895
  87. package/src/cli/commands/setup.ts +0 -176
  88. package/src/cli/commands/store.test.ts +0 -1370
  89. package/src/cli/commands/store.ts +0 -229
  90. package/src/cli/commands/sync.test.ts +0 -54
  91. package/src/cli/commands/sync.ts +0 -313
  92. package/src/cli/index.ts +0 -8
  93. package/src/cli/program.ts +0 -59
  94. package/src/crawl/article-converter.test.ts +0 -576
  95. package/src/crawl/article-converter.ts +0 -142
  96. package/src/crawl/bridge.test.ts +0 -796
  97. package/src/crawl/bridge.ts +0 -349
  98. package/src/crawl/claude-client.test.ts +0 -902
  99. package/src/crawl/claude-client.ts +0 -261
  100. package/src/crawl/intelligent-crawler.test.ts +0 -1028
  101. package/src/crawl/intelligent-crawler.ts +0 -478
  102. package/src/crawl/markdown-utils.test.ts +0 -703
  103. package/src/crawl/markdown-utils.ts +0 -225
  104. package/src/crawl/schemas.ts +0 -114
  105. package/src/db/embeddings.test.ts +0 -79
  106. package/src/db/embeddings.ts +0 -78
  107. package/src/db/index.ts +0 -2
  108. package/src/db/lance.test.ts +0 -479
  109. package/src/db/lance.ts +0 -190
  110. package/src/defaults/repos.ts +0 -67
  111. package/src/index.ts +0 -124
  112. package/src/logging/index.ts +0 -25
  113. package/src/logging/logger.test.ts +0 -75
  114. package/src/logging/logger.ts +0 -145
  115. package/src/logging/payload.test.ts +0 -152
  116. package/src/logging/payload.ts +0 -119
  117. package/src/mcp/cache.test.ts +0 -202
  118. package/src/mcp/cache.ts +0 -103
  119. package/src/mcp/commands/index.ts +0 -24
  120. package/src/mcp/commands/job.commands.ts +0 -48
  121. package/src/mcp/commands/meta.commands.ts +0 -54
  122. package/src/mcp/commands/registry.ts +0 -180
  123. package/src/mcp/commands/store.commands.ts +0 -75
  124. package/src/mcp/commands/sync.commands.test.ts +0 -371
  125. package/src/mcp/commands/sync.commands.ts +0 -263
  126. package/src/mcp/commands/uninstall.commands.test.ts +0 -37
  127. package/src/mcp/commands/uninstall.commands.ts +0 -29
  128. package/src/mcp/handlers/execute.handler.test.ts +0 -179
  129. package/src/mcp/handlers/execute.handler.ts +0 -23
  130. package/src/mcp/handlers/index.ts +0 -39
  131. package/src/mcp/handlers/job.handler.test.ts +0 -189
  132. package/src/mcp/handlers/job.handler.ts +0 -118
  133. package/src/mcp/handlers/search.handler.test.ts +0 -324
  134. package/src/mcp/handlers/search.handler.ts +0 -287
  135. package/src/mcp/handlers/store.handler.test.ts +0 -408
  136. package/src/mcp/handlers/store.handler.ts +0 -318
  137. package/src/mcp/handlers/uninstall.handler.test.ts +0 -194
  138. package/src/mcp/handlers/uninstall.handler.ts +0 -142
  139. package/src/mcp/plugin-mcp-config.test.ts +0 -71
  140. package/src/mcp/schemas/index.test.ts +0 -356
  141. package/src/mcp/schemas/index.ts +0 -155
  142. package/src/mcp/server.test.ts +0 -91
  143. package/src/mcp/server.ts +0 -235
  144. package/src/mcp/types.ts +0 -41
  145. package/src/plugin/commands.test.ts +0 -925
  146. package/src/plugin/commands.ts +0 -311
  147. package/src/plugin/dependency-analyzer.test.ts +0 -380
  148. package/src/plugin/dependency-analyzer.ts +0 -210
  149. package/src/plugin/git-clone.test.ts +0 -387
  150. package/src/plugin/git-clone.ts +0 -57
  151. package/src/scripts/validate-npm-release.test.ts +0 -70
  152. package/src/server/app.test.ts +0 -752
  153. package/src/server/app.ts +0 -128
  154. package/src/server/index.test.ts +0 -475
  155. package/src/server/index.ts +0 -1
  156. package/src/services/chunking.service.test.ts +0 -363
  157. package/src/services/chunking.service.ts +0 -380
  158. package/src/services/code-graph.service.test.ts +0 -298
  159. package/src/services/code-graph.service.ts +0 -326
  160. package/src/services/code-unit.service.test.ts +0 -693
  161. package/src/services/code-unit.service.ts +0 -234
  162. package/src/services/config.service.test.ts +0 -146
  163. package/src/services/config.service.ts +0 -92
  164. package/src/services/gitignore.service.test.ts +0 -157
  165. package/src/services/gitignore.service.ts +0 -132
  166. package/src/services/index.service.test.ts +0 -2301
  167. package/src/services/index.service.ts +0 -442
  168. package/src/services/index.ts +0 -119
  169. package/src/services/job.service.test.ts +0 -531
  170. package/src/services/job.service.ts +0 -298
  171. package/src/services/project-root.service.test.ts +0 -504
  172. package/src/services/project-root.service.ts +0 -112
  173. package/src/services/search.service.test.ts +0 -2263
  174. package/src/services/search.service.ts +0 -1341
  175. package/src/services/services.test.ts +0 -108
  176. package/src/services/snippet.service.test.ts +0 -213
  177. package/src/services/snippet.service.ts +0 -193
  178. package/src/services/store-definition.service.test.ts +0 -440
  179. package/src/services/store-definition.service.ts +0 -198
  180. package/src/services/store.service.test.ts +0 -843
  181. package/src/services/store.service.ts +0 -363
  182. package/src/services/token.service.test.ts +0 -45
  183. package/src/services/token.service.ts +0 -33
  184. package/src/services/watch.service.test.ts +0 -600
  185. package/src/services/watch.service.ts +0 -84
  186. package/src/types/brands.test.ts +0 -47
  187. package/src/types/brands.ts +0 -32
  188. package/src/types/config.ts +0 -79
  189. package/src/types/document.ts +0 -54
  190. package/src/types/index.ts +0 -73
  191. package/src/types/job.ts +0 -61
  192. package/src/types/progress.ts +0 -9
  193. package/src/types/result.test.ts +0 -54
  194. package/src/types/result.ts +0 -41
  195. package/src/types/search.ts +0 -105
  196. package/src/types/store-definition.test.ts +0 -492
  197. package/src/types/store-definition.ts +0 -129
  198. package/src/types/store.test.ts +0 -69
  199. package/src/types/store.ts +0 -47
  200. package/src/utils/type-guards.test.ts +0 -351
  201. package/src/utils/type-guards.ts +0 -61
  202. package/src/workers/background-worker-cli.test.ts +0 -35
  203. package/src/workers/background-worker-cli.ts +0 -149
  204. package/src/workers/background-worker.test.ts +0 -222
  205. package/src/workers/background-worker.ts +0 -322
  206. package/src/workers/pid-file.test.ts +0 -167
  207. package/src/workers/pid-file.ts +0 -82
  208. package/src/workers/spawn-worker.test.ts +0 -194
  209. package/src/workers/spawn-worker.ts +0 -70
  210. package/tests/analysis/ast-parser.test.ts +0 -98
  211. package/tests/analysis/code-graph.test.ts +0 -60
  212. package/tests/fixtures/README.md +0 -114
  213. package/tests/fixtures/code-snippets/api/error-handling.ts +0 -256
  214. package/tests/fixtures/code-snippets/api/rest-controller.ts +0 -297
  215. package/tests/fixtures/code-snippets/auth/jwt-auth.ts +0 -197
  216. package/tests/fixtures/code-snippets/auth/oauth-flow.ts +0 -245
  217. package/tests/fixtures/code-snippets/database/repository-pattern.ts +0 -280
  218. package/tests/fixtures/corpus/VERSION.md +0 -25
  219. package/tests/fixtures/corpus/articles/jwt-authentication.md +0 -97
  220. package/tests/fixtures/corpus/articles/react-hooks-patterns.md +0 -127
  221. package/tests/fixtures/corpus/articles/typescript-generics.md +0 -111
  222. package/tests/fixtures/corpus/documentation/express-middleware.md +0 -71
  223. package/tests/fixtures/corpus/documentation/express-routing.md +0 -83
  224. package/tests/fixtures/corpus/documentation/node-streams.md +0 -78
  225. package/tests/fixtures/corpus/oss-repos/express/History.md +0 -3871
  226. package/tests/fixtures/corpus/oss-repos/express/LICENSE +0 -24
  227. package/tests/fixtures/corpus/oss-repos/express/README.md +0 -276
  228. package/tests/fixtures/corpus/oss-repos/express/SECURITY.md +0 -56
  229. package/tests/fixtures/corpus/oss-repos/express/benchmarks/Makefile +0 -17
  230. package/tests/fixtures/corpus/oss-repos/express/benchmarks/README.md +0 -34
  231. package/tests/fixtures/corpus/oss-repos/express/benchmarks/middleware.js +0 -20
  232. package/tests/fixtures/corpus/oss-repos/express/benchmarks/run +0 -18
  233. package/tests/fixtures/corpus/oss-repos/express/examples/README.md +0 -29
  234. package/tests/fixtures/corpus/oss-repos/express/examples/auth/index.js +0 -134
  235. package/tests/fixtures/corpus/oss-repos/express/examples/auth/views/foot.ejs +0 -2
  236. package/tests/fixtures/corpus/oss-repos/express/examples/auth/views/head.ejs +0 -20
  237. package/tests/fixtures/corpus/oss-repos/express/examples/auth/views/login.ejs +0 -21
  238. package/tests/fixtures/corpus/oss-repos/express/examples/content-negotiation/db.js +0 -9
  239. package/tests/fixtures/corpus/oss-repos/express/examples/content-negotiation/index.js +0 -46
  240. package/tests/fixtures/corpus/oss-repos/express/examples/content-negotiation/users.js +0 -19
  241. package/tests/fixtures/corpus/oss-repos/express/examples/cookie-sessions/index.js +0 -25
  242. package/tests/fixtures/corpus/oss-repos/express/examples/cookies/index.js +0 -53
  243. package/tests/fixtures/corpus/oss-repos/express/examples/downloads/files/CCTV/345/244/247/350/265/233/344/270/212/346/265/267/345/210/206/350/265/233/345/214/272.txt +0 -2
  244. package/tests/fixtures/corpus/oss-repos/express/examples/downloads/files/amazing.txt +0 -1
  245. package/tests/fixtures/corpus/oss-repos/express/examples/downloads/files/notes/groceries.txt +0 -3
  246. package/tests/fixtures/corpus/oss-repos/express/examples/downloads/index.js +0 -40
  247. package/tests/fixtures/corpus/oss-repos/express/examples/ejs/index.js +0 -57
  248. package/tests/fixtures/corpus/oss-repos/express/examples/ejs/public/stylesheets/style.css +0 -4
  249. package/tests/fixtures/corpus/oss-repos/express/examples/ejs/views/footer.html +0 -2
  250. package/tests/fixtures/corpus/oss-repos/express/examples/ejs/views/header.html +0 -9
  251. package/tests/fixtures/corpus/oss-repos/express/examples/ejs/views/users.html +0 -10
  252. package/tests/fixtures/corpus/oss-repos/express/examples/error/index.js +0 -53
  253. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/index.js +0 -103
  254. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/404.ejs +0 -3
  255. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/500.ejs +0 -8
  256. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/error_header.ejs +0 -10
  257. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/footer.ejs +0 -2
  258. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/index.ejs +0 -20
  259. package/tests/fixtures/corpus/oss-repos/express/examples/hello-world/index.js +0 -15
  260. package/tests/fixtures/corpus/oss-repos/express/examples/markdown/index.js +0 -44
  261. package/tests/fixtures/corpus/oss-repos/express/examples/markdown/views/index.md +0 -4
  262. package/tests/fixtures/corpus/oss-repos/express/examples/multi-router/controllers/api_v1.js +0 -15
  263. package/tests/fixtures/corpus/oss-repos/express/examples/multi-router/controllers/api_v2.js +0 -15
  264. package/tests/fixtures/corpus/oss-repos/express/examples/multi-router/index.js +0 -18
  265. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/main/index.js +0 -5
  266. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/pet/index.js +0 -31
  267. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/pet/views/edit.ejs +0 -17
  268. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/pet/views/show.ejs +0 -15
  269. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/index.js +0 -41
  270. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/views/edit.hbs +0 -27
  271. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/views/list.hbs +0 -18
  272. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/views/show.hbs +0 -31
  273. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user-pet/index.js +0 -22
  274. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/db.js +0 -16
  275. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/index.js +0 -95
  276. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/lib/boot.js +0 -83
  277. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/public/style.css +0 -14
  278. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/views/404.ejs +0 -13
  279. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/views/5xx.ejs +0 -13
  280. package/tests/fixtures/corpus/oss-repos/express/examples/online/index.js +0 -61
  281. package/tests/fixtures/corpus/oss-repos/express/examples/params/index.js +0 -74
  282. package/tests/fixtures/corpus/oss-repos/express/examples/resource/index.js +0 -95
  283. package/tests/fixtures/corpus/oss-repos/express/examples/route-map/index.js +0 -75
  284. package/tests/fixtures/corpus/oss-repos/express/examples/route-middleware/index.js +0 -90
  285. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/index.js +0 -55
  286. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/post.js +0 -13
  287. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/public/style.css +0 -24
  288. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/site.js +0 -5
  289. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/user.js +0 -47
  290. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/footer.ejs +0 -2
  291. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/header.ejs +0 -9
  292. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/index.ejs +0 -10
  293. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/posts/index.ejs +0 -12
  294. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/users/edit.ejs +0 -23
  295. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/users/index.ejs +0 -14
  296. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/users/view.ejs +0 -9
  297. package/tests/fixtures/corpus/oss-repos/express/examples/search/index.js +0 -61
  298. package/tests/fixtures/corpus/oss-repos/express/examples/search/public/client.js +0 -15
  299. package/tests/fixtures/corpus/oss-repos/express/examples/search/public/index.html +0 -21
  300. package/tests/fixtures/corpus/oss-repos/express/examples/session/index.js +0 -37
  301. package/tests/fixtures/corpus/oss-repos/express/examples/session/redis.js +0 -39
  302. package/tests/fixtures/corpus/oss-repos/express/examples/static-files/index.js +0 -43
  303. package/tests/fixtures/corpus/oss-repos/express/examples/static-files/public/css/style.css +0 -3
  304. package/tests/fixtures/corpus/oss-repos/express/examples/static-files/public/hello.txt +0 -1
  305. package/tests/fixtures/corpus/oss-repos/express/examples/static-files/public/js/app.js +0 -1
  306. package/tests/fixtures/corpus/oss-repos/express/examples/vhost/index.js +0 -53
  307. package/tests/fixtures/corpus/oss-repos/express/examples/view-constructor/github-view.js +0 -53
  308. package/tests/fixtures/corpus/oss-repos/express/examples/view-constructor/index.js +0 -48
  309. package/tests/fixtures/corpus/oss-repos/express/examples/view-locals/index.js +0 -155
  310. package/tests/fixtures/corpus/oss-repos/express/examples/view-locals/user.js +0 -36
  311. package/tests/fixtures/corpus/oss-repos/express/examples/view-locals/views/index.ejs +0 -20
  312. package/tests/fixtures/corpus/oss-repos/express/examples/web-service/index.js +0 -117
  313. package/tests/fixtures/corpus/oss-repos/express/index.js +0 -11
  314. package/tests/fixtures/corpus/oss-repos/express/lib/application.js +0 -631
  315. package/tests/fixtures/corpus/oss-repos/express/lib/express.js +0 -81
  316. package/tests/fixtures/corpus/oss-repos/express/lib/request.js +0 -514
  317. package/tests/fixtures/corpus/oss-repos/express/lib/response.js +0 -1053
  318. package/tests/fixtures/corpus/oss-repos/express/lib/utils.js +0 -271
  319. package/tests/fixtures/corpus/oss-repos/express/lib/view.js +0 -205
  320. package/tests/fixtures/corpus/oss-repos/express/package.json +0 -99
  321. package/tests/fixtures/corpus/oss-repos/express/test/Route.js +0 -274
  322. package/tests/fixtures/corpus/oss-repos/express/test/Router.js +0 -636
  323. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/auth.js +0 -117
  324. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/content-negotiation.js +0 -49
  325. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/cookie-sessions.js +0 -38
  326. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/cookies.js +0 -71
  327. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/downloads.js +0 -47
  328. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/ejs.js +0 -17
  329. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/error-pages.js +0 -99
  330. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/error.js +0 -29
  331. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/hello-world.js +0 -21
  332. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/markdown.js +0 -21
  333. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/multi-router.js +0 -44
  334. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/mvc.js +0 -132
  335. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/params.js +0 -44
  336. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/resource.js +0 -68
  337. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/route-map.js +0 -45
  338. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/route-separation.js +0 -97
  339. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/vhost.js +0 -46
  340. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/web-service.js +0 -105
  341. package/tests/fixtures/corpus/oss-repos/express/test/app.all.js +0 -38
  342. package/tests/fixtures/corpus/oss-repos/express/test/app.engine.js +0 -83
  343. package/tests/fixtures/corpus/oss-repos/express/test/app.head.js +0 -66
  344. package/tests/fixtures/corpus/oss-repos/express/test/app.js +0 -120
  345. package/tests/fixtures/corpus/oss-repos/express/test/app.listen.js +0 -55
  346. package/tests/fixtures/corpus/oss-repos/express/test/app.locals.js +0 -26
  347. package/tests/fixtures/corpus/oss-repos/express/test/app.options.js +0 -116
  348. package/tests/fixtures/corpus/oss-repos/express/test/app.param.js +0 -323
  349. package/tests/fixtures/corpus/oss-repos/express/test/app.render.js +0 -374
  350. package/tests/fixtures/corpus/oss-repos/express/test/app.request.js +0 -143
  351. package/tests/fixtures/corpus/oss-repos/express/test/app.response.js +0 -143
  352. package/tests/fixtures/corpus/oss-repos/express/test/app.route.js +0 -197
  353. package/tests/fixtures/corpus/oss-repos/express/test/app.router.js +0 -1217
  354. package/tests/fixtures/corpus/oss-repos/express/test/app.routes.error.js +0 -62
  355. package/tests/fixtures/corpus/oss-repos/express/test/app.use.js +0 -542
  356. package/tests/fixtures/corpus/oss-repos/express/test/config.js +0 -207
  357. package/tests/fixtures/corpus/oss-repos/express/test/exports.js +0 -82
  358. package/tests/fixtures/corpus/oss-repos/express/test/express.json.js +0 -755
  359. package/tests/fixtures/corpus/oss-repos/express/test/express.raw.js +0 -513
  360. package/tests/fixtures/corpus/oss-repos/express/test/express.static.js +0 -815
  361. package/tests/fixtures/corpus/oss-repos/express/test/express.text.js +0 -566
  362. package/tests/fixtures/corpus/oss-repos/express/test/express.urlencoded.js +0 -828
  363. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/% of dogs.txt +0 -1
  364. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/.name +0 -1
  365. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/blog/index.html +0 -1
  366. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/blog/post/index.tmpl +0 -1
  367. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/broken.send +0 -0
  368. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/default_layout/name.tmpl +0 -1
  369. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/default_layout/user.tmpl +0 -1
  370. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/email.tmpl +0 -1
  371. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/empty.txt +0 -0
  372. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/local_layout/user.tmpl +0 -1
  373. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/name.tmpl +0 -1
  374. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/name.txt +0 -1
  375. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/nums.txt +0 -1
  376. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/pets/names.txt +0 -1
  377. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/snow /342/230/203/.gitkeep +0 -0
  378. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/todo.html +0 -1
  379. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/todo.txt +0 -1
  380. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/user.html +0 -1
  381. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/user.tmpl +0 -1
  382. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/users/index.html +0 -1
  383. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/users/tobi.txt +0 -1
  384. package/tests/fixtures/corpus/oss-repos/express/test/middleware.basic.js +0 -42
  385. package/tests/fixtures/corpus/oss-repos/express/test/regression.js +0 -20
  386. package/tests/fixtures/corpus/oss-repos/express/test/req.accepts.js +0 -125
  387. package/tests/fixtures/corpus/oss-repos/express/test/req.acceptsCharsets.js +0 -50
  388. package/tests/fixtures/corpus/oss-repos/express/test/req.acceptsEncodings.js +0 -39
  389. package/tests/fixtures/corpus/oss-repos/express/test/req.acceptsLanguages.js +0 -57
  390. package/tests/fixtures/corpus/oss-repos/express/test/req.baseUrl.js +0 -88
  391. package/tests/fixtures/corpus/oss-repos/express/test/req.fresh.js +0 -70
  392. package/tests/fixtures/corpus/oss-repos/express/test/req.get.js +0 -60
  393. package/tests/fixtures/corpus/oss-repos/express/test/req.host.js +0 -156
  394. package/tests/fixtures/corpus/oss-repos/express/test/req.hostname.js +0 -188
  395. package/tests/fixtures/corpus/oss-repos/express/test/req.ip.js +0 -113
  396. package/tests/fixtures/corpus/oss-repos/express/test/req.ips.js +0 -71
  397. package/tests/fixtures/corpus/oss-repos/express/test/req.is.js +0 -169
  398. package/tests/fixtures/corpus/oss-repos/express/test/req.path.js +0 -20
  399. package/tests/fixtures/corpus/oss-repos/express/test/req.protocol.js +0 -113
  400. package/tests/fixtures/corpus/oss-repos/express/test/req.query.js +0 -106
  401. package/tests/fixtures/corpus/oss-repos/express/test/req.range.js +0 -104
  402. package/tests/fixtures/corpus/oss-repos/express/test/req.route.js +0 -28
  403. package/tests/fixtures/corpus/oss-repos/express/test/req.secure.js +0 -101
  404. package/tests/fixtures/corpus/oss-repos/express/test/req.signedCookies.js +0 -37
  405. package/tests/fixtures/corpus/oss-repos/express/test/req.stale.js +0 -50
  406. package/tests/fixtures/corpus/oss-repos/express/test/req.subdomains.js +0 -173
  407. package/tests/fixtures/corpus/oss-repos/express/test/req.xhr.js +0 -42
  408. package/tests/fixtures/corpus/oss-repos/express/test/res.append.js +0 -116
  409. package/tests/fixtures/corpus/oss-repos/express/test/res.attachment.js +0 -79
  410. package/tests/fixtures/corpus/oss-repos/express/test/res.clearCookie.js +0 -62
  411. package/tests/fixtures/corpus/oss-repos/express/test/res.cookie.js +0 -295
  412. package/tests/fixtures/corpus/oss-repos/express/test/res.download.js +0 -487
  413. package/tests/fixtures/corpus/oss-repos/express/test/res.format.js +0 -248
  414. package/tests/fixtures/corpus/oss-repos/express/test/res.get.js +0 -21
  415. package/tests/fixtures/corpus/oss-repos/express/test/res.json.js +0 -186
  416. package/tests/fixtures/corpus/oss-repos/express/test/res.jsonp.js +0 -344
  417. package/tests/fixtures/corpus/oss-repos/express/test/res.links.js +0 -65
  418. package/tests/fixtures/corpus/oss-repos/express/test/res.locals.js +0 -40
  419. package/tests/fixtures/corpus/oss-repos/express/test/res.location.js +0 -316
  420. package/tests/fixtures/corpus/oss-repos/express/test/res.redirect.js +0 -214
  421. package/tests/fixtures/corpus/oss-repos/express/test/res.render.js +0 -367
  422. package/tests/fixtures/corpus/oss-repos/express/test/res.send.js +0 -569
  423. package/tests/fixtures/corpus/oss-repos/express/test/res.sendFile.js +0 -913
  424. package/tests/fixtures/corpus/oss-repos/express/test/res.sendStatus.js +0 -44
  425. package/tests/fixtures/corpus/oss-repos/express/test/res.set.js +0 -124
  426. package/tests/fixtures/corpus/oss-repos/express/test/res.status.js +0 -206
  427. package/tests/fixtures/corpus/oss-repos/express/test/res.type.js +0 -46
  428. package/tests/fixtures/corpus/oss-repos/express/test/res.vary.js +0 -90
  429. package/tests/fixtures/corpus/oss-repos/express/test/support/env.js +0 -3
  430. package/tests/fixtures/corpus/oss-repos/express/test/support/tmpl.js +0 -36
  431. package/tests/fixtures/corpus/oss-repos/express/test/support/utils.js +0 -86
  432. package/tests/fixtures/corpus/oss-repos/express/test/utils.js +0 -83
  433. package/tests/fixtures/corpus/oss-repos/hono/.devcontainer/Dockerfile +0 -11
  434. package/tests/fixtures/corpus/oss-repos/hono/.devcontainer/devcontainer.json +0 -21
  435. package/tests/fixtures/corpus/oss-repos/hono/.devcontainer/docker-compose.yml +0 -18
  436. package/tests/fixtures/corpus/oss-repos/hono/.eslintignore +0 -1
  437. package/tests/fixtures/corpus/oss-repos/hono/.eslintrc.cjs +0 -9
  438. package/tests/fixtures/corpus/oss-repos/hono/.gitpod.yml +0 -9
  439. package/tests/fixtures/corpus/oss-repos/hono/.prettierrc +0 -9
  440. package/tests/fixtures/corpus/oss-repos/hono/.vitest.config/jsx-runtime-default.ts +0 -15
  441. package/tests/fixtures/corpus/oss-repos/hono/.vitest.config/jsx-runtime-dom.ts +0 -15
  442. package/tests/fixtures/corpus/oss-repos/hono/.vitest.config/setup-vitest.ts +0 -47
  443. package/tests/fixtures/corpus/oss-repos/hono/LICENSE +0 -21
  444. package/tests/fixtures/corpus/oss-repos/hono/README.md +0 -91
  445. package/tests/fixtures/corpus/oss-repos/hono/build.ts +0 -80
  446. package/tests/fixtures/corpus/oss-repos/hono/bun.lockb +0 -0
  447. package/tests/fixtures/corpus/oss-repos/hono/bunfig.toml +0 -7
  448. package/tests/fixtures/corpus/oss-repos/hono/codecov.yml +0 -13
  449. package/tests/fixtures/corpus/oss-repos/hono/docs/CODE_OF_CONDUCT.md +0 -128
  450. package/tests/fixtures/corpus/oss-repos/hono/docs/CONTRIBUTING.md +0 -62
  451. package/tests/fixtures/corpus/oss-repos/hono/docs/MIGRATION.md +0 -295
  452. package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-logo.png +0 -0
  453. package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-logo.pxm +0 -0
  454. package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-logo.svg +0 -6
  455. package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-title.png +0 -0
  456. package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-title.pxm +0 -0
  457. package/tests/fixtures/corpus/oss-repos/hono/jsr.json +0 -119
  458. package/tests/fixtures/corpus/oss-repos/hono/package.cjs.json +0 -3
  459. package/tests/fixtures/corpus/oss-repos/hono/package.json +0 -650
  460. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/aws-lambda/handler.ts +0 -492
  461. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/aws-lambda/index.ts +0 -13
  462. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/aws-lambda/types.ts +0 -144
  463. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/conninfo.ts +0 -28
  464. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/index.ts +0 -9
  465. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/serve-static.ts +0 -35
  466. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/server.ts +0 -30
  467. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/ssg.ts +0 -27
  468. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/websocket.ts +0 -110
  469. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-pages/handler.ts +0 -120
  470. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-pages/index.ts +0 -7
  471. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/conninfo.ts +0 -7
  472. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/index.ts +0 -8
  473. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/serve-static-module.ts +0 -12
  474. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/serve-static.ts +0 -39
  475. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/utils.ts +0 -50
  476. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/websocket.ts +0 -50
  477. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/conninfo.ts +0 -17
  478. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/deno.d.ts +0 -28
  479. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/index.ts +0 -9
  480. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/serve-static.ts +0 -40
  481. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/ssg.ts +0 -27
  482. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/websocket.ts +0 -51
  483. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/lambda-edge/conninfo.ts +0 -15
  484. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/lambda-edge/handler.ts +0 -189
  485. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/lambda-edge/index.ts +0 -14
  486. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/netlify/handler.ts +0 -10
  487. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/netlify/index.ts +0 -6
  488. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/netlify/mod.ts +0 -1
  489. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/service-worker/handler.ts +0 -34
  490. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/service-worker/index.ts +0 -5
  491. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/service-worker/types.ts +0 -14
  492. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/vercel/conninfo.ts +0 -8
  493. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/vercel/handler.ts +0 -9
  494. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/vercel/index.ts +0 -7
  495. package/tests/fixtures/corpus/oss-repos/hono/src/client/client.ts +0 -214
  496. package/tests/fixtures/corpus/oss-repos/hono/src/client/index.ts +0 -14
  497. package/tests/fixtures/corpus/oss-repos/hono/src/client/types.ts +0 -182
  498. package/tests/fixtures/corpus/oss-repos/hono/src/client/utils.ts +0 -54
  499. package/tests/fixtures/corpus/oss-repos/hono/src/compose.ts +0 -94
  500. package/tests/fixtures/corpus/oss-repos/hono/src/context.ts +0 -917
  501. package/tests/fixtures/corpus/oss-repos/hono/src/helper/accepts/accepts.ts +0 -84
  502. package/tests/fixtures/corpus/oss-repos/hono/src/helper/accepts/index.ts +0 -6
  503. package/tests/fixtures/corpus/oss-repos/hono/src/helper/adapter/index.ts +0 -85
  504. package/tests/fixtures/corpus/oss-repos/hono/src/helper/conninfo/index.ts +0 -6
  505. package/tests/fixtures/corpus/oss-repos/hono/src/helper/conninfo/types.ts +0 -45
  506. package/tests/fixtures/corpus/oss-repos/hono/src/helper/cookie/index.ts +0 -130
  507. package/tests/fixtures/corpus/oss-repos/hono/src/helper/css/common.ts +0 -243
  508. package/tests/fixtures/corpus/oss-repos/hono/src/helper/css/index.ts +0 -220
  509. package/tests/fixtures/corpus/oss-repos/hono/src/helper/dev/index.ts +0 -79
  510. package/tests/fixtures/corpus/oss-repos/hono/src/helper/factory/index.ts +0 -246
  511. package/tests/fixtures/corpus/oss-repos/hono/src/helper/html/index.ts +0 -56
  512. package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/index.ts +0 -13
  513. package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/middleware.ts +0 -79
  514. package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/ssg.ts +0 -388
  515. package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/utils.ts +0 -71
  516. package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/index.ts +0 -9
  517. package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/sse.ts +0 -89
  518. package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/stream.ts +0 -36
  519. package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/text.ts +0 -15
  520. package/tests/fixtures/corpus/oss-repos/hono/src/helper/testing/index.ts +0 -26
  521. package/tests/fixtures/corpus/oss-repos/hono/src/helper/websocket/index.ts +0 -57
  522. package/tests/fixtures/corpus/oss-repos/hono/src/hono-base.ts +0 -523
  523. package/tests/fixtures/corpus/oss-repos/hono/src/hono.ts +0 -34
  524. package/tests/fixtures/corpus/oss-repos/hono/src/http-exception.ts +0 -78
  525. package/tests/fixtures/corpus/oss-repos/hono/src/index.ts +0 -51
  526. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/base.ts +0 -419
  527. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/children.ts +0 -20
  528. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/components.ts +0 -195
  529. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/constants.ts +0 -5
  530. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/context.ts +0 -50
  531. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/client.ts +0 -89
  532. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/components.ts +0 -39
  533. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/context.ts +0 -52
  534. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/css.ts +0 -246
  535. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/hooks/index.ts +0 -91
  536. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/index.ts +0 -159
  537. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/intrinsic-element/components.ts +0 -398
  538. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/jsx-dev-runtime.ts +0 -22
  539. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/jsx-runtime.ts +0 -7
  540. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/render.ts +0 -772
  541. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/server.ts +0 -70
  542. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/utils.ts +0 -7
  543. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/hooks/index.ts +0 -426
  544. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/index.ts +0 -114
  545. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/intrinsic-element/common.ts +0 -11
  546. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/intrinsic-element/components.ts +0 -196
  547. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/intrinsic-elements.ts +0 -924
  548. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/jsx-dev-runtime.ts +0 -26
  549. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/jsx-runtime.ts +0 -18
  550. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/streaming.ts +0 -184
  551. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/types.ts +0 -41
  552. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/utils.ts +0 -36
  553. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/basic-auth/index.ts +0 -128
  554. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/bearer-auth/index.ts +0 -159
  555. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/body-limit/index.ts +0 -115
  556. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/cache/index.ts +0 -127
  557. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/combine/index.ts +0 -153
  558. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/compress/index.ts +0 -79
  559. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/context-storage/index.ts +0 -55
  560. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/cors/index.ts +0 -141
  561. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/csrf/index.ts +0 -90
  562. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/etag/index.ts +0 -88
  563. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/ip-restriction/index.ts +0 -178
  564. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/jsx-renderer/index.ts +0 -158
  565. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/jwt/index.ts +0 -8
  566. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/jwt/jwt.ts +0 -159
  567. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/logger/index.ts +0 -93
  568. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/method-override/index.ts +0 -146
  569. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/powered-by/index.ts +0 -13
  570. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/pretty-json/index.ts +0 -50
  571. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/request-id/index.ts +0 -8
  572. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/request-id/request-id.ts +0 -59
  573. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/secure-headers/index.ts +0 -8
  574. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/secure-headers/permissions-policy.ts +0 -86
  575. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/secure-headers/secure-headers.ts +0 -319
  576. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/serve-static/index.ts +0 -140
  577. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/timeout/index.ts +0 -58
  578. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/timing/index.ts +0 -7
  579. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/timing/timing.ts +0 -225
  580. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/trailing-slash/index.ts +0 -71
  581. package/tests/fixtures/corpus/oss-repos/hono/src/preset/quick.ts +0 -24
  582. package/tests/fixtures/corpus/oss-repos/hono/src/preset/tiny.ts +0 -20
  583. package/tests/fixtures/corpus/oss-repos/hono/src/request.ts +0 -403
  584. package/tests/fixtures/corpus/oss-repos/hono/src/router/linear-router/index.ts +0 -6
  585. package/tests/fixtures/corpus/oss-repos/hono/src/router/linear-router/router.ts +0 -132
  586. package/tests/fixtures/corpus/oss-repos/hono/src/router/pattern-router/index.ts +0 -6
  587. package/tests/fixtures/corpus/oss-repos/hono/src/router/pattern-router/router.ts +0 -54
  588. package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/index.ts +0 -6
  589. package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/node.ts +0 -159
  590. package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/router.ts +0 -274
  591. package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/trie.ts +0 -74
  592. package/tests/fixtures/corpus/oss-repos/hono/src/router/smart-router/index.ts +0 -6
  593. package/tests/fixtures/corpus/oss-repos/hono/src/router/smart-router/router.ts +0 -69
  594. package/tests/fixtures/corpus/oss-repos/hono/src/router/trie-router/index.ts +0 -6
  595. package/tests/fixtures/corpus/oss-repos/hono/src/router/trie-router/node.ts +0 -205
  596. package/tests/fixtures/corpus/oss-repos/hono/src/router/trie-router/router.ts +0 -28
  597. package/tests/fixtures/corpus/oss-repos/hono/src/router.ts +0 -103
  598. package/tests/fixtures/corpus/oss-repos/hono/src/types.ts +0 -2006
  599. package/tests/fixtures/corpus/oss-repos/hono/src/utils/basic-auth.ts +0 -26
  600. package/tests/fixtures/corpus/oss-repos/hono/src/utils/body.ts +0 -225
  601. package/tests/fixtures/corpus/oss-repos/hono/src/utils/buffer.ts +0 -65
  602. package/tests/fixtures/corpus/oss-repos/hono/src/utils/color.ts +0 -26
  603. package/tests/fixtures/corpus/oss-repos/hono/src/utils/concurrent.ts +0 -55
  604. package/tests/fixtures/corpus/oss-repos/hono/src/utils/cookie.ts +0 -230
  605. package/tests/fixtures/corpus/oss-repos/hono/src/utils/crypto.ts +0 -65
  606. package/tests/fixtures/corpus/oss-repos/hono/src/utils/encode.ts +0 -34
  607. package/tests/fixtures/corpus/oss-repos/hono/src/utils/filepath.ts +0 -56
  608. package/tests/fixtures/corpus/oss-repos/hono/src/utils/handler.ts +0 -15
  609. package/tests/fixtures/corpus/oss-repos/hono/src/utils/html.ts +0 -182
  610. package/tests/fixtures/corpus/oss-repos/hono/src/utils/http-status.ts +0 -69
  611. package/tests/fixtures/corpus/oss-repos/hono/src/utils/ipaddr.ts +0 -113
  612. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/index.ts +0 -7
  613. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/jwa.ts +0 -23
  614. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/jws.ts +0 -226
  615. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/jwt.ts +0 -114
  616. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/types.ts +0 -83
  617. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/utf8.ts +0 -7
  618. package/tests/fixtures/corpus/oss-repos/hono/src/utils/mime.ts +0 -142
  619. package/tests/fixtures/corpus/oss-repos/hono/src/utils/stream.ts +0 -96
  620. package/tests/fixtures/corpus/oss-repos/hono/src/utils/types.ts +0 -102
  621. package/tests/fixtures/corpus/oss-repos/hono/src/utils/url.ts +0 -310
  622. package/tests/fixtures/corpus/oss-repos/hono/src/validator/index.ts +0 -7
  623. package/tests/fixtures/corpus/oss-repos/hono/src/validator/validator.ts +0 -151
  624. package/tests/fixtures/corpus/oss-repos/hono/tsconfig.build.json +0 -23
  625. package/tests/fixtures/corpus/oss-repos/hono/tsconfig.json +0 -28
  626. package/tests/fixtures/corpus/oss-repos/hono/vitest.config.ts +0 -34
  627. package/tests/fixtures/corpus/oss-repos/hono/yarn.lock +0 -6232
  628. package/tests/fixtures/documentation/api-reference.md +0 -412
  629. package/tests/fixtures/documentation/architecture.md +0 -214
  630. package/tests/fixtures/documentation/deployment-guide.md +0 -420
  631. package/tests/fixtures/github-readmes/express.md +0 -133
  632. package/tests/fixtures/github-readmes/nextjs.md +0 -106
  633. package/tests/fixtures/github-readmes/react.md +0 -74
  634. package/tests/fixtures/github-readmes/typescript.md +0 -93
  635. package/tests/fixtures/github-readmes/vite.md +0 -79
  636. package/tests/fixtures/queries/core.json +0 -125
  637. package/tests/fixtures/queries/extended.json +0 -427
  638. package/tests/fixtures/queries/generated/.gitkeep +0 -0
  639. package/tests/fixtures/test-server.ts +0 -268
  640. package/tests/helpers/performance-metrics.ts +0 -370
  641. package/tests/helpers/search-relevance.ts +0 -326
  642. package/tests/integration/cli-consistency.test.ts +0 -298
  643. package/tests/integration/cli.test.ts +0 -69
  644. package/tests/integration/e2e-workflow.test.ts +0 -614
  645. package/tests/integration/mcp.test.ts +0 -250
  646. package/tests/integration/python-bridge.test.ts +0 -193
  647. package/tests/integration/search-quality.test.ts +0 -720
  648. package/tests/integration/serve.test.ts +0 -260
  649. package/tests/integration/stress.test.ts +0 -326
  650. package/tests/mcp/server.test.ts +0 -15
  651. package/tests/scripts/schemas/evaluation.json +0 -44
  652. package/tests/scripts/schemas/query-generation.json +0 -21
  653. package/tests/services/code-unit.service.test.ts +0 -95
  654. package/tests/services/job.service.test.ts +0 -124
  655. package/tests/services/search.progressive-context.test.ts +0 -35
  656. package/tsconfig.json +0 -34
  657. package/tsup.config.ts +0 -15
  658. package/turndown-plugin-gfm.d.ts +0 -29
  659. package/vitest.config.ts +0 -90
@@ -1,720 +0,0 @@
1
- /**
2
- * Search Quality Integration Tests
3
- *
4
- * Tests search result quality, relevance, and modes:
5
- * - Semantic relevance validation
6
- * - Search mode comparison (vector, FTS, hybrid)
7
- * - Relevance scoring accuracy
8
- * - Threshold filtering
9
- * - Query variations
10
- * - Edge cases
11
- *
12
- * REWRITTEN: Now uses SearchService API directly instead of CLI to avoid hanging issues.
13
- */
14
-
15
- import { describe, it, expect, beforeAll, afterAll } from 'vitest';
16
- import { rm, mkdtemp, mkdir, writeFile } from 'node:fs/promises';
17
- import { tmpdir } from 'node:os';
18
- import { join } from 'node:path';
19
- import {
20
- assertHasMatch,
21
- assertTopResultsMatch,
22
- assertProperOrdering,
23
- assertMinimumScores,
24
- calculateRelevanceMetrics,
25
- compareRelevance,
26
- CommonKeywords,
27
- type SearchResult as TestSearchResult,
28
- } from '../helpers/search-relevance.js';
29
- import { StoreService } from '../../src/services/store.service.js';
30
- import { IndexService } from '../../src/services/index.service.js';
31
- import { SearchService } from '../../src/services/search.service.js';
32
- import { LanceStore } from '../../src/db/lance.js';
33
- import { EmbeddingEngine } from '../../src/db/embeddings.js';
34
- import type { SearchResult as APISearchResult } from '../../src/types/search.js';
35
- import type { StoreId } from '../../src/types/brands.js';
36
-
37
- /**
38
- * Adapter to convert API SearchResult[] to test helper format.
39
- * API results don't have rank (position), so we add it based on array order.
40
- */
41
- function adaptApiResults(apiResults: readonly APISearchResult[]): TestSearchResult[] {
42
- return apiResults.map((result, index) => ({
43
- rank: index + 1, // 1-based ranking
44
- score: result.score,
45
- source: result.metadata.path ?? result.metadata.url ?? 'unknown',
46
- content: result.content,
47
- }));
48
- }
49
-
50
- describe('Search Quality Tests', () => {
51
- let tempDir: string;
52
- let fixturesDir: string;
53
- let storeService: StoreService;
54
- let indexService: IndexService;
55
- let searchService: SearchService;
56
- let lanceStore: LanceStore;
57
- let embeddingEngine: EmbeddingEngine;
58
- let storeId: StoreId;
59
-
60
- beforeAll(async () => {
61
- tempDir = await mkdtemp(join(tmpdir(), 'search-quality-test-'));
62
- fixturesDir = join(tempDir, 'fixtures');
63
-
64
- // Initialize services
65
- const dataDir = tempDir;
66
- lanceStore = new LanceStore(dataDir);
67
- embeddingEngine = new EmbeddingEngine();
68
- await embeddingEngine.initialize();
69
-
70
- storeService = new StoreService(dataDir);
71
- await storeService.initialize(); // Must initialize StoreService!
72
-
73
- indexService = new IndexService(lanceStore, embeddingEngine);
74
- searchService = new SearchService(lanceStore, embeddingEngine);
75
-
76
- // Create minimal test fixtures directly (no complex fixture loader)
77
- await mkdir(fixturesDir, { recursive: true });
78
-
79
- // Minimal auth file with JWT authentication keywords
80
- await writeFile(
81
- join(fixturesDir, 'jwt-auth.ts'),
82
- `/**
83
- * JWT Authentication Module
84
- * Handles user authentication with JWT tokens
85
- */
86
- export interface JwtPayload {
87
- userId: string;
88
- email: string;
89
- exp: number;
90
- }
91
-
92
- export class AuthService {
93
- /**
94
- * Authenticate user and generate JWT token
95
- */
96
- async authenticate(username: string, password: string): Promise<string> {
97
- // Verify credentials
98
- const user = await this.verifyCredentials(username, password);
99
-
100
- // Generate JWT access token
101
- return this.generateToken(user);
102
- }
103
-
104
- private generateToken(user: User): string {
105
- const payload: JwtPayload = {
106
- userId: user.id,
107
- email: user.email,
108
- exp: Date.now() + 3600000,
109
- };
110
- return jwt.sign(payload, process.env.JWT_SECRET);
111
- }
112
-
113
- /**
114
- * Verify JWT token and extract payload
115
- */
116
- verifyAccessToken(token: string): JwtPayload {
117
- return jwt.verify(token, process.env.JWT_SECRET);
118
- }
119
- }
120
- `
121
- );
122
-
123
- // Minimal OAuth file
124
- await writeFile(
125
- join(fixturesDir, 'oauth-flow.ts'),
126
- `/**
127
- * OAuth Flow Implementation
128
- * Third party login with social providers
129
- */
130
- export class OAuthProvider {
131
- async authorizeUser(provider: string): Promise<string> {
132
- // OAuth authorization flow
133
- const authUrl = \`https://\${provider}.com/oauth/authorize\`;
134
- return authUrl;
135
- }
136
-
137
- async handleCallback(code: string): Promise<User> {
138
- // Exchange authorization code for access token
139
- const token = await this.exchangeCode(code);
140
- return this.getUserProfile(token);
141
- }
142
- }
143
- `
144
- );
145
-
146
- // Minimal API error handling file
147
- await writeFile(
148
- join(fixturesDir, 'error-handler.ts'),
149
- `/**
150
- * API Error Handling
151
- * Manages exception responses and HTTP status codes
152
- */
153
- export class ErrorHandler {
154
- handleError(error: Error, req: Request, res: Response) {
155
- // Error handling and exception management
156
- if (error instanceof AuthError) {
157
- return res.status(401).json({
158
- status: 'error',
159
- message: 'Unauthorized',
160
- });
161
- }
162
-
163
- if (error instanceof ValidationError) {
164
- return res.status(400).json({
165
- status: 'error',
166
- message: error.message,
167
- });
168
- }
169
-
170
- // HTTP 403 forbidden
171
- if (error instanceof ForbiddenError) {
172
- return res.status(403).json({
173
- status: 'error',
174
- message: 'Forbidden',
175
- });
176
- }
177
-
178
- // Catch all errors
179
- return res.status(500).json({
180
- status: 'error',
181
- message: 'Internal Server Error',
182
- });
183
- }
184
- }
185
- `
186
- );
187
-
188
- // Minimal database file
189
- await writeFile(
190
- join(fixturesDir, 'database.ts'),
191
- `/**
192
- * Database Module
193
- * Data persistence and storage operations
194
- */
195
- export class DatabaseService {
196
- /**
197
- * Execute SQL query for data persistence
198
- */
199
- async query(sql: string, params?: unknown[]): Promise<QueryResult> {
200
- // Database query execution
201
- const connection = await this.getConnection();
202
- return connection.execute(sql, params);
203
- }
204
-
205
- /**
206
- * Store data in database
207
- */
208
- async save(table: string, data: Record<string, unknown>): Promise<void> {
209
- // Data persistence layer
210
- await this.query(\`INSERT INTO \${table} VALUES (?)\`, [data]);
211
- }
212
- }
213
- `
214
- );
215
-
216
- // Minimal middleware file
217
- await writeFile(
218
- join(fixturesDir, 'auth-middleware.ts'),
219
- `/**
220
- * Authentication Middleware
221
- * Protects API endpoints from unauthorized access
222
- */
223
- export function authMiddleware(req: Request, res: Response, next: Next) {
224
- const token = req.headers.authorization?.replace('Bearer ', '');
225
-
226
- if (!token) {
227
- return res.status(401).json({ error: 'Unauthorized' });
228
- }
229
-
230
- try {
231
- const payload = verifyAccessToken(token);
232
- req.user = payload;
233
- next();
234
- } catch (error) {
235
- return res.status(403).json({ error: 'Forbidden' });
236
- }
237
- }
238
- `
239
- );
240
-
241
- // Create and index store using API
242
- const storeResult = await storeService.create({
243
- name: 'quality-store',
244
- type: 'file',
245
- path: fixturesDir,
246
- });
247
-
248
- if (!storeResult.success) {
249
- throw storeResult.error;
250
- }
251
-
252
- const store = storeResult.data;
253
- storeId = store.id;
254
-
255
- // Initialize Lance table for this store
256
- await lanceStore.initialize(storeId);
257
-
258
- // Index the store (minimal fixtures should be very fast)
259
- const indexResult = await indexService.indexStore(store);
260
-
261
- if (!indexResult.success) {
262
- throw indexResult.error;
263
- }
264
- }, 30000); // Reduced timeout - minimal fixtures should index in ~5-10 seconds
265
-
266
- afterAll(async () => {
267
- await rm(tempDir, { recursive: true, force: true });
268
- });
269
-
270
- describe('Semantic Relevance', () => {
271
- it('finds auth code when searching for "user authentication"', async () => {
272
- const response = await searchService.search({
273
- query: 'user authentication login',
274
- stores: [storeId],
275
- });
276
- const results = adaptApiResults(response.results);
277
-
278
- expect(results.length).toBeGreaterThan(0);
279
- assertHasMatch(results, {
280
- keywords: CommonKeywords.AUTHENTICATION,
281
- });
282
- });
283
-
284
- it('finds JWT code when searching for "token generation"', async () => {
285
- const response = await searchService.search({
286
- query: 'token generation verification',
287
- stores: [storeId],
288
- });
289
- const results = adaptApiResults(response.results);
290
-
291
- expect(results.length).toBeGreaterThan(0);
292
- assertHasMatch(results, {
293
- keywords: ['token', 'jwt', 'generate', 'verify'],
294
- sourceContains: 'jwt',
295
- });
296
- });
297
-
298
- it('finds error handling when searching for "exception management"', async () => {
299
- const response = await searchService.search({
300
- query: 'exception management error responses',
301
- stores: [storeId],
302
- });
303
- const results = adaptApiResults(response.results);
304
-
305
- expect(results.length).toBeGreaterThan(0);
306
- assertHasMatch(results, {
307
- keywords: CommonKeywords.ERROR_HANDLING,
308
- });
309
- });
310
-
311
- it('finds database code when searching for "data persistence"', async () => {
312
- const response = await searchService.search({
313
- query: 'data persistence storage',
314
- stores: [storeId],
315
- });
316
- const results = adaptApiResults(response.results);
317
-
318
- expect(results.length).toBeGreaterThan(0);
319
- assertHasMatch(results, {
320
- keywords: CommonKeywords.DATABASE,
321
- });
322
- });
323
-
324
- it('finds OAuth when searching for "third party login"', async () => {
325
- const response = await searchService.search({
326
- query: 'third party login social auth',
327
- stores: [storeId],
328
- });
329
- const results = adaptApiResults(response.results);
330
-
331
- expect(results.length).toBeGreaterThan(0);
332
- assertHasMatch(results, {
333
- keywords: ['oauth', 'authorization', 'provider'],
334
- });
335
- });
336
- });
337
-
338
- describe('Search Mode Comparison', () => {
339
- it('vector search finds semantically related content', async () => {
340
- const response = await searchService.search({
341
- query: 'authentication security',
342
- mode: 'vector',
343
- stores: [storeId],
344
- });
345
- const results = adaptApiResults(response.results);
346
-
347
- expect(results.length).toBeGreaterThan(0);
348
- // Vector search should find auth-related code
349
- assertHasMatch(results, {
350
- keywords: ['auth', 'token', 'jwt', 'login', 'password', 'credential'],
351
- });
352
- });
353
-
354
- it('hybrid search finds keyword matches', async () => {
355
- const response = await searchService.search({
356
- query: 'token authentication',
357
- mode: 'hybrid',
358
- stores: [storeId],
359
- });
360
- const results = adaptApiResults(response.results);
361
-
362
- expect(results.length).toBeGreaterThan(0);
363
- // Hybrid should find token-related content
364
- assertHasMatch(results, {
365
- keywords: ['token', 'auth'],
366
- });
367
- });
368
-
369
- it('hybrid search combines both approaches', async () => {
370
- const response = await searchService.search({
371
- query: 'JWT authentication middleware',
372
- mode: 'hybrid',
373
- stores: [storeId],
374
- });
375
- const results = adaptApiResults(response.results);
376
-
377
- expect(results.length).toBeGreaterThan(0);
378
- assertHasMatch(results, {
379
- keywords: ['jwt', 'auth', 'middleware'],
380
- });
381
- });
382
-
383
- it('hybrid finds content with common terms', async () => {
384
- const response = await searchService.search({
385
- query: 'error response status',
386
- mode: 'hybrid',
387
- stores: [storeId],
388
- });
389
- const results = adaptApiResults(response.results);
390
-
391
- expect(results.length).toBeGreaterThan(0);
392
- assertHasMatch(results, {
393
- keywords: ['error', 'response', 'status'],
394
- });
395
- });
396
-
397
- it('search finds auth content with natural language', async () => {
398
- const response = await searchService.search({
399
- query: 'how to protect API endpoints from unauthorized access',
400
- stores: [storeId],
401
- });
402
- const results = adaptApiResults(response.results);
403
-
404
- // Should find auth/api-related code
405
- expect(results.length).toBeGreaterThan(0);
406
- assertHasMatch(results, {
407
- keywords: [...CommonKeywords.AUTHENTICATION, ...CommonKeywords.API, 'error', 'forbidden'],
408
- });
409
- });
410
- });
411
-
412
- describe('Relevance Scoring', () => {
413
- it('results are ordered by score descending', async () => {
414
- const response = await searchService.search({
415
- query: 'authentication token',
416
- stores: [storeId],
417
- });
418
- const results = adaptApiResults(response.results);
419
-
420
- expect(results.length).toBeGreaterThan(1);
421
- assertProperOrdering(results);
422
- });
423
-
424
- it('exact matches have higher scores', async () => {
425
- const response = await searchService.search({
426
- query: 'JWT Authentication Module',
427
- stores: [storeId],
428
- });
429
- const results = adaptApiResults(response.results);
430
-
431
- expect(results.length).toBeGreaterThan(0);
432
- // The file containing exact match should rank high
433
- assertHasMatch(results, {
434
- keywords: ['jwt', 'authentication', 'module'],
435
- maxRank: 3,
436
- });
437
- });
438
-
439
- it('source file matches boost relevance', async () => {
440
- const response = await searchService.search({
441
- query: 'OAuth flow implementation',
442
- stores: [storeId],
443
- });
444
- const results = adaptApiResults(response.results);
445
-
446
- expect(results.length).toBeGreaterThan(0);
447
- // oauth-flow.ts should be in top results
448
- assertHasMatch(results, {
449
- sourceContains: 'oauth',
450
- maxRank: 3,
451
- });
452
- });
453
- });
454
-
455
- describe('Threshold Filtering', () => {
456
- it('high threshold returns fewer results', async () => {
457
- const lowResponse = await searchService.search({
458
- query: 'authentication',
459
- threshold: 0.3,
460
- stores: [storeId],
461
- });
462
- const highResponse = await searchService.search({
463
- query: 'authentication',
464
- threshold: 0.7,
465
- stores: [storeId],
466
- });
467
-
468
- const lowResults = adaptApiResults(lowResponse.results);
469
- const highResults = adaptApiResults(highResponse.results);
470
-
471
- // High threshold should return fewer or equal results
472
- expect(highResults.length).toBeLessThanOrEqual(lowResults.length);
473
- });
474
-
475
- it('threshold 0.8 filters out low relevance matches', async () => {
476
- const response = await searchService.search({
477
- query: 'middleware',
478
- threshold: 0.8,
479
- stores: [storeId],
480
- });
481
- const results = adaptApiResults(response.results);
482
-
483
- // All results should meet the threshold
484
- if (results.length > 0) {
485
- assertMinimumScores(results, 0.8);
486
- }
487
- });
488
-
489
- it('lower threshold includes more results', async () => {
490
- const response = await searchService.search({
491
- query: 'error handling',
492
- stores: [storeId],
493
- });
494
- const results = adaptApiResults(response.results);
495
-
496
- // Should find error handling content
497
- expect(results.length).toBeGreaterThan(0);
498
- assertHasMatch(results, {
499
- keywords: ['error', 'handling', 'exception', 'catch'],
500
- });
501
- });
502
- });
503
-
504
- describe('Query Variations', () => {
505
- it('different phrasings find same authentication content', async () => {
506
- const queries = [
507
- 'user login authentication',
508
- 'authenticate users securely',
509
- 'login system implementation',
510
- 'user auth flow',
511
- ];
512
-
513
- for (const query of queries) {
514
- const response = await searchService.search({
515
- query,
516
- stores: [storeId],
517
- });
518
- const results = adaptApiResults(response.results);
519
-
520
- expect(results.length).toBeGreaterThan(0);
521
- assertHasMatch(results, {
522
- keywords: CommonKeywords.AUTHENTICATION,
523
- });
524
- }
525
- });
526
-
527
- it('singular and plural forms find same content', async () => {
528
- const singularResponse = await searchService.search({
529
- query: 'error handler',
530
- stores: [storeId],
531
- });
532
- const pluralResponse = await searchService.search({
533
- query: 'error handlers',
534
- stores: [storeId],
535
- });
536
-
537
- const singularResults = adaptApiResults(singularResponse.results);
538
- const pluralResults = adaptApiResults(pluralResponse.results);
539
-
540
- // Both should find error handling content
541
- expect(singularResults.length).toBeGreaterThan(0);
542
- expect(pluralResults.length).toBeGreaterThan(0);
543
-
544
- assertHasMatch(singularResults, { keywords: ['error'] });
545
- assertHasMatch(pluralResults, { keywords: ['error'] });
546
- });
547
-
548
- it('abbreviations find full terms', async () => {
549
- const response = await searchService.search({
550
- query: 'auth middleware JWT',
551
- stores: [storeId],
552
- });
553
- const results = adaptApiResults(response.results);
554
-
555
- expect(results.length).toBeGreaterThan(0);
556
- assertHasMatch(results, {
557
- keywords: ['authentication', 'jwt', 'middleware'],
558
- });
559
- });
560
- });
561
-
562
- describe('Edge Cases', () => {
563
- it('handles queries with no results gracefully', async () => {
564
- // Semantic search may return results even for nonsense queries (nearest neighbors)
565
- // With normalized scores, threshold filtering applies to relative scores
566
- const response = await searchService.search({
567
- query: 'xyznonexistent123',
568
- threshold: 0.9,
569
- stores: [storeId],
570
- });
571
- const results = adaptApiResults(response.results);
572
-
573
- // Search should not throw and may return some results
574
- // (embedding models find nearest neighbors even for gibberish)
575
- expect(Array.isArray(results)).toBe(true);
576
- });
577
-
578
- it('handles special characters in queries', async () => {
579
- const response = await searchService.search({
580
- query: 'async/await Promise<T>',
581
- stores: [storeId],
582
- });
583
- const results = adaptApiResults(response.results);
584
-
585
- // Should not throw and may find async-related content
586
- expect(Array.isArray(results)).toBe(true);
587
- });
588
-
589
- it('handles very short queries', async () => {
590
- const response = await searchService.search({
591
- query: 'api',
592
- stores: [storeId],
593
- });
594
- const results = adaptApiResults(response.results);
595
-
596
- expect(results.length).toBeGreaterThan(0);
597
- });
598
-
599
- it('handles long queries', async () => {
600
- const longQuery =
601
- 'how to implement secure user authentication with JWT tokens including ' +
602
- 'refresh token rotation and proper error handling for expired sessions';
603
-
604
- const response = await searchService.search({
605
- query: longQuery,
606
- stores: [storeId],
607
- });
608
- const results = adaptApiResults(response.results);
609
-
610
- expect(results.length).toBeGreaterThan(0);
611
- assertHasMatch(results, {
612
- keywords: ['jwt', 'token', 'auth'],
613
- });
614
- });
615
-
616
- it('handles queries with numbers', async () => {
617
- const response = await searchService.search({
618
- query: 'HTTP 401 403 status codes',
619
- stores: [storeId],
620
- });
621
- const results = adaptApiResults(response.results);
622
-
623
- expect(results.length).toBeGreaterThan(0);
624
- });
625
-
626
- it('handles mixed case queries', async () => {
627
- const response = await searchService.search({
628
- query: 'JwtPayload AccessToken',
629
- stores: [storeId],
630
- });
631
- const results = adaptApiResults(response.results);
632
-
633
- expect(results.length).toBeGreaterThan(0);
634
- assertHasMatch(results, {
635
- keywords: ['jwt', 'payload', 'token'],
636
- });
637
- });
638
- });
639
-
640
- describe('Result Quality Metrics', () => {
641
- it('calculates precision for authentication queries', async () => {
642
- const response = await searchService.search({
643
- query: 'user authentication',
644
- limit: 10,
645
- stores: [storeId],
646
- });
647
- const results = adaptApiResults(response.results);
648
-
649
- const metrics = calculateRelevanceMetrics(results, {
650
- keywords: CommonKeywords.AUTHENTICATION,
651
- });
652
-
653
- // At least 50% of results should be relevant to authentication
654
- expect(metrics.precision).toBeGreaterThanOrEqual(0.5);
655
- expect(metrics.topScore).toBeGreaterThan(0);
656
- });
657
-
658
- it('compares relevance between search modes', async () => {
659
- const vectorResponse = await searchService.search({
660
- query: 'authentication token',
661
- mode: 'vector',
662
- stores: [storeId],
663
- });
664
- const hybridResponse = await searchService.search({
665
- query: 'authentication token',
666
- mode: 'hybrid',
667
- stores: [storeId],
668
- });
669
-
670
- const vectorResults = adaptApiResults(vectorResponse.results);
671
- const hybridResults = adaptApiResults(hybridResponse.results);
672
-
673
- // Both modes should return results
674
- expect(vectorResults.length).toBeGreaterThan(0);
675
- expect(hybridResults.length).toBeGreaterThan(0);
676
-
677
- const comparison = compareRelevance(vectorResults, hybridResults, {
678
- keywords: ['auth', 'token', 'jwt', 'login', 'session'],
679
- });
680
-
681
- // Both modes should produce some relevant results
682
- expect(comparison.baselineMetrics.totalCount).toBeGreaterThan(0);
683
- expect(comparison.comparisonMetrics.totalCount).toBeGreaterThan(0);
684
- });
685
- });
686
-
687
- describe('Limit Parameter', () => {
688
- it('respects result limit', async () => {
689
- const response5 = await searchService.search({
690
- query: 'function',
691
- limit: 5,
692
- stores: [storeId],
693
- });
694
- const response10 = await searchService.search({
695
- query: 'function',
696
- limit: 10,
697
- stores: [storeId],
698
- });
699
-
700
- const results5 = adaptApiResults(response5.results);
701
- const results10 = adaptApiResults(response10.results);
702
-
703
- expect(results5.length).toBeLessThanOrEqual(5);
704
- expect(results10.length).toBeLessThanOrEqual(10);
705
- });
706
-
707
- it('returns all results when limit exceeds matches', async () => {
708
- const response = await searchService.search({
709
- query: 'verifyAccessToken',
710
- limit: 100,
711
- stores: [storeId],
712
- });
713
- const results = adaptApiResults(response.results);
714
-
715
- // Should return actual matches, not pad to limit
716
- expect(results.length).toBeGreaterThan(0);
717
- expect(results.length).toBeLessThan(100);
718
- });
719
- });
720
- });