source: node_modules/express/History.md

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 110.5 KB
Line 
14.18.2 / 2022-10-08
2===================
3
4 * Fix regression routing a large stack in a single route
5 * deps: body-parser@1.20.1
6 - deps: qs@6.11.0
7 - perf: remove unnecessary object clone
8 * deps: qs@6.11.0
9
104.18.1 / 2022-04-29
11===================
12
13 * Fix hanging on large stack of sync routes
14
154.18.0 / 2022-04-25
16===================
17
18 * Add "root" option to `res.download`
19 * Allow `options` without `filename` in `res.download`
20 * Deprecate string and non-integer arguments to `res.status`
21 * Fix behavior of `null`/`undefined` as `maxAge` in `res.cookie`
22 * Fix handling very large stacks of sync middleware
23 * Ignore `Object.prototype` values in settings through `app.set`/`app.get`
24 * Invoke `default` with same arguments as types in `res.format`
25 * Support proper 205 responses using `res.send`
26 * Use `http-errors` for `res.format` error
27 * deps: body-parser@1.20.0
28 - Fix error message for json parse whitespace in `strict`
29 - Fix internal error when inflated body exceeds limit
30 - Prevent loss of async hooks context
31 - Prevent hanging when request already read
32 - deps: depd@2.0.0
33 - deps: http-errors@2.0.0
34 - deps: on-finished@2.4.1
35 - deps: qs@6.10.3
36 - deps: raw-body@2.5.1
37 * deps: cookie@0.5.0
38 - Add `priority` option
39 - Fix `expires` option to reject invalid dates
40 * deps: depd@2.0.0
41 - Replace internal `eval` usage with `Function` constructor
42 - Use instance methods on `process` to check for listeners
43 * deps: finalhandler@1.2.0
44 - Remove set content headers that break response
45 - deps: on-finished@2.4.1
46 - deps: statuses@2.0.1
47 * deps: on-finished@2.4.1
48 - Prevent loss of async hooks context
49 * deps: qs@6.10.3
50 * deps: send@0.18.0
51 - Fix emitted 416 error missing headers property
52 - Limit the headers removed for 304 response
53 - deps: depd@2.0.0
54 - deps: destroy@1.2.0
55 - deps: http-errors@2.0.0
56 - deps: on-finished@2.4.1
57 - deps: statuses@2.0.1
58 * deps: serve-static@1.15.0
59 - deps: send@0.18.0
60 * deps: statuses@2.0.1
61 - Remove code 306
62 - Rename `425 Unordered Collection` to standard `425 Too Early`
63
644.17.3 / 2022-02-16
65===================
66
67 * deps: accepts@~1.3.8
68 - deps: mime-types@~2.1.34
69 - deps: negotiator@0.6.3
70 * deps: body-parser@1.19.2
71 - deps: bytes@3.1.2
72 - deps: qs@6.9.7
73 - deps: raw-body@2.4.3
74 * deps: cookie@0.4.2
75 * deps: qs@6.9.7
76 * Fix handling of `__proto__` keys
77 * pref: remove unnecessary regexp for trust proxy
78
794.17.2 / 2021-12-16
80===================
81
82 * Fix handling of `undefined` in `res.jsonp`
83 * Fix handling of `undefined` when `"json escape"` is enabled
84 * Fix incorrect middleware execution with unanchored `RegExp`s
85 * Fix `res.jsonp(obj, status)` deprecation message
86 * Fix typo in `res.is` JSDoc
87 * deps: body-parser@1.19.1
88 - deps: bytes@3.1.1
89 - deps: http-errors@1.8.1
90 - deps: qs@6.9.6
91 - deps: raw-body@2.4.2
92 - deps: safe-buffer@5.2.1
93 - deps: type-is@~1.6.18
94 * deps: content-disposition@0.5.4
95 - deps: safe-buffer@5.2.1
96 * deps: cookie@0.4.1
97 - Fix `maxAge` option to reject invalid values
98 * deps: proxy-addr@~2.0.7
99 - Use `req.socket` over deprecated `req.connection`
100 - deps: forwarded@0.2.0
101 - deps: ipaddr.js@1.9.1
102 * deps: qs@6.9.6
103 * deps: safe-buffer@5.2.1
104 * deps: send@0.17.2
105 - deps: http-errors@1.8.1
106 - deps: ms@2.1.3
107 - pref: ignore empty http tokens
108 * deps: serve-static@1.14.2
109 - deps: send@0.17.2
110 * deps: setprototypeof@1.2.0
111
1124.17.1 / 2019-05-25
113===================
114
115 * Revert "Improve error message for `null`/`undefined` to `res.status`"
116
1174.17.0 / 2019-05-16
118===================
119
120 * Add `express.raw` to parse bodies into `Buffer`
121 * Add `express.text` to parse bodies into string
122 * Improve error message for non-strings to `res.sendFile`
123 * Improve error message for `null`/`undefined` to `res.status`
124 * Support multiple hosts in `X-Forwarded-Host`
125 * deps: accepts@~1.3.7
126 * deps: body-parser@1.19.0
127 - Add encoding MIK
128 - Add petabyte (`pb`) support
129 - Fix parsing array brackets after index
130 - deps: bytes@3.1.0
131 - deps: http-errors@1.7.2
132 - deps: iconv-lite@0.4.24
133 - deps: qs@6.7.0
134 - deps: raw-body@2.4.0
135 - deps: type-is@~1.6.17
136 * deps: content-disposition@0.5.3
137 * deps: cookie@0.4.0
138 - Add `SameSite=None` support
139 * deps: finalhandler@~1.1.2
140 - Set stricter `Content-Security-Policy` header
141 - deps: parseurl@~1.3.3
142 - deps: statuses@~1.5.0
143 * deps: parseurl@~1.3.3
144 * deps: proxy-addr@~2.0.5
145 - deps: ipaddr.js@1.9.0
146 * deps: qs@6.7.0
147 - Fix parsing array brackets after index
148 * deps: range-parser@~1.2.1
149 * deps: send@0.17.1
150 - Set stricter CSP header in redirect & error responses
151 - deps: http-errors@~1.7.2
152 - deps: mime@1.6.0
153 - deps: ms@2.1.1
154 - deps: range-parser@~1.2.1
155 - deps: statuses@~1.5.0
156 - perf: remove redundant `path.normalize` call
157 * deps: serve-static@1.14.1
158 - Set stricter CSP header in redirect response
159 - deps: parseurl@~1.3.3
160 - deps: send@0.17.1
161 * deps: setprototypeof@1.1.1
162 * deps: statuses@~1.5.0
163 - Add `103 Early Hints`
164 * deps: type-is@~1.6.18
165 - deps: mime-types@~2.1.24
166 - perf: prevent internal `throw` on invalid type
167
1684.16.4 / 2018-10-10
169===================
170
171 * Fix issue where `"Request aborted"` may be logged in `res.sendfile`
172 * Fix JSDoc for `Router` constructor
173 * deps: body-parser@1.18.3
174 - Fix deprecation warnings on Node.js 10+
175 - Fix stack trace for strict json parse error
176 - deps: depd@~1.1.2
177 - deps: http-errors@~1.6.3
178 - deps: iconv-lite@0.4.23
179 - deps: qs@6.5.2
180 - deps: raw-body@2.3.3
181 - deps: type-is@~1.6.16
182 * deps: proxy-addr@~2.0.4
183 - deps: ipaddr.js@1.8.0
184 * deps: qs@6.5.2
185 * deps: safe-buffer@5.1.2
186
1874.16.3 / 2018-03-12
188===================
189
190 * deps: accepts@~1.3.5
191 - deps: mime-types@~2.1.18
192 * deps: depd@~1.1.2
193 - perf: remove argument reassignment
194 * deps: encodeurl@~1.0.2
195 - Fix encoding `%` as last character
196 * deps: finalhandler@1.1.1
197 - Fix 404 output for bad / missing pathnames
198 - deps: encodeurl@~1.0.2
199 - deps: statuses@~1.4.0
200 * deps: proxy-addr@~2.0.3
201 - deps: ipaddr.js@1.6.0
202 * deps: send@0.16.2
203 - Fix incorrect end tag in default error & redirects
204 - deps: depd@~1.1.2
205 - deps: encodeurl@~1.0.2
206 - deps: statuses@~1.4.0
207 * deps: serve-static@1.13.2
208 - Fix incorrect end tag in redirects
209 - deps: encodeurl@~1.0.2
210 - deps: send@0.16.2
211 * deps: statuses@~1.4.0
212 * deps: type-is@~1.6.16
213 - deps: mime-types@~2.1.18
214
2154.16.2 / 2017-10-09
216===================
217
218 * Fix `TypeError` in `res.send` when given `Buffer` and `ETag` header set
219 * perf: skip parsing of entire `X-Forwarded-Proto` header
220
2214.16.1 / 2017-09-29
222===================
223
224 * deps: send@0.16.1
225 * deps: serve-static@1.13.1
226 - Fix regression when `root` is incorrectly set to a file
227 - deps: send@0.16.1
228
2294.16.0 / 2017-09-28
230===================
231
232 * Add `"json escape"` setting for `res.json` and `res.jsonp`
233 * Add `express.json` and `express.urlencoded` to parse bodies
234 * Add `options` argument to `res.download`
235 * Improve error message when autoloading invalid view engine
236 * Improve error messages when non-function provided as middleware
237 * Skip `Buffer` encoding when not generating ETag for small response
238 * Use `safe-buffer` for improved Buffer API
239 * deps: accepts@~1.3.4
240 - deps: mime-types@~2.1.16
241 * deps: content-type@~1.0.4
242 - perf: remove argument reassignment
243 - perf: skip parameter parsing when no parameters
244 * deps: etag@~1.8.1
245 - perf: replace regular expression with substring
246 * deps: finalhandler@1.1.0
247 - Use `res.headersSent` when available
248 * deps: parseurl@~1.3.2
249 - perf: reduce overhead for full URLs
250 - perf: unroll the "fast-path" `RegExp`
251 * deps: proxy-addr@~2.0.2
252 - Fix trimming leading / trailing OWS in `X-Forwarded-For`
253 - deps: forwarded@~0.1.2
254 - deps: ipaddr.js@1.5.2
255 - perf: reduce overhead when no `X-Forwarded-For` header
256 * deps: qs@6.5.1
257 - Fix parsing & compacting very deep objects
258 * deps: send@0.16.0
259 - Add 70 new types for file extensions
260 - Add `immutable` option
261 - Fix missing `</html>` in default error & redirects
262 - Set charset as "UTF-8" for .js and .json
263 - Use instance methods on steam to check for listeners
264 - deps: mime@1.4.1
265 - perf: improve path validation speed
266 * deps: serve-static@1.13.0
267 - Add 70 new types for file extensions
268 - Add `immutable` option
269 - Set charset as "UTF-8" for .js and .json
270 - deps: send@0.16.0
271 * deps: setprototypeof@1.1.0
272 * deps: utils-merge@1.0.1
273 * deps: vary@~1.1.2
274 - perf: improve header token parsing speed
275 * perf: re-use options object when generating ETags
276 * perf: remove dead `.charset` set in `res.jsonp`
277
2784.15.5 / 2017-09-24
279===================
280
281 * deps: debug@2.6.9
282 * deps: finalhandler@~1.0.6
283 - deps: debug@2.6.9
284 - deps: parseurl@~1.3.2
285 * deps: fresh@0.5.2
286 - Fix handling of modified headers with invalid dates
287 - perf: improve ETag match loop
288 - perf: improve `If-None-Match` token parsing
289 * deps: send@0.15.6
290 - Fix handling of modified headers with invalid dates
291 - deps: debug@2.6.9
292 - deps: etag@~1.8.1
293 - deps: fresh@0.5.2
294 - perf: improve `If-Match` token parsing
295 * deps: serve-static@1.12.6
296 - deps: parseurl@~1.3.2
297 - deps: send@0.15.6
298 - perf: improve slash collapsing
299
3004.15.4 / 2017-08-06
301===================
302
303 * deps: debug@2.6.8
304 * deps: depd@~1.1.1
305 - Remove unnecessary `Buffer` loading
306 * deps: finalhandler@~1.0.4
307 - deps: debug@2.6.8
308 * deps: proxy-addr@~1.1.5
309 - Fix array argument being altered
310 - deps: ipaddr.js@1.4.0
311 * deps: qs@6.5.0
312 * deps: send@0.15.4
313 - deps: debug@2.6.8
314 - deps: depd@~1.1.1
315 - deps: http-errors@~1.6.2
316 * deps: serve-static@1.12.4
317 - deps: send@0.15.4
318
3194.15.3 / 2017-05-16
320===================
321
322 * Fix error when `res.set` cannot add charset to `Content-Type`
323 * deps: debug@2.6.7
324 - Fix `DEBUG_MAX_ARRAY_LENGTH`
325 - deps: ms@2.0.0
326 * deps: finalhandler@~1.0.3
327 - Fix missing `</html>` in HTML document
328 - deps: debug@2.6.7
329 * deps: proxy-addr@~1.1.4
330 - deps: ipaddr.js@1.3.0
331 * deps: send@0.15.3
332 - deps: debug@2.6.7
333 - deps: ms@2.0.0
334 * deps: serve-static@1.12.3
335 - deps: send@0.15.3
336 * deps: type-is@~1.6.15
337 - deps: mime-types@~2.1.15
338 * deps: vary@~1.1.1
339 - perf: hoist regular expression
340
3414.15.2 / 2017-03-06
342===================
343
344 * deps: qs@6.4.0
345 - Fix regression parsing keys starting with `[`
346
3474.15.1 / 2017-03-05
348===================
349
350 * deps: send@0.15.1
351 - Fix issue when `Date.parse` does not return `NaN` on invalid date
352 - Fix strict violation in broken environments
353 * deps: serve-static@1.12.1
354 - Fix issue when `Date.parse` does not return `NaN` on invalid date
355 - deps: send@0.15.1
356
3574.15.0 / 2017-03-01
358===================
359
360 * Add debug message when loading view engine
361 * Add `next("router")` to exit from router
362 * Fix case where `router.use` skipped requests routes did not
363 * Remove usage of `res._headers` private field
364 - Improves compatibility with Node.js 8 nightly
365 * Skip routing when `req.url` is not set
366 * Use `%o` in path debug to tell types apart
367 * Use `Object.create` to setup request & response prototypes
368 * Use `setprototypeof` module to replace `__proto__` setting
369 * Use `statuses` instead of `http` module for status messages
370 * deps: debug@2.6.1
371 - Allow colors in workers
372 - Deprecated `DEBUG_FD` environment variable set to `3` or higher
373 - Fix error when running under React Native
374 - Use same color for same namespace
375 - deps: ms@0.7.2
376 * deps: etag@~1.8.0
377 - Use SHA1 instead of MD5 for ETag hashing
378 - Works with FIPS 140-2 OpenSSL configuration
379 * deps: finalhandler@~1.0.0
380 - Fix exception when `err` cannot be converted to a string
381 - Fully URL-encode the pathname in the 404
382 - Only include the pathname in the 404 message
383 - Send complete HTML document
384 - Set `Content-Security-Policy: default-src 'self'` header
385 - deps: debug@2.6.1
386 * deps: fresh@0.5.0
387 - Fix false detection of `no-cache` request directive
388 - Fix incorrect result when `If-None-Match` has both `*` and ETags
389 - Fix weak `ETag` matching to match spec
390 - perf: delay reading header values until needed
391 - perf: enable strict mode
392 - perf: hoist regular expressions
393 - perf: remove duplicate conditional
394 - perf: remove unnecessary boolean coercions
395 - perf: skip checking modified time if ETag check failed
396 - perf: skip parsing `If-None-Match` when no `ETag` header
397 - perf: use `Date.parse` instead of `new Date`
398 * deps: qs@6.3.1
399 - Fix array parsing from skipping empty values
400 - Fix compacting nested arrays
401 * deps: send@0.15.0
402 - Fix false detection of `no-cache` request directive
403 - Fix incorrect result when `If-None-Match` has both `*` and ETags
404 - Fix weak `ETag` matching to match spec
405 - Remove usage of `res._headers` private field
406 - Support `If-Match` and `If-Unmodified-Since` headers
407 - Use `res.getHeaderNames()` when available
408 - Use `res.headersSent` when available
409 - deps: debug@2.6.1
410 - deps: etag@~1.8.0
411 - deps: fresh@0.5.0
412 - deps: http-errors@~1.6.1
413 * deps: serve-static@1.12.0
414 - Fix false detection of `no-cache` request directive
415 - Fix incorrect result when `If-None-Match` has both `*` and ETags
416 - Fix weak `ETag` matching to match spec
417 - Remove usage of `res._headers` private field
418 - Send complete HTML document in redirect response
419 - Set default CSP header in redirect response
420 - Support `If-Match` and `If-Unmodified-Since` headers
421 - Use `res.getHeaderNames()` when available
422 - Use `res.headersSent` when available
423 - deps: send@0.15.0
424 * perf: add fast match path for `*` route
425 * perf: improve `req.ips` performance
426
4274.14.1 / 2017-01-28
428===================
429
430 * deps: content-disposition@0.5.2
431 * deps: finalhandler@0.5.1
432 - Fix exception when `err.headers` is not an object
433 - deps: statuses@~1.3.1
434 - perf: hoist regular expressions
435 - perf: remove duplicate validation path
436 * deps: proxy-addr@~1.1.3
437 - deps: ipaddr.js@1.2.0
438 * deps: send@0.14.2
439 - deps: http-errors@~1.5.1
440 - deps: ms@0.7.2
441 - deps: statuses@~1.3.1
442 * deps: serve-static@~1.11.2
443 - deps: send@0.14.2
444 * deps: type-is@~1.6.14
445 - deps: mime-types@~2.1.13
446
4474.14.0 / 2016-06-16
448===================
449
450 * Add `acceptRanges` option to `res.sendFile`/`res.sendfile`
451 * Add `cacheControl` option to `res.sendFile`/`res.sendfile`
452 * Add `options` argument to `req.range`
453 - Includes the `combine` option
454 * Encode URL in `res.location`/`res.redirect` if not already encoded
455 * Fix some redirect handling in `res.sendFile`/`res.sendfile`
456 * Fix Windows absolute path check using forward slashes
457 * Improve error with invalid arguments to `req.get()`
458 * Improve performance for `res.json`/`res.jsonp` in most cases
459 * Improve `Range` header handling in `res.sendFile`/`res.sendfile`
460 * deps: accepts@~1.3.3
461 - Fix including type extensions in parameters in `Accept` parsing
462 - Fix parsing `Accept` parameters with quoted equals
463 - Fix parsing `Accept` parameters with quoted semicolons
464 - Many performance improvements
465 - deps: mime-types@~2.1.11
466 - deps: negotiator@0.6.1
467 * deps: content-type@~1.0.2
468 - perf: enable strict mode
469 * deps: cookie@0.3.1
470 - Add `sameSite` option
471 - Fix cookie `Max-Age` to never be a floating point number
472 - Improve error message when `encode` is not a function
473 - Improve error message when `expires` is not a `Date`
474 - Throw better error for invalid argument to parse
475 - Throw on invalid values provided to `serialize`
476 - perf: enable strict mode
477 - perf: hoist regular expression
478 - perf: use for loop in parse
479 - perf: use string concatenation for serialization
480 * deps: finalhandler@0.5.0
481 - Change invalid or non-numeric status code to 500
482 - Overwrite status message to match set status code
483 - Prefer `err.statusCode` if `err.status` is invalid
484 - Set response headers from `err.headers` object
485 - Use `statuses` instead of `http` module for status messages
486 * deps: proxy-addr@~1.1.2
487 - Fix accepting various invalid netmasks
488 - Fix IPv6-mapped IPv4 validation edge cases
489 - IPv4 netmasks must be contiguous
490 - IPv6 addresses cannot be used as a netmask
491 - deps: ipaddr.js@1.1.1
492 * deps: qs@6.2.0
493 - Add `decoder` option in `parse` function
494 * deps: range-parser@~1.2.0
495 - Add `combine` option to combine overlapping ranges
496 - Fix incorrectly returning -1 when there is at least one valid range
497 - perf: remove internal function
498 * deps: send@0.14.1
499 - Add `acceptRanges` option
500 - Add `cacheControl` option
501 - Attempt to combine multiple ranges into single range
502 - Correctly inherit from `Stream` class
503 - Fix `Content-Range` header in 416 responses when using `start`/`end` options
504 - Fix `Content-Range` header missing from default 416 responses
505 - Fix redirect error when `path` contains raw non-URL characters
506 - Fix redirect when `path` starts with multiple forward slashes
507 - Ignore non-byte `Range` headers
508 - deps: http-errors@~1.5.0
509 - deps: range-parser@~1.2.0
510 - deps: statuses@~1.3.0
511 - perf: remove argument reassignment
512 * deps: serve-static@~1.11.1
513 - Add `acceptRanges` option
514 - Add `cacheControl` option
515 - Attempt to combine multiple ranges into single range
516 - Fix redirect error when `req.url` contains raw non-URL characters
517 - Ignore non-byte `Range` headers
518 - Use status code 301 for redirects
519 - deps: send@0.14.1
520 * deps: type-is@~1.6.13
521 - Fix type error when given invalid type to match against
522 - deps: mime-types@~2.1.11
523 * deps: vary@~1.1.0
524 - Only accept valid field names in the `field` argument
525 * perf: use strict equality when possible
526
5274.13.4 / 2016-01-21
528===================
529
530 * deps: content-disposition@0.5.1
531 - perf: enable strict mode
532 * deps: cookie@0.1.5
533 - Throw on invalid values provided to `serialize`
534 * deps: depd@~1.1.0
535 - Support web browser loading
536 - perf: enable strict mode
537 * deps: escape-html@~1.0.3
538 - perf: enable strict mode
539 - perf: optimize string replacement
540 - perf: use faster string coercion
541 * deps: finalhandler@0.4.1
542 - deps: escape-html@~1.0.3
543 * deps: merge-descriptors@1.0.1
544 - perf: enable strict mode
545 * deps: methods@~1.1.2
546 - perf: enable strict mode
547 * deps: parseurl@~1.3.1
548 - perf: enable strict mode
549 * deps: proxy-addr@~1.0.10
550 - deps: ipaddr.js@1.0.5
551 - perf: enable strict mode
552 * deps: range-parser@~1.0.3
553 - perf: enable strict mode
554 * deps: send@0.13.1
555 - deps: depd@~1.1.0
556 - deps: destroy@~1.0.4
557 - deps: escape-html@~1.0.3
558 - deps: range-parser@~1.0.3
559 * deps: serve-static@~1.10.2
560 - deps: escape-html@~1.0.3
561 - deps: parseurl@~1.3.0
562 - deps: send@0.13.1
563
5644.13.3 / 2015-08-02
565===================
566
567 * Fix infinite loop condition using `mergeParams: true`
568 * Fix inner numeric indices incorrectly altering parent `req.params`
569
5704.13.2 / 2015-07-31
571===================
572
573 * deps: accepts@~1.2.12
574 - deps: mime-types@~2.1.4
575 * deps: array-flatten@1.1.1
576 - perf: enable strict mode
577 * deps: path-to-regexp@0.1.7
578 - Fix regression with escaped round brackets and matching groups
579 * deps: type-is@~1.6.6
580 - deps: mime-types@~2.1.4
581
5824.13.1 / 2015-07-05
583===================
584
585 * deps: accepts@~1.2.10
586 - deps: mime-types@~2.1.2
587 * deps: qs@4.0.0
588 - Fix dropping parameters like `hasOwnProperty`
589 - Fix various parsing edge cases
590 * deps: type-is@~1.6.4
591 - deps: mime-types@~2.1.2
592 - perf: enable strict mode
593 - perf: remove argument reassignment
594
5954.13.0 / 2015-06-20
596===================
597
598 * Add settings to debug output
599 * Fix `res.format` error when only `default` provided
600 * Fix issue where `next('route')` in `app.param` would incorrectly skip values
601 * Fix hiding platform issues with `decodeURIComponent`
602 - Only `URIError`s are a 400
603 * Fix using `*` before params in routes
604 * Fix using capture groups before params in routes
605 * Simplify `res.cookie` to call `res.append`
606 * Use `array-flatten` module for flattening arrays
607 * deps: accepts@~1.2.9
608 - deps: mime-types@~2.1.1
609 - perf: avoid argument reassignment & argument slice
610 - perf: avoid negotiator recursive construction
611 - perf: enable strict mode
612 - perf: remove unnecessary bitwise operator
613 * deps: cookie@0.1.3
614 - perf: deduce the scope of try-catch deopt
615 - perf: remove argument reassignments
616 * deps: escape-html@1.0.2
617 * deps: etag@~1.7.0
618 - Always include entity length in ETags for hash length extensions
619 - Generate non-Stats ETags using MD5 only (no longer CRC32)
620 - Improve stat performance by removing hashing
621 - Improve support for JXcore
622 - Remove base64 padding in ETags to shorten
623 - Support "fake" stats objects in environments without fs
624 - Use MD5 instead of MD4 in weak ETags over 1KB
625 * deps: finalhandler@0.4.0
626 - Fix a false-positive when unpiping in Node.js 0.8
627 - Support `statusCode` property on `Error` objects
628 - Use `unpipe` module for unpiping requests
629 - deps: escape-html@1.0.2
630 - deps: on-finished@~2.3.0
631 - perf: enable strict mode
632 - perf: remove argument reassignment
633 * deps: fresh@0.3.0
634 - Add weak `ETag` matching support
635 * deps: on-finished@~2.3.0
636 - Add defined behavior for HTTP `CONNECT` requests
637 - Add defined behavior for HTTP `Upgrade` requests
638 - deps: ee-first@1.1.1
639 * deps: path-to-regexp@0.1.6
640 * deps: send@0.13.0
641 - Allow Node.js HTTP server to set `Date` response header
642 - Fix incorrectly removing `Content-Location` on 304 response
643 - Improve the default redirect response headers
644 - Send appropriate headers on default error response
645 - Use `http-errors` for standard emitted errors
646 - Use `statuses` instead of `http` module for status messages
647 - deps: escape-html@1.0.2
648 - deps: etag@~1.7.0
649 - deps: fresh@0.3.0
650 - deps: on-finished@~2.3.0
651 - perf: enable strict mode
652 - perf: remove unnecessary array allocations
653 * deps: serve-static@~1.10.0
654 - Add `fallthrough` option
655 - Fix reading options from options prototype
656 - Improve the default redirect response headers
657 - Malformed URLs now `next()` instead of 400
658 - deps: escape-html@1.0.2
659 - deps: send@0.13.0
660 - perf: enable strict mode
661 - perf: remove argument reassignment
662 * deps: type-is@~1.6.3
663 - deps: mime-types@~2.1.1
664 - perf: reduce try block size
665 - perf: remove bitwise operations
666 * perf: enable strict mode
667 * perf: isolate `app.render` try block
668 * perf: remove argument reassignments in application
669 * perf: remove argument reassignments in request prototype
670 * perf: remove argument reassignments in response prototype
671 * perf: remove argument reassignments in routing
672 * perf: remove argument reassignments in `View`
673 * perf: skip attempting to decode zero length string
674 * perf: use saved reference to `http.STATUS_CODES`
675
6764.12.4 / 2015-05-17
677===================
678
679 * deps: accepts@~1.2.7
680 - deps: mime-types@~2.0.11
681 - deps: negotiator@0.5.3
682 * deps: debug@~2.2.0
683 - deps: ms@0.7.1
684 * deps: depd@~1.0.1
685 * deps: etag@~1.6.0
686 - Improve support for JXcore
687 - Support "fake" stats objects in environments without `fs`
688 * deps: finalhandler@0.3.6
689 - deps: debug@~2.2.0
690 - deps: on-finished@~2.2.1
691 * deps: on-finished@~2.2.1
692 - Fix `isFinished(req)` when data buffered
693 * deps: proxy-addr@~1.0.8
694 - deps: ipaddr.js@1.0.1
695 * deps: qs@2.4.2
696 - Fix allowing parameters like `constructor`
697 * deps: send@0.12.3
698 - deps: debug@~2.2.0
699 - deps: depd@~1.0.1
700 - deps: etag@~1.6.0
701 - deps: ms@0.7.1
702 - deps: on-finished@~2.2.1
703 * deps: serve-static@~1.9.3
704 - deps: send@0.12.3
705 * deps: type-is@~1.6.2
706 - deps: mime-types@~2.0.11
707
7084.12.3 / 2015-03-17
709===================
710
711 * deps: accepts@~1.2.5
712 - deps: mime-types@~2.0.10
713 * deps: debug@~2.1.3
714 - Fix high intensity foreground color for bold
715 - deps: ms@0.7.0
716 * deps: finalhandler@0.3.4
717 - deps: debug@~2.1.3
718 * deps: proxy-addr@~1.0.7
719 - deps: ipaddr.js@0.1.9
720 * deps: qs@2.4.1
721 - Fix error when parameter `hasOwnProperty` is present
722 * deps: send@0.12.2
723 - Throw errors early for invalid `extensions` or `index` options
724 - deps: debug@~2.1.3
725 * deps: serve-static@~1.9.2
726 - deps: send@0.12.2
727 * deps: type-is@~1.6.1
728 - deps: mime-types@~2.0.10
729
7304.12.2 / 2015-03-02
731===================
732
733 * Fix regression where `"Request aborted"` is logged using `res.sendFile`
734
7354.12.1 / 2015-03-01
736===================
737
738 * Fix constructing application with non-configurable prototype properties
739 * Fix `ECONNRESET` errors from `res.sendFile` usage
740 * Fix `req.host` when using "trust proxy" hops count
741 * Fix `req.protocol`/`req.secure` when using "trust proxy" hops count
742 * Fix wrong `code` on aborted connections from `res.sendFile`
743 * deps: merge-descriptors@1.0.0
744
7454.12.0 / 2015-02-23
746===================
747
748 * Fix `"trust proxy"` setting to inherit when app is mounted
749 * Generate `ETag`s for all request responses
750 - No longer restricted to only responses for `GET` and `HEAD` requests
751 * Use `content-type` to parse `Content-Type` headers
752 * deps: accepts@~1.2.4
753 - Fix preference sorting to be stable for long acceptable lists
754 - deps: mime-types@~2.0.9
755 - deps: negotiator@0.5.1
756 * deps: cookie-signature@1.0.6
757 * deps: send@0.12.1
758 - Always read the stat size from the file
759 - Fix mutating passed-in `options`
760 - deps: mime@1.3.4
761 * deps: serve-static@~1.9.1
762 - deps: send@0.12.1
763 * deps: type-is@~1.6.0
764 - fix argument reassignment
765 - fix false-positives in `hasBody` `Transfer-Encoding` check
766 - support wildcard for both type and subtype (`*/*`)
767 - deps: mime-types@~2.0.9
768
7694.11.2 / 2015-02-01
770===================
771
772 * Fix `res.redirect` double-calling `res.end` for `HEAD` requests
773 * deps: accepts@~1.2.3
774 - deps: mime-types@~2.0.8
775 * deps: proxy-addr@~1.0.6
776 - deps: ipaddr.js@0.1.8
777 * deps: type-is@~1.5.6
778 - deps: mime-types@~2.0.8
779
7804.11.1 / 2015-01-20
781===================
782
783 * deps: send@0.11.1
784 - Fix root path disclosure
785 * deps: serve-static@~1.8.1
786 - Fix redirect loop in Node.js 0.11.14
787 - Fix root path disclosure
788 - deps: send@0.11.1
789
7904.11.0 / 2015-01-13
791===================
792
793 * Add `res.append(field, val)` to append headers
794 * Deprecate leading `:` in `name` for `app.param(name, fn)`
795 * Deprecate `req.param()` -- use `req.params`, `req.body`, or `req.query` instead
796 * Deprecate `app.param(fn)`
797 * Fix `OPTIONS` responses to include the `HEAD` method properly
798 * Fix `res.sendFile` not always detecting aborted connection
799 * Match routes iteratively to prevent stack overflows
800 * deps: accepts@~1.2.2
801 - deps: mime-types@~2.0.7
802 - deps: negotiator@0.5.0
803 * deps: send@0.11.0
804 - deps: debug@~2.1.1
805 - deps: etag@~1.5.1
806 - deps: ms@0.7.0
807 - deps: on-finished@~2.2.0
808 * deps: serve-static@~1.8.0
809 - deps: send@0.11.0
810
8114.10.8 / 2015-01-13
812===================
813
814 * Fix crash from error within `OPTIONS` response handler
815 * deps: proxy-addr@~1.0.5
816 - deps: ipaddr.js@0.1.6
817
8184.10.7 / 2015-01-04
819===================
820
821 * Fix `Allow` header for `OPTIONS` to not contain duplicate methods
822 * Fix incorrect "Request aborted" for `res.sendFile` when `HEAD` or 304
823 * deps: debug@~2.1.1
824 * deps: finalhandler@0.3.3
825 - deps: debug@~2.1.1
826 - deps: on-finished@~2.2.0
827 * deps: methods@~1.1.1
828 * deps: on-finished@~2.2.0
829 * deps: serve-static@~1.7.2
830 - Fix potential open redirect when mounted at root
831 * deps: type-is@~1.5.5
832 - deps: mime-types@~2.0.7
833
8344.10.6 / 2014-12-12
835===================
836
837 * Fix exception in `req.fresh`/`req.stale` without response headers
838
8394.10.5 / 2014-12-10
840===================
841
842 * Fix `res.send` double-calling `res.end` for `HEAD` requests
843 * deps: accepts@~1.1.4
844 - deps: mime-types@~2.0.4
845 * deps: type-is@~1.5.4
846 - deps: mime-types@~2.0.4
847
8484.10.4 / 2014-11-24
849===================
850
851 * Fix `res.sendfile` logging standard write errors
852
8534.10.3 / 2014-11-23
854===================
855
856 * Fix `res.sendFile` logging standard write errors
857 * deps: etag@~1.5.1
858 * deps: proxy-addr@~1.0.4
859 - deps: ipaddr.js@0.1.5
860 * deps: qs@2.3.3
861 - Fix `arrayLimit` behavior
862
8634.10.2 / 2014-11-09
864===================
865
866 * Correctly invoke async router callback asynchronously
867 * deps: accepts@~1.1.3
868 - deps: mime-types@~2.0.3
869 * deps: type-is@~1.5.3
870 - deps: mime-types@~2.0.3
871
8724.10.1 / 2014-10-28
873===================
874
875 * Fix handling of URLs containing `://` in the path
876 * deps: qs@2.3.2
877 - Fix parsing of mixed objects and values
878
8794.10.0 / 2014-10-23
880===================
881
882 * Add support for `app.set('views', array)`
883 - Views are looked up in sequence in array of directories
884 * Fix `res.send(status)` to mention `res.sendStatus(status)`
885 * Fix handling of invalid empty URLs
886 * Use `content-disposition` module for `res.attachment`/`res.download`
887 - Sends standards-compliant `Content-Disposition` header
888 - Full Unicode support
889 * Use `path.resolve` in view lookup
890 * deps: debug@~2.1.0
891 - Implement `DEBUG_FD` env variable support
892 * deps: depd@~1.0.0
893 * deps: etag@~1.5.0
894 - Improve string performance
895 - Slightly improve speed for weak ETags over 1KB
896 * deps: finalhandler@0.3.2
897 - Terminate in progress response only on error
898 - Use `on-finished` to determine request status
899 - deps: debug@~2.1.0
900 - deps: on-finished@~2.1.1
901 * deps: on-finished@~2.1.1
902 - Fix handling of pipelined requests
903 * deps: qs@2.3.0
904 - Fix parsing of mixed implicit and explicit arrays
905 * deps: send@0.10.1
906 - deps: debug@~2.1.0
907 - deps: depd@~1.0.0
908 - deps: etag@~1.5.0
909 - deps: on-finished@~2.1.1
910 * deps: serve-static@~1.7.1
911 - deps: send@0.10.1
912
9134.9.8 / 2014-10-17
914==================
915
916 * Fix `res.redirect` body when redirect status specified
917 * deps: accepts@~1.1.2
918 - Fix error when media type has invalid parameter
919 - deps: negotiator@0.4.9
920
9214.9.7 / 2014-10-10
922==================
923
924 * Fix using same param name in array of paths
925
9264.9.6 / 2014-10-08
927==================
928
929 * deps: accepts@~1.1.1
930 - deps: mime-types@~2.0.2
931 - deps: negotiator@0.4.8
932 * deps: serve-static@~1.6.4
933 - Fix redirect loop when index file serving disabled
934 * deps: type-is@~1.5.2
935 - deps: mime-types@~2.0.2
936
9374.9.5 / 2014-09-24
938==================
939
940 * deps: etag@~1.4.0
941 * deps: proxy-addr@~1.0.3
942 - Use `forwarded` npm module
943 * deps: send@0.9.3
944 - deps: etag@~1.4.0
945 * deps: serve-static@~1.6.3
946 - deps: send@0.9.3
947
9484.9.4 / 2014-09-19
949==================
950
951 * deps: qs@2.2.4
952 - Fix issue with object keys starting with numbers truncated
953
9544.9.3 / 2014-09-18
955==================
956
957 * deps: proxy-addr@~1.0.2
958 - Fix a global leak when multiple subnets are trusted
959 - deps: ipaddr.js@0.1.3
960
9614.9.2 / 2014-09-17
962==================
963
964 * Fix regression for empty string `path` in `app.use`
965 * Fix `router.use` to accept array of middleware without path
966 * Improve error message for bad `app.use` arguments
967
9684.9.1 / 2014-09-16
969==================
970
971 * Fix `app.use` to accept array of middleware without path
972 * deps: depd@0.4.5
973 * deps: etag@~1.3.1
974 * deps: send@0.9.2
975 - deps: depd@0.4.5
976 - deps: etag@~1.3.1
977 - deps: range-parser@~1.0.2
978 * deps: serve-static@~1.6.2
979 - deps: send@0.9.2
980
9814.9.0 / 2014-09-08
982==================
983
984 * Add `res.sendStatus`
985 * Invoke callback for sendfile when client aborts
986 - Applies to `res.sendFile`, `res.sendfile`, and `res.download`
987 - `err` will be populated with request aborted error
988 * Support IP address host in `req.subdomains`
989 * Use `etag` to generate `ETag` headers
990 * deps: accepts@~1.1.0
991 - update `mime-types`
992 * deps: cookie-signature@1.0.5
993 * deps: debug@~2.0.0
994 * deps: finalhandler@0.2.0
995 - Set `X-Content-Type-Options: nosniff` header
996 - deps: debug@~2.0.0
997 * deps: fresh@0.2.4
998 * deps: media-typer@0.3.0
999 - Throw error when parameter format invalid on parse
1000 * deps: qs@2.2.3
1001 - Fix issue where first empty value in array is discarded
1002 * deps: range-parser@~1.0.2
1003 * deps: send@0.9.1
1004 - Add `lastModified` option
1005 - Use `etag` to generate `ETag` header
1006 - deps: debug@~2.0.0
1007 - deps: fresh@0.2.4
1008 * deps: serve-static@~1.6.1
1009 - Add `lastModified` option
1010 - deps: send@0.9.1
1011 * deps: type-is@~1.5.1
1012 - fix `hasbody` to be true for `content-length: 0`
1013 - deps: media-typer@0.3.0
1014 - deps: mime-types@~2.0.1
1015 * deps: vary@~1.0.0
1016 - Accept valid `Vary` header string as `field`
1017
10184.8.8 / 2014-09-04
1019==================
1020
1021 * deps: send@0.8.5
1022 - Fix a path traversal issue when using `root`
1023 - Fix malicious path detection for empty string path
1024 * deps: serve-static@~1.5.4
1025 - deps: send@0.8.5
1026
10274.8.7 / 2014-08-29
1028==================
1029
1030 * deps: qs@2.2.2
1031 - Remove unnecessary cloning
1032
10334.8.6 / 2014-08-27
1034==================
1035
1036 * deps: qs@2.2.0
1037 - Array parsing fix
1038 - Performance improvements
1039
10404.8.5 / 2014-08-18
1041==================
1042
1043 * deps: send@0.8.3
1044 - deps: destroy@1.0.3
1045 - deps: on-finished@2.1.0
1046 * deps: serve-static@~1.5.3
1047 - deps: send@0.8.3
1048
10494.8.4 / 2014-08-14
1050==================
1051
1052 * deps: qs@1.2.2
1053 * deps: send@0.8.2
1054 - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream`
1055 * deps: serve-static@~1.5.2
1056 - deps: send@0.8.2
1057
10584.8.3 / 2014-08-10
1059==================
1060
1061 * deps: parseurl@~1.3.0
1062 * deps: qs@1.2.1
1063 * deps: serve-static@~1.5.1
1064 - Fix parsing of weird `req.originalUrl` values
1065 - deps: parseurl@~1.3.0
1066 - deps: utils-merge@1.0.0
1067
10684.8.2 / 2014-08-07
1069==================
1070
1071 * deps: qs@1.2.0
1072 - Fix parsing array of objects
1073
10744.8.1 / 2014-08-06
1075==================
1076
1077 * fix incorrect deprecation warnings on `res.download`
1078 * deps: qs@1.1.0
1079 - Accept urlencoded square brackets
1080 - Accept empty values in implicit array notation
1081
10824.8.0 / 2014-08-05
1083==================
1084
1085 * add `res.sendFile`
1086 - accepts a file system path instead of a URL
1087 - requires an absolute path or `root` option specified
1088 * deprecate `res.sendfile` -- use `res.sendFile` instead
1089 * support mounted app as any argument to `app.use()`
1090 * deps: qs@1.0.2
1091 - Complete rewrite
1092 - Limits array length to 20
1093 - Limits object depth to 5
1094 - Limits parameters to 1,000
1095 * deps: send@0.8.1
1096 - Add `extensions` option
1097 * deps: serve-static@~1.5.0
1098 - Add `extensions` option
1099 - deps: send@0.8.1
1100
11014.7.4 / 2014-08-04
1102==================
1103
1104 * fix `res.sendfile` regression for serving directory index files
1105 * deps: send@0.7.4
1106 - Fix incorrect 403 on Windows and Node.js 0.11
1107 - Fix serving index files without root dir
1108 * deps: serve-static@~1.4.4
1109 - deps: send@0.7.4
1110
11114.7.3 / 2014-08-04
1112==================
1113
1114 * deps: send@0.7.3
1115 - Fix incorrect 403 on Windows and Node.js 0.11
1116 * deps: serve-static@~1.4.3
1117 - Fix incorrect 403 on Windows and Node.js 0.11
1118 - deps: send@0.7.3
1119
11204.7.2 / 2014-07-27
1121==================
1122
1123 * deps: depd@0.4.4
1124 - Work-around v8 generating empty stack traces
1125 * deps: send@0.7.2
1126 - deps: depd@0.4.4
1127 * deps: serve-static@~1.4.2
1128
11294.7.1 / 2014-07-26
1130==================
1131
1132 * deps: depd@0.4.3
1133 - Fix exception when global `Error.stackTraceLimit` is too low
1134 * deps: send@0.7.1
1135 - deps: depd@0.4.3
1136 * deps: serve-static@~1.4.1
1137
11384.7.0 / 2014-07-25
1139==================
1140
1141 * fix `req.protocol` for proxy-direct connections
1142 * configurable query parser with `app.set('query parser', parser)`
1143 - `app.set('query parser', 'extended')` parse with "qs" module
1144 - `app.set('query parser', 'simple')` parse with "querystring" core module
1145 - `app.set('query parser', false)` disable query string parsing
1146 - `app.set('query parser', true)` enable simple parsing
1147 * deprecate `res.json(status, obj)` -- use `res.status(status).json(obj)` instead
1148 * deprecate `res.jsonp(status, obj)` -- use `res.status(status).jsonp(obj)` instead
1149 * deprecate `res.send(status, body)` -- use `res.status(status).send(body)` instead
1150 * deps: debug@1.0.4
1151 * deps: depd@0.4.2
1152 - Add `TRACE_DEPRECATION` environment variable
1153 - Remove non-standard grey color from color output
1154 - Support `--no-deprecation` argument
1155 - Support `--trace-deprecation` argument
1156 * deps: finalhandler@0.1.0
1157 - Respond after request fully read
1158 - deps: debug@1.0.4
1159 * deps: parseurl@~1.2.0
1160 - Cache URLs based on original value
1161 - Remove no-longer-needed URL mis-parse work-around
1162 - Simplify the "fast-path" `RegExp`
1163 * deps: send@0.7.0
1164 - Add `dotfiles` option
1165 - Cap `maxAge` value to 1 year
1166 - deps: debug@1.0.4
1167 - deps: depd@0.4.2
1168 * deps: serve-static@~1.4.0
1169 - deps: parseurl@~1.2.0
1170 - deps: send@0.7.0
1171 * perf: prevent multiple `Buffer` creation in `res.send`
1172
11734.6.1 / 2014-07-12
1174==================
1175
1176 * fix `subapp.mountpath` regression for `app.use(subapp)`
1177
11784.6.0 / 2014-07-11
1179==================
1180
1181 * accept multiple callbacks to `app.use()`
1182 * add explicit "Rosetta Flash JSONP abuse" protection
1183 - previous versions are not vulnerable; this is just explicit protection
1184 * catch errors in multiple `req.param(name, fn)` handlers
1185 * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead
1186 * fix `res.send(status, num)` to send `num` as json (not error)
1187 * remove unnecessary escaping when `res.jsonp` returns JSON response
1188 * support non-string `path` in `app.use(path, fn)`
1189 - supports array of paths
1190 - supports `RegExp`
1191 * router: fix optimization on router exit
1192 * router: refactor location of `try` blocks
1193 * router: speed up standard `app.use(fn)`
1194 * deps: debug@1.0.3
1195 - Add support for multiple wildcards in namespaces
1196 * deps: finalhandler@0.0.3
1197 - deps: debug@1.0.3
1198 * deps: methods@1.1.0
1199 - add `CONNECT`
1200 * deps: parseurl@~1.1.3
1201 - faster parsing of href-only URLs
1202 * deps: path-to-regexp@0.1.3
1203 * deps: send@0.6.0
1204 - deps: debug@1.0.3
1205 * deps: serve-static@~1.3.2
1206 - deps: parseurl@~1.1.3
1207 - deps: send@0.6.0
1208 * perf: fix arguments reassign deopt in some `res` methods
1209
12104.5.1 / 2014-07-06
1211==================
1212
1213 * fix routing regression when altering `req.method`
1214
12154.5.0 / 2014-07-04
1216==================
1217
1218 * add deprecation message to non-plural `req.accepts*`
1219 * add deprecation message to `res.send(body, status)`
1220 * add deprecation message to `res.vary()`
1221 * add `headers` option to `res.sendfile`
1222 - use to set headers on successful file transfer
1223 * add `mergeParams` option to `Router`
1224 - merges `req.params` from parent routes
1225 * add `req.hostname` -- correct name for what `req.host` returns
1226 * deprecate things with `depd` module
1227 * deprecate `req.host` -- use `req.hostname` instead
1228 * fix behavior when handling request without routes
1229 * fix handling when `route.all` is only route
1230 * invoke `router.param()` only when route matches
1231 * restore `req.params` after invoking router
1232 * use `finalhandler` for final response handling
1233 * use `media-typer` to alter content-type charset
1234 * deps: accepts@~1.0.7
1235 * deps: send@0.5.0
1236 - Accept string for `maxage` (converted by `ms`)
1237 - Include link in default redirect response
1238 * deps: serve-static@~1.3.0
1239 - Accept string for `maxAge` (converted by `ms`)
1240 - Add `setHeaders` option
1241 - Include HTML link in redirect response
1242 - deps: send@0.5.0
1243 * deps: type-is@~1.3.2
1244
12454.4.5 / 2014-06-26
1246==================
1247
1248 * deps: cookie-signature@1.0.4
1249 - fix for timing attacks
1250
12514.4.4 / 2014-06-20
1252==================
1253
1254 * fix `res.attachment` Unicode filenames in Safari
1255 * fix "trim prefix" debug message in `express:router`
1256 * deps: accepts@~1.0.5
1257 * deps: buffer-crc32@0.2.3
1258
12594.4.3 / 2014-06-11
1260==================
1261
1262 * fix persistence of modified `req.params[name]` from `app.param()`
1263 * deps: accepts@1.0.3
1264 - deps: negotiator@0.4.6
1265 * deps: debug@1.0.2
1266 * deps: send@0.4.3
1267 - Do not throw uncatchable error on file open race condition
1268 - Use `escape-html` for HTML escaping
1269 - deps: debug@1.0.2
1270 - deps: finished@1.2.2
1271 - deps: fresh@0.2.2
1272 * deps: serve-static@1.2.3
1273 - Do not throw uncatchable error on file open race condition
1274 - deps: send@0.4.3
1275
12764.4.2 / 2014-06-09
1277==================
1278
1279 * fix catching errors from top-level handlers
1280 * use `vary` module for `res.vary`
1281 * deps: debug@1.0.1
1282 * deps: proxy-addr@1.0.1
1283 * deps: send@0.4.2
1284 - fix "event emitter leak" warnings
1285 - deps: debug@1.0.1
1286 - deps: finished@1.2.1
1287 * deps: serve-static@1.2.2
1288 - fix "event emitter leak" warnings
1289 - deps: send@0.4.2
1290 * deps: type-is@1.2.1
1291
12924.4.1 / 2014-06-02
1293==================
1294
1295 * deps: methods@1.0.1
1296 * deps: send@0.4.1
1297 - Send `max-age` in `Cache-Control` in correct format
1298 * deps: serve-static@1.2.1
1299 - use `escape-html` for escaping
1300 - deps: send@0.4.1
1301
13024.4.0 / 2014-05-30
1303==================
1304
1305 * custom etag control with `app.set('etag', val)`
1306 - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation
1307 - `app.set('etag', 'weak')` weak tag
1308 - `app.set('etag', 'strong')` strong etag
1309 - `app.set('etag', false)` turn off
1310 - `app.set('etag', true)` standard etag
1311 * mark `res.send` ETag as weak and reduce collisions
1312 * update accepts to 1.0.2
1313 - Fix interpretation when header not in request
1314 * update send to 0.4.0
1315 - Calculate ETag with md5 for reduced collisions
1316 - Ignore stream errors after request ends
1317 - deps: debug@0.8.1
1318 * update serve-static to 1.2.0
1319 - Calculate ETag with md5 for reduced collisions
1320 - Ignore stream errors after request ends
1321 - deps: send@0.4.0
1322
13234.3.2 / 2014-05-28
1324==================
1325
1326 * fix handling of errors from `router.param()` callbacks
1327
13284.3.1 / 2014-05-23
1329==================
1330
1331 * revert "fix behavior of multiple `app.VERB` for the same path"
1332 - this caused a regression in the order of route execution
1333
13344.3.0 / 2014-05-21
1335==================
1336
1337 * add `req.baseUrl` to access the path stripped from `req.url` in routes
1338 * fix behavior of multiple `app.VERB` for the same path
1339 * fix issue routing requests among sub routers
1340 * invoke `router.param()` only when necessary instead of every match
1341 * proper proxy trust with `app.set('trust proxy', trust)`
1342 - `app.set('trust proxy', 1)` trust first hop
1343 - `app.set('trust proxy', 'loopback')` trust loopback addresses
1344 - `app.set('trust proxy', '10.0.0.1')` trust single IP
1345 - `app.set('trust proxy', '10.0.0.1/16')` trust subnet
1346 - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list
1347 - `app.set('trust proxy', false)` turn off
1348 - `app.set('trust proxy', true)` trust everything
1349 * set proper `charset` in `Content-Type` for `res.send`
1350 * update type-is to 1.2.0
1351 - support suffix matching
1352
13534.2.0 / 2014-05-11
1354==================
1355
1356 * deprecate `app.del()` -- use `app.delete()` instead
1357 * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead
1358 - the edge-case `res.json(status, num)` requires `res.status(status).json(num)`
1359 * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead
1360 - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)`
1361 * fix `req.next` when inside router instance
1362 * include `ETag` header in `HEAD` requests
1363 * keep previous `Content-Type` for `res.jsonp`
1364 * support PURGE method
1365 - add `app.purge`
1366 - add `router.purge`
1367 - include PURGE in `app.all`
1368 * update debug to 0.8.0
1369 - add `enable()` method
1370 - change from stderr to stdout
1371 * update methods to 1.0.0
1372 - add PURGE
1373
13744.1.2 / 2014-05-08
1375==================
1376
1377 * fix `req.host` for IPv6 literals
1378 * fix `res.jsonp` error if callback param is object
1379
13804.1.1 / 2014-04-27
1381==================
1382
1383 * fix package.json to reflect supported node version
1384
13854.1.0 / 2014-04-24
1386==================
1387
1388 * pass options from `res.sendfile` to `send`
1389 * preserve casing of headers in `res.header` and `res.set`
1390 * support unicode file names in `res.attachment` and `res.download`
1391 * update accepts to 1.0.1
1392 - deps: negotiator@0.4.0
1393 * update cookie to 0.1.2
1394 - Fix for maxAge == 0
1395 - made compat with expires field
1396 * update send to 0.3.0
1397 - Accept API options in options object
1398 - Coerce option types
1399 - Control whether to generate etags
1400 - Default directory access to 403 when index disabled
1401 - Fix sending files with dots without root set
1402 - Include file path in etag
1403 - Make "Can't set headers after they are sent." catchable
1404 - Send full entity-body for multi range requests
1405 - Set etags to "weak"
1406 - Support "If-Range" header
1407 - Support multiple index paths
1408 - deps: mime@1.2.11
1409 * update serve-static to 1.1.0
1410 - Accept options directly to `send` module
1411 - Resolve relative paths at middleware setup
1412 - Use parseurl to parse the URL from request
1413 - deps: send@0.3.0
1414 * update type-is to 1.1.0
1415 - add non-array values support
1416 - add `multipart` as a shorthand
1417
14184.0.0 / 2014-04-09
1419==================
1420
1421 * remove:
1422 - node 0.8 support
1423 - connect and connect's patches except for charset handling
1424 - express(1) - moved to [express-generator](https://github.com/expressjs/generator)
1425 - `express.createServer()` - it has been deprecated for a long time. Use `express()`
1426 - `app.configure` - use logic in your own app code
1427 - `app.router` - is removed
1428 - `req.auth` - use `basic-auth` instead
1429 - `req.accepted*` - use `req.accepts*()` instead
1430 - `res.location` - relative URL resolution is removed
1431 - `res.charset` - include the charset in the content type when using `res.set()`
1432 - all bundled middleware except `static`
1433 * change:
1434 - `app.route` -> `app.mountpath` when mounting an express app in another express app
1435 - `json spaces` no longer enabled by default in development
1436 - `req.accepts*` -> `req.accepts*s` - i.e. `req.acceptsEncoding` -> `req.acceptsEncodings`
1437 - `req.params` is now an object instead of an array
1438 - `res.locals` is no longer a function. It is a plain js object. Treat it as such.
1439 - `res.headerSent` -> `res.headersSent` to match node.js ServerResponse object
1440 * refactor:
1441 - `req.accepts*` with [accepts](https://github.com/expressjs/accepts)
1442 - `req.is` with [type-is](https://github.com/expressjs/type-is)
1443 - [path-to-regexp](https://github.com/component/path-to-regexp)
1444 * add:
1445 - `app.router()` - returns the app Router instance
1446 - `app.route()` - Proxy to the app's `Router#route()` method to create a new route
1447 - Router & Route - public API
1448
14493.21.2 / 2015-07-31
1450===================
1451
1452 * deps: connect@2.30.2
1453 - deps: body-parser@~1.13.3
1454 - deps: compression@~1.5.2
1455 - deps: errorhandler@~1.4.2
1456 - deps: method-override@~2.3.5
1457 - deps: serve-index@~1.7.2
1458 - deps: type-is@~1.6.6
1459 - deps: vhost@~3.0.1
1460 * deps: vary@~1.0.1
1461 - Fix setting empty header from empty `field`
1462 - perf: enable strict mode
1463 - perf: remove argument reassignments
1464
14653.21.1 / 2015-07-05
1466===================
1467
1468 * deps: basic-auth@~1.0.3
1469 * deps: connect@2.30.1
1470 - deps: body-parser@~1.13.2
1471 - deps: compression@~1.5.1
1472 - deps: errorhandler@~1.4.1
1473 - deps: morgan@~1.6.1
1474 - deps: pause@0.1.0
1475 - deps: qs@4.0.0
1476 - deps: serve-index@~1.7.1
1477 - deps: type-is@~1.6.4
1478
14793.21.0 / 2015-06-18
1480===================
1481
1482 * deps: basic-auth@1.0.2
1483 - perf: enable strict mode
1484 - perf: hoist regular expression
1485 - perf: parse with regular expressions
1486 - perf: remove argument reassignment
1487 * deps: connect@2.30.0
1488 - deps: body-parser@~1.13.1
1489 - deps: bytes@2.1.0
1490 - deps: compression@~1.5.0
1491 - deps: cookie@0.1.3
1492 - deps: cookie-parser@~1.3.5
1493 - deps: csurf@~1.8.3
1494 - deps: errorhandler@~1.4.0
1495 - deps: express-session@~1.11.3
1496 - deps: finalhandler@0.4.0
1497 - deps: fresh@0.3.0
1498 - deps: morgan@~1.6.0
1499 - deps: serve-favicon@~2.3.0
1500 - deps: serve-index@~1.7.0
1501 - deps: serve-static@~1.10.0
1502 - deps: type-is@~1.6.3
1503 * deps: cookie@0.1.3
1504 - perf: deduce the scope of try-catch deopt
1505 - perf: remove argument reassignments
1506 * deps: escape-html@1.0.2
1507 * deps: etag@~1.7.0
1508 - Always include entity length in ETags for hash length extensions
1509 - Generate non-Stats ETags using MD5 only (no longer CRC32)
1510 - Improve stat performance by removing hashing
1511 - Improve support for JXcore
1512 - Remove base64 padding in ETags to shorten
1513 - Support "fake" stats objects in environments without fs
1514 - Use MD5 instead of MD4 in weak ETags over 1KB
1515 * deps: fresh@0.3.0
1516 - Add weak `ETag` matching support
1517 * deps: mkdirp@0.5.1
1518 - Work in global strict mode
1519 * deps: send@0.13.0
1520 - Allow Node.js HTTP server to set `Date` response header
1521 - Fix incorrectly removing `Content-Location` on 304 response
1522 - Improve the default redirect response headers
1523 - Send appropriate headers on default error response
1524 - Use `http-errors` for standard emitted errors
1525 - Use `statuses` instead of `http` module for status messages
1526 - deps: escape-html@1.0.2
1527 - deps: etag@~1.7.0
1528 - deps: fresh@0.3.0
1529 - deps: on-finished@~2.3.0
1530 - perf: enable strict mode
1531 - perf: remove unnecessary array allocations
1532
15333.20.3 / 2015-05-17
1534===================
1535
1536 * deps: connect@2.29.2
1537 - deps: body-parser@~1.12.4
1538 - deps: compression@~1.4.4
1539 - deps: connect-timeout@~1.6.2
1540 - deps: debug@~2.2.0
1541 - deps: depd@~1.0.1
1542 - deps: errorhandler@~1.3.6
1543 - deps: finalhandler@0.3.6
1544 - deps: method-override@~2.3.3
1545 - deps: morgan@~1.5.3
1546 - deps: qs@2.4.2
1547 - deps: response-time@~2.3.1
1548 - deps: serve-favicon@~2.2.1
1549 - deps: serve-index@~1.6.4
1550 - deps: serve-static@~1.9.3
1551 - deps: type-is@~1.6.2
1552 * deps: debug@~2.2.0
1553 - deps: ms@0.7.1
1554 * deps: depd@~1.0.1
1555 * deps: proxy-addr@~1.0.8
1556 - deps: ipaddr.js@1.0.1
1557 * deps: send@0.12.3
1558 - deps: debug@~2.2.0
1559 - deps: depd@~1.0.1
1560 - deps: etag@~1.6.0
1561 - deps: ms@0.7.1
1562 - deps: on-finished@~2.2.1
1563
15643.20.2 / 2015-03-16
1565===================
1566
1567 * deps: connect@2.29.1
1568 - deps: body-parser@~1.12.2
1569 - deps: compression@~1.4.3
1570 - deps: connect-timeout@~1.6.1
1571 - deps: debug@~2.1.3
1572 - deps: errorhandler@~1.3.5
1573 - deps: express-session@~1.10.4
1574 - deps: finalhandler@0.3.4
1575 - deps: method-override@~2.3.2
1576 - deps: morgan@~1.5.2
1577 - deps: qs@2.4.1
1578 - deps: serve-index@~1.6.3
1579 - deps: serve-static@~1.9.2
1580 - deps: type-is@~1.6.1
1581 * deps: debug@~2.1.3
1582 - Fix high intensity foreground color for bold
1583 - deps: ms@0.7.0
1584 * deps: merge-descriptors@1.0.0
1585 * deps: proxy-addr@~1.0.7
1586 - deps: ipaddr.js@0.1.9
1587 * deps: send@0.12.2
1588 - Throw errors early for invalid `extensions` or `index` options
1589 - deps: debug@~2.1.3
1590
15913.20.1 / 2015-02-28
1592===================
1593
1594 * Fix `req.host` when using "trust proxy" hops count
1595 * Fix `req.protocol`/`req.secure` when using "trust proxy" hops count
1596
15973.20.0 / 2015-02-18
1598===================
1599
1600 * Fix `"trust proxy"` setting to inherit when app is mounted
1601 * Generate `ETag`s for all request responses
1602 - No longer restricted to only responses for `GET` and `HEAD` requests
1603 * Use `content-type` to parse `Content-Type` headers
1604 * deps: connect@2.29.0
1605 - Use `content-type` to parse `Content-Type` headers
1606 - deps: body-parser@~1.12.0
1607 - deps: compression@~1.4.1
1608 - deps: connect-timeout@~1.6.0
1609 - deps: cookie-parser@~1.3.4
1610 - deps: cookie-signature@1.0.6
1611 - deps: csurf@~1.7.0
1612 - deps: errorhandler@~1.3.4
1613 - deps: express-session@~1.10.3
1614 - deps: http-errors@~1.3.1
1615 - deps: response-time@~2.3.0
1616 - deps: serve-index@~1.6.2
1617 - deps: serve-static@~1.9.1
1618 - deps: type-is@~1.6.0
1619 * deps: cookie-signature@1.0.6
1620 * deps: send@0.12.1
1621 - Always read the stat size from the file
1622 - Fix mutating passed-in `options`
1623 - deps: mime@1.3.4
1624
16253.19.2 / 2015-02-01
1626===================
1627
1628 * deps: connect@2.28.3
1629 - deps: compression@~1.3.1
1630 - deps: csurf@~1.6.6
1631 - deps: errorhandler@~1.3.3
1632 - deps: express-session@~1.10.2
1633 - deps: serve-index@~1.6.1
1634 - deps: type-is@~1.5.6
1635 * deps: proxy-addr@~1.0.6
1636 - deps: ipaddr.js@0.1.8
1637
16383.19.1 / 2015-01-20
1639===================
1640
1641 * deps: connect@2.28.2
1642 - deps: body-parser@~1.10.2
1643 - deps: serve-static@~1.8.1
1644 * deps: send@0.11.1
1645 - Fix root path disclosure
1646
16473.19.0 / 2015-01-09
1648===================
1649
1650 * Fix `OPTIONS` responses to include the `HEAD` method property
1651 * Use `readline` for prompt in `express(1)`
1652 * deps: commander@2.6.0
1653 * deps: connect@2.28.1
1654 - deps: body-parser@~1.10.1
1655 - deps: compression@~1.3.0
1656 - deps: connect-timeout@~1.5.0
1657 - deps: csurf@~1.6.4
1658 - deps: debug@~2.1.1
1659 - deps: errorhandler@~1.3.2
1660 - deps: express-session@~1.10.1
1661 - deps: finalhandler@0.3.3
1662 - deps: method-override@~2.3.1
1663 - deps: morgan@~1.5.1
1664 - deps: serve-favicon@~2.2.0
1665 - deps: serve-index@~1.6.0
1666 - deps: serve-static@~1.8.0
1667 - deps: type-is@~1.5.5
1668 * deps: debug@~2.1.1
1669 * deps: methods@~1.1.1
1670 * deps: proxy-addr@~1.0.5
1671 - deps: ipaddr.js@0.1.6
1672 * deps: send@0.11.0
1673 - deps: debug@~2.1.1
1674 - deps: etag@~1.5.1
1675 - deps: ms@0.7.0
1676 - deps: on-finished@~2.2.0
1677
16783.18.6 / 2014-12-12
1679===================
1680
1681 * Fix exception in `req.fresh`/`req.stale` without response headers
1682
16833.18.5 / 2014-12-11
1684===================
1685
1686 * deps: connect@2.27.6
1687 - deps: compression@~1.2.2
1688 - deps: express-session@~1.9.3
1689 - deps: http-errors@~1.2.8
1690 - deps: serve-index@~1.5.3
1691 - deps: type-is@~1.5.4
1692
16933.18.4 / 2014-11-23
1694===================
1695
1696 * deps: connect@2.27.4
1697 - deps: body-parser@~1.9.3
1698 - deps: compression@~1.2.1
1699 - deps: errorhandler@~1.2.3
1700 - deps: express-session@~1.9.2
1701 - deps: qs@2.3.3
1702 - deps: serve-favicon@~2.1.7
1703 - deps: serve-static@~1.5.1
1704 - deps: type-is@~1.5.3
1705 * deps: etag@~1.5.1
1706 * deps: proxy-addr@~1.0.4
1707 - deps: ipaddr.js@0.1.5
1708
17093.18.3 / 2014-11-09
1710===================
1711
1712 * deps: connect@2.27.3
1713 - Correctly invoke async callback asynchronously
1714 - deps: csurf@~1.6.3
1715
17163.18.2 / 2014-10-28
1717===================
1718
1719 * deps: connect@2.27.2
1720 - Fix handling of URLs containing `://` in the path
1721 - deps: body-parser@~1.9.2
1722 - deps: qs@2.3.2
1723
17243.18.1 / 2014-10-22
1725===================
1726
1727 * Fix internal `utils.merge` deprecation warnings
1728 * deps: connect@2.27.1
1729 - deps: body-parser@~1.9.1
1730 - deps: express-session@~1.9.1
1731 - deps: finalhandler@0.3.2
1732 - deps: morgan@~1.4.1
1733 - deps: qs@2.3.0
1734 - deps: serve-static@~1.7.1
1735 * deps: send@0.10.1
1736 - deps: on-finished@~2.1.1
1737
17383.18.0 / 2014-10-17
1739===================
1740
1741 * Use `content-disposition` module for `res.attachment`/`res.download`
1742 - Sends standards-compliant `Content-Disposition` header
1743 - Full Unicode support
1744 * Use `etag` module to generate `ETag` headers
1745 * deps: connect@2.27.0
1746 - Use `http-errors` module for creating errors
1747 - Use `utils-merge` module for merging objects
1748 - deps: body-parser@~1.9.0
1749 - deps: compression@~1.2.0
1750 - deps: connect-timeout@~1.4.0
1751 - deps: debug@~2.1.0
1752 - deps: depd@~1.0.0
1753 - deps: express-session@~1.9.0
1754 - deps: finalhandler@0.3.1
1755 - deps: method-override@~2.3.0
1756 - deps: morgan@~1.4.0
1757 - deps: response-time@~2.2.0
1758 - deps: serve-favicon@~2.1.6
1759 - deps: serve-index@~1.5.0
1760 - deps: serve-static@~1.7.0
1761 * deps: debug@~2.1.0
1762 - Implement `DEBUG_FD` env variable support
1763 * deps: depd@~1.0.0
1764 * deps: send@0.10.0
1765 - deps: debug@~2.1.0
1766 - deps: depd@~1.0.0
1767 - deps: etag@~1.5.0
1768
17693.17.8 / 2014-10-15
1770===================
1771
1772 * deps: connect@2.26.6
1773 - deps: compression@~1.1.2
1774 - deps: csurf@~1.6.2
1775 - deps: errorhandler@~1.2.2
1776
17773.17.7 / 2014-10-08
1778===================
1779
1780 * deps: connect@2.26.5
1781 - Fix accepting non-object arguments to `logger`
1782 - deps: serve-static@~1.6.4
1783
17843.17.6 / 2014-10-02
1785===================
1786
1787 * deps: connect@2.26.4
1788 - deps: morgan@~1.3.2
1789 - deps: type-is@~1.5.2
1790
17913.17.5 / 2014-09-24
1792===================
1793
1794 * deps: connect@2.26.3
1795 - deps: body-parser@~1.8.4
1796 - deps: serve-favicon@~2.1.5
1797 - deps: serve-static@~1.6.3
1798 * deps: proxy-addr@~1.0.3
1799 - Use `forwarded` npm module
1800 * deps: send@0.9.3
1801 - deps: etag@~1.4.0
1802
18033.17.4 / 2014-09-19
1804===================
1805
1806 * deps: connect@2.26.2
1807 - deps: body-parser@~1.8.3
1808 - deps: qs@2.2.4
1809
18103.17.3 / 2014-09-18
1811===================
1812
1813 * deps: proxy-addr@~1.0.2
1814 - Fix a global leak when multiple subnets are trusted
1815 - deps: ipaddr.js@0.1.3
1816
18173.17.2 / 2014-09-15
1818===================
1819
1820 * Use `crc` instead of `buffer-crc32` for speed
1821 * deps: connect@2.26.1
1822 - deps: body-parser@~1.8.2
1823 - deps: depd@0.4.5
1824 - deps: express-session@~1.8.2
1825 - deps: morgan@~1.3.1
1826 - deps: serve-favicon@~2.1.3
1827 - deps: serve-static@~1.6.2
1828 * deps: depd@0.4.5
1829 * deps: send@0.9.2
1830 - deps: depd@0.4.5
1831 - deps: etag@~1.3.1
1832 - deps: range-parser@~1.0.2
1833
18343.17.1 / 2014-09-08
1835===================
1836
1837 * Fix error in `req.subdomains` on empty host
1838
18393.17.0 / 2014-09-08
1840===================
1841
1842 * Support `X-Forwarded-Host` in `req.subdomains`
1843 * Support IP address host in `req.subdomains`
1844 * deps: connect@2.26.0
1845 - deps: body-parser@~1.8.1
1846 - deps: compression@~1.1.0
1847 - deps: connect-timeout@~1.3.0
1848 - deps: cookie-parser@~1.3.3
1849 - deps: cookie-signature@1.0.5
1850 - deps: csurf@~1.6.1
1851 - deps: debug@~2.0.0
1852 - deps: errorhandler@~1.2.0
1853 - deps: express-session@~1.8.1
1854 - deps: finalhandler@0.2.0
1855 - deps: fresh@0.2.4
1856 - deps: media-typer@0.3.0
1857 - deps: method-override@~2.2.0
1858 - deps: morgan@~1.3.0
1859 - deps: qs@2.2.3
1860 - deps: serve-favicon@~2.1.3
1861 - deps: serve-index@~1.2.1
1862 - deps: serve-static@~1.6.1
1863 - deps: type-is@~1.5.1
1864 - deps: vhost@~3.0.0
1865 * deps: cookie-signature@1.0.5
1866 * deps: debug@~2.0.0
1867 * deps: fresh@0.2.4
1868 * deps: media-typer@0.3.0
1869 - Throw error when parameter format invalid on parse
1870 * deps: range-parser@~1.0.2
1871 * deps: send@0.9.1
1872 - Add `lastModified` option
1873 - Use `etag` to generate `ETag` header
1874 - deps: debug@~2.0.0
1875 - deps: fresh@0.2.4
1876 * deps: vary@~1.0.0
1877 - Accept valid `Vary` header string as `field`
1878
18793.16.10 / 2014-09-04
1880====================
1881
1882 * deps: connect@2.25.10
1883 - deps: serve-static@~1.5.4
1884 * deps: send@0.8.5
1885 - Fix a path traversal issue when using `root`
1886 - Fix malicious path detection for empty string path
1887
18883.16.9 / 2014-08-29
1889===================
1890
1891 * deps: connect@2.25.9
1892 - deps: body-parser@~1.6.7
1893 - deps: qs@2.2.2
1894
18953.16.8 / 2014-08-27
1896===================
1897
1898 * deps: connect@2.25.8
1899 - deps: body-parser@~1.6.6
1900 - deps: csurf@~1.4.1
1901 - deps: qs@2.2.0
1902
19033.16.7 / 2014-08-18
1904===================
1905
1906 * deps: connect@2.25.7
1907 - deps: body-parser@~1.6.5
1908 - deps: express-session@~1.7.6
1909 - deps: morgan@~1.2.3
1910 - deps: serve-static@~1.5.3
1911 * deps: send@0.8.3
1912 - deps: destroy@1.0.3
1913 - deps: on-finished@2.1.0
1914
19153.16.6 / 2014-08-14
1916===================
1917
1918 * deps: connect@2.25.6
1919 - deps: body-parser@~1.6.4
1920 - deps: qs@1.2.2
1921 - deps: serve-static@~1.5.2
1922 * deps: send@0.8.2
1923 - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream`
1924
19253.16.5 / 2014-08-11
1926===================
1927
1928 * deps: connect@2.25.5
1929 - Fix backwards compatibility in `logger`
1930
19313.16.4 / 2014-08-10
1932===================
1933
1934 * Fix original URL parsing in `res.location`
1935 * deps: connect@2.25.4
1936 - Fix `query` middleware breaking with argument
1937 - deps: body-parser@~1.6.3
1938 - deps: compression@~1.0.11
1939 - deps: connect-timeout@~1.2.2
1940 - deps: express-session@~1.7.5
1941 - deps: method-override@~2.1.3
1942 - deps: on-headers@~1.0.0
1943 - deps: parseurl@~1.3.0
1944 - deps: qs@1.2.1
1945 - deps: response-time@~2.0.1
1946 - deps: serve-index@~1.1.6
1947 - deps: serve-static@~1.5.1
1948 * deps: parseurl@~1.3.0
1949
19503.16.3 / 2014-08-07
1951===================
1952
1953 * deps: connect@2.25.3
1954 - deps: multiparty@3.3.2
1955
19563.16.2 / 2014-08-07
1957===================
1958
1959 * deps: connect@2.25.2
1960 - deps: body-parser@~1.6.2
1961 - deps: qs@1.2.0
1962
19633.16.1 / 2014-08-06
1964===================
1965
1966 * deps: connect@2.25.1
1967 - deps: body-parser@~1.6.1
1968 - deps: qs@1.1.0
1969
19703.16.0 / 2014-08-05
1971===================
1972
1973 * deps: connect@2.25.0
1974 - deps: body-parser@~1.6.0
1975 - deps: compression@~1.0.10
1976 - deps: csurf@~1.4.0
1977 - deps: express-session@~1.7.4
1978 - deps: qs@1.0.2
1979 - deps: serve-static@~1.5.0
1980 * deps: send@0.8.1
1981 - Add `extensions` option
1982
19833.15.3 / 2014-08-04
1984===================
1985
1986 * fix `res.sendfile` regression for serving directory index files
1987 * deps: connect@2.24.3
1988 - deps: serve-index@~1.1.5
1989 - deps: serve-static@~1.4.4
1990 * deps: send@0.7.4
1991 - Fix incorrect 403 on Windows and Node.js 0.11
1992 - Fix serving index files without root dir
1993
19943.15.2 / 2014-07-27
1995===================
1996
1997 * deps: connect@2.24.2
1998 - deps: body-parser@~1.5.2
1999 - deps: depd@0.4.4
2000 - deps: express-session@~1.7.2
2001 - deps: morgan@~1.2.2
2002 - deps: serve-static@~1.4.2
2003 * deps: depd@0.4.4
2004 - Work-around v8 generating empty stack traces
2005 * deps: send@0.7.2
2006 - deps: depd@0.4.4
2007
20083.15.1 / 2014-07-26
2009===================
2010
2011 * deps: connect@2.24.1
2012 - deps: body-parser@~1.5.1
2013 - deps: depd@0.4.3
2014 - deps: express-session@~1.7.1
2015 - deps: morgan@~1.2.1
2016 - deps: serve-index@~1.1.4
2017 - deps: serve-static@~1.4.1
2018 * deps: depd@0.4.3
2019 - Fix exception when global `Error.stackTraceLimit` is too low
2020 * deps: send@0.7.1
2021 - deps: depd@0.4.3
2022
20233.15.0 / 2014-07-22
2024===================
2025
2026 * Fix `req.protocol` for proxy-direct connections
2027 * Pass options from `res.sendfile` to `send`
2028 * deps: connect@2.24.0
2029 - deps: body-parser@~1.5.0
2030 - deps: compression@~1.0.9
2031 - deps: connect-timeout@~1.2.1
2032 - deps: debug@1.0.4
2033 - deps: depd@0.4.2
2034 - deps: express-session@~1.7.0
2035 - deps: finalhandler@0.1.0
2036 - deps: method-override@~2.1.2
2037 - deps: morgan@~1.2.0
2038 - deps: multiparty@3.3.1
2039 - deps: parseurl@~1.2.0
2040 - deps: serve-static@~1.4.0
2041 * deps: debug@1.0.4
2042 * deps: depd@0.4.2
2043 - Add `TRACE_DEPRECATION` environment variable
2044 - Remove non-standard grey color from color output
2045 - Support `--no-deprecation` argument
2046 - Support `--trace-deprecation` argument
2047 * deps: parseurl@~1.2.0
2048 - Cache URLs based on original value
2049 - Remove no-longer-needed URL mis-parse work-around
2050 - Simplify the "fast-path" `RegExp`
2051 * deps: send@0.7.0
2052 - Add `dotfiles` option
2053 - Cap `maxAge` value to 1 year
2054 - deps: debug@1.0.4
2055 - deps: depd@0.4.2
2056
20573.14.0 / 2014-07-11
2058===================
2059
2060 * add explicit "Rosetta Flash JSONP abuse" protection
2061 - previous versions are not vulnerable; this is just explicit protection
2062 * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead
2063 * fix `res.send(status, num)` to send `num` as json (not error)
2064 * remove unnecessary escaping when `res.jsonp` returns JSON response
2065 * deps: basic-auth@1.0.0
2066 - support empty password
2067 - support empty username
2068 * deps: connect@2.23.0
2069 - deps: debug@1.0.3
2070 - deps: express-session@~1.6.4
2071 - deps: method-override@~2.1.0
2072 - deps: parseurl@~1.1.3
2073 - deps: serve-static@~1.3.1
2074 * deps: debug@1.0.3
2075 - Add support for multiple wildcards in namespaces
2076 * deps: methods@1.1.0
2077 - add `CONNECT`
2078 * deps: parseurl@~1.1.3
2079 - faster parsing of href-only URLs
2080
20813.13.0 / 2014-07-03
2082===================
2083
2084 * add deprecation message to `app.configure`
2085 * add deprecation message to `req.auth`
2086 * use `basic-auth` to parse `Authorization` header
2087 * deps: connect@2.22.0
2088 - deps: csurf@~1.3.0
2089 - deps: express-session@~1.6.1
2090 - deps: multiparty@3.3.0
2091 - deps: serve-static@~1.3.0
2092 * deps: send@0.5.0
2093 - Accept string for `maxage` (converted by `ms`)
2094 - Include link in default redirect response
2095
20963.12.1 / 2014-06-26
2097===================
2098
2099 * deps: connect@2.21.1
2100 - deps: cookie-parser@1.3.2
2101 - deps: cookie-signature@1.0.4
2102 - deps: express-session@~1.5.2
2103 - deps: type-is@~1.3.2
2104 * deps: cookie-signature@1.0.4
2105 - fix for timing attacks
2106
21073.12.0 / 2014-06-21
2108===================
2109
2110 * use `media-typer` to alter content-type charset
2111 * deps: connect@2.21.0
2112 - deprecate `connect(middleware)` -- use `app.use(middleware)` instead
2113 - deprecate `connect.createServer()` -- use `connect()` instead
2114 - fix `res.setHeader()` patch to work with with get -> append -> set pattern
2115 - deps: compression@~1.0.8
2116 - deps: errorhandler@~1.1.1
2117 - deps: express-session@~1.5.0
2118 - deps: serve-index@~1.1.3
2119
21203.11.0 / 2014-06-19
2121===================
2122
2123 * deprecate things with `depd` module
2124 * deps: buffer-crc32@0.2.3
2125 * deps: connect@2.20.2
2126 - deprecate `verify` option to `json` -- use `body-parser` npm module instead
2127 - deprecate `verify` option to `urlencoded` -- use `body-parser` npm module instead
2128 - deprecate things with `depd` module
2129 - use `finalhandler` for final response handling
2130 - use `media-typer` to parse `content-type` for charset
2131 - deps: body-parser@1.4.3
2132 - deps: connect-timeout@1.1.1
2133 - deps: cookie-parser@1.3.1
2134 - deps: csurf@1.2.2
2135 - deps: errorhandler@1.1.0
2136 - deps: express-session@1.4.0
2137 - deps: multiparty@3.2.9
2138 - deps: serve-index@1.1.2
2139 - deps: type-is@1.3.1
2140 - deps: vhost@2.0.0
2141
21423.10.5 / 2014-06-11
2143===================
2144
2145 * deps: connect@2.19.6
2146 - deps: body-parser@1.3.1
2147 - deps: compression@1.0.7
2148 - deps: debug@1.0.2
2149 - deps: serve-index@1.1.1
2150 - deps: serve-static@1.2.3
2151 * deps: debug@1.0.2
2152 * deps: send@0.4.3
2153 - Do not throw uncatchable error on file open race condition
2154 - Use `escape-html` for HTML escaping
2155 - deps: debug@1.0.2
2156 - deps: finished@1.2.2
2157 - deps: fresh@0.2.2
2158
21593.10.4 / 2014-06-09
2160===================
2161
2162 * deps: connect@2.19.5
2163 - fix "event emitter leak" warnings
2164 - deps: csurf@1.2.1
2165 - deps: debug@1.0.1
2166 - deps: serve-static@1.2.2
2167 - deps: type-is@1.2.1
2168 * deps: debug@1.0.1
2169 * deps: send@0.4.2
2170 - fix "event emitter leak" warnings
2171 - deps: finished@1.2.1
2172 - deps: debug@1.0.1
2173
21743.10.3 / 2014-06-05
2175===================
2176
2177 * use `vary` module for `res.vary`
2178 * deps: connect@2.19.4
2179 - deps: errorhandler@1.0.2
2180 - deps: method-override@2.0.2
2181 - deps: serve-favicon@2.0.1
2182 * deps: debug@1.0.0
2183
21843.10.2 / 2014-06-03
2185===================
2186
2187 * deps: connect@2.19.3
2188 - deps: compression@1.0.6
2189
21903.10.1 / 2014-06-03
2191===================
2192
2193 * deps: connect@2.19.2
2194 - deps: compression@1.0.4
2195 * deps: proxy-addr@1.0.1
2196
21973.10.0 / 2014-06-02
2198===================
2199
2200 * deps: connect@2.19.1
2201 - deprecate `methodOverride()` -- use `method-override` npm module instead
2202 - deps: body-parser@1.3.0
2203 - deps: method-override@2.0.1
2204 - deps: multiparty@3.2.8
2205 - deps: response-time@2.0.0
2206 - deps: serve-static@1.2.1
2207 * deps: methods@1.0.1
2208 * deps: send@0.4.1
2209 - Send `max-age` in `Cache-Control` in correct format
2210
22113.9.0 / 2014-05-30
2212==================
2213
2214 * custom etag control with `app.set('etag', val)`
2215 - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation
2216 - `app.set('etag', 'weak')` weak tag
2217 - `app.set('etag', 'strong')` strong etag
2218 - `app.set('etag', false)` turn off
2219 - `app.set('etag', true)` standard etag
2220 * Include ETag in HEAD requests
2221 * mark `res.send` ETag as weak and reduce collisions
2222 * update connect to 2.18.0
2223 - deps: compression@1.0.3
2224 - deps: serve-index@1.1.0
2225 - deps: serve-static@1.2.0
2226 * update send to 0.4.0
2227 - Calculate ETag with md5 for reduced collisions
2228 - Ignore stream errors after request ends
2229 - deps: debug@0.8.1
2230
22313.8.1 / 2014-05-27
2232==================
2233
2234 * update connect to 2.17.3
2235 - deps: body-parser@1.2.2
2236 - deps: express-session@1.2.1
2237 - deps: method-override@1.0.2
2238
22393.8.0 / 2014-05-21
2240==================
2241
2242 * keep previous `Content-Type` for `res.jsonp`
2243 * set proper `charset` in `Content-Type` for `res.send`
2244 * update connect to 2.17.1
2245 - fix `res.charset` appending charset when `content-type` has one
2246 - deps: express-session@1.2.0
2247 - deps: morgan@1.1.1
2248 - deps: serve-index@1.0.3
2249
22503.7.0 / 2014-05-18
2251==================
2252
2253 * proper proxy trust with `app.set('trust proxy', trust)`
2254 - `app.set('trust proxy', 1)` trust first hop
2255 - `app.set('trust proxy', 'loopback')` trust loopback addresses
2256 - `app.set('trust proxy', '10.0.0.1')` trust single IP
2257 - `app.set('trust proxy', '10.0.0.1/16')` trust subnet
2258 - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list
2259 - `app.set('trust proxy', false)` turn off
2260 - `app.set('trust proxy', true)` trust everything
2261 * update connect to 2.16.2
2262 - deprecate `res.headerSent` -- use `res.headersSent`
2263 - deprecate `res.on("header")` -- use on-headers module instead
2264 - fix edge-case in `res.appendHeader` that would append in wrong order
2265 - json: use body-parser
2266 - urlencoded: use body-parser
2267 - dep: bytes@1.0.0
2268 - dep: cookie-parser@1.1.0
2269 - dep: csurf@1.2.0
2270 - dep: express-session@1.1.0
2271 - dep: method-override@1.0.1
2272
22733.6.0 / 2014-05-09
2274==================
2275
2276 * deprecate `app.del()` -- use `app.delete()` instead
2277 * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead
2278 - the edge-case `res.json(status, num)` requires `res.status(status).json(num)`
2279 * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead
2280 - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)`
2281 * support PURGE method
2282 - add `app.purge`
2283 - add `router.purge`
2284 - include PURGE in `app.all`
2285 * update connect to 2.15.0
2286 * Add `res.appendHeader`
2287 * Call error stack even when response has been sent
2288 * Patch `res.headerSent` to return Boolean
2289 * Patch `res.headersSent` for node.js 0.8
2290 * Prevent default 404 handler after response sent
2291 * dep: compression@1.0.2
2292 * dep: connect-timeout@1.1.0
2293 * dep: debug@^0.8.0
2294 * dep: errorhandler@1.0.1
2295 * dep: express-session@1.0.4
2296 * dep: morgan@1.0.1
2297 * dep: serve-favicon@2.0.0
2298 * dep: serve-index@1.0.2
2299 * update debug to 0.8.0
2300 * add `enable()` method
2301 * change from stderr to stdout
2302 * update methods to 1.0.0
2303 - add PURGE
2304 * update mkdirp to 0.5.0
2305
23063.5.3 / 2014-05-08
2307==================
2308
2309 * fix `req.host` for IPv6 literals
2310 * fix `res.jsonp` error if callback param is object
2311
23123.5.2 / 2014-04-24
2313==================
2314
2315 * update connect to 2.14.5
2316 * update cookie to 0.1.2
2317 * update mkdirp to 0.4.0
2318 * update send to 0.3.0
2319
23203.5.1 / 2014-03-25
2321==================
2322
2323 * pin less-middleware in generated app
2324
23253.5.0 / 2014-03-06
2326==================
2327
2328 * bump deps
2329
23303.4.8 / 2014-01-13
2331==================
2332
2333 * prevent incorrect automatic OPTIONS responses #1868 @dpatti
2334 * update binary and examples for jade 1.0 #1876 @yossi, #1877 @reqshark, #1892 @matheusazzi
2335 * throw 400 in case of malformed paths @rlidwka
2336
23373.4.7 / 2013-12-10
2338==================
2339
2340 * update connect
2341
23423.4.6 / 2013-12-01
2343==================
2344
2345 * update connect (raw-body)
2346
23473.4.5 / 2013-11-27
2348==================
2349
2350 * update connect
2351 * res.location: remove leading ./ #1802 @kapouer
2352 * res.redirect: fix `res.redirect('toString') #1829 @michaelficarra
2353 * res.send: always send ETag when content-length > 0
2354 * router: add Router.all() method
2355
23563.4.4 / 2013-10-29
2357==================
2358
2359 * update connect
2360 * update supertest
2361 * update methods
2362 * express(1): replace bodyParser() with urlencoded() and json() #1795 @chirag04
2363
23643.4.3 / 2013-10-23
2365==================
2366
2367 * update connect
2368
23693.4.2 / 2013-10-18
2370==================
2371
2372 * update connect
2373 * downgrade commander
2374
23753.4.1 / 2013-10-15
2376==================
2377
2378 * update connect
2379 * update commander
2380 * jsonp: check if callback is a function
2381 * router: wrap encodeURIComponent in a try/catch #1735 (@lxe)
2382 * res.format: now includes charset @1747 (@sorribas)
2383 * res.links: allow multiple calls @1746 (@sorribas)
2384
23853.4.0 / 2013-09-07
2386==================
2387
2388 * add res.vary(). Closes #1682
2389 * update connect
2390
23913.3.8 / 2013-09-02
2392==================
2393
2394 * update connect
2395
23963.3.7 / 2013-08-28
2397==================
2398
2399 * update connect
2400
24013.3.6 / 2013-08-27
2402==================
2403
2404 * Revert "remove charset from json responses. Closes #1631" (causes issues in some clients)
2405 * add: req.accepts take an argument list
2406
24073.3.4 / 2013-07-08
2408==================
2409
2410 * update send and connect
2411
24123.3.3 / 2013-07-04
2413==================
2414
2415 * update connect
2416
24173.3.2 / 2013-07-03
2418==================
2419
2420 * update connect
2421 * update send
2422 * remove .version export
2423
24243.3.1 / 2013-06-27
2425==================
2426
2427 * update connect
2428
24293.3.0 / 2013-06-26
2430==================
2431
2432 * update connect
2433 * add support for multiple X-Forwarded-Proto values. Closes #1646
2434 * change: remove charset from json responses. Closes #1631
2435 * change: return actual booleans from req.accept* functions
2436 * fix jsonp callback array throw
2437
24383.2.6 / 2013-06-02
2439==================
2440
2441 * update connect
2442
24433.2.5 / 2013-05-21
2444==================
2445
2446 * update connect
2447 * update node-cookie
2448 * add: throw a meaningful error when there is no default engine
2449 * change generation of ETags with res.send() to GET requests only. Closes #1619
2450
24513.2.4 / 2013-05-09
2452==================
2453
2454 * fix `req.subdomains` when no Host is present
2455 * fix `req.host` when no Host is present, return undefined
2456
24573.2.3 / 2013-05-07
2458==================
2459
2460 * update connect / qs
2461
24623.2.2 / 2013-05-03
2463==================
2464
2465 * update qs
2466
24673.2.1 / 2013-04-29
2468==================
2469
2470 * add app.VERB() paths array deprecation warning
2471 * update connect
2472 * update qs and remove all ~ semver crap
2473 * fix: accept number as value of Signed Cookie
2474
24753.2.0 / 2013-04-15
2476==================
2477
2478 * add "view" constructor setting to override view behaviour
2479 * add req.acceptsEncoding(name)
2480 * add req.acceptedEncodings
2481 * revert cookie signature change causing session race conditions
2482 * fix sorting of Accept values of the same quality
2483
24843.1.2 / 2013-04-12
2485==================
2486
2487 * add support for custom Accept parameters
2488 * update cookie-signature
2489
24903.1.1 / 2013-04-01
2491==================
2492
2493 * add X-Forwarded-Host support to `req.host`
2494 * fix relative redirects
2495 * update mkdirp
2496 * update buffer-crc32
2497 * remove legacy app.configure() method from app template.
2498
24993.1.0 / 2013-01-25
2500==================
2501
2502 * add support for leading "." in "view engine" setting
2503 * add array support to `res.set()`
2504 * add node 0.8.x to travis.yml
2505 * add "subdomain offset" setting for tweaking `req.subdomains`
2506 * add `res.location(url)` implementing `res.redirect()`-like setting of Location
2507 * use app.get() for x-powered-by setting for inheritance
2508 * fix colons in passwords for `req.auth`
2509
25103.0.6 / 2013-01-04
2511==================
2512
2513 * add http verb methods to Router
2514 * update connect
2515 * fix mangling of the `res.cookie()` options object
2516 * fix jsonp whitespace escape. Closes #1132
2517
25183.0.5 / 2012-12-19
2519==================
2520
2521 * add throwing when a non-function is passed to a route
2522 * fix: explicitly remove Transfer-Encoding header from 204 and 304 responses
2523 * revert "add 'etag' option"
2524
25253.0.4 / 2012-12-05
2526==================
2527
2528 * add 'etag' option to disable `res.send()` Etags
2529 * add escaping of urls in text/plain in `res.redirect()`
2530 for old browsers interpreting as html
2531 * change crc32 module for a more liberal license
2532 * update connect
2533
25343.0.3 / 2012-11-13
2535==================
2536
2537 * update connect
2538 * update cookie module
2539 * fix cookie max-age
2540
25413.0.2 / 2012-11-08
2542==================
2543
2544 * add OPTIONS to cors example. Closes #1398
2545 * fix route chaining regression. Closes #1397
2546
25473.0.1 / 2012-11-01
2548==================
2549
2550 * update connect
2551
25523.0.0 / 2012-10-23
2553==================
2554
2555 * add `make clean`
2556 * add "Basic" check to req.auth
2557 * add `req.auth` test coverage
2558 * add cb && cb(payload) to `res.jsonp()`. Closes #1374
2559 * add backwards compat for `res.redirect()` status. Closes #1336
2560 * add support for `res.json()` to retain previously defined Content-Types. Closes #1349
2561 * update connect
2562 * change `res.redirect()` to utilize a pathname-relative Location again. Closes #1382
2563 * remove non-primitive string support for `res.send()`
2564 * fix view-locals example. Closes #1370
2565 * fix route-separation example
2566
25673.0.0rc5 / 2012-09-18
2568==================
2569
2570 * update connect
2571 * add redis search example
2572 * add static-files example
2573 * add "x-powered-by" setting (`app.disable('x-powered-by')`)
2574 * add "application/octet-stream" redirect Accept test case. Closes #1317
2575
25763.0.0rc4 / 2012-08-30
2577==================
2578
2579 * add `res.jsonp()`. Closes #1307
2580 * add "verbose errors" option to error-pages example
2581 * add another route example to express(1) so people are not so confused
2582 * add redis online user activity tracking example
2583 * update connect dep
2584 * fix etag quoting. Closes #1310
2585 * fix error-pages 404 status
2586 * fix jsonp callback char restrictions
2587 * remove old OPTIONS default response
2588
25893.0.0rc3 / 2012-08-13
2590==================
2591
2592 * update connect dep
2593 * fix signed cookies to work with `connect.cookieParser()` ("s:" prefix was missing) [tnydwrds]
2594 * fix `res.render()` clobbering of "locals"
2595
25963.0.0rc2 / 2012-08-03
2597==================
2598
2599 * add CORS example
2600 * update connect dep
2601 * deprecate `.createServer()` & remove old stale examples
2602 * fix: escape `res.redirect()` link
2603 * fix vhost example
2604
26053.0.0rc1 / 2012-07-24
2606==================
2607
2608 * add more examples to view-locals
2609 * add scheme-relative redirects (`res.redirect("//foo.com")`) support
2610 * update cookie dep
2611 * update connect dep
2612 * update send dep
2613 * fix `express(1)` -h flag, use -H for hogan. Closes #1245
2614 * fix `res.sendfile()` socket error handling regression
2615
26163.0.0beta7 / 2012-07-16
2617==================
2618
2619 * update connect dep for `send()` root normalization regression
2620
26213.0.0beta6 / 2012-07-13
2622==================
2623
2624 * add `err.view` property for view errors. Closes #1226
2625 * add "jsonp callback name" setting
2626 * add support for "/foo/:bar*" non-greedy matches
2627 * change `res.sendfile()` to use `send()` module
2628 * change `res.send` to use "response-send" module
2629 * remove `app.locals.use` and `res.locals.use`, use regular middleware
2630
26313.0.0beta5 / 2012-07-03
2632==================
2633
2634 * add "make check" support
2635 * add route-map example
2636 * add `res.json(obj, status)` support back for BC
2637 * add "methods" dep, remove internal methods module
2638 * update connect dep
2639 * update auth example to utilize cores pbkdf2
2640 * updated tests to use "supertest"
2641
26423.0.0beta4 / 2012-06-25
2643==================
2644
2645 * Added `req.auth`
2646 * Added `req.range(size)`
2647 * Added `res.links(obj)`
2648 * Added `res.send(body, status)` support back for backwards compat
2649 * Added `.default()` support to `res.format()`
2650 * Added 2xx / 304 check to `req.fresh`
2651 * Revert "Added + support to the router"
2652 * Fixed `res.send()` freshness check, respect res.statusCode
2653
26543.0.0beta3 / 2012-06-15
2655==================
2656
2657 * Added hogan `--hjs` to express(1) [nullfirm]
2658 * Added another example to content-negotiation
2659 * Added `fresh` dep
2660 * Changed: `res.send()` always checks freshness
2661 * Fixed: expose connects mime module. Closes #1165
2662
26633.0.0beta2 / 2012-06-06
2664==================
2665
2666 * Added `+` support to the router
2667 * Added `req.host`
2668 * Changed `req.param()` to check route first
2669 * Update connect dep
2670
26713.0.0beta1 / 2012-06-01
2672==================
2673
2674 * Added `res.format()` callback to override default 406 behaviour
2675 * Fixed `res.redirect()` 406. Closes #1154
2676
26773.0.0alpha5 / 2012-05-30
2678==================
2679
2680 * Added `req.ip`
2681 * Added `{ signed: true }` option to `res.cookie()`
2682 * Removed `res.signedCookie()`
2683 * Changed: dont reverse `req.ips`
2684 * Fixed "trust proxy" setting check for `req.ips`
2685
26863.0.0alpha4 / 2012-05-09
2687==================
2688
2689 * Added: allow `[]` in jsonp callback. Closes #1128
2690 * Added `PORT` env var support in generated template. Closes #1118 [benatkin]
2691 * Updated: connect 2.2.2
2692
26933.0.0alpha3 / 2012-05-04
2694==================
2695
2696 * Added public `app.routes`. Closes #887
2697 * Added _view-locals_ example
2698 * Added _mvc_ example
2699 * Added `res.locals.use()`. Closes #1120
2700 * Added conditional-GET support to `res.send()`
2701 * Added: coerce `res.set()` values to strings
2702 * Changed: moved `static()` in generated apps below router
2703 * Changed: `res.send()` only set ETag when not previously set
2704 * Changed connect 2.2.1 dep
2705 * Changed: `make test` now runs unit / acceptance tests
2706 * Fixed req/res proto inheritance
2707
27083.0.0alpha2 / 2012-04-26
2709==================
2710
2711 * Added `make benchmark` back
2712 * Added `res.send()` support for `String` objects
2713 * Added client-side data exposing example
2714 * Added `res.header()` and `req.header()` aliases for BC
2715 * Added `express.createServer()` for BC
2716 * Perf: memoize parsed urls
2717 * Perf: connect 2.2.0 dep
2718 * Changed: make `expressInit()` middleware self-aware
2719 * Fixed: use app.get() for all core settings
2720 * Fixed redis session example
2721 * Fixed session example. Closes #1105
2722 * Fixed generated express dep. Closes #1078
2723
27243.0.0alpha1 / 2012-04-15
2725==================
2726
2727 * Added `app.locals.use(callback)`
2728 * Added `app.locals` object
2729 * Added `app.locals(obj)`
2730 * Added `res.locals` object
2731 * Added `res.locals(obj)`
2732 * Added `res.format()` for content-negotiation
2733 * Added `app.engine()`
2734 * Added `res.cookie()` JSON cookie support
2735 * Added "trust proxy" setting
2736 * Added `req.subdomains`
2737 * Added `req.protocol`
2738 * Added `req.secure`
2739 * Added `req.path`
2740 * Added `req.ips`
2741 * Added `req.fresh`
2742 * Added `req.stale`
2743 * Added comma-delimited / array support for `req.accepts()`
2744 * Added debug instrumentation
2745 * Added `res.set(obj)`
2746 * Added `res.set(field, value)`
2747 * Added `res.get(field)`
2748 * Added `app.get(setting)`. Closes #842
2749 * Added `req.acceptsLanguage()`
2750 * Added `req.acceptsCharset()`
2751 * Added `req.accepted`
2752 * Added `req.acceptedLanguages`
2753 * Added `req.acceptedCharsets`
2754 * Added "json replacer" setting
2755 * Added "json spaces" setting
2756 * Added X-Forwarded-Proto support to `res.redirect()`. Closes #92
2757 * Added `--less` support to express(1)
2758 * Added `express.response` prototype
2759 * Added `express.request` prototype
2760 * Added `express.application` prototype
2761 * Added `app.path()`
2762 * Added `app.render()`
2763 * Added `res.type()` to replace `res.contentType()`
2764 * Changed: `res.redirect()` to add relative support
2765 * Changed: enable "jsonp callback" by default
2766 * Changed: renamed "case sensitive routes" to "case sensitive routing"
2767 * Rewrite of all tests with mocha
2768 * Removed "root" setting
2769 * Removed `res.redirect('home')` support
2770 * Removed `req.notify()`
2771 * Removed `app.register()`
2772 * Removed `app.redirect()`
2773 * Removed `app.is()`
2774 * Removed `app.helpers()`
2775 * Removed `app.dynamicHelpers()`
2776 * Fixed `res.sendfile()` with non-GET. Closes #723
2777 * Fixed express(1) public dir for windows. Closes #866
2778
27792.5.9/ 2012-04-02
2780==================
2781
2782 * Added support for PURGE request method [pbuyle]
2783 * Fixed `express(1)` generated app `app.address()` before `listening` [mmalecki]
2784
27852.5.8 / 2012-02-08
2786==================
2787
2788 * Update mkdirp dep. Closes #991
2789
27902.5.7 / 2012-02-06
2791==================
2792
2793 * Fixed `app.all` duplicate DELETE requests [mscdex]
2794
27952.5.6 / 2012-01-13
2796==================
2797
2798 * Updated hamljs dev dep. Closes #953
2799
28002.5.5 / 2012-01-08
2801==================
2802
2803 * Fixed: set `filename` on cached templates [matthewleon]
2804
28052.5.4 / 2012-01-02
2806==================
2807
2808 * Fixed `express(1)` eol on 0.4.x. Closes #947
2809
28102.5.3 / 2011-12-30
2811==================
2812
2813 * Fixed `req.is()` when a charset is present
2814
28152.5.2 / 2011-12-10
2816==================
2817
2818 * Fixed: express(1) LF -> CRLF for windows
2819
28202.5.1 / 2011-11-17
2821==================
2822
2823 * Changed: updated connect to 1.8.x
2824 * Removed sass.js support from express(1)
2825
28262.5.0 / 2011-10-24
2827==================
2828
2829 * Added ./routes dir for generated app by default
2830 * Added npm install reminder to express(1) app gen
2831 * Added 0.5.x support
2832 * Removed `make test-cov` since it wont work with node 0.5.x
2833 * Fixed express(1) public dir for windows. Closes #866
2834
28352.4.7 / 2011-10-05
2836==================
2837
2838 * Added mkdirp to express(1). Closes #795
2839 * Added simple _json-config_ example
2840 * Added shorthand for the parsed request's pathname via `req.path`
2841 * Changed connect dep to 1.7.x to fix npm issue...
2842 * Fixed `res.redirect()` __HEAD__ support. [reported by xerox]
2843 * Fixed `req.flash()`, only escape args
2844 * Fixed absolute path checking on windows. Closes #829 [reported by andrewpmckenzie]
2845
28462.4.6 / 2011-08-22
2847==================
2848
2849 * Fixed multiple param callback regression. Closes #824 [reported by TroyGoode]
2850
28512.4.5 / 2011-08-19
2852==================
2853
2854 * Added support for routes to handle errors. Closes #809
2855 * Added `app.routes.all()`. Closes #803
2856 * Added "basepath" setting to work in conjunction with reverse proxies etc.
2857 * Refactored `Route` to use a single array of callbacks
2858 * Added support for multiple callbacks for `app.param()`. Closes #801
2859Closes #805
2860 * Changed: removed .call(self) for route callbacks
2861 * Dependency: `qs >= 0.3.1`
2862 * Fixed `res.redirect()` on windows due to `join()` usage. Closes #808
2863
28642.4.4 / 2011-08-05
2865==================
2866
2867 * Fixed `res.header()` intention of a set, even when `undefined`
2868 * Fixed `*`, value no longer required
2869 * Fixed `res.send(204)` support. Closes #771
2870
28712.4.3 / 2011-07-14
2872==================
2873
2874 * Added docs for `status` option special-case. Closes #739
2875 * Fixed `options.filename`, exposing the view path to template engines
2876
28772.4.2. / 2011-07-06
2878==================
2879
2880 * Revert "removed jsonp stripping" for XSS
2881
28822.4.1 / 2011-07-06
2883==================
2884
2885 * Added `res.json()` JSONP support. Closes #737
2886 * Added _extending-templates_ example. Closes #730
2887 * Added "strict routing" setting for trailing slashes
2888 * Added support for multiple envs in `app.configure()` calls. Closes #735
2889 * Changed: `res.send()` using `res.json()`
2890 * Changed: when cookie `path === null` don't default it
2891 * Changed; default cookie path to "home" setting. Closes #731
2892 * Removed _pids/logs_ creation from express(1)
2893
28942.4.0 / 2011-06-28
2895==================
2896
2897 * Added chainable `res.status(code)`
2898 * Added `res.json()`, an explicit version of `res.send(obj)`
2899 * Added simple web-service example
2900
29012.3.12 / 2011-06-22
2902==================
2903
2904 * \#express is now on freenode! come join!
2905 * Added `req.get(field, param)`
2906 * Added links to Japanese documentation, thanks @hideyukisaito!
2907 * Added; the `express(1)` generated app outputs the env
2908 * Added `content-negotiation` example
2909 * Dependency: connect >= 1.5.1 < 2.0.0
2910 * Fixed view layout bug. Closes #720
2911 * Fixed; ignore body on 304. Closes #701
2912
29132.3.11 / 2011-06-04
2914==================
2915
2916 * Added `npm test`
2917 * Removed generation of dummy test file from `express(1)`
2918 * Fixed; `express(1)` adds express as a dep
2919 * Fixed; prune on `prepublish`
2920
29212.3.10 / 2011-05-27
2922==================
2923
2924 * Added `req.route`, exposing the current route
2925 * Added _package.json_ generation support to `express(1)`
2926 * Fixed call to `app.param()` function for optional params. Closes #682
2927
29282.3.9 / 2011-05-25
2929==================
2930
2931 * Fixed bug-ish with `../' in `res.partial()` calls
2932
29332.3.8 / 2011-05-24
2934==================
2935
2936 * Fixed `app.options()`
2937
29382.3.7 / 2011-05-23
2939==================
2940
2941 * Added route `Collection`, ex: `app.get('/user/:id').remove();`
2942 * Added support for `app.param(fn)` to define param logic
2943 * Removed `app.param()` support for callback with return value
2944 * Removed module.parent check from express(1) generated app. Closes #670
2945 * Refactored router. Closes #639
2946
29472.3.6 / 2011-05-20
2948==================
2949
2950 * Changed; using devDependencies instead of git submodules
2951 * Fixed redis session example
2952 * Fixed markdown example
2953 * Fixed view caching, should not be enabled in development
2954
29552.3.5 / 2011-05-20
2956==================
2957
2958 * Added export `.view` as alias for `.View`
2959
29602.3.4 / 2011-05-08
2961==================
2962
2963 * Added `./examples/say`
2964 * Fixed `res.sendfile()` bug preventing the transfer of files with spaces
2965
29662.3.3 / 2011-05-03
2967==================
2968
2969 * Added "case sensitive routes" option.
2970 * Changed; split methods supported per rfc [slaskis]
2971 * Fixed route-specific middleware when using the same callback function several times
2972
29732.3.2 / 2011-04-27
2974==================
2975
2976 * Fixed view hints
2977
29782.3.1 / 2011-04-26
2979==================
2980
2981 * Added `app.match()` as `app.match.all()`
2982 * Added `app.lookup()` as `app.lookup.all()`
2983 * Added `app.remove()` for `app.remove.all()`
2984 * Added `app.remove.VERB()`
2985 * Fixed template caching collision issue. Closes #644
2986 * Moved router over from connect and started refactor
2987
29882.3.0 / 2011-04-25
2989==================
2990
2991 * Added options support to `res.clearCookie()`
2992 * Added `res.helpers()` as alias of `res.locals()`
2993 * Added; json defaults to UTF-8 with `res.send()`. Closes #632. [Daniel * Dependency `connect >= 1.4.0`
2994 * Changed; auto set Content-Type in res.attachement [Aaron Heckmann]
2995 * Renamed "cache views" to "view cache". Closes #628
2996 * Fixed caching of views when using several apps. Closes #637
2997 * Fixed gotcha invoking `app.param()` callbacks once per route middleware.
2998Closes #638
2999 * Fixed partial lookup precedence. Closes #631
3000Shaw]
3001
30022.2.2 / 2011-04-12
3003==================
3004
3005 * Added second callback support for `res.download()` connection errors
3006 * Fixed `filename` option passing to template engine
3007
30082.2.1 / 2011-04-04
3009==================
3010
3011 * Added `layout(path)` helper to change the layout within a view. Closes #610
3012 * Fixed `partial()` collection object support.
3013 Previously only anything with `.length` would work.
3014 When `.length` is present one must still be aware of holes,
3015 however now `{ collection: {foo: 'bar'}}` is valid, exposes
3016 `keyInCollection` and `keysInCollection`.
3017
3018 * Performance improved with better view caching
3019 * Removed `request` and `response` locals
3020 * Changed; errorHandler page title is now `Express` instead of `Connect`
3021
30222.2.0 / 2011-03-30
3023==================
3024
3025 * Added `app.lookup.VERB()`, ex `app.lookup.put('/user/:id')`. Closes #606
3026 * Added `app.match.VERB()`, ex `app.match.put('/user/12')`. Closes #606
3027 * Added `app.VERB(path)` as alias of `app.lookup.VERB()`.
3028 * Dependency `connect >= 1.2.0`
3029
30302.1.1 / 2011-03-29
3031==================
3032
3033 * Added; expose `err.view` object when failing to locate a view
3034 * Fixed `res.partial()` call `next(err)` when no callback is given [reported by aheckmann]
3035 * Fixed; `res.send(undefined)` responds with 204 [aheckmann]
3036
30372.1.0 / 2011-03-24
3038==================
3039
3040 * Added `<root>/_?<name>` partial lookup support. Closes #447
3041 * Added `request`, `response`, and `app` local variables
3042 * Added `settings` local variable, containing the app's settings
3043 * Added `req.flash()` exception if `req.session` is not available
3044 * Added `res.send(bool)` support (json response)
3045 * Fixed stylus example for latest version
3046 * Fixed; wrap try/catch around `res.render()`
3047
30482.0.0 / 2011-03-17
3049==================
3050
3051 * Fixed up index view path alternative.
3052 * Changed; `res.locals()` without object returns the locals
3053
30542.0.0rc3 / 2011-03-17
3055==================
3056
3057 * Added `res.locals(obj)` to compliment `res.local(key, val)`
3058 * Added `res.partial()` callback support
3059 * Fixed recursive error reporting issue in `res.render()`
3060
30612.0.0rc2 / 2011-03-17
3062==================
3063
3064 * Changed; `partial()` "locals" are now optional
3065 * Fixed `SlowBuffer` support. Closes #584 [reported by tyrda01]
3066 * Fixed .filename view engine option [reported by drudge]
3067 * Fixed blog example
3068 * Fixed `{req,res}.app` reference when mounting [Ben Weaver]
3069
30702.0.0rc / 2011-03-14
3071==================
3072
3073 * Fixed; expose `HTTPSServer` constructor
3074 * Fixed express(1) default test charset. Closes #579 [reported by secoif]
3075 * Fixed; default charset to utf-8 instead of utf8 for lame IE [reported by NickP]
3076
30772.0.0beta3 / 2011-03-09
3078==================
3079
3080 * Added support for `res.contentType()` literal
3081 The original `res.contentType('.json')`,
3082 `res.contentType('application/json')`, and `res.contentType('json')`
3083 will work now.
3084 * Added `res.render()` status option support back
3085 * Added charset option for `res.render()`
3086 * Added `.charset` support (via connect 1.0.4)
3087 * Added view resolution hints when in development and a lookup fails
3088 * Added layout lookup support relative to the page view.
3089 For example while rendering `./views/user/index.jade` if you create
3090 `./views/user/layout.jade` it will be used in favour of the root layout.
3091 * Fixed `res.redirect()`. RFC states absolute url [reported by unlink]
3092 * Fixed; default `res.send()` string charset to utf8
3093 * Removed `Partial` constructor (not currently used)
3094
30952.0.0beta2 / 2011-03-07
3096==================
3097
3098 * Added res.render() `.locals` support back to aid in migration process
3099 * Fixed flash example
3100
31012.0.0beta / 2011-03-03
3102==================
3103
3104 * Added HTTPS support
3105 * Added `res.cookie()` maxAge support
3106 * Added `req.header()` _Referrer_ / _Referer_ special-case, either works
3107 * Added mount support for `res.redirect()`, now respects the mount-point
3108 * Added `union()` util, taking place of `merge(clone())` combo
3109 * Added stylus support to express(1) generated app
3110 * Added secret to session middleware used in examples and generated app
3111 * Added `res.local(name, val)` for progressive view locals
3112 * Added default param support to `req.param(name, default)`
3113 * Added `app.disabled()` and `app.enabled()`
3114 * Added `app.register()` support for omitting leading ".", either works
3115 * Added `res.partial()`, using the same interface as `partial()` within a view. Closes #539
3116 * Added `app.param()` to map route params to async/sync logic
3117 * Added; aliased `app.helpers()` as `app.locals()`. Closes #481
3118 * Added extname with no leading "." support to `res.contentType()`
3119 * Added `cache views` setting, defaulting to enabled in "production" env
3120 * Added index file partial resolution, eg: partial('user') may try _views/user/index.jade_.
3121 * Added `req.accepts()` support for extensions
3122 * Changed; `res.download()` and `res.sendfile()` now utilize Connect's
3123 static file server `connect.static.send()`.
3124 * Changed; replaced `connect.utils.mime()` with npm _mime_ module
3125 * Changed; allow `req.query` to be pre-defined (via middleware or other parent
3126 * Changed view partial resolution, now relative to parent view
3127 * Changed view engine signature. no longer `engine.render(str, options, callback)`, now `engine.compile(str, options) -> Function`, the returned function accepts `fn(locals)`.
3128 * Fixed `req.param()` bug returning Array.prototype methods. Closes #552
3129 * Fixed; using `Stream#pipe()` instead of `sys.pump()` in `res.sendfile()`
3130 * Fixed; using _qs_ module instead of _querystring_
3131 * Fixed; strip unsafe chars from jsonp callbacks
3132 * Removed "stream threshold" setting
3133
31341.0.8 / 2011-03-01
3135==================
3136
3137 * Allow `req.query` to be pre-defined (via middleware or other parent app)
3138 * "connect": ">= 0.5.0 < 1.0.0". Closes #547
3139 * Removed the long deprecated __EXPRESS_ENV__ support
3140
31411.0.7 / 2011-02-07
3142==================
3143
3144 * Fixed `render()` setting inheritance.
3145 Mounted apps would not inherit "view engine"
3146
31471.0.6 / 2011-02-07
3148==================
3149
3150 * Fixed `view engine` setting bug when period is in dirname
3151
31521.0.5 / 2011-02-05
3153==================
3154
3155 * Added secret to generated app `session()` call
3156
31571.0.4 / 2011-02-05
3158==================
3159
3160 * Added `qs` dependency to _package.json_
3161 * Fixed namespaced `require()`s for latest connect support
3162
31631.0.3 / 2011-01-13
3164==================
3165
3166 * Remove unsafe characters from JSONP callback names [Ryan Grove]
3167
31681.0.2 / 2011-01-10
3169==================
3170
3171 * Removed nested require, using `connect.router`
3172
31731.0.1 / 2010-12-29
3174==================
3175
3176 * Fixed for middleware stacked via `createServer()`
3177 previously the `foo` middleware passed to `createServer(foo)`
3178 would not have access to Express methods such as `res.send()`
3179 or props like `req.query` etc.
3180
31811.0.0 / 2010-11-16
3182==================
3183
3184 * Added; deduce partial object names from the last segment.
3185 For example by default `partial('forum/post', postObject)` will
3186 give you the _post_ object, providing a meaningful default.
3187 * Added http status code string representation to `res.redirect()` body
3188 * Added; `res.redirect()` supporting _text/plain_ and _text/html_ via __Accept__.
3189 * Added `req.is()` to aid in content negotiation
3190 * Added partial local inheritance [suggested by masylum]. Closes #102
3191 providing access to parent template locals.
3192 * Added _-s, --session[s]_ flag to express(1) to add session related middleware
3193 * Added _--template_ flag to express(1) to specify the
3194 template engine to use.
3195 * Added _--css_ flag to express(1) to specify the
3196 stylesheet engine to use (or just plain css by default).
3197 * Added `app.all()` support [thanks aheckmann]
3198 * Added partial direct object support.
3199 You may now `partial('user', user)` providing the "user" local,
3200 vs previously `partial('user', { object: user })`.
3201 * Added _route-separation_ example since many people question ways
3202 to do this with CommonJS modules. Also view the _blog_ example for
3203 an alternative.
3204 * Performance; caching view path derived partial object names
3205 * Fixed partial local inheritance precedence. [reported by Nick Poulden] Closes #454
3206 * Fixed jsonp support; _text/javascript_ as per mailinglist discussion
3207
32081.0.0rc4 / 2010-10-14
3209==================
3210
3211 * Added _NODE_ENV_ support, _EXPRESS_ENV_ is deprecated and will be removed in 1.0.0
3212 * Added route-middleware support (very helpful, see the [docs](http://expressjs.com/guide.html#Route-Middleware))
3213 * Added _jsonp callback_ setting to enable/disable jsonp autowrapping [Dav Glass]
3214 * Added callback query check on response.send to autowrap JSON objects for simple webservice implementations [Dav Glass]
3215 * Added `partial()` support for array-like collections. Closes #434
3216 * Added support for swappable querystring parsers
3217 * Added session usage docs. Closes #443
3218 * Added dynamic helper caching. Closes #439 [suggested by maritz]
3219 * Added authentication example
3220 * Added basic Range support to `res.sendfile()` (and `res.download()` etc)
3221 * Changed; `express(1)` generated app using 2 spaces instead of 4
3222 * Default env to "development" again [aheckmann]
3223 * Removed _context_ option is no more, use "scope"
3224 * Fixed; exposing _./support_ libs to examples so they can run without installs
3225 * Fixed mvc example
3226
32271.0.0rc3 / 2010-09-20
3228==================
3229
3230 * Added confirmation for `express(1)` app generation. Closes #391
3231 * Added extending of flash formatters via `app.flashFormatters`
3232 * Added flash formatter support. Closes #411
3233 * Added streaming support to `res.sendfile()` using `sys.pump()` when >= "stream threshold"
3234 * Added _stream threshold_ setting for `res.sendfile()`
3235 * Added `res.send()` __HEAD__ support
3236 * Added `res.clearCookie()`
3237 * Added `res.cookie()`
3238 * Added `res.render()` headers option
3239 * Added `res.redirect()` response bodies
3240 * Added `res.render()` status option support. Closes #425 [thanks aheckmann]
3241 * Fixed `res.sendfile()` responding with 403 on malicious path
3242 * Fixed `res.download()` bug; when an error occurs remove _Content-Disposition_
3243 * Fixed; mounted apps settings now inherit from parent app [aheckmann]
3244 * Fixed; stripping Content-Length / Content-Type when 204
3245 * Fixed `res.send()` 204. Closes #419
3246 * Fixed multiple _Set-Cookie_ headers via `res.header()`. Closes #402
3247 * Fixed bug messing with error handlers when `listenFD()` is called instead of `listen()`. [thanks guillermo]
3248
3249
32501.0.0rc2 / 2010-08-17
3251==================
3252
3253 * Added `app.register()` for template engine mapping. Closes #390
3254 * Added `res.render()` callback support as second argument (no options)
3255 * Added callback support to `res.download()`
3256 * Added callback support for `res.sendfile()`
3257 * Added support for middleware access via `express.middlewareName()` vs `connect.middlewareName()`
3258 * Added "partials" setting to docs
3259 * Added default expresso tests to `express(1)` generated app. Closes #384
3260 * Fixed `res.sendfile()` error handling, defer via `next()`
3261 * Fixed `res.render()` callback when a layout is used [thanks guillermo]
3262 * Fixed; `make install` creating ~/.node_libraries when not present
3263 * Fixed issue preventing error handlers from being defined anywhere. Closes #387
3264
32651.0.0rc / 2010-07-28
3266==================
3267
3268 * Added mounted hook. Closes #369
3269 * Added connect dependency to _package.json_
3270
3271 * Removed "reload views" setting and support code
3272 development env never caches, production always caches.
3273
3274 * Removed _param_ in route callbacks, signature is now
3275 simply (req, res, next), previously (req, res, params, next).
3276 Use _req.params_ for path captures, _req.query_ for GET params.
3277
3278 * Fixed "home" setting
3279 * Fixed middleware/router precedence issue. Closes #366
3280 * Fixed; _configure()_ callbacks called immediately. Closes #368
3281
32821.0.0beta2 / 2010-07-23
3283==================
3284
3285 * Added more examples
3286 * Added; exporting `Server` constructor
3287 * Added `Server#helpers()` for view locals
3288 * Added `Server#dynamicHelpers()` for dynamic view locals. Closes #349
3289 * Added support for absolute view paths
3290 * Added; _home_ setting defaults to `Server#route` for mounted apps. Closes #363
3291 * Added Guillermo Rauch to the contributor list
3292 * Added support for "as" for non-collection partials. Closes #341
3293 * Fixed _install.sh_, ensuring _~/.node_libraries_ exists. Closes #362 [thanks jf]
3294 * Fixed `res.render()` exceptions, now passed to `next()` when no callback is given [thanks guillermo]
3295 * Fixed instanceof `Array` checks, now `Array.isArray()`
3296 * Fixed express(1) expansion of public dirs. Closes #348
3297 * Fixed middleware precedence. Closes #345
3298 * Fixed view watcher, now async [thanks aheckmann]
3299
33001.0.0beta / 2010-07-15
3301==================
3302
3303 * Re-write
3304 - much faster
3305 - much lighter
3306 - Check [ExpressJS.com](http://expressjs.com) for migration guide and updated docs
3307
33080.14.0 / 2010-06-15
3309==================
3310
3311 * Utilize relative requires
3312 * Added Static bufferSize option [aheckmann]
3313 * Fixed caching of view and partial subdirectories [aheckmann]
3314 * Fixed mime.type() comments now that ".ext" is not supported
3315 * Updated haml submodule
3316 * Updated class submodule
3317 * Removed bin/express
3318
33190.13.0 / 2010-06-01
3320==================
3321
3322 * Added node v0.1.97 compatibility
3323 * Added support for deleting cookies via Request#cookie('key', null)
3324 * Updated haml submodule
3325 * Fixed not-found page, now using using charset utf-8
3326 * Fixed show-exceptions page, now using using charset utf-8
3327 * Fixed view support due to fs.readFile Buffers
3328 * Changed; mime.type() no longer accepts ".type" due to node extname() changes
3329
33300.12.0 / 2010-05-22
3331==================
3332
3333 * Added node v0.1.96 compatibility
3334 * Added view `helpers` export which act as additional local variables
3335 * Updated haml submodule
3336 * Changed ETag; removed inode, modified time only
3337 * Fixed LF to CRLF for setting multiple cookies
3338 * Fixed cookie compilation; values are now urlencoded
3339 * Fixed cookies parsing; accepts quoted values and url escaped cookies
3340
33410.11.0 / 2010-05-06
3342==================
3343
3344 * Added support for layouts using different engines
3345 - this.render('page.html.haml', { layout: 'super-cool-layout.html.ejs' })
3346 - this.render('page.html.haml', { layout: 'foo' }) // assumes 'foo.html.haml'
3347 - this.render('page.html.haml', { layout: false }) // no layout
3348 * Updated ext submodule
3349 * Updated haml submodule
3350 * Fixed EJS partial support by passing along the context. Issue #307
3351
33520.10.1 / 2010-05-03
3353==================
3354
3355 * Fixed binary uploads.
3356
33570.10.0 / 2010-04-30
3358==================
3359
3360 * Added charset support via Request#charset (automatically assigned to 'UTF-8' when respond()'s
3361 encoding is set to 'utf8' or 'utf-8'.
3362 * Added "encoding" option to Request#render(). Closes #299
3363 * Added "dump exceptions" setting, which is enabled by default.
3364 * Added simple ejs template engine support
3365 * Added error response support for text/plain, application/json. Closes #297
3366 * Added callback function param to Request#error()
3367 * Added Request#sendHead()
3368 * Added Request#stream()
3369 * Added support for Request#respond(304, null) for empty response bodies
3370 * Added ETag support to Request#sendfile()
3371 * Added options to Request#sendfile(), passed to fs.createReadStream()
3372 * Added filename arg to Request#download()
3373 * Performance enhanced due to pre-reversing plugins so that plugins.reverse() is not called on each request
3374 * Performance enhanced by preventing several calls to toLowerCase() in Router#match()
3375 * Changed; Request#sendfile() now streams
3376 * Changed; Renamed Request#halt() to Request#respond(). Closes #289
3377 * Changed; Using sys.inspect() instead of JSON.encode() for error output
3378 * Changed; run() returns the http.Server instance. Closes #298
3379 * Changed; Defaulting Server#host to null (INADDR_ANY)
3380 * Changed; Logger "common" format scale of 0.4f
3381 * Removed Logger "request" format
3382 * Fixed; Catching ENOENT in view caching, preventing error when "views/partials" is not found
3383 * Fixed several issues with http client
3384 * Fixed Logger Content-Length output
3385 * Fixed bug preventing Opera from retaining the generated session id. Closes #292
3386
33870.9.0 / 2010-04-14
3388==================
3389
3390 * Added DSL level error() route support
3391 * Added DSL level notFound() route support
3392 * Added Request#error()
3393 * Added Request#notFound()
3394 * Added Request#render() callback function. Closes #258
3395 * Added "max upload size" setting
3396 * Added "magic" variables to collection partials (\_\_index\_\_, \_\_length\_\_, \_\_isFirst\_\_, \_\_isLast\_\_). Closes #254
3397 * Added [haml.js](http://github.com/visionmedia/haml.js) submodule; removed haml-js
3398 * Added callback function support to Request#halt() as 3rd/4th arg
3399 * Added preprocessing of route param wildcards using param(). Closes #251
3400 * Added view partial support (with collections etc)
3401 * Fixed bug preventing falsey params (such as ?page=0). Closes #286
3402 * Fixed setting of multiple cookies. Closes #199
3403 * Changed; view naming convention is now NAME.TYPE.ENGINE (for example page.html.haml)
3404 * Changed; session cookie is now httpOnly
3405 * Changed; Request is no longer global
3406 * Changed; Event is no longer global
3407 * Changed; "sys" module is no longer global
3408 * Changed; moved Request#download to Static plugin where it belongs
3409 * Changed; Request instance created before body parsing. Closes #262
3410 * Changed; Pre-caching views in memory when "cache view contents" is enabled. Closes #253
3411 * Changed; Pre-caching view partials in memory when "cache view partials" is enabled
3412 * Updated support to node --version 0.1.90
3413 * Updated dependencies
3414 * Removed set("session cookie") in favour of use(Session, { cookie: { ... }})
3415 * Removed utils.mixin(); use Object#mergeDeep()
3416
34170.8.0 / 2010-03-19
3418==================
3419
3420 * Added coffeescript example app. Closes #242
3421 * Changed; cache api now async friendly. Closes #240
3422 * Removed deprecated 'express/static' support. Use 'express/plugins/static'
3423
34240.7.6 / 2010-03-19
3425==================
3426
3427 * Added Request#isXHR. Closes #229
3428 * Added `make install` (for the executable)
3429 * Added `express` executable for setting up simple app templates
3430 * Added "GET /public/*" to Static plugin, defaulting to <root>/public
3431 * Added Static plugin
3432 * Fixed; Request#render() only calls cache.get() once
3433 * Fixed; Namespacing View caches with "view:"
3434 * Fixed; Namespacing Static caches with "static:"
3435 * Fixed; Both example apps now use the Static plugin
3436 * Fixed set("views"). Closes #239
3437 * Fixed missing space for combined log format
3438 * Deprecated Request#sendfile() and 'express/static'
3439 * Removed Server#running
3440
34410.7.5 / 2010-03-16
3442==================
3443
3444 * Added Request#flash() support without args, now returns all flashes
3445 * Updated ext submodule
3446
34470.7.4 / 2010-03-16
3448==================
3449
3450 * Fixed session reaper
3451 * Changed; class.js replacing js-oo Class implementation (quite a bit faster, no browser cruft)
3452
34530.7.3 / 2010-03-16
3454==================
3455
3456 * Added package.json
3457 * Fixed requiring of haml / sass due to kiwi removal
3458
34590.7.2 / 2010-03-16
3460==================
3461
3462 * Fixed GIT submodules (HAH!)
3463
34640.7.1 / 2010-03-16
3465==================
3466
3467 * Changed; Express now using submodules again until a PM is adopted
3468 * Changed; chat example using millisecond conversions from ext
3469
34700.7.0 / 2010-03-15
3471==================
3472
3473 * Added Request#pass() support (finds the next matching route, or the given path)
3474 * Added Logger plugin (default "common" format replaces CommonLogger)
3475 * Removed Profiler plugin
3476 * Removed CommonLogger plugin
3477
34780.6.0 / 2010-03-11
3479==================
3480
3481 * Added seed.yml for kiwi package management support
3482 * Added HTTP client query string support when method is GET. Closes #205
3483
3484 * Added support for arbitrary view engines.
3485 For example "foo.engine.html" will now require('engine'),
3486 the exports from this module are cached after the first require().
3487
3488 * Added async plugin support
3489
3490 * Removed usage of RESTful route funcs as http client
3491 get() etc, use http.get() and friends
3492
3493 * Removed custom exceptions
3494
34950.5.0 / 2010-03-10
3496==================
3497
3498 * Added ext dependency (library of js extensions)
3499 * Removed extname() / basename() utils. Use path module
3500 * Removed toArray() util. Use arguments.values
3501 * Removed escapeRegexp() util. Use RegExp.escape()
3502 * Removed process.mixin() dependency. Use utils.mixin()
3503 * Removed Collection
3504 * Removed ElementCollection
3505 * Shameless self promotion of ebook "Advanced JavaScript" (http://dev-mag.com) ;)
3506
35070.4.0 / 2010-02-11
3508==================
3509
3510 * Added flash() example to sample upload app
3511 * Added high level restful http client module (express/http)
3512 * Changed; RESTful route functions double as HTTP clients. Closes #69
3513 * Changed; throwing error when routes are added at runtime
3514 * Changed; defaulting render() context to the current Request. Closes #197
3515 * Updated haml submodule
3516
35170.3.0 / 2010-02-11
3518==================
3519
3520 * Updated haml / sass submodules. Closes #200
3521 * Added flash message support. Closes #64
3522 * Added accepts() now allows multiple args. fixes #117
3523 * Added support for plugins to halt. Closes #189
3524 * Added alternate layout support. Closes #119
3525 * Removed Route#run(). Closes #188
3526 * Fixed broken specs due to use(Cookie) missing
3527
35280.2.1 / 2010-02-05
3529==================
3530
3531 * Added "plot" format option for Profiler (for gnuplot processing)
3532 * Added request number to Profiler plugin
3533 * Fixed binary encoding for multipart file uploads, was previously defaulting to UTF8
3534 * Fixed issue with routes not firing when not files are present. Closes #184
3535 * Fixed process.Promise -> events.Promise
3536
35370.2.0 / 2010-02-03
3538==================
3539
3540 * Added parseParam() support for name[] etc. (allows for file inputs with "multiple" attr) Closes #180
3541 * Added Both Cache and Session option "reapInterval" may be "reapEvery". Closes #174
3542 * Added expiration support to cache api with reaper. Closes #133
3543 * Added cache Store.Memory#reap()
3544 * Added Cache; cache api now uses first class Cache instances
3545 * Added abstract session Store. Closes #172
3546 * Changed; cache Memory.Store#get() utilizing Collection
3547 * Renamed MemoryStore -> Store.Memory
3548 * Fixed use() of the same plugin several time will always use latest options. Closes #176
3549
35500.1.0 / 2010-02-03
3551==================
3552
3553 * Changed; Hooks (before / after) pass request as arg as well as evaluated in their context
3554 * Updated node support to 0.1.27 Closes #169
3555 * Updated dirname(__filename) -> __dirname
3556 * Updated libxmljs support to v0.2.0
3557 * Added session support with memory store / reaping
3558 * Added quick uid() helper
3559 * Added multi-part upload support
3560 * Added Sass.js support / submodule
3561 * Added production env caching view contents and static files
3562 * Added static file caching. Closes #136
3563 * Added cache plugin with memory stores
3564 * Added support to StaticFile so that it works with non-textual files.
3565 * Removed dirname() helper
3566 * Removed several globals (now their modules must be required)
3567
35680.0.2 / 2010-01-10
3569==================
3570
3571 * Added view benchmarks; currently haml vs ejs
3572 * Added Request#attachment() specs. Closes #116
3573 * Added use of node's parseQuery() util. Closes #123
3574 * Added `make init` for submodules
3575 * Updated Haml
3576 * Updated sample chat app to show messages on load
3577 * Updated libxmljs parseString -> parseHtmlString
3578 * Fixed `make init` to work with older versions of git
3579 * Fixed specs can now run independent specs for those who can't build deps. Closes #127
3580 * Fixed issues introduced by the node url module changes. Closes 126.
3581 * Fixed two assertions failing due to Collection#keys() returning strings
3582 * Fixed faulty Collection#toArray() spec due to keys() returning strings
3583 * Fixed `make test` now builds libxmljs.node before testing
3584
35850.0.1 / 2010-01-03
3586==================
3587
3588 * Initial release
Note: See TracBrowser for help on using the repository browser.