You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2466 lines
75 KiB

7 years ago
  1. 4.10.2 / 2014-11-09
  2. ===================
  3. * Correctly invoke async router callback asynchronously
  4. * deps: accepts@~1.1.3
  5. - deps: mime-types@~2.0.3
  6. * deps: type-is@~1.5.3
  7. - deps: mime-types@~2.0.3
  8. 4.10.1 / 2014-10-28
  9. ===================
  10. * Fix handling of URLs containing `://` in the path
  11. * deps: qs@2.3.2
  12. - Fix parsing of mixed objects and values
  13. 4.10.0 / 2014-10-23
  14. ===================
  15. * Add support for `app.set('views', array)`
  16. - Views are looked up in sequence in array of directories
  17. * Fix `res.send(status)` to mention `res.sendStatus(status)`
  18. * Fix handling of invalid empty URLs
  19. * Use `content-disposition` module for `res.attachment`/`res.download`
  20. - Sends standards-compliant `Content-Disposition` header
  21. - Full Unicode support
  22. * Use `path.resolve` in view lookup
  23. * deps: debug@~2.1.0
  24. - Implement `DEBUG_FD` env variable support
  25. * deps: depd@~1.0.0
  26. * deps: etag@~1.5.0
  27. - Improve string performance
  28. - Slightly improve speed for weak ETags over 1KB
  29. * deps: finalhandler@0.3.2
  30. - Terminate in progress response only on error
  31. - Use `on-finished` to determine request status
  32. - deps: debug@~2.1.0
  33. - deps: on-finished@~2.1.1
  34. * deps: on-finished@~2.1.1
  35. - Fix handling of pipelined requests
  36. * deps: qs@2.3.0
  37. - Fix parsing of mixed implicit and explicit arrays
  38. * deps: send@0.10.1
  39. - deps: debug@~2.1.0
  40. - deps: depd@~1.0.0
  41. - deps: etag@~1.5.0
  42. - deps: on-finished@~2.1.1
  43. * deps: serve-static@~1.7.1
  44. - deps: send@0.10.1
  45. 4.9.8 / 2014-10-17
  46. ==================
  47. * Fix `res.redirect` body when redirect status specified
  48. * deps: accepts@~1.1.2
  49. - Fix error when media type has invalid parameter
  50. - deps: negotiator@0.4.9
  51. 4.9.7 / 2014-10-10
  52. ==================
  53. * Fix using same param name in array of paths
  54. 4.9.6 / 2014-10-08
  55. ==================
  56. * deps: accepts@~1.1.1
  57. - deps: mime-types@~2.0.2
  58. - deps: negotiator@0.4.8
  59. * deps: serve-static@~1.6.4
  60. - Fix redirect loop when index file serving disabled
  61. * deps: type-is@~1.5.2
  62. - deps: mime-types@~2.0.2
  63. 4.9.5 / 2014-09-24
  64. ==================
  65. * deps: etag@~1.4.0
  66. * deps: proxy-addr@~1.0.3
  67. - Use `forwarded` npm module
  68. * deps: send@0.9.3
  69. - deps: etag@~1.4.0
  70. * deps: serve-static@~1.6.3
  71. - deps: send@0.9.3
  72. 4.9.4 / 2014-09-19
  73. ==================
  74. * deps: qs@2.2.4
  75. - Fix issue with object keys starting with numbers truncated
  76. 4.9.3 / 2014-09-18
  77. ==================
  78. * deps: proxy-addr@~1.0.2
  79. - Fix a global leak when multiple subnets are trusted
  80. - deps: ipaddr.js@0.1.3
  81. 4.9.2 / 2014-09-17
  82. ==================
  83. * Fix regression for empty string `path` in `app.use`
  84. * Fix `router.use` to accept array of middleware without path
  85. * Improve error message for bad `app.use` arguments
  86. 4.9.1 / 2014-09-16
  87. ==================
  88. * Fix `app.use` to accept array of middleware without path
  89. * deps: depd@0.4.5
  90. * deps: etag@~1.3.1
  91. * deps: send@0.9.2
  92. - deps: depd@0.4.5
  93. - deps: etag@~1.3.1
  94. - deps: range-parser@~1.0.2
  95. * deps: serve-static@~1.6.2
  96. - deps: send@0.9.2
  97. 4.9.0 / 2014-09-08
  98. ==================
  99. * Add `res.sendStatus`
  100. * Invoke callback for sendfile when client aborts
  101. - Applies to `res.sendFile`, `res.sendfile`, and `res.download`
  102. - `err` will be populated with request aborted error
  103. * Support IP address host in `req.subdomains`
  104. * Use `etag` to generate `ETag` headers
  105. * deps: accepts@~1.1.0
  106. - update `mime-types`
  107. * deps: cookie-signature@1.0.5
  108. * deps: debug@~2.0.0
  109. * deps: finalhandler@0.2.0
  110. - Set `X-Content-Type-Options: nosniff` header
  111. - deps: debug@~2.0.0
  112. * deps: fresh@0.2.4
  113. * deps: media-typer@0.3.0
  114. - Throw error when parameter format invalid on parse
  115. * deps: qs@2.2.3
  116. - Fix issue where first empty value in array is discarded
  117. * deps: range-parser@~1.0.2
  118. * deps: send@0.9.1
  119. - Add `lastModified` option
  120. - Use `etag` to generate `ETag` header
  121. - deps: debug@~2.0.0
  122. - deps: fresh@0.2.4
  123. * deps: serve-static@~1.6.1
  124. - Add `lastModified` option
  125. - deps: send@0.9.1
  126. * deps: type-is@~1.5.1
  127. - fix `hasbody` to be true for `content-length: 0`
  128. - deps: media-typer@0.3.0
  129. - deps: mime-types@~2.0.1
  130. * deps: vary@~1.0.0
  131. - Accept valid `Vary` header string as `field`
  132. 4.8.8 / 2014-09-04
  133. ==================
  134. * deps: send@0.8.5
  135. - Fix a path traversal issue when using `root`
  136. - Fix malicious path detection for empty string path
  137. * deps: serve-static@~1.5.4
  138. - deps: send@0.8.5
  139. 4.8.7 / 2014-08-29
  140. ==================
  141. * deps: qs@2.2.2
  142. - Remove unnecessary cloning
  143. 4.8.6 / 2014-08-27
  144. ==================
  145. * deps: qs@2.2.0
  146. - Array parsing fix
  147. - Performance improvements
  148. 4.8.5 / 2014-08-18
  149. ==================
  150. * deps: send@0.8.3
  151. - deps: destroy@1.0.3
  152. - deps: on-finished@2.1.0
  153. * deps: serve-static@~1.5.3
  154. - deps: send@0.8.3
  155. 4.8.4 / 2014-08-14
  156. ==================
  157. * deps: qs@1.2.2
  158. * deps: send@0.8.2
  159. - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream`
  160. * deps: serve-static@~1.5.2
  161. - deps: send@0.8.2
  162. 4.8.3 / 2014-08-10
  163. ==================
  164. * deps: parseurl@~1.3.0
  165. * deps: qs@1.2.1
  166. * deps: serve-static@~1.5.1
  167. - Fix parsing of weird `req.originalUrl` values
  168. - deps: parseurl@~1.3.0
  169. - deps: utils-merge@1.0.0
  170. 4.8.2 / 2014-08-07
  171. ==================
  172. * deps: qs@1.2.0
  173. - Fix parsing array of objects
  174. 4.8.1 / 2014-08-06
  175. ==================
  176. * fix incorrect deprecation warnings on `res.download`
  177. * deps: qs@1.1.0
  178. - Accept urlencoded square brackets
  179. - Accept empty values in implicit array notation
  180. 4.8.0 / 2014-08-05
  181. ==================
  182. * add `res.sendFile`
  183. - accepts a file system path instead of a URL
  184. - requires an absolute path or `root` option specified
  185. * deprecate `res.sendfile` -- use `res.sendFile` instead
  186. * support mounted app as any argument to `app.use()`
  187. * deps: qs@1.0.2
  188. - Complete rewrite
  189. - Limits array length to 20
  190. - Limits object depth to 5
  191. - Limits parameters to 1,000
  192. * deps: send@0.8.1
  193. - Add `extensions` option
  194. * deps: serve-static@~1.5.0
  195. - Add `extensions` option
  196. - deps: send@0.8.1
  197. 4.7.4 / 2014-08-04
  198. ==================
  199. * fix `res.sendfile` regression for serving directory index files
  200. * deps: send@0.7.4
  201. - Fix incorrect 403 on Windows and Node.js 0.11
  202. - Fix serving index files without root dir
  203. * deps: serve-static@~1.4.4
  204. - deps: send@0.7.4
  205. 4.7.3 / 2014-08-04
  206. ==================
  207. * deps: send@0.7.3
  208. - Fix incorrect 403 on Windows and Node.js 0.11
  209. * deps: serve-static@~1.4.3
  210. - Fix incorrect 403 on Windows and Node.js 0.11
  211. - deps: send@0.7.3
  212. 4.7.2 / 2014-07-27
  213. ==================
  214. * deps: depd@0.4.4
  215. - Work-around v8 generating empty stack traces
  216. * deps: send@0.7.2
  217. - deps: depd@0.4.4
  218. * deps: serve-static@~1.4.2
  219. 4.7.1 / 2014-07-26
  220. ==================
  221. * deps: depd@0.4.3
  222. - Fix exception when global `Error.stackTraceLimit` is too low
  223. * deps: send@0.7.1
  224. - deps: depd@0.4.3
  225. * deps: serve-static@~1.4.1
  226. 4.7.0 / 2014-07-25
  227. ==================
  228. * fix `req.protocol` for proxy-direct connections
  229. * configurable query parser with `app.set('query parser', parser)`
  230. - `app.set('query parser', 'extended')` parse with "qs" module
  231. - `app.set('query parser', 'simple')` parse with "querystring" core module
  232. - `app.set('query parser', false)` disable query string parsing
  233. - `app.set('query parser', true)` enable simple parsing
  234. * deprecate `res.json(status, obj)` -- use `res.status(status).json(obj)` instead
  235. * deprecate `res.jsonp(status, obj)` -- use `res.status(status).jsonp(obj)` instead
  236. * deprecate `res.send(status, body)` -- use `res.status(status).send(body)` instead
  237. * deps: debug@1.0.4
  238. * deps: depd@0.4.2
  239. - Add `TRACE_DEPRECATION` environment variable
  240. - Remove non-standard grey color from color output
  241. - Support `--no-deprecation` argument
  242. - Support `--trace-deprecation` argument
  243. * deps: finalhandler@0.1.0
  244. - Respond after request fully read
  245. - deps: debug@1.0.4
  246. * deps: parseurl@~1.2.0
  247. - Cache URLs based on original value
  248. - Remove no-longer-needed URL mis-parse work-around
  249. - Simplify the "fast-path" `RegExp`
  250. * deps: send@0.7.0
  251. - Add `dotfiles` option
  252. - Cap `maxAge` value to 1 year
  253. - deps: debug@1.0.4
  254. - deps: depd@0.4.2
  255. * deps: serve-static@~1.4.0
  256. - deps: parseurl@~1.2.0
  257. - deps: send@0.7.0
  258. * perf: prevent multiple `Buffer` creation in `res.send`
  259. 4.6.1 / 2014-07-12
  260. ==================
  261. * fix `subapp.mountpath` regression for `app.use(subapp)`
  262. 4.6.0 / 2014-07-11
  263. ==================
  264. * accept multiple callbacks to `app.use()`
  265. * add explicit "Rosetta Flash JSONP abuse" protection
  266. - previous versions are not vulnerable; this is just explicit protection
  267. * catch errors in multiple `req.param(name, fn)` handlers
  268. * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead
  269. * fix `res.send(status, num)` to send `num` as json (not error)
  270. * remove unnecessary escaping when `res.jsonp` returns JSON response
  271. * support non-string `path` in `app.use(path, fn)`
  272. - supports array of paths
  273. - supports `RegExp`
  274. * router: fix optimization on router exit
  275. * router: refactor location of `try` blocks
  276. * router: speed up standard `app.use(fn)`
  277. * deps: debug@1.0.3
  278. - Add support for multiple wildcards in namespaces
  279. * deps: finalhandler@0.0.3
  280. - deps: debug@1.0.3
  281. * deps: methods@1.1.0
  282. - add `CONNECT`
  283. * deps: parseurl@~1.1.3
  284. - faster parsing of href-only URLs
  285. * deps: path-to-regexp@0.1.3
  286. * deps: send@0.6.0
  287. - deps: debug@1.0.3
  288. * deps: serve-static@~1.3.2
  289. - deps: parseurl@~1.1.3
  290. - deps: send@0.6.0
  291. * perf: fix arguments reassign deopt in some `res` methods
  292. 4.5.1 / 2014-07-06
  293. ==================
  294. * fix routing regression when altering `req.method`
  295. 4.5.0 / 2014-07-04
  296. ==================
  297. * add deprecation message to non-plural `req.accepts*`
  298. * add deprecation message to `res.send(body, status)`
  299. * add deprecation message to `res.vary()`
  300. * add `headers` option to `res.sendfile`
  301. - use to set headers on successful file transfer
  302. * add `mergeParams` option to `Router`
  303. - merges `req.params` from parent routes
  304. * add `req.hostname` -- correct name for what `req.host` returns
  305. * deprecate things with `depd` module
  306. * deprecate `req.host` -- use `req.hostname` instead
  307. * fix behavior when handling request without routes
  308. * fix handling when `route.all` is only route
  309. * invoke `router.param()` only when route matches
  310. * restore `req.params` after invoking router
  311. * use `finalhandler` for final response handling
  312. * use `media-typer` to alter content-type charset
  313. * deps: accepts@~1.0.7
  314. * deps: send@0.5.0
  315. - Accept string for `maxage` (converted by `ms`)
  316. - Include link in default redirect response
  317. * deps: serve-static@~1.3.0
  318. - Accept string for `maxAge` (converted by `ms`)
  319. - Add `setHeaders` option
  320. - Include HTML link in redirect response
  321. - deps: send@0.5.0
  322. * deps: type-is@~1.3.2
  323. 4.4.5 / 2014-06-26
  324. ==================
  325. * deps: cookie-signature@1.0.4
  326. - fix for timing attacks
  327. 4.4.4 / 2014-06-20
  328. ==================
  329. * fix `res.attachment` Unicode filenames in Safari
  330. * fix "trim prefix" debug message in `express:router`
  331. * deps: accepts@~1.0.5
  332. * deps: buffer-crc32@0.2.3
  333. 4.4.3 / 2014-06-11
  334. ==================
  335. * fix persistence of modified `req.params[name]` from `app.param()`
  336. * deps: accepts@1.0.3
  337. - deps: negotiator@0.4.6
  338. * deps: debug@1.0.2
  339. * deps: send@0.4.3
  340. - Do not throw un-catchable error on file open race condition
  341. - Use `escape-html` for HTML escaping
  342. - deps: debug@1.0.2
  343. - deps: finished@1.2.2
  344. - deps: fresh@0.2.2
  345. * deps: serve-static@1.2.3
  346. - Do not throw un-catchable error on file open race condition
  347. - deps: send@0.4.3
  348. 4.4.2 / 2014-06-09
  349. ==================
  350. * fix catching errors from top-level handlers
  351. * use `vary` module for `res.vary`
  352. * deps: debug@1.0.1
  353. * deps: proxy-addr@1.0.1
  354. * deps: send@0.4.2
  355. - fix "event emitter leak" warnings
  356. - deps: debug@1.0.1
  357. - deps: finished@1.2.1
  358. * deps: serve-static@1.2.2
  359. - fix "event emitter leak" warnings
  360. - deps: send@0.4.2
  361. * deps: type-is@1.2.1
  362. 4.4.1 / 2014-06-02
  363. ==================
  364. * deps: methods@1.0.1
  365. * deps: send@0.4.1
  366. - Send `max-age` in `Cache-Control` in correct format
  367. * deps: serve-static@1.2.1
  368. - use `escape-html` for escaping
  369. - deps: send@0.4.1
  370. 4.4.0 / 2014-05-30
  371. ==================
  372. * custom etag control with `app.set('etag', val)`
  373. - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation
  374. - `app.set('etag', 'weak')` weak tag
  375. - `app.set('etag', 'strong')` strong etag
  376. - `app.set('etag', false)` turn off
  377. - `app.set('etag', true)` standard etag
  378. * mark `res.send` ETag as weak and reduce collisions
  379. * update accepts to 1.0.2
  380. - Fix interpretation when header not in request
  381. * update send to 0.4.0
  382. - Calculate ETag with md5 for reduced collisions
  383. - Ignore stream errors after request ends
  384. - deps: debug@0.8.1
  385. * update serve-static to 1.2.0
  386. - Calculate ETag with md5 for reduced collisions
  387. - Ignore stream errors after request ends
  388. - deps: send@0.4.0
  389. 4.3.2 / 2014-05-28
  390. ==================
  391. * fix handling of errors from `router.param()` callbacks
  392. 4.3.1 / 2014-05-23
  393. ==================
  394. * revert "fix behavior of multiple `app.VERB` for the same path"
  395. - this caused a regression in the order of route execution
  396. 4.3.0 / 2014-05-21
  397. ==================
  398. * add `req.baseUrl` to access the path stripped from `req.url` in routes
  399. * fix behavior of multiple `app.VERB` for the same path
  400. * fix issue routing requests among sub routers
  401. * invoke `router.param()` only when necessary instead of every match
  402. * proper proxy trust with `app.set('trust proxy', trust)`
  403. - `app.set('trust proxy', 1)` trust first hop
  404. - `app.set('trust proxy', 'loopback')` trust loopback addresses
  405. - `app.set('trust proxy', '10.0.0.1')` trust single IP
  406. - `app.set('trust proxy', '10.0.0.1/16')` trust subnet
  407. - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list
  408. - `app.set('trust proxy', false)` turn off
  409. - `app.set('trust proxy', true)` trust everything
  410. * set proper `charset` in `Content-Type` for `res.send`
  411. * update type-is to 1.2.0
  412. - support suffix matching
  413. 4.2.0 / 2014-05-11
  414. ==================
  415. * deprecate `app.del()` -- use `app.delete()` instead
  416. * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead
  417. - the edge-case `res.json(status, num)` requires `res.status(status).json(num)`
  418. * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead
  419. - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)`
  420. * fix `req.next` when inside router instance
  421. * include `ETag` header in `HEAD` requests
  422. * keep previous `Content-Type` for `res.jsonp`
  423. * support PURGE method
  424. - add `app.purge`
  425. - add `router.purge`
  426. - include PURGE in `app.all`
  427. * update debug to 0.8.0
  428. - add `enable()` method
  429. - change from stderr to stdout
  430. * update methods to 1.0.0
  431. - add PURGE
  432. 4.1.2 / 2014-05-08
  433. ==================
  434. * fix `req.host` for IPv6 literals
  435. * fix `res.jsonp` error if callback param is object
  436. 4.1.1 / 2014-04-27
  437. ==================
  438. * fix package.json to reflect supported node version
  439. 4.1.0 / 2014-04-24
  440. ==================
  441. * pass options from `res.sendfile` to `send`
  442. * preserve casing of headers in `res.header` and `res.set`
  443. * support unicode file names in `res.attachment` and `res.download`
  444. * update accepts to 1.0.1
  445. - deps: negotiator@0.4.0
  446. * update cookie to 0.1.2
  447. - Fix for maxAge == 0
  448. - made compat with expires field
  449. * update send to 0.3.0
  450. - Accept API options in options object
  451. - Coerce option types
  452. - Control whether to generate etags
  453. - Default directory access to 403 when index disabled
  454. - Fix sending files with dots without root set
  455. - Include file path in etag
  456. - Make "Can't set headers after they are sent." catchable
  457. - Send full entity-body for multi range requests
  458. - Set etags to "weak"
  459. - Support "If-Range" header
  460. - Support multiple index paths
  461. - deps: mime@1.2.11
  462. * update serve-static to 1.1.0
  463. - Accept options directly to `send` module
  464. - Resolve relative paths at middleware setup
  465. - Use parseurl to parse the URL from request
  466. - deps: send@0.3.0
  467. * update type-is to 1.1.0
  468. - add non-array values support
  469. - add `multipart` as a shorthand
  470. 4.0.0 / 2014-04-09
  471. ==================
  472. * remove:
  473. - node 0.8 support
  474. - connect and connect's patches except for charset handling
  475. - express(1) - moved to [express-generator](https://github.com/expressjs/generator)
  476. - `express.createServer()` - it has been deprecated for a long time. Use `express()`
  477. - `app.configure` - use logic in your own app code
  478. - `app.router` - is removed
  479. - `req.auth` - use `basic-auth` instead
  480. - `req.accepted*` - use `req.accepts*()` instead
  481. - `res.location` - relative URL resolution is removed
  482. - `res.charset` - include the charset in the content type when using `res.set()`
  483. - all bundled middleware except `static`
  484. * change:
  485. - `app.route` -> `app.mountpath` when mounting an express app in another express app
  486. - `json spaces` no longer enabled by default in development
  487. - `req.accepts*` -> `req.accepts*s` - i.e. `req.acceptsEncoding` -> `req.acceptsEncodings`
  488. - `req.params` is now an object instead of an array
  489. - `res.locals` is no longer a function. It is a plain js object. Treat it as such.
  490. - `res.headerSent` -> `res.headersSent` to match node.js ServerResponse object
  491. * refactor:
  492. - `req.accepts*` with [accepts](https://github.com/expressjs/accepts)
  493. - `req.is` with [type-is](https://github.com/expressjs/type-is)
  494. - [path-to-regexp](https://github.com/component/path-to-regexp)
  495. * add:
  496. - `app.router()` - returns the app Router instance
  497. - `app.route()` - Proxy to the app's `Router#route()` method to create a new route
  498. - Router & Route - public API
  499. 3.18.3 / 2014-11-09
  500. ===================
  501. * deps: connect@2.27.3
  502. - Correctly invoke async callback asynchronously
  503. - deps: csurf@~1.6.3
  504. 3.18.2 / 2014-10-28
  505. ===================
  506. * deps: connect@2.27.2
  507. - Fix handling of URLs containing `://` in the path
  508. - deps: body-parser@~1.9.2
  509. - deps: qs@2.3.2
  510. 3.18.1 / 2014-10-22
  511. ===================
  512. * Fix internal `utils.merge` deprecation warnings
  513. * deps: connect@2.27.1
  514. - deps: body-parser@~1.9.1
  515. - deps: express-session@~1.9.1
  516. - deps: finalhandler@0.3.2
  517. - deps: morgan@~1.4.1
  518. - deps: qs@2.3.0
  519. - deps: serve-static@~1.7.1
  520. * deps: send@0.10.1
  521. - deps: on-finished@~2.1.1
  522. 3.18.0 / 2014-10-17
  523. ===================
  524. * Use `content-disposition` module for `res.attachment`/`res.download`
  525. - Sends standards-compliant `Content-Disposition` header
  526. - Full Unicode support
  527. * Use `etag` module to generate `ETag` headers
  528. * deps: connect@2.27.0
  529. - Use `http-errors` module for creating errors
  530. - Use `utils-merge` module for merging objects
  531. - deps: body-parser@~1.9.0
  532. - deps: compression@~1.2.0
  533. - deps: connect-timeout@~1.4.0
  534. - deps: debug@~2.1.0
  535. - deps: depd@~1.0.0
  536. - deps: express-session@~1.9.0
  537. - deps: finalhandler@0.3.1
  538. - deps: method-override@~2.3.0
  539. - deps: morgan@~1.4.0
  540. - deps: response-time@~2.2.0
  541. - deps: serve-favicon@~2.1.6
  542. - deps: serve-index@~1.5.0
  543. - deps: serve-static@~1.7.0
  544. * deps: debug@~2.1.0
  545. - Implement `DEBUG_FD` env variable support
  546. * deps: depd@~1.0.0
  547. * deps: send@0.10.0
  548. - deps: debug@~2.1.0
  549. - deps: depd@~1.0.0
  550. - deps: etag@~1.5.0
  551. 3.17.8 / 2014-10-15
  552. ===================
  553. * deps: connect@2.26.6
  554. - deps: compression@~1.1.2
  555. - deps: csurf@~1.6.2
  556. - deps: errorhandler@~1.2.2
  557. 3.17.7 / 2014-10-08
  558. ===================
  559. * deps: connect@2.26.5
  560. - Fix accepting non-object arguments to `logger`
  561. - deps: serve-static@~1.6.4
  562. 3.17.6 / 2014-10-02
  563. ===================
  564. * deps: connect@2.26.4
  565. - deps: morgan@~1.3.2
  566. - deps: type-is@~1.5.2
  567. 3.17.5 / 2014-09-24
  568. ===================
  569. * deps: connect@2.26.3
  570. - deps: body-parser@~1.8.4
  571. - deps: serve-favicon@~2.1.5
  572. - deps: serve-static@~1.6.3
  573. * deps: proxy-addr@~1.0.3
  574. - Use `forwarded` npm module
  575. * deps: send@0.9.3
  576. - deps: etag@~1.4.0
  577. 3.17.4 / 2014-09-19
  578. ===================
  579. * deps: connect@2.26.2
  580. - deps: body-parser@~1.8.3
  581. - deps: qs@2.2.4
  582. 3.17.3 / 2014-09-18
  583. ===================
  584. * deps: proxy-addr@~1.0.2
  585. - Fix a global leak when multiple subnets are trusted
  586. - deps: ipaddr.js@0.1.3
  587. 3.17.2 / 2014-09-15
  588. ===================
  589. * Use `crc` instead of `buffer-crc32` for speed
  590. * deps: connect@2.26.1
  591. - deps: body-parser@~1.8.2
  592. - deps: depd@0.4.5
  593. - deps: express-session@~1.8.2
  594. - deps: morgan@~1.3.1
  595. - deps: serve-favicon@~2.1.3
  596. - deps: serve-static@~1.6.2
  597. * deps: depd@0.4.5
  598. * deps: send@0.9.2
  599. - deps: depd@0.4.5
  600. - deps: etag@~1.3.1
  601. - deps: range-parser@~1.0.2
  602. 3.17.1 / 2014-09-08
  603. ===================
  604. * Fix error in `req.subdomains` on empty host
  605. 3.17.0 / 2014-09-08
  606. ===================
  607. * Support `X-Forwarded-Host` in `req.subdomains`
  608. * Support IP address host in `req.subdomains`
  609. * deps: connect@2.26.0
  610. - deps: body-parser@~1.8.1
  611. - deps: compression@~1.1.0
  612. - deps: connect-timeout@~1.3.0
  613. - deps: cookie-parser@~1.3.3
  614. - deps: cookie-signature@1.0.5
  615. - deps: csurf@~1.6.1
  616. - deps: debug@~2.0.0
  617. - deps: errorhandler@~1.2.0
  618. - deps: express-session@~1.8.1
  619. - deps: finalhandler@0.2.0
  620. - deps: fresh@0.2.4
  621. - deps: media-typer@0.3.0
  622. - deps: method-override@~2.2.0
  623. - deps: morgan@~1.3.0
  624. - deps: qs@2.2.3
  625. - deps: serve-favicon@~2.1.3
  626. - deps: serve-index@~1.2.1
  627. - deps: serve-static@~1.6.1
  628. - deps: type-is@~1.5.1
  629. - deps: vhost@~3.0.0
  630. * deps: cookie-signature@1.0.5
  631. * deps: debug@~2.0.0
  632. * deps: fresh@0.2.4
  633. * deps: media-typer@0.3.0
  634. - Throw error when parameter format invalid on parse
  635. * deps: range-parser@~1.0.2
  636. * deps: send@0.9.1
  637. - Add `lastModified` option
  638. - Use `etag` to generate `ETag` header
  639. - deps: debug@~2.0.0
  640. - deps: fresh@0.2.4
  641. * deps: vary@~1.0.0
  642. - Accept valid `Vary` header string as `field`
  643. 3.16.10 / 2014-09-04
  644. ====================
  645. * deps: connect@2.25.10
  646. - deps: serve-static@~1.5.4
  647. * deps: send@0.8.5
  648. - Fix a path traversal issue when using `root`
  649. - Fix malicious path detection for empty string path
  650. 3.16.9 / 2014-08-29
  651. ===================
  652. * deps: connect@2.25.9
  653. - deps: body-parser@~1.6.7
  654. - deps: qs@2.2.2
  655. 3.16.8 / 2014-08-27
  656. ===================
  657. * deps: connect@2.25.8
  658. - deps: body-parser@~1.6.6
  659. - deps: csurf@~1.4.1
  660. - deps: qs@2.2.0
  661. 3.16.7 / 2014-08-18
  662. ===================
  663. * deps: connect@2.25.7
  664. - deps: body-parser@~1.6.5
  665. - deps: express-session@~1.7.6
  666. - deps: morgan@~1.2.3
  667. - deps: serve-static@~1.5.3
  668. * deps: send@0.8.3
  669. - deps: destroy@1.0.3
  670. - deps: on-finished@2.1.0
  671. 3.16.6 / 2014-08-14
  672. ===================
  673. * deps: connect@2.25.6
  674. - deps: body-parser@~1.6.4
  675. - deps: qs@1.2.2
  676. - deps: serve-static@~1.5.2
  677. * deps: send@0.8.2
  678. - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream`
  679. 3.16.5 / 2014-08-11
  680. ===================
  681. * deps: connect@2.25.5
  682. - Fix backwards compatibility in `logger`
  683. 3.16.4 / 2014-08-10
  684. ===================
  685. * Fix original URL parsing in `res.location`
  686. * deps: connect@2.25.4
  687. - Fix `query` middleware breaking with argument
  688. - deps: body-parser@~1.6.3
  689. - deps: compression@~1.0.11
  690. - deps: connect-timeout@~1.2.2
  691. - deps: express-session@~1.7.5
  692. - deps: method-override@~2.1.3
  693. - deps: on-headers@~1.0.0
  694. - deps: parseurl@~1.3.0
  695. - deps: qs@1.2.1
  696. - deps: response-time@~2.0.1
  697. - deps: serve-index@~1.1.6
  698. - deps: serve-static@~1.5.1
  699. * deps: parseurl@~1.3.0
  700. 3.16.3 / 2014-08-07
  701. ===================
  702. * deps: connect@2.25.3
  703. - deps: multiparty@3.3.2
  704. 3.16.2 / 2014-08-07
  705. ===================
  706. * deps: connect@2.25.2
  707. - deps: body-parser@~1.6.2
  708. - deps: qs@1.2.0
  709. 3.16.1 / 2014-08-06
  710. ===================
  711. * deps: connect@2.25.1
  712. - deps: body-parser@~1.6.1
  713. - deps: qs@1.1.0
  714. 3.16.0 / 2014-08-05
  715. ===================
  716. * deps: connect@2.25.0
  717. - deps: body-parser@~1.6.0
  718. - deps: compression@~1.0.10
  719. - deps: csurf@~1.4.0
  720. - deps: express-session@~1.7.4
  721. - deps: qs@1.0.2
  722. - deps: serve-static@~1.5.0
  723. * deps: send@0.8.1
  724. - Add `extensions` option
  725. 3.15.3 / 2014-08-04
  726. ===================
  727. * fix `res.sendfile` regression for serving directory index files
  728. * deps: connect@2.24.3
  729. - deps: serve-index@~1.1.5
  730. - deps: serve-static@~1.4.4
  731. * deps: send@0.7.4
  732. - Fix incorrect 403 on Windows and Node.js 0.11
  733. - Fix serving index files without root dir
  734. 3.15.2 / 2014-07-27
  735. ===================
  736. * deps: connect@2.24.2
  737. - deps: body-parser@~1.5.2
  738. - deps: depd@0.4.4
  739. - deps: express-session@~1.7.2
  740. - deps: morgan@~1.2.2
  741. - deps: serve-static@~1.4.2
  742. * deps: depd@0.4.4
  743. - Work-around v8 generating empty stack traces
  744. * deps: send@0.7.2
  745. - deps: depd@0.4.4
  746. 3.15.1 / 2014-07-26
  747. ===================
  748. * deps: connect@2.24.1
  749. - deps: body-parser@~1.5.1
  750. - deps: depd@0.4.3
  751. - deps: express-session@~1.7.1
  752. - deps: morgan@~1.2.1
  753. - deps: serve-index@~1.1.4
  754. - deps: serve-static@~1.4.1
  755. * deps: depd@0.4.3
  756. - Fix exception when global `Error.stackTraceLimit` is too low
  757. * deps: send@0.7.1
  758. - deps: depd@0.4.3
  759. 3.15.0 / 2014-07-22
  760. ===================
  761. * Fix `req.protocol` for proxy-direct connections
  762. * Pass options from `res.sendfile` to `send`
  763. * deps: connect@2.24.0
  764. - deps: body-parser@~1.5.0
  765. - deps: compression@~1.0.9
  766. - deps: connect-timeout@~1.2.1
  767. - deps: debug@1.0.4
  768. - deps: depd@0.4.2
  769. - deps: express-session@~1.7.0
  770. - deps: finalhandler@0.1.0
  771. - deps: method-override@~2.1.2
  772. - deps: morgan@~1.2.0
  773. - deps: multiparty@3.3.1
  774. - deps: parseurl@~1.2.0
  775. - deps: serve-static@~1.4.0
  776. * deps: debug@1.0.4
  777. * deps: depd@0.4.2
  778. - Add `TRACE_DEPRECATION` environment variable
  779. - Remove non-standard grey color from color output
  780. - Support `--no-deprecation` argument
  781. - Support `--trace-deprecation` argument
  782. * deps: parseurl@~1.2.0
  783. - Cache URLs based on original value
  784. - Remove no-longer-needed URL mis-parse work-around
  785. - Simplify the "fast-path" `RegExp`
  786. * deps: send@0.7.0
  787. - Add `dotfiles` option
  788. - Cap `maxAge` value to 1 year
  789. - deps: debug@1.0.4
  790. - deps: depd@0.4.2
  791. 3.14.0 / 2014-07-11
  792. ===================
  793. * add explicit "Rosetta Flash JSONP abuse" protection
  794. - previous versions are not vulnerable; this is just explicit protection
  795. * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead
  796. * fix `res.send(status, num)` to send `num` as json (not error)
  797. * remove unnecessary escaping when `res.jsonp` returns JSON response
  798. * deps: basic-auth@1.0.0
  799. - support empty password
  800. - support empty username
  801. * deps: connect@2.23.0
  802. - deps: debug@1.0.3
  803. - deps: express-session@~1.6.4
  804. - deps: method-override@~2.1.0
  805. - deps: parseurl@~1.1.3
  806. - deps: serve-static@~1.3.1
  807. * deps: debug@1.0.3
  808. - Add support for multiple wildcards in namespaces
  809. * deps: methods@1.1.0
  810. - add `CONNECT`
  811. * deps: parseurl@~1.1.3
  812. - faster parsing of href-only URLs
  813. 3.13.0 / 2014-07-03
  814. ===================
  815. * add deprecation message to `app.configure`
  816. * add deprecation message to `req.auth`
  817. * use `basic-auth` to parse `Authorization` header
  818. * deps: connect@2.22.0
  819. - deps: csurf@~1.3.0
  820. - deps: express-session@~1.6.1
  821. - deps: multiparty@3.3.0
  822. - deps: serve-static@~1.3.0
  823. * deps: send@0.5.0
  824. - Accept string for `maxage` (converted by `ms`)
  825. - Include link in default redirect response
  826. 3.12.1 / 2014-06-26
  827. ===================
  828. * deps: connect@2.21.1
  829. - deps: cookie-parser@1.3.2
  830. - deps: cookie-signature@1.0.4
  831. - deps: express-session@~1.5.2
  832. - deps: type-is@~1.3.2
  833. * deps: cookie-signature@1.0.4
  834. - fix for timing attacks
  835. 3.12.0 / 2014-06-21
  836. ===================
  837. * use `media-typer` to alter content-type charset
  838. * deps: connect@2.21.0
  839. - deprecate `connect(middleware)` -- use `app.use(middleware)` instead
  840. - deprecate `connect.createServer()` -- use `connect()` instead
  841. - fix `res.setHeader()` patch to work with with get -> append -> set pattern
  842. - deps: compression@~1.0.8
  843. - deps: errorhandler@~1.1.1
  844. - deps: express-session@~1.5.0
  845. - deps: serve-index@~1.1.3
  846. 3.11.0 / 2014-06-19
  847. ===================
  848. * deprecate things with `depd` module
  849. * deps: buffer-crc32@0.2.3
  850. * deps: connect@2.20.2
  851. - deprecate `verify` option to `json` -- use `body-parser` npm module instead
  852. - deprecate `verify` option to `urlencoded` -- use `body-parser` npm module instead
  853. - deprecate things with `depd` module
  854. - use `finalhandler` for final response handling
  855. - use `media-typer` to parse `content-type` for charset
  856. - deps: body-parser@1.4.3
  857. - deps: connect-timeout@1.1.1
  858. - deps: cookie-parser@1.3.1
  859. - deps: csurf@1.2.2
  860. - deps: errorhandler@1.1.0
  861. - deps: express-session@1.4.0
  862. - deps: multiparty@3.2.9
  863. - deps: serve-index@1.1.2
  864. - deps: type-is@1.3.1
  865. - deps: vhost@2.0.0
  866. 3.10.5 / 2014-06-11
  867. ===================
  868. * deps: connect@2.19.6
  869. - deps: body-parser@1.3.1
  870. - deps: compression@1.0.7
  871. - deps: debug@1.0.2
  872. - deps: serve-index@1.1.1
  873. - deps: serve-static@1.2.3
  874. * deps: debug@1.0.2
  875. * deps: send@0.4.3
  876. - Do not throw un-catchable error on file open race condition
  877. - Use `escape-html` for HTML escaping
  878. - deps: debug@1.0.2
  879. - deps: finished@1.2.2
  880. - deps: fresh@0.2.2
  881. 3.10.4 / 2014-06-09
  882. ===================
  883. * deps: connect@2.19.5
  884. - fix "event emitter leak" warnings
  885. - deps: csurf@1.2.1
  886. - deps: debug@1.0.1
  887. - deps: serve-static@1.2.2
  888. - deps: type-is@1.2.1
  889. * deps: debug@1.0.1
  890. * deps: send@0.4.2
  891. - fix "event emitter leak" warnings
  892. - deps: finished@1.2.1
  893. - deps: debug@1.0.1
  894. 3.10.3 / 2014-06-05
  895. ===================
  896. * use `vary` module for `res.vary`
  897. * deps: connect@2.19.4
  898. - deps: errorhandler@1.0.2
  899. - deps: method-override@2.0.2
  900. - deps: serve-favicon@2.0.1
  901. * deps: debug@1.0.0
  902. 3.10.2 / 2014-06-03
  903. ===================
  904. * deps: connect@2.19.3
  905. - deps: compression@1.0.6
  906. 3.10.1 / 2014-06-03
  907. ===================
  908. * deps: connect@2.19.2
  909. - deps: compression@1.0.4
  910. * deps: proxy-addr@1.0.1
  911. 3.10.0 / 2014-06-02
  912. ===================
  913. * deps: connect@2.19.1
  914. - deprecate `methodOverride()` -- use `method-override` npm module instead
  915. - deps: body-parser@1.3.0
  916. - deps: method-override@2.0.1
  917. - deps: multiparty@3.2.8
  918. - deps: response-time@2.0.0
  919. - deps: serve-static@1.2.1
  920. * deps: methods@1.0.1
  921. * deps: send@0.4.1
  922. - Send `max-age` in `Cache-Control` in correct format
  923. 3.9.0 / 2014-05-30
  924. ==================
  925. * custom etag control with `app.set('etag', val)`
  926. - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation
  927. - `app.set('etag', 'weak')` weak tag
  928. - `app.set('etag', 'strong')` strong etag
  929. - `app.set('etag', false)` turn off
  930. - `app.set('etag', true)` standard etag
  931. * Include ETag in HEAD requests
  932. * mark `res.send` ETag as weak and reduce collisions
  933. * update connect to 2.18.0
  934. - deps: compression@1.0.3
  935. - deps: serve-index@1.1.0
  936. - deps: serve-static@1.2.0
  937. * update send to 0.4.0
  938. - Calculate ETag with md5 for reduced collisions
  939. - Ignore stream errors after request ends
  940. - deps: debug@0.8.1
  941. 3.8.1 / 2014-05-27
  942. ==================
  943. * update connect to 2.17.3
  944. - deps: body-parser@1.2.2
  945. - deps: express-session@1.2.1
  946. - deps: method-override@1.0.2
  947. 3.8.0 / 2014-05-21
  948. ==================
  949. * keep previous `Content-Type` for `res.jsonp`
  950. * set proper `charset` in `Content-Type` for `res.send`
  951. * update connect to 2.17.1
  952. - fix `res.charset` appending charset when `content-type` has one
  953. - deps: express-session@1.2.0
  954. - deps: morgan@1.1.1
  955. - deps: serve-index@1.0.3
  956. 3.7.0 / 2014-05-18
  957. ==================
  958. * proper proxy trust with `app.set('trust proxy', trust)`
  959. - `app.set('trust proxy', 1)` trust first hop
  960. - `app.set('trust proxy', 'loopback')` trust loopback addresses
  961. - `app.set('trust proxy', '10.0.0.1')` trust single IP
  962. - `app.set('trust proxy', '10.0.0.1/16')` trust subnet
  963. - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list
  964. - `app.set('trust proxy', false)` turn off
  965. - `app.set('trust proxy', true)` trust everything
  966. * update connect to 2.16.2
  967. - deprecate `res.headerSent` -- use `res.headersSent`
  968. - deprecate `res.on("header")` -- use on-headers module instead
  969. - fix edge-case in `res.appendHeader` that would append in wrong order
  970. - json: use body-parser
  971. - urlencoded: use body-parser
  972. - dep: bytes@1.0.0
  973. - dep: cookie-parser@1.1.0
  974. - dep: csurf@1.2.0
  975. - dep: express-session@1.1.0
  976. - dep: method-override@1.0.1
  977. 3.6.0 / 2014-05-09
  978. ==================
  979. * deprecate `app.del()` -- use `app.delete()` instead
  980. * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead
  981. - the edge-case `res.json(status, num)` requires `res.status(status).json(num)`
  982. * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead
  983. - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)`
  984. * support PURGE method
  985. - add `app.purge`
  986. - add `router.purge`
  987. - include PURGE in `app.all`
  988. * update connect to 2.15.0
  989. * Add `res.appendHeader`
  990. * Call error stack even when response has been sent
  991. * Patch `res.headerSent` to return Boolean
  992. * Patch `res.headersSent` for node.js 0.8
  993. * Prevent default 404 handler after response sent
  994. * dep: compression@1.0.2
  995. * dep: connect-timeout@1.1.0
  996. * dep: debug@^0.8.0
  997. * dep: errorhandler@1.0.1
  998. * dep: express-session@1.0.4
  999. * dep: morgan@1.0.1
  1000. * dep: serve-favicon@2.0.0
  1001. * dep: serve-index@1.0.2
  1002. * update debug to 0.8.0
  1003. * add `enable()` method
  1004. * change from stderr to stdout
  1005. * update methods to 1.0.0
  1006. - add PURGE
  1007. * update mkdirp to 0.5.0
  1008. 3.5.3 / 2014-05-08
  1009. ==================
  1010. * fix `req.host` for IPv6 literals
  1011. * fix `res.jsonp` error if callback param is object
  1012. 3.5.2 / 2014-04-24
  1013. ==================
  1014. * update connect to 2.14.5
  1015. * update cookie to 0.1.2
  1016. * update mkdirp to 0.4.0
  1017. * update send to 0.3.0
  1018. 3.5.1 / 2014-03-25
  1019. ==================
  1020. * pin less-middleware in generated app
  1021. 3.5.0 / 2014-03-06
  1022. ==================
  1023. * bump deps
  1024. 3.4.8 / 2014-01-13
  1025. ==================
  1026. * prevent incorrect automatic OPTIONS responses #1868 @dpatti
  1027. * update binary and examples for jade 1.0 #1876 @yossi, #1877 @reqshark, #1892 @matheusazzi
  1028. * throw 400 in case of malformed paths @rlidwka
  1029. 3.4.7 / 2013-12-10
  1030. ==================
  1031. * update connect
  1032. 3.4.6 / 2013-12-01
  1033. ==================
  1034. * update connect (raw-body)
  1035. 3.4.5 / 2013-11-27
  1036. ==================
  1037. * update connect
  1038. * res.location: remove leading ./ #1802 @kapouer
  1039. * res.redirect: fix `res.redirect('toString') #1829 @michaelficarra
  1040. * res.send: always send ETag when content-length > 0
  1041. * router: add Router.all() method
  1042. 3.4.4 / 2013-10-29
  1043. ==================
  1044. * update connect
  1045. * update supertest
  1046. * update methods
  1047. * express(1): replace bodyParser() with urlencoded() and json() #1795 @chirag04
  1048. 3.4.3 / 2013-10-23
  1049. ==================
  1050. * update connect
  1051. 3.4.2 / 2013-10-18
  1052. ==================
  1053. * update connect
  1054. * downgrade commander
  1055. 3.4.1 / 2013-10-15
  1056. ==================
  1057. * update connect
  1058. * update commander
  1059. * jsonp: check if callback is a function
  1060. * router: wrap encodeURIComponent in a try/catch #1735 (@lxe)
  1061. * res.format: now includes chraset @1747 (@sorribas)
  1062. * res.links: allow multiple calls @1746 (@sorribas)
  1063. 3.4.0 / 2013-09-07
  1064. ==================
  1065. * add res.vary(). Closes #1682
  1066. * update connect
  1067. 3.3.8 / 2013-09-02
  1068. ==================
  1069. * update connect
  1070. 3.3.7 / 2013-08-28
  1071. ==================
  1072. * update connect
  1073. 3.3.6 / 2013-08-27
  1074. ==================
  1075. * Revert "remove charset from json responses. Closes #1631" (causes issues in some clients)
  1076. * add: req.accepts take an argument list
  1077. 3.3.4 / 2013-07-08
  1078. ==================
  1079. * update send and connect
  1080. 3.3.3 / 2013-07-04
  1081. ==================
  1082. * update connect
  1083. 3.3.2 / 2013-07-03
  1084. ==================
  1085. * update connect
  1086. * update send
  1087. * remove .version export
  1088. 3.3.1 / 2013-06-27
  1089. ==================
  1090. * update connect
  1091. 3.3.0 / 2013-06-26
  1092. ==================
  1093. * update connect
  1094. * add support for multiple X-Forwarded-Proto values. Closes #1646
  1095. * change: remove charset from json responses. Closes #1631
  1096. * change: return actual booleans from req.accept* functions
  1097. * fix jsonp callback array throw
  1098. 3.2.6 / 2013-06-02
  1099. ==================
  1100. * update connect
  1101. 3.2.5 / 2013-05-21
  1102. ==================
  1103. * update connect
  1104. * update node-cookie
  1105. * add: throw a meaningful error when there is no default engine
  1106. * change generation of ETags with res.send() to GET requests only. Closes #1619
  1107. 3.2.4 / 2013-05-09
  1108. ==================
  1109. * fix `req.subdomains` when no Host is present
  1110. * fix `req.host` when no Host is present, return undefined
  1111. 3.2.3 / 2013-05-07
  1112. ==================
  1113. * update connect / qs
  1114. 3.2.2 / 2013-05-03
  1115. ==================
  1116. * update qs
  1117. 3.2.1 / 2013-04-29
  1118. ==================
  1119. * add app.VERB() paths array deprecation warning
  1120. * update connect
  1121. * update qs and remove all ~ semver crap
  1122. * fix: accept number as value of Signed Cookie
  1123. 3.2.0 / 2013-04-15
  1124. ==================
  1125. * add "view" constructor setting to override view behaviour
  1126. * add req.acceptsEncoding(name)
  1127. * add req.acceptedEncodings
  1128. * revert cookie signature change causing session race conditions
  1129. * fix sorting of Accept values of the same quality
  1130. 3.1.2 / 2013-04-12
  1131. ==================
  1132. * add support for custom Accept parameters
  1133. * update cookie-signature
  1134. 3.1.1 / 2013-04-01
  1135. ==================
  1136. * add X-Forwarded-Host support to `req.host`
  1137. * fix relative redirects
  1138. * update mkdirp
  1139. * update buffer-crc32
  1140. * remove legacy app.configure() method from app template.
  1141. 3.1.0 / 2013-01-25
  1142. ==================
  1143. * add support for leading "." in "view engine" setting
  1144. * add array support to `res.set()`
  1145. * add node 0.8.x to travis.yml
  1146. * add "subdomain offset" setting for tweaking `req.subdomains`
  1147. * add `res.location(url)` implementing `res.redirect()`-like setting of Location
  1148. * use app.get() for x-powered-by setting for inheritance
  1149. * fix colons in passwords for `req.auth`
  1150. 3.0.6 / 2013-01-04
  1151. ==================
  1152. * add http verb methods to Router
  1153. * update connect
  1154. * fix mangling of the `res.cookie()` options object
  1155. * fix jsonp whitespace escape. Closes #1132
  1156. 3.0.5 / 2012-12-19
  1157. ==================
  1158. * add throwing when a non-function is passed to a route
  1159. * fix: explicitly remove Transfer-Encoding header from 204 and 304 responses
  1160. * revert "add 'etag' option"
  1161. 3.0.4 / 2012-12-05
  1162. ==================
  1163. * add 'etag' option to disable `res.send()` Etags
  1164. * add escaping of urls in text/plain in `res.redirect()`
  1165. for old browsers interpreting as html
  1166. * change crc32 module for a more liberal license
  1167. * update connect
  1168. 3.0.3 / 2012-11-13
  1169. ==================
  1170. * update connect
  1171. * update cookie module
  1172. * fix cookie max-age
  1173. 3.0.2 / 2012-11-08
  1174. ==================
  1175. * add OPTIONS to cors example. Closes #1398
  1176. * fix route chaining regression. Closes #1397
  1177. 3.0.1 / 2012-11-01
  1178. ==================
  1179. * update connect
  1180. 3.0.0 / 2012-10-23
  1181. ==================
  1182. * add `make clean`
  1183. * add "Basic" check to req.auth
  1184. * add `req.auth` test coverage
  1185. * add cb && cb(payload) to `res.jsonp()`. Closes #1374
  1186. * add backwards compat for `res.redirect()` status. Closes #1336
  1187. * add support for `res.json()` to retain previously defined Content-Types. Closes #1349
  1188. * update connect
  1189. * change `res.redirect()` to utilize a pathname-relative Location again. Closes #1382
  1190. * remove non-primitive string support for `res.send()`
  1191. * fix view-locals example. Closes #1370
  1192. * fix route-separation example
  1193. 3.0.0rc5 / 2012-09-18
  1194. ==================
  1195. * update connect
  1196. * add redis search example
  1197. * add static-files example
  1198. * add "x-powered-by" setting (`app.disable('x-powered-by')`)
  1199. * add "application/octet-stream" redirect Accept test case. Closes #1317
  1200. 3.0.0rc4 / 2012-08-30
  1201. ==================
  1202. * add `res.jsonp()`. Closes #1307
  1203. * add "verbose errors" option to error-pages example
  1204. * add another route example to express(1) so people are not so confused
  1205. * add redis online user activity tracking example
  1206. * update connect dep
  1207. * fix etag quoting. Closes #1310
  1208. * fix error-pages 404 status
  1209. * fix jsonp callback char restrictions
  1210. * remove old OPTIONS default response
  1211. 3.0.0rc3 / 2012-08-13
  1212. ==================
  1213. * update connect dep
  1214. * fix signed cookies to work with `connect.cookieParser()` ("s:" prefix was missing) [tnydwrds]
  1215. * fix `res.render()` clobbering of "locals"
  1216. 3.0.0rc2 / 2012-08-03
  1217. ==================
  1218. * add CORS example
  1219. * update connect dep
  1220. * deprecate `.createServer()` & remove old stale examples
  1221. * fix: escape `res.redirect()` link
  1222. * fix vhost example
  1223. 3.0.0rc1 / 2012-07-24
  1224. ==================
  1225. * add more examples to view-locals
  1226. * add scheme-relative redirects (`res.redirect("//foo.com")`) support
  1227. * update cookie dep
  1228. * update connect dep
  1229. * update send dep
  1230. * fix `express(1)` -h flag, use -H for hogan. Closes #1245
  1231. * fix `res.sendfile()` socket error handling regression
  1232. 3.0.0beta7 / 2012-07-16
  1233. ==================
  1234. * update connect dep for `send()` root normalization regression
  1235. 3.0.0beta6 / 2012-07-13
  1236. ==================
  1237. * add `err.view` property for view errors. Closes #1226
  1238. * add "jsonp callback name" setting
  1239. * add support for "/foo/:bar*" non-greedy matches
  1240. * change `res.sendfile()` to use `send()` module
  1241. * change `res.send` to use "response-send" module
  1242. * remove `app.locals.use` and `res.locals.use`, use regular middleware
  1243. 3.0.0beta5 / 2012-07-03
  1244. ==================
  1245. * add "make check" support
  1246. * add route-map example
  1247. * add `res.json(obj, status)` support back for BC
  1248. * add "methods" dep, remove internal methods module
  1249. * update connect dep
  1250. * update auth example to utilize cores pbkdf2
  1251. * updated tests to use "supertest"
  1252. 3.0.0beta4 / 2012-06-25
  1253. ==================
  1254. * Added `req.auth`
  1255. * Added `req.range(size)`
  1256. * Added `res.links(obj)`
  1257. * Added `res.send(body, status)` support back for backwards compat
  1258. * Added `.default()` support to `res.format()`
  1259. * Added 2xx / 304 check to `req.fresh`
  1260. * Revert "Added + support to the router"
  1261. * Fixed `res.send()` freshness check, respect res.statusCode
  1262. 3.0.0beta3 / 2012-06-15
  1263. ==================
  1264. * Added hogan `--hjs` to express(1) [nullfirm]
  1265. * Added another example to content-negotiation
  1266. * Added `fresh` dep
  1267. * Changed: `res.send()` always checks freshness
  1268. * Fixed: expose connects mime module. Cloases #1165
  1269. 3.0.0beta2 / 2012-06-06
  1270. ==================
  1271. * Added `+` support to the router
  1272. * Added `req.host`
  1273. * Changed `req.param()` to check route first
  1274. * Update connect dep
  1275. 3.0.0beta1 / 2012-06-01
  1276. ==================
  1277. * Added `res.format()` callback to override default 406 behaviour
  1278. * Fixed `res.redirect()` 406. Closes #1154
  1279. 3.0.0alpha5 / 2012-05-30
  1280. ==================
  1281. * Added `req.ip`
  1282. * Added `{ signed: true }` option to `res.cookie()`
  1283. * Removed `res.signedCookie()`
  1284. * Changed: dont reverse `req.ips`
  1285. * Fixed "trust proxy" setting check for `req.ips`
  1286. 3.0.0alpha4 / 2012-05-09
  1287. ==================
  1288. * Added: allow `[]` in jsonp callback. Closes #1128
  1289. * Added `PORT` env var support in generated template. Closes #1118 [benatkin]
  1290. * Updated: connect 2.2.2
  1291. 3.0.0alpha3 / 2012-05-04
  1292. ==================
  1293. * Added public `app.routes`. Closes #887
  1294. * Added _view-locals_ example
  1295. * Added _mvc_ example
  1296. * Added `res.locals.use()`. Closes #1120
  1297. * Added conditional-GET support to `res.send()`
  1298. * Added: coerce `res.set()` values to strings
  1299. * Changed: moved `static()` in generated apps below router
  1300. * Changed: `res.send()` only set ETag when not previously set
  1301. * Changed connect 2.2.1 dep
  1302. * Changed: `make test` now runs unit / acceptance tests
  1303. * Fixed req/res proto inheritance
  1304. 3.0.0alpha2 / 2012-04-26
  1305. ==================
  1306. * Added `make benchmark` back
  1307. * Added `res.send()` support for `String` objects
  1308. * Added client-side data exposing example
  1309. * Added `res.header()` and `req.header()` aliases for BC
  1310. * Added `express.createServer()` for BC
  1311. * Perf: memoize parsed urls
  1312. * Perf: connect 2.2.0 dep
  1313. * Changed: make `expressInit()` middleware self-aware
  1314. * Fixed: use app.get() for all core settings
  1315. * Fixed redis session example
  1316. * Fixed session example. Closes #1105
  1317. * Fixed generated express dep. Closes #1078
  1318. 3.0.0alpha1 / 2012-04-15
  1319. ==================
  1320. * Added `app.locals.use(callback)`
  1321. * Added `app.locals` object
  1322. * Added `app.locals(obj)`
  1323. * Added `res.locals` object
  1324. * Added `res.locals(obj)`
  1325. * Added `res.format()` for content-negotiation
  1326. * Added `app.engine()`
  1327. * Added `res.cookie()` JSON cookie support
  1328. * Added "trust proxy" setting
  1329. * Added `req.subdomains`
  1330. * Added `req.protocol`
  1331. * Added `req.secure`
  1332. * Added `req.path`
  1333. * Added `req.ips`
  1334. * Added `req.fresh`
  1335. * Added `req.stale`
  1336. * Added comma-delmited / array support for `req.accepts()`
  1337. * Added debug instrumentation
  1338. * Added `res.set(obj)`
  1339. * Added `res.set(field, value)`
  1340. * Added `res.get(field)`
  1341. * Added `app.get(setting)`. Closes #842
  1342. * Added `req.acceptsLanguage()`
  1343. * Added `req.acceptsCharset()`
  1344. * Added `req.accepted`
  1345. * Added `req.acceptedLanguages`
  1346. * Added `req.acceptedCharsets`
  1347. * Added "json replacer" setting
  1348. * Added "json spaces" setting
  1349. * Added X-Forwarded-Proto support to `res.redirect()`. Closes #92
  1350. * Added `--less` support to express(1)
  1351. * Added `express.response` prototype
  1352. * Added `express.request` prototype
  1353. * Added `express.application` prototype
  1354. * Added `app.path()`
  1355. * Added `app.render()`
  1356. * Added `res.type()` to replace `res.contentType()`
  1357. * Changed: `res.redirect()` to add relative support
  1358. * Changed: enable "jsonp callback" by default
  1359. * Changed: renamed "case sensitive routes" to "case sensitive routing"
  1360. * Rewrite of all tests with mocha
  1361. * Removed "root" setting
  1362. * Removed `res.redirect('home')` support
  1363. * Removed `req.notify()`
  1364. * Removed `app.register()`
  1365. * Removed `app.redirect()`
  1366. * Removed `app.is()`
  1367. * Removed `app.helpers()`
  1368. * Removed `app.dynamicHelpers()`
  1369. * Fixed `res.sendfile()` with non-GET. Closes #723
  1370. * Fixed express(1) public dir for windows. Closes #866
  1371. 2.5.9/ 2012-04-02
  1372. ==================
  1373. * Added support for PURGE request method [pbuyle]
  1374. * Fixed `express(1)` generated app `app.address()` before `listening` [mmalecki]
  1375. 2.5.8 / 2012-02-08
  1376. ==================
  1377. * Update mkdirp dep. Closes #991
  1378. 2.5.7 / 2012-02-06
  1379. ==================
  1380. * Fixed `app.all` duplicate DELETE requests [mscdex]
  1381. 2.5.6 / 2012-01-13
  1382. ==================
  1383. * Updated hamljs dev dep. Closes #953
  1384. 2.5.5 / 2012-01-08
  1385. ==================
  1386. * Fixed: set `filename` on cached templates [matthewleon]
  1387. 2.5.4 / 2012-01-02
  1388. ==================
  1389. * Fixed `express(1)` eol on 0.4.x. Closes #947
  1390. 2.5.3 / 2011-12-30
  1391. ==================
  1392. * Fixed `req.is()` when a charset is present
  1393. 2.5.2 / 2011-12-10
  1394. ==================
  1395. * Fixed: express(1) LF -> CRLF for windows
  1396. 2.5.1 / 2011-11-17
  1397. ==================
  1398. * Changed: updated connect to 1.8.x
  1399. * Removed sass.js support from express(1)
  1400. 2.5.0 / 2011-10-24
  1401. ==================
  1402. * Added ./routes dir for generated app by default
  1403. * Added npm install reminder to express(1) app gen
  1404. * Added 0.5.x support
  1405. * Removed `make test-cov` since it wont work with node 0.5.x
  1406. * Fixed express(1) public dir for windows. Closes #866
  1407. 2.4.7 / 2011-10-05
  1408. ==================
  1409. * Added mkdirp to express(1). Closes #795
  1410. * Added simple _json-config_ example
  1411. * Added shorthand for the parsed request's pathname via `req.path`
  1412. * Changed connect dep to 1.7.x to fix npm issue...
  1413. * Fixed `res.redirect()` __HEAD__ support. [reported by xerox]
  1414. * Fixed `req.flash()`, only escape args
  1415. * Fixed absolute path checking on windows. Closes #829 [reported by andrewpmckenzie]
  1416. 2.4.6 / 2011-08-22
  1417. ==================
  1418. * Fixed multiple param callback regression. Closes #824 [reported by TroyGoode]
  1419. 2.4.5 / 2011-08-19
  1420. ==================
  1421. * Added support for routes to handle errors. Closes #809
  1422. * Added `app.routes.all()`. Closes #803
  1423. * Added "basepath" setting to work in conjunction with reverse proxies etc.
  1424. * Refactored `Route` to use a single array of callbacks
  1425. * Added support for multiple callbacks for `app.param()`. Closes #801
  1426. Closes #805
  1427. * Changed: removed .call(self) for route callbacks
  1428. * Dependency: `qs >= 0.3.1`
  1429. * Fixed `res.redirect()` on windows due to `join()` usage. Closes #808
  1430. 2.4.4 / 2011-08-05
  1431. ==================
  1432. * Fixed `res.header()` intention of a set, even when `undefined`
  1433. * Fixed `*`, value no longer required
  1434. * Fixed `res.send(204)` support. Closes #771
  1435. 2.4.3 / 2011-07-14
  1436. ==================
  1437. * Added docs for `status` option special-case. Closes #739
  1438. * Fixed `options.filename`, exposing the view path to template engines
  1439. 2.4.2. / 2011-07-06
  1440. ==================
  1441. * Revert "removed jsonp stripping" for XSS
  1442. 2.4.1 / 2011-07-06
  1443. ==================
  1444. * Added `res.json()` JSONP support. Closes #737
  1445. * Added _extending-templates_ example. Closes #730
  1446. * Added "strict routing" setting for trailing slashes
  1447. * Added support for multiple envs in `app.configure()` calls. Closes #735
  1448. * Changed: `res.send()` using `res.json()`
  1449. * Changed: when cookie `path === null` don't default it
  1450. * Changed; default cookie path to "home" setting. Closes #731
  1451. * Removed _pids/logs_ creation from express(1)
  1452. 2.4.0 / 2011-06-28
  1453. ==================
  1454. * Added chainable `res.status(code)`
  1455. * Added `res.json()`, an explicit version of `res.send(obj)`
  1456. * Added simple web-service example
  1457. 2.3.12 / 2011-06-22
  1458. ==================
  1459. * \#express is now on freenode! come join!
  1460. * Added `req.get(field, param)`
  1461. * Added links to Japanese documentation, thanks @hideyukisaito!
  1462. * Added; the `express(1)` generated app outputs the env
  1463. * Added `content-negotiation` example
  1464. * Dependency: connect >= 1.5.1 < 2.0.0
  1465. * Fixed view layout bug. Closes #720
  1466. * Fixed; ignore body on 304. Closes #701
  1467. 2.3.11 / 2011-06-04
  1468. ==================
  1469. * Added `npm test`
  1470. * Removed generation of dummy test file from `express(1)`
  1471. * Fixed; `express(1)` adds express as a dep
  1472. * Fixed; prune on `prepublish`
  1473. 2.3.10 / 2011-05-27
  1474. ==================
  1475. * Added `req.route`, exposing the current route
  1476. * Added _package.json_ generation support to `express(1)`
  1477. * Fixed call to `app.param()` function for optional params. Closes #682
  1478. 2.3.9 / 2011-05-25
  1479. ==================
  1480. * Fixed bug-ish with `../' in `res.partial()` calls
  1481. 2.3.8 / 2011-05-24
  1482. ==================
  1483. * Fixed `app.options()`
  1484. 2.3.7 / 2011-05-23
  1485. ==================
  1486. * Added route `Collection`, ex: `app.get('/user/:id').remove();`
  1487. * Added support for `app.param(fn)` to define param logic
  1488. * Removed `app.param()` support for callback with return value
  1489. * Removed module.parent check from express(1) generated app. Closes #670
  1490. * Refactored router. Closes #639
  1491. 2.3.6 / 2011-05-20
  1492. ==================
  1493. * Changed; using devDependencies instead of git submodules
  1494. * Fixed redis session example
  1495. * Fixed markdown example
  1496. * Fixed view caching, should not be enabled in development
  1497. 2.3.5 / 2011-05-20
  1498. ==================
  1499. * Added export `.view` as alias for `.View`
  1500. 2.3.4 / 2011-05-08
  1501. ==================
  1502. * Added `./examples/say`
  1503. * Fixed `res.sendfile()` bug preventing the transfer of files with spaces
  1504. 2.3.3 / 2011-05-03
  1505. ==================
  1506. * Added "case sensitive routes" option.
  1507. * Changed; split methods supported per rfc [slaskis]
  1508. * Fixed route-specific middleware when using the same callback function several times
  1509. 2.3.2 / 2011-04-27
  1510. ==================
  1511. * Fixed view hints
  1512. 2.3.1 / 2011-04-26
  1513. ==================
  1514. * Added `app.match()` as `app.match.all()`
  1515. * Added `app.lookup()` as `app.lookup.all()`
  1516. * Added `app.remove()` for `app.remove.all()`
  1517. * Added `app.remove.VERB()`
  1518. * Fixed template caching collision issue. Closes #644
  1519. * Moved router over from connect and started refactor
  1520. 2.3.0 / 2011-04-25
  1521. ==================
  1522. * Added options support to `res.clearCookie()`
  1523. * Added `res.helpers()` as alias of `res.locals()`
  1524. * Added; json defaults to UTF-8 with `res.send()`. Closes #632. [Daniel * Dependency `connect >= 1.4.0`
  1525. * Changed; auto set Content-Type in res.attachement [Aaron Heckmann]
  1526. * Renamed "cache views" to "view cache". Closes #628
  1527. * Fixed caching of views when using several apps. Closes #637
  1528. * Fixed gotcha invoking `app.param()` callbacks once per route middleware.
  1529. Closes #638
  1530. * Fixed partial lookup precedence. Closes #631
  1531. Shaw]
  1532. 2.2.2 / 2011-04-12
  1533. ==================
  1534. * Added second callback support for `res.download()` connection errors
  1535. * Fixed `filename` option passing to template engine
  1536. 2.2.1 / 2011-04-04
  1537. ==================
  1538. * Added `layout(path)` helper to change the layout within a view. Closes #610
  1539. * Fixed `partial()` collection object support.
  1540. Previously only anything with `.length` would work.
  1541. When `.length` is present one must still be aware of holes,
  1542. however now `{ collection: {foo: 'bar'}}` is valid, exposes
  1543. `keyInCollection` and `keysInCollection`.
  1544. * Performance improved with better view caching
  1545. * Removed `request` and `response` locals
  1546. * Changed; errorHandler page title is now `Express` instead of `Connect`
  1547. 2.2.0 / 2011-03-30
  1548. ==================
  1549. * Added `app.lookup.VERB()`, ex `app.lookup.put('/user/:id')`. Closes #606
  1550. * Added `app.match.VERB()`, ex `app.match.put('/user/12')`. Closes #606
  1551. * Added `app.VERB(path)` as alias of `app.lookup.VERB()`.
  1552. * Dependency `connect >= 1.2.0`
  1553. 2.1.1 / 2011-03-29
  1554. ==================
  1555. * Added; expose `err.view` object when failing to locate a view
  1556. * Fixed `res.partial()` call `next(err)` when no callback is given [reported by aheckmann]
  1557. * Fixed; `res.send(undefined)` responds with 204 [aheckmann]
  1558. 2.1.0 / 2011-03-24
  1559. ==================
  1560. * Added `<root>/_?<name>` partial lookup support. Closes #447
  1561. * Added `request`, `response`, and `app` local variables
  1562. * Added `settings` local variable, containing the app's settings
  1563. * Added `req.flash()` exception if `req.session` is not available
  1564. * Added `res.send(bool)` support (json response)
  1565. * Fixed stylus example for latest version
  1566. * Fixed; wrap try/catch around `res.render()`
  1567. 2.0.0 / 2011-03-17
  1568. ==================
  1569. * Fixed up index view path alternative.
  1570. * Changed; `res.locals()` without object returns the locals
  1571. 2.0.0rc3 / 2011-03-17
  1572. ==================
  1573. * Added `res.locals(obj)` to compliment `res.local(key, val)`
  1574. * Added `res.partial()` callback support
  1575. * Fixed recursive error reporting issue in `res.render()`
  1576. 2.0.0rc2 / 2011-03-17
  1577. ==================
  1578. * Changed; `partial()` "locals" are now optional
  1579. * Fixed `SlowBuffer` support. Closes #584 [reported by tyrda01]
  1580. * Fixed .filename view engine option [reported by drudge]
  1581. * Fixed blog example
  1582. * Fixed `{req,res}.app` reference when mounting [Ben Weaver]
  1583. 2.0.0rc / 2011-03-14
  1584. ==================
  1585. * Fixed; expose `HTTPSServer` constructor
  1586. * Fixed express(1) default test charset. Closes #579 [reported by secoif]
  1587. * Fixed; default charset to utf-8 instead of utf8 for lame IE [reported by NickP]
  1588. 2.0.0beta3 / 2011-03-09
  1589. ==================
  1590. * Added support for `res.contentType()` literal
  1591. The original `res.contentType('.json')`,
  1592. `res.contentType('application/json')`, and `res.contentType('json')`
  1593. will work now.
  1594. * Added `res.render()` status option support back
  1595. * Added charset option for `res.render()`
  1596. * Added `.charset` support (via connect 1.0.4)
  1597. * Added view resolution hints when in development and a lookup fails
  1598. * Added layout lookup support relative to the page view.
  1599. For example while rendering `./views/user/index.jade` if you create
  1600. `./views/user/layout.jade` it will be used in favour of the root layout.
  1601. * Fixed `res.redirect()`. RFC states absolute url [reported by unlink]
  1602. * Fixed; default `res.send()` string charset to utf8
  1603. * Removed `Partial` constructor (not currently used)
  1604. 2.0.0beta2 / 2011-03-07
  1605. ==================
  1606. * Added res.render() `.locals` support back to aid in migration process
  1607. * Fixed flash example
  1608. 2.0.0beta / 2011-03-03
  1609. ==================
  1610. * Added HTTPS support
  1611. * Added `res.cookie()` maxAge support
  1612. * Added `req.header()` _Referrer_ / _Referer_ special-case, either works
  1613. * Added mount support for `res.redirect()`, now respects the mount-point
  1614. * Added `union()` util, taking place of `merge(clone())` combo
  1615. * Added stylus support to express(1) generated app
  1616. * Added secret to session middleware used in examples and generated app
  1617. * Added `res.local(name, val)` for progressive view locals
  1618. * Added default param support to `req.param(name, default)`
  1619. * Added `app.disabled()` and `app.enabled()`
  1620. * Added `app.register()` support for omitting leading ".", either works
  1621. * Added `res.partial()`, using the same interface as `partial()` within a view. Closes #539
  1622. * Added `app.param()` to map route params to async/sync logic
  1623. * Added; aliased `app.helpers()` as `app.locals()`. Closes #481
  1624. * Added extname with no leading "." support to `res.contentType()`
  1625. * Added `cache views` setting, defaulting to enabled in "production" env
  1626. * Added index file partial resolution, eg: partial('user') may try _views/user/index.jade_.
  1627. * Added `req.accepts()` support for extensions
  1628. * Changed; `res.download()` and `res.sendfile()` now utilize Connect's
  1629. static file server `connect.static.send()`.
  1630. * Changed; replaced `connect.utils.mime()` with npm _mime_ module
  1631. * Changed; allow `req.query` to be pre-defined (via middleware or other parent
  1632. * Changed view partial resolution, now relative to parent view
  1633. * Changed view engine signature. no longer `engine.render(str, options, callback)`, now `engine.compile(str, options) -> Function`, the returned function accepts `fn(locals)`.
  1634. * Fixed `req.param()` bug returning Array.prototype methods. Closes #552
  1635. * Fixed; using `Stream#pipe()` instead of `sys.pump()` in `res.sendfile()`
  1636. * Fixed; using _qs_ module instead of _querystring_
  1637. * Fixed; strip unsafe chars from jsonp callbacks
  1638. * Removed "stream threshold" setting
  1639. 1.0.8 / 2011-03-01
  1640. ==================
  1641. * Allow `req.query` to be pre-defined (via middleware or other parent app)
  1642. * "connect": ">= 0.5.0 < 1.0.0". Closes #547
  1643. * Removed the long deprecated __EXPRESS_ENV__ support
  1644. 1.0.7 / 2011-02-07
  1645. ==================
  1646. * Fixed `render()` setting inheritance.
  1647. Mounted apps would not inherit "view engine"
  1648. 1.0.6 / 2011-02-07
  1649. ==================
  1650. * Fixed `view engine` setting bug when period is in dirname
  1651. 1.0.5 / 2011-02-05
  1652. ==================
  1653. * Added secret to generated app `session()` call
  1654. 1.0.4 / 2011-02-05
  1655. ==================
  1656. * Added `qs` dependency to _package.json_
  1657. * Fixed namespaced `require()`s for latest connect support
  1658. 1.0.3 / 2011-01-13
  1659. ==================
  1660. * Remove unsafe characters from JSONP callback names [Ryan Grove]
  1661. 1.0.2 / 2011-01-10
  1662. ==================
  1663. * Removed nested require, using `connect.router`
  1664. 1.0.1 / 2010-12-29
  1665. ==================
  1666. * Fixed for middleware stacked via `createServer()`
  1667. previously the `foo` middleware passed to `createServer(foo)`
  1668. would not have access to Express methods such as `res.send()`
  1669. or props like `req.query` etc.
  1670. 1.0.0 / 2010-11-16
  1671. ==================
  1672. * Added; deduce partial object names from the last segment.
  1673. For example by default `partial('forum/post', postObject)` will
  1674. give you the _post_ object, providing a meaningful default.
  1675. * Added http status code string representation to `res.redirect()` body
  1676. * Added; `res.redirect()` supporting _text/plain_ and _text/html_ via __Accept__.
  1677. * Added `req.is()` to aid in content negotiation
  1678. * Added partial local inheritance [suggested by masylum]. Closes #102
  1679. providing access to parent template locals.
  1680. * Added _-s, --session[s]_ flag to express(1) to add session related middleware
  1681. * Added _--template_ flag to express(1) to specify the
  1682. template engine to use.
  1683. * Added _--css_ flag to express(1) to specify the
  1684. stylesheet engine to use (or just plain css by default).
  1685. * Added `app.all()` support [thanks aheckmann]
  1686. * Added partial direct object support.
  1687. You may now `partial('user', user)` providing the "user" local,
  1688. vs previously `partial('user', { object: user })`.
  1689. * Added _route-separation_ example since many people question ways
  1690. to do this with CommonJS modules. Also view the _blog_ example for
  1691. an alternative.
  1692. * Performance; caching view path derived partial object names
  1693. * Fixed partial local inheritance precedence. [reported by Nick Poulden] Closes #454
  1694. * Fixed jsonp support; _text/javascript_ as per mailinglist discussion
  1695. 1.0.0rc4 / 2010-10-14
  1696. ==================
  1697. * Added _NODE_ENV_ support, _EXPRESS_ENV_ is deprecated and will be removed in 1.0.0
  1698. * Added route-middleware support (very helpful, see the [docs](http://expressjs.com/guide.html#Route-Middleware))
  1699. * Added _jsonp callback_ setting to enable/disable jsonp autowrapping [Dav Glass]
  1700. * Added callback query check on response.send to autowrap JSON objects for simple webservice implementations [Dav Glass]
  1701. * Added `partial()` support for array-like collections. Closes #434
  1702. * Added support for swappable querystring parsers
  1703. * Added session usage docs. Closes #443
  1704. * Added dynamic helper caching. Closes #439 [suggested by maritz]
  1705. * Added authentication example
  1706. * Added basic Range support to `res.sendfile()` (and `res.download()` etc)
  1707. * Changed; `express(1)` generated app using 2 spaces instead of 4
  1708. * Default env to "development" again [aheckmann]
  1709. * Removed _context_ option is no more, use "scope"
  1710. * Fixed; exposing _./support_ libs to examples so they can run without installs
  1711. * Fixed mvc example
  1712. 1.0.0rc3 / 2010-09-20
  1713. ==================
  1714. * Added confirmation for `express(1)` app generation. Closes #391
  1715. * Added extending of flash formatters via `app.flashFormatters`
  1716. * Added flash formatter support. Closes #411
  1717. * Added streaming support to `res.sendfile()` using `sys.pump()` when >= "stream threshold"
  1718. * Added _stream threshold_ setting for `res.sendfile()`
  1719. * Added `res.send()` __HEAD__ support
  1720. * Added `res.clearCookie()`
  1721. * Added `res.cookie()`
  1722. * Added `res.render()` headers option
  1723. * Added `res.redirect()` response bodies
  1724. * Added `res.render()` status option support. Closes #425 [thanks aheckmann]
  1725. * Fixed `res.sendfile()` responding with 403 on malicious path
  1726. * Fixed `res.download()` bug; when an error occurs remove _Content-Disposition_
  1727. * Fixed; mounted apps settings now inherit from parent app [aheckmann]
  1728. * Fixed; stripping Content-Length / Content-Type when 204
  1729. * Fixed `res.send()` 204. Closes #419
  1730. * Fixed multiple _Set-Cookie_ headers via `res.header()`. Closes #402
  1731. * Fixed bug messing with error handlers when `listenFD()` is called instead of `listen()`. [thanks guillermo]
  1732. 1.0.0rc2 / 2010-08-17
  1733. ==================
  1734. * Added `app.register()` for template engine mapping. Closes #390
  1735. * Added `res.render()` callback support as second argument (no options)
  1736. * Added callback support to `res.download()`
  1737. * Added callback support for `res.sendfile()`
  1738. * Added support for middleware access via `express.middlewareName()` vs `connect.middlewareName()`
  1739. * Added "partials" setting to docs
  1740. * Added default expresso tests to `express(1)` generated app. Closes #384
  1741. * Fixed `res.sendfile()` error handling, defer via `next()`
  1742. * Fixed `res.render()` callback when a layout is used [thanks guillermo]
  1743. * Fixed; `make install` creating ~/.node_libraries when not present
  1744. * Fixed issue preventing error handlers from being defined anywhere. Closes #387
  1745. 1.0.0rc / 2010-07-28
  1746. ==================
  1747. * Added mounted hook. Closes #369
  1748. * Added connect dependency to _package.json_
  1749. * Removed "reload views" setting and support code
  1750. development env never caches, production always caches.
  1751. * Removed _param_ in route callbacks, signature is now
  1752. simply (req, res, next), previously (req, res, params, next).
  1753. Use _req.params_ for path captures, _req.query_ for GET params.
  1754. * Fixed "home" setting
  1755. * Fixed middleware/router precedence issue. Closes #366
  1756. * Fixed; _configure()_ callbacks called immediately. Closes #368
  1757. 1.0.0beta2 / 2010-07-23
  1758. ==================
  1759. * Added more examples
  1760. * Added; exporting `Server` constructor
  1761. * Added `Server#helpers()` for view locals
  1762. * Added `Server#dynamicHelpers()` for dynamic view locals. Closes #349
  1763. * Added support for absolute view paths
  1764. * Added; _home_ setting defaults to `Server#route` for mounted apps. Closes #363
  1765. * Added Guillermo Rauch to the contributor list
  1766. * Added support for "as" for non-collection partials. Closes #341
  1767. * Fixed _install.sh_, ensuring _~/.node_libraries_ exists. Closes #362 [thanks jf]
  1768. * Fixed `res.render()` exceptions, now passed to `next()` when no callback is given [thanks guillermo]
  1769. * Fixed instanceof `Array` checks, now `Array.isArray()`
  1770. * Fixed express(1) expansion of public dirs. Closes #348
  1771. * Fixed middleware precedence. Closes #345
  1772. * Fixed view watcher, now async [thanks aheckmann]
  1773. 1.0.0beta / 2010-07-15
  1774. ==================
  1775. * Re-write
  1776. - much faster
  1777. - much lighter
  1778. - Check [ExpressJS.com](http://expressjs.com) for migration guide and updated docs
  1779. 0.14.0 / 2010-06-15
  1780. ==================
  1781. * Utilize relative requires
  1782. * Added Static bufferSize option [aheckmann]
  1783. * Fixed caching of view and partial subdirectories [aheckmann]
  1784. * Fixed mime.type() comments now that ".ext" is not supported
  1785. * Updated haml submodule
  1786. * Updated class submodule
  1787. * Removed bin/express
  1788. 0.13.0 / 2010-06-01
  1789. ==================
  1790. * Added node v0.1.97 compatibility
  1791. * Added support for deleting cookies via Request#cookie('key', null)
  1792. * Updated haml submodule
  1793. * Fixed not-found page, now using using charset utf-8
  1794. * Fixed show-exceptions page, now using using charset utf-8
  1795. * Fixed view support due to fs.readFile Buffers
  1796. * Changed; mime.type() no longer accepts ".type" due to node extname() changes
  1797. 0.12.0 / 2010-05-22
  1798. ==================
  1799. * Added node v0.1.96 compatibility
  1800. * Added view `helpers` export which act as additional local variables
  1801. * Updated haml submodule
  1802. * Changed ETag; removed inode, modified time only
  1803. * Fixed LF to CRLF for setting multiple cookies
  1804. * Fixed cookie complation; values are now urlencoded
  1805. * Fixed cookies parsing; accepts quoted values and url escaped cookies
  1806. 0.11.0 / 2010-05-06
  1807. ==================
  1808. * Added support for layouts using different engines
  1809. - this.render('page.html.haml', { layout: 'super-cool-layout.html.ejs' })
  1810. - this.render('page.html.haml', { layout: 'foo' }) // assumes 'foo.html.haml'
  1811. - this.render('page.html.haml', { layout: false }) // no layout
  1812. * Updated ext submodule
  1813. * Updated haml submodule
  1814. * Fixed EJS partial support by passing along the context. Issue #307
  1815. 0.10.1 / 2010-05-03
  1816. ==================
  1817. * Fixed binary uploads.
  1818. 0.10.0 / 2010-04-30
  1819. ==================
  1820. * Added charset support via Request#charset (automatically assigned to 'UTF-8' when respond()'s
  1821. encoding is set to 'utf8' or 'utf-8'.
  1822. * Added "encoding" option to Request#render(). Closes #299
  1823. * Added "dump exceptions" setting, which is enabled by default.
  1824. * Added simple ejs template engine support
  1825. * Added error response support for text/plain, application/json. Closes #297
  1826. * Added callback function param to Request#error()
  1827. * Added Request#sendHead()
  1828. * Added Request#stream()
  1829. * Added support for Request#respond(304, null) for empty response bodies
  1830. * Added ETag support to Request#sendfile()
  1831. * Added options to Request#sendfile(), passed to fs.createReadStream()
  1832. * Added filename arg to Request#download()
  1833. * Performance enhanced due to pre-reversing plugins so that plugins.reverse() is not called on each request
  1834. * Performance enhanced by preventing several calls to toLowerCase() in Router#match()
  1835. * Changed; Request#sendfile() now streams
  1836. * Changed; Renamed Request#halt() to Request#respond(). Closes #289
  1837. * Changed; Using sys.inspect() instead of JSON.encode() for error output
  1838. * Changed; run() returns the http.Server instance. Closes #298
  1839. * Changed; Defaulting Server#host to null (INADDR_ANY)
  1840. * Changed; Logger "common" format scale of 0.4f
  1841. * Removed Logger "request" format
  1842. * Fixed; Catching ENOENT in view caching, preventing error when "views/partials" is not found
  1843. * Fixed several issues with http client
  1844. * Fixed Logger Content-Length output
  1845. * Fixed bug preventing Opera from retaining the generated session id. Closes #292
  1846. 0.9.0 / 2010-04-14
  1847. ==================
  1848. * Added DSL level error() route support
  1849. * Added DSL level notFound() route support
  1850. * Added Request#error()
  1851. * Added Request#notFound()
  1852. * Added Request#render() callback function. Closes #258
  1853. * Added "max upload size" setting
  1854. * Added "magic" variables to collection partials (\_\_index\_\_, \_\_length\_\_, \_\_isFirst\_\_, \_\_isLast\_\_). Closes #254
  1855. * Added [haml.js](http://github.com/visionmedia/haml.js) submodule; removed haml-js
  1856. * Added callback function support to Request#halt() as 3rd/4th arg
  1857. * Added preprocessing of route param wildcards using param(). Closes #251
  1858. * Added view partial support (with collections etc)
  1859. * Fixed bug preventing falsey params (such as ?page=0). Closes #286
  1860. * Fixed setting of multiple cookies. Closes #199
  1861. * Changed; view naming convention is now NAME.TYPE.ENGINE (for example page.html.haml)
  1862. * Changed; session cookie is now httpOnly
  1863. * Changed; Request is no longer global
  1864. * Changed; Event is no longer global
  1865. * Changed; "sys" module is no longer global
  1866. * Changed; moved Request#download to Static plugin where it belongs
  1867. * Changed; Request instance created before body parsing. Closes #262
  1868. * Changed; Pre-caching views in memory when "cache view contents" is enabled. Closes #253
  1869. * Changed; Pre-caching view partials in memory when "cache view partials" is enabled
  1870. * Updated support to node --version 0.1.90
  1871. * Updated dependencies
  1872. * Removed set("session cookie") in favour of use(Session, { cookie: { ... }})
  1873. * Removed utils.mixin(); use Object#mergeDeep()
  1874. 0.8.0 / 2010-03-19
  1875. ==================
  1876. * Added coffeescript example app. Closes #242
  1877. * Changed; cache api now async friendly. Closes #240
  1878. * Removed deprecated 'express/static' support. Use 'express/plugins/static'
  1879. 0.7.6 / 2010-03-19
  1880. ==================
  1881. * Added Request#isXHR. Closes #229
  1882. * Added `make install` (for the executable)
  1883. * Added `express` executable for setting up simple app templates
  1884. * Added "GET /public/*" to Static plugin, defaulting to <root>/public
  1885. * Added Static plugin
  1886. * Fixed; Request#render() only calls cache.get() once
  1887. * Fixed; Namespacing View caches with "view:"
  1888. * Fixed; Namespacing Static caches with "static:"
  1889. * Fixed; Both example apps now use the Static plugin
  1890. * Fixed set("views"). Closes #239
  1891. * Fixed missing space for combined log format
  1892. * Deprecated Request#sendfile() and 'express/static'
  1893. * Removed Server#running
  1894. 0.7.5 / 2010-03-16
  1895. ==================
  1896. * Added Request#flash() support without args, now returns all flashes
  1897. * Updated ext submodule
  1898. 0.7.4 / 2010-03-16
  1899. ==================
  1900. * Fixed session reaper
  1901. * Changed; class.js replacing js-oo Class implementation (quite a bit faster, no browser cruft)
  1902. 0.7.3 / 2010-03-16
  1903. ==================
  1904. * Added package.json
  1905. * Fixed requiring of haml / sass due to kiwi removal
  1906. 0.7.2 / 2010-03-16
  1907. ==================
  1908. * Fixed GIT submodules (HAH!)
  1909. 0.7.1 / 2010-03-16
  1910. ==================
  1911. * Changed; Express now using submodules again until a PM is adopted
  1912. * Changed; chat example using millisecond conversions from ext
  1913. 0.7.0 / 2010-03-15
  1914. ==================
  1915. * Added Request#pass() support (finds the next matching route, or the given path)
  1916. * Added Logger plugin (default "common" format replaces CommonLogger)
  1917. * Removed Profiler plugin
  1918. * Removed CommonLogger plugin
  1919. 0.6.0 / 2010-03-11
  1920. ==================
  1921. * Added seed.yml for kiwi package management support
  1922. * Added HTTP client query string support when method is GET. Closes #205
  1923. * Added support for arbitrary view engines.
  1924. For example "foo.engine.html" will now require('engine'),
  1925. the exports from this module are cached after the first require().
  1926. * Added async plugin support
  1927. * Removed usage of RESTful route funcs as http client
  1928. get() etc, use http.get() and friends
  1929. * Removed custom exceptions
  1930. 0.5.0 / 2010-03-10
  1931. ==================
  1932. * Added ext dependency (library of js extensions)
  1933. * Removed extname() / basename() utils. Use path module
  1934. * Removed toArray() util. Use arguments.values
  1935. * Removed escapeRegexp() util. Use RegExp.escape()
  1936. * Removed process.mixin() dependency. Use utils.mixin()
  1937. * Removed Collection
  1938. * Removed ElementCollection
  1939. * Shameless self promotion of ebook "Advanced JavaScript" (http://dev-mag.com) ;)
  1940. 0.4.0 / 2010-02-11
  1941. ==================
  1942. * Added flash() example to sample upload app
  1943. * Added high level restful http client module (express/http)
  1944. * Changed; RESTful route functions double as HTTP clients. Closes #69
  1945. * Changed; throwing error when routes are added at runtime
  1946. * Changed; defaulting render() context to the current Request. Closes #197
  1947. * Updated haml submodule
  1948. 0.3.0 / 2010-02-11
  1949. ==================
  1950. * Updated haml / sass submodules. Closes #200
  1951. * Added flash message support. Closes #64
  1952. * Added accepts() now allows multiple args. fixes #117
  1953. * Added support for plugins to halt. Closes #189
  1954. * Added alternate layout support. Closes #119
  1955. * Removed Route#run(). Closes #188
  1956. * Fixed broken specs due to use(Cookie) missing
  1957. 0.2.1 / 2010-02-05
  1958. ==================
  1959. * Added "plot" format option for Profiler (for gnuplot processing)
  1960. * Added request number to Profiler plugin
  1961. * Fixed binary encoding for multi-part file uploads, was previously defaulting to UTF8
  1962. * Fixed issue with routes not firing when not files are present. Closes #184
  1963. * Fixed process.Promise -> events.Promise
  1964. 0.2.0 / 2010-02-03
  1965. ==================
  1966. * Added parseParam() support for name[] etc. (allows for file inputs with "multiple" attr) Closes #180
  1967. * Added Both Cache and Session option "reapInterval" may be "reapEvery". Closes #174
  1968. * Added expiration support to cache api with reaper. Closes #133
  1969. * Added cache Store.Memory#reap()
  1970. * Added Cache; cache api now uses first class Cache instances
  1971. * Added abstract session Store. Closes #172
  1972. * Changed; cache Memory.Store#get() utilizing Collection
  1973. * Renamed MemoryStore -> Store.Memory
  1974. * Fixed use() of the same plugin several time will always use latest options. Closes #176
  1975. 0.1.0 / 2010-02-03
  1976. ==================
  1977. * Changed; Hooks (before / after) pass request as arg as well as evaluated in their context
  1978. * Updated node support to 0.1.27 Closes #169
  1979. * Updated dirname(__filename) -> __dirname
  1980. * Updated libxmljs support to v0.2.0
  1981. * Added session support with memory store / reaping
  1982. * Added quick uid() helper
  1983. * Added multi-part upload support
  1984. * Added Sass.js support / submodule
  1985. * Added production env caching view contents and static files
  1986. * Added static file caching. Closes #136
  1987. * Added cache plugin with memory stores
  1988. * Added support to StaticFile so that it works with non-textual files.
  1989. * Removed dirname() helper
  1990. * Removed several globals (now their modules must be required)
  1991. 0.0.2 / 2010-01-10
  1992. ==================
  1993. * Added view benchmarks; currently haml vs ejs
  1994. * Added Request#attachment() specs. Closes #116
  1995. * Added use of node's parseQuery() util. Closes #123
  1996. * Added `make init` for submodules
  1997. * Updated Haml
  1998. * Updated sample chat app to show messages on load
  1999. * Updated libxmljs parseString -> parseHtmlString
  2000. * Fixed `make init` to work with older versions of git
  2001. * Fixed specs can now run independent specs for those who cant build deps. Closes #127
  2002. * Fixed issues introduced by the node url module changes. Closes 126.
  2003. * Fixed two assertions failing due to Collection#keys() returning strings
  2004. * Fixed faulty Collection#toArray() spec due to keys() returning strings
  2005. * Fixed `make test` now builds libxmljs.node before testing
  2006. 0.0.1 / 2010-01-03
  2007. ==================
  2008. * Initial release