bluera-knowledge 0.9.21

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 (652) hide show
  1. package/.claude/commands/commit.md +37 -0
  2. package/.claude/hooks/post-edit-check.sh +41 -0
  3. package/.claude/settings.local.json.example +40 -0
  4. package/.claude/skills/atomic-commits/SKILL.md +53 -0
  5. package/.claude-plugin/plugin.json +13 -0
  6. package/.editorconfig +15 -0
  7. package/.github/workflows/auto-release.yml +59 -0
  8. package/.github/workflows/ci.yml +142 -0
  9. package/.github/workflows/release.yml +66 -0
  10. package/.github/workflows/update-marketplace.yml +96 -0
  11. package/.husky/pre-commit +47 -0
  12. package/.husky/pre-push +29 -0
  13. package/.versionrc.json +28 -0
  14. package/CHANGELOG.md +410 -0
  15. package/CLAUDE.md +109 -0
  16. package/LICENSE +21 -0
  17. package/NOTICE +47 -0
  18. package/README.md +1546 -0
  19. package/SECURITY.md +65 -0
  20. package/bun.lock +1758 -0
  21. package/commands/add-folder.md +48 -0
  22. package/commands/add-repo.md +50 -0
  23. package/commands/cancel.md +63 -0
  24. package/commands/check-status.md +78 -0
  25. package/commands/crawl.md +51 -0
  26. package/commands/index.md +48 -0
  27. package/commands/remove-store.md +52 -0
  28. package/commands/search.md +79 -0
  29. package/commands/search.sh +63 -0
  30. package/commands/stores.md +54 -0
  31. package/commands/suggest.md +82 -0
  32. package/dist/chunk-5QMHZUC4.js +3617 -0
  33. package/dist/chunk-5QMHZUC4.js.map +1 -0
  34. package/dist/chunk-BICFAWMN.js +656 -0
  35. package/dist/chunk-BICFAWMN.js.map +1 -0
  36. package/dist/chunk-J7J6LXOJ.js +958 -0
  37. package/dist/chunk-J7J6LXOJ.js.map +1 -0
  38. package/dist/chunk-L2YVNC63.js +59 -0
  39. package/dist/chunk-L2YVNC63.js.map +1 -0
  40. package/dist/index.d.ts +1 -0
  41. package/dist/index.js +1429 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/mcp/server.d.ts +15 -0
  44. package/dist/mcp/server.js +11 -0
  45. package/dist/mcp/server.js.map +1 -0
  46. package/dist/watch.service-YAIKKDCF.js +7 -0
  47. package/dist/watch.service-YAIKKDCF.js.map +1 -0
  48. package/dist/workers/background-worker-cli.d.ts +1 -0
  49. package/dist/workers/background-worker-cli.js +310 -0
  50. package/dist/workers/background-worker-cli.js.map +1 -0
  51. package/docs/plans/2024-12-17-ai-search-quality-implementation.md +752 -0
  52. package/docs/plans/2024-12-17-ai-search-quality-testing-design.md +201 -0
  53. package/docs/plans/2025-12-16-bluera-knowledge-cli.md +2951 -0
  54. package/docs/plans/2025-12-16-phase2-features.md +1518 -0
  55. package/docs/plans/2025-12-17-hil-implementation.md +926 -0
  56. package/docs/plans/2025-12-17-hil-quality-testing.md +224 -0
  57. package/docs/plans/2025-12-17-search-quality-phase1-implementation.md +1416 -0
  58. package/docs/plans/2025-12-17-search-quality-testing-v2-design.md +212 -0
  59. package/docs/plans/2025-12-28-ai-agent-optimization.md +1630 -0
  60. package/eslint-rules/require-skip-comment.js +81 -0
  61. package/eslint.config.js +61 -0
  62. package/hooks/check-dependencies.sh +110 -0
  63. package/hooks/format-search-results.py +132 -0
  64. package/hooks/hooks.json +27 -0
  65. package/hooks/job-status-hook.sh +51 -0
  66. package/knip.json +43 -0
  67. package/mcp.plugin.json +12 -0
  68. package/package.json +103 -0
  69. package/python/crawl_worker.py +275 -0
  70. package/python/requirements.txt +2 -0
  71. package/scripts/readme-version-updater.cjs +18 -0
  72. package/skills/advanced-workflows/SKILL.md +273 -0
  73. package/skills/atomic-commits/SKILL.md +77 -0
  74. package/skills/knowledge-search/SKILL.md +54 -0
  75. package/skills/search-optimization/SKILL.md +396 -0
  76. package/skills/store-lifecycle/SKILL.md +470 -0
  77. package/skills/when-to-query/SKILL.md +66 -0
  78. package/src/analysis/ast-parser.test.ts +423 -0
  79. package/src/analysis/ast-parser.ts +192 -0
  80. package/src/analysis/code-graph.test.ts +698 -0
  81. package/src/analysis/code-graph.ts +245 -0
  82. package/src/analysis/dependency-usage-analyzer.test.ts +799 -0
  83. package/src/analysis/dependency-usage-analyzer.ts +405 -0
  84. package/src/analysis/go-ast-parser.test.ts +531 -0
  85. package/src/analysis/go-ast-parser.ts +478 -0
  86. package/src/analysis/parser-factory.test.ts +132 -0
  87. package/src/analysis/parser-factory.ts +44 -0
  88. package/src/analysis/python-ast-parser.test.ts +210 -0
  89. package/src/analysis/python-ast-parser.ts +34 -0
  90. package/src/analysis/repo-url-resolver.test.ts +533 -0
  91. package/src/analysis/repo-url-resolver.ts +233 -0
  92. package/src/analysis/rust-ast-parser.test.ts +568 -0
  93. package/src/analysis/rust-ast-parser.ts +477 -0
  94. package/src/analysis/tree-sitter-parser.test.ts +297 -0
  95. package/src/analysis/tree-sitter-parser.ts +223 -0
  96. package/src/cli/commands/crawl.test.ts +942 -0
  97. package/src/cli/commands/crawl.ts +141 -0
  98. package/src/cli/commands/index-cmd.test.ts +722 -0
  99. package/src/cli/commands/index-cmd.ts +105 -0
  100. package/src/cli/commands/mcp.test.ts +218 -0
  101. package/src/cli/commands/mcp.ts +18 -0
  102. package/src/cli/commands/plugin-api.test.ts +313 -0
  103. package/src/cli/commands/plugin-api.ts +45 -0
  104. package/src/cli/commands/search.test.ts +911 -0
  105. package/src/cli/commands/search.ts +113 -0
  106. package/src/cli/commands/serve.test.ts +329 -0
  107. package/src/cli/commands/serve.ts +28 -0
  108. package/src/cli/commands/setup.test.ts +820 -0
  109. package/src/cli/commands/setup.ts +153 -0
  110. package/src/cli/commands/store.test.ts +1003 -0
  111. package/src/cli/commands/store.ts +167 -0
  112. package/src/cli/index.ts +7 -0
  113. package/src/cli/program.ts +59 -0
  114. package/src/crawl/article-converter.test.ts +604 -0
  115. package/src/crawl/article-converter.ts +98 -0
  116. package/src/crawl/bridge.test.ts +674 -0
  117. package/src/crawl/bridge.ts +236 -0
  118. package/src/crawl/claude-client.test.ts +663 -0
  119. package/src/crawl/claude-client.ts +234 -0
  120. package/src/crawl/intelligent-crawler.test.ts +931 -0
  121. package/src/crawl/intelligent-crawler.ts +428 -0
  122. package/src/crawl/markdown-utils.test.ts +703 -0
  123. package/src/crawl/markdown-utils.ts +228 -0
  124. package/src/crawl/schemas.ts +114 -0
  125. package/src/db/embeddings.test.ts +63 -0
  126. package/src/db/embeddings.ts +69 -0
  127. package/src/db/index.ts +2 -0
  128. package/src/db/lance.test.ts +390 -0
  129. package/src/db/lance.ts +164 -0
  130. package/src/defaults/repos.ts +67 -0
  131. package/src/index.ts +107 -0
  132. package/src/mcp/cache.test.ts +202 -0
  133. package/src/mcp/cache.ts +103 -0
  134. package/src/mcp/commands/index.ts +20 -0
  135. package/src/mcp/commands/job.commands.ts +54 -0
  136. package/src/mcp/commands/meta.commands.ts +54 -0
  137. package/src/mcp/commands/registry.ts +183 -0
  138. package/src/mcp/commands/store.commands.ts +75 -0
  139. package/src/mcp/handlers/execute.handler.test.ts +179 -0
  140. package/src/mcp/handlers/execute.handler.ts +24 -0
  141. package/src/mcp/handlers/index.ts +43 -0
  142. package/src/mcp/handlers/job.handler.test.ts +189 -0
  143. package/src/mcp/handlers/job.handler.ts +116 -0
  144. package/src/mcp/handlers/search.handler.test.ts +334 -0
  145. package/src/mcp/handlers/search.handler.ts +209 -0
  146. package/src/mcp/handlers/store.handler.test.ts +415 -0
  147. package/src/mcp/handlers/store.handler.ts +295 -0
  148. package/src/mcp/schemas/index.test.ts +315 -0
  149. package/src/mcp/schemas/index.ts +138 -0
  150. package/src/mcp/server.test.ts +36 -0
  151. package/src/mcp/server.ts +162 -0
  152. package/src/mcp/types.ts +41 -0
  153. package/src/plugin/commands.test.ts +789 -0
  154. package/src/plugin/commands.ts +257 -0
  155. package/src/plugin/dependency-analyzer.test.ts +380 -0
  156. package/src/plugin/dependency-analyzer.ts +147 -0
  157. package/src/plugin/git-clone.test.ts +332 -0
  158. package/src/plugin/git-clone.ts +57 -0
  159. package/src/server/app.test.ts +752 -0
  160. package/src/server/app.ts +119 -0
  161. package/src/server/index.test.ts +477 -0
  162. package/src/server/index.ts +1 -0
  163. package/src/services/chunking.service.test.ts +363 -0
  164. package/src/services/chunking.service.ts +350 -0
  165. package/src/services/code-graph.service.test.ts +304 -0
  166. package/src/services/code-graph.service.ts +302 -0
  167. package/src/services/code-unit.service.test.ts +596 -0
  168. package/src/services/code-unit.service.ts +115 -0
  169. package/src/services/config.service.test.ts +127 -0
  170. package/src/services/config.service.ts +69 -0
  171. package/src/services/index.service.test.ts +1002 -0
  172. package/src/services/index.service.ts +266 -0
  173. package/src/services/index.ts +75 -0
  174. package/src/services/job.service.test.ts +418 -0
  175. package/src/services/job.service.ts +246 -0
  176. package/src/services/project-root.service.test.ts +506 -0
  177. package/src/services/project-root.service.ts +112 -0
  178. package/src/services/search.service.test.ts +1105 -0
  179. package/src/services/search.service.ts +892 -0
  180. package/src/services/services.test.ts +38 -0
  181. package/src/services/snippet.service.test.ts +205 -0
  182. package/src/services/snippet.service.ts +166 -0
  183. package/src/services/store.service.test.ts +474 -0
  184. package/src/services/store.service.ts +225 -0
  185. package/src/services/watch.service.test.ts +553 -0
  186. package/src/services/watch.service.ts +71 -0
  187. package/src/types/brands.test.ts +45 -0
  188. package/src/types/brands.ts +32 -0
  189. package/src/types/config.ts +79 -0
  190. package/src/types/document.ts +30 -0
  191. package/src/types/index.ts +66 -0
  192. package/src/types/job.ts +46 -0
  193. package/src/types/progress.ts +9 -0
  194. package/src/types/result.test.ts +44 -0
  195. package/src/types/result.ts +41 -0
  196. package/src/types/search.ts +95 -0
  197. package/src/types/store.test.ts +69 -0
  198. package/src/types/store.ts +47 -0
  199. package/src/utils/type-guards.test.ts +346 -0
  200. package/src/utils/type-guards.ts +61 -0
  201. package/src/workers/background-worker-cli.ts +105 -0
  202. package/src/workers/background-worker.test.ts +178 -0
  203. package/src/workers/background-worker.ts +294 -0
  204. package/src/workers/spawn-worker.test.ts +128 -0
  205. package/src/workers/spawn-worker.ts +49 -0
  206. package/tests/analysis/ast-parser.test.ts +98 -0
  207. package/tests/analysis/code-graph.test.ts +60 -0
  208. package/tests/fixtures/README.md +114 -0
  209. package/tests/fixtures/code-snippets/api/error-handling.ts +267 -0
  210. package/tests/fixtures/code-snippets/api/rest-controller.ts +303 -0
  211. package/tests/fixtures/code-snippets/auth/jwt-auth.ts +213 -0
  212. package/tests/fixtures/code-snippets/auth/oauth-flow.ts +245 -0
  213. package/tests/fixtures/code-snippets/database/repository-pattern.ts +272 -0
  214. package/tests/fixtures/corpus/VERSION.md +25 -0
  215. package/tests/fixtures/corpus/articles/jwt-authentication.md +97 -0
  216. package/tests/fixtures/corpus/articles/react-hooks-patterns.md +127 -0
  217. package/tests/fixtures/corpus/articles/typescript-generics.md +111 -0
  218. package/tests/fixtures/corpus/documentation/express-middleware.md +71 -0
  219. package/tests/fixtures/corpus/documentation/express-routing.md +83 -0
  220. package/tests/fixtures/corpus/documentation/node-streams.md +78 -0
  221. package/tests/fixtures/corpus/oss-repos/express/History.md +3871 -0
  222. package/tests/fixtures/corpus/oss-repos/express/LICENSE +24 -0
  223. package/tests/fixtures/corpus/oss-repos/express/Readme.md +276 -0
  224. package/tests/fixtures/corpus/oss-repos/express/SECURITY.md +56 -0
  225. package/tests/fixtures/corpus/oss-repos/express/benchmarks/Makefile +17 -0
  226. package/tests/fixtures/corpus/oss-repos/express/benchmarks/README.md +34 -0
  227. package/tests/fixtures/corpus/oss-repos/express/benchmarks/middleware.js +20 -0
  228. package/tests/fixtures/corpus/oss-repos/express/benchmarks/run +18 -0
  229. package/tests/fixtures/corpus/oss-repos/express/examples/README.md +29 -0
  230. package/tests/fixtures/corpus/oss-repos/express/examples/auth/index.js +134 -0
  231. package/tests/fixtures/corpus/oss-repos/express/examples/auth/views/foot.ejs +2 -0
  232. package/tests/fixtures/corpus/oss-repos/express/examples/auth/views/head.ejs +20 -0
  233. package/tests/fixtures/corpus/oss-repos/express/examples/auth/views/login.ejs +21 -0
  234. package/tests/fixtures/corpus/oss-repos/express/examples/content-negotiation/db.js +9 -0
  235. package/tests/fixtures/corpus/oss-repos/express/examples/content-negotiation/index.js +46 -0
  236. package/tests/fixtures/corpus/oss-repos/express/examples/content-negotiation/users.js +19 -0
  237. package/tests/fixtures/corpus/oss-repos/express/examples/cookie-sessions/index.js +25 -0
  238. package/tests/fixtures/corpus/oss-repos/express/examples/cookies/index.js +53 -0
  239. 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 +2 -0
  240. package/tests/fixtures/corpus/oss-repos/express/examples/downloads/files/amazing.txt +1 -0
  241. package/tests/fixtures/corpus/oss-repos/express/examples/downloads/files/notes/groceries.txt +3 -0
  242. package/tests/fixtures/corpus/oss-repos/express/examples/downloads/index.js +40 -0
  243. package/tests/fixtures/corpus/oss-repos/express/examples/ejs/index.js +57 -0
  244. package/tests/fixtures/corpus/oss-repos/express/examples/ejs/public/stylesheets/style.css +4 -0
  245. package/tests/fixtures/corpus/oss-repos/express/examples/ejs/views/footer.html +2 -0
  246. package/tests/fixtures/corpus/oss-repos/express/examples/ejs/views/header.html +9 -0
  247. package/tests/fixtures/corpus/oss-repos/express/examples/ejs/views/users.html +10 -0
  248. package/tests/fixtures/corpus/oss-repos/express/examples/error/index.js +53 -0
  249. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/index.js +103 -0
  250. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/404.ejs +3 -0
  251. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/500.ejs +8 -0
  252. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/error_header.ejs +10 -0
  253. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/footer.ejs +2 -0
  254. package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/index.ejs +20 -0
  255. package/tests/fixtures/corpus/oss-repos/express/examples/hello-world/index.js +15 -0
  256. package/tests/fixtures/corpus/oss-repos/express/examples/markdown/index.js +44 -0
  257. package/tests/fixtures/corpus/oss-repos/express/examples/markdown/views/index.md +4 -0
  258. package/tests/fixtures/corpus/oss-repos/express/examples/multi-router/controllers/api_v1.js +15 -0
  259. package/tests/fixtures/corpus/oss-repos/express/examples/multi-router/controllers/api_v2.js +15 -0
  260. package/tests/fixtures/corpus/oss-repos/express/examples/multi-router/index.js +18 -0
  261. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/main/index.js +5 -0
  262. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/pet/index.js +31 -0
  263. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/pet/views/edit.ejs +17 -0
  264. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/pet/views/show.ejs +15 -0
  265. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/index.js +41 -0
  266. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/views/edit.hbs +27 -0
  267. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/views/list.hbs +18 -0
  268. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/views/show.hbs +31 -0
  269. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user-pet/index.js +22 -0
  270. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/db.js +16 -0
  271. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/index.js +95 -0
  272. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/lib/boot.js +83 -0
  273. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/public/style.css +14 -0
  274. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/views/404.ejs +13 -0
  275. package/tests/fixtures/corpus/oss-repos/express/examples/mvc/views/5xx.ejs +13 -0
  276. package/tests/fixtures/corpus/oss-repos/express/examples/online/index.js +61 -0
  277. package/tests/fixtures/corpus/oss-repos/express/examples/params/index.js +74 -0
  278. package/tests/fixtures/corpus/oss-repos/express/examples/resource/index.js +95 -0
  279. package/tests/fixtures/corpus/oss-repos/express/examples/route-map/index.js +75 -0
  280. package/tests/fixtures/corpus/oss-repos/express/examples/route-middleware/index.js +90 -0
  281. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/index.js +55 -0
  282. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/post.js +13 -0
  283. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/public/style.css +24 -0
  284. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/site.js +5 -0
  285. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/user.js +47 -0
  286. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/footer.ejs +2 -0
  287. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/header.ejs +9 -0
  288. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/index.ejs +10 -0
  289. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/posts/index.ejs +12 -0
  290. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/users/edit.ejs +23 -0
  291. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/users/index.ejs +14 -0
  292. package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/users/view.ejs +9 -0
  293. package/tests/fixtures/corpus/oss-repos/express/examples/search/index.js +61 -0
  294. package/tests/fixtures/corpus/oss-repos/express/examples/search/public/client.js +15 -0
  295. package/tests/fixtures/corpus/oss-repos/express/examples/search/public/index.html +21 -0
  296. package/tests/fixtures/corpus/oss-repos/express/examples/session/index.js +37 -0
  297. package/tests/fixtures/corpus/oss-repos/express/examples/session/redis.js +39 -0
  298. package/tests/fixtures/corpus/oss-repos/express/examples/static-files/index.js +43 -0
  299. package/tests/fixtures/corpus/oss-repos/express/examples/static-files/public/css/style.css +3 -0
  300. package/tests/fixtures/corpus/oss-repos/express/examples/static-files/public/hello.txt +1 -0
  301. package/tests/fixtures/corpus/oss-repos/express/examples/static-files/public/js/app.js +1 -0
  302. package/tests/fixtures/corpus/oss-repos/express/examples/vhost/index.js +53 -0
  303. package/tests/fixtures/corpus/oss-repos/express/examples/view-constructor/github-view.js +53 -0
  304. package/tests/fixtures/corpus/oss-repos/express/examples/view-constructor/index.js +48 -0
  305. package/tests/fixtures/corpus/oss-repos/express/examples/view-locals/index.js +155 -0
  306. package/tests/fixtures/corpus/oss-repos/express/examples/view-locals/user.js +36 -0
  307. package/tests/fixtures/corpus/oss-repos/express/examples/view-locals/views/index.ejs +20 -0
  308. package/tests/fixtures/corpus/oss-repos/express/examples/web-service/index.js +117 -0
  309. package/tests/fixtures/corpus/oss-repos/express/index.js +11 -0
  310. package/tests/fixtures/corpus/oss-repos/express/lib/application.js +631 -0
  311. package/tests/fixtures/corpus/oss-repos/express/lib/express.js +81 -0
  312. package/tests/fixtures/corpus/oss-repos/express/lib/request.js +514 -0
  313. package/tests/fixtures/corpus/oss-repos/express/lib/response.js +1053 -0
  314. package/tests/fixtures/corpus/oss-repos/express/lib/utils.js +271 -0
  315. package/tests/fixtures/corpus/oss-repos/express/lib/view.js +205 -0
  316. package/tests/fixtures/corpus/oss-repos/express/package.json +99 -0
  317. package/tests/fixtures/corpus/oss-repos/express/test/Route.js +274 -0
  318. package/tests/fixtures/corpus/oss-repos/express/test/Router.js +636 -0
  319. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/auth.js +117 -0
  320. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/content-negotiation.js +49 -0
  321. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/cookie-sessions.js +38 -0
  322. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/cookies.js +71 -0
  323. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/downloads.js +47 -0
  324. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/ejs.js +17 -0
  325. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/error-pages.js +99 -0
  326. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/error.js +29 -0
  327. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/hello-world.js +21 -0
  328. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/markdown.js +21 -0
  329. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/multi-router.js +44 -0
  330. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/mvc.js +132 -0
  331. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/params.js +44 -0
  332. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/resource.js +68 -0
  333. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/route-map.js +45 -0
  334. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/route-separation.js +97 -0
  335. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/vhost.js +46 -0
  336. package/tests/fixtures/corpus/oss-repos/express/test/acceptance/web-service.js +105 -0
  337. package/tests/fixtures/corpus/oss-repos/express/test/app.all.js +38 -0
  338. package/tests/fixtures/corpus/oss-repos/express/test/app.engine.js +83 -0
  339. package/tests/fixtures/corpus/oss-repos/express/test/app.head.js +66 -0
  340. package/tests/fixtures/corpus/oss-repos/express/test/app.js +120 -0
  341. package/tests/fixtures/corpus/oss-repos/express/test/app.listen.js +55 -0
  342. package/tests/fixtures/corpus/oss-repos/express/test/app.locals.js +26 -0
  343. package/tests/fixtures/corpus/oss-repos/express/test/app.options.js +116 -0
  344. package/tests/fixtures/corpus/oss-repos/express/test/app.param.js +323 -0
  345. package/tests/fixtures/corpus/oss-repos/express/test/app.render.js +374 -0
  346. package/tests/fixtures/corpus/oss-repos/express/test/app.request.js +143 -0
  347. package/tests/fixtures/corpus/oss-repos/express/test/app.response.js +143 -0
  348. package/tests/fixtures/corpus/oss-repos/express/test/app.route.js +197 -0
  349. package/tests/fixtures/corpus/oss-repos/express/test/app.router.js +1217 -0
  350. package/tests/fixtures/corpus/oss-repos/express/test/app.routes.error.js +62 -0
  351. package/tests/fixtures/corpus/oss-repos/express/test/app.use.js +542 -0
  352. package/tests/fixtures/corpus/oss-repos/express/test/config.js +207 -0
  353. package/tests/fixtures/corpus/oss-repos/express/test/exports.js +82 -0
  354. package/tests/fixtures/corpus/oss-repos/express/test/express.json.js +755 -0
  355. package/tests/fixtures/corpus/oss-repos/express/test/express.raw.js +513 -0
  356. package/tests/fixtures/corpus/oss-repos/express/test/express.static.js +815 -0
  357. package/tests/fixtures/corpus/oss-repos/express/test/express.text.js +566 -0
  358. package/tests/fixtures/corpus/oss-repos/express/test/express.urlencoded.js +828 -0
  359. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/% of dogs.txt +1 -0
  360. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/.name +1 -0
  361. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/blog/index.html +1 -0
  362. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/blog/post/index.tmpl +1 -0
  363. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/broken.send +0 -0
  364. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/default_layout/name.tmpl +1 -0
  365. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/default_layout/user.tmpl +1 -0
  366. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/email.tmpl +1 -0
  367. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/empty.txt +0 -0
  368. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/local_layout/user.tmpl +1 -0
  369. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/name.tmpl +1 -0
  370. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/name.txt +1 -0
  371. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/nums.txt +1 -0
  372. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/pets/names.txt +1 -0
  373. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/snow /342/230/203/.gitkeep +0 -0
  374. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/todo.html +1 -0
  375. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/todo.txt +1 -0
  376. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/user.html +1 -0
  377. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/user.tmpl +1 -0
  378. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/users/index.html +1 -0
  379. package/tests/fixtures/corpus/oss-repos/express/test/fixtures/users/tobi.txt +1 -0
  380. package/tests/fixtures/corpus/oss-repos/express/test/middleware.basic.js +42 -0
  381. package/tests/fixtures/corpus/oss-repos/express/test/regression.js +20 -0
  382. package/tests/fixtures/corpus/oss-repos/express/test/req.accepts.js +125 -0
  383. package/tests/fixtures/corpus/oss-repos/express/test/req.acceptsCharsets.js +50 -0
  384. package/tests/fixtures/corpus/oss-repos/express/test/req.acceptsEncodings.js +39 -0
  385. package/tests/fixtures/corpus/oss-repos/express/test/req.acceptsLanguages.js +57 -0
  386. package/tests/fixtures/corpus/oss-repos/express/test/req.baseUrl.js +88 -0
  387. package/tests/fixtures/corpus/oss-repos/express/test/req.fresh.js +70 -0
  388. package/tests/fixtures/corpus/oss-repos/express/test/req.get.js +60 -0
  389. package/tests/fixtures/corpus/oss-repos/express/test/req.host.js +156 -0
  390. package/tests/fixtures/corpus/oss-repos/express/test/req.hostname.js +188 -0
  391. package/tests/fixtures/corpus/oss-repos/express/test/req.ip.js +113 -0
  392. package/tests/fixtures/corpus/oss-repos/express/test/req.ips.js +71 -0
  393. package/tests/fixtures/corpus/oss-repos/express/test/req.is.js +169 -0
  394. package/tests/fixtures/corpus/oss-repos/express/test/req.path.js +20 -0
  395. package/tests/fixtures/corpus/oss-repos/express/test/req.protocol.js +113 -0
  396. package/tests/fixtures/corpus/oss-repos/express/test/req.query.js +106 -0
  397. package/tests/fixtures/corpus/oss-repos/express/test/req.range.js +104 -0
  398. package/tests/fixtures/corpus/oss-repos/express/test/req.route.js +28 -0
  399. package/tests/fixtures/corpus/oss-repos/express/test/req.secure.js +101 -0
  400. package/tests/fixtures/corpus/oss-repos/express/test/req.signedCookies.js +37 -0
  401. package/tests/fixtures/corpus/oss-repos/express/test/req.stale.js +50 -0
  402. package/tests/fixtures/corpus/oss-repos/express/test/req.subdomains.js +173 -0
  403. package/tests/fixtures/corpus/oss-repos/express/test/req.xhr.js +42 -0
  404. package/tests/fixtures/corpus/oss-repos/express/test/res.append.js +116 -0
  405. package/tests/fixtures/corpus/oss-repos/express/test/res.attachment.js +79 -0
  406. package/tests/fixtures/corpus/oss-repos/express/test/res.clearCookie.js +62 -0
  407. package/tests/fixtures/corpus/oss-repos/express/test/res.cookie.js +295 -0
  408. package/tests/fixtures/corpus/oss-repos/express/test/res.download.js +487 -0
  409. package/tests/fixtures/corpus/oss-repos/express/test/res.format.js +248 -0
  410. package/tests/fixtures/corpus/oss-repos/express/test/res.get.js +21 -0
  411. package/tests/fixtures/corpus/oss-repos/express/test/res.json.js +186 -0
  412. package/tests/fixtures/corpus/oss-repos/express/test/res.jsonp.js +344 -0
  413. package/tests/fixtures/corpus/oss-repos/express/test/res.links.js +65 -0
  414. package/tests/fixtures/corpus/oss-repos/express/test/res.locals.js +40 -0
  415. package/tests/fixtures/corpus/oss-repos/express/test/res.location.js +316 -0
  416. package/tests/fixtures/corpus/oss-repos/express/test/res.redirect.js +214 -0
  417. package/tests/fixtures/corpus/oss-repos/express/test/res.render.js +367 -0
  418. package/tests/fixtures/corpus/oss-repos/express/test/res.send.js +569 -0
  419. package/tests/fixtures/corpus/oss-repos/express/test/res.sendFile.js +913 -0
  420. package/tests/fixtures/corpus/oss-repos/express/test/res.sendStatus.js +44 -0
  421. package/tests/fixtures/corpus/oss-repos/express/test/res.set.js +124 -0
  422. package/tests/fixtures/corpus/oss-repos/express/test/res.status.js +206 -0
  423. package/tests/fixtures/corpus/oss-repos/express/test/res.type.js +46 -0
  424. package/tests/fixtures/corpus/oss-repos/express/test/res.vary.js +90 -0
  425. package/tests/fixtures/corpus/oss-repos/express/test/support/env.js +3 -0
  426. package/tests/fixtures/corpus/oss-repos/express/test/support/tmpl.js +36 -0
  427. package/tests/fixtures/corpus/oss-repos/express/test/support/utils.js +86 -0
  428. package/tests/fixtures/corpus/oss-repos/express/test/utils.js +83 -0
  429. package/tests/fixtures/corpus/oss-repos/hono/.devcontainer/Dockerfile +11 -0
  430. package/tests/fixtures/corpus/oss-repos/hono/.devcontainer/devcontainer.json +21 -0
  431. package/tests/fixtures/corpus/oss-repos/hono/.devcontainer/docker-compose.yml +18 -0
  432. package/tests/fixtures/corpus/oss-repos/hono/.eslintignore +1 -0
  433. package/tests/fixtures/corpus/oss-repos/hono/.eslintrc.cjs +9 -0
  434. package/tests/fixtures/corpus/oss-repos/hono/.gitpod.yml +9 -0
  435. package/tests/fixtures/corpus/oss-repos/hono/.prettierrc +9 -0
  436. package/tests/fixtures/corpus/oss-repos/hono/.vitest.config/jsx-runtime-default.ts +15 -0
  437. package/tests/fixtures/corpus/oss-repos/hono/.vitest.config/jsx-runtime-dom.ts +15 -0
  438. package/tests/fixtures/corpus/oss-repos/hono/.vitest.config/setup-vitest.ts +47 -0
  439. package/tests/fixtures/corpus/oss-repos/hono/LICENSE +21 -0
  440. package/tests/fixtures/corpus/oss-repos/hono/README.md +91 -0
  441. package/tests/fixtures/corpus/oss-repos/hono/build.ts +80 -0
  442. package/tests/fixtures/corpus/oss-repos/hono/bun.lockb +0 -0
  443. package/tests/fixtures/corpus/oss-repos/hono/bunfig.toml +7 -0
  444. package/tests/fixtures/corpus/oss-repos/hono/codecov.yml +13 -0
  445. package/tests/fixtures/corpus/oss-repos/hono/docs/CODE_OF_CONDUCT.md +128 -0
  446. package/tests/fixtures/corpus/oss-repos/hono/docs/CONTRIBUTING.md +62 -0
  447. package/tests/fixtures/corpus/oss-repos/hono/docs/MIGRATION.md +295 -0
  448. package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-logo.png +0 -0
  449. package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-logo.pxm +0 -0
  450. package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-logo.svg +6 -0
  451. package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-title.png +0 -0
  452. package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-title.pxm +0 -0
  453. package/tests/fixtures/corpus/oss-repos/hono/jsr.json +119 -0
  454. package/tests/fixtures/corpus/oss-repos/hono/package.cjs.json +3 -0
  455. package/tests/fixtures/corpus/oss-repos/hono/package.json +650 -0
  456. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/aws-lambda/handler.ts +492 -0
  457. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/aws-lambda/index.ts +13 -0
  458. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/aws-lambda/types.ts +144 -0
  459. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/conninfo.ts +28 -0
  460. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/index.ts +9 -0
  461. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/serve-static.ts +35 -0
  462. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/server.ts +30 -0
  463. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/ssg.ts +27 -0
  464. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/websocket.ts +110 -0
  465. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-pages/handler.ts +120 -0
  466. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-pages/index.ts +7 -0
  467. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/conninfo.ts +7 -0
  468. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/index.ts +8 -0
  469. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/serve-static-module.ts +12 -0
  470. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/serve-static.ts +39 -0
  471. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/utils.ts +50 -0
  472. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/websocket.ts +50 -0
  473. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/conninfo.ts +17 -0
  474. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/deno.d.ts +28 -0
  475. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/index.ts +9 -0
  476. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/serve-static.ts +40 -0
  477. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/ssg.ts +27 -0
  478. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/websocket.ts +51 -0
  479. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/lambda-edge/conninfo.ts +15 -0
  480. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/lambda-edge/handler.ts +189 -0
  481. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/lambda-edge/index.ts +14 -0
  482. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/netlify/handler.ts +10 -0
  483. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/netlify/index.ts +6 -0
  484. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/netlify/mod.ts +1 -0
  485. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/service-worker/handler.ts +34 -0
  486. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/service-worker/index.ts +5 -0
  487. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/service-worker/types.ts +14 -0
  488. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/vercel/conninfo.ts +8 -0
  489. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/vercel/handler.ts +9 -0
  490. package/tests/fixtures/corpus/oss-repos/hono/src/adapter/vercel/index.ts +7 -0
  491. package/tests/fixtures/corpus/oss-repos/hono/src/client/client.ts +214 -0
  492. package/tests/fixtures/corpus/oss-repos/hono/src/client/index.ts +14 -0
  493. package/tests/fixtures/corpus/oss-repos/hono/src/client/types.ts +180 -0
  494. package/tests/fixtures/corpus/oss-repos/hono/src/client/utils.ts +54 -0
  495. package/tests/fixtures/corpus/oss-repos/hono/src/compose.ts +94 -0
  496. package/tests/fixtures/corpus/oss-repos/hono/src/context.ts +914 -0
  497. package/tests/fixtures/corpus/oss-repos/hono/src/helper/accepts/accepts.ts +81 -0
  498. package/tests/fixtures/corpus/oss-repos/hono/src/helper/accepts/index.ts +6 -0
  499. package/tests/fixtures/corpus/oss-repos/hono/src/helper/adapter/index.ts +85 -0
  500. package/tests/fixtures/corpus/oss-repos/hono/src/helper/conninfo/index.ts +6 -0
  501. package/tests/fixtures/corpus/oss-repos/hono/src/helper/conninfo/types.ts +45 -0
  502. package/tests/fixtures/corpus/oss-repos/hono/src/helper/cookie/index.ts +130 -0
  503. package/tests/fixtures/corpus/oss-repos/hono/src/helper/css/common.ts +243 -0
  504. package/tests/fixtures/corpus/oss-repos/hono/src/helper/css/index.ts +220 -0
  505. package/tests/fixtures/corpus/oss-repos/hono/src/helper/dev/index.ts +79 -0
  506. package/tests/fixtures/corpus/oss-repos/hono/src/helper/factory/index.ts +246 -0
  507. package/tests/fixtures/corpus/oss-repos/hono/src/helper/html/index.ts +56 -0
  508. package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/index.ts +13 -0
  509. package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/middleware.ts +79 -0
  510. package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/ssg.ts +388 -0
  511. package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/utils.ts +71 -0
  512. package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/index.ts +9 -0
  513. package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/sse.ts +89 -0
  514. package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/stream.ts +36 -0
  515. package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/text.ts +15 -0
  516. package/tests/fixtures/corpus/oss-repos/hono/src/helper/testing/index.ts +26 -0
  517. package/tests/fixtures/corpus/oss-repos/hono/src/helper/websocket/index.ts +57 -0
  518. package/tests/fixtures/corpus/oss-repos/hono/src/hono-base.ts +523 -0
  519. package/tests/fixtures/corpus/oss-repos/hono/src/hono.ts +34 -0
  520. package/tests/fixtures/corpus/oss-repos/hono/src/http-exception.ts +78 -0
  521. package/tests/fixtures/corpus/oss-repos/hono/src/index.ts +51 -0
  522. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/base.ts +419 -0
  523. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/children.ts +20 -0
  524. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/components.ts +195 -0
  525. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/constants.ts +5 -0
  526. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/context.ts +50 -0
  527. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/client.ts +89 -0
  528. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/components.ts +39 -0
  529. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/context.ts +52 -0
  530. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/css.ts +246 -0
  531. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/hooks/index.ts +91 -0
  532. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/index.ts +159 -0
  533. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/intrinsic-element/components.ts +398 -0
  534. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/jsx-dev-runtime.ts +22 -0
  535. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/jsx-runtime.ts +7 -0
  536. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/render.ts +772 -0
  537. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/server.ts +70 -0
  538. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/utils.ts +7 -0
  539. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/hooks/index.ts +426 -0
  540. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/index.ts +114 -0
  541. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/intrinsic-element/common.ts +11 -0
  542. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/intrinsic-element/components.ts +196 -0
  543. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/intrinsic-elements.ts +924 -0
  544. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/jsx-dev-runtime.ts +26 -0
  545. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/jsx-runtime.ts +18 -0
  546. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/streaming.ts +184 -0
  547. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/types.ts +41 -0
  548. package/tests/fixtures/corpus/oss-repos/hono/src/jsx/utils.ts +36 -0
  549. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/basic-auth/index.ts +128 -0
  550. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/bearer-auth/index.ts +159 -0
  551. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/body-limit/index.ts +115 -0
  552. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/cache/index.ts +127 -0
  553. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/combine/index.ts +153 -0
  554. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/compress/index.ts +79 -0
  555. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/context-storage/index.ts +55 -0
  556. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/cors/index.ts +141 -0
  557. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/csrf/index.ts +90 -0
  558. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/etag/index.ts +88 -0
  559. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/ip-restriction/index.ts +178 -0
  560. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/jsx-renderer/index.ts +158 -0
  561. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/jwt/index.ts +8 -0
  562. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/jwt/jwt.ts +159 -0
  563. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/logger/index.ts +93 -0
  564. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/method-override/index.ts +146 -0
  565. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/powered-by/index.ts +13 -0
  566. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/pretty-json/index.ts +50 -0
  567. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/request-id/index.ts +8 -0
  568. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/request-id/request-id.ts +59 -0
  569. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/secure-headers/index.ts +8 -0
  570. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/secure-headers/permissions-policy.ts +86 -0
  571. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/secure-headers/secure-headers.ts +319 -0
  572. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/serve-static/index.ts +140 -0
  573. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/timeout/index.ts +58 -0
  574. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/timing/index.ts +7 -0
  575. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/timing/timing.ts +225 -0
  576. package/tests/fixtures/corpus/oss-repos/hono/src/middleware/trailing-slash/index.ts +71 -0
  577. package/tests/fixtures/corpus/oss-repos/hono/src/preset/quick.ts +24 -0
  578. package/tests/fixtures/corpus/oss-repos/hono/src/preset/tiny.ts +20 -0
  579. package/tests/fixtures/corpus/oss-repos/hono/src/request.ts +403 -0
  580. package/tests/fixtures/corpus/oss-repos/hono/src/router/linear-router/index.ts +6 -0
  581. package/tests/fixtures/corpus/oss-repos/hono/src/router/linear-router/router.ts +132 -0
  582. package/tests/fixtures/corpus/oss-repos/hono/src/router/pattern-router/index.ts +6 -0
  583. package/tests/fixtures/corpus/oss-repos/hono/src/router/pattern-router/router.ts +54 -0
  584. package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/index.ts +6 -0
  585. package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/node.ts +159 -0
  586. package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/router.ts +274 -0
  587. package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/trie.ts +74 -0
  588. package/tests/fixtures/corpus/oss-repos/hono/src/router/smart-router/index.ts +6 -0
  589. package/tests/fixtures/corpus/oss-repos/hono/src/router/smart-router/router.ts +69 -0
  590. package/tests/fixtures/corpus/oss-repos/hono/src/router/trie-router/index.ts +6 -0
  591. package/tests/fixtures/corpus/oss-repos/hono/src/router/trie-router/node.ts +205 -0
  592. package/tests/fixtures/corpus/oss-repos/hono/src/router/trie-router/router.ts +28 -0
  593. package/tests/fixtures/corpus/oss-repos/hono/src/router.ts +103 -0
  594. package/tests/fixtures/corpus/oss-repos/hono/src/types.ts +2009 -0
  595. package/tests/fixtures/corpus/oss-repos/hono/src/utils/basic-auth.ts +26 -0
  596. package/tests/fixtures/corpus/oss-repos/hono/src/utils/body.ts +225 -0
  597. package/tests/fixtures/corpus/oss-repos/hono/src/utils/buffer.ts +65 -0
  598. package/tests/fixtures/corpus/oss-repos/hono/src/utils/color.ts +26 -0
  599. package/tests/fixtures/corpus/oss-repos/hono/src/utils/concurrent.ts +55 -0
  600. package/tests/fixtures/corpus/oss-repos/hono/src/utils/cookie.ts +230 -0
  601. package/tests/fixtures/corpus/oss-repos/hono/src/utils/crypto.ts +65 -0
  602. package/tests/fixtures/corpus/oss-repos/hono/src/utils/encode.ts +34 -0
  603. package/tests/fixtures/corpus/oss-repos/hono/src/utils/filepath.ts +56 -0
  604. package/tests/fixtures/corpus/oss-repos/hono/src/utils/handler.ts +15 -0
  605. package/tests/fixtures/corpus/oss-repos/hono/src/utils/html.ts +182 -0
  606. package/tests/fixtures/corpus/oss-repos/hono/src/utils/http-status.ts +69 -0
  607. package/tests/fixtures/corpus/oss-repos/hono/src/utils/ipaddr.ts +113 -0
  608. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/index.ts +7 -0
  609. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/jwa.ts +23 -0
  610. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/jws.ts +226 -0
  611. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/jwt.ts +114 -0
  612. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/types.ts +83 -0
  613. package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/utf8.ts +7 -0
  614. package/tests/fixtures/corpus/oss-repos/hono/src/utils/mime.ts +142 -0
  615. package/tests/fixtures/corpus/oss-repos/hono/src/utils/stream.ts +96 -0
  616. package/tests/fixtures/corpus/oss-repos/hono/src/utils/types.ts +105 -0
  617. package/tests/fixtures/corpus/oss-repos/hono/src/utils/url.ts +310 -0
  618. package/tests/fixtures/corpus/oss-repos/hono/src/validator/index.ts +7 -0
  619. package/tests/fixtures/corpus/oss-repos/hono/src/validator/validator.ts +151 -0
  620. package/tests/fixtures/corpus/oss-repos/hono/tsconfig.build.json +23 -0
  621. package/tests/fixtures/corpus/oss-repos/hono/tsconfig.json +28 -0
  622. package/tests/fixtures/corpus/oss-repos/hono/vitest.config.ts +34 -0
  623. package/tests/fixtures/corpus/oss-repos/hono/yarn.lock +6232 -0
  624. package/tests/fixtures/documentation/api-reference.md +412 -0
  625. package/tests/fixtures/documentation/architecture.md +214 -0
  626. package/tests/fixtures/documentation/deployment-guide.md +420 -0
  627. package/tests/fixtures/github-readmes/express.md +133 -0
  628. package/tests/fixtures/github-readmes/nextjs.md +106 -0
  629. package/tests/fixtures/github-readmes/react.md +74 -0
  630. package/tests/fixtures/github-readmes/typescript.md +93 -0
  631. package/tests/fixtures/github-readmes/vite.md +79 -0
  632. package/tests/fixtures/queries/core.json +125 -0
  633. package/tests/fixtures/queries/extended.json +427 -0
  634. package/tests/fixtures/queries/generated/.gitkeep +0 -0
  635. package/tests/fixtures/test-server.ts +267 -0
  636. package/tests/helpers/performance-metrics.ts +387 -0
  637. package/tests/helpers/search-relevance.ts +381 -0
  638. package/tests/integration/cli-consistency.test.ts +299 -0
  639. package/tests/integration/cli.test.ts +69 -0
  640. package/tests/integration/e2e-workflow.test.ts +612 -0
  641. package/tests/integration/python-bridge.test.ts +183 -0
  642. package/tests/integration/search-quality.test.ts +718 -0
  643. package/tests/integration/stress.test.ts +326 -0
  644. package/tests/mcp/server.test.ts +15 -0
  645. package/tests/scripts/schemas/evaluation.json +44 -0
  646. package/tests/scripts/schemas/query-generation.json +21 -0
  647. package/tests/services/code-unit.service.test.ts +47 -0
  648. package/tests/services/search.progressive-context.test.ts +35 -0
  649. package/tsconfig.json +34 -0
  650. package/tsup.config.ts +15 -0
  651. package/turndown-plugin-gfm.d.ts +29 -0
  652. package/vitest.config.ts +79 -0
@@ -0,0 +1,3871 @@
1
+ 5.2.1 / 2025-12-01
2
+ =======================
3
+
4
+ * Revert security fix for [CVE-2024-51999](https://www.cve.org/CVERecord?id=CVE-2024-51999) ([GHSA-pj86-cfqh-vqx6](https://github.com/expressjs/express/security/advisories/GHSA-pj86-cfqh-vqx6))
5
+ * The prior release (5.2.0) included an erroneous breaking change related to the extended query parser. There is no actual security vulnerability associated with this behavior (CVE-2024-51999 has been rejected). The change has been fully reverted in this release.
6
+
7
+ 5.2.0 / 2025-12-01
8
+ ========================
9
+
10
+ * Security fix for [CVE-2024-51999](https://www.cve.org/CVERecord?id=CVE-2024-51999) ([GHSA-pj86-cfqh-vqx6](https://github.com/expressjs/express/security/advisories/GHSA-pj86-cfqh-vqx6))
11
+ * deps: `body-parser@^2.2.1`
12
+ * A deprecation warning was added when using `res.redirect` with undefined arguments, Express now emits a warning to help detect calls that pass undefined as the status or URL and make them easier to fix.
13
+
14
+ 5.1.0 / 2025-03-31
15
+ ========================
16
+
17
+ * Add support for `Uint8Array` in `res.send()`
18
+ * Add support for ETag option in `res.sendFile()`
19
+ * Add support for multiple links with the same rel in `res.links()`
20
+ * Add funding field to package.json
21
+ * perf: use loop for acceptParams
22
+ * refactor: prefix built-in node module imports
23
+ * deps: remove `setprototypeof`
24
+ * deps: remove `safe-buffer`
25
+ * deps: remove `utils-merge`
26
+ * deps: remove `methods`
27
+ * deps: remove `depd`
28
+ * deps: `debug@^4.4.0`
29
+ * deps: `body-parser@^2.2.0`
30
+ * deps: `router@^2.2.0`
31
+ * deps: `content-type@^1.0.5`
32
+ * deps: `finalhandler@^2.1.0`
33
+ * deps: `qs@^6.14.0`
34
+ * deps: `server-static@2.2.0`
35
+ * deps: `type-is@2.0.1`
36
+
37
+ 5.0.1 / 2024-10-08
38
+ ==========
39
+
40
+ * Update `cookie` semver lock to address [CVE-2024-47764](https://nvd.nist.gov/vuln/detail/CVE-2024-47764)
41
+
42
+ 5.0.0 / 2024-09-10
43
+ =========================
44
+ * remove:
45
+ - `path-is-absolute` dependency - use `path.isAbsolute` instead
46
+ * breaking:
47
+ * `res.status()` accepts only integers, and input must be greater than 99 and less than 1000
48
+ * will throw a `RangeError: Invalid status code: ${code}. Status code must be greater than 99 and less than 1000.` for inputs outside this range
49
+ * will throw a `TypeError: Invalid status code: ${code}. Status code must be an integer.` for non integer inputs
50
+ * deps: send@1.0.0
51
+ * `res.redirect('back')` and `res.location('back')` is no longer a supported magic string, explicitly use `req.get('Referrer') || '/'`.
52
+ * change:
53
+ - `res.clearCookie` will ignore user provided `maxAge` and `expires` options
54
+ * deps: cookie-signature@^1.2.1
55
+ * deps: debug@4.3.6
56
+ * deps: merge-descriptors@^2.0.0
57
+ * deps: serve-static@^2.1.0
58
+ * deps: qs@6.13.0
59
+ * deps: accepts@^2.0.0
60
+ * deps: mime-types@^3.0.0
61
+ - `application/javascript` => `text/javascript`
62
+ * deps: type-is@^2.0.0
63
+ * deps: content-disposition@^1.0.0
64
+ * deps: finalhandler@^2.0.0
65
+ * deps: fresh@^2.0.0
66
+ * deps: body-parser@^2.0.1
67
+ * deps: send@^1.1.0
68
+
69
+ 5.0.0-beta.3 / 2024-03-25
70
+ =========================
71
+
72
+ This incorporates all changes after 4.19.1 up to 4.19.2.
73
+
74
+ 5.0.0-beta.2 / 2024-03-20
75
+ =========================
76
+
77
+ This incorporates all changes after 4.17.2 up to 4.19.1.
78
+
79
+ 5.0.0-beta.1 / 2022-02-14
80
+ =========================
81
+
82
+ This is the first Express 5.0 beta release, based off 4.17.2 and includes
83
+ changes from 5.0.0-alpha.8.
84
+
85
+ * change:
86
+ - Default "query parser" setting to `'simple'`
87
+ - Requires Node.js 4+
88
+ - Use `mime-types` for file to content type mapping
89
+ * deps: array-flatten@3.0.0
90
+ * deps: body-parser@2.0.0-beta.1
91
+ - `req.body` is no longer always initialized to `{}`
92
+ - `urlencoded` parser now defaults `extended` to `false`
93
+ - Use `on-finished` to determine when body read
94
+ * deps: router@2.0.0-beta.1
95
+ - Add new `?`, `*`, and `+` parameter modifiers
96
+ - Internalize private `router.process_params` method
97
+ - Matching group expressions are only RegExp syntax
98
+ - Named matching groups no longer available by position in `req.params`
99
+ - Regular expressions can only be used in a matching group
100
+ - Remove `debug` dependency
101
+ - Special `*` path segment behavior removed
102
+ - deps: array-flatten@3.0.0
103
+ - deps: parseurl@~1.3.3
104
+ - deps: path-to-regexp@3.2.0
105
+ - deps: setprototypeof@1.2.0
106
+ * deps: send@1.0.0-beta.1
107
+ - Change `dotfiles` option default to `'ignore'`
108
+ - Remove `hidden` option; use `dotfiles` option instead
109
+ - Use `mime-types` for file to content type mapping
110
+ - deps: debug@3.1.0
111
+ * deps: serve-static@2.0.0-beta.1
112
+ - Change `dotfiles` option default to `'ignore'`
113
+ - Remove `hidden` option; use `dotfiles` option instead
114
+ - Use `mime-types` for file to content type mapping
115
+ - Remove `express.static.mime` export; use `mime-types` package instead
116
+ - deps: send@1.0.0-beta.1
117
+
118
+ 5.0.0-alpha.8 / 2020-03-25
119
+ ==========================
120
+
121
+ This is the eighth Express 5.0 alpha release, based off 4.17.1 and includes
122
+ changes from 5.0.0-alpha.7.
123
+
124
+ 5.0.0-alpha.7 / 2018-10-26
125
+ ==========================
126
+
127
+ This is the seventh Express 5.0 alpha release, based off 4.16.4 and includes
128
+ changes from 5.0.0-alpha.6.
129
+
130
+ The major change with this alpha is the basic support for returned, rejected
131
+ Promises in the router.
132
+
133
+ * remove:
134
+ - `path-to-regexp` dependency
135
+ * deps: debug@3.1.0
136
+ - Add `DEBUG_HIDE_DATE` environment variable
137
+ - Change timer to per-namespace instead of global
138
+ - Change non-TTY date format
139
+ - Remove `DEBUG_FD` environment variable support
140
+ - Support 256 namespace colors
141
+ * deps: router@2.0.0-alpha.1
142
+ - Add basic support for returned, rejected Promises
143
+ - Fix JSDoc for `Router` constructor
144
+ - deps: debug@3.1.0
145
+ - deps: parseurl@~1.3.2
146
+ - deps: setprototypeof@1.1.0
147
+ - deps: utils-merge@1.0.1
148
+
149
+ 5.0.0-alpha.6 / 2017-09-24
150
+ ==========================
151
+
152
+ This is the sixth Express 5.0 alpha release, based off 4.15.5 and includes
153
+ changes from 5.0.0-alpha.5.
154
+
155
+ * remove:
156
+ - `res.redirect(url, status)` signature - use `res.redirect(status, url)`
157
+ - `res.send(status, body)` signature - use `res.status(status).send(body)`
158
+ * deps: router@~1.3.1
159
+ - deps: debug@2.6.8
160
+
161
+ 5.0.0-alpha.5 / 2017-03-06
162
+ ==========================
163
+
164
+ This is the fifth Express 5.0 alpha release, based off 4.15.2 and includes
165
+ changes from 5.0.0-alpha.4.
166
+
167
+ 5.0.0-alpha.4 / 2017-03-01
168
+ ==========================
169
+
170
+ This is the fourth Express 5.0 alpha release, based off 4.15.0 and includes
171
+ changes from 5.0.0-alpha.3.
172
+
173
+ * remove:
174
+ - Remove Express 3.x middleware error stubs
175
+ * deps: router@~1.3.0
176
+ - Add `next("router")` to exit from router
177
+ - Fix case where `router.use` skipped requests routes did not
178
+ - Skip routing when `req.url` is not set
179
+ - Use `%o` in path debug to tell types apart
180
+ - deps: debug@2.6.1
181
+ - deps: setprototypeof@1.0.3
182
+ - perf: add fast match path for `*` route
183
+
184
+ 5.0.0-alpha.3 / 2017-01-28
185
+ ==========================
186
+
187
+ This is the third Express 5.0 alpha release, based off 4.14.1 and includes
188
+ changes from 5.0.0-alpha.2.
189
+
190
+ * remove:
191
+ - `res.json(status, obj)` signature - use `res.status(status).json(obj)`
192
+ - `res.jsonp(status, obj)` signature - use `res.status(status).jsonp(obj)`
193
+ - `res.vary()` (no arguments) -- provide a field name as an argument
194
+ * deps: array-flatten@2.1.1
195
+ * deps: path-is-absolute@1.0.1
196
+ * deps: router@~1.1.5
197
+ - deps: array-flatten@2.0.1
198
+ - deps: methods@~1.1.2
199
+ - deps: parseurl@~1.3.1
200
+ - deps: setprototypeof@1.0.2
201
+
202
+ 5.0.0-alpha.2 / 2015-07-06
203
+ ==========================
204
+
205
+ This is the second Express 5.0 alpha release, based off 4.13.1 and includes
206
+ changes from 5.0.0-alpha.1.
207
+
208
+ * remove:
209
+ - `app.param(fn)`
210
+ - `req.param()` -- use `req.params`, `req.body`, or `req.query` instead
211
+ * change:
212
+ - `res.render` callback is always async, even for sync view engines
213
+ - The leading `:` character in `name` for `app.param(name, fn)` is no longer removed
214
+ - Use `router` module for routing
215
+ - Use `path-is-absolute` module for absolute path detection
216
+
217
+ 5.0.0-alpha.1 / 2014-11-06
218
+ ==========================
219
+
220
+ This is the first Express 5.0 alpha release, based off 4.10.1.
221
+
222
+ * remove:
223
+ - `app.del` - use `app.delete`
224
+ - `req.acceptsCharset` - use `req.acceptsCharsets`
225
+ - `req.acceptsEncoding` - use `req.acceptsEncodings`
226
+ - `req.acceptsLanguage` - use `req.acceptsLanguages`
227
+ - `res.json(obj, status)` signature - use `res.json(status, obj)`
228
+ - `res.jsonp(obj, status)` signature - use `res.jsonp(status, obj)`
229
+ - `res.send(body, status)` signature - use `res.send(status, body)`
230
+ - `res.send(status)` signature - use `res.sendStatus(status)`
231
+ - `res.sendfile` - use `res.sendFile` instead
232
+ - `express.query` middleware
233
+ * change:
234
+ - `req.host` now returns host (`hostname:port`) - use `req.hostname` for only hostname
235
+ - `req.query` is now a getter instead of a plain property
236
+ * add:
237
+ - `app.router` is a reference to the base router
238
+
239
+ 4.20.0 / 2024-09-10
240
+ ==========
241
+ * deps: serve-static@0.16.0
242
+ * Remove link renderization in html while redirecting
243
+ * deps: send@0.19.0
244
+ * Remove link renderization in html while redirecting
245
+ * deps: body-parser@0.6.0
246
+ * add `depth` option to customize the depth level in the parser
247
+ * IMPORTANT: The default `depth` level for parsing URL-encoded data is now `32` (previously was `Infinity`)
248
+ * Remove link renderization in html while using `res.redirect`
249
+ * deps: path-to-regexp@0.1.10
250
+ - Adds support for named matching groups in the routes using a regex
251
+ - Adds backtracking protection to parameters without regexes defined
252
+ * deps: encodeurl@~2.0.0
253
+ - Removes encoding of `\`, `|`, and `^` to align better with URL spec
254
+ * Deprecate passing `options.maxAge` and `options.expires` to `res.clearCookie`
255
+ - Will be ignored in v5, clearCookie will set a cookie with an expires in the past to instruct clients to delete the cookie
256
+
257
+ 4.19.2 / 2024-03-25
258
+ ==========
259
+
260
+ * Improved fix for open redirect allow list bypass
261
+
262
+ 4.19.1 / 2024-03-20
263
+ ==========
264
+
265
+ * Allow passing non-strings to res.location with new encoding handling checks
266
+
267
+ 4.19.0 / 2024-03-20
268
+ ==========
269
+
270
+ * Prevent open redirect allow list bypass due to encodeurl
271
+ * deps: cookie@0.6.0
272
+
273
+ 4.18.3 / 2024-02-29
274
+ ==========
275
+
276
+ * Fix routing requests without method
277
+ * deps: body-parser@1.20.2
278
+ - Fix strict json error message on Node.js 19+
279
+ - deps: content-type@~1.0.5
280
+ - deps: raw-body@2.5.2
281
+ * deps: cookie@0.6.0
282
+ - Add `partitioned` option
283
+
284
+ 4.18.2 / 2022-10-08
285
+ ===================
286
+
287
+ * Fix regression routing a large stack in a single route
288
+ * deps: body-parser@1.20.1
289
+ - deps: qs@6.11.0
290
+ - perf: remove unnecessary object clone
291
+ * deps: qs@6.11.0
292
+
293
+ 4.18.1 / 2022-04-29
294
+ ===================
295
+
296
+ * Fix hanging on large stack of sync routes
297
+
298
+ 4.18.0 / 2022-04-25
299
+ ===================
300
+
301
+ * Add "root" option to `res.download`
302
+ * Allow `options` without `filename` in `res.download`
303
+ * Deprecate string and non-integer arguments to `res.status`
304
+ * Fix behavior of `null`/`undefined` as `maxAge` in `res.cookie`
305
+ * Fix handling very large stacks of sync middleware
306
+ * Ignore `Object.prototype` values in settings through `app.set`/`app.get`
307
+ * Invoke `default` with same arguments as types in `res.format`
308
+ * Support proper 205 responses using `res.send`
309
+ * Use `http-errors` for `res.format` error
310
+ * deps: body-parser@1.20.0
311
+ - Fix error message for json parse whitespace in `strict`
312
+ - Fix internal error when inflated body exceeds limit
313
+ - Prevent loss of async hooks context
314
+ - Prevent hanging when request already read
315
+ - deps: depd@2.0.0
316
+ - deps: http-errors@2.0.0
317
+ - deps: on-finished@2.4.1
318
+ - deps: qs@6.10.3
319
+ - deps: raw-body@2.5.1
320
+ * deps: cookie@0.5.0
321
+ - Add `priority` option
322
+ - Fix `expires` option to reject invalid dates
323
+ * deps: depd@2.0.0
324
+ - Replace internal `eval` usage with `Function` constructor
325
+ - Use instance methods on `process` to check for listeners
326
+ * deps: finalhandler@1.2.0
327
+ - Remove set content headers that break response
328
+ - deps: on-finished@2.4.1
329
+ - deps: statuses@2.0.1
330
+ * deps: on-finished@2.4.1
331
+ - Prevent loss of async hooks context
332
+ * deps: qs@6.10.3
333
+ * deps: send@0.18.0
334
+ - Fix emitted 416 error missing headers property
335
+ - Limit the headers removed for 304 response
336
+ - deps: depd@2.0.0
337
+ - deps: destroy@1.2.0
338
+ - deps: http-errors@2.0.0
339
+ - deps: on-finished@2.4.1
340
+ - deps: statuses@2.0.1
341
+ * deps: serve-static@1.15.0
342
+ - deps: send@0.18.0
343
+ * deps: statuses@2.0.1
344
+ - Remove code 306
345
+ - Rename `425 Unordered Collection` to standard `425 Too Early`
346
+
347
+ 4.17.3 / 2022-02-16
348
+ ===================
349
+
350
+ * deps: accepts@~1.3.8
351
+ - deps: mime-types@~2.1.34
352
+ - deps: negotiator@0.6.3
353
+ * deps: body-parser@1.19.2
354
+ - deps: bytes@3.1.2
355
+ - deps: qs@6.9.7
356
+ - deps: raw-body@2.4.3
357
+ * deps: cookie@0.4.2
358
+ * deps: qs@6.9.7
359
+ * Fix handling of `__proto__` keys
360
+ * pref: remove unnecessary regexp for trust proxy
361
+
362
+ 4.17.2 / 2021-12-16
363
+ ===================
364
+
365
+ * Fix handling of `undefined` in `res.jsonp`
366
+ * Fix handling of `undefined` when `"json escape"` is enabled
367
+ * Fix incorrect middleware execution with unanchored `RegExp`s
368
+ * Fix `res.jsonp(obj, status)` deprecation message
369
+ * Fix typo in `res.is` JSDoc
370
+ * deps: body-parser@1.19.1
371
+ - deps: bytes@3.1.1
372
+ - deps: http-errors@1.8.1
373
+ - deps: qs@6.9.6
374
+ - deps: raw-body@2.4.2
375
+ - deps: safe-buffer@5.2.1
376
+ - deps: type-is@~1.6.18
377
+ * deps: content-disposition@0.5.4
378
+ - deps: safe-buffer@5.2.1
379
+ * deps: cookie@0.4.1
380
+ - Fix `maxAge` option to reject invalid values
381
+ * deps: proxy-addr@~2.0.7
382
+ - Use `req.socket` over deprecated `req.connection`
383
+ - deps: forwarded@0.2.0
384
+ - deps: ipaddr.js@1.9.1
385
+ * deps: qs@6.9.6
386
+ * deps: safe-buffer@5.2.1
387
+ * deps: send@0.17.2
388
+ - deps: http-errors@1.8.1
389
+ - deps: ms@2.1.3
390
+ - pref: ignore empty http tokens
391
+ * deps: serve-static@1.14.2
392
+ - deps: send@0.17.2
393
+ * deps: setprototypeof@1.2.0
394
+
395
+ 4.17.1 / 2019-05-25
396
+ ===================
397
+
398
+ * Revert "Improve error message for `null`/`undefined` to `res.status`"
399
+
400
+ 4.17.0 / 2019-05-16
401
+ ===================
402
+
403
+ * Add `express.raw` to parse bodies into `Buffer`
404
+ * Add `express.text` to parse bodies into string
405
+ * Improve error message for non-strings to `res.sendFile`
406
+ * Improve error message for `null`/`undefined` to `res.status`
407
+ * Support multiple hosts in `X-Forwarded-Host`
408
+ * deps: accepts@~1.3.7
409
+ * deps: body-parser@1.19.0
410
+ - Add encoding MIK
411
+ - Add petabyte (`pb`) support
412
+ - Fix parsing array brackets after index
413
+ - deps: bytes@3.1.0
414
+ - deps: http-errors@1.7.2
415
+ - deps: iconv-lite@0.4.24
416
+ - deps: qs@6.7.0
417
+ - deps: raw-body@2.4.0
418
+ - deps: type-is@~1.6.17
419
+ * deps: content-disposition@0.5.3
420
+ * deps: cookie@0.4.0
421
+ - Add `SameSite=None` support
422
+ * deps: finalhandler@~1.1.2
423
+ - Set stricter `Content-Security-Policy` header
424
+ - deps: parseurl@~1.3.3
425
+ - deps: statuses@~1.5.0
426
+ * deps: parseurl@~1.3.3
427
+ * deps: proxy-addr@~2.0.5
428
+ - deps: ipaddr.js@1.9.0
429
+ * deps: qs@6.7.0
430
+ - Fix parsing array brackets after index
431
+ * deps: range-parser@~1.2.1
432
+ * deps: send@0.17.1
433
+ - Set stricter CSP header in redirect & error responses
434
+ - deps: http-errors@~1.7.2
435
+ - deps: mime@1.6.0
436
+ - deps: ms@2.1.1
437
+ - deps: range-parser@~1.2.1
438
+ - deps: statuses@~1.5.0
439
+ - perf: remove redundant `path.normalize` call
440
+ * deps: serve-static@1.14.1
441
+ - Set stricter CSP header in redirect response
442
+ - deps: parseurl@~1.3.3
443
+ - deps: send@0.17.1
444
+ * deps: setprototypeof@1.1.1
445
+ * deps: statuses@~1.5.0
446
+ - Add `103 Early Hints`
447
+ * deps: type-is@~1.6.18
448
+ - deps: mime-types@~2.1.24
449
+ - perf: prevent internal `throw` on invalid type
450
+
451
+ 4.16.4 / 2018-10-10
452
+ ===================
453
+
454
+ * Fix issue where `"Request aborted"` may be logged in `res.sendfile`
455
+ * Fix JSDoc for `Router` constructor
456
+ * deps: body-parser@1.18.3
457
+ - Fix deprecation warnings on Node.js 10+
458
+ - Fix stack trace for strict json parse error
459
+ - deps: depd@~1.1.2
460
+ - deps: http-errors@~1.6.3
461
+ - deps: iconv-lite@0.4.23
462
+ - deps: qs@6.5.2
463
+ - deps: raw-body@2.3.3
464
+ - deps: type-is@~1.6.16
465
+ * deps: proxy-addr@~2.0.4
466
+ - deps: ipaddr.js@1.8.0
467
+ * deps: qs@6.5.2
468
+ * deps: safe-buffer@5.1.2
469
+
470
+ 4.16.3 / 2018-03-12
471
+ ===================
472
+
473
+ * deps: accepts@~1.3.5
474
+ - deps: mime-types@~2.1.18
475
+ * deps: depd@~1.1.2
476
+ - perf: remove argument reassignment
477
+ * deps: encodeurl@~1.0.2
478
+ - Fix encoding `%` as last character
479
+ * deps: finalhandler@1.1.1
480
+ - Fix 404 output for bad / missing pathnames
481
+ - deps: encodeurl@~1.0.2
482
+ - deps: statuses@~1.4.0
483
+ * deps: proxy-addr@~2.0.3
484
+ - deps: ipaddr.js@1.6.0
485
+ * deps: send@0.16.2
486
+ - Fix incorrect end tag in default error & redirects
487
+ - deps: depd@~1.1.2
488
+ - deps: encodeurl@~1.0.2
489
+ - deps: statuses@~1.4.0
490
+ * deps: serve-static@1.13.2
491
+ - Fix incorrect end tag in redirects
492
+ - deps: encodeurl@~1.0.2
493
+ - deps: send@0.16.2
494
+ * deps: statuses@~1.4.0
495
+ * deps: type-is@~1.6.16
496
+ - deps: mime-types@~2.1.18
497
+
498
+ 4.16.2 / 2017-10-09
499
+ ===================
500
+
501
+ * Fix `TypeError` in `res.send` when given `Buffer` and `ETag` header set
502
+ * perf: skip parsing of entire `X-Forwarded-Proto` header
503
+
504
+ 4.16.1 / 2017-09-29
505
+ ===================
506
+
507
+ * deps: send@0.16.1
508
+ * deps: serve-static@1.13.1
509
+ - Fix regression when `root` is incorrectly set to a file
510
+ - deps: send@0.16.1
511
+
512
+ 4.16.0 / 2017-09-28
513
+ ===================
514
+
515
+ * Add `"json escape"` setting for `res.json` and `res.jsonp`
516
+ * Add `express.json` and `express.urlencoded` to parse bodies
517
+ * Add `options` argument to `res.download`
518
+ * Improve error message when autoloading invalid view engine
519
+ * Improve error messages when non-function provided as middleware
520
+ * Skip `Buffer` encoding when not generating ETag for small response
521
+ * Use `safe-buffer` for improved Buffer API
522
+ * deps: accepts@~1.3.4
523
+ - deps: mime-types@~2.1.16
524
+ * deps: content-type@~1.0.4
525
+ - perf: remove argument reassignment
526
+ - perf: skip parameter parsing when no parameters
527
+ * deps: etag@~1.8.1
528
+ - perf: replace regular expression with substring
529
+ * deps: finalhandler@1.1.0
530
+ - Use `res.headersSent` when available
531
+ * deps: parseurl@~1.3.2
532
+ - perf: reduce overhead for full URLs
533
+ - perf: unroll the "fast-path" `RegExp`
534
+ * deps: proxy-addr@~2.0.2
535
+ - Fix trimming leading / trailing OWS in `X-Forwarded-For`
536
+ - deps: forwarded@~0.1.2
537
+ - deps: ipaddr.js@1.5.2
538
+ - perf: reduce overhead when no `X-Forwarded-For` header
539
+ * deps: qs@6.5.1
540
+ - Fix parsing & compacting very deep objects
541
+ * deps: send@0.16.0
542
+ - Add 70 new types for file extensions
543
+ - Add `immutable` option
544
+ - Fix missing `</html>` in default error & redirects
545
+ - Set charset as "UTF-8" for .js and .json
546
+ - Use instance methods on steam to check for listeners
547
+ - deps: mime@1.4.1
548
+ - perf: improve path validation speed
549
+ * deps: serve-static@1.13.0
550
+ - Add 70 new types for file extensions
551
+ - Add `immutable` option
552
+ - Set charset as "UTF-8" for .js and .json
553
+ - deps: send@0.16.0
554
+ * deps: setprototypeof@1.1.0
555
+ * deps: utils-merge@1.0.1
556
+ * deps: vary@~1.1.2
557
+ - perf: improve header token parsing speed
558
+ * perf: re-use options object when generating ETags
559
+ * perf: remove dead `.charset` set in `res.jsonp`
560
+
561
+ 4.15.5 / 2017-09-24
562
+ ===================
563
+
564
+ * deps: debug@2.6.9
565
+ * deps: finalhandler@~1.0.6
566
+ - deps: debug@2.6.9
567
+ - deps: parseurl@~1.3.2
568
+ * deps: fresh@0.5.2
569
+ - Fix handling of modified headers with invalid dates
570
+ - perf: improve ETag match loop
571
+ - perf: improve `If-None-Match` token parsing
572
+ * deps: send@0.15.6
573
+ - Fix handling of modified headers with invalid dates
574
+ - deps: debug@2.6.9
575
+ - deps: etag@~1.8.1
576
+ - deps: fresh@0.5.2
577
+ - perf: improve `If-Match` token parsing
578
+ * deps: serve-static@1.12.6
579
+ - deps: parseurl@~1.3.2
580
+ - deps: send@0.15.6
581
+ - perf: improve slash collapsing
582
+
583
+ 4.15.4 / 2017-08-06
584
+ ===================
585
+
586
+ * deps: debug@2.6.8
587
+ * deps: depd@~1.1.1
588
+ - Remove unnecessary `Buffer` loading
589
+ * deps: finalhandler@~1.0.4
590
+ - deps: debug@2.6.8
591
+ * deps: proxy-addr@~1.1.5
592
+ - Fix array argument being altered
593
+ - deps: ipaddr.js@1.4.0
594
+ * deps: qs@6.5.0
595
+ * deps: send@0.15.4
596
+ - deps: debug@2.6.8
597
+ - deps: depd@~1.1.1
598
+ - deps: http-errors@~1.6.2
599
+ * deps: serve-static@1.12.4
600
+ - deps: send@0.15.4
601
+
602
+ 4.15.3 / 2017-05-16
603
+ ===================
604
+
605
+ * Fix error when `res.set` cannot add charset to `Content-Type`
606
+ * deps: debug@2.6.7
607
+ - Fix `DEBUG_MAX_ARRAY_LENGTH`
608
+ - deps: ms@2.0.0
609
+ * deps: finalhandler@~1.0.3
610
+ - Fix missing `</html>` in HTML document
611
+ - deps: debug@2.6.7
612
+ * deps: proxy-addr@~1.1.4
613
+ - deps: ipaddr.js@1.3.0
614
+ * deps: send@0.15.3
615
+ - deps: debug@2.6.7
616
+ - deps: ms@2.0.0
617
+ * deps: serve-static@1.12.3
618
+ - deps: send@0.15.3
619
+ * deps: type-is@~1.6.15
620
+ - deps: mime-types@~2.1.15
621
+ * deps: vary@~1.1.1
622
+ - perf: hoist regular expression
623
+
624
+ 4.15.2 / 2017-03-06
625
+ ===================
626
+
627
+ * deps: qs@6.4.0
628
+ - Fix regression parsing keys starting with `[`
629
+
630
+ 4.15.1 / 2017-03-05
631
+ ===================
632
+
633
+ * deps: send@0.15.1
634
+ - Fix issue when `Date.parse` does not return `NaN` on invalid date
635
+ - Fix strict violation in broken environments
636
+ * deps: serve-static@1.12.1
637
+ - Fix issue when `Date.parse` does not return `NaN` on invalid date
638
+ - deps: send@0.15.1
639
+
640
+ 4.15.0 / 2017-03-01
641
+ ===================
642
+
643
+ * Add debug message when loading view engine
644
+ * Add `next("router")` to exit from router
645
+ * Fix case where `router.use` skipped requests routes did not
646
+ * Remove usage of `res._headers` private field
647
+ - Improves compatibility with Node.js 8 nightly
648
+ * Skip routing when `req.url` is not set
649
+ * Use `%o` in path debug to tell types apart
650
+ * Use `Object.create` to setup request & response prototypes
651
+ * Use `setprototypeof` module to replace `__proto__` setting
652
+ * Use `statuses` instead of `http` module for status messages
653
+ * deps: debug@2.6.1
654
+ - Allow colors in workers
655
+ - Deprecated `DEBUG_FD` environment variable set to `3` or higher
656
+ - Fix error when running under React Native
657
+ - Use same color for same namespace
658
+ - deps: ms@0.7.2
659
+ * deps: etag@~1.8.0
660
+ - Use SHA1 instead of MD5 for ETag hashing
661
+ - Works with FIPS 140-2 OpenSSL configuration
662
+ * deps: finalhandler@~1.0.0
663
+ - Fix exception when `err` cannot be converted to a string
664
+ - Fully URL-encode the pathname in the 404
665
+ - Only include the pathname in the 404 message
666
+ - Send complete HTML document
667
+ - Set `Content-Security-Policy: default-src 'self'` header
668
+ - deps: debug@2.6.1
669
+ * deps: fresh@0.5.0
670
+ - Fix false detection of `no-cache` request directive
671
+ - Fix incorrect result when `If-None-Match` has both `*` and ETags
672
+ - Fix weak `ETag` matching to match spec
673
+ - perf: delay reading header values until needed
674
+ - perf: enable strict mode
675
+ - perf: hoist regular expressions
676
+ - perf: remove duplicate conditional
677
+ - perf: remove unnecessary boolean coercions
678
+ - perf: skip checking modified time if ETag check failed
679
+ - perf: skip parsing `If-None-Match` when no `ETag` header
680
+ - perf: use `Date.parse` instead of `new Date`
681
+ * deps: qs@6.3.1
682
+ - Fix array parsing from skipping empty values
683
+ - Fix compacting nested arrays
684
+ * deps: send@0.15.0
685
+ - Fix false detection of `no-cache` request directive
686
+ - Fix incorrect result when `If-None-Match` has both `*` and ETags
687
+ - Fix weak `ETag` matching to match spec
688
+ - Remove usage of `res._headers` private field
689
+ - Support `If-Match` and `If-Unmodified-Since` headers
690
+ - Use `res.getHeaderNames()` when available
691
+ - Use `res.headersSent` when available
692
+ - deps: debug@2.6.1
693
+ - deps: etag@~1.8.0
694
+ - deps: fresh@0.5.0
695
+ - deps: http-errors@~1.6.1
696
+ * deps: serve-static@1.12.0
697
+ - Fix false detection of `no-cache` request directive
698
+ - Fix incorrect result when `If-None-Match` has both `*` and ETags
699
+ - Fix weak `ETag` matching to match spec
700
+ - Remove usage of `res._headers` private field
701
+ - Send complete HTML document in redirect response
702
+ - Set default CSP header in redirect response
703
+ - Support `If-Match` and `If-Unmodified-Since` headers
704
+ - Use `res.getHeaderNames()` when available
705
+ - Use `res.headersSent` when available
706
+ - deps: send@0.15.0
707
+ * perf: add fast match path for `*` route
708
+ * perf: improve `req.ips` performance
709
+
710
+ 4.14.1 / 2017-01-28
711
+ ===================
712
+
713
+ * deps: content-disposition@0.5.2
714
+ * deps: finalhandler@0.5.1
715
+ - Fix exception when `err.headers` is not an object
716
+ - deps: statuses@~1.3.1
717
+ - perf: hoist regular expressions
718
+ - perf: remove duplicate validation path
719
+ * deps: proxy-addr@~1.1.3
720
+ - deps: ipaddr.js@1.2.0
721
+ * deps: send@0.14.2
722
+ - deps: http-errors@~1.5.1
723
+ - deps: ms@0.7.2
724
+ - deps: statuses@~1.3.1
725
+ * deps: serve-static@~1.11.2
726
+ - deps: send@0.14.2
727
+ * deps: type-is@~1.6.14
728
+ - deps: mime-types@~2.1.13
729
+
730
+ 4.14.0 / 2016-06-16
731
+ ===================
732
+
733
+ * Add `acceptRanges` option to `res.sendFile`/`res.sendfile`
734
+ * Add `cacheControl` option to `res.sendFile`/`res.sendfile`
735
+ * Add `options` argument to `req.range`
736
+ - Includes the `combine` option
737
+ * Encode URL in `res.location`/`res.redirect` if not already encoded
738
+ * Fix some redirect handling in `res.sendFile`/`res.sendfile`
739
+ * Fix Windows absolute path check using forward slashes
740
+ * Improve error with invalid arguments to `req.get()`
741
+ * Improve performance for `res.json`/`res.jsonp` in most cases
742
+ * Improve `Range` header handling in `res.sendFile`/`res.sendfile`
743
+ * deps: accepts@~1.3.3
744
+ - Fix including type extensions in parameters in `Accept` parsing
745
+ - Fix parsing `Accept` parameters with quoted equals
746
+ - Fix parsing `Accept` parameters with quoted semicolons
747
+ - Many performance improvements
748
+ - deps: mime-types@~2.1.11
749
+ - deps: negotiator@0.6.1
750
+ * deps: content-type@~1.0.2
751
+ - perf: enable strict mode
752
+ * deps: cookie@0.3.1
753
+ - Add `sameSite` option
754
+ - Fix cookie `Max-Age` to never be a floating point number
755
+ - Improve error message when `encode` is not a function
756
+ - Improve error message when `expires` is not a `Date`
757
+ - Throw better error for invalid argument to parse
758
+ - Throw on invalid values provided to `serialize`
759
+ - perf: enable strict mode
760
+ - perf: hoist regular expression
761
+ - perf: use for loop in parse
762
+ - perf: use string concatenation for serialization
763
+ * deps: finalhandler@0.5.0
764
+ - Change invalid or non-numeric status code to 500
765
+ - Overwrite status message to match set status code
766
+ - Prefer `err.statusCode` if `err.status` is invalid
767
+ - Set response headers from `err.headers` object
768
+ - Use `statuses` instead of `http` module for status messages
769
+ * deps: proxy-addr@~1.1.2
770
+ - Fix accepting various invalid netmasks
771
+ - Fix IPv6-mapped IPv4 validation edge cases
772
+ - IPv4 netmasks must be contiguous
773
+ - IPv6 addresses cannot be used as a netmask
774
+ - deps: ipaddr.js@1.1.1
775
+ * deps: qs@6.2.0
776
+ - Add `decoder` option in `parse` function
777
+ * deps: range-parser@~1.2.0
778
+ - Add `combine` option to combine overlapping ranges
779
+ - Fix incorrectly returning -1 when there is at least one valid range
780
+ - perf: remove internal function
781
+ * deps: send@0.14.1
782
+ - Add `acceptRanges` option
783
+ - Add `cacheControl` option
784
+ - Attempt to combine multiple ranges into single range
785
+ - Correctly inherit from `Stream` class
786
+ - Fix `Content-Range` header in 416 responses when using `start`/`end` options
787
+ - Fix `Content-Range` header missing from default 416 responses
788
+ - Fix redirect error when `path` contains raw non-URL characters
789
+ - Fix redirect when `path` starts with multiple forward slashes
790
+ - Ignore non-byte `Range` headers
791
+ - deps: http-errors@~1.5.0
792
+ - deps: range-parser@~1.2.0
793
+ - deps: statuses@~1.3.0
794
+ - perf: remove argument reassignment
795
+ * deps: serve-static@~1.11.1
796
+ - Add `acceptRanges` option
797
+ - Add `cacheControl` option
798
+ - Attempt to combine multiple ranges into single range
799
+ - Fix redirect error when `req.url` contains raw non-URL characters
800
+ - Ignore non-byte `Range` headers
801
+ - Use status code 301 for redirects
802
+ - deps: send@0.14.1
803
+ * deps: type-is@~1.6.13
804
+ - Fix type error when given invalid type to match against
805
+ - deps: mime-types@~2.1.11
806
+ * deps: vary@~1.1.0
807
+ - Only accept valid field names in the `field` argument
808
+ * perf: use strict equality when possible
809
+
810
+ 4.13.4 / 2016-01-21
811
+ ===================
812
+
813
+ * deps: content-disposition@0.5.1
814
+ - perf: enable strict mode
815
+ * deps: cookie@0.1.5
816
+ - Throw on invalid values provided to `serialize`
817
+ * deps: depd@~1.1.0
818
+ - Support web browser loading
819
+ - perf: enable strict mode
820
+ * deps: escape-html@~1.0.3
821
+ - perf: enable strict mode
822
+ - perf: optimize string replacement
823
+ - perf: use faster string coercion
824
+ * deps: finalhandler@0.4.1
825
+ - deps: escape-html@~1.0.3
826
+ * deps: merge-descriptors@1.0.1
827
+ - perf: enable strict mode
828
+ * deps: methods@~1.1.2
829
+ - perf: enable strict mode
830
+ * deps: parseurl@~1.3.1
831
+ - perf: enable strict mode
832
+ * deps: proxy-addr@~1.0.10
833
+ - deps: ipaddr.js@1.0.5
834
+ - perf: enable strict mode
835
+ * deps: range-parser@~1.0.3
836
+ - perf: enable strict mode
837
+ * deps: send@0.13.1
838
+ - deps: depd@~1.1.0
839
+ - deps: destroy@~1.0.4
840
+ - deps: escape-html@~1.0.3
841
+ - deps: range-parser@~1.0.3
842
+ * deps: serve-static@~1.10.2
843
+ - deps: escape-html@~1.0.3
844
+ - deps: parseurl@~1.3.0
845
+ - deps: send@0.13.1
846
+
847
+ 4.13.3 / 2015-08-02
848
+ ===================
849
+
850
+ * Fix infinite loop condition using `mergeParams: true`
851
+ * Fix inner numeric indices incorrectly altering parent `req.params`
852
+
853
+ 4.13.2 / 2015-07-31
854
+ ===================
855
+
856
+ * deps: accepts@~1.2.12
857
+ - deps: mime-types@~2.1.4
858
+ * deps: array-flatten@1.1.1
859
+ - perf: enable strict mode
860
+ * deps: path-to-regexp@0.1.7
861
+ - Fix regression with escaped round brackets and matching groups
862
+ * deps: type-is@~1.6.6
863
+ - deps: mime-types@~2.1.4
864
+
865
+ 4.13.1 / 2015-07-05
866
+ ===================
867
+
868
+ * deps: accepts@~1.2.10
869
+ - deps: mime-types@~2.1.2
870
+ * deps: qs@4.0.0
871
+ - Fix dropping parameters like `hasOwnProperty`
872
+ - Fix various parsing edge cases
873
+ * deps: type-is@~1.6.4
874
+ - deps: mime-types@~2.1.2
875
+ - perf: enable strict mode
876
+ - perf: remove argument reassignment
877
+
878
+ 4.13.0 / 2015-06-20
879
+ ===================
880
+
881
+ * Add settings to debug output
882
+ * Fix `res.format` error when only `default` provided
883
+ * Fix issue where `next('route')` in `app.param` would incorrectly skip values
884
+ * Fix hiding platform issues with `decodeURIComponent`
885
+ - Only `URIError`s are a 400
886
+ * Fix using `*` before params in routes
887
+ * Fix using capture groups before params in routes
888
+ * Simplify `res.cookie` to call `res.append`
889
+ * Use `array-flatten` module for flattening arrays
890
+ * deps: accepts@~1.2.9
891
+ - deps: mime-types@~2.1.1
892
+ - perf: avoid argument reassignment & argument slice
893
+ - perf: avoid negotiator recursive construction
894
+ - perf: enable strict mode
895
+ - perf: remove unnecessary bitwise operator
896
+ * deps: cookie@0.1.3
897
+ - perf: deduce the scope of try-catch deopt
898
+ - perf: remove argument reassignments
899
+ * deps: escape-html@1.0.2
900
+ * deps: etag@~1.7.0
901
+ - Always include entity length in ETags for hash length extensions
902
+ - Generate non-Stats ETags using MD5 only (no longer CRC32)
903
+ - Improve stat performance by removing hashing
904
+ - Improve support for JXcore
905
+ - Remove base64 padding in ETags to shorten
906
+ - Support "fake" stats objects in environments without fs
907
+ - Use MD5 instead of MD4 in weak ETags over 1KB
908
+ * deps: finalhandler@0.4.0
909
+ - Fix a false-positive when unpiping in Node.js 0.8
910
+ - Support `statusCode` property on `Error` objects
911
+ - Use `unpipe` module for unpiping requests
912
+ - deps: escape-html@1.0.2
913
+ - deps: on-finished@~2.3.0
914
+ - perf: enable strict mode
915
+ - perf: remove argument reassignment
916
+ * deps: fresh@0.3.0
917
+ - Add weak `ETag` matching support
918
+ * deps: on-finished@~2.3.0
919
+ - Add defined behavior for HTTP `CONNECT` requests
920
+ - Add defined behavior for HTTP `Upgrade` requests
921
+ - deps: ee-first@1.1.1
922
+ * deps: path-to-regexp@0.1.6
923
+ * deps: send@0.13.0
924
+ - Allow Node.js HTTP server to set `Date` response header
925
+ - Fix incorrectly removing `Content-Location` on 304 response
926
+ - Improve the default redirect response headers
927
+ - Send appropriate headers on default error response
928
+ - Use `http-errors` for standard emitted errors
929
+ - Use `statuses` instead of `http` module for status messages
930
+ - deps: escape-html@1.0.2
931
+ - deps: etag@~1.7.0
932
+ - deps: fresh@0.3.0
933
+ - deps: on-finished@~2.3.0
934
+ - perf: enable strict mode
935
+ - perf: remove unnecessary array allocations
936
+ * deps: serve-static@~1.10.0
937
+ - Add `fallthrough` option
938
+ - Fix reading options from options prototype
939
+ - Improve the default redirect response headers
940
+ - Malformed URLs now `next()` instead of 400
941
+ - deps: escape-html@1.0.2
942
+ - deps: send@0.13.0
943
+ - perf: enable strict mode
944
+ - perf: remove argument reassignment
945
+ * deps: type-is@~1.6.3
946
+ - deps: mime-types@~2.1.1
947
+ - perf: reduce try block size
948
+ - perf: remove bitwise operations
949
+ * perf: enable strict mode
950
+ * perf: isolate `app.render` try block
951
+ * perf: remove argument reassignments in application
952
+ * perf: remove argument reassignments in request prototype
953
+ * perf: remove argument reassignments in response prototype
954
+ * perf: remove argument reassignments in routing
955
+ * perf: remove argument reassignments in `View`
956
+ * perf: skip attempting to decode zero length string
957
+ * perf: use saved reference to `http.STATUS_CODES`
958
+
959
+ 4.12.4 / 2015-05-17
960
+ ===================
961
+
962
+ * deps: accepts@~1.2.7
963
+ - deps: mime-types@~2.0.11
964
+ - deps: negotiator@0.5.3
965
+ * deps: debug@~2.2.0
966
+ - deps: ms@0.7.1
967
+ * deps: depd@~1.0.1
968
+ * deps: etag@~1.6.0
969
+ - Improve support for JXcore
970
+ - Support "fake" stats objects in environments without `fs`
971
+ * deps: finalhandler@0.3.6
972
+ - deps: debug@~2.2.0
973
+ - deps: on-finished@~2.2.1
974
+ * deps: on-finished@~2.2.1
975
+ - Fix `isFinished(req)` when data buffered
976
+ * deps: proxy-addr@~1.0.8
977
+ - deps: ipaddr.js@1.0.1
978
+ * deps: qs@2.4.2
979
+ - Fix allowing parameters like `constructor`
980
+ * deps: send@0.12.3
981
+ - deps: debug@~2.2.0
982
+ - deps: depd@~1.0.1
983
+ - deps: etag@~1.6.0
984
+ - deps: ms@0.7.1
985
+ - deps: on-finished@~2.2.1
986
+ * deps: serve-static@~1.9.3
987
+ - deps: send@0.12.3
988
+ * deps: type-is@~1.6.2
989
+ - deps: mime-types@~2.0.11
990
+
991
+ 4.12.3 / 2015-03-17
992
+ ===================
993
+
994
+ * deps: accepts@~1.2.5
995
+ - deps: mime-types@~2.0.10
996
+ * deps: debug@~2.1.3
997
+ - Fix high intensity foreground color for bold
998
+ - deps: ms@0.7.0
999
+ * deps: finalhandler@0.3.4
1000
+ - deps: debug@~2.1.3
1001
+ * deps: proxy-addr@~1.0.7
1002
+ - deps: ipaddr.js@0.1.9
1003
+ * deps: qs@2.4.1
1004
+ - Fix error when parameter `hasOwnProperty` is present
1005
+ * deps: send@0.12.2
1006
+ - Throw errors early for invalid `extensions` or `index` options
1007
+ - deps: debug@~2.1.3
1008
+ * deps: serve-static@~1.9.2
1009
+ - deps: send@0.12.2
1010
+ * deps: type-is@~1.6.1
1011
+ - deps: mime-types@~2.0.10
1012
+
1013
+ 4.12.2 / 2015-03-02
1014
+ ===================
1015
+
1016
+ * Fix regression where `"Request aborted"` is logged using `res.sendFile`
1017
+
1018
+ 4.12.1 / 2015-03-01
1019
+ ===================
1020
+
1021
+ * Fix constructing application with non-configurable prototype properties
1022
+ * Fix `ECONNRESET` errors from `res.sendFile` usage
1023
+ * Fix `req.host` when using "trust proxy" hops count
1024
+ * Fix `req.protocol`/`req.secure` when using "trust proxy" hops count
1025
+ * Fix wrong `code` on aborted connections from `res.sendFile`
1026
+ * deps: merge-descriptors@1.0.0
1027
+
1028
+ 4.12.0 / 2015-02-23
1029
+ ===================
1030
+
1031
+ * Fix `"trust proxy"` setting to inherit when app is mounted
1032
+ * Generate `ETag`s for all request responses
1033
+ - No longer restricted to only responses for `GET` and `HEAD` requests
1034
+ * Use `content-type` to parse `Content-Type` headers
1035
+ * deps: accepts@~1.2.4
1036
+ - Fix preference sorting to be stable for long acceptable lists
1037
+ - deps: mime-types@~2.0.9
1038
+ - deps: negotiator@0.5.1
1039
+ * deps: cookie-signature@1.0.6
1040
+ * deps: send@0.12.1
1041
+ - Always read the stat size from the file
1042
+ - Fix mutating passed-in `options`
1043
+ - deps: mime@1.3.4
1044
+ * deps: serve-static@~1.9.1
1045
+ - deps: send@0.12.1
1046
+ * deps: type-is@~1.6.0
1047
+ - fix argument reassignment
1048
+ - fix false-positives in `hasBody` `Transfer-Encoding` check
1049
+ - support wildcard for both type and subtype (`*/*`)
1050
+ - deps: mime-types@~2.0.9
1051
+
1052
+ 4.11.2 / 2015-02-01
1053
+ ===================
1054
+
1055
+ * Fix `res.redirect` double-calling `res.end` for `HEAD` requests
1056
+ * deps: accepts@~1.2.3
1057
+ - deps: mime-types@~2.0.8
1058
+ * deps: proxy-addr@~1.0.6
1059
+ - deps: ipaddr.js@0.1.8
1060
+ * deps: type-is@~1.5.6
1061
+ - deps: mime-types@~2.0.8
1062
+
1063
+ 4.11.1 / 2015-01-20
1064
+ ===================
1065
+
1066
+ * deps: send@0.11.1
1067
+ - Fix root path disclosure
1068
+ * deps: serve-static@~1.8.1
1069
+ - Fix redirect loop in Node.js 0.11.14
1070
+ - Fix root path disclosure
1071
+ - deps: send@0.11.1
1072
+
1073
+ 4.11.0 / 2015-01-13
1074
+ ===================
1075
+
1076
+ * Add `res.append(field, val)` to append headers
1077
+ * Deprecate leading `:` in `name` for `app.param(name, fn)`
1078
+ * Deprecate `req.param()` -- use `req.params`, `req.body`, or `req.query` instead
1079
+ * Deprecate `app.param(fn)`
1080
+ * Fix `OPTIONS` responses to include the `HEAD` method properly
1081
+ * Fix `res.sendFile` not always detecting aborted connection
1082
+ * Match routes iteratively to prevent stack overflows
1083
+ * deps: accepts@~1.2.2
1084
+ - deps: mime-types@~2.0.7
1085
+ - deps: negotiator@0.5.0
1086
+ * deps: send@0.11.0
1087
+ - deps: debug@~2.1.1
1088
+ - deps: etag@~1.5.1
1089
+ - deps: ms@0.7.0
1090
+ - deps: on-finished@~2.2.0
1091
+ * deps: serve-static@~1.8.0
1092
+ - deps: send@0.11.0
1093
+
1094
+ 4.10.8 / 2015-01-13
1095
+ ===================
1096
+
1097
+ * Fix crash from error within `OPTIONS` response handler
1098
+ * deps: proxy-addr@~1.0.5
1099
+ - deps: ipaddr.js@0.1.6
1100
+
1101
+ 4.10.7 / 2015-01-04
1102
+ ===================
1103
+
1104
+ * Fix `Allow` header for `OPTIONS` to not contain duplicate methods
1105
+ * Fix incorrect "Request aborted" for `res.sendFile` when `HEAD` or 304
1106
+ * deps: debug@~2.1.1
1107
+ * deps: finalhandler@0.3.3
1108
+ - deps: debug@~2.1.1
1109
+ - deps: on-finished@~2.2.0
1110
+ * deps: methods@~1.1.1
1111
+ * deps: on-finished@~2.2.0
1112
+ * deps: serve-static@~1.7.2
1113
+ - Fix potential open redirect when mounted at root
1114
+ * deps: type-is@~1.5.5
1115
+ - deps: mime-types@~2.0.7
1116
+
1117
+ 4.10.6 / 2014-12-12
1118
+ ===================
1119
+
1120
+ * Fix exception in `req.fresh`/`req.stale` without response headers
1121
+
1122
+ 4.10.5 / 2014-12-10
1123
+ ===================
1124
+
1125
+ * Fix `res.send` double-calling `res.end` for `HEAD` requests
1126
+ * deps: accepts@~1.1.4
1127
+ - deps: mime-types@~2.0.4
1128
+ * deps: type-is@~1.5.4
1129
+ - deps: mime-types@~2.0.4
1130
+
1131
+ 4.10.4 / 2014-11-24
1132
+ ===================
1133
+
1134
+ * Fix `res.sendfile` logging standard write errors
1135
+
1136
+ 4.10.3 / 2014-11-23
1137
+ ===================
1138
+
1139
+ * Fix `res.sendFile` logging standard write errors
1140
+ * deps: etag@~1.5.1
1141
+ * deps: proxy-addr@~1.0.4
1142
+ - deps: ipaddr.js@0.1.5
1143
+ * deps: qs@2.3.3
1144
+ - Fix `arrayLimit` behavior
1145
+
1146
+ 4.10.2 / 2014-11-09
1147
+ ===================
1148
+
1149
+ * Correctly invoke async router callback asynchronously
1150
+ * deps: accepts@~1.1.3
1151
+ - deps: mime-types@~2.0.3
1152
+ * deps: type-is@~1.5.3
1153
+ - deps: mime-types@~2.0.3
1154
+
1155
+ 4.10.1 / 2014-10-28
1156
+ ===================
1157
+
1158
+ * Fix handling of URLs containing `://` in the path
1159
+ * deps: qs@2.3.2
1160
+ - Fix parsing of mixed objects and values
1161
+
1162
+ 4.10.0 / 2014-10-23
1163
+ ===================
1164
+
1165
+ * Add support for `app.set('views', array)`
1166
+ - Views are looked up in sequence in array of directories
1167
+ * Fix `res.send(status)` to mention `res.sendStatus(status)`
1168
+ * Fix handling of invalid empty URLs
1169
+ * Use `content-disposition` module for `res.attachment`/`res.download`
1170
+ - Sends standards-compliant `Content-Disposition` header
1171
+ - Full Unicode support
1172
+ * Use `path.resolve` in view lookup
1173
+ * deps: debug@~2.1.0
1174
+ - Implement `DEBUG_FD` env variable support
1175
+ * deps: depd@~1.0.0
1176
+ * deps: etag@~1.5.0
1177
+ - Improve string performance
1178
+ - Slightly improve speed for weak ETags over 1KB
1179
+ * deps: finalhandler@0.3.2
1180
+ - Terminate in progress response only on error
1181
+ - Use `on-finished` to determine request status
1182
+ - deps: debug@~2.1.0
1183
+ - deps: on-finished@~2.1.1
1184
+ * deps: on-finished@~2.1.1
1185
+ - Fix handling of pipelined requests
1186
+ * deps: qs@2.3.0
1187
+ - Fix parsing of mixed implicit and explicit arrays
1188
+ * deps: send@0.10.1
1189
+ - deps: debug@~2.1.0
1190
+ - deps: depd@~1.0.0
1191
+ - deps: etag@~1.5.0
1192
+ - deps: on-finished@~2.1.1
1193
+ * deps: serve-static@~1.7.1
1194
+ - deps: send@0.10.1
1195
+
1196
+ 4.9.8 / 2014-10-17
1197
+ ==================
1198
+
1199
+ * Fix `res.redirect` body when redirect status specified
1200
+ * deps: accepts@~1.1.2
1201
+ - Fix error when media type has invalid parameter
1202
+ - deps: negotiator@0.4.9
1203
+
1204
+ 4.9.7 / 2014-10-10
1205
+ ==================
1206
+
1207
+ * Fix using same param name in array of paths
1208
+
1209
+ 4.9.6 / 2014-10-08
1210
+ ==================
1211
+
1212
+ * deps: accepts@~1.1.1
1213
+ - deps: mime-types@~2.0.2
1214
+ - deps: negotiator@0.4.8
1215
+ * deps: serve-static@~1.6.4
1216
+ - Fix redirect loop when index file serving disabled
1217
+ * deps: type-is@~1.5.2
1218
+ - deps: mime-types@~2.0.2
1219
+
1220
+ 4.9.5 / 2014-09-24
1221
+ ==================
1222
+
1223
+ * deps: etag@~1.4.0
1224
+ * deps: proxy-addr@~1.0.3
1225
+ - Use `forwarded` npm module
1226
+ * deps: send@0.9.3
1227
+ - deps: etag@~1.4.0
1228
+ * deps: serve-static@~1.6.3
1229
+ - deps: send@0.9.3
1230
+
1231
+ 4.9.4 / 2014-09-19
1232
+ ==================
1233
+
1234
+ * deps: qs@2.2.4
1235
+ - Fix issue with object keys starting with numbers truncated
1236
+
1237
+ 4.9.3 / 2014-09-18
1238
+ ==================
1239
+
1240
+ * deps: proxy-addr@~1.0.2
1241
+ - Fix a global leak when multiple subnets are trusted
1242
+ - deps: ipaddr.js@0.1.3
1243
+
1244
+ 4.9.2 / 2014-09-17
1245
+ ==================
1246
+
1247
+ * Fix regression for empty string `path` in `app.use`
1248
+ * Fix `router.use` to accept array of middleware without path
1249
+ * Improve error message for bad `app.use` arguments
1250
+
1251
+ 4.9.1 / 2014-09-16
1252
+ ==================
1253
+
1254
+ * Fix `app.use` to accept array of middleware without path
1255
+ * deps: depd@0.4.5
1256
+ * deps: etag@~1.3.1
1257
+ * deps: send@0.9.2
1258
+ - deps: depd@0.4.5
1259
+ - deps: etag@~1.3.1
1260
+ - deps: range-parser@~1.0.2
1261
+ * deps: serve-static@~1.6.2
1262
+ - deps: send@0.9.2
1263
+
1264
+ 4.9.0 / 2014-09-08
1265
+ ==================
1266
+
1267
+ * Add `res.sendStatus`
1268
+ * Invoke callback for sendfile when client aborts
1269
+ - Applies to `res.sendFile`, `res.sendfile`, and `res.download`
1270
+ - `err` will be populated with request aborted error
1271
+ * Support IP address host in `req.subdomains`
1272
+ * Use `etag` to generate `ETag` headers
1273
+ * deps: accepts@~1.1.0
1274
+ - update `mime-types`
1275
+ * deps: cookie-signature@1.0.5
1276
+ * deps: debug@~2.0.0
1277
+ * deps: finalhandler@0.2.0
1278
+ - Set `X-Content-Type-Options: nosniff` header
1279
+ - deps: debug@~2.0.0
1280
+ * deps: fresh@0.2.4
1281
+ * deps: media-typer@0.3.0
1282
+ - Throw error when parameter format invalid on parse
1283
+ * deps: qs@2.2.3
1284
+ - Fix issue where first empty value in array is discarded
1285
+ * deps: range-parser@~1.0.2
1286
+ * deps: send@0.9.1
1287
+ - Add `lastModified` option
1288
+ - Use `etag` to generate `ETag` header
1289
+ - deps: debug@~2.0.0
1290
+ - deps: fresh@0.2.4
1291
+ * deps: serve-static@~1.6.1
1292
+ - Add `lastModified` option
1293
+ - deps: send@0.9.1
1294
+ * deps: type-is@~1.5.1
1295
+ - fix `hasbody` to be true for `content-length: 0`
1296
+ - deps: media-typer@0.3.0
1297
+ - deps: mime-types@~2.0.1
1298
+ * deps: vary@~1.0.0
1299
+ - Accept valid `Vary` header string as `field`
1300
+
1301
+ 4.8.8 / 2014-09-04
1302
+ ==================
1303
+
1304
+ * deps: send@0.8.5
1305
+ - Fix a path traversal issue when using `root`
1306
+ - Fix malicious path detection for empty string path
1307
+ * deps: serve-static@~1.5.4
1308
+ - deps: send@0.8.5
1309
+
1310
+ 4.8.7 / 2014-08-29
1311
+ ==================
1312
+
1313
+ * deps: qs@2.2.2
1314
+ - Remove unnecessary cloning
1315
+
1316
+ 4.8.6 / 2014-08-27
1317
+ ==================
1318
+
1319
+ * deps: qs@2.2.0
1320
+ - Array parsing fix
1321
+ - Performance improvements
1322
+
1323
+ 4.8.5 / 2014-08-18
1324
+ ==================
1325
+
1326
+ * deps: send@0.8.3
1327
+ - deps: destroy@1.0.3
1328
+ - deps: on-finished@2.1.0
1329
+ * deps: serve-static@~1.5.3
1330
+ - deps: send@0.8.3
1331
+
1332
+ 4.8.4 / 2014-08-14
1333
+ ==================
1334
+
1335
+ * deps: qs@1.2.2
1336
+ * deps: send@0.8.2
1337
+ - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream`
1338
+ * deps: serve-static@~1.5.2
1339
+ - deps: send@0.8.2
1340
+
1341
+ 4.8.3 / 2014-08-10
1342
+ ==================
1343
+
1344
+ * deps: parseurl@~1.3.0
1345
+ * deps: qs@1.2.1
1346
+ * deps: serve-static@~1.5.1
1347
+ - Fix parsing of weird `req.originalUrl` values
1348
+ - deps: parseurl@~1.3.0
1349
+ - deps: utils-merge@1.0.0
1350
+
1351
+ 4.8.2 / 2014-08-07
1352
+ ==================
1353
+
1354
+ * deps: qs@1.2.0
1355
+ - Fix parsing array of objects
1356
+
1357
+ 4.8.1 / 2014-08-06
1358
+ ==================
1359
+
1360
+ * fix incorrect deprecation warnings on `res.download`
1361
+ * deps: qs@1.1.0
1362
+ - Accept urlencoded square brackets
1363
+ - Accept empty values in implicit array notation
1364
+
1365
+ 4.8.0 / 2014-08-05
1366
+ ==================
1367
+
1368
+ * add `res.sendFile`
1369
+ - accepts a file system path instead of a URL
1370
+ - requires an absolute path or `root` option specified
1371
+ * deprecate `res.sendfile` -- use `res.sendFile` instead
1372
+ * support mounted app as any argument to `app.use()`
1373
+ * deps: qs@1.0.2
1374
+ - Complete rewrite
1375
+ - Limits array length to 20
1376
+ - Limits object depth to 5
1377
+ - Limits parameters to 1,000
1378
+ * deps: send@0.8.1
1379
+ - Add `extensions` option
1380
+ * deps: serve-static@~1.5.0
1381
+ - Add `extensions` option
1382
+ - deps: send@0.8.1
1383
+
1384
+ 4.7.4 / 2014-08-04
1385
+ ==================
1386
+
1387
+ * fix `res.sendfile` regression for serving directory index files
1388
+ * deps: send@0.7.4
1389
+ - Fix incorrect 403 on Windows and Node.js 0.11
1390
+ - Fix serving index files without root dir
1391
+ * deps: serve-static@~1.4.4
1392
+ - deps: send@0.7.4
1393
+
1394
+ 4.7.3 / 2014-08-04
1395
+ ==================
1396
+
1397
+ * deps: send@0.7.3
1398
+ - Fix incorrect 403 on Windows and Node.js 0.11
1399
+ * deps: serve-static@~1.4.3
1400
+ - Fix incorrect 403 on Windows and Node.js 0.11
1401
+ - deps: send@0.7.3
1402
+
1403
+ 4.7.2 / 2014-07-27
1404
+ ==================
1405
+
1406
+ * deps: depd@0.4.4
1407
+ - Work-around v8 generating empty stack traces
1408
+ * deps: send@0.7.2
1409
+ - deps: depd@0.4.4
1410
+ * deps: serve-static@~1.4.2
1411
+
1412
+ 4.7.1 / 2014-07-26
1413
+ ==================
1414
+
1415
+ * deps: depd@0.4.3
1416
+ - Fix exception when global `Error.stackTraceLimit` is too low
1417
+ * deps: send@0.7.1
1418
+ - deps: depd@0.4.3
1419
+ * deps: serve-static@~1.4.1
1420
+
1421
+ 4.7.0 / 2014-07-25
1422
+ ==================
1423
+
1424
+ * fix `req.protocol` for proxy-direct connections
1425
+ * configurable query parser with `app.set('query parser', parser)`
1426
+ - `app.set('query parser', 'extended')` parse with "qs" module
1427
+ - `app.set('query parser', 'simple')` parse with "querystring" core module
1428
+ - `app.set('query parser', false)` disable query string parsing
1429
+ - `app.set('query parser', true)` enable simple parsing
1430
+ * deprecate `res.json(status, obj)` -- use `res.status(status).json(obj)` instead
1431
+ * deprecate `res.jsonp(status, obj)` -- use `res.status(status).jsonp(obj)` instead
1432
+ * deprecate `res.send(status, body)` -- use `res.status(status).send(body)` instead
1433
+ * deps: debug@1.0.4
1434
+ * deps: depd@0.4.2
1435
+ - Add `TRACE_DEPRECATION` environment variable
1436
+ - Remove non-standard grey color from color output
1437
+ - Support `--no-deprecation` argument
1438
+ - Support `--trace-deprecation` argument
1439
+ * deps: finalhandler@0.1.0
1440
+ - Respond after request fully read
1441
+ - deps: debug@1.0.4
1442
+ * deps: parseurl@~1.2.0
1443
+ - Cache URLs based on original value
1444
+ - Remove no-longer-needed URL mis-parse work-around
1445
+ - Simplify the "fast-path" `RegExp`
1446
+ * deps: send@0.7.0
1447
+ - Add `dotfiles` option
1448
+ - Cap `maxAge` value to 1 year
1449
+ - deps: debug@1.0.4
1450
+ - deps: depd@0.4.2
1451
+ * deps: serve-static@~1.4.0
1452
+ - deps: parseurl@~1.2.0
1453
+ - deps: send@0.7.0
1454
+ * perf: prevent multiple `Buffer` creation in `res.send`
1455
+
1456
+ 4.6.1 / 2014-07-12
1457
+ ==================
1458
+
1459
+ * fix `subapp.mountpath` regression for `app.use(subapp)`
1460
+
1461
+ 4.6.0 / 2014-07-11
1462
+ ==================
1463
+
1464
+ * accept multiple callbacks to `app.use()`
1465
+ * add explicit "Rosetta Flash JSONP abuse" protection
1466
+ - previous versions are not vulnerable; this is just explicit protection
1467
+ * catch errors in multiple `req.param(name, fn)` handlers
1468
+ * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead
1469
+ * fix `res.send(status, num)` to send `num` as json (not error)
1470
+ * remove unnecessary escaping when `res.jsonp` returns JSON response
1471
+ * support non-string `path` in `app.use(path, fn)`
1472
+ - supports array of paths
1473
+ - supports `RegExp`
1474
+ * router: fix optimization on router exit
1475
+ * router: refactor location of `try` blocks
1476
+ * router: speed up standard `app.use(fn)`
1477
+ * deps: debug@1.0.3
1478
+ - Add support for multiple wildcards in namespaces
1479
+ * deps: finalhandler@0.0.3
1480
+ - deps: debug@1.0.3
1481
+ * deps: methods@1.1.0
1482
+ - add `CONNECT`
1483
+ * deps: parseurl@~1.1.3
1484
+ - faster parsing of href-only URLs
1485
+ * deps: path-to-regexp@0.1.3
1486
+ * deps: send@0.6.0
1487
+ - deps: debug@1.0.3
1488
+ * deps: serve-static@~1.3.2
1489
+ - deps: parseurl@~1.1.3
1490
+ - deps: send@0.6.0
1491
+ * perf: fix arguments reassign deopt in some `res` methods
1492
+
1493
+ 4.5.1 / 2014-07-06
1494
+ ==================
1495
+
1496
+ * fix routing regression when altering `req.method`
1497
+
1498
+ 4.5.0 / 2014-07-04
1499
+ ==================
1500
+
1501
+ * add deprecation message to non-plural `req.accepts*`
1502
+ * add deprecation message to `res.send(body, status)`
1503
+ * add deprecation message to `res.vary()`
1504
+ * add `headers` option to `res.sendfile`
1505
+ - use to set headers on successful file transfer
1506
+ * add `mergeParams` option to `Router`
1507
+ - merges `req.params` from parent routes
1508
+ * add `req.hostname` -- correct name for what `req.host` returns
1509
+ * deprecate things with `depd` module
1510
+ * deprecate `req.host` -- use `req.hostname` instead
1511
+ * fix behavior when handling request without routes
1512
+ * fix handling when `route.all` is only route
1513
+ * invoke `router.param()` only when route matches
1514
+ * restore `req.params` after invoking router
1515
+ * use `finalhandler` for final response handling
1516
+ * use `media-typer` to alter content-type charset
1517
+ * deps: accepts@~1.0.7
1518
+ * deps: send@0.5.0
1519
+ - Accept string for `maxage` (converted by `ms`)
1520
+ - Include link in default redirect response
1521
+ * deps: serve-static@~1.3.0
1522
+ - Accept string for `maxAge` (converted by `ms`)
1523
+ - Add `setHeaders` option
1524
+ - Include HTML link in redirect response
1525
+ - deps: send@0.5.0
1526
+ * deps: type-is@~1.3.2
1527
+
1528
+ 4.4.5 / 2014-06-26
1529
+ ==================
1530
+
1531
+ * deps: cookie-signature@1.0.4
1532
+ - fix for timing attacks
1533
+
1534
+ 4.4.4 / 2014-06-20
1535
+ ==================
1536
+
1537
+ * fix `res.attachment` Unicode filenames in Safari
1538
+ * fix "trim prefix" debug message in `express:router`
1539
+ * deps: accepts@~1.0.5
1540
+ * deps: buffer-crc32@0.2.3
1541
+
1542
+ 4.4.3 / 2014-06-11
1543
+ ==================
1544
+
1545
+ * fix persistence of modified `req.params[name]` from `app.param()`
1546
+ * deps: accepts@1.0.3
1547
+ - deps: negotiator@0.4.6
1548
+ * deps: debug@1.0.2
1549
+ * deps: send@0.4.3
1550
+ - Do not throw uncatchable error on file open race condition
1551
+ - Use `escape-html` for HTML escaping
1552
+ - deps: debug@1.0.2
1553
+ - deps: finished@1.2.2
1554
+ - deps: fresh@0.2.2
1555
+ * deps: serve-static@1.2.3
1556
+ - Do not throw uncatchable error on file open race condition
1557
+ - deps: send@0.4.3
1558
+
1559
+ 4.4.2 / 2014-06-09
1560
+ ==================
1561
+
1562
+ * fix catching errors from top-level handlers
1563
+ * use `vary` module for `res.vary`
1564
+ * deps: debug@1.0.1
1565
+ * deps: proxy-addr@1.0.1
1566
+ * deps: send@0.4.2
1567
+ - fix "event emitter leak" warnings
1568
+ - deps: debug@1.0.1
1569
+ - deps: finished@1.2.1
1570
+ * deps: serve-static@1.2.2
1571
+ - fix "event emitter leak" warnings
1572
+ - deps: send@0.4.2
1573
+ * deps: type-is@1.2.1
1574
+
1575
+ 4.4.1 / 2014-06-02
1576
+ ==================
1577
+
1578
+ * deps: methods@1.0.1
1579
+ * deps: send@0.4.1
1580
+ - Send `max-age` in `Cache-Control` in correct format
1581
+ * deps: serve-static@1.2.1
1582
+ - use `escape-html` for escaping
1583
+ - deps: send@0.4.1
1584
+
1585
+ 4.4.0 / 2014-05-30
1586
+ ==================
1587
+
1588
+ * custom etag control with `app.set('etag', val)`
1589
+ - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation
1590
+ - `app.set('etag', 'weak')` weak tag
1591
+ - `app.set('etag', 'strong')` strong etag
1592
+ - `app.set('etag', false)` turn off
1593
+ - `app.set('etag', true)` standard etag
1594
+ * mark `res.send` ETag as weak and reduce collisions
1595
+ * update accepts to 1.0.2
1596
+ - Fix interpretation when header not in request
1597
+ * update send to 0.4.0
1598
+ - Calculate ETag with md5 for reduced collisions
1599
+ - Ignore stream errors after request ends
1600
+ - deps: debug@0.8.1
1601
+ * update serve-static to 1.2.0
1602
+ - Calculate ETag with md5 for reduced collisions
1603
+ - Ignore stream errors after request ends
1604
+ - deps: send@0.4.0
1605
+
1606
+ 4.3.2 / 2014-05-28
1607
+ ==================
1608
+
1609
+ * fix handling of errors from `router.param()` callbacks
1610
+
1611
+ 4.3.1 / 2014-05-23
1612
+ ==================
1613
+
1614
+ * revert "fix behavior of multiple `app.VERB` for the same path"
1615
+ - this caused a regression in the order of route execution
1616
+
1617
+ 4.3.0 / 2014-05-21
1618
+ ==================
1619
+
1620
+ * add `req.baseUrl` to access the path stripped from `req.url` in routes
1621
+ * fix behavior of multiple `app.VERB` for the same path
1622
+ * fix issue routing requests among sub routers
1623
+ * invoke `router.param()` only when necessary instead of every match
1624
+ * proper proxy trust with `app.set('trust proxy', trust)`
1625
+ - `app.set('trust proxy', 1)` trust first hop
1626
+ - `app.set('trust proxy', 'loopback')` trust loopback addresses
1627
+ - `app.set('trust proxy', '10.0.0.1')` trust single IP
1628
+ - `app.set('trust proxy', '10.0.0.1/16')` trust subnet
1629
+ - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list
1630
+ - `app.set('trust proxy', false)` turn off
1631
+ - `app.set('trust proxy', true)` trust everything
1632
+ * set proper `charset` in `Content-Type` for `res.send`
1633
+ * update type-is to 1.2.0
1634
+ - support suffix matching
1635
+
1636
+ 4.2.0 / 2014-05-11
1637
+ ==================
1638
+
1639
+ * deprecate `app.del()` -- use `app.delete()` instead
1640
+ * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead
1641
+ - the edge-case `res.json(status, num)` requires `res.status(status).json(num)`
1642
+ * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead
1643
+ - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)`
1644
+ * fix `req.next` when inside router instance
1645
+ * include `ETag` header in `HEAD` requests
1646
+ * keep previous `Content-Type` for `res.jsonp`
1647
+ * support PURGE method
1648
+ - add `app.purge`
1649
+ - add `router.purge`
1650
+ - include PURGE in `app.all`
1651
+ * update debug to 0.8.0
1652
+ - add `enable()` method
1653
+ - change from stderr to stdout
1654
+ * update methods to 1.0.0
1655
+ - add PURGE
1656
+
1657
+ 4.1.2 / 2014-05-08
1658
+ ==================
1659
+
1660
+ * fix `req.host` for IPv6 literals
1661
+ * fix `res.jsonp` error if callback param is object
1662
+
1663
+ 4.1.1 / 2014-04-27
1664
+ ==================
1665
+
1666
+ * fix package.json to reflect supported node version
1667
+
1668
+ 4.1.0 / 2014-04-24
1669
+ ==================
1670
+
1671
+ * pass options from `res.sendfile` to `send`
1672
+ * preserve casing of headers in `res.header` and `res.set`
1673
+ * support unicode file names in `res.attachment` and `res.download`
1674
+ * update accepts to 1.0.1
1675
+ - deps: negotiator@0.4.0
1676
+ * update cookie to 0.1.2
1677
+ - Fix for maxAge == 0
1678
+ - made compat with expires field
1679
+ * update send to 0.3.0
1680
+ - Accept API options in options object
1681
+ - Coerce option types
1682
+ - Control whether to generate etags
1683
+ - Default directory access to 403 when index disabled
1684
+ - Fix sending files with dots without root set
1685
+ - Include file path in etag
1686
+ - Make "Can't set headers after they are sent." catchable
1687
+ - Send full entity-body for multi range requests
1688
+ - Set etags to "weak"
1689
+ - Support "If-Range" header
1690
+ - Support multiple index paths
1691
+ - deps: mime@1.2.11
1692
+ * update serve-static to 1.1.0
1693
+ - Accept options directly to `send` module
1694
+ - Resolve relative paths at middleware setup
1695
+ - Use parseurl to parse the URL from request
1696
+ - deps: send@0.3.0
1697
+ * update type-is to 1.1.0
1698
+ - add non-array values support
1699
+ - add `multipart` as a shorthand
1700
+
1701
+ 4.0.0 / 2014-04-09
1702
+ ==================
1703
+
1704
+ * remove:
1705
+ - node 0.8 support
1706
+ - connect and connect's patches except for charset handling
1707
+ - express(1) - moved to [express-generator](https://github.com/expressjs/generator)
1708
+ - `express.createServer()` - it has been deprecated for a long time. Use `express()`
1709
+ - `app.configure` - use logic in your own app code
1710
+ - `app.router` - is removed
1711
+ - `req.auth` - use `basic-auth` instead
1712
+ - `req.accepted*` - use `req.accepts*()` instead
1713
+ - `res.location` - relative URL resolution is removed
1714
+ - `res.charset` - include the charset in the content type when using `res.set()`
1715
+ - all bundled middleware except `static`
1716
+ * change:
1717
+ - `app.route` -> `app.mountpath` when mounting an express app in another express app
1718
+ - `json spaces` no longer enabled by default in development
1719
+ - `req.accepts*` -> `req.accepts*s` - i.e. `req.acceptsEncoding` -> `req.acceptsEncodings`
1720
+ - `req.params` is now an object instead of an array
1721
+ - `res.locals` is no longer a function. It is a plain js object. Treat it as such.
1722
+ - `res.headerSent` -> `res.headersSent` to match node.js ServerResponse object
1723
+ * refactor:
1724
+ - `req.accepts*` with [accepts](https://github.com/expressjs/accepts)
1725
+ - `req.is` with [type-is](https://github.com/expressjs/type-is)
1726
+ - [path-to-regexp](https://github.com/component/path-to-regexp)
1727
+ * add:
1728
+ - `app.router()` - returns the app Router instance
1729
+ - `app.route()` - Proxy to the app's `Router#route()` method to create a new route
1730
+ - Router & Route - public API
1731
+
1732
+ 3.21.2 / 2015-07-31
1733
+ ===================
1734
+
1735
+ * deps: connect@2.30.2
1736
+ - deps: body-parser@~1.13.3
1737
+ - deps: compression@~1.5.2
1738
+ - deps: errorhandler@~1.4.2
1739
+ - deps: method-override@~2.3.5
1740
+ - deps: serve-index@~1.7.2
1741
+ - deps: type-is@~1.6.6
1742
+ - deps: vhost@~3.0.1
1743
+ * deps: vary@~1.0.1
1744
+ - Fix setting empty header from empty `field`
1745
+ - perf: enable strict mode
1746
+ - perf: remove argument reassignments
1747
+
1748
+ 3.21.1 / 2015-07-05
1749
+ ===================
1750
+
1751
+ * deps: basic-auth@~1.0.3
1752
+ * deps: connect@2.30.1
1753
+ - deps: body-parser@~1.13.2
1754
+ - deps: compression@~1.5.1
1755
+ - deps: errorhandler@~1.4.1
1756
+ - deps: morgan@~1.6.1
1757
+ - deps: pause@0.1.0
1758
+ - deps: qs@4.0.0
1759
+ - deps: serve-index@~1.7.1
1760
+ - deps: type-is@~1.6.4
1761
+
1762
+ 3.21.0 / 2015-06-18
1763
+ ===================
1764
+
1765
+ * deps: basic-auth@1.0.2
1766
+ - perf: enable strict mode
1767
+ - perf: hoist regular expression
1768
+ - perf: parse with regular expressions
1769
+ - perf: remove argument reassignment
1770
+ * deps: connect@2.30.0
1771
+ - deps: body-parser@~1.13.1
1772
+ - deps: bytes@2.1.0
1773
+ - deps: compression@~1.5.0
1774
+ - deps: cookie@0.1.3
1775
+ - deps: cookie-parser@~1.3.5
1776
+ - deps: csurf@~1.8.3
1777
+ - deps: errorhandler@~1.4.0
1778
+ - deps: express-session@~1.11.3
1779
+ - deps: finalhandler@0.4.0
1780
+ - deps: fresh@0.3.0
1781
+ - deps: morgan@~1.6.0
1782
+ - deps: serve-favicon@~2.3.0
1783
+ - deps: serve-index@~1.7.0
1784
+ - deps: serve-static@~1.10.0
1785
+ - deps: type-is@~1.6.3
1786
+ * deps: cookie@0.1.3
1787
+ - perf: deduce the scope of try-catch deopt
1788
+ - perf: remove argument reassignments
1789
+ * deps: escape-html@1.0.2
1790
+ * deps: etag@~1.7.0
1791
+ - Always include entity length in ETags for hash length extensions
1792
+ - Generate non-Stats ETags using MD5 only (no longer CRC32)
1793
+ - Improve stat performance by removing hashing
1794
+ - Improve support for JXcore
1795
+ - Remove base64 padding in ETags to shorten
1796
+ - Support "fake" stats objects in environments without fs
1797
+ - Use MD5 instead of MD4 in weak ETags over 1KB
1798
+ * deps: fresh@0.3.0
1799
+ - Add weak `ETag` matching support
1800
+ * deps: mkdirp@0.5.1
1801
+ - Work in global strict mode
1802
+ * deps: send@0.13.0
1803
+ - Allow Node.js HTTP server to set `Date` response header
1804
+ - Fix incorrectly removing `Content-Location` on 304 response
1805
+ - Improve the default redirect response headers
1806
+ - Send appropriate headers on default error response
1807
+ - Use `http-errors` for standard emitted errors
1808
+ - Use `statuses` instead of `http` module for status messages
1809
+ - deps: escape-html@1.0.2
1810
+ - deps: etag@~1.7.0
1811
+ - deps: fresh@0.3.0
1812
+ - deps: on-finished@~2.3.0
1813
+ - perf: enable strict mode
1814
+ - perf: remove unnecessary array allocations
1815
+
1816
+ 3.20.3 / 2015-05-17
1817
+ ===================
1818
+
1819
+ * deps: connect@2.29.2
1820
+ - deps: body-parser@~1.12.4
1821
+ - deps: compression@~1.4.4
1822
+ - deps: connect-timeout@~1.6.2
1823
+ - deps: debug@~2.2.0
1824
+ - deps: depd@~1.0.1
1825
+ - deps: errorhandler@~1.3.6
1826
+ - deps: finalhandler@0.3.6
1827
+ - deps: method-override@~2.3.3
1828
+ - deps: morgan@~1.5.3
1829
+ - deps: qs@2.4.2
1830
+ - deps: response-time@~2.3.1
1831
+ - deps: serve-favicon@~2.2.1
1832
+ - deps: serve-index@~1.6.4
1833
+ - deps: serve-static@~1.9.3
1834
+ - deps: type-is@~1.6.2
1835
+ * deps: debug@~2.2.0
1836
+ - deps: ms@0.7.1
1837
+ * deps: depd@~1.0.1
1838
+ * deps: proxy-addr@~1.0.8
1839
+ - deps: ipaddr.js@1.0.1
1840
+ * deps: send@0.12.3
1841
+ - deps: debug@~2.2.0
1842
+ - deps: depd@~1.0.1
1843
+ - deps: etag@~1.6.0
1844
+ - deps: ms@0.7.1
1845
+ - deps: on-finished@~2.2.1
1846
+
1847
+ 3.20.2 / 2015-03-16
1848
+ ===================
1849
+
1850
+ * deps: connect@2.29.1
1851
+ - deps: body-parser@~1.12.2
1852
+ - deps: compression@~1.4.3
1853
+ - deps: connect-timeout@~1.6.1
1854
+ - deps: debug@~2.1.3
1855
+ - deps: errorhandler@~1.3.5
1856
+ - deps: express-session@~1.10.4
1857
+ - deps: finalhandler@0.3.4
1858
+ - deps: method-override@~2.3.2
1859
+ - deps: morgan@~1.5.2
1860
+ - deps: qs@2.4.1
1861
+ - deps: serve-index@~1.6.3
1862
+ - deps: serve-static@~1.9.2
1863
+ - deps: type-is@~1.6.1
1864
+ * deps: debug@~2.1.3
1865
+ - Fix high intensity foreground color for bold
1866
+ - deps: ms@0.7.0
1867
+ * deps: merge-descriptors@1.0.0
1868
+ * deps: proxy-addr@~1.0.7
1869
+ - deps: ipaddr.js@0.1.9
1870
+ * deps: send@0.12.2
1871
+ - Throw errors early for invalid `extensions` or `index` options
1872
+ - deps: debug@~2.1.3
1873
+
1874
+ 3.20.1 / 2015-02-28
1875
+ ===================
1876
+
1877
+ * Fix `req.host` when using "trust proxy" hops count
1878
+ * Fix `req.protocol`/`req.secure` when using "trust proxy" hops count
1879
+
1880
+ 3.20.0 / 2015-02-18
1881
+ ===================
1882
+
1883
+ * Fix `"trust proxy"` setting to inherit when app is mounted
1884
+ * Generate `ETag`s for all request responses
1885
+ - No longer restricted to only responses for `GET` and `HEAD` requests
1886
+ * Use `content-type` to parse `Content-Type` headers
1887
+ * deps: connect@2.29.0
1888
+ - Use `content-type` to parse `Content-Type` headers
1889
+ - deps: body-parser@~1.12.0
1890
+ - deps: compression@~1.4.1
1891
+ - deps: connect-timeout@~1.6.0
1892
+ - deps: cookie-parser@~1.3.4
1893
+ - deps: cookie-signature@1.0.6
1894
+ - deps: csurf@~1.7.0
1895
+ - deps: errorhandler@~1.3.4
1896
+ - deps: express-session@~1.10.3
1897
+ - deps: http-errors@~1.3.1
1898
+ - deps: response-time@~2.3.0
1899
+ - deps: serve-index@~1.6.2
1900
+ - deps: serve-static@~1.9.1
1901
+ - deps: type-is@~1.6.0
1902
+ * deps: cookie-signature@1.0.6
1903
+ * deps: send@0.12.1
1904
+ - Always read the stat size from the file
1905
+ - Fix mutating passed-in `options`
1906
+ - deps: mime@1.3.4
1907
+
1908
+ 3.19.2 / 2015-02-01
1909
+ ===================
1910
+
1911
+ * deps: connect@2.28.3
1912
+ - deps: compression@~1.3.1
1913
+ - deps: csurf@~1.6.6
1914
+ - deps: errorhandler@~1.3.3
1915
+ - deps: express-session@~1.10.2
1916
+ - deps: serve-index@~1.6.1
1917
+ - deps: type-is@~1.5.6
1918
+ * deps: proxy-addr@~1.0.6
1919
+ - deps: ipaddr.js@0.1.8
1920
+
1921
+ 3.19.1 / 2015-01-20
1922
+ ===================
1923
+
1924
+ * deps: connect@2.28.2
1925
+ - deps: body-parser@~1.10.2
1926
+ - deps: serve-static@~1.8.1
1927
+ * deps: send@0.11.1
1928
+ - Fix root path disclosure
1929
+
1930
+ 3.19.0 / 2015-01-09
1931
+ ===================
1932
+
1933
+ * Fix `OPTIONS` responses to include the `HEAD` method property
1934
+ * Use `readline` for prompt in `express(1)`
1935
+ * deps: commander@2.6.0
1936
+ * deps: connect@2.28.1
1937
+ - deps: body-parser@~1.10.1
1938
+ - deps: compression@~1.3.0
1939
+ - deps: connect-timeout@~1.5.0
1940
+ - deps: csurf@~1.6.4
1941
+ - deps: debug@~2.1.1
1942
+ - deps: errorhandler@~1.3.2
1943
+ - deps: express-session@~1.10.1
1944
+ - deps: finalhandler@0.3.3
1945
+ - deps: method-override@~2.3.1
1946
+ - deps: morgan@~1.5.1
1947
+ - deps: serve-favicon@~2.2.0
1948
+ - deps: serve-index@~1.6.0
1949
+ - deps: serve-static@~1.8.0
1950
+ - deps: type-is@~1.5.5
1951
+ * deps: debug@~2.1.1
1952
+ * deps: methods@~1.1.1
1953
+ * deps: proxy-addr@~1.0.5
1954
+ - deps: ipaddr.js@0.1.6
1955
+ * deps: send@0.11.0
1956
+ - deps: debug@~2.1.1
1957
+ - deps: etag@~1.5.1
1958
+ - deps: ms@0.7.0
1959
+ - deps: on-finished@~2.2.0
1960
+
1961
+ 3.18.6 / 2014-12-12
1962
+ ===================
1963
+
1964
+ * Fix exception in `req.fresh`/`req.stale` without response headers
1965
+
1966
+ 3.18.5 / 2014-12-11
1967
+ ===================
1968
+
1969
+ * deps: connect@2.27.6
1970
+ - deps: compression@~1.2.2
1971
+ - deps: express-session@~1.9.3
1972
+ - deps: http-errors@~1.2.8
1973
+ - deps: serve-index@~1.5.3
1974
+ - deps: type-is@~1.5.4
1975
+
1976
+ 3.18.4 / 2014-11-23
1977
+ ===================
1978
+
1979
+ * deps: connect@2.27.4
1980
+ - deps: body-parser@~1.9.3
1981
+ - deps: compression@~1.2.1
1982
+ - deps: errorhandler@~1.2.3
1983
+ - deps: express-session@~1.9.2
1984
+ - deps: qs@2.3.3
1985
+ - deps: serve-favicon@~2.1.7
1986
+ - deps: serve-static@~1.5.1
1987
+ - deps: type-is@~1.5.3
1988
+ * deps: etag@~1.5.1
1989
+ * deps: proxy-addr@~1.0.4
1990
+ - deps: ipaddr.js@0.1.5
1991
+
1992
+ 3.18.3 / 2014-11-09
1993
+ ===================
1994
+
1995
+ * deps: connect@2.27.3
1996
+ - Correctly invoke async callback asynchronously
1997
+ - deps: csurf@~1.6.3
1998
+
1999
+ 3.18.2 / 2014-10-28
2000
+ ===================
2001
+
2002
+ * deps: connect@2.27.2
2003
+ - Fix handling of URLs containing `://` in the path
2004
+ - deps: body-parser@~1.9.2
2005
+ - deps: qs@2.3.2
2006
+
2007
+ 3.18.1 / 2014-10-22
2008
+ ===================
2009
+
2010
+ * Fix internal `utils.merge` deprecation warnings
2011
+ * deps: connect@2.27.1
2012
+ - deps: body-parser@~1.9.1
2013
+ - deps: express-session@~1.9.1
2014
+ - deps: finalhandler@0.3.2
2015
+ - deps: morgan@~1.4.1
2016
+ - deps: qs@2.3.0
2017
+ - deps: serve-static@~1.7.1
2018
+ * deps: send@0.10.1
2019
+ - deps: on-finished@~2.1.1
2020
+
2021
+ 3.18.0 / 2014-10-17
2022
+ ===================
2023
+
2024
+ * Use `content-disposition` module for `res.attachment`/`res.download`
2025
+ - Sends standards-compliant `Content-Disposition` header
2026
+ - Full Unicode support
2027
+ * Use `etag` module to generate `ETag` headers
2028
+ * deps: connect@2.27.0
2029
+ - Use `http-errors` module for creating errors
2030
+ - Use `utils-merge` module for merging objects
2031
+ - deps: body-parser@~1.9.0
2032
+ - deps: compression@~1.2.0
2033
+ - deps: connect-timeout@~1.4.0
2034
+ - deps: debug@~2.1.0
2035
+ - deps: depd@~1.0.0
2036
+ - deps: express-session@~1.9.0
2037
+ - deps: finalhandler@0.3.1
2038
+ - deps: method-override@~2.3.0
2039
+ - deps: morgan@~1.4.0
2040
+ - deps: response-time@~2.2.0
2041
+ - deps: serve-favicon@~2.1.6
2042
+ - deps: serve-index@~1.5.0
2043
+ - deps: serve-static@~1.7.0
2044
+ * deps: debug@~2.1.0
2045
+ - Implement `DEBUG_FD` env variable support
2046
+ * deps: depd@~1.0.0
2047
+ * deps: send@0.10.0
2048
+ - deps: debug@~2.1.0
2049
+ - deps: depd@~1.0.0
2050
+ - deps: etag@~1.5.0
2051
+
2052
+ 3.17.8 / 2014-10-15
2053
+ ===================
2054
+
2055
+ * deps: connect@2.26.6
2056
+ - deps: compression@~1.1.2
2057
+ - deps: csurf@~1.6.2
2058
+ - deps: errorhandler@~1.2.2
2059
+
2060
+ 3.17.7 / 2014-10-08
2061
+ ===================
2062
+
2063
+ * deps: connect@2.26.5
2064
+ - Fix accepting non-object arguments to `logger`
2065
+ - deps: serve-static@~1.6.4
2066
+
2067
+ 3.17.6 / 2014-10-02
2068
+ ===================
2069
+
2070
+ * deps: connect@2.26.4
2071
+ - deps: morgan@~1.3.2
2072
+ - deps: type-is@~1.5.2
2073
+
2074
+ 3.17.5 / 2014-09-24
2075
+ ===================
2076
+
2077
+ * deps: connect@2.26.3
2078
+ - deps: body-parser@~1.8.4
2079
+ - deps: serve-favicon@~2.1.5
2080
+ - deps: serve-static@~1.6.3
2081
+ * deps: proxy-addr@~1.0.3
2082
+ - Use `forwarded` npm module
2083
+ * deps: send@0.9.3
2084
+ - deps: etag@~1.4.0
2085
+
2086
+ 3.17.4 / 2014-09-19
2087
+ ===================
2088
+
2089
+ * deps: connect@2.26.2
2090
+ - deps: body-parser@~1.8.3
2091
+ - deps: qs@2.2.4
2092
+
2093
+ 3.17.3 / 2014-09-18
2094
+ ===================
2095
+
2096
+ * deps: proxy-addr@~1.0.2
2097
+ - Fix a global leak when multiple subnets are trusted
2098
+ - deps: ipaddr.js@0.1.3
2099
+
2100
+ 3.17.2 / 2014-09-15
2101
+ ===================
2102
+
2103
+ * Use `crc` instead of `buffer-crc32` for speed
2104
+ * deps: connect@2.26.1
2105
+ - deps: body-parser@~1.8.2
2106
+ - deps: depd@0.4.5
2107
+ - deps: express-session@~1.8.2
2108
+ - deps: morgan@~1.3.1
2109
+ - deps: serve-favicon@~2.1.3
2110
+ - deps: serve-static@~1.6.2
2111
+ * deps: depd@0.4.5
2112
+ * deps: send@0.9.2
2113
+ - deps: depd@0.4.5
2114
+ - deps: etag@~1.3.1
2115
+ - deps: range-parser@~1.0.2
2116
+
2117
+ 3.17.1 / 2014-09-08
2118
+ ===================
2119
+
2120
+ * Fix error in `req.subdomains` on empty host
2121
+
2122
+ 3.17.0 / 2014-09-08
2123
+ ===================
2124
+
2125
+ * Support `X-Forwarded-Host` in `req.subdomains`
2126
+ * Support IP address host in `req.subdomains`
2127
+ * deps: connect@2.26.0
2128
+ - deps: body-parser@~1.8.1
2129
+ - deps: compression@~1.1.0
2130
+ - deps: connect-timeout@~1.3.0
2131
+ - deps: cookie-parser@~1.3.3
2132
+ - deps: cookie-signature@1.0.5
2133
+ - deps: csurf@~1.6.1
2134
+ - deps: debug@~2.0.0
2135
+ - deps: errorhandler@~1.2.0
2136
+ - deps: express-session@~1.8.1
2137
+ - deps: finalhandler@0.2.0
2138
+ - deps: fresh@0.2.4
2139
+ - deps: media-typer@0.3.0
2140
+ - deps: method-override@~2.2.0
2141
+ - deps: morgan@~1.3.0
2142
+ - deps: qs@2.2.3
2143
+ - deps: serve-favicon@~2.1.3
2144
+ - deps: serve-index@~1.2.1
2145
+ - deps: serve-static@~1.6.1
2146
+ - deps: type-is@~1.5.1
2147
+ - deps: vhost@~3.0.0
2148
+ * deps: cookie-signature@1.0.5
2149
+ * deps: debug@~2.0.0
2150
+ * deps: fresh@0.2.4
2151
+ * deps: media-typer@0.3.0
2152
+ - Throw error when parameter format invalid on parse
2153
+ * deps: range-parser@~1.0.2
2154
+ * deps: send@0.9.1
2155
+ - Add `lastModified` option
2156
+ - Use `etag` to generate `ETag` header
2157
+ - deps: debug@~2.0.0
2158
+ - deps: fresh@0.2.4
2159
+ * deps: vary@~1.0.0
2160
+ - Accept valid `Vary` header string as `field`
2161
+
2162
+ 3.16.10 / 2014-09-04
2163
+ ====================
2164
+
2165
+ * deps: connect@2.25.10
2166
+ - deps: serve-static@~1.5.4
2167
+ * deps: send@0.8.5
2168
+ - Fix a path traversal issue when using `root`
2169
+ - Fix malicious path detection for empty string path
2170
+
2171
+ 3.16.9 / 2014-08-29
2172
+ ===================
2173
+
2174
+ * deps: connect@2.25.9
2175
+ - deps: body-parser@~1.6.7
2176
+ - deps: qs@2.2.2
2177
+
2178
+ 3.16.8 / 2014-08-27
2179
+ ===================
2180
+
2181
+ * deps: connect@2.25.8
2182
+ - deps: body-parser@~1.6.6
2183
+ - deps: csurf@~1.4.1
2184
+ - deps: qs@2.2.0
2185
+
2186
+ 3.16.7 / 2014-08-18
2187
+ ===================
2188
+
2189
+ * deps: connect@2.25.7
2190
+ - deps: body-parser@~1.6.5
2191
+ - deps: express-session@~1.7.6
2192
+ - deps: morgan@~1.2.3
2193
+ - deps: serve-static@~1.5.3
2194
+ * deps: send@0.8.3
2195
+ - deps: destroy@1.0.3
2196
+ - deps: on-finished@2.1.0
2197
+
2198
+ 3.16.6 / 2014-08-14
2199
+ ===================
2200
+
2201
+ * deps: connect@2.25.6
2202
+ - deps: body-parser@~1.6.4
2203
+ - deps: qs@1.2.2
2204
+ - deps: serve-static@~1.5.2
2205
+ * deps: send@0.8.2
2206
+ - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream`
2207
+
2208
+ 3.16.5 / 2014-08-11
2209
+ ===================
2210
+
2211
+ * deps: connect@2.25.5
2212
+ - Fix backwards compatibility in `logger`
2213
+
2214
+ 3.16.4 / 2014-08-10
2215
+ ===================
2216
+
2217
+ * Fix original URL parsing in `res.location`
2218
+ * deps: connect@2.25.4
2219
+ - Fix `query` middleware breaking with argument
2220
+ - deps: body-parser@~1.6.3
2221
+ - deps: compression@~1.0.11
2222
+ - deps: connect-timeout@~1.2.2
2223
+ - deps: express-session@~1.7.5
2224
+ - deps: method-override@~2.1.3
2225
+ - deps: on-headers@~1.0.0
2226
+ - deps: parseurl@~1.3.0
2227
+ - deps: qs@1.2.1
2228
+ - deps: response-time@~2.0.1
2229
+ - deps: serve-index@~1.1.6
2230
+ - deps: serve-static@~1.5.1
2231
+ * deps: parseurl@~1.3.0
2232
+
2233
+ 3.16.3 / 2014-08-07
2234
+ ===================
2235
+
2236
+ * deps: connect@2.25.3
2237
+ - deps: multiparty@3.3.2
2238
+
2239
+ 3.16.2 / 2014-08-07
2240
+ ===================
2241
+
2242
+ * deps: connect@2.25.2
2243
+ - deps: body-parser@~1.6.2
2244
+ - deps: qs@1.2.0
2245
+
2246
+ 3.16.1 / 2014-08-06
2247
+ ===================
2248
+
2249
+ * deps: connect@2.25.1
2250
+ - deps: body-parser@~1.6.1
2251
+ - deps: qs@1.1.0
2252
+
2253
+ 3.16.0 / 2014-08-05
2254
+ ===================
2255
+
2256
+ * deps: connect@2.25.0
2257
+ - deps: body-parser@~1.6.0
2258
+ - deps: compression@~1.0.10
2259
+ - deps: csurf@~1.4.0
2260
+ - deps: express-session@~1.7.4
2261
+ - deps: qs@1.0.2
2262
+ - deps: serve-static@~1.5.0
2263
+ * deps: send@0.8.1
2264
+ - Add `extensions` option
2265
+
2266
+ 3.15.3 / 2014-08-04
2267
+ ===================
2268
+
2269
+ * fix `res.sendfile` regression for serving directory index files
2270
+ * deps: connect@2.24.3
2271
+ - deps: serve-index@~1.1.5
2272
+ - deps: serve-static@~1.4.4
2273
+ * deps: send@0.7.4
2274
+ - Fix incorrect 403 on Windows and Node.js 0.11
2275
+ - Fix serving index files without root dir
2276
+
2277
+ 3.15.2 / 2014-07-27
2278
+ ===================
2279
+
2280
+ * deps: connect@2.24.2
2281
+ - deps: body-parser@~1.5.2
2282
+ - deps: depd@0.4.4
2283
+ - deps: express-session@~1.7.2
2284
+ - deps: morgan@~1.2.2
2285
+ - deps: serve-static@~1.4.2
2286
+ * deps: depd@0.4.4
2287
+ - Work-around v8 generating empty stack traces
2288
+ * deps: send@0.7.2
2289
+ - deps: depd@0.4.4
2290
+
2291
+ 3.15.1 / 2014-07-26
2292
+ ===================
2293
+
2294
+ * deps: connect@2.24.1
2295
+ - deps: body-parser@~1.5.1
2296
+ - deps: depd@0.4.3
2297
+ - deps: express-session@~1.7.1
2298
+ - deps: morgan@~1.2.1
2299
+ - deps: serve-index@~1.1.4
2300
+ - deps: serve-static@~1.4.1
2301
+ * deps: depd@0.4.3
2302
+ - Fix exception when global `Error.stackTraceLimit` is too low
2303
+ * deps: send@0.7.1
2304
+ - deps: depd@0.4.3
2305
+
2306
+ 3.15.0 / 2014-07-22
2307
+ ===================
2308
+
2309
+ * Fix `req.protocol` for proxy-direct connections
2310
+ * Pass options from `res.sendfile` to `send`
2311
+ * deps: connect@2.24.0
2312
+ - deps: body-parser@~1.5.0
2313
+ - deps: compression@~1.0.9
2314
+ - deps: connect-timeout@~1.2.1
2315
+ - deps: debug@1.0.4
2316
+ - deps: depd@0.4.2
2317
+ - deps: express-session@~1.7.0
2318
+ - deps: finalhandler@0.1.0
2319
+ - deps: method-override@~2.1.2
2320
+ - deps: morgan@~1.2.0
2321
+ - deps: multiparty@3.3.1
2322
+ - deps: parseurl@~1.2.0
2323
+ - deps: serve-static@~1.4.0
2324
+ * deps: debug@1.0.4
2325
+ * deps: depd@0.4.2
2326
+ - Add `TRACE_DEPRECATION` environment variable
2327
+ - Remove non-standard grey color from color output
2328
+ - Support `--no-deprecation` argument
2329
+ - Support `--trace-deprecation` argument
2330
+ * deps: parseurl@~1.2.0
2331
+ - Cache URLs based on original value
2332
+ - Remove no-longer-needed URL mis-parse work-around
2333
+ - Simplify the "fast-path" `RegExp`
2334
+ * deps: send@0.7.0
2335
+ - Add `dotfiles` option
2336
+ - Cap `maxAge` value to 1 year
2337
+ - deps: debug@1.0.4
2338
+ - deps: depd@0.4.2
2339
+
2340
+ 3.14.0 / 2014-07-11
2341
+ ===================
2342
+
2343
+ * add explicit "Rosetta Flash JSONP abuse" protection
2344
+ - previous versions are not vulnerable; this is just explicit protection
2345
+ * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead
2346
+ * fix `res.send(status, num)` to send `num` as json (not error)
2347
+ * remove unnecessary escaping when `res.jsonp` returns JSON response
2348
+ * deps: basic-auth@1.0.0
2349
+ - support empty password
2350
+ - support empty username
2351
+ * deps: connect@2.23.0
2352
+ - deps: debug@1.0.3
2353
+ - deps: express-session@~1.6.4
2354
+ - deps: method-override@~2.1.0
2355
+ - deps: parseurl@~1.1.3
2356
+ - deps: serve-static@~1.3.1
2357
+ * deps: debug@1.0.3
2358
+ - Add support for multiple wildcards in namespaces
2359
+ * deps: methods@1.1.0
2360
+ - add `CONNECT`
2361
+ * deps: parseurl@~1.1.3
2362
+ - faster parsing of href-only URLs
2363
+
2364
+ 3.13.0 / 2014-07-03
2365
+ ===================
2366
+
2367
+ * add deprecation message to `app.configure`
2368
+ * add deprecation message to `req.auth`
2369
+ * use `basic-auth` to parse `Authorization` header
2370
+ * deps: connect@2.22.0
2371
+ - deps: csurf@~1.3.0
2372
+ - deps: express-session@~1.6.1
2373
+ - deps: multiparty@3.3.0
2374
+ - deps: serve-static@~1.3.0
2375
+ * deps: send@0.5.0
2376
+ - Accept string for `maxage` (converted by `ms`)
2377
+ - Include link in default redirect response
2378
+
2379
+ 3.12.1 / 2014-06-26
2380
+ ===================
2381
+
2382
+ * deps: connect@2.21.1
2383
+ - deps: cookie-parser@1.3.2
2384
+ - deps: cookie-signature@1.0.4
2385
+ - deps: express-session@~1.5.2
2386
+ - deps: type-is@~1.3.2
2387
+ * deps: cookie-signature@1.0.4
2388
+ - fix for timing attacks
2389
+
2390
+ 3.12.0 / 2014-06-21
2391
+ ===================
2392
+
2393
+ * use `media-typer` to alter content-type charset
2394
+ * deps: connect@2.21.0
2395
+ - deprecate `connect(middleware)` -- use `app.use(middleware)` instead
2396
+ - deprecate `connect.createServer()` -- use `connect()` instead
2397
+ - fix `res.setHeader()` patch to work with get -> append -> set pattern
2398
+ - deps: compression@~1.0.8
2399
+ - deps: errorhandler@~1.1.1
2400
+ - deps: express-session@~1.5.0
2401
+ - deps: serve-index@~1.1.3
2402
+
2403
+ 3.11.0 / 2014-06-19
2404
+ ===================
2405
+
2406
+ * deprecate things with `depd` module
2407
+ * deps: buffer-crc32@0.2.3
2408
+ * deps: connect@2.20.2
2409
+ - deprecate `verify` option to `json` -- use `body-parser` npm module instead
2410
+ - deprecate `verify` option to `urlencoded` -- use `body-parser` npm module instead
2411
+ - deprecate things with `depd` module
2412
+ - use `finalhandler` for final response handling
2413
+ - use `media-typer` to parse `content-type` for charset
2414
+ - deps: body-parser@1.4.3
2415
+ - deps: connect-timeout@1.1.1
2416
+ - deps: cookie-parser@1.3.1
2417
+ - deps: csurf@1.2.2
2418
+ - deps: errorhandler@1.1.0
2419
+ - deps: express-session@1.4.0
2420
+ - deps: multiparty@3.2.9
2421
+ - deps: serve-index@1.1.2
2422
+ - deps: type-is@1.3.1
2423
+ - deps: vhost@2.0.0
2424
+
2425
+ 3.10.5 / 2014-06-11
2426
+ ===================
2427
+
2428
+ * deps: connect@2.19.6
2429
+ - deps: body-parser@1.3.1
2430
+ - deps: compression@1.0.7
2431
+ - deps: debug@1.0.2
2432
+ - deps: serve-index@1.1.1
2433
+ - deps: serve-static@1.2.3
2434
+ * deps: debug@1.0.2
2435
+ * deps: send@0.4.3
2436
+ - Do not throw uncatchable error on file open race condition
2437
+ - Use `escape-html` for HTML escaping
2438
+ - deps: debug@1.0.2
2439
+ - deps: finished@1.2.2
2440
+ - deps: fresh@0.2.2
2441
+
2442
+ 3.10.4 / 2014-06-09
2443
+ ===================
2444
+
2445
+ * deps: connect@2.19.5
2446
+ - fix "event emitter leak" warnings
2447
+ - deps: csurf@1.2.1
2448
+ - deps: debug@1.0.1
2449
+ - deps: serve-static@1.2.2
2450
+ - deps: type-is@1.2.1
2451
+ * deps: debug@1.0.1
2452
+ * deps: send@0.4.2
2453
+ - fix "event emitter leak" warnings
2454
+ - deps: finished@1.2.1
2455
+ - deps: debug@1.0.1
2456
+
2457
+ 3.10.3 / 2014-06-05
2458
+ ===================
2459
+
2460
+ * use `vary` module for `res.vary`
2461
+ * deps: connect@2.19.4
2462
+ - deps: errorhandler@1.0.2
2463
+ - deps: method-override@2.0.2
2464
+ - deps: serve-favicon@2.0.1
2465
+ * deps: debug@1.0.0
2466
+
2467
+ 3.10.2 / 2014-06-03
2468
+ ===================
2469
+
2470
+ * deps: connect@2.19.3
2471
+ - deps: compression@1.0.6
2472
+
2473
+ 3.10.1 / 2014-06-03
2474
+ ===================
2475
+
2476
+ * deps: connect@2.19.2
2477
+ - deps: compression@1.0.4
2478
+ * deps: proxy-addr@1.0.1
2479
+
2480
+ 3.10.0 / 2014-06-02
2481
+ ===================
2482
+
2483
+ * deps: connect@2.19.1
2484
+ - deprecate `methodOverride()` -- use `method-override` npm module instead
2485
+ - deps: body-parser@1.3.0
2486
+ - deps: method-override@2.0.1
2487
+ - deps: multiparty@3.2.8
2488
+ - deps: response-time@2.0.0
2489
+ - deps: serve-static@1.2.1
2490
+ * deps: methods@1.0.1
2491
+ * deps: send@0.4.1
2492
+ - Send `max-age` in `Cache-Control` in correct format
2493
+
2494
+ 3.9.0 / 2014-05-30
2495
+ ==================
2496
+
2497
+ * custom etag control with `app.set('etag', val)`
2498
+ - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation
2499
+ - `app.set('etag', 'weak')` weak tag
2500
+ - `app.set('etag', 'strong')` strong etag
2501
+ - `app.set('etag', false)` turn off
2502
+ - `app.set('etag', true)` standard etag
2503
+ * Include ETag in HEAD requests
2504
+ * mark `res.send` ETag as weak and reduce collisions
2505
+ * update connect to 2.18.0
2506
+ - deps: compression@1.0.3
2507
+ - deps: serve-index@1.1.0
2508
+ - deps: serve-static@1.2.0
2509
+ * update send to 0.4.0
2510
+ - Calculate ETag with md5 for reduced collisions
2511
+ - Ignore stream errors after request ends
2512
+ - deps: debug@0.8.1
2513
+
2514
+ 3.8.1 / 2014-05-27
2515
+ ==================
2516
+
2517
+ * update connect to 2.17.3
2518
+ - deps: body-parser@1.2.2
2519
+ - deps: express-session@1.2.1
2520
+ - deps: method-override@1.0.2
2521
+
2522
+ 3.8.0 / 2014-05-21
2523
+ ==================
2524
+
2525
+ * keep previous `Content-Type` for `res.jsonp`
2526
+ * set proper `charset` in `Content-Type` for `res.send`
2527
+ * update connect to 2.17.1
2528
+ - fix `res.charset` appending charset when `content-type` has one
2529
+ - deps: express-session@1.2.0
2530
+ - deps: morgan@1.1.1
2531
+ - deps: serve-index@1.0.3
2532
+
2533
+ 3.7.0 / 2014-05-18
2534
+ ==================
2535
+
2536
+ * proper proxy trust with `app.set('trust proxy', trust)`
2537
+ - `app.set('trust proxy', 1)` trust first hop
2538
+ - `app.set('trust proxy', 'loopback')` trust loopback addresses
2539
+ - `app.set('trust proxy', '10.0.0.1')` trust single IP
2540
+ - `app.set('trust proxy', '10.0.0.1/16')` trust subnet
2541
+ - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list
2542
+ - `app.set('trust proxy', false)` turn off
2543
+ - `app.set('trust proxy', true)` trust everything
2544
+ * update connect to 2.16.2
2545
+ - deprecate `res.headerSent` -- use `res.headersSent`
2546
+ - deprecate `res.on("header")` -- use on-headers module instead
2547
+ - fix edge-case in `res.appendHeader` that would append in wrong order
2548
+ - json: use body-parser
2549
+ - urlencoded: use body-parser
2550
+ - dep: bytes@1.0.0
2551
+ - dep: cookie-parser@1.1.0
2552
+ - dep: csurf@1.2.0
2553
+ - dep: express-session@1.1.0
2554
+ - dep: method-override@1.0.1
2555
+
2556
+ 3.6.0 / 2014-05-09
2557
+ ==================
2558
+
2559
+ * deprecate `app.del()` -- use `app.delete()` instead
2560
+ * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead
2561
+ - the edge-case `res.json(status, num)` requires `res.status(status).json(num)`
2562
+ * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead
2563
+ - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)`
2564
+ * support PURGE method
2565
+ - add `app.purge`
2566
+ - add `router.purge`
2567
+ - include PURGE in `app.all`
2568
+ * update connect to 2.15.0
2569
+ * Add `res.appendHeader`
2570
+ * Call error stack even when response has been sent
2571
+ * Patch `res.headerSent` to return Boolean
2572
+ * Patch `res.headersSent` for node.js 0.8
2573
+ * Prevent default 404 handler after response sent
2574
+ * dep: compression@1.0.2
2575
+ * dep: connect-timeout@1.1.0
2576
+ * dep: debug@^0.8.0
2577
+ * dep: errorhandler@1.0.1
2578
+ * dep: express-session@1.0.4
2579
+ * dep: morgan@1.0.1
2580
+ * dep: serve-favicon@2.0.0
2581
+ * dep: serve-index@1.0.2
2582
+ * update debug to 0.8.0
2583
+ * add `enable()` method
2584
+ * change from stderr to stdout
2585
+ * update methods to 1.0.0
2586
+ - add PURGE
2587
+ * update mkdirp to 0.5.0
2588
+
2589
+ 3.5.3 / 2014-05-08
2590
+ ==================
2591
+
2592
+ * fix `req.host` for IPv6 literals
2593
+ * fix `res.jsonp` error if callback param is object
2594
+
2595
+ 3.5.2 / 2014-04-24
2596
+ ==================
2597
+
2598
+ * update connect to 2.14.5
2599
+ * update cookie to 0.1.2
2600
+ * update mkdirp to 0.4.0
2601
+ * update send to 0.3.0
2602
+
2603
+ 3.5.1 / 2014-03-25
2604
+ ==================
2605
+
2606
+ * pin less-middleware in generated app
2607
+
2608
+ 3.5.0 / 2014-03-06
2609
+ ==================
2610
+
2611
+ * bump deps
2612
+
2613
+ 3.4.8 / 2014-01-13
2614
+ ==================
2615
+
2616
+ * prevent incorrect automatic OPTIONS responses #1868 @dpatti
2617
+ * update binary and examples for jade 1.0 #1876 @yossi, #1877 @reqshark, #1892 @matheusazzi
2618
+ * throw 400 in case of malformed paths @rlidwka
2619
+
2620
+ 3.4.7 / 2013-12-10
2621
+ ==================
2622
+
2623
+ * update connect
2624
+
2625
+ 3.4.6 / 2013-12-01
2626
+ ==================
2627
+
2628
+ * update connect (raw-body)
2629
+
2630
+ 3.4.5 / 2013-11-27
2631
+ ==================
2632
+
2633
+ * update connect
2634
+ * res.location: remove leading ./ #1802 @kapouer
2635
+ * res.redirect: fix `res.redirect('toString') #1829 @michaelficarra
2636
+ * res.send: always send ETag when content-length > 0
2637
+ * router: add Router.all() method
2638
+
2639
+ 3.4.4 / 2013-10-29
2640
+ ==================
2641
+
2642
+ * update connect
2643
+ * update supertest
2644
+ * update methods
2645
+ * express(1): replace bodyParser() with urlencoded() and json() #1795 @chirag04
2646
+
2647
+ 3.4.3 / 2013-10-23
2648
+ ==================
2649
+
2650
+ * update connect
2651
+
2652
+ 3.4.2 / 2013-10-18
2653
+ ==================
2654
+
2655
+ * update connect
2656
+ * downgrade commander
2657
+
2658
+ 3.4.1 / 2013-10-15
2659
+ ==================
2660
+
2661
+ * update connect
2662
+ * update commander
2663
+ * jsonp: check if callback is a function
2664
+ * router: wrap encodeURIComponent in a try/catch #1735 (@lxe)
2665
+ * res.format: now includes charset @1747 (@sorribas)
2666
+ * res.links: allow multiple calls @1746 (@sorribas)
2667
+
2668
+ 3.4.0 / 2013-09-07
2669
+ ==================
2670
+
2671
+ * add res.vary(). Closes #1682
2672
+ * update connect
2673
+
2674
+ 3.3.8 / 2013-09-02
2675
+ ==================
2676
+
2677
+ * update connect
2678
+
2679
+ 3.3.7 / 2013-08-28
2680
+ ==================
2681
+
2682
+ * update connect
2683
+
2684
+ 3.3.6 / 2013-08-27
2685
+ ==================
2686
+
2687
+ * Revert "remove charset from json responses. Closes #1631" (causes issues in some clients)
2688
+ * add: req.accepts take an argument list
2689
+
2690
+ 3.3.4 / 2013-07-08
2691
+ ==================
2692
+
2693
+ * update send and connect
2694
+
2695
+ 3.3.3 / 2013-07-04
2696
+ ==================
2697
+
2698
+ * update connect
2699
+
2700
+ 3.3.2 / 2013-07-03
2701
+ ==================
2702
+
2703
+ * update connect
2704
+ * update send
2705
+ * remove .version export
2706
+
2707
+ 3.3.1 / 2013-06-27
2708
+ ==================
2709
+
2710
+ * update connect
2711
+
2712
+ 3.3.0 / 2013-06-26
2713
+ ==================
2714
+
2715
+ * update connect
2716
+ * add support for multiple X-Forwarded-Proto values. Closes #1646
2717
+ * change: remove charset from json responses. Closes #1631
2718
+ * change: return actual booleans from req.accept* functions
2719
+ * fix jsonp callback array throw
2720
+
2721
+ 3.2.6 / 2013-06-02
2722
+ ==================
2723
+
2724
+ * update connect
2725
+
2726
+ 3.2.5 / 2013-05-21
2727
+ ==================
2728
+
2729
+ * update connect
2730
+ * update node-cookie
2731
+ * add: throw a meaningful error when there is no default engine
2732
+ * change generation of ETags with res.send() to GET requests only. Closes #1619
2733
+
2734
+ 3.2.4 / 2013-05-09
2735
+ ==================
2736
+
2737
+ * fix `req.subdomains` when no Host is present
2738
+ * fix `req.host` when no Host is present, return undefined
2739
+
2740
+ 3.2.3 / 2013-05-07
2741
+ ==================
2742
+
2743
+ * update connect / qs
2744
+
2745
+ 3.2.2 / 2013-05-03
2746
+ ==================
2747
+
2748
+ * update qs
2749
+
2750
+ 3.2.1 / 2013-04-29
2751
+ ==================
2752
+
2753
+ * add app.VERB() paths array deprecation warning
2754
+ * update connect
2755
+ * update qs and remove all ~ semver crap
2756
+ * fix: accept number as value of Signed Cookie
2757
+
2758
+ 3.2.0 / 2013-04-15
2759
+ ==================
2760
+
2761
+ * add "view" constructor setting to override view behaviour
2762
+ * add req.acceptsEncoding(name)
2763
+ * add req.acceptedEncodings
2764
+ * revert cookie signature change causing session race conditions
2765
+ * fix sorting of Accept values of the same quality
2766
+
2767
+ 3.1.2 / 2013-04-12
2768
+ ==================
2769
+
2770
+ * add support for custom Accept parameters
2771
+ * update cookie-signature
2772
+
2773
+ 3.1.1 / 2013-04-01
2774
+ ==================
2775
+
2776
+ * add X-Forwarded-Host support to `req.host`
2777
+ * fix relative redirects
2778
+ * update mkdirp
2779
+ * update buffer-crc32
2780
+ * remove legacy app.configure() method from app template.
2781
+
2782
+ 3.1.0 / 2013-01-25
2783
+ ==================
2784
+
2785
+ * add support for leading "." in "view engine" setting
2786
+ * add array support to `res.set()`
2787
+ * add node 0.8.x to travis.yml
2788
+ * add "subdomain offset" setting for tweaking `req.subdomains`
2789
+ * add `res.location(url)` implementing `res.redirect()`-like setting of Location
2790
+ * use app.get() for x-powered-by setting for inheritance
2791
+ * fix colons in passwords for `req.auth`
2792
+
2793
+ 3.0.6 / 2013-01-04
2794
+ ==================
2795
+
2796
+ * add http verb methods to Router
2797
+ * update connect
2798
+ * fix mangling of the `res.cookie()` options object
2799
+ * fix jsonp whitespace escape. Closes #1132
2800
+
2801
+ 3.0.5 / 2012-12-19
2802
+ ==================
2803
+
2804
+ * add throwing when a non-function is passed to a route
2805
+ * fix: explicitly remove Transfer-Encoding header from 204 and 304 responses
2806
+ * revert "add 'etag' option"
2807
+
2808
+ 3.0.4 / 2012-12-05
2809
+ ==================
2810
+
2811
+ * add 'etag' option to disable `res.send()` Etags
2812
+ * add escaping of urls in text/plain in `res.redirect()`
2813
+ for old browsers interpreting as html
2814
+ * change crc32 module for a more liberal license
2815
+ * update connect
2816
+
2817
+ 3.0.3 / 2012-11-13
2818
+ ==================
2819
+
2820
+ * update connect
2821
+ * update cookie module
2822
+ * fix cookie max-age
2823
+
2824
+ 3.0.2 / 2012-11-08
2825
+ ==================
2826
+
2827
+ * add OPTIONS to cors example. Closes #1398
2828
+ * fix route chaining regression. Closes #1397
2829
+
2830
+ 3.0.1 / 2012-11-01
2831
+ ==================
2832
+
2833
+ * update connect
2834
+
2835
+ 3.0.0 / 2012-10-23
2836
+ ==================
2837
+
2838
+ * add `make clean`
2839
+ * add "Basic" check to req.auth
2840
+ * add `req.auth` test coverage
2841
+ * add cb && cb(payload) to `res.jsonp()`. Closes #1374
2842
+ * add backwards compat for `res.redirect()` status. Closes #1336
2843
+ * add support for `res.json()` to retain previously defined Content-Types. Closes #1349
2844
+ * update connect
2845
+ * change `res.redirect()` to utilize a pathname-relative Location again. Closes #1382
2846
+ * remove non-primitive string support for `res.send()`
2847
+ * fix view-locals example. Closes #1370
2848
+ * fix route-separation example
2849
+
2850
+ 3.0.0rc5 / 2012-09-18
2851
+ ==================
2852
+
2853
+ * update connect
2854
+ * add redis search example
2855
+ * add static-files example
2856
+ * add "x-powered-by" setting (`app.disable('x-powered-by')`)
2857
+ * add "application/octet-stream" redirect Accept test case. Closes #1317
2858
+
2859
+ 3.0.0rc4 / 2012-08-30
2860
+ ==================
2861
+
2862
+ * add `res.jsonp()`. Closes #1307
2863
+ * add "verbose errors" option to error-pages example
2864
+ * add another route example to express(1) so people are not so confused
2865
+ * add redis online user activity tracking example
2866
+ * update connect dep
2867
+ * fix etag quoting. Closes #1310
2868
+ * fix error-pages 404 status
2869
+ * fix jsonp callback char restrictions
2870
+ * remove old OPTIONS default response
2871
+
2872
+ 3.0.0rc3 / 2012-08-13
2873
+ ==================
2874
+
2875
+ * update connect dep
2876
+ * fix signed cookies to work with `connect.cookieParser()` ("s:" prefix was missing) [tnydwrds]
2877
+ * fix `res.render()` clobbering of "locals"
2878
+
2879
+ 3.0.0rc2 / 2012-08-03
2880
+ ==================
2881
+
2882
+ * add CORS example
2883
+ * update connect dep
2884
+ * deprecate `.createServer()` & remove old stale examples
2885
+ * fix: escape `res.redirect()` link
2886
+ * fix vhost example
2887
+
2888
+ 3.0.0rc1 / 2012-07-24
2889
+ ==================
2890
+
2891
+ * add more examples to view-locals
2892
+ * add scheme-relative redirects (`res.redirect("//foo.com")`) support
2893
+ * update cookie dep
2894
+ * update connect dep
2895
+ * update send dep
2896
+ * fix `express(1)` -h flag, use -H for hogan. Closes #1245
2897
+ * fix `res.sendfile()` socket error handling regression
2898
+
2899
+ 3.0.0beta7 / 2012-07-16
2900
+ ==================
2901
+
2902
+ * update connect dep for `send()` root normalization regression
2903
+
2904
+ 3.0.0beta6 / 2012-07-13
2905
+ ==================
2906
+
2907
+ * add `err.view` property for view errors. Closes #1226
2908
+ * add "jsonp callback name" setting
2909
+ * add support for "/foo/:bar*" non-greedy matches
2910
+ * change `res.sendfile()` to use `send()` module
2911
+ * change `res.send` to use "response-send" module
2912
+ * remove `app.locals.use` and `res.locals.use`, use regular middleware
2913
+
2914
+ 3.0.0beta5 / 2012-07-03
2915
+ ==================
2916
+
2917
+ * add "make check" support
2918
+ * add route-map example
2919
+ * add `res.json(obj, status)` support back for BC
2920
+ * add "methods" dep, remove internal methods module
2921
+ * update connect dep
2922
+ * update auth example to utilize cores pbkdf2
2923
+ * updated tests to use "supertest"
2924
+
2925
+ 3.0.0beta4 / 2012-06-25
2926
+ ==================
2927
+
2928
+ * Added `req.auth`
2929
+ * Added `req.range(size)`
2930
+ * Added `res.links(obj)`
2931
+ * Added `res.send(body, status)` support back for backwards compat
2932
+ * Added `.default()` support to `res.format()`
2933
+ * Added 2xx / 304 check to `req.fresh`
2934
+ * Revert "Added + support to the router"
2935
+ * Fixed `res.send()` freshness check, respect res.statusCode
2936
+
2937
+ 3.0.0beta3 / 2012-06-15
2938
+ ==================
2939
+
2940
+ * Added hogan `--hjs` to express(1) [nullfirm]
2941
+ * Added another example to content-negotiation
2942
+ * Added `fresh` dep
2943
+ * Changed: `res.send()` always checks freshness
2944
+ * Fixed: expose connects mime module. Closes #1165
2945
+
2946
+ 3.0.0beta2 / 2012-06-06
2947
+ ==================
2948
+
2949
+ * Added `+` support to the router
2950
+ * Added `req.host`
2951
+ * Changed `req.param()` to check route first
2952
+ * Update connect dep
2953
+
2954
+ 3.0.0beta1 / 2012-06-01
2955
+ ==================
2956
+
2957
+ * Added `res.format()` callback to override default 406 behaviour
2958
+ * Fixed `res.redirect()` 406. Closes #1154
2959
+
2960
+ 3.0.0alpha5 / 2012-05-30
2961
+ ==================
2962
+
2963
+ * Added `req.ip`
2964
+ * Added `{ signed: true }` option to `res.cookie()`
2965
+ * Removed `res.signedCookie()`
2966
+ * Changed: dont reverse `req.ips`
2967
+ * Fixed "trust proxy" setting check for `req.ips`
2968
+
2969
+ 3.0.0alpha4 / 2012-05-09
2970
+ ==================
2971
+
2972
+ * Added: allow `[]` in jsonp callback. Closes #1128
2973
+ * Added `PORT` env var support in generated template. Closes #1118 [benatkin]
2974
+ * Updated: connect 2.2.2
2975
+
2976
+ 3.0.0alpha3 / 2012-05-04
2977
+ ==================
2978
+
2979
+ * Added public `app.routes`. Closes #887
2980
+ * Added _view-locals_ example
2981
+ * Added _mvc_ example
2982
+ * Added `res.locals.use()`. Closes #1120
2983
+ * Added conditional-GET support to `res.send()`
2984
+ * Added: coerce `res.set()` values to strings
2985
+ * Changed: moved `static()` in generated apps below router
2986
+ * Changed: `res.send()` only set ETag when not previously set
2987
+ * Changed connect 2.2.1 dep
2988
+ * Changed: `make test` now runs unit / acceptance tests
2989
+ * Fixed req/res proto inheritance
2990
+
2991
+ 3.0.0alpha2 / 2012-04-26
2992
+ ==================
2993
+
2994
+ * Added `make benchmark` back
2995
+ * Added `res.send()` support for `String` objects
2996
+ * Added client-side data exposing example
2997
+ * Added `res.header()` and `req.header()` aliases for BC
2998
+ * Added `express.createServer()` for BC
2999
+ * Perf: memoize parsed urls
3000
+ * Perf: connect 2.2.0 dep
3001
+ * Changed: make `expressInit()` middleware self-aware
3002
+ * Fixed: use app.get() for all core settings
3003
+ * Fixed redis session example
3004
+ * Fixed session example. Closes #1105
3005
+ * Fixed generated express dep. Closes #1078
3006
+
3007
+ 3.0.0alpha1 / 2012-04-15
3008
+ ==================
3009
+
3010
+ * Added `app.locals.use(callback)`
3011
+ * Added `app.locals` object
3012
+ * Added `app.locals(obj)`
3013
+ * Added `res.locals` object
3014
+ * Added `res.locals(obj)`
3015
+ * Added `res.format()` for content-negotiation
3016
+ * Added `app.engine()`
3017
+ * Added `res.cookie()` JSON cookie support
3018
+ * Added "trust proxy" setting
3019
+ * Added `req.subdomains`
3020
+ * Added `req.protocol`
3021
+ * Added `req.secure`
3022
+ * Added `req.path`
3023
+ * Added `req.ips`
3024
+ * Added `req.fresh`
3025
+ * Added `req.stale`
3026
+ * Added comma-delimited / array support for `req.accepts()`
3027
+ * Added debug instrumentation
3028
+ * Added `res.set(obj)`
3029
+ * Added `res.set(field, value)`
3030
+ * Added `res.get(field)`
3031
+ * Added `app.get(setting)`. Closes #842
3032
+ * Added `req.acceptsLanguage()`
3033
+ * Added `req.acceptsCharset()`
3034
+ * Added `req.accepted`
3035
+ * Added `req.acceptedLanguages`
3036
+ * Added `req.acceptedCharsets`
3037
+ * Added "json replacer" setting
3038
+ * Added "json spaces" setting
3039
+ * Added X-Forwarded-Proto support to `res.redirect()`. Closes #92
3040
+ * Added `--less` support to express(1)
3041
+ * Added `express.response` prototype
3042
+ * Added `express.request` prototype
3043
+ * Added `express.application` prototype
3044
+ * Added `app.path()`
3045
+ * Added `app.render()`
3046
+ * Added `res.type()` to replace `res.contentType()`
3047
+ * Changed: `res.redirect()` to add relative support
3048
+ * Changed: enable "jsonp callback" by default
3049
+ * Changed: renamed "case sensitive routes" to "case sensitive routing"
3050
+ * Rewrite of all tests with mocha
3051
+ * Removed "root" setting
3052
+ * Removed `res.redirect('home')` support
3053
+ * Removed `req.notify()`
3054
+ * Removed `app.register()`
3055
+ * Removed `app.redirect()`
3056
+ * Removed `app.is()`
3057
+ * Removed `app.helpers()`
3058
+ * Removed `app.dynamicHelpers()`
3059
+ * Fixed `res.sendfile()` with non-GET. Closes #723
3060
+ * Fixed express(1) public dir for windows. Closes #866
3061
+
3062
+ 2.5.9/ 2012-04-02
3063
+ ==================
3064
+
3065
+ * Added support for PURGE request method [pbuyle]
3066
+ * Fixed `express(1)` generated app `app.address()` before `listening` [mmalecki]
3067
+
3068
+ 2.5.8 / 2012-02-08
3069
+ ==================
3070
+
3071
+ * Update mkdirp dep. Closes #991
3072
+
3073
+ 2.5.7 / 2012-02-06
3074
+ ==================
3075
+
3076
+ * Fixed `app.all` duplicate DELETE requests [mscdex]
3077
+
3078
+ 2.5.6 / 2012-01-13
3079
+ ==================
3080
+
3081
+ * Updated hamljs dev dep. Closes #953
3082
+
3083
+ 2.5.5 / 2012-01-08
3084
+ ==================
3085
+
3086
+ * Fixed: set `filename` on cached templates [matthewleon]
3087
+
3088
+ 2.5.4 / 2012-01-02
3089
+ ==================
3090
+
3091
+ * Fixed `express(1)` eol on 0.4.x. Closes #947
3092
+
3093
+ 2.5.3 / 2011-12-30
3094
+ ==================
3095
+
3096
+ * Fixed `req.is()` when a charset is present
3097
+
3098
+ 2.5.2 / 2011-12-10
3099
+ ==================
3100
+
3101
+ * Fixed: express(1) LF -> CRLF for windows
3102
+
3103
+ 2.5.1 / 2011-11-17
3104
+ ==================
3105
+
3106
+ * Changed: updated connect to 1.8.x
3107
+ * Removed sass.js support from express(1)
3108
+
3109
+ 2.5.0 / 2011-10-24
3110
+ ==================
3111
+
3112
+ * Added ./routes dir for generated app by default
3113
+ * Added npm install reminder to express(1) app gen
3114
+ * Added 0.5.x support
3115
+ * Removed `make test-cov` since it wont work with node 0.5.x
3116
+ * Fixed express(1) public dir for windows. Closes #866
3117
+
3118
+ 2.4.7 / 2011-10-05
3119
+ ==================
3120
+
3121
+ * Added mkdirp to express(1). Closes #795
3122
+ * Added simple _json-config_ example
3123
+ * Added shorthand for the parsed request's pathname via `req.path`
3124
+ * Changed connect dep to 1.7.x to fix npm issue...
3125
+ * Fixed `res.redirect()` __HEAD__ support. [reported by xerox]
3126
+ * Fixed `req.flash()`, only escape args
3127
+ * Fixed absolute path checking on windows. Closes #829 [reported by andrewpmckenzie]
3128
+
3129
+ 2.4.6 / 2011-08-22
3130
+ ==================
3131
+
3132
+ * Fixed multiple param callback regression. Closes #824 [reported by TroyGoode]
3133
+
3134
+ 2.4.5 / 2011-08-19
3135
+ ==================
3136
+
3137
+ * Added support for routes to handle errors. Closes #809
3138
+ * Added `app.routes.all()`. Closes #803
3139
+ * Added "basepath" setting to work in conjunction with reverse proxies etc.
3140
+ * Refactored `Route` to use a single array of callbacks
3141
+ * Added support for multiple callbacks for `app.param()`. Closes #801
3142
+ Closes #805
3143
+ * Changed: removed .call(self) for route callbacks
3144
+ * Dependency: `qs >= 0.3.1`
3145
+ * Fixed `res.redirect()` on windows due to `join()` usage. Closes #808
3146
+
3147
+ 2.4.4 / 2011-08-05
3148
+ ==================
3149
+
3150
+ * Fixed `res.header()` intention of a set, even when `undefined`
3151
+ * Fixed `*`, value no longer required
3152
+ * Fixed `res.send(204)` support. Closes #771
3153
+
3154
+ 2.4.3 / 2011-07-14
3155
+ ==================
3156
+
3157
+ * Added docs for `status` option special-case. Closes #739
3158
+ * Fixed `options.filename`, exposing the view path to template engines
3159
+
3160
+ 2.4.2. / 2011-07-06
3161
+ ==================
3162
+
3163
+ * Revert "removed jsonp stripping" for XSS
3164
+
3165
+ 2.4.1 / 2011-07-06
3166
+ ==================
3167
+
3168
+ * Added `res.json()` JSONP support. Closes #737
3169
+ * Added _extending-templates_ example. Closes #730
3170
+ * Added "strict routing" setting for trailing slashes
3171
+ * Added support for multiple envs in `app.configure()` calls. Closes #735
3172
+ * Changed: `res.send()` using `res.json()`
3173
+ * Changed: when cookie `path === null` don't default it
3174
+ * Changed; default cookie path to "home" setting. Closes #731
3175
+ * Removed _pids/logs_ creation from express(1)
3176
+
3177
+ 2.4.0 / 2011-06-28
3178
+ ==================
3179
+
3180
+ * Added chainable `res.status(code)`
3181
+ * Added `res.json()`, an explicit version of `res.send(obj)`
3182
+ * Added simple web-service example
3183
+
3184
+ 2.3.12 / 2011-06-22
3185
+ ==================
3186
+
3187
+ * \#express is now on freenode! come join!
3188
+ * Added `req.get(field, param)`
3189
+ * Added links to Japanese documentation, thanks @hideyukisaito!
3190
+ * Added; the `express(1)` generated app outputs the env
3191
+ * Added `content-negotiation` example
3192
+ * Dependency: connect >= 1.5.1 < 2.0.0
3193
+ * Fixed view layout bug. Closes #720
3194
+ * Fixed; ignore body on 304. Closes #701
3195
+
3196
+ 2.3.11 / 2011-06-04
3197
+ ==================
3198
+
3199
+ * Added `npm test`
3200
+ * Removed generation of dummy test file from `express(1)`
3201
+ * Fixed; `express(1)` adds express as a dep
3202
+ * Fixed; prune on `prepublish`
3203
+
3204
+ 2.3.10 / 2011-05-27
3205
+ ==================
3206
+
3207
+ * Added `req.route`, exposing the current route
3208
+ * Added _package.json_ generation support to `express(1)`
3209
+ * Fixed call to `app.param()` function for optional params. Closes #682
3210
+
3211
+ 2.3.9 / 2011-05-25
3212
+ ==================
3213
+
3214
+ * Fixed bug-ish with `../' in `res.partial()` calls
3215
+
3216
+ 2.3.8 / 2011-05-24
3217
+ ==================
3218
+
3219
+ * Fixed `app.options()`
3220
+
3221
+ 2.3.7 / 2011-05-23
3222
+ ==================
3223
+
3224
+ * Added route `Collection`, ex: `app.get('/user/:id').remove();`
3225
+ * Added support for `app.param(fn)` to define param logic
3226
+ * Removed `app.param()` support for callback with return value
3227
+ * Removed module.parent check from express(1) generated app. Closes #670
3228
+ * Refactored router. Closes #639
3229
+
3230
+ 2.3.6 / 2011-05-20
3231
+ ==================
3232
+
3233
+ * Changed; using devDependencies instead of git submodules
3234
+ * Fixed redis session example
3235
+ * Fixed markdown example
3236
+ * Fixed view caching, should not be enabled in development
3237
+
3238
+ 2.3.5 / 2011-05-20
3239
+ ==================
3240
+
3241
+ * Added export `.view` as alias for `.View`
3242
+
3243
+ 2.3.4 / 2011-05-08
3244
+ ==================
3245
+
3246
+ * Added `./examples/say`
3247
+ * Fixed `res.sendfile()` bug preventing the transfer of files with spaces
3248
+
3249
+ 2.3.3 / 2011-05-03
3250
+ ==================
3251
+
3252
+ * Added "case sensitive routes" option.
3253
+ * Changed; split methods supported per rfc [slaskis]
3254
+ * Fixed route-specific middleware when using the same callback function several times
3255
+
3256
+ 2.3.2 / 2011-04-27
3257
+ ==================
3258
+
3259
+ * Fixed view hints
3260
+
3261
+ 2.3.1 / 2011-04-26
3262
+ ==================
3263
+
3264
+ * Added `app.match()` as `app.match.all()`
3265
+ * Added `app.lookup()` as `app.lookup.all()`
3266
+ * Added `app.remove()` for `app.remove.all()`
3267
+ * Added `app.remove.VERB()`
3268
+ * Fixed template caching collision issue. Closes #644
3269
+ * Moved router over from connect and started refactor
3270
+
3271
+ 2.3.0 / 2011-04-25
3272
+ ==================
3273
+
3274
+ * Added options support to `res.clearCookie()`
3275
+ * Added `res.helpers()` as alias of `res.locals()`
3276
+ * Added; json defaults to UTF-8 with `res.send()`. Closes #632. [Daniel * Dependency `connect >= 1.4.0`
3277
+ * Changed; auto set Content-Type in res.attachement [Aaron Heckmann]
3278
+ * Renamed "cache views" to "view cache". Closes #628
3279
+ * Fixed caching of views when using several apps. Closes #637
3280
+ * Fixed gotcha invoking `app.param()` callbacks once per route middleware.
3281
+ Closes #638
3282
+ * Fixed partial lookup precedence. Closes #631
3283
+ Shaw]
3284
+
3285
+ 2.2.2 / 2011-04-12
3286
+ ==================
3287
+
3288
+ * Added second callback support for `res.download()` connection errors
3289
+ * Fixed `filename` option passing to template engine
3290
+
3291
+ 2.2.1 / 2011-04-04
3292
+ ==================
3293
+
3294
+ * Added `layout(path)` helper to change the layout within a view. Closes #610
3295
+ * Fixed `partial()` collection object support.
3296
+ Previously only anything with `.length` would work.
3297
+ When `.length` is present one must still be aware of holes,
3298
+ however now `{ collection: {foo: 'bar'}}` is valid, exposes
3299
+ `keyInCollection` and `keysInCollection`.
3300
+
3301
+ * Performance improved with better view caching
3302
+ * Removed `request` and `response` locals
3303
+ * Changed; errorHandler page title is now `Express` instead of `Connect`
3304
+
3305
+ 2.2.0 / 2011-03-30
3306
+ ==================
3307
+
3308
+ * Added `app.lookup.VERB()`, ex `app.lookup.put('/user/:id')`. Closes #606
3309
+ * Added `app.match.VERB()`, ex `app.match.put('/user/12')`. Closes #606
3310
+ * Added `app.VERB(path)` as alias of `app.lookup.VERB()`.
3311
+ * Dependency `connect >= 1.2.0`
3312
+
3313
+ 2.1.1 / 2011-03-29
3314
+ ==================
3315
+
3316
+ * Added; expose `err.view` object when failing to locate a view
3317
+ * Fixed `res.partial()` call `next(err)` when no callback is given [reported by aheckmann]
3318
+ * Fixed; `res.send(undefined)` responds with 204 [aheckmann]
3319
+
3320
+ 2.1.0 / 2011-03-24
3321
+ ==================
3322
+
3323
+ * Added `<root>/_?<name>` partial lookup support. Closes #447
3324
+ * Added `request`, `response`, and `app` local variables
3325
+ * Added `settings` local variable, containing the app's settings
3326
+ * Added `req.flash()` exception if `req.session` is not available
3327
+ * Added `res.send(bool)` support (json response)
3328
+ * Fixed stylus example for latest version
3329
+ * Fixed; wrap try/catch around `res.render()`
3330
+
3331
+ 2.0.0 / 2011-03-17
3332
+ ==================
3333
+
3334
+ * Fixed up index view path alternative.
3335
+ * Changed; `res.locals()` without object returns the locals
3336
+
3337
+ 2.0.0rc3 / 2011-03-17
3338
+ ==================
3339
+
3340
+ * Added `res.locals(obj)` to compliment `res.local(key, val)`
3341
+ * Added `res.partial()` callback support
3342
+ * Fixed recursive error reporting issue in `res.render()`
3343
+
3344
+ 2.0.0rc2 / 2011-03-17
3345
+ ==================
3346
+
3347
+ * Changed; `partial()` "locals" are now optional
3348
+ * Fixed `SlowBuffer` support. Closes #584 [reported by tyrda01]
3349
+ * Fixed .filename view engine option [reported by drudge]
3350
+ * Fixed blog example
3351
+ * Fixed `{req,res}.app` reference when mounting [Ben Weaver]
3352
+
3353
+ 2.0.0rc / 2011-03-14
3354
+ ==================
3355
+
3356
+ * Fixed; expose `HTTPSServer` constructor
3357
+ * Fixed express(1) default test charset. Closes #579 [reported by secoif]
3358
+ * Fixed; default charset to utf-8 instead of utf8 for lame IE [reported by NickP]
3359
+
3360
+ 2.0.0beta3 / 2011-03-09
3361
+ ==================
3362
+
3363
+ * Added support for `res.contentType()` literal
3364
+ The original `res.contentType('.json')`,
3365
+ `res.contentType('application/json')`, and `res.contentType('json')`
3366
+ will work now.
3367
+ * Added `res.render()` status option support back
3368
+ * Added charset option for `res.render()`
3369
+ * Added `.charset` support (via connect 1.0.4)
3370
+ * Added view resolution hints when in development and a lookup fails
3371
+ * Added layout lookup support relative to the page view.
3372
+ For example while rendering `./views/user/index.jade` if you create
3373
+ `./views/user/layout.jade` it will be used in favour of the root layout.
3374
+ * Fixed `res.redirect()`. RFC states absolute url [reported by unlink]
3375
+ * Fixed; default `res.send()` string charset to utf8
3376
+ * Removed `Partial` constructor (not currently used)
3377
+
3378
+ 2.0.0beta2 / 2011-03-07
3379
+ ==================
3380
+
3381
+ * Added res.render() `.locals` support back to aid in migration process
3382
+ * Fixed flash example
3383
+
3384
+ 2.0.0beta / 2011-03-03
3385
+ ==================
3386
+
3387
+ * Added HTTPS support
3388
+ * Added `res.cookie()` maxAge support
3389
+ * Added `req.header()` _Referrer_ / _Referer_ special-case, either works
3390
+ * Added mount support for `res.redirect()`, now respects the mount-point
3391
+ * Added `union()` util, taking place of `merge(clone())` combo
3392
+ * Added stylus support to express(1) generated app
3393
+ * Added secret to session middleware used in examples and generated app
3394
+ * Added `res.local(name, val)` for progressive view locals
3395
+ * Added default param support to `req.param(name, default)`
3396
+ * Added `app.disabled()` and `app.enabled()`
3397
+ * Added `app.register()` support for omitting leading ".", either works
3398
+ * Added `res.partial()`, using the same interface as `partial()` within a view. Closes #539
3399
+ * Added `app.param()` to map route params to async/sync logic
3400
+ * Added; aliased `app.helpers()` as `app.locals()`. Closes #481
3401
+ * Added extname with no leading "." support to `res.contentType()`
3402
+ * Added `cache views` setting, defaulting to enabled in "production" env
3403
+ * Added index file partial resolution, eg: partial('user') may try _views/user/index.jade_.
3404
+ * Added `req.accepts()` support for extensions
3405
+ * Changed; `res.download()` and `res.sendfile()` now utilize Connect's
3406
+ static file server `connect.static.send()`.
3407
+ * Changed; replaced `connect.utils.mime()` with npm _mime_ module
3408
+ * Changed; allow `req.query` to be pre-defined (via middleware or other parent
3409
+ * Changed view partial resolution, now relative to parent view
3410
+ * Changed view engine signature. no longer `engine.render(str, options, callback)`, now `engine.compile(str, options) -> Function`, the returned function accepts `fn(locals)`.
3411
+ * Fixed `req.param()` bug returning Array.prototype methods. Closes #552
3412
+ * Fixed; using `Stream#pipe()` instead of `sys.pump()` in `res.sendfile()`
3413
+ * Fixed; using _qs_ module instead of _querystring_
3414
+ * Fixed; strip unsafe chars from jsonp callbacks
3415
+ * Removed "stream threshold" setting
3416
+
3417
+ 1.0.8 / 2011-03-01
3418
+ ==================
3419
+
3420
+ * Allow `req.query` to be pre-defined (via middleware or other parent app)
3421
+ * "connect": ">= 0.5.0 < 1.0.0". Closes #547
3422
+ * Removed the long deprecated __EXPRESS_ENV__ support
3423
+
3424
+ 1.0.7 / 2011-02-07
3425
+ ==================
3426
+
3427
+ * Fixed `render()` setting inheritance.
3428
+ Mounted apps would not inherit "view engine"
3429
+
3430
+ 1.0.6 / 2011-02-07
3431
+ ==================
3432
+
3433
+ * Fixed `view engine` setting bug when period is in dirname
3434
+
3435
+ 1.0.5 / 2011-02-05
3436
+ ==================
3437
+
3438
+ * Added secret to generated app `session()` call
3439
+
3440
+ 1.0.4 / 2011-02-05
3441
+ ==================
3442
+
3443
+ * Added `qs` dependency to _package.json_
3444
+ * Fixed namespaced `require()`s for latest connect support
3445
+
3446
+ 1.0.3 / 2011-01-13
3447
+ ==================
3448
+
3449
+ * Remove unsafe characters from JSONP callback names [Ryan Grove]
3450
+
3451
+ 1.0.2 / 2011-01-10
3452
+ ==================
3453
+
3454
+ * Removed nested require, using `connect.router`
3455
+
3456
+ 1.0.1 / 2010-12-29
3457
+ ==================
3458
+
3459
+ * Fixed for middleware stacked via `createServer()`
3460
+ previously the `foo` middleware passed to `createServer(foo)`
3461
+ would not have access to Express methods such as `res.send()`
3462
+ or props like `req.query` etc.
3463
+
3464
+ 1.0.0 / 2010-11-16
3465
+ ==================
3466
+
3467
+ * Added; deduce partial object names from the last segment.
3468
+ For example by default `partial('forum/post', postObject)` will
3469
+ give you the _post_ object, providing a meaningful default.
3470
+ * Added http status code string representation to `res.redirect()` body
3471
+ * Added; `res.redirect()` supporting _text/plain_ and _text/html_ via __Accept__.
3472
+ * Added `req.is()` to aid in content negotiation
3473
+ * Added partial local inheritance [suggested by masylum]. Closes #102
3474
+ providing access to parent template locals.
3475
+ * Added _-s, --session[s]_ flag to express(1) to add session related middleware
3476
+ * Added _--template_ flag to express(1) to specify the
3477
+ template engine to use.
3478
+ * Added _--css_ flag to express(1) to specify the
3479
+ stylesheet engine to use (or just plain css by default).
3480
+ * Added `app.all()` support [thanks aheckmann]
3481
+ * Added partial direct object support.
3482
+ You may now `partial('user', user)` providing the "user" local,
3483
+ vs previously `partial('user', { object: user })`.
3484
+ * Added _route-separation_ example since many people question ways
3485
+ to do this with CommonJS modules. Also view the _blog_ example for
3486
+ an alternative.
3487
+ * Performance; caching view path derived partial object names
3488
+ * Fixed partial local inheritance precedence. [reported by Nick Poulden] Closes #454
3489
+ * Fixed jsonp support; _text/javascript_ as per mailinglist discussion
3490
+
3491
+ 1.0.0rc4 / 2010-10-14
3492
+ ==================
3493
+
3494
+ * Added _NODE_ENV_ support, _EXPRESS_ENV_ is deprecated and will be removed in 1.0.0
3495
+ * Added route-middleware support (very helpful, see the [docs](http://expressjs.com/guide.html#Route-Middleware))
3496
+ * Added _jsonp callback_ setting to enable/disable jsonp autowrapping [Dav Glass]
3497
+ * Added callback query check on response.send to autowrap JSON objects for simple webservice implementations [Dav Glass]
3498
+ * Added `partial()` support for array-like collections. Closes #434
3499
+ * Added support for swappable querystring parsers
3500
+ * Added session usage docs. Closes #443
3501
+ * Added dynamic helper caching. Closes #439 [suggested by maritz]
3502
+ * Added authentication example
3503
+ * Added basic Range support to `res.sendfile()` (and `res.download()` etc)
3504
+ * Changed; `express(1)` generated app using 2 spaces instead of 4
3505
+ * Default env to "development" again [aheckmann]
3506
+ * Removed _context_ option is no more, use "scope"
3507
+ * Fixed; exposing _./support_ libs to examples so they can run without installs
3508
+ * Fixed mvc example
3509
+
3510
+ 1.0.0rc3 / 2010-09-20
3511
+ ==================
3512
+
3513
+ * Added confirmation for `express(1)` app generation. Closes #391
3514
+ * Added extending of flash formatters via `app.flashFormatters`
3515
+ * Added flash formatter support. Closes #411
3516
+ * Added streaming support to `res.sendfile()` using `sys.pump()` when >= "stream threshold"
3517
+ * Added _stream threshold_ setting for `res.sendfile()`
3518
+ * Added `res.send()` __HEAD__ support
3519
+ * Added `res.clearCookie()`
3520
+ * Added `res.cookie()`
3521
+ * Added `res.render()` headers option
3522
+ * Added `res.redirect()` response bodies
3523
+ * Added `res.render()` status option support. Closes #425 [thanks aheckmann]
3524
+ * Fixed `res.sendfile()` responding with 403 on malicious path
3525
+ * Fixed `res.download()` bug; when an error occurs remove _Content-Disposition_
3526
+ * Fixed; mounted apps settings now inherit from parent app [aheckmann]
3527
+ * Fixed; stripping Content-Length / Content-Type when 204
3528
+ * Fixed `res.send()` 204. Closes #419
3529
+ * Fixed multiple _Set-Cookie_ headers via `res.header()`. Closes #402
3530
+ * Fixed bug messing with error handlers when `listenFD()` is called instead of `listen()`. [thanks guillermo]
3531
+
3532
+
3533
+ 1.0.0rc2 / 2010-08-17
3534
+ ==================
3535
+
3536
+ * Added `app.register()` for template engine mapping. Closes #390
3537
+ * Added `res.render()` callback support as second argument (no options)
3538
+ * Added callback support to `res.download()`
3539
+ * Added callback support for `res.sendfile()`
3540
+ * Added support for middleware access via `express.middlewareName()` vs `connect.middlewareName()`
3541
+ * Added "partials" setting to docs
3542
+ * Added default expresso tests to `express(1)` generated app. Closes #384
3543
+ * Fixed `res.sendfile()` error handling, defer via `next()`
3544
+ * Fixed `res.render()` callback when a layout is used [thanks guillermo]
3545
+ * Fixed; `make install` creating ~/.node_libraries when not present
3546
+ * Fixed issue preventing error handlers from being defined anywhere. Closes #387
3547
+
3548
+ 1.0.0rc / 2010-07-28
3549
+ ==================
3550
+
3551
+ * Added mounted hook. Closes #369
3552
+ * Added connect dependency to _package.json_
3553
+
3554
+ * Removed "reload views" setting and support code
3555
+ development env never caches, production always caches.
3556
+
3557
+ * Removed _param_ in route callbacks, signature is now
3558
+ simply (req, res, next), previously (req, res, params, next).
3559
+ Use _req.params_ for path captures, _req.query_ for GET params.
3560
+
3561
+ * Fixed "home" setting
3562
+ * Fixed middleware/router precedence issue. Closes #366
3563
+ * Fixed; _configure()_ callbacks called immediately. Closes #368
3564
+
3565
+ 1.0.0beta2 / 2010-07-23
3566
+ ==================
3567
+
3568
+ * Added more examples
3569
+ * Added; exporting `Server` constructor
3570
+ * Added `Server#helpers()` for view locals
3571
+ * Added `Server#dynamicHelpers()` for dynamic view locals. Closes #349
3572
+ * Added support for absolute view paths
3573
+ * Added; _home_ setting defaults to `Server#route` for mounted apps. Closes #363
3574
+ * Added Guillermo Rauch to the contributor list
3575
+ * Added support for "as" for non-collection partials. Closes #341
3576
+ * Fixed _install.sh_, ensuring _~/.node_libraries_ exists. Closes #362 [thanks jf]
3577
+ * Fixed `res.render()` exceptions, now passed to `next()` when no callback is given [thanks guillermo]
3578
+ * Fixed instanceof `Array` checks, now `Array.isArray()`
3579
+ * Fixed express(1) expansion of public dirs. Closes #348
3580
+ * Fixed middleware precedence. Closes #345
3581
+ * Fixed view watcher, now async [thanks aheckmann]
3582
+
3583
+ 1.0.0beta / 2010-07-15
3584
+ ==================
3585
+
3586
+ * Re-write
3587
+ - much faster
3588
+ - much lighter
3589
+ - Check [ExpressJS.com](http://expressjs.com) for migration guide and updated docs
3590
+
3591
+ 0.14.0 / 2010-06-15
3592
+ ==================
3593
+
3594
+ * Utilize relative requires
3595
+ * Added Static bufferSize option [aheckmann]
3596
+ * Fixed caching of view and partial subdirectories [aheckmann]
3597
+ * Fixed mime.type() comments now that ".ext" is not supported
3598
+ * Updated haml submodule
3599
+ * Updated class submodule
3600
+ * Removed bin/express
3601
+
3602
+ 0.13.0 / 2010-06-01
3603
+ ==================
3604
+
3605
+ * Added node v0.1.97 compatibility
3606
+ * Added support for deleting cookies via Request#cookie('key', null)
3607
+ * Updated haml submodule
3608
+ * Fixed not-found page, now using charset utf-8
3609
+ * Fixed show-exceptions page, now using charset utf-8
3610
+ * Fixed view support due to fs.readFile Buffers
3611
+ * Changed; mime.type() no longer accepts ".type" due to node extname() changes
3612
+
3613
+ 0.12.0 / 2010-05-22
3614
+ ==================
3615
+
3616
+ * Added node v0.1.96 compatibility
3617
+ * Added view `helpers` export which act as additional local variables
3618
+ * Updated haml submodule
3619
+ * Changed ETag; removed inode, modified time only
3620
+ * Fixed LF to CRLF for setting multiple cookies
3621
+ * Fixed cookie compilation; values are now urlencoded
3622
+ * Fixed cookies parsing; accepts quoted values and url escaped cookies
3623
+
3624
+ 0.11.0 / 2010-05-06
3625
+ ==================
3626
+
3627
+ * Added support for layouts using different engines
3628
+ - this.render('page.html.haml', { layout: 'super-cool-layout.html.ejs' })
3629
+ - this.render('page.html.haml', { layout: 'foo' }) // assumes 'foo.html.haml'
3630
+ - this.render('page.html.haml', { layout: false }) // no layout
3631
+ * Updated ext submodule
3632
+ * Updated haml submodule
3633
+ * Fixed EJS partial support by passing along the context. Issue #307
3634
+
3635
+ 0.10.1 / 2010-05-03
3636
+ ==================
3637
+
3638
+ * Fixed binary uploads.
3639
+
3640
+ 0.10.0 / 2010-04-30
3641
+ ==================
3642
+
3643
+ * Added charset support via Request#charset (automatically assigned to 'UTF-8' when respond()'s
3644
+ encoding is set to 'utf8' or 'utf-8').
3645
+ * Added "encoding" option to Request#render(). Closes #299
3646
+ * Added "dump exceptions" setting, which is enabled by default.
3647
+ * Added simple ejs template engine support
3648
+ * Added error response support for text/plain, application/json. Closes #297
3649
+ * Added callback function param to Request#error()
3650
+ * Added Request#sendHead()
3651
+ * Added Request#stream()
3652
+ * Added support for Request#respond(304, null) for empty response bodies
3653
+ * Added ETag support to Request#sendfile()
3654
+ * Added options to Request#sendfile(), passed to fs.createReadStream()
3655
+ * Added filename arg to Request#download()
3656
+ * Performance enhanced due to pre-reversing plugins so that plugins.reverse() is not called on each request
3657
+ * Performance enhanced by preventing several calls to toLowerCase() in Router#match()
3658
+ * Changed; Request#sendfile() now streams
3659
+ * Changed; Renamed Request#halt() to Request#respond(). Closes #289
3660
+ * Changed; Using sys.inspect() instead of JSON.encode() for error output
3661
+ * Changed; run() returns the http.Server instance. Closes #298
3662
+ * Changed; Defaulting Server#host to null (INADDR_ANY)
3663
+ * Changed; Logger "common" format scale of 0.4f
3664
+ * Removed Logger "request" format
3665
+ * Fixed; Catching ENOENT in view caching, preventing error when "views/partials" is not found
3666
+ * Fixed several issues with http client
3667
+ * Fixed Logger Content-Length output
3668
+ * Fixed bug preventing Opera from retaining the generated session id. Closes #292
3669
+
3670
+ 0.9.0 / 2010-04-14
3671
+ ==================
3672
+
3673
+ * Added DSL level error() route support
3674
+ * Added DSL level notFound() route support
3675
+ * Added Request#error()
3676
+ * Added Request#notFound()
3677
+ * Added Request#render() callback function. Closes #258
3678
+ * Added "max upload size" setting
3679
+ * Added "magic" variables to collection partials (\_\_index\_\_, \_\_length\_\_, \_\_isFirst\_\_, \_\_isLast\_\_). Closes #254
3680
+ * Added [haml.js](http://github.com/visionmedia/haml.js) submodule; removed haml-js
3681
+ * Added callback function support to Request#halt() as 3rd/4th arg
3682
+ * Added preprocessing of route param wildcards using param(). Closes #251
3683
+ * Added view partial support (with collections etc.)
3684
+ * Fixed bug preventing falsey params (such as ?page=0). Closes #286
3685
+ * Fixed setting of multiple cookies. Closes #199
3686
+ * Changed; view naming convention is now NAME.TYPE.ENGINE (for example page.html.haml)
3687
+ * Changed; session cookie is now httpOnly
3688
+ * Changed; Request is no longer global
3689
+ * Changed; Event is no longer global
3690
+ * Changed; "sys" module is no longer global
3691
+ * Changed; moved Request#download to Static plugin where it belongs
3692
+ * Changed; Request instance created before body parsing. Closes #262
3693
+ * Changed; Pre-caching views in memory when "cache view contents" is enabled. Closes #253
3694
+ * Changed; Pre-caching view partials in memory when "cache view partials" is enabled
3695
+ * Updated support to node --version 0.1.90
3696
+ * Updated dependencies
3697
+ * Removed set("session cookie") in favour of use(Session, { cookie: { ... }})
3698
+ * Removed utils.mixin(); use Object#mergeDeep()
3699
+
3700
+ 0.8.0 / 2010-03-19
3701
+ ==================
3702
+
3703
+ * Added coffeescript example app. Closes #242
3704
+ * Changed; cache api now async friendly. Closes #240
3705
+ * Removed deprecated 'express/static' support. Use 'express/plugins/static'
3706
+
3707
+ 0.7.6 / 2010-03-19
3708
+ ==================
3709
+
3710
+ * Added Request#isXHR. Closes #229
3711
+ * Added `make install` (for the executable)
3712
+ * Added `express` executable for setting up simple app templates
3713
+ * Added "GET /public/*" to Static plugin, defaulting to <root>/public
3714
+ * Added Static plugin
3715
+ * Fixed; Request#render() only calls cache.get() once
3716
+ * Fixed; Namespacing View caches with "view:"
3717
+ * Fixed; Namespacing Static caches with "static:"
3718
+ * Fixed; Both example apps now use the Static plugin
3719
+ * Fixed set("views"). Closes #239
3720
+ * Fixed missing space for combined log format
3721
+ * Deprecated Request#sendfile() and 'express/static'
3722
+ * Removed Server#running
3723
+
3724
+ 0.7.5 / 2010-03-16
3725
+ ==================
3726
+
3727
+ * Added Request#flash() support without args, now returns all flashes
3728
+ * Updated ext submodule
3729
+
3730
+ 0.7.4 / 2010-03-16
3731
+ ==================
3732
+
3733
+ * Fixed session reaper
3734
+ * Changed; class.js replacing js-oo Class implementation (quite a bit faster, no browser cruft)
3735
+
3736
+ 0.7.3 / 2010-03-16
3737
+ ==================
3738
+
3739
+ * Added package.json
3740
+ * Fixed requiring of haml / sass due to kiwi removal
3741
+
3742
+ 0.7.2 / 2010-03-16
3743
+ ==================
3744
+
3745
+ * Fixed GIT submodules (HAH!)
3746
+
3747
+ 0.7.1 / 2010-03-16
3748
+ ==================
3749
+
3750
+ * Changed; Express now using submodules again until a PM is adopted
3751
+ * Changed; chat example using millisecond conversions from ext
3752
+
3753
+ 0.7.0 / 2010-03-15
3754
+ ==================
3755
+
3756
+ * Added Request#pass() support (finds the next matching route, or the given path)
3757
+ * Added Logger plugin (default "common" format replaces CommonLogger)
3758
+ * Removed Profiler plugin
3759
+ * Removed CommonLogger plugin
3760
+
3761
+ 0.6.0 / 2010-03-11
3762
+ ==================
3763
+
3764
+ * Added seed.yml for kiwi package management support
3765
+ * Added HTTP client query string support when method is GET. Closes #205
3766
+
3767
+ * Added support for arbitrary view engines.
3768
+ For example "foo.engine.html" will now require('engine'),
3769
+ the exports from this module are cached after the first require().
3770
+
3771
+ * Added async plugin support
3772
+
3773
+ * Removed usage of RESTful route funcs as http client
3774
+ get() etc, use http.get() and friends
3775
+
3776
+ * Removed custom exceptions
3777
+
3778
+ 0.5.0 / 2010-03-10
3779
+ ==================
3780
+
3781
+ * Added ext dependency (library of js extensions)
3782
+ * Removed extname() / basename() utils. Use path module
3783
+ * Removed toArray() util. Use arguments.values
3784
+ * Removed escapeRegexp() util. Use RegExp.escape()
3785
+ * Removed process.mixin() dependency. Use utils.mixin()
3786
+ * Removed Collection
3787
+ * Removed ElementCollection
3788
+ * Shameless self promotion of ebook "Advanced JavaScript" (http://dev-mag.com) ;)
3789
+
3790
+ 0.4.0 / 2010-02-11
3791
+ ==================
3792
+
3793
+ * Added flash() example to sample upload app
3794
+ * Added high level restful http client module (express/http)
3795
+ * Changed; RESTful route functions double as HTTP clients. Closes #69
3796
+ * Changed; throwing error when routes are added at runtime
3797
+ * Changed; defaulting render() context to the current Request. Closes #197
3798
+ * Updated haml submodule
3799
+
3800
+ 0.3.0 / 2010-02-11
3801
+ ==================
3802
+
3803
+ * Updated haml / sass submodules. Closes #200
3804
+ * Added flash message support. Closes #64
3805
+ * Added accepts() now allows multiple args. fixes #117
3806
+ * Added support for plugins to halt. Closes #189
3807
+ * Added alternate layout support. Closes #119
3808
+ * Removed Route#run(). Closes #188
3809
+ * Fixed broken specs due to use(Cookie) missing
3810
+
3811
+ 0.2.1 / 2010-02-05
3812
+ ==================
3813
+
3814
+ * Added "plot" format option for Profiler (for gnuplot processing)
3815
+ * Added request number to Profiler plugin
3816
+ * Fixed binary encoding for multipart file uploads, was previously defaulting to UTF8
3817
+ * Fixed issue with routes not firing when not files are present. Closes #184
3818
+ * Fixed process.Promise -> events.Promise
3819
+
3820
+ 0.2.0 / 2010-02-03
3821
+ ==================
3822
+
3823
+ * Added parseParam() support for name[] etc. (allows for file inputs with "multiple" attr) Closes #180
3824
+ * Added Both Cache and Session option "reapInterval" may be "reapEvery". Closes #174
3825
+ * Added expiration support to cache api with reaper. Closes #133
3826
+ * Added cache Store.Memory#reap()
3827
+ * Added Cache; cache api now uses first class Cache instances
3828
+ * Added abstract session Store. Closes #172
3829
+ * Changed; cache Memory.Store#get() utilizing Collection
3830
+ * Renamed MemoryStore -> Store.Memory
3831
+ * Fixed use() of the same plugin several time will always use latest options. Closes #176
3832
+
3833
+ 0.1.0 / 2010-02-03
3834
+ ==================
3835
+
3836
+ * Changed; Hooks (before / after) pass request as arg as well as evaluated in their context
3837
+ * Updated node support to 0.1.27 Closes #169
3838
+ * Updated dirname(__filename) -> __dirname
3839
+ * Updated libxmljs support to v0.2.0
3840
+ * Added session support with memory store / reaping
3841
+ * Added quick uid() helper
3842
+ * Added multi-part upload support
3843
+ * Added Sass.js support / submodule
3844
+ * Added production env caching view contents and static files
3845
+ * Added static file caching. Closes #136
3846
+ * Added cache plugin with memory stores
3847
+ * Added support to StaticFile so that it works with non-textual files.
3848
+ * Removed dirname() helper
3849
+ * Removed several globals (now their modules must be required)
3850
+
3851
+ 0.0.2 / 2010-01-10
3852
+ ==================
3853
+
3854
+ * Added view benchmarks; currently haml vs ejs
3855
+ * Added Request#attachment() specs. Closes #116
3856
+ * Added use of node's parseQuery() util. Closes #123
3857
+ * Added `make init` for submodules
3858
+ * Updated Haml
3859
+ * Updated sample chat app to show messages on load
3860
+ * Updated libxmljs parseString -> parseHtmlString
3861
+ * Fixed `make init` to work with older versions of git
3862
+ * Fixed specs can now run independent specs for those who can't build deps. Closes #127
3863
+ * Fixed issues introduced by the node url module changes. Closes 126.
3864
+ * Fixed two assertions failing due to Collection#keys() returning strings
3865
+ * Fixed faulty Collection#toArray() spec due to keys() returning strings
3866
+ * Fixed `make test` now builds libxmljs.node before testing
3867
+
3868
+ 0.0.1 / 2010-01-03
3869
+ ==================
3870
+
3871
+ * Initial release