bluera-knowledge 0.13.3 → 0.14.1

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 (663) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +14 -0
  3. package/commands/uninstall.md +65 -0
  4. package/dist/{chunk-AOSDVRRH.js → chunk-AIS5S77C.js} +2 -2
  5. package/dist/{chunk-XL2UHMBL.js → chunk-UAWKTJWN.js} +134 -15
  6. package/dist/chunk-UAWKTJWN.js.map +1 -0
  7. package/dist/{chunk-AJI5DCKY.js → chunk-Y24ZJRZP.js} +8 -3
  8. package/dist/{chunk-AJI5DCKY.js.map → chunk-Y24ZJRZP.js.map} +1 -1
  9. package/dist/index.js +3 -3
  10. package/dist/mcp/server.js +2 -2
  11. package/dist/workers/background-worker-cli.js +2 -2
  12. package/hooks/check-dependencies.sh +46 -57
  13. package/package.json +12 -1
  14. package/.claude/commands/code-review.md +0 -15
  15. package/.claude/commands/commit.md +0 -34
  16. package/.claude/council-cache/1a43ed5977b8f29afc79a9bf5c4082ee5ad8338c42ab991a4241a48f80c1e46d.json +0 -7
  17. package/.claude/hooks/post-edit-check.sh +0 -40
  18. package/.claude/rules/code-quality.md +0 -12
  19. package/.claude/rules/git.md +0 -5
  20. package/.claude/rules/versioning.md +0 -7
  21. package/.claude/settings.local.json.example +0 -45
  22. package/.claude/skills/atomic-commits/SKILL.md +0 -61
  23. package/.claude/skills/code-review-repo/skill.md +0 -62
  24. package/.editorconfig +0 -15
  25. package/.env.example +0 -21
  26. package/.github/workflows/auto-release.yml +0 -64
  27. package/.github/workflows/ci.yml +0 -168
  28. package/.github/workflows/release.yml +0 -74
  29. package/.github/workflows/update-marketplace.yml +0 -96
  30. package/.husky/pre-commit +0 -48
  31. package/.husky/pre-push +0 -39
  32. package/.mcp.json +0 -11
  33. package/.prettierrc +0 -9
  34. package/.versionrc.json +0 -24
  35. package/CLAUDE.md +0 -110
  36. package/CONTRIBUTING.md +0 -307
  37. package/NOTICE +0 -47
  38. package/SECURITY.md +0 -65
  39. package/bun.lock +0 -2036
  40. package/dist/chunk-XL2UHMBL.js.map +0 -1
  41. package/docs/claude-code-best-practices.md +0 -458
  42. package/docs/cli.md +0 -170
  43. package/docs/commands.md +0 -392
  44. package/docs/crawler-architecture.md +0 -89
  45. package/docs/mcp-integration.md +0 -130
  46. package/docs/token-efficiency.md +0 -91
  47. package/eslint-rules/require-skip-comment.js +0 -81
  48. package/eslint.config.js +0 -103
  49. package/knip.json +0 -43
  50. package/scripts/test-mcp-dev.js +0 -260
  51. package/scripts/validate-npm-release.sh +0 -314
  52. package/src/analysis/adapter-registry.test.ts +0 -211
  53. package/src/analysis/adapter-registry.ts +0 -155
  54. package/src/analysis/ast-parser.test.ts +0 -470
  55. package/src/analysis/ast-parser.ts +0 -198
  56. package/src/analysis/code-graph.test.ts +0 -718
  57. package/src/analysis/code-graph.ts +0 -249
  58. package/src/analysis/dependency-usage-analyzer.test.ts +0 -619
  59. package/src/analysis/dependency-usage-analyzer.ts +0 -433
  60. package/src/analysis/go-ast-parser.test.ts +0 -531
  61. package/src/analysis/go-ast-parser.ts +0 -471
  62. package/src/analysis/language-adapter.ts +0 -127
  63. package/src/analysis/parser-factory.test.ts +0 -210
  64. package/src/analysis/parser-factory.ts +0 -52
  65. package/src/analysis/python-ast-parser.test.ts +0 -210
  66. package/src/analysis/python-ast-parser.ts +0 -34
  67. package/src/analysis/repo-url-resolver.test.ts +0 -533
  68. package/src/analysis/repo-url-resolver.ts +0 -233
  69. package/src/analysis/rust-ast-parser.test.ts +0 -568
  70. package/src/analysis/rust-ast-parser.ts +0 -467
  71. package/src/analysis/tree-sitter-parser.test.ts +0 -297
  72. package/src/analysis/tree-sitter-parser.ts +0 -217
  73. package/src/analysis/zil/index.ts +0 -34
  74. package/src/analysis/zil/zil-adapter.test.ts +0 -187
  75. package/src/analysis/zil/zil-adapter.ts +0 -121
  76. package/src/analysis/zil/zil-lexer.test.ts +0 -222
  77. package/src/analysis/zil/zil-lexer.ts +0 -239
  78. package/src/analysis/zil/zil-parser.test.ts +0 -210
  79. package/src/analysis/zil/zil-parser.ts +0 -360
  80. package/src/analysis/zil/zil-special-forms.ts +0 -193
  81. package/src/cli/commands/crawl.test.ts +0 -1086
  82. package/src/cli/commands/crawl.ts +0 -220
  83. package/src/cli/commands/index-cmd.test.ts +0 -733
  84. package/src/cli/commands/index-cmd.ts +0 -128
  85. package/src/cli/commands/mcp.test.ts +0 -218
  86. package/src/cli/commands/mcp.ts +0 -18
  87. package/src/cli/commands/plugin-api.test.ts +0 -373
  88. package/src/cli/commands/plugin-api.ts +0 -82
  89. package/src/cli/commands/search.test.ts +0 -1047
  90. package/src/cli/commands/search.ts +0 -197
  91. package/src/cli/commands/serve.test.ts +0 -371
  92. package/src/cli/commands/serve.ts +0 -43
  93. package/src/cli/commands/setup.test.ts +0 -895
  94. package/src/cli/commands/setup.ts +0 -176
  95. package/src/cli/commands/store.test.ts +0 -1370
  96. package/src/cli/commands/store.ts +0 -229
  97. package/src/cli/commands/sync.test.ts +0 -54
  98. package/src/cli/commands/sync.ts +0 -313
  99. package/src/cli/index.ts +0 -8
  100. package/src/cli/program.ts +0 -59
  101. package/src/crawl/article-converter.test.ts +0 -576
  102. package/src/crawl/article-converter.ts +0 -142
  103. package/src/crawl/bridge.test.ts +0 -796
  104. package/src/crawl/bridge.ts +0 -339
  105. package/src/crawl/claude-client.test.ts +0 -902
  106. package/src/crawl/claude-client.ts +0 -261
  107. package/src/crawl/intelligent-crawler.test.ts +0 -1028
  108. package/src/crawl/intelligent-crawler.ts +0 -478
  109. package/src/crawl/markdown-utils.test.ts +0 -703
  110. package/src/crawl/markdown-utils.ts +0 -225
  111. package/src/crawl/schemas.ts +0 -114
  112. package/src/db/embeddings.test.ts +0 -79
  113. package/src/db/embeddings.ts +0 -78
  114. package/src/db/index.ts +0 -2
  115. package/src/db/lance.test.ts +0 -479
  116. package/src/db/lance.ts +0 -190
  117. package/src/defaults/repos.ts +0 -67
  118. package/src/index.ts +0 -124
  119. package/src/logging/index.ts +0 -25
  120. package/src/logging/logger.test.ts +0 -75
  121. package/src/logging/logger.ts +0 -145
  122. package/src/logging/payload.test.ts +0 -152
  123. package/src/logging/payload.ts +0 -119
  124. package/src/mcp/cache.test.ts +0 -202
  125. package/src/mcp/cache.ts +0 -103
  126. package/src/mcp/commands/index.ts +0 -22
  127. package/src/mcp/commands/job.commands.ts +0 -48
  128. package/src/mcp/commands/meta.commands.ts +0 -54
  129. package/src/mcp/commands/registry.ts +0 -180
  130. package/src/mcp/commands/store.commands.ts +0 -75
  131. package/src/mcp/commands/sync.commands.test.ts +0 -371
  132. package/src/mcp/commands/sync.commands.ts +0 -263
  133. package/src/mcp/handlers/execute.handler.test.ts +0 -179
  134. package/src/mcp/handlers/execute.handler.ts +0 -23
  135. package/src/mcp/handlers/index.ts +0 -39
  136. package/src/mcp/handlers/job.handler.test.ts +0 -189
  137. package/src/mcp/handlers/job.handler.ts +0 -118
  138. package/src/mcp/handlers/search.handler.test.ts +0 -324
  139. package/src/mcp/handlers/search.handler.ts +0 -287
  140. package/src/mcp/handlers/store.handler.test.ts +0 -408
  141. package/src/mcp/handlers/store.handler.ts +0 -318
  142. package/src/mcp/plugin-mcp-config.test.ts +0 -71
  143. package/src/mcp/schemas/index.test.ts +0 -356
  144. package/src/mcp/schemas/index.ts +0 -155
  145. package/src/mcp/server.test.ts +0 -91
  146. package/src/mcp/server.ts +0 -235
  147. package/src/mcp/types.ts +0 -41
  148. package/src/plugin/commands.test.ts +0 -925
  149. package/src/plugin/commands.ts +0 -311
  150. package/src/plugin/dependency-analyzer.test.ts +0 -380
  151. package/src/plugin/dependency-analyzer.ts +0 -210
  152. package/src/plugin/git-clone.test.ts +0 -387
  153. package/src/plugin/git-clone.ts +0 -57
  154. package/src/scripts/validate-npm-release.test.ts +0 -70
  155. package/src/server/app.test.ts +0 -752
  156. package/src/server/app.ts +0 -128
  157. package/src/server/index.test.ts +0 -475
  158. package/src/server/index.ts +0 -1
  159. package/src/services/chunking.service.test.ts +0 -363
  160. package/src/services/chunking.service.ts +0 -380
  161. package/src/services/code-graph.service.test.ts +0 -298
  162. package/src/services/code-graph.service.ts +0 -326
  163. package/src/services/code-unit.service.test.ts +0 -693
  164. package/src/services/code-unit.service.ts +0 -234
  165. package/src/services/config.service.test.ts +0 -146
  166. package/src/services/config.service.ts +0 -92
  167. package/src/services/gitignore.service.test.ts +0 -157
  168. package/src/services/gitignore.service.ts +0 -132
  169. package/src/services/index.service.test.ts +0 -2301
  170. package/src/services/index.service.ts +0 -442
  171. package/src/services/index.ts +0 -119
  172. package/src/services/job.service.test.ts +0 -531
  173. package/src/services/job.service.ts +0 -298
  174. package/src/services/project-root.service.test.ts +0 -504
  175. package/src/services/project-root.service.ts +0 -112
  176. package/src/services/search.service.test.ts +0 -2263
  177. package/src/services/search.service.ts +0 -1341
  178. package/src/services/services.test.ts +0 -108
  179. package/src/services/snippet.service.test.ts +0 -213
  180. package/src/services/snippet.service.ts +0 -193
  181. package/src/services/store-definition.service.test.ts +0 -440
  182. package/src/services/store-definition.service.ts +0 -198
  183. package/src/services/store.service.test.ts +0 -843
  184. package/src/services/store.service.ts +0 -363
  185. package/src/services/token.service.test.ts +0 -45
  186. package/src/services/token.service.ts +0 -33
  187. package/src/services/watch.service.test.ts +0 -600
  188. package/src/services/watch.service.ts +0 -84
  189. package/src/types/brands.test.ts +0 -47
  190. package/src/types/brands.ts +0 -32
  191. package/src/types/config.ts +0 -79
  192. package/src/types/document.ts +0 -54
  193. package/src/types/index.ts +0 -73
  194. package/src/types/job.ts +0 -61
  195. package/src/types/progress.ts +0 -9
  196. package/src/types/result.test.ts +0 -54
  197. package/src/types/result.ts +0 -41
  198. package/src/types/search.ts +0 -105
  199. package/src/types/store-definition.test.ts +0 -492
  200. package/src/types/store-definition.ts +0 -129
  201. package/src/types/store.test.ts +0 -69
  202. package/src/types/store.ts +0 -47
  203. package/src/utils/type-guards.test.ts +0 -351
  204. package/src/utils/type-guards.ts +0 -61
  205. package/src/workers/background-worker-cli.test.ts +0 -35
  206. package/src/workers/background-worker-cli.ts +0 -149
  207. package/src/workers/background-worker.test.ts +0 -222
  208. package/src/workers/background-worker.ts +0 -322
  209. package/src/workers/pid-file.test.ts +0 -167
  210. package/src/workers/pid-file.ts +0 -82
  211. package/src/workers/spawn-worker.test.ts +0 -194
  212. package/src/workers/spawn-worker.ts +0 -70
  213. package/tests/analysis/ast-parser.test.ts +0 -98
  214. package/tests/analysis/code-graph.test.ts +0 -60
  215. package/tests/fixtures/README.md +0 -114
  216. package/tests/fixtures/code-snippets/api/error-handling.ts +0 -256
  217. package/tests/fixtures/code-snippets/api/rest-controller.ts +0 -297
  218. package/tests/fixtures/code-snippets/auth/jwt-auth.ts +0 -197
  219. package/tests/fixtures/code-snippets/auth/oauth-flow.ts +0 -245
  220. package/tests/fixtures/code-snippets/database/repository-pattern.ts +0 -280
  221. package/tests/fixtures/corpus/VERSION.md +0 -25
  222. package/tests/fixtures/corpus/articles/jwt-authentication.md +0 -97
  223. package/tests/fixtures/corpus/articles/react-hooks-patterns.md +0 -127
  224. package/tests/fixtures/corpus/articles/typescript-generics.md +0 -111
  225. package/tests/fixtures/corpus/documentation/express-middleware.md +0 -71
  226. package/tests/fixtures/corpus/documentation/express-routing.md +0 -83
  227. package/tests/fixtures/corpus/documentation/node-streams.md +0 -78
  228. package/tests/fixtures/corpus/oss-repos/express/History.md +0 -3871
  229. package/tests/fixtures/corpus/oss-repos/express/LICENSE +0 -24
  230. package/tests/fixtures/corpus/oss-repos/express/README.md +0 -276
  231. package/tests/fixtures/corpus/oss-repos/express/SECURITY.md +0 -56
  232. package/tests/fixtures/corpus/oss-repos/express/benchmarks/Makefile +0 -17
  233. package/tests/fixtures/corpus/oss-repos/express/benchmarks/README.md +0 -34
  234. package/tests/fixtures/corpus/oss-repos/express/benchmarks/middleware.js +0 -20
  235. package/tests/fixtures/corpus/oss-repos/express/benchmarks/run +0 -18
  236. package/tests/fixtures/corpus/oss-repos/express/examples/README.md +0 -29
  237. package/tests/fixtures/corpus/oss-repos/express/examples/auth/index.js +0 -134
  238. package/tests/fixtures/corpus/oss-repos/express/examples/auth/views/foot.ejs +0 -2
  239. package/tests/fixtures/corpus/oss-repos/express/examples/auth/views/head.ejs +0 -20
  240. package/tests/fixtures/corpus/oss-repos/express/examples/auth/views/login.ejs +0 -21
  241. package/tests/fixtures/corpus/oss-repos/express/examples/content-negotiation/db.js +0 -9
  242. package/tests/fixtures/corpus/oss-repos/express/examples/content-negotiation/index.js +0 -46
  243. package/tests/fixtures/corpus/oss-repos/express/examples/content-negotiation/users.js +0 -19
  244. package/tests/fixtures/corpus/oss-repos/express/examples/cookie-sessions/index.js +0 -25
  245. package/tests/fixtures/corpus/oss-repos/express/examples/cookies/index.js +0 -53
  246. 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
  247. package/tests/fixtures/corpus/oss-repos/express/examples/downloads/files/amazing.txt +0 -1
  248. package/tests/fixtures/corpus/oss-repos/express/examples/downloads/files/notes/groceries.txt +0 -3
  249. package/tests/fixtures/corpus/oss-repos/express/examples/downloads/index.js +0 -40
  250. package/tests/fixtures/corpus/oss-repos/express/examples/ejs/index.js +0 -57
  251. package/tests/fixtures/corpus/oss-repos/express/examples/ejs/public/stylesheets/style.css +0 -4
  252. package/tests/fixtures/corpus/oss-repos/express/examples/ejs/views/footer.html +0 -2
  253. package/tests/fixtures/corpus/oss-repos/express/examples/ejs/views/header.html +0 -9
  254. package/tests/fixtures/corpus/oss-repos/express/examples/ejs/views/users.html +0 -10
  255. package/tests/fixtures/corpus/oss-repos/express/examples/error/index.js +0 -53
  256. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/index.js +0 -103
  257. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/404.ejs +0 -3
  258. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/500.ejs +0 -8
  259. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/error_header.ejs +0 -10
  260. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/footer.ejs +0 -2
  261. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/index.ejs +0 -20
  262. package/tests/fixtures/corpus/oss-repos/express/examples/hello-world/index.js +0 -15
  263. package/tests/fixtures/corpus/oss-repos/express/examples/markdown/index.js +0 -44
  264. package/tests/fixtures/corpus/oss-repos/express/examples/markdown/views/index.md +0 -4
  265. package/tests/fixtures/corpus/oss-repos/express/examples/multi-router/controllers/api_v1.js +0 -15
  266. package/tests/fixtures/corpus/oss-repos/express/examples/multi-router/controllers/api_v2.js +0 -15
  267. package/tests/fixtures/corpus/oss-repos/express/examples/multi-router/index.js +0 -18
  268. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/main/index.js +0 -5
  269. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/pet/index.js +0 -31
  270. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/pet/views/edit.ejs +0 -17
  271. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/pet/views/show.ejs +0 -15
  272. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/index.js +0 -41
  273. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/views/edit.hbs +0 -27
  274. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/views/list.hbs +0 -18
  275. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/views/show.hbs +0 -31
  276. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user-pet/index.js +0 -22
  277. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/db.js +0 -16
  278. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/index.js +0 -95
  279. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/lib/boot.js +0 -83
  280. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/public/style.css +0 -14
  281. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/views/404.ejs +0 -13
  282. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/views/5xx.ejs +0 -13
  283. package/tests/fixtures/corpus/oss-repos/express/examples/online/index.js +0 -61
  284. package/tests/fixtures/corpus/oss-repos/express/examples/params/index.js +0 -74
  285. package/tests/fixtures/corpus/oss-repos/express/examples/resource/index.js +0 -95
  286. package/tests/fixtures/corpus/oss-repos/express/examples/route-map/index.js +0 -75
  287. package/tests/fixtures/corpus/oss-repos/express/examples/route-middleware/index.js +0 -90
  288. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/index.js +0 -55
  289. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/post.js +0 -13
  290. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/public/style.css +0 -24
  291. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/site.js +0 -5
  292. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/user.js +0 -47
  293. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/footer.ejs +0 -2
  294. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/header.ejs +0 -9
  295. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/index.ejs +0 -10
  296. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/posts/index.ejs +0 -12
  297. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/users/edit.ejs +0 -23
  298. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/users/index.ejs +0 -14
  299. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/users/view.ejs +0 -9
  300. package/tests/fixtures/corpus/oss-repos/express/examples/search/index.js +0 -61
  301. package/tests/fixtures/corpus/oss-repos/express/examples/search/public/client.js +0 -15
  302. package/tests/fixtures/corpus/oss-repos/express/examples/search/public/index.html +0 -21
  303. package/tests/fixtures/corpus/oss-repos/express/examples/session/index.js +0 -37
  304. package/tests/fixtures/corpus/oss-repos/express/examples/session/redis.js +0 -39
  305. package/tests/fixtures/corpus/oss-repos/express/examples/static-files/index.js +0 -43
  306. package/tests/fixtures/corpus/oss-repos/express/examples/static-files/public/css/style.css +0 -3
  307. package/tests/fixtures/corpus/oss-repos/express/examples/static-files/public/hello.txt +0 -1
  308. package/tests/fixtures/corpus/oss-repos/express/examples/static-files/public/js/app.js +0 -1
  309. package/tests/fixtures/corpus/oss-repos/express/examples/vhost/index.js +0 -53
  310. package/tests/fixtures/corpus/oss-repos/express/examples/view-constructor/github-view.js +0 -53
  311. package/tests/fixtures/corpus/oss-repos/express/examples/view-constructor/index.js +0 -48
  312. package/tests/fixtures/corpus/oss-repos/express/examples/view-locals/index.js +0 -155
  313. package/tests/fixtures/corpus/oss-repos/express/examples/view-locals/user.js +0 -36
  314. package/tests/fixtures/corpus/oss-repos/express/examples/view-locals/views/index.ejs +0 -20
  315. package/tests/fixtures/corpus/oss-repos/express/examples/web-service/index.js +0 -117
  316. package/tests/fixtures/corpus/oss-repos/express/index.js +0 -11
  317. package/tests/fixtures/corpus/oss-repos/express/lib/application.js +0 -631
  318. package/tests/fixtures/corpus/oss-repos/express/lib/express.js +0 -81
  319. package/tests/fixtures/corpus/oss-repos/express/lib/request.js +0 -514
  320. package/tests/fixtures/corpus/oss-repos/express/lib/response.js +0 -1053
  321. package/tests/fixtures/corpus/oss-repos/express/lib/utils.js +0 -271
  322. package/tests/fixtures/corpus/oss-repos/express/lib/view.js +0 -205
  323. package/tests/fixtures/corpus/oss-repos/express/package.json +0 -99
  324. package/tests/fixtures/corpus/oss-repos/express/test/Route.js +0 -274
  325. package/tests/fixtures/corpus/oss-repos/express/test/Router.js +0 -636
  326. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/auth.js +0 -117
  327. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/content-negotiation.js +0 -49
  328. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/cookie-sessions.js +0 -38
  329. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/cookies.js +0 -71
  330. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/downloads.js +0 -47
  331. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/ejs.js +0 -17
  332. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/error-pages.js +0 -99
  333. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/error.js +0 -29
  334. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/hello-world.js +0 -21
  335. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/markdown.js +0 -21
  336. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/multi-router.js +0 -44
  337. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/mvc.js +0 -132
  338. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/params.js +0 -44
  339. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/resource.js +0 -68
  340. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/route-map.js +0 -45
  341. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/route-separation.js +0 -97
  342. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/vhost.js +0 -46
  343. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/web-service.js +0 -105
  344. package/tests/fixtures/corpus/oss-repos/express/test/app.all.js +0 -38
  345. package/tests/fixtures/corpus/oss-repos/express/test/app.engine.js +0 -83
  346. package/tests/fixtures/corpus/oss-repos/express/test/app.head.js +0 -66
  347. package/tests/fixtures/corpus/oss-repos/express/test/app.js +0 -120
  348. package/tests/fixtures/corpus/oss-repos/express/test/app.listen.js +0 -55
  349. package/tests/fixtures/corpus/oss-repos/express/test/app.locals.js +0 -26
  350. package/tests/fixtures/corpus/oss-repos/express/test/app.options.js +0 -116
  351. package/tests/fixtures/corpus/oss-repos/express/test/app.param.js +0 -323
  352. package/tests/fixtures/corpus/oss-repos/express/test/app.render.js +0 -374
  353. package/tests/fixtures/corpus/oss-repos/express/test/app.request.js +0 -143
  354. package/tests/fixtures/corpus/oss-repos/express/test/app.response.js +0 -143
  355. package/tests/fixtures/corpus/oss-repos/express/test/app.route.js +0 -197
  356. package/tests/fixtures/corpus/oss-repos/express/test/app.router.js +0 -1217
  357. package/tests/fixtures/corpus/oss-repos/express/test/app.routes.error.js +0 -62
  358. package/tests/fixtures/corpus/oss-repos/express/test/app.use.js +0 -542
  359. package/tests/fixtures/corpus/oss-repos/express/test/config.js +0 -207
  360. package/tests/fixtures/corpus/oss-repos/express/test/exports.js +0 -82
  361. package/tests/fixtures/corpus/oss-repos/express/test/express.json.js +0 -755
  362. package/tests/fixtures/corpus/oss-repos/express/test/express.raw.js +0 -513
  363. package/tests/fixtures/corpus/oss-repos/express/test/express.static.js +0 -815
  364. package/tests/fixtures/corpus/oss-repos/express/test/express.text.js +0 -566
  365. package/tests/fixtures/corpus/oss-repos/express/test/express.urlencoded.js +0 -828
  366. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/% of dogs.txt +0 -1
  367. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/.name +0 -1
  368. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/blog/index.html +0 -1
  369. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/blog/post/index.tmpl +0 -1
  370. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/broken.send +0 -0
  371. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/default_layout/name.tmpl +0 -1
  372. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/default_layout/user.tmpl +0 -1
  373. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/email.tmpl +0 -1
  374. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/empty.txt +0 -0
  375. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/local_layout/user.tmpl +0 -1
  376. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/name.tmpl +0 -1
  377. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/name.txt +0 -1
  378. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/nums.txt +0 -1
  379. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/pets/names.txt +0 -1
  380. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/snow /342/230/203/.gitkeep +0 -0
  381. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/todo.html +0 -1
  382. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/todo.txt +0 -1
  383. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/user.html +0 -1
  384. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/user.tmpl +0 -1
  385. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/users/index.html +0 -1
  386. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/users/tobi.txt +0 -1
  387. package/tests/fixtures/corpus/oss-repos/express/test/middleware.basic.js +0 -42
  388. package/tests/fixtures/corpus/oss-repos/express/test/regression.js +0 -20
  389. package/tests/fixtures/corpus/oss-repos/express/test/req.accepts.js +0 -125
  390. package/tests/fixtures/corpus/oss-repos/express/test/req.acceptsCharsets.js +0 -50
  391. package/tests/fixtures/corpus/oss-repos/express/test/req.acceptsEncodings.js +0 -39
  392. package/tests/fixtures/corpus/oss-repos/express/test/req.acceptsLanguages.js +0 -57
  393. package/tests/fixtures/corpus/oss-repos/express/test/req.baseUrl.js +0 -88
  394. package/tests/fixtures/corpus/oss-repos/express/test/req.fresh.js +0 -70
  395. package/tests/fixtures/corpus/oss-repos/express/test/req.get.js +0 -60
  396. package/tests/fixtures/corpus/oss-repos/express/test/req.host.js +0 -156
  397. package/tests/fixtures/corpus/oss-repos/express/test/req.hostname.js +0 -188
  398. package/tests/fixtures/corpus/oss-repos/express/test/req.ip.js +0 -113
  399. package/tests/fixtures/corpus/oss-repos/express/test/req.ips.js +0 -71
  400. package/tests/fixtures/corpus/oss-repos/express/test/req.is.js +0 -169
  401. package/tests/fixtures/corpus/oss-repos/express/test/req.path.js +0 -20
  402. package/tests/fixtures/corpus/oss-repos/express/test/req.protocol.js +0 -113
  403. package/tests/fixtures/corpus/oss-repos/express/test/req.query.js +0 -106
  404. package/tests/fixtures/corpus/oss-repos/express/test/req.range.js +0 -104
  405. package/tests/fixtures/corpus/oss-repos/express/test/req.route.js +0 -28
  406. package/tests/fixtures/corpus/oss-repos/express/test/req.secure.js +0 -101
  407. package/tests/fixtures/corpus/oss-repos/express/test/req.signedCookies.js +0 -37
  408. package/tests/fixtures/corpus/oss-repos/express/test/req.stale.js +0 -50
  409. package/tests/fixtures/corpus/oss-repos/express/test/req.subdomains.js +0 -173
  410. package/tests/fixtures/corpus/oss-repos/express/test/req.xhr.js +0 -42
  411. package/tests/fixtures/corpus/oss-repos/express/test/res.append.js +0 -116
  412. package/tests/fixtures/corpus/oss-repos/express/test/res.attachment.js +0 -79
  413. package/tests/fixtures/corpus/oss-repos/express/test/res.clearCookie.js +0 -62
  414. package/tests/fixtures/corpus/oss-repos/express/test/res.cookie.js +0 -295
  415. package/tests/fixtures/corpus/oss-repos/express/test/res.download.js +0 -487
  416. package/tests/fixtures/corpus/oss-repos/express/test/res.format.js +0 -248
  417. package/tests/fixtures/corpus/oss-repos/express/test/res.get.js +0 -21
  418. package/tests/fixtures/corpus/oss-repos/express/test/res.json.js +0 -186
  419. package/tests/fixtures/corpus/oss-repos/express/test/res.jsonp.js +0 -344
  420. package/tests/fixtures/corpus/oss-repos/express/test/res.links.js +0 -65
  421. package/tests/fixtures/corpus/oss-repos/express/test/res.locals.js +0 -40
  422. package/tests/fixtures/corpus/oss-repos/express/test/res.location.js +0 -316
  423. package/tests/fixtures/corpus/oss-repos/express/test/res.redirect.js +0 -214
  424. package/tests/fixtures/corpus/oss-repos/express/test/res.render.js +0 -367
  425. package/tests/fixtures/corpus/oss-repos/express/test/res.send.js +0 -569
  426. package/tests/fixtures/corpus/oss-repos/express/test/res.sendFile.js +0 -913
  427. package/tests/fixtures/corpus/oss-repos/express/test/res.sendStatus.js +0 -44
  428. package/tests/fixtures/corpus/oss-repos/express/test/res.set.js +0 -124
  429. package/tests/fixtures/corpus/oss-repos/express/test/res.status.js +0 -206
  430. package/tests/fixtures/corpus/oss-repos/express/test/res.type.js +0 -46
  431. package/tests/fixtures/corpus/oss-repos/express/test/res.vary.js +0 -90
  432. package/tests/fixtures/corpus/oss-repos/express/test/support/env.js +0 -3
  433. package/tests/fixtures/corpus/oss-repos/express/test/support/tmpl.js +0 -36
  434. package/tests/fixtures/corpus/oss-repos/express/test/support/utils.js +0 -86
  435. package/tests/fixtures/corpus/oss-repos/express/test/utils.js +0 -83
  436. package/tests/fixtures/corpus/oss-repos/hono/.devcontainer/Dockerfile +0 -11
  437. package/tests/fixtures/corpus/oss-repos/hono/.devcontainer/devcontainer.json +0 -21
  438. package/tests/fixtures/corpus/oss-repos/hono/.devcontainer/docker-compose.yml +0 -18
  439. package/tests/fixtures/corpus/oss-repos/hono/.eslintignore +0 -1
  440. package/tests/fixtures/corpus/oss-repos/hono/.eslintrc.cjs +0 -9
  441. package/tests/fixtures/corpus/oss-repos/hono/.gitpod.yml +0 -9
  442. package/tests/fixtures/corpus/oss-repos/hono/.prettierrc +0 -9
  443. package/tests/fixtures/corpus/oss-repos/hono/.vitest.config/jsx-runtime-default.ts +0 -15
  444. package/tests/fixtures/corpus/oss-repos/hono/.vitest.config/jsx-runtime-dom.ts +0 -15
  445. package/tests/fixtures/corpus/oss-repos/hono/.vitest.config/setup-vitest.ts +0 -47
  446. package/tests/fixtures/corpus/oss-repos/hono/LICENSE +0 -21
  447. package/tests/fixtures/corpus/oss-repos/hono/README.md +0 -91
  448. package/tests/fixtures/corpus/oss-repos/hono/build.ts +0 -80
  449. package/tests/fixtures/corpus/oss-repos/hono/bun.lockb +0 -0
  450. package/tests/fixtures/corpus/oss-repos/hono/bunfig.toml +0 -7
  451. package/tests/fixtures/corpus/oss-repos/hono/codecov.yml +0 -13
  452. package/tests/fixtures/corpus/oss-repos/hono/docs/CODE_OF_CONDUCT.md +0 -128
  453. package/tests/fixtures/corpus/oss-repos/hono/docs/CONTRIBUTING.md +0 -62
  454. package/tests/fixtures/corpus/oss-repos/hono/docs/MIGRATION.md +0 -295
  455. package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-logo.png +0 -0
  456. package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-logo.pxm +0 -0
  457. package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-logo.svg +0 -6
  458. package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-title.png +0 -0
  459. package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-title.pxm +0 -0
  460. package/tests/fixtures/corpus/oss-repos/hono/jsr.json +0 -119
  461. package/tests/fixtures/corpus/oss-repos/hono/package.cjs.json +0 -3
  462. package/tests/fixtures/corpus/oss-repos/hono/package.json +0 -650
  463. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/aws-lambda/handler.ts +0 -492
  464. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/aws-lambda/index.ts +0 -13
  465. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/aws-lambda/types.ts +0 -144
  466. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/conninfo.ts +0 -28
  467. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/index.ts +0 -9
  468. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/serve-static.ts +0 -35
  469. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/server.ts +0 -30
  470. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/ssg.ts +0 -27
  471. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/websocket.ts +0 -110
  472. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-pages/handler.ts +0 -120
  473. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-pages/index.ts +0 -7
  474. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/conninfo.ts +0 -7
  475. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/index.ts +0 -8
  476. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/serve-static-module.ts +0 -12
  477. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/serve-static.ts +0 -39
  478. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/utils.ts +0 -50
  479. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/websocket.ts +0 -50
  480. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/conninfo.ts +0 -17
  481. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/deno.d.ts +0 -28
  482. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/index.ts +0 -9
  483. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/serve-static.ts +0 -40
  484. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/ssg.ts +0 -27
  485. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/websocket.ts +0 -51
  486. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/lambda-edge/conninfo.ts +0 -15
  487. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/lambda-edge/handler.ts +0 -189
  488. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/lambda-edge/index.ts +0 -14
  489. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/netlify/handler.ts +0 -10
  490. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/netlify/index.ts +0 -6
  491. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/netlify/mod.ts +0 -1
  492. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/service-worker/handler.ts +0 -34
  493. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/service-worker/index.ts +0 -5
  494. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/service-worker/types.ts +0 -14
  495. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/vercel/conninfo.ts +0 -8
  496. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/vercel/handler.ts +0 -9
  497. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/vercel/index.ts +0 -7
  498. package/tests/fixtures/corpus/oss-repos/hono/src/client/client.ts +0 -214
  499. package/tests/fixtures/corpus/oss-repos/hono/src/client/index.ts +0 -14
  500. package/tests/fixtures/corpus/oss-repos/hono/src/client/types.ts +0 -182
  501. package/tests/fixtures/corpus/oss-repos/hono/src/client/utils.ts +0 -54
  502. package/tests/fixtures/corpus/oss-repos/hono/src/compose.ts +0 -94
  503. package/tests/fixtures/corpus/oss-repos/hono/src/context.ts +0 -917
  504. package/tests/fixtures/corpus/oss-repos/hono/src/helper/accepts/accepts.ts +0 -84
  505. package/tests/fixtures/corpus/oss-repos/hono/src/helper/accepts/index.ts +0 -6
  506. package/tests/fixtures/corpus/oss-repos/hono/src/helper/adapter/index.ts +0 -85
  507. package/tests/fixtures/corpus/oss-repos/hono/src/helper/conninfo/index.ts +0 -6
  508. package/tests/fixtures/corpus/oss-repos/hono/src/helper/conninfo/types.ts +0 -45
  509. package/tests/fixtures/corpus/oss-repos/hono/src/helper/cookie/index.ts +0 -130
  510. package/tests/fixtures/corpus/oss-repos/hono/src/helper/css/common.ts +0 -243
  511. package/tests/fixtures/corpus/oss-repos/hono/src/helper/css/index.ts +0 -220
  512. package/tests/fixtures/corpus/oss-repos/hono/src/helper/dev/index.ts +0 -79
  513. package/tests/fixtures/corpus/oss-repos/hono/src/helper/factory/index.ts +0 -246
  514. package/tests/fixtures/corpus/oss-repos/hono/src/helper/html/index.ts +0 -56
  515. package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/index.ts +0 -13
  516. package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/middleware.ts +0 -79
  517. package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/ssg.ts +0 -388
  518. package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/utils.ts +0 -71
  519. package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/index.ts +0 -9
  520. package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/sse.ts +0 -89
  521. package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/stream.ts +0 -36
  522. package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/text.ts +0 -15
  523. package/tests/fixtures/corpus/oss-repos/hono/src/helper/testing/index.ts +0 -26
  524. package/tests/fixtures/corpus/oss-repos/hono/src/helper/websocket/index.ts +0 -57
  525. package/tests/fixtures/corpus/oss-repos/hono/src/hono-base.ts +0 -523
  526. package/tests/fixtures/corpus/oss-repos/hono/src/hono.ts +0 -34
  527. package/tests/fixtures/corpus/oss-repos/hono/src/http-exception.ts +0 -78
  528. package/tests/fixtures/corpus/oss-repos/hono/src/index.ts +0 -51
  529. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/base.ts +0 -419
  530. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/children.ts +0 -20
  531. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/components.ts +0 -195
  532. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/constants.ts +0 -5
  533. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/context.ts +0 -50
  534. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/client.ts +0 -89
  535. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/components.ts +0 -39
  536. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/context.ts +0 -52
  537. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/css.ts +0 -246
  538. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/hooks/index.ts +0 -91
  539. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/index.ts +0 -159
  540. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/intrinsic-element/components.ts +0 -398
  541. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/jsx-dev-runtime.ts +0 -22
  542. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/jsx-runtime.ts +0 -7
  543. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/render.ts +0 -772
  544. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/server.ts +0 -70
  545. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/utils.ts +0 -7
  546. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/hooks/index.ts +0 -426
  547. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/index.ts +0 -114
  548. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/intrinsic-element/common.ts +0 -11
  549. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/intrinsic-element/components.ts +0 -196
  550. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/intrinsic-elements.ts +0 -924
  551. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/jsx-dev-runtime.ts +0 -26
  552. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/jsx-runtime.ts +0 -18
  553. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/streaming.ts +0 -184
  554. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/types.ts +0 -41
  555. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/utils.ts +0 -36
  556. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/basic-auth/index.ts +0 -128
  557. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/bearer-auth/index.ts +0 -159
  558. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/body-limit/index.ts +0 -115
  559. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/cache/index.ts +0 -127
  560. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/combine/index.ts +0 -153
  561. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/compress/index.ts +0 -79
  562. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/context-storage/index.ts +0 -55
  563. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/cors/index.ts +0 -141
  564. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/csrf/index.ts +0 -90
  565. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/etag/index.ts +0 -88
  566. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/ip-restriction/index.ts +0 -178
  567. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/jsx-renderer/index.ts +0 -158
  568. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/jwt/index.ts +0 -8
  569. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/jwt/jwt.ts +0 -159
  570. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/logger/index.ts +0 -93
  571. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/method-override/index.ts +0 -146
  572. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/powered-by/index.ts +0 -13
  573. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/pretty-json/index.ts +0 -50
  574. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/request-id/index.ts +0 -8
  575. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/request-id/request-id.ts +0 -59
  576. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/secure-headers/index.ts +0 -8
  577. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/secure-headers/permissions-policy.ts +0 -86
  578. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/secure-headers/secure-headers.ts +0 -319
  579. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/serve-static/index.ts +0 -140
  580. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/timeout/index.ts +0 -58
  581. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/timing/index.ts +0 -7
  582. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/timing/timing.ts +0 -225
  583. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/trailing-slash/index.ts +0 -71
  584. package/tests/fixtures/corpus/oss-repos/hono/src/preset/quick.ts +0 -24
  585. package/tests/fixtures/corpus/oss-repos/hono/src/preset/tiny.ts +0 -20
  586. package/tests/fixtures/corpus/oss-repos/hono/src/request.ts +0 -403
  587. package/tests/fixtures/corpus/oss-repos/hono/src/router/linear-router/index.ts +0 -6
  588. package/tests/fixtures/corpus/oss-repos/hono/src/router/linear-router/router.ts +0 -132
  589. package/tests/fixtures/corpus/oss-repos/hono/src/router/pattern-router/index.ts +0 -6
  590. package/tests/fixtures/corpus/oss-repos/hono/src/router/pattern-router/router.ts +0 -54
  591. package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/index.ts +0 -6
  592. package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/node.ts +0 -159
  593. package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/router.ts +0 -274
  594. package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/trie.ts +0 -74
  595. package/tests/fixtures/corpus/oss-repos/hono/src/router/smart-router/index.ts +0 -6
  596. package/tests/fixtures/corpus/oss-repos/hono/src/router/smart-router/router.ts +0 -69
  597. package/tests/fixtures/corpus/oss-repos/hono/src/router/trie-router/index.ts +0 -6
  598. package/tests/fixtures/corpus/oss-repos/hono/src/router/trie-router/node.ts +0 -205
  599. package/tests/fixtures/corpus/oss-repos/hono/src/router/trie-router/router.ts +0 -28
  600. package/tests/fixtures/corpus/oss-repos/hono/src/router.ts +0 -103
  601. package/tests/fixtures/corpus/oss-repos/hono/src/types.ts +0 -2006
  602. package/tests/fixtures/corpus/oss-repos/hono/src/utils/basic-auth.ts +0 -26
  603. package/tests/fixtures/corpus/oss-repos/hono/src/utils/body.ts +0 -225
  604. package/tests/fixtures/corpus/oss-repos/hono/src/utils/buffer.ts +0 -65
  605. package/tests/fixtures/corpus/oss-repos/hono/src/utils/color.ts +0 -26
  606. package/tests/fixtures/corpus/oss-repos/hono/src/utils/concurrent.ts +0 -55
  607. package/tests/fixtures/corpus/oss-repos/hono/src/utils/cookie.ts +0 -230
  608. package/tests/fixtures/corpus/oss-repos/hono/src/utils/crypto.ts +0 -65
  609. package/tests/fixtures/corpus/oss-repos/hono/src/utils/encode.ts +0 -34
  610. package/tests/fixtures/corpus/oss-repos/hono/src/utils/filepath.ts +0 -56
  611. package/tests/fixtures/corpus/oss-repos/hono/src/utils/handler.ts +0 -15
  612. package/tests/fixtures/corpus/oss-repos/hono/src/utils/html.ts +0 -182
  613. package/tests/fixtures/corpus/oss-repos/hono/src/utils/http-status.ts +0 -69
  614. package/tests/fixtures/corpus/oss-repos/hono/src/utils/ipaddr.ts +0 -113
  615. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/index.ts +0 -7
  616. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/jwa.ts +0 -23
  617. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/jws.ts +0 -226
  618. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/jwt.ts +0 -114
  619. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/types.ts +0 -83
  620. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/utf8.ts +0 -7
  621. package/tests/fixtures/corpus/oss-repos/hono/src/utils/mime.ts +0 -142
  622. package/tests/fixtures/corpus/oss-repos/hono/src/utils/stream.ts +0 -96
  623. package/tests/fixtures/corpus/oss-repos/hono/src/utils/types.ts +0 -102
  624. package/tests/fixtures/corpus/oss-repos/hono/src/utils/url.ts +0 -310
  625. package/tests/fixtures/corpus/oss-repos/hono/src/validator/index.ts +0 -7
  626. package/tests/fixtures/corpus/oss-repos/hono/src/validator/validator.ts +0 -151
  627. package/tests/fixtures/corpus/oss-repos/hono/tsconfig.build.json +0 -23
  628. package/tests/fixtures/corpus/oss-repos/hono/tsconfig.json +0 -28
  629. package/tests/fixtures/corpus/oss-repos/hono/vitest.config.ts +0 -34
  630. package/tests/fixtures/corpus/oss-repos/hono/yarn.lock +0 -6232
  631. package/tests/fixtures/documentation/api-reference.md +0 -412
  632. package/tests/fixtures/documentation/architecture.md +0 -214
  633. package/tests/fixtures/documentation/deployment-guide.md +0 -420
  634. package/tests/fixtures/github-readmes/express.md +0 -133
  635. package/tests/fixtures/github-readmes/nextjs.md +0 -106
  636. package/tests/fixtures/github-readmes/react.md +0 -74
  637. package/tests/fixtures/github-readmes/typescript.md +0 -93
  638. package/tests/fixtures/github-readmes/vite.md +0 -79
  639. package/tests/fixtures/queries/core.json +0 -125
  640. package/tests/fixtures/queries/extended.json +0 -427
  641. package/tests/fixtures/queries/generated/.gitkeep +0 -0
  642. package/tests/fixtures/test-server.ts +0 -268
  643. package/tests/helpers/performance-metrics.ts +0 -370
  644. package/tests/helpers/search-relevance.ts +0 -326
  645. package/tests/integration/cli-consistency.test.ts +0 -298
  646. package/tests/integration/cli.test.ts +0 -69
  647. package/tests/integration/e2e-workflow.test.ts +0 -614
  648. package/tests/integration/mcp.test.ts +0 -250
  649. package/tests/integration/python-bridge.test.ts +0 -193
  650. package/tests/integration/search-quality.test.ts +0 -720
  651. package/tests/integration/serve.test.ts +0 -260
  652. package/tests/integration/stress.test.ts +0 -326
  653. package/tests/mcp/server.test.ts +0 -15
  654. package/tests/scripts/schemas/evaluation.json +0 -44
  655. package/tests/scripts/schemas/query-generation.json +0 -21
  656. package/tests/services/code-unit.service.test.ts +0 -95
  657. package/tests/services/job.service.test.ts +0 -124
  658. package/tests/services/search.progressive-context.test.ts +0 -35
  659. package/tsconfig.json +0 -34
  660. package/tsup.config.ts +0 -15
  661. package/turndown-plugin-gfm.d.ts +0 -29
  662. package/vitest.config.ts +0 -90
  663. /package/dist/{chunk-AOSDVRRH.js.map → chunk-AIS5S77C.js.map} +0 -0
@@ -1,26 +0,0 @@
1
- import { decodeBase64 } from './encode'
2
-
3
- const CREDENTIALS_REGEXP = /^ *(?:[Bb][Aa][Ss][Ii][Cc]) +([A-Za-z0-9._~+/-]+=*) *$/
4
- const USER_PASS_REGEXP = /^([^:]*):(.*)$/
5
- const utf8Decoder = new TextDecoder()
6
-
7
- export type Auth = (req: Request) => { username: string; password: string } | undefined
8
-
9
- export const auth: Auth = (req: Request) => {
10
- const match = CREDENTIALS_REGEXP.exec(req.headers.get('Authorization') || '')
11
- if (!match) {
12
- return undefined
13
- }
14
-
15
- let userPass = undefined
16
- // If an invalid string is passed to atob(), it throws a `DOMException`.
17
- try {
18
- userPass = USER_PASS_REGEXP.exec(utf8Decoder.decode(decodeBase64(match[1])))
19
- } catch {} // Do nothing
20
-
21
- if (!userPass) {
22
- return undefined
23
- }
24
-
25
- return { username: userPass[1], password: userPass[2] }
26
- }
@@ -1,225 +0,0 @@
1
- /**
2
- * @module
3
- * Body utility.
4
- */
5
-
6
- import { HonoRequest } from '../request'
7
-
8
- type BodyDataValueDot = { [x: string]: string | File | BodyDataValueDot } & {}
9
- type BodyDataValueDotAll = {
10
- [x: string]: string | File | (string | File)[] | BodyDataValueDotAll
11
- } & {}
12
- type SimplifyBodyData<T> = {
13
- [K in keyof T]: string | File | (string | File)[] | BodyDataValueDotAll extends T[K]
14
- ? string | File | (string | File)[] | BodyDataValueDotAll
15
- : string | File | BodyDataValueDot extends T[K]
16
- ? string | File | BodyDataValueDot
17
- : string | File | (string | File)[] extends T[K]
18
- ? string | File | (string | File)[]
19
- : string | File
20
- } & {}
21
-
22
- type BodyDataValueComponent<T> =
23
- | string
24
- | File
25
- | (T extends { all: false }
26
- ? never // explicitly set to false
27
- : T extends { all: true } | { all: boolean }
28
- ? (string | File)[] // use all option
29
- : never) // without options
30
- type BodyDataValueObject<T> = { [key: string]: BodyDataValueComponent<T> | BodyDataValueObject<T> }
31
- type BodyDataValue<T> =
32
- | BodyDataValueComponent<T>
33
- | (T extends { dot: false }
34
- ? never // explicitly set to false
35
- : T extends { dot: true } | { dot: boolean }
36
- ? BodyDataValueObject<T> // use dot option
37
- : never) // without options
38
- export type BodyData<T extends Partial<ParseBodyOptions> = {}> = SimplifyBodyData<
39
- Record<string, BodyDataValue<T>>
40
- >
41
-
42
- export type ParseBodyOptions = {
43
- /**
44
- * Determines whether all fields with multiple values should be parsed as arrays.
45
- * @default false
46
- * @example
47
- * const data = new FormData()
48
- * data.append('file', 'aaa')
49
- * data.append('file', 'bbb')
50
- * data.append('message', 'hello')
51
- *
52
- * If all is false:
53
- * parseBody should return { file: 'bbb', message: 'hello' }
54
- *
55
- * If all is true:
56
- * parseBody should return { file: ['aaa', 'bbb'], message: 'hello' }
57
- */
58
- all: boolean
59
- /**
60
- * Determines whether all fields with dot notation should be parsed as nested objects.
61
- * @default false
62
- * @example
63
- * const data = new FormData()
64
- * data.append('obj.key1', 'value1')
65
- * data.append('obj.key2', 'value2')
66
- *
67
- * If dot is false:
68
- * parseBody should return { 'obj.key1': 'value1', 'obj.key2': 'value2' }
69
- *
70
- * If dot is true:
71
- * parseBody should return { obj: { key1: 'value1', key2: 'value2' } }
72
- */
73
- dot: boolean
74
- }
75
-
76
- /**
77
- * Parses the body of a request based on the provided options.
78
- *
79
- * @template T - The type of the parsed body data.
80
- * @param {HonoRequest | Request} request - The request object to parse.
81
- * @param {Partial<ParseBodyOptions>} [options] - Options for parsing the body.
82
- * @returns {Promise<T>} The parsed body data.
83
- */
84
- interface ParseBody {
85
- <Options extends Partial<ParseBodyOptions>, T extends BodyData<Options>>(
86
- request: HonoRequest | Request,
87
- options?: Options
88
- ): Promise<T>
89
- <T extends BodyData>(
90
- request: HonoRequest | Request,
91
- options?: Partial<ParseBodyOptions>
92
- ): Promise<T>
93
- }
94
- export const parseBody: ParseBody = async (
95
- request: HonoRequest | Request,
96
- options = Object.create(null)
97
- ) => {
98
- const { all = false, dot = false } = options
99
-
100
- const headers = request instanceof HonoRequest ? request.raw.headers : request.headers
101
- const contentType = headers.get('Content-Type')
102
-
103
- if (
104
- contentType?.startsWith('multipart/form-data') ||
105
- contentType?.startsWith('application/x-www-form-urlencoded')
106
- ) {
107
- return parseFormData(request, { all, dot })
108
- }
109
-
110
- return {}
111
- }
112
-
113
- /**
114
- * Parses form data from a request.
115
- *
116
- * @template T - The type of the parsed body data.
117
- * @param {HonoRequest | Request} request - The request object containing form data.
118
- * @param {ParseBodyOptions} options - Options for parsing the form data.
119
- * @returns {Promise<T>} The parsed body data.
120
- */
121
- async function parseFormData<T extends BodyData>(
122
- request: HonoRequest | Request,
123
- options: ParseBodyOptions
124
- ): Promise<T> {
125
- const formData = await (request as Request).formData()
126
-
127
- if (formData) {
128
- return convertFormDataToBodyData<T>(formData, options)
129
- }
130
-
131
- return {} as T
132
- }
133
-
134
- /**
135
- * Converts form data to body data based on the provided options.
136
- *
137
- * @template T - The type of the parsed body data.
138
- * @param {FormData} formData - The form data to convert.
139
- * @param {ParseBodyOptions} options - Options for parsing the form data.
140
- * @returns {T} The converted body data.
141
- */
142
- function convertFormDataToBodyData<T extends BodyData = BodyData>(
143
- formData: FormData,
144
- options: ParseBodyOptions
145
- ): T {
146
- const form: BodyData = Object.create(null)
147
-
148
- formData.forEach((value, key) => {
149
- const shouldParseAllValues = options.all || key.endsWith('[]')
150
-
151
- if (!shouldParseAllValues) {
152
- form[key] = value
153
- } else {
154
- handleParsingAllValues(form, key, value)
155
- }
156
- })
157
-
158
- if (options.dot) {
159
- Object.entries(form).forEach(([key, value]) => {
160
- const shouldParseDotValues = key.includes('.')
161
-
162
- if (shouldParseDotValues) {
163
- handleParsingNestedValues(form, key, value)
164
- delete form[key]
165
- }
166
- })
167
- }
168
-
169
- return form as T
170
- }
171
-
172
- /**
173
- * Handles parsing all values for a given key, supporting multiple values as arrays.
174
- *
175
- * @param {BodyData} form - The form data object.
176
- * @param {string} key - The key to parse.
177
- * @param {FormDataEntryValue} value - The value to assign.
178
- */
179
- const handleParsingAllValues = (
180
- form: BodyData<{ all: true }>,
181
- key: string,
182
- value: FormDataEntryValue
183
- ): void => {
184
- if (form[key] !== undefined) {
185
- if (Array.isArray(form[key])) {
186
- ;(form[key] as (string | File)[]).push(value)
187
- } else {
188
- form[key] = [form[key] as string | File, value]
189
- }
190
- } else {
191
- form[key] = value
192
- }
193
- }
194
-
195
- /**
196
- * Handles parsing nested values using dot notation keys.
197
- *
198
- * @param {BodyData} form - The form data object.
199
- * @param {string} key - The dot notation key.
200
- * @param {BodyDataValue} value - The value to assign.
201
- */
202
- const handleParsingNestedValues = (
203
- form: BodyData,
204
- key: string,
205
- value: BodyDataValue<Partial<ParseBodyOptions>>
206
- ): void => {
207
- let nestedForm = form
208
- const keys = key.split('.')
209
-
210
- keys.forEach((key, index) => {
211
- if (index === keys.length - 1) {
212
- nestedForm[key] = value
213
- } else {
214
- if (
215
- !nestedForm[key] ||
216
- typeof nestedForm[key] !== 'object' ||
217
- Array.isArray(nestedForm[key]) ||
218
- nestedForm[key] instanceof File
219
- ) {
220
- nestedForm[key] = Object.create(null)
221
- }
222
- nestedForm = nestedForm[key] as unknown as BodyData
223
- }
224
- })
225
- }
@@ -1,65 +0,0 @@
1
- /**
2
- * @module
3
- * Buffer utility.
4
- */
5
-
6
- import { sha256 } from './crypto'
7
-
8
- export const equal = (a: ArrayBuffer, b: ArrayBuffer): boolean => {
9
- if (a === b) {
10
- return true
11
- }
12
- if (a.byteLength !== b.byteLength) {
13
- return false
14
- }
15
-
16
- const va = new DataView(a)
17
- const vb = new DataView(b)
18
-
19
- let i = va.byteLength
20
- while (i--) {
21
- if (va.getUint8(i) !== vb.getUint8(i)) {
22
- return false
23
- }
24
- }
25
-
26
- return true
27
- }
28
-
29
- export const timingSafeEqual = async (
30
- a: string | object | boolean,
31
- b: string | object | boolean,
32
- hashFunction?: Function
33
- ): Promise<boolean> => {
34
- if (!hashFunction) {
35
- hashFunction = sha256
36
- }
37
-
38
- const [sa, sb] = await Promise.all([hashFunction(a), hashFunction(b)])
39
-
40
- if (!sa || !sb) {
41
- return false
42
- }
43
-
44
- return sa === sb && a === b
45
- }
46
-
47
- export const bufferToString = (buffer: ArrayBuffer): string => {
48
- if (buffer instanceof ArrayBuffer) {
49
- const enc = new TextDecoder('utf-8')
50
- return enc.decode(buffer)
51
- }
52
- return buffer
53
- }
54
-
55
- export const bufferToFormData = (
56
- arrayBuffer: ArrayBuffer,
57
- contentType: string
58
- ): Promise<FormData> => {
59
- const response = new Response(arrayBuffer, {
60
- headers: {
61
- 'Content-Type': contentType,
62
- },
63
- })
64
- return response.formData()
65
- }
@@ -1,26 +0,0 @@
1
- /**
2
- * @module
3
- * Color utility.
4
- */
5
-
6
- /**
7
- * Get whether color change on terminal is enabled or disabled.
8
- * If `NO_COLOR` environment variable is set, this function returns `false`.
9
- * @see {@link https://no-color.org/}
10
- *
11
- * @returns {boolean}
12
- */
13
- export function getColorEnabled(): boolean {
14
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
- const { process, Deno } = globalThis as any
16
-
17
- const isNoColor =
18
- typeof Deno?.noColor === 'boolean'
19
- ? (Deno.noColor as boolean)
20
- : typeof process !== 'undefined'
21
- ? // eslint-disable-next-line no-unsafe-optional-chaining
22
- 'NO_COLOR' in process?.env
23
- : false
24
-
25
- return !isNoColor
26
- }
@@ -1,55 +0,0 @@
1
- /**
2
- * @module
3
- * Concurrent utility.
4
- */
5
-
6
- const DEFAULT_CONCURRENCY = 1024
7
-
8
- export interface Pool {
9
- run<T>(fn: () => T): Promise<T>
10
- }
11
-
12
- export const createPool = ({
13
- concurrency,
14
- interval,
15
- }: {
16
- concurrency?: number
17
- interval?: number
18
- } = {}): Pool => {
19
- concurrency ||= DEFAULT_CONCURRENCY
20
-
21
- if (concurrency === Infinity) {
22
- // unlimited
23
- return {
24
- run: async (fn) => fn(),
25
- }
26
- }
27
-
28
- const pool: Set<{}> = new Set()
29
- const run = async <T>(
30
- fn: () => T,
31
- promise?: Promise<T>,
32
- resolve?: (result: T) => void
33
- ): Promise<T> => {
34
- if (pool.size >= (concurrency as number)) {
35
- promise ||= new Promise<T>((r) => (resolve = r))
36
- setTimeout(() => run(fn, promise, resolve))
37
- return promise
38
- }
39
- const marker = {}
40
- pool.add(marker)
41
- const result = await fn()
42
- if (interval) {
43
- setTimeout(() => pool.delete(marker), interval)
44
- } else {
45
- pool.delete(marker)
46
- }
47
- if (resolve) {
48
- resolve(result)
49
- return promise as Promise<T>
50
- } else {
51
- return result
52
- }
53
- }
54
- return { run }
55
- }
@@ -1,230 +0,0 @@
1
- /**
2
- * @module
3
- * Cookie utility.
4
- */
5
-
6
- import { decodeURIComponent_ } from './url'
7
-
8
- export type Cookie = Record<string, string>
9
- export type SignedCookie = Record<string, string | false>
10
-
11
- type PartitionCookieConstraint =
12
- | { partition: true; secure: true }
13
- | { partition?: boolean; secure?: boolean } // reset to default
14
- type SecureCookieConstraint = { secure: true }
15
- type HostCookieConstraint = { secure: true; path: '/'; domain?: undefined }
16
-
17
- export type CookieOptions = {
18
- domain?: string
19
- expires?: Date
20
- httpOnly?: boolean
21
- maxAge?: number
22
- path?: string
23
- secure?: boolean
24
- signingSecret?: string
25
- sameSite?: 'Strict' | 'Lax' | 'None' | 'strict' | 'lax' | 'none'
26
- partitioned?: boolean
27
- prefix?: CookiePrefixOptions
28
- } & PartitionCookieConstraint
29
- export type CookiePrefixOptions = 'host' | 'secure'
30
-
31
- export type CookieConstraint<Name> = Name extends `__Secure-${string}`
32
- ? CookieOptions & SecureCookieConstraint
33
- : Name extends `__Host-${string}`
34
- ? CookieOptions & HostCookieConstraint
35
- : CookieOptions
36
-
37
- const algorithm = { name: 'HMAC', hash: 'SHA-256' }
38
-
39
- const getCryptoKey = async (secret: string | BufferSource): Promise<CryptoKey> => {
40
- const secretBuf = typeof secret === 'string' ? new TextEncoder().encode(secret) : secret
41
- return await crypto.subtle.importKey('raw', secretBuf, algorithm, false, ['sign', 'verify'])
42
- }
43
-
44
- const makeSignature = async (value: string, secret: string | BufferSource): Promise<string> => {
45
- const key = await getCryptoKey(secret)
46
- const signature = await crypto.subtle.sign(algorithm.name, key, new TextEncoder().encode(value))
47
- // the returned base64 encoded signature will always be 44 characters long and end with one or two equal signs
48
- return btoa(String.fromCharCode(...new Uint8Array(signature)))
49
- }
50
-
51
- const verifySignature = async (
52
- base64Signature: string,
53
- value: string,
54
- secret: CryptoKey
55
- ): Promise<boolean> => {
56
- try {
57
- const signatureBinStr = atob(base64Signature)
58
- const signature = new Uint8Array(signatureBinStr.length)
59
- for (let i = 0, len = signatureBinStr.length; i < len; i++) {
60
- signature[i] = signatureBinStr.charCodeAt(i)
61
- }
62
- return await crypto.subtle.verify(algorithm, secret, signature, new TextEncoder().encode(value))
63
- } catch (e) {
64
- return false
65
- }
66
- }
67
-
68
- // all alphanumeric chars and all of _!#$%&'*.^`|~+-
69
- // (see: https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1)
70
- const validCookieNameRegEx = /^[\w!#$%&'*.^`|~+-]+$/
71
-
72
- // all ASCII chars 32-126 except 34, 59, and 92 (i.e. space to tilde but not double quote, semicolon, or backslash)
73
- // (see: https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1)
74
- //
75
- // note: the spec also prohibits comma and space, but we allow both since they are very common in the real world
76
- // (see: https://github.com/golang/go/issues/7243)
77
- const validCookieValueRegEx = /^[ !#-:<-[\]-~]*$/
78
-
79
- export const parse = (cookie: string, name?: string): Cookie => {
80
- const pairs = cookie.trim().split(';')
81
- return pairs.reduce((parsedCookie, pairStr) => {
82
- pairStr = pairStr.trim()
83
- const valueStartPos = pairStr.indexOf('=')
84
- if (valueStartPos === -1) {
85
- return parsedCookie
86
- }
87
-
88
- const cookieName = pairStr.substring(0, valueStartPos).trim()
89
- if ((name && name !== cookieName) || !validCookieNameRegEx.test(cookieName)) {
90
- return parsedCookie
91
- }
92
-
93
- let cookieValue = pairStr.substring(valueStartPos + 1).trim()
94
- if (cookieValue.startsWith('"') && cookieValue.endsWith('"')) {
95
- cookieValue = cookieValue.slice(1, -1)
96
- }
97
- if (validCookieValueRegEx.test(cookieValue)) {
98
- parsedCookie[cookieName] = decodeURIComponent_(cookieValue)
99
- }
100
-
101
- return parsedCookie
102
- }, {} as Cookie)
103
- }
104
-
105
- export const parseSigned = async (
106
- cookie: string,
107
- secret: string | BufferSource,
108
- name?: string
109
- ): Promise<SignedCookie> => {
110
- const parsedCookie: SignedCookie = {}
111
- const secretKey = await getCryptoKey(secret)
112
-
113
- for (const [key, value] of Object.entries(parse(cookie, name))) {
114
- const signatureStartPos = value.lastIndexOf('.')
115
- if (signatureStartPos < 1) {
116
- continue
117
- }
118
-
119
- const signedValue = value.substring(0, signatureStartPos)
120
- const signature = value.substring(signatureStartPos + 1)
121
- if (signature.length !== 44 || !signature.endsWith('=')) {
122
- continue
123
- }
124
-
125
- const isVerified = await verifySignature(signature, signedValue, secretKey)
126
- parsedCookie[key] = isVerified ? signedValue : false
127
- }
128
-
129
- return parsedCookie
130
- }
131
-
132
- const _serialize = (name: string, value: string, opt: CookieOptions = {}): string => {
133
- let cookie = `${name}=${value}`
134
-
135
- if (name.startsWith('__Secure-') && !opt.secure) {
136
- // FIXME: replace link to RFC
137
- // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis-13#section-4.1.3.1
138
- throw new Error('__Secure- Cookie must have Secure attributes')
139
- }
140
-
141
- if (name.startsWith('__Host-')) {
142
- // FIXME: replace link to RFC
143
- // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis-13#section-4.1.3.2
144
- if (!opt.secure) {
145
- throw new Error('__Host- Cookie must have Secure attributes')
146
- }
147
-
148
- if (opt.path !== '/') {
149
- throw new Error('__Host- Cookie must have Path attributes with "/"')
150
- }
151
-
152
- if (opt.domain) {
153
- throw new Error('__Host- Cookie must not have Domain attributes')
154
- }
155
- }
156
-
157
- if (opt && typeof opt.maxAge === 'number' && opt.maxAge >= 0) {
158
- if (opt.maxAge > 34560000) {
159
- // FIXME: replace link to RFC
160
- // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis-13#section-4.1.2.2
161
- throw new Error(
162
- 'Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.'
163
- )
164
- }
165
- cookie += `; Max-Age=${Math.floor(opt.maxAge)}`
166
- }
167
-
168
- if (opt.domain && opt.prefix !== 'host') {
169
- cookie += `; Domain=${opt.domain}`
170
- }
171
-
172
- if (opt.path) {
173
- cookie += `; Path=${opt.path}`
174
- }
175
-
176
- if (opt.expires) {
177
- if (opt.expires.getTime() - Date.now() > 34560000_000) {
178
- // FIXME: replace link to RFC
179
- // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis-13#section-4.1.2.1
180
- throw new Error(
181
- 'Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.'
182
- )
183
- }
184
- cookie += `; Expires=${opt.expires.toUTCString()}`
185
- }
186
-
187
- if (opt.httpOnly) {
188
- cookie += '; HttpOnly'
189
- }
190
-
191
- if (opt.secure) {
192
- cookie += '; Secure'
193
- }
194
-
195
- if (opt.sameSite) {
196
- cookie += `; SameSite=${opt.sameSite.charAt(0).toUpperCase() + opt.sameSite.slice(1)}`
197
- }
198
-
199
- if (opt.partitioned) {
200
- // FIXME: replace link to RFC
201
- // https://www.ietf.org/archive/id/draft-cutler-httpbis-partitioned-cookies-01.html#section-2.3
202
- if (!opt.secure) {
203
- throw new Error('Partitioned Cookie must have Secure attributes')
204
- }
205
- cookie += '; Partitioned'
206
- }
207
-
208
- return cookie
209
- }
210
-
211
- export const serialize = <Name extends string>(
212
- name: Name,
213
- value: string,
214
- opt?: CookieConstraint<Name>
215
- ): string => {
216
- value = encodeURIComponent(value)
217
- return _serialize(name, value, opt)
218
- }
219
-
220
- export const serializeSigned = async (
221
- name: string,
222
- value: string,
223
- secret: string | BufferSource,
224
- opt: CookieOptions = {}
225
- ): Promise<string> => {
226
- const signature = await makeSignature(value, secret)
227
- value = `${value}.${signature}`
228
- value = encodeURIComponent(value)
229
- return _serialize(name, value, opt)
230
- }
@@ -1,65 +0,0 @@
1
- /**
2
- * @module
3
- * Crypto utility.
4
- */
5
-
6
- type Algorithm = {
7
- name: string
8
- alias: string
9
- }
10
-
11
- type Data = string | boolean | number | object | ArrayBufferView | ArrayBuffer | ReadableStream
12
-
13
- export const sha256 = async (data: Data): Promise<string | null> => {
14
- const algorithm: Algorithm = { name: 'SHA-256', alias: 'sha256' }
15
- const hash = await createHash(data, algorithm)
16
- return hash
17
- }
18
-
19
- export const sha1 = async (data: Data): Promise<string | null> => {
20
- const algorithm: Algorithm = { name: 'SHA-1', alias: 'sha1' }
21
- const hash = await createHash(data, algorithm)
22
- return hash
23
- }
24
-
25
- export const md5 = async (data: Data): Promise<string | null> => {
26
- const algorithm: Algorithm = { name: 'MD5', alias: 'md5' }
27
- const hash = await createHash(data, algorithm)
28
- return hash
29
- }
30
-
31
- export const createHash = async (data: Data, algorithm: Algorithm): Promise<string | null> => {
32
- let sourceBuffer: ArrayBufferView | ArrayBuffer
33
-
34
- if (data instanceof ReadableStream) {
35
- let body = ''
36
- const reader = data.getReader()
37
- await reader?.read().then(async (chuck) => {
38
- const value = await createHash(chuck.value || '', algorithm)
39
- body += value
40
- })
41
- return body
42
- }
43
- if (ArrayBuffer.isView(data) || data instanceof ArrayBuffer) {
44
- sourceBuffer = data
45
- } else {
46
- if (typeof data === 'object') {
47
- data = JSON.stringify(data)
48
- }
49
- sourceBuffer = new TextEncoder().encode(String(data))
50
- }
51
-
52
- if (crypto && crypto.subtle) {
53
- const buffer = await crypto.subtle.digest(
54
- {
55
- name: algorithm.name,
56
- },
57
- sourceBuffer as ArrayBuffer
58
- )
59
- const hash = Array.prototype.map
60
- .call(new Uint8Array(buffer), (x) => ('00' + x.toString(16)).slice(-2))
61
- .join('')
62
- return hash
63
- }
64
- return null
65
- }