socketioMEANseed/server/node_modules/express/History.md
server/node_modules/express/History.mdRaw
14.10.2 / 2014-11-09
2===================
3
4 * Correctly invoke async router callback asynchronously
5 * deps: accepts@~1.1.3
6 - deps: mime-types@~2.0.3
7 * deps: type-is@~1.5.3
8 - deps: mime-types@~2.0.3
9
104.10.1 / 2014-10-28
11===================
12
13 * Fix handling of URLs containing `://` in the path
14 * deps: qs@2.3.2
15 - Fix parsing of mixed objects and values
16
174.10.0 / 2014-10-23
18===================
19
20 * Add support for `app.set('views', array)`
21 - Views are looked up in sequence in array of directories
22 * Fix `res.send(status)` to mention `res.sendStatus(status)`
23 * Fix handling of invalid empty URLs
24 * Use `content-disposition` module for `res.attachment`/`res.download`
25 - Sends standards-compliant `Content-Disposition` header
26 - Full Unicode support
27 * Use `path.resolve` in view lookup
28 * deps: debug@~2.1.0
29 - Implement `DEBUG_FD` env variable support
30 * deps: depd@~1.0.0
31 * deps: etag@~1.5.0
32 - Improve string performance
33 - Slightly improve speed for weak ETags over 1KB
34 * deps: finalhandler@0.3.2
35 - Terminate in progress response only on error
36 - Use `on-finished` to determine request status
37 - deps: debug@~2.1.0
38 - deps: on-finished@~2.1.1
39 * deps: on-finished@~2.1.1
40 - Fix handling of pipelined requests
41 * deps: qs@2.3.0
42 - Fix parsing of mixed implicit and explicit arrays
43 * deps: send@0.10.1
44 - deps: debug@~2.1.0
45 - deps: depd@~1.0.0
46 - deps: etag@~1.5.0
47 - deps: on-finished@~2.1.1
48 * deps: serve-static@~1.7.1
49 - deps: send@0.10.1
50
514.9.8 / 2014-10-17
52==================
53
54 * Fix `res.redirect` body when redirect status specified
55 * deps: accepts@~1.1.2
56 - Fix error when media type has invalid parameter
57 - deps: negotiator@0.4.9
58
594.9.7 / 2014-10-10
60==================
61
62 * Fix using same param name in array of paths
63
644.9.6 / 2014-10-08
65==================
66
67 * deps: accepts@~1.1.1
68 - deps: mime-types@~2.0.2
69 - deps: negotiator@0.4.8
70 * deps: serve-static@~1.6.4
71 - Fix redirect loop when index file serving disabled
72 * deps: type-is@~1.5.2
73 - deps: mime-types@~2.0.2
74
754.9.5 / 2014-09-24
76==================
77
78 * deps: etag@~1.4.0
79 * deps: proxy-addr@~1.0.3
80 - Use `forwarded` npm module
81 * deps: send@0.9.3
82 - deps: etag@~1.4.0
83 * deps: serve-static@~1.6.3
84 - deps: send@0.9.3
85
864.9.4 / 2014-09-19
87==================
88
89 * deps: qs@2.2.4
90 - Fix issue with object keys starting with numbers truncated
91
924.9.3 / 2014-09-18
93==================
94
95 * deps: proxy-addr@~1.0.2
96 - Fix a global leak when multiple subnets are trusted
97 - deps: ipaddr.js@0.1.3
98
994.9.2 / 2014-09-17
100==================
101
102 * Fix regression for empty string `path` in `app.use`
103 * Fix `router.use` to accept array of middleware without path
104 * Improve error message for bad `app.use` arguments
105
1064.9.1 / 2014-09-16
107==================
108
109 * Fix `app.use` to accept array of middleware without path
110 * deps: depd@0.4.5
111 * deps: etag@~1.3.1
112 * deps: send@0.9.2
113 - deps: depd@0.4.5
114 - deps: etag@~1.3.1
115 - deps: range-parser@~1.0.2
116 * deps: serve-static@~1.6.2
117 - deps: send@0.9.2
118
1194.9.0 / 2014-09-08
120==================
121
122 * Add `res.sendStatus`
123 * Invoke callback for sendfile when client aborts
124 - Applies to `res.sendFile`, `res.sendfile`, and `res.download`
125 - `err` will be populated with request aborted error
126 * Support IP address host in `req.subdomains`
127 * Use `etag` to generate `ETag` headers
128 * deps: accepts@~1.1.0
129 - update `mime-types`
130 * deps: cookie-signature@1.0.5
131 * deps: debug@~2.0.0
132 * deps: finalhandler@0.2.0
133 - Set `X-Content-Type-Options: nosniff` header
134 - deps: debug@~2.0.0
135 * deps: fresh@0.2.4
136 * deps: media-typer@0.3.0
137 - Throw error when parameter format invalid on parse
138 * deps: qs@2.2.3
139 - Fix issue where first empty value in array is discarded
140 * deps: range-parser@~1.0.2
141 * deps: send@0.9.1
142 - Add `lastModified` option
143 - Use `etag` to generate `ETag` header
144 - deps: debug@~2.0.0
145 - deps: fresh@0.2.4
146 * deps: serve-static@~1.6.1
147 - Add `lastModified` option
148 - deps: send@0.9.1
149 * deps: type-is@~1.5.1
150 - fix `hasbody` to be true for `content-length: 0`
151 - deps: media-typer@0.3.0
152 - deps: mime-types@~2.0.1
153 * deps: vary@~1.0.0
154 - Accept valid `Vary` header string as `field`
155
1564.8.8 / 2014-09-04
157==================
158
159 * deps: send@0.8.5
160 - Fix a path traversal issue when using `root`
161 - Fix malicious path detection for empty string path
162 * deps: serve-static@~1.5.4
163 - deps: send@0.8.5
164
1654.8.7 / 2014-08-29
166==================
167
168 * deps: qs@2.2.2
169 - Remove unnecessary cloning
170
1714.8.6 / 2014-08-27
172==================
173
174 * deps: qs@2.2.0
175 - Array parsing fix
176 - Performance improvements
177
1784.8.5 / 2014-08-18
179==================
180
181 * deps: send@0.8.3
182 - deps: destroy@1.0.3
183 - deps: on-finished@2.1.0
184 * deps: serve-static@~1.5.3
185 - deps: send@0.8.3
186
1874.8.4 / 2014-08-14
188==================
189
190 * deps: qs@1.2.2
191 * deps: send@0.8.2
192 - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream`
193 * deps: serve-static@~1.5.2
194 - deps: send@0.8.2
195
1964.8.3 / 2014-08-10
197==================
198
199 * deps: parseurl@~1.3.0
200 * deps: qs@1.2.1
201 * deps: serve-static@~1.5.1
202 - Fix parsing of weird `req.originalUrl` values
203 - deps: parseurl@~1.3.0
204 - deps: utils-merge@1.0.0
205
2064.8.2 / 2014-08-07
207==================
208
209 * deps: qs@1.2.0
210 - Fix parsing array of objects
211
2124.8.1 / 2014-08-06
213==================
214
215 * fix incorrect deprecation warnings on `res.download`
216 * deps: qs@1.1.0
217 - Accept urlencoded square brackets
218 - Accept empty values in implicit array notation
219
2204.8.0 / 2014-08-05
221==================
222
223 * add `res.sendFile`
224 - accepts a file system path instead of a URL
225 - requires an absolute path or `root` option specified
226 * deprecate `res.sendfile` -- use `res.sendFile` instead
227 * support mounted app as any argument to `app.use()`
228 * deps: qs@1.0.2
229 - Complete rewrite
230 - Limits array length to 20
231 - Limits object depth to 5
232 - Limits parameters to 1,000
233 * deps: send@0.8.1
234 - Add `extensions` option
235 * deps: serve-static@~1.5.0
236 - Add `extensions` option
237 - deps: send@0.8.1
238
2394.7.4 / 2014-08-04
240==================
241
242 * fix `res.sendfile` regression for serving directory index files
243 * deps: send@0.7.4
244 - Fix incorrect 403 on Windows and Node.js 0.11
245 - Fix serving index files without root dir
246 * deps: serve-static@~1.4.4
247 - deps: send@0.7.4
248
2494.7.3 / 2014-08-04
250==================
251
252 * deps: send@0.7.3
253 - Fix incorrect 403 on Windows and Node.js 0.11
254 * deps: serve-static@~1.4.3
255 - Fix incorrect 403 on Windows and Node.js 0.11
256 - deps: send@0.7.3
257
2584.7.2 / 2014-07-27
259==================
260
261 * deps: depd@0.4.4
262 - Work-around v8 generating empty stack traces
263 * deps: send@0.7.2
264 - deps: depd@0.4.4
265 * deps: serve-static@~1.4.2
266
2674.7.1 / 2014-07-26
268==================
269
270 * deps: depd@0.4.3
271 - Fix exception when global `Error.stackTraceLimit` is too low
272 * deps: send@0.7.1
273 - deps: depd@0.4.3
274 * deps: serve-static@~1.4.1
275
2764.7.0 / 2014-07-25
277==================
278
279 * fix `req.protocol` for proxy-direct connections
280 * configurable query parser with `app.set('query parser', parser)`
281 - `app.set('query parser', 'extended')` parse with "qs" module
282 - `app.set('query parser', 'simple')` parse with "querystring" core module
283 - `app.set('query parser', false)` disable query string parsing
284 - `app.set('query parser', true)` enable simple parsing
285 * deprecate `res.json(status, obj)` -- use `res.status(status).json(obj)` instead
286 * deprecate `res.jsonp(status, obj)` -- use `res.status(status).jsonp(obj)` instead
287 * deprecate `res.send(status, body)` -- use `res.status(status).send(body)` instead
288 * deps: debug@1.0.4
289 * deps: depd@0.4.2
290 - Add `TRACE_DEPRECATION` environment variable
291 - Remove non-standard grey color from color output
292 - Support `--no-deprecation` argument
293 - Support `--trace-deprecation` argument
294 * deps: finalhandler@0.1.0
295 - Respond after request fully read
296 - deps: debug@1.0.4
297 * deps: parseurl@~1.2.0
298 - Cache URLs based on original value
299 - Remove no-longer-needed URL mis-parse work-around
300 - Simplify the "fast-path" `RegExp`
301 * deps: send@0.7.0
302 - Add `dotfiles` option
303 - Cap `maxAge` value to 1 year
304 - deps: debug@1.0.4
305 - deps: depd@0.4.2
306 * deps: serve-static@~1.4.0
307 - deps: parseurl@~1.2.0
308 - deps: send@0.7.0
309 * perf: prevent multiple `Buffer` creation in `res.send`
310
3114.6.1 / 2014-07-12
312==================
313
314 * fix `subapp.mountpath` regression for `app.use(subapp)`
315
3164.6.0 / 2014-07-11
317==================
318
319 * accept multiple callbacks to `app.use()`
320 * add explicit "Rosetta Flash JSONP abuse" protection
321 - previous versions are not vulnerable; this is just explicit protection
322 * catch errors in multiple `req.param(name, fn)` handlers
323 * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead
324 * fix `res.send(status, num)` to send `num` as json (not error)
325 * remove unnecessary escaping when `res.jsonp` returns JSON response
326 * support non-string `path` in `app.use(path, fn)`
327 - supports array of paths
328 - supports `RegExp`
329 * router: fix optimization on router exit
330 * router: refactor location of `try` blocks
331 * router: speed up standard `app.use(fn)`
332 * deps: debug@1.0.3
333 - Add support for multiple wildcards in namespaces
334 * deps: finalhandler@0.0.3
335 - deps: debug@1.0.3
336 * deps: methods@1.1.0
337 - add `CONNECT`
338 * deps: parseurl@~1.1.3
339 - faster parsing of href-only URLs
340 * deps: path-to-regexp@0.1.3
341 * deps: send@0.6.0
342 - deps: debug@1.0.3
343 * deps: serve-static@~1.3.2
344 - deps: parseurl@~1.1.3
345 - deps: send@0.6.0
346 * perf: fix arguments reassign deopt in some `res` methods
347
3484.5.1 / 2014-07-06
349==================
350
351 * fix routing regression when altering `req.method`
352
3534.5.0 / 2014-07-04
354==================
355
356 * add deprecation message to non-plural `req.accepts*`
357 * add deprecation message to `res.send(body, status)`
358 * add deprecation message to `res.vary()`
359 * add `headers` option to `res.sendfile`
360 - use to set headers on successful file transfer
361 * add `mergeParams` option to `Router`
362 - merges `req.params` from parent routes
363 * add `req.hostname` -- correct name for what `req.host` returns
364 * deprecate things with `depd` module
365 * deprecate `req.host` -- use `req.hostname` instead
366 * fix behavior when handling request without routes
367 * fix handling when `route.all` is only route
368 * invoke `router.param()` only when route matches
369 * restore `req.params` after invoking router
370 * use `finalhandler` for final response handling
371 * use `media-typer` to alter content-type charset
372 * deps: accepts@~1.0.7
373 * deps: send@0.5.0
374 - Accept string for `maxage` (converted by `ms`)
375 - Include link in default redirect response
376 * deps: serve-static@~1.3.0
377 - Accept string for `maxAge` (converted by `ms`)
378 - Add `setHeaders` option
379 - Include HTML link in redirect response
380 - deps: send@0.5.0
381 * deps: type-is@~1.3.2
382
3834.4.5 / 2014-06-26
384==================
385
386 * deps: cookie-signature@1.0.4
387 - fix for timing attacks
388
3894.4.4 / 2014-06-20
390==================
391
392 * fix `res.attachment` Unicode filenames in Safari
393 * fix "trim prefix" debug message in `express:router`
394 * deps: accepts@~1.0.5
395 * deps: buffer-crc32@0.2.3
396
3974.4.3 / 2014-06-11
398==================
399
400 * fix persistence of modified `req.params[name]` from `app.param()`
401 * deps: accepts@1.0.3
402 - deps: negotiator@0.4.6
403 * deps: debug@1.0.2
404 * deps: send@0.4.3
405 - Do not throw un-catchable error on file open race condition
406 - Use `escape-html` for HTML escaping
407 - deps: debug@1.0.2
408 - deps: finished@1.2.2
409 - deps: fresh@0.2.2
410 * deps: serve-static@1.2.3
411 - Do not throw un-catchable error on file open race condition
412 - deps: send@0.4.3
413
4144.4.2 / 2014-06-09
415==================
416
417 * fix catching errors from top-level handlers
418 * use `vary` module for `res.vary`
419 * deps: debug@1.0.1
420 * deps: proxy-addr@1.0.1
421 * deps: send@0.4.2
422 - fix "event emitter leak" warnings
423 - deps: debug@1.0.1
424 - deps: finished@1.2.1
425 * deps: serve-static@1.2.2
426 - fix "event emitter leak" warnings
427 - deps: send@0.4.2
428 * deps: type-is@1.2.1
429
4304.4.1 / 2014-06-02
431==================
432
433 * deps: methods@1.0.1
434 * deps: send@0.4.1
435 - Send `max-age` in `Cache-Control` in correct format
436 * deps: serve-static@1.2.1
437 - use `escape-html` for escaping
438 - deps: send@0.4.1
439
4404.4.0 / 2014-05-30
441==================
442
443 * custom etag control with `app.set('etag', val)`
444 - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation
445 - `app.set('etag', 'weak')` weak tag
446 - `app.set('etag', 'strong')` strong etag
447 - `app.set('etag', false)` turn off
448 - `app.set('etag', true)` standard etag
449 * mark `res.send` ETag as weak and reduce collisions
450 * update accepts to 1.0.2
451 - Fix interpretation when header not in request
452 * update send to 0.4.0
453 - Calculate ETag with md5 for reduced collisions
454 - Ignore stream errors after request ends
455 - deps: debug@0.8.1
456 * update serve-static to 1.2.0
457 - Calculate ETag with md5 for reduced collisions
458 - Ignore stream errors after request ends
459 - deps: send@0.4.0
460
4614.3.2 / 2014-05-28
462==================
463
464 * fix handling of errors from `router.param()` callbacks
465
4664.3.1 / 2014-05-23
467==================
468
469 * revert "fix behavior of multiple `app.VERB` for the same path"
470 - this caused a regression in the order of route execution
471
4724.3.0 / 2014-05-21
473==================
474
475 * add `req.baseUrl` to access the path stripped from `req.url` in routes
476 * fix behavior of multiple `app.VERB` for the same path
477 * fix issue routing requests among sub routers
478 * invoke `router.param()` only when necessary instead of every match
479 * proper proxy trust with `app.set('trust proxy', trust)`
480 - `app.set('trust proxy', 1)` trust first hop
481 - `app.set('trust proxy', 'loopback')` trust loopback addresses
482 - `app.set('trust proxy', '10.0.0.1')` trust single IP
483 - `app.set('trust proxy', '10.0.0.1/16')` trust subnet
484 - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list
485 - `app.set('trust proxy', false)` turn off
486 - `app.set('trust proxy', true)` trust everything
487 * set proper `charset` in `Content-Type` for `res.send`
488 * update type-is to 1.2.0
489 - support suffix matching
490
4914.2.0 / 2014-05-11
492==================
493
494 * deprecate `app.del()` -- use `app.delete()` instead
495 * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead
496 - the edge-case `res.json(status, num)` requires `res.status(status).json(num)`
497 * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead
498 - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)`
499 * fix `req.next` when inside router instance
500 * include `ETag` header in `HEAD` requests
501 * keep previous `Content-Type` for `res.jsonp`
502 * support PURGE method
503 - add `app.purge`
504 - add `router.purge`
505 - include PURGE in `app.all`
506 * update debug to 0.8.0
507 - add `enable()` method
508 - change from stderr to stdout
509 * update methods to 1.0.0
510 - add PURGE
511
5124.1.2 / 2014-05-08
513==================
514
515 * fix `req.host` for IPv6 literals
516 * fix `res.jsonp` error if callback param is object
517
5184.1.1 / 2014-04-27
519==================
520
521 * fix package.json to reflect supported node version
522
5234.1.0 / 2014-04-24
524==================
525
526 * pass options from `res.sendfile` to `send`
527 * preserve casing of headers in `res.header` and `res.set`
528 * support unicode file names in `res.attachment` and `res.download`
529 * update accepts to 1.0.1
530 - deps: negotiator@0.4.0
531 * update cookie to 0.1.2
532 - Fix for maxAge == 0
533 - made compat with expires field
534 * update send to 0.3.0
535 - Accept API options in options object
536 - Coerce option types
537 - Control whether to generate etags
538 - Default directory access to 403 when index disabled
539 - Fix sending files with dots without root set
540 - Include file path in etag
541 - Make "Can't set headers after they are sent." catchable
542 - Send full entity-body for multi range requests
543 - Set etags to "weak"
544 - Support "If-Range" header
545 - Support multiple index paths
546 - deps: mime@1.2.11
547 * update serve-static to 1.1.0
548 - Accept options directly to `send` module
549 - Resolve relative paths at middleware setup
550 - Use parseurl to parse the URL from request
551 - deps: send@0.3.0
552 * update type-is to 1.1.0
553 - add non-array values support
554 - add `multipart` as a shorthand
555
5564.0.0 / 2014-04-09
557==================
558
559 * remove:
560 - node 0.8 support
561 - connect and connect's patches except for charset handling
562 - express(1) - moved to [express-generator](https://github.com/expressjs/generator)
563 - `express.createServer()` - it has been deprecated for a long time. Use `express()`
564 - `app.configure` - use logic in your own app code
565 - `app.router` - is removed
566 - `req.auth` - use `basic-auth` instead
567 - `req.accepted*` - use `req.accepts*()` instead
568 - `res.location` - relative URL resolution is removed
569 - `res.charset` - include the charset in the content type when using `res.set()`
570 - all bundled middleware except `static`
571 * change:
572 - `app.route` -> `app.mountpath` when mounting an express app in another express app
573 - `json spaces` no longer enabled by default in development
574 - `req.accepts*` -> `req.accepts*s` - i.e. `req.acceptsEncoding` -> `req.acceptsEncodings`
575 - `req.params` is now an object instead of an array
576 - `res.locals` is no longer a function. It is a plain js object. Treat it as such.
577 - `res.headerSent` -> `res.headersSent` to match node.js ServerResponse object
578 * refactor:
579 - `req.accepts*` with [accepts](https://github.com/expressjs/accepts)
580 - `req.is` with [type-is](https://github.com/expressjs/type-is)
581 - [path-to-regexp](https://github.com/component/path-to-regexp)
582 * add:
583 - `app.router()` - returns the app Router instance
584 - `app.route()` - Proxy to the app's `Router#route()` method to create a new route
585 - Router & Route - public API
586
5873.18.3 / 2014-11-09
588===================
589
590 * deps: connect@2.27.3
591 - Correctly invoke async callback asynchronously
592 - deps: csurf@~1.6.3
593
5943.18.2 / 2014-10-28
595===================
596
597 * deps: connect@2.27.2
598 - Fix handling of URLs containing `://` in the path
599 - deps: body-parser@~1.9.2
600 - deps: qs@2.3.2
601
6023.18.1 / 2014-10-22
603===================
604
605 * Fix internal `utils.merge` deprecation warnings
606 * deps: connect@2.27.1
607 - deps: body-parser@~1.9.1
608 - deps: express-session@~1.9.1
609 - deps: finalhandler@0.3.2
610 - deps: morgan@~1.4.1
611 - deps: qs@2.3.0
612 - deps: serve-static@~1.7.1
613 * deps: send@0.10.1
614 - deps: on-finished@~2.1.1
615
6163.18.0 / 2014-10-17
617===================
618
619 * Use `content-disposition` module for `res.attachment`/`res.download`
620 - Sends standards-compliant `Content-Disposition` header
621 - Full Unicode support
622 * Use `etag` module to generate `ETag` headers
623 * deps: connect@2.27.0
624 - Use `http-errors` module for creating errors
625 - Use `utils-merge` module for merging objects
626 - deps: body-parser@~1.9.0
627 - deps: compression@~1.2.0
628 - deps: connect-timeout@~1.4.0
629 - deps: debug@~2.1.0
630 - deps: depd@~1.0.0
631 - deps: express-session@~1.9.0
632 - deps: finalhandler@0.3.1
633 - deps: method-override@~2.3.0
634 - deps: morgan@~1.4.0
635 - deps: response-time@~2.2.0
636 - deps: serve-favicon@~2.1.6
637 - deps: serve-index@~1.5.0
638 - deps: serve-static@~1.7.0
639 * deps: debug@~2.1.0
640 - Implement `DEBUG_FD` env variable support
641 * deps: depd@~1.0.0
642 * deps: send@0.10.0
643 - deps: debug@~2.1.0
644 - deps: depd@~1.0.0
645 - deps: etag@~1.5.0
646
6473.17.8 / 2014-10-15
648===================
649
650 * deps: connect@2.26.6
651 - deps: compression@~1.1.2
652 - deps: csurf@~1.6.2
653 - deps: errorhandler@~1.2.2
654
6553.17.7 / 2014-10-08
656===================
657
658 * deps: connect@2.26.5
659 - Fix accepting non-object arguments to `logger`
660 - deps: serve-static@~1.6.4
661
6623.17.6 / 2014-10-02
663===================
664
665 * deps: connect@2.26.4
666 - deps: morgan@~1.3.2
667 - deps: type-is@~1.5.2
668
6693.17.5 / 2014-09-24
670===================
671
672 * deps: connect@2.26.3
673 - deps: body-parser@~1.8.4
674 - deps: serve-favicon@~2.1.5
675 - deps: serve-static@~1.6.3
676 * deps: proxy-addr@~1.0.3
677 - Use `forwarded` npm module
678 * deps: send@0.9.3
679 - deps: etag@~1.4.0
680
6813.17.4 / 2014-09-19
682===================
683
684 * deps: connect@2.26.2
685 - deps: body-parser@~1.8.3
686 - deps: qs@2.2.4
687
6883.17.3 / 2014-09-18
689===================
690
691 * deps: proxy-addr@~1.0.2
692 - Fix a global leak when multiple subnets are trusted
693 - deps: ipaddr.js@0.1.3
694
6953.17.2 / 2014-09-15
696===================
697
698 * Use `crc` instead of `buffer-crc32` for speed
699 * deps: connect@2.26.1
700 - deps: body-parser@~1.8.2
701 - deps: depd@0.4.5
702 - deps: express-session@~1.8.2
703 - deps: morgan@~1.3.1
704 - deps: serve-favicon@~2.1.3
705 - deps: serve-static@~1.6.2
706 * deps: depd@0.4.5
707 * deps: send@0.9.2
708 - deps: depd@0.4.5
709 - deps: etag@~1.3.1
710 - deps: range-parser@~1.0.2
711
7123.17.1 / 2014-09-08
713===================
714
715 * Fix error in `req.subdomains` on empty host
716
7173.17.0 / 2014-09-08
718===================
719
720 * Support `X-Forwarded-Host` in `req.subdomains`
721 * Support IP address host in `req.subdomains`
722 * deps: connect@2.26.0
723 - deps: body-parser@~1.8.1
724 - deps: compression@~1.1.0
725 - deps: connect-timeout@~1.3.0
726 - deps: cookie-parser@~1.3.3
727 - deps: cookie-signature@1.0.5
728 - deps: csurf@~1.6.1
729 - deps: debug@~2.0.0
730 - deps: errorhandler@~1.2.0
731 - deps: express-session@~1.8.1
732 - deps: finalhandler@0.2.0
733 - deps: fresh@0.2.4
734 - deps: media-typer@0.3.0
735 - deps: method-override@~2.2.0
736 - deps: morgan@~1.3.0
737 - deps: qs@2.2.3
738 - deps: serve-favicon@~2.1.3
739 - deps: serve-index@~1.2.1
740 - deps: serve-static@~1.6.1
741 - deps: type-is@~1.5.1
742 - deps: vhost@~3.0.0
743 * deps: cookie-signature@1.0.5
744 * deps: debug@~2.0.0
745 * deps: fresh@0.2.4
746 * deps: media-typer@0.3.0
747 - Throw error when parameter format invalid on parse
748 * deps: range-parser@~1.0.2
749 * deps: send@0.9.1
750 - Add `lastModified` option
751 - Use `etag` to generate `ETag` header
752 - deps: debug@~2.0.0
753 - deps: fresh@0.2.4
754 * deps: vary@~1.0.0
755 - Accept valid `Vary` header string as `field`
756
7573.16.10 / 2014-09-04
758====================
759
760 * deps: connect@2.25.10
761 - deps: serve-static@~1.5.4
762 * deps: send@0.8.5
763 - Fix a path traversal issue when using `root`
764 - Fix malicious path detection for empty string path
765
7663.16.9 / 2014-08-29
767===================
768
769 * deps: connect@2.25.9
770 - deps: body-parser@~1.6.7
771 - deps: qs@2.2.2
772
7733.16.8 / 2014-08-27
774===================
775
776 * deps: connect@2.25.8
777 - deps: body-parser@~1.6.6
778 - deps: csurf@~1.4.1
779 - deps: qs@2.2.0
780
7813.16.7 / 2014-08-18
782===================
783
784 * deps: connect@2.25.7
785 - deps: body-parser@~1.6.5
786 - deps: express-session@~1.7.6
787 - deps: morgan@~1.2.3
788 - deps: serve-static@~1.5.3
789 * deps: send@0.8.3
790 - deps: destroy@1.0.3
791 - deps: on-finished@2.1.0
792
7933.16.6 / 2014-08-14
794===================
795
796 * deps: connect@2.25.6
797 - deps: body-parser@~1.6.4
798 - deps: qs@1.2.2
799 - deps: serve-static@~1.5.2
800 * deps: send@0.8.2
801 - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream`
802
8033.16.5 / 2014-08-11
804===================
805
806 * deps: connect@2.25.5
807 - Fix backwards compatibility in `logger`
808
8093.16.4 / 2014-08-10
810===================
811
812 * Fix original URL parsing in `res.location`
813 * deps: connect@2.25.4
814 - Fix `query` middleware breaking with argument
815 - deps: body-parser@~1.6.3
816 - deps: compression@~1.0.11
817 - deps: connect-timeout@~1.2.2
818 - deps: express-session@~1.7.5
819 - deps: method-override@~2.1.3
820 - deps: on-headers@~1.0.0
821 - deps: parseurl@~1.3.0
822 - deps: qs@1.2.1
823 - deps: response-time@~2.0.1
824 - deps: serve-index@~1.1.6
825 - deps: serve-static@~1.5.1
826 * deps: parseurl@~1.3.0
827
8283.16.3 / 2014-08-07
829===================
830
831 * deps: connect@2.25.3
832 - deps: multiparty@3.3.2
833
8343.16.2 / 2014-08-07
835===================
836
837 * deps: connect@2.25.2
838 - deps: body-parser@~1.6.2
839 - deps: qs@1.2.0
840
8413.16.1 / 2014-08-06
842===================
843
844 * deps: connect@2.25.1
845 - deps: body-parser@~1.6.1
846 - deps: qs@1.1.0
847
8483.16.0 / 2014-08-05
849===================
850
851 * deps: connect@2.25.0
852 - deps: body-parser@~1.6.0
853 - deps: compression@~1.0.10
854 - deps: csurf@~1.4.0
855 - deps: express-session@~1.7.4
856 - deps: qs@1.0.2
857 - deps: serve-static@~1.5.0
858 * deps: send@0.8.1
859 - Add `extensions` option
860
8613.15.3 / 2014-08-04
862===================
863
864 * fix `res.sendfile` regression for serving directory index files
865 * deps: connect@2.24.3
866 - deps: serve-index@~1.1.5
867 - deps: serve-static@~1.4.4
868 * deps: send@0.7.4
869 - Fix incorrect 403 on Windows and Node.js 0.11
870 - Fix serving index files without root dir
871
8723.15.2 / 2014-07-27
873===================
874
875 * deps: connect@2.24.2
876 - deps: body-parser@~1.5.2
877 - deps: depd@0.4.4
878 - deps: express-session@~1.7.2
879 - deps: morgan@~1.2.2
880 - deps: serve-static@~1.4.2
881 * deps: depd@0.4.4
882 - Work-around v8 generating empty stack traces
883 * deps: send@0.7.2
884 - deps: depd@0.4.4
885
8863.15.1 / 2014-07-26
887===================
888
889 * deps: connect@2.24.1
890 - deps: body-parser@~1.5.1
891 - deps: depd@0.4.3
892 - deps: express-session@~1.7.1
893 - deps: morgan@~1.2.1
894 - deps: serve-index@~1.1.4
895 - deps: serve-static@~1.4.1
896 * deps: depd@0.4.3
897 - Fix exception when global `Error.stackTraceLimit` is too low
898 * deps: send@0.7.1
899 - deps: depd@0.4.3
900
9013.15.0 / 2014-07-22
902===================
903
904 * Fix `req.protocol` for proxy-direct connections
905 * Pass options from `res.sendfile` to `send`
906 * deps: connect@2.24.0
907 - deps: body-parser@~1.5.0
908 - deps: compression@~1.0.9
909 - deps: connect-timeout@~1.2.1
910 - deps: debug@1.0.4
911 - deps: depd@0.4.2
912 - deps: express-session@~1.7.0
913 - deps: finalhandler@0.1.0
914 - deps: method-override@~2.1.2
915 - deps: morgan@~1.2.0
916 - deps: multiparty@3.3.1
917 - deps: parseurl@~1.2.0
918 - deps: serve-static@~1.4.0
919 * deps: debug@1.0.4
920 * deps: depd@0.4.2
921 - Add `TRACE_DEPRECATION` environment variable
922 - Remove non-standard grey color from color output
923 - Support `--no-deprecation` argument
924 - Support `--trace-deprecation` argument
925 * deps: parseurl@~1.2.0
926 - Cache URLs based on original value
927 - Remove no-longer-needed URL mis-parse work-around
928 - Simplify the "fast-path" `RegExp`
929 * deps: send@0.7.0
930 - Add `dotfiles` option
931 - Cap `maxAge` value to 1 year
932 - deps: debug@1.0.4
933 - deps: depd@0.4.2
934
9353.14.0 / 2014-07-11
936===================
937
938 * add explicit "Rosetta Flash JSONP abuse" protection
939 - previous versions are not vulnerable; this is just explicit protection
940 * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead
941 * fix `res.send(status, num)` to send `num` as json (not error)
942 * remove unnecessary escaping when `res.jsonp` returns JSON response
943 * deps: basic-auth@1.0.0
944 - support empty password
945 - support empty username
946 * deps: connect@2.23.0
947 - deps: debug@1.0.3
948 - deps: express-session@~1.6.4
949 - deps: method-override@~2.1.0
950 - deps: parseurl@~1.1.3
951 - deps: serve-static@~1.3.1
952 * deps: debug@1.0.3
953 - Add support for multiple wildcards in namespaces
954 * deps: methods@1.1.0
955 - add `CONNECT`
956 * deps: parseurl@~1.1.3
957 - faster parsing of href-only URLs
958
9593.13.0 / 2014-07-03
960===================
961
962 * add deprecation message to `app.configure`
963 * add deprecation message to `req.auth`
964 * use `basic-auth` to parse `Authorization` header
965 * deps: connect@2.22.0
966 - deps: csurf@~1.3.0
967 - deps: express-session@~1.6.1
968 - deps: multiparty@3.3.0
969 - deps: serve-static@~1.3.0
970 * deps: send@0.5.0
971 - Accept string for `maxage` (converted by `ms`)
972 - Include link in default redirect response
973
9743.12.1 / 2014-06-26
975===================
976
977 * deps: connect@2.21.1
978 - deps: cookie-parser@1.3.2
979 - deps: cookie-signature@1.0.4
980 - deps: express-session@~1.5.2
981 - deps: type-is@~1.3.2
982 * deps: cookie-signature@1.0.4
983 - fix for timing attacks
984
9853.12.0 / 2014-06-21
986===================
987
988 * use `media-typer` to alter content-type charset
989 * deps: connect@2.21.0
990 - deprecate `connect(middleware)` -- use `app.use(middleware)` instead
991 - deprecate `connect.createServer()` -- use `connect()` instead
992 - fix `res.setHeader()` patch to work with with get -> append -> set pattern
993 - deps: compression@~1.0.8
994 - deps: errorhandler@~1.1.1
995 - deps: express-session@~1.5.0
996 - deps: serve-index@~1.1.3
997
9983.11.0 / 2014-06-19
999===================
1000
1001 * deprecate things with `depd` module
1002 * deps: buffer-crc32@0.2.3
1003 * deps: connect@2.20.2
1004 - deprecate `verify` option to `json` -- use `body-parser` npm module instead
1005 - deprecate `verify` option to `urlencoded` -- use `body-parser` npm module instead
1006 - deprecate things with `depd` module
1007 - use `finalhandler` for final response handling
1008 - use `media-typer` to parse `content-type` for charset
1009 - deps: body-parser@1.4.3
1010 - deps: connect-timeout@1.1.1
1011 - deps: cookie-parser@1.3.1
1012 - deps: csurf@1.2.2
1013 - deps: errorhandler@1.1.0
1014 - deps: express-session@1.4.0
1015 - deps: multiparty@3.2.9
1016 - deps: serve-index@1.1.2
1017 - deps: type-is@1.3.1
1018 - deps: vhost@2.0.0
1019
10203.10.5 / 2014-06-11
1021===================
1022
1023 * deps: connect@2.19.6
1024 - deps: body-parser@1.3.1
1025 - deps: compression@1.0.7
1026 - deps: debug@1.0.2
1027 - deps: serve-index@1.1.1
1028 - deps: serve-static@1.2.3
1029 * deps: debug@1.0.2
1030 * deps: send@0.4.3
1031 - Do not throw un-catchable error on file open race condition
1032 - Use `escape-html` for HTML escaping
1033 - deps: debug@1.0.2
1034 - deps: finished@1.2.2
1035 - deps: fresh@0.2.2
1036
10373.10.4 / 2014-06-09
1038===================
1039
1040 * deps: connect@2.19.5
1041 - fix "event emitter leak" warnings
1042 - deps: csurf@1.2.1
1043 - deps: debug@1.0.1
1044 - deps: serve-static@1.2.2
1045 - deps: type-is@1.2.1
1046 * deps: debug@1.0.1
1047 * deps: send@0.4.2
1048 - fix "event emitter leak" warnings
1049 - deps: finished@1.2.1
1050 - deps: debug@1.0.1
1051
10523.10.3 / 2014-06-05
1053===================
1054
1055 * use `vary` module for `res.vary`
1056 * deps: connect@2.19.4
1057 - deps: errorhandler@1.0.2
1058 - deps: method-override@2.0.2
1059 - deps: serve-favicon@2.0.1
1060 * deps: debug@1.0.0
1061
10623.10.2 / 2014-06-03
1063===================
1064
1065 * deps: connect@2.19.3
1066 - deps: compression@1.0.6
1067
10683.10.1 / 2014-06-03
1069===================
1070
1071 * deps: connect@2.19.2
1072 - deps: compression@1.0.4
1073 * deps: proxy-addr@1.0.1
1074
10753.10.0 / 2014-06-02
1076===================
1077
1078 * deps: connect@2.19.1
1079 - deprecate `methodOverride()` -- use `method-override` npm module instead
1080 - deps: body-parser@1.3.0
1081 - deps: method-override@2.0.1
1082 - deps: multiparty@3.2.8
1083 - deps: response-time@2.0.0
1084 - deps: serve-static@1.2.1
1085 * deps: methods@1.0.1
1086 * deps: send@0.4.1
1087 - Send `max-age` in `Cache-Control` in correct format
1088
10893.9.0 / 2014-05-30
1090==================
1091
1092 * custom etag control with `app.set('etag', val)`
1093 - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation
1094 - `app.set('etag', 'weak')` weak tag
1095 - `app.set('etag', 'strong')` strong etag
1096 - `app.set('etag', false)` turn off
1097 - `app.set('etag', true)` standard etag
1098 * Include ETag in HEAD requests
1099 * mark `res.send` ETag as weak and reduce collisions
1100 * update connect to 2.18.0
1101 - deps: compression@1.0.3
1102 - deps: serve-index@1.1.0
1103 - deps: serve-static@1.2.0
1104 * update send to 0.4.0
1105 - Calculate ETag with md5 for reduced collisions
1106 - Ignore stream errors after request ends
1107 - deps: debug@0.8.1
1108
11093.8.1 / 2014-05-27
1110==================
1111
1112 * update connect to 2.17.3
1113 - deps: body-parser@1.2.2
1114 - deps: express-session@1.2.1
1115 - deps: method-override@1.0.2
1116
11173.8.0 / 2014-05-21
1118==================
1119
1120 * keep previous `Content-Type` for `res.jsonp`
1121 * set proper `charset` in `Content-Type` for `res.send`
1122 * update connect to 2.17.1
1123 - fix `res.charset` appending charset when `content-type` has one
1124 - deps: express-session@1.2.0
1125 - deps: morgan@1.1.1
1126 - deps: serve-index@1.0.3
1127
11283.7.0 / 2014-05-18
1129==================
1130
1131 * proper proxy trust with `app.set('trust proxy', trust)`
1132 - `app.set('trust proxy', 1)` trust first hop
1133 - `app.set('trust proxy', 'loopback')` trust loopback addresses
1134 - `app.set('trust proxy', '10.0.0.1')` trust single IP
1135 - `app.set('trust proxy', '10.0.0.1/16')` trust subnet
1136 - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list
1137 - `app.set('trust proxy', false)` turn off
1138 - `app.set('trust proxy', true)` trust everything
1139 * update connect to 2.16.2
1140 - deprecate `res.headerSent` -- use `res.headersSent`
1141 - deprecate `res.on("header")` -- use on-headers module instead
1142 - fix edge-case in `res.appendHeader` that would append in wrong order
1143 - json: use body-parser
1144 - urlencoded: use body-parser
1145 - dep: bytes@1.0.0
1146 - dep: cookie-parser@1.1.0
1147 - dep: csurf@1.2.0
1148 - dep: express-session@1.1.0
1149 - dep: method-override@1.0.1
1150
11513.6.0 / 2014-05-09
1152==================
1153
1154 * deprecate `app.del()` -- use `app.delete()` instead
1155 * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead
1156 - the edge-case `res.json(status, num)` requires `res.status(status).json(num)`
1157 * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead
1158 - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)`
1159 * support PURGE method
1160 - add `app.purge`
1161 - add `router.purge`
1162 - include PURGE in `app.all`
1163 * update connect to 2.15.0
1164 * Add `res.appendHeader`
1165 * Call error stack even when response has been sent
1166 * Patch `res.headerSent` to return Boolean
1167 * Patch `res.headersSent` for node.js 0.8
1168 * Prevent default 404 handler after response sent
1169 * dep: compression@1.0.2
1170 * dep: connect-timeout@1.1.0
1171 * dep: debug@^0.8.0
1172 * dep: errorhandler@1.0.1
1173 * dep: express-session@1.0.4
1174 * dep: morgan@1.0.1
1175 * dep: serve-favicon@2.0.0
1176 * dep: serve-index@1.0.2
1177 * update debug to 0.8.0
1178 * add `enable()` method
1179 * change from stderr to stdout
1180 * update methods to 1.0.0
1181 - add PURGE
1182 * update mkdirp to 0.5.0
1183
11843.5.3 / 2014-05-08
1185==================
1186
1187 * fix `req.host` for IPv6 literals
1188 * fix `res.jsonp` error if callback param is object
1189
11903.5.2 / 2014-04-24
1191==================
1192
1193 * update connect to 2.14.5
1194 * update cookie to 0.1.2
1195 * update mkdirp to 0.4.0
1196 * update send to 0.3.0
1197
11983.5.1 / 2014-03-25
1199==================
1200
1201 * pin less-middleware in generated app
1202
12033.5.0 / 2014-03-06
1204==================
1205
1206 * bump deps
1207
12083.4.8 / 2014-01-13
1209==================
1210
1211 * prevent incorrect automatic OPTIONS responses #1868 @dpatti
1212 * update binary and examples for jade 1.0 #1876 @yossi, #1877 @reqshark, #1892 @matheusazzi
1213 * throw 400 in case of malformed paths @rlidwka
1214
12153.4.7 / 2013-12-10
1216==================
1217
1218 * update connect
1219
12203.4.6 / 2013-12-01
1221==================
1222
1223 * update connect (raw-body)
1224
12253.4.5 / 2013-11-27
1226==================
1227
1228 * update connect
1229 * res.location: remove leading ./ #1802 @kapouer
1230 * res.redirect: fix `res.redirect('toString') #1829 @michaelficarra
1231 * res.send: always send ETag when content-length > 0
1232 * router: add Router.all() method
1233
12343.4.4 / 2013-10-29
1235==================
1236
1237 * update connect
1238 * update supertest
1239 * update methods
1240 * express(1): replace bodyParser() with urlencoded() and json() #1795 @chirag04
1241
12423.4.3 / 2013-10-23
1243==================
1244
1245 * update connect
1246
12473.4.2 / 2013-10-18
1248==================
1249
1250 * update connect
1251 * downgrade commander
1252
12533.4.1 / 2013-10-15
1254==================
1255
1256 * update connect
1257 * update commander
1258 * jsonp: check if callback is a function
1259 * router: wrap encodeURIComponent in a try/catch #1735 (@lxe)
1260 * res.format: now includes chraset @1747 (@sorribas)
1261 * res.links: allow multiple calls @1746 (@sorribas)
1262
12633.4.0 / 2013-09-07
1264==================
1265
1266 * add res.vary(). Closes #1682
1267 * update connect
1268
12693.3.8 / 2013-09-02
1270==================
1271
1272 * update connect
1273
12743.3.7 / 2013-08-28
1275==================
1276
1277 * update connect
1278
12793.3.6 / 2013-08-27
1280==================
1281
1282 * Revert "remove charset from json responses. Closes #1631" (causes issues in some clients)
1283 * add: req.accepts take an argument list
1284
12853.3.4 / 2013-07-08
1286==================
1287
1288 * update send and connect
1289
12903.3.3 / 2013-07-04
1291==================
1292
1293 * update connect
1294
12953.3.2 / 2013-07-03
1296==================
1297
1298 * update connect
1299 * update send
1300 * remove .version export
1301
13023.3.1 / 2013-06-27
1303==================
1304
1305 * update connect
1306
13073.3.0 / 2013-06-26
1308==================
1309
1310 * update connect
1311 * add support for multiple X-Forwarded-Proto values. Closes #1646
1312 * change: remove charset from json responses. Closes #1631
1313 * change: return actual booleans from req.accept* functions
1314 * fix jsonp callback array throw
1315
13163.2.6 / 2013-06-02
1317==================
1318
1319 * update connect
1320
13213.2.5 / 2013-05-21
1322==================
1323
1324 * update connect
1325 * update node-cookie
1326 * add: throw a meaningful error when there is no default engine
1327 * change generation of ETags with res.send() to GET requests only. Closes #1619
1328
13293.2.4 / 2013-05-09
1330==================
1331
1332 * fix `req.subdomains` when no Host is present
1333 * fix `req.host` when no Host is present, return undefined
1334
13353.2.3 / 2013-05-07
1336==================
1337
1338 * update connect / qs
1339
13403.2.2 / 2013-05-03
1341==================
1342
1343 * update qs
1344
13453.2.1 / 2013-04-29
1346==================
1347
1348 * add app.VERB() paths array deprecation warning
1349 * update connect
1350 * update qs and remove all ~ semver crap
1351 * fix: accept number as value of Signed Cookie
1352
13533.2.0 / 2013-04-15
1354==================
1355
1356 * add "view" constructor setting to override view behaviour
1357 * add req.acceptsEncoding(name)
1358 * add req.acceptedEncodings
1359 * revert cookie signature change causing session race conditions
1360 * fix sorting of Accept values of the same quality
1361
13623.1.2 / 2013-04-12
1363==================
1364
1365 * add support for custom Accept parameters
1366 * update cookie-signature
1367
13683.1.1 / 2013-04-01
1369==================
1370
1371 * add X-Forwarded-Host support to `req.host`
1372 * fix relative redirects
1373 * update mkdirp
1374 * update buffer-crc32
1375 * remove legacy app.configure() method from app template.
1376
13773.1.0 / 2013-01-25
1378==================
1379
1380 * add support for leading "." in "view engine" setting
1381 * add array support to `res.set()`
1382 * add node 0.8.x to travis.yml
1383 * add "subdomain offset" setting for tweaking `req.subdomains`
1384 * add `res.location(url)` implementing `res.redirect()`-like setting of Location
1385 * use app.get() for x-powered-by setting for inheritance
1386 * fix colons in passwords for `req.auth`
1387
13883.0.6 / 2013-01-04
1389==================
1390
1391 * add http verb methods to Router
1392 * update connect
1393 * fix mangling of the `res.cookie()` options object
1394 * fix jsonp whitespace escape. Closes #1132
1395
13963.0.5 / 2012-12-19
1397==================
1398
1399 * add throwing when a non-function is passed to a route
1400 * fix: explicitly remove Transfer-Encoding header from 204 and 304 responses
1401 * revert "add 'etag' option"
1402
14033.0.4 / 2012-12-05
1404==================
1405
1406 * add 'etag' option to disable `res.send()` Etags
1407 * add escaping of urls in text/plain in `res.redirect()`
1408 for old browsers interpreting as html
1409 * change crc32 module for a more liberal license
1410 * update connect
1411
14123.0.3 / 2012-11-13
1413==================
1414
1415 * update connect
1416 * update cookie module
1417 * fix cookie max-age
1418
14193.0.2 / 2012-11-08
1420==================
1421
1422 * add OPTIONS to cors example. Closes #1398
1423 * fix route chaining regression. Closes #1397
1424
14253.0.1 / 2012-11-01
1426==================
1427
1428 * update connect
1429
14303.0.0 / 2012-10-23
1431==================
1432
1433 * add `make clean`
1434 * add "Basic" check to req.auth
1435 * add `req.auth` test coverage
1436 * add cb && cb(payload) to `res.jsonp()`. Closes #1374
1437 * add backwards compat for `res.redirect()` status. Closes #1336
1438 * add support for `res.json()` to retain previously defined Content-Types. Closes #1349
1439 * update connect
1440 * change `res.redirect()` to utilize a pathname-relative Location again. Closes #1382
1441 * remove non-primitive string support for `res.send()`
1442 * fix view-locals example. Closes #1370
1443 * fix route-separation example
1444
14453.0.0rc5 / 2012-09-18
1446==================
1447
1448 * update connect
1449 * add redis search example
1450 * add static-files example
1451 * add "x-powered-by" setting (`app.disable('x-powered-by')`)
1452 * add "application/octet-stream" redirect Accept test case. Closes #1317
1453
14543.0.0rc4 / 2012-08-30
1455==================
1456
1457 * add `res.jsonp()`. Closes #1307
1458 * add "verbose errors" option to error-pages example
1459 * add another route example to express(1) so people are not so confused
1460 * add redis online user activity tracking example
1461 * update connect dep
1462 * fix etag quoting. Closes #1310
1463 * fix error-pages 404 status
1464 * fix jsonp callback char restrictions
1465 * remove old OPTIONS default response
1466
14673.0.0rc3 / 2012-08-13
1468==================
1469
1470 * update connect dep
1471 * fix signed cookies to work with `connect.cookieParser()` ("s:" prefix was missing) [tnydwrds]
1472 * fix `res.render()` clobbering of "locals"
1473
14743.0.0rc2 / 2012-08-03
1475==================
1476
1477 * add CORS example
1478 * update connect dep
1479 * deprecate `.createServer()` & remove old stale examples
1480 * fix: escape `res.redirect()` link
1481 * fix vhost example
1482
14833.0.0rc1 / 2012-07-24
1484==================
1485
1486 * add more examples to view-locals
1487 * add scheme-relative redirects (`res.redirect("//foo.com")`) support
1488 * update cookie dep
1489 * update connect dep
1490 * update send dep
1491 * fix `express(1)` -h flag, use -H for hogan. Closes #1245
1492 * fix `res.sendfile()` socket error handling regression
1493
14943.0.0beta7 / 2012-07-16
1495==================
1496
1497 * update connect dep for `send()` root normalization regression
1498
14993.0.0beta6 / 2012-07-13
1500==================
1501
1502 * add `err.view` property for view errors. Closes #1226
1503 * add "jsonp callback name" setting
1504 * add support for "/foo/:bar*" non-greedy matches
1505 * change `res.sendfile()` to use `send()` module
1506 * change `res.send` to use "response-send" module
1507 * remove `app.locals.use` and `res.locals.use`, use regular middleware
1508
15093.0.0beta5 / 2012-07-03
1510==================
1511
1512 * add "make check" support
1513 * add route-map example
1514 * add `res.json(obj, status)` support back for BC
1515 * add "methods" dep, remove internal methods module
1516 * update connect dep
1517 * update auth example to utilize cores pbkdf2
1518 * updated tests to use "supertest"
1519
15203.0.0beta4 / 2012-06-25
1521==================
1522
1523 * Added `req.auth`
1524 * Added `req.range(size)`
1525 * Added `res.links(obj)`
1526 * Added `res.send(body, status)` support back for backwards compat
1527 * Added `.default()` support to `res.format()`
1528 * Added 2xx / 304 check to `req.fresh`
1529 * Revert "Added + support to the router"
1530 * Fixed `res.send()` freshness check, respect res.statusCode
1531
15323.0.0beta3 / 2012-06-15
1533==================
1534
1535 * Added hogan `--hjs` to express(1) [nullfirm]
1536 * Added another example to content-negotiation
1537 * Added `fresh` dep
1538 * Changed: `res.send()` always checks freshness
1539 * Fixed: expose connects mime module. Cloases #1165
1540
15413.0.0beta2 / 2012-06-06
1542==================
1543
1544 * Added `+` support to the router
1545 * Added `req.host`
1546 * Changed `req.param()` to check route first
1547 * Update connect dep
1548
15493.0.0beta1 / 2012-06-01
1550==================
1551
1552 * Added `res.format()` callback to override default 406 behaviour
1553 * Fixed `res.redirect()` 406. Closes #1154
1554
15553.0.0alpha5 / 2012-05-30
1556==================
1557
1558 * Added `req.ip`
1559 * Added `{ signed: true }` option to `res.cookie()`
1560 * Removed `res.signedCookie()`
1561 * Changed: dont reverse `req.ips`
1562 * Fixed "trust proxy" setting check for `req.ips`
1563
15643.0.0alpha4 / 2012-05-09
1565==================
1566
1567 * Added: allow `[]` in jsonp callback. Closes #1128
1568 * Added `PORT` env var support in generated template. Closes #1118 [benatkin]
1569 * Updated: connect 2.2.2
1570
15713.0.0alpha3 / 2012-05-04
1572==================
1573
1574 * Added public `app.routes`. Closes #887
1575 * Added _view-locals_ example
1576 * Added _mvc_ example
1577 * Added `res.locals.use()`. Closes #1120
1578 * Added conditional-GET support to `res.send()`
1579 * Added: coerce `res.set()` values to strings
1580 * Changed: moved `static()` in generated apps below router
1581 * Changed: `res.send()` only set ETag when not previously set
1582 * Changed connect 2.2.1 dep
1583 * Changed: `make test` now runs unit / acceptance tests
1584 * Fixed req/res proto inheritance
1585
15863.0.0alpha2 / 2012-04-26
1587==================
1588
1589 * Added `make benchmark` back
1590 * Added `res.send()` support for `String` objects
1591 * Added client-side data exposing example
1592 * Added `res.header()` and `req.header()` aliases for BC
1593 * Added `express.createServer()` for BC
1594 * Perf: memoize parsed urls
1595 * Perf: connect 2.2.0 dep
1596 * Changed: make `expressInit()` middleware self-aware
1597 * Fixed: use app.get() for all core settings
1598 * Fixed redis session example
1599 * Fixed session example. Closes #1105
1600 * Fixed generated express dep. Closes #1078
1601
16023.0.0alpha1 / 2012-04-15
1603==================
1604
1605 * Added `app.locals.use(callback)`
1606 * Added `app.locals` object
1607 * Added `app.locals(obj)`
1608 * Added `res.locals` object
1609 * Added `res.locals(obj)`
1610 * Added `res.format()` for content-negotiation
1611 * Added `app.engine()`
1612 * Added `res.cookie()` JSON cookie support
1613 * Added "trust proxy" setting
1614 * Added `req.subdomains`
1615 * Added `req.protocol`
1616 * Added `req.secure`
1617 * Added `req.path`
1618 * Added `req.ips`
1619 * Added `req.fresh`
1620 * Added `req.stale`
1621 * Added comma-delmited / array support for `req.accepts()`
1622 * Added debug instrumentation
1623 * Added `res.set(obj)`
1624 * Added `res.set(field, value)`
1625 * Added `res.get(field)`
1626 * Added `app.get(setting)`. Closes #842
1627 * Added `req.acceptsLanguage()`
1628 * Added `req.acceptsCharset()`
1629 * Added `req.accepted`
1630 * Added `req.acceptedLanguages`
1631 * Added `req.acceptedCharsets`
1632 * Added "json replacer" setting
1633 * Added "json spaces" setting
1634 * Added X-Forwarded-Proto support to `res.redirect()`. Closes #92
1635 * Added `--less` support to express(1)
1636 * Added `express.response` prototype
1637 * Added `express.request` prototype
1638 * Added `express.application` prototype
1639 * Added `app.path()`
1640 * Added `app.render()`
1641 * Added `res.type()` to replace `res.contentType()`
1642 * Changed: `res.redirect()` to add relative support
1643 * Changed: enable "jsonp callback" by default
1644 * Changed: renamed "case sensitive routes" to "case sensitive routing"
1645 * Rewrite of all tests with mocha
1646 * Removed "root" setting
1647 * Removed `res.redirect('home')` support
1648 * Removed `req.notify()`
1649 * Removed `app.register()`
1650 * Removed `app.redirect()`
1651 * Removed `app.is()`
1652 * Removed `app.helpers()`
1653 * Removed `app.dynamicHelpers()`
1654 * Fixed `res.sendfile()` with non-GET. Closes #723
1655 * Fixed express(1) public dir for windows. Closes #866
1656
16572.5.9/ 2012-04-02
1658==================
1659
1660 * Added support for PURGE request method [pbuyle]
1661 * Fixed `express(1)` generated app `app.address()` before `listening` [mmalecki]
1662
16632.5.8 / 2012-02-08
1664==================
1665
1666 * Update mkdirp dep. Closes #991
1667
16682.5.7 / 2012-02-06
1669==================
1670
1671 * Fixed `app.all` duplicate DELETE requests [mscdex]
1672
16732.5.6 / 2012-01-13
1674==================
1675
1676 * Updated hamljs dev dep. Closes #953
1677
16782.5.5 / 2012-01-08
1679==================
1680
1681 * Fixed: set `filename` on cached templates [matthewleon]
1682
16832.5.4 / 2012-01-02
1684==================
1685
1686 * Fixed `express(1)` eol on 0.4.x. Closes #947
1687
16882.5.3 / 2011-12-30
1689==================
1690
1691 * Fixed `req.is()` when a charset is present
1692
16932.5.2 / 2011-12-10
1694==================
1695
1696 * Fixed: express(1) LF -> CRLF for windows
1697
16982.5.1 / 2011-11-17
1699==================
1700
1701 * Changed: updated connect to 1.8.x
1702 * Removed sass.js support from express(1)
1703
17042.5.0 / 2011-10-24
1705==================
1706
1707 * Added ./routes dir for generated app by default
1708 * Added npm install reminder to express(1) app gen
1709 * Added 0.5.x support
1710 * Removed `make test-cov` since it wont work with node 0.5.x
1711 * Fixed express(1) public dir for windows. Closes #866
1712
17132.4.7 / 2011-10-05
1714==================
1715
1716 * Added mkdirp to express(1). Closes #795
1717 * Added simple _json-config_ example
1718 * Added shorthand for the parsed request's pathname via `req.path`
1719 * Changed connect dep to 1.7.x to fix npm issue...
1720 * Fixed `res.redirect()` __HEAD__ support. [reported by xerox]
1721 * Fixed `req.flash()`, only escape args
1722 * Fixed absolute path checking on windows. Closes #829 [reported by andrewpmckenzie]
1723
17242.4.6 / 2011-08-22
1725==================
1726
1727 * Fixed multiple param callback regression. Closes #824 [reported by TroyGoode]
1728
17292.4.5 / 2011-08-19
1730==================
1731
1732 * Added support for routes to handle errors. Closes #809
1733 * Added `app.routes.all()`. Closes #803
1734 * Added "basepath" setting to work in conjunction with reverse proxies etc.
1735 * Refactored `Route` to use a single array of callbacks
1736 * Added support for multiple callbacks for `app.param()`. Closes #801
1737Closes #805
1738 * Changed: removed .call(self) for route callbacks
1739 * Dependency: `qs >= 0.3.1`
1740 * Fixed `res.redirect()` on windows due to `join()` usage. Closes #808
1741
17422.4.4 / 2011-08-05
1743==================
1744
1745 * Fixed `res.header()` intention of a set, even when `undefined`
1746 * Fixed `*`, value no longer required
1747 * Fixed `res.send(204)` support. Closes #771
1748
17492.4.3 / 2011-07-14
1750==================
1751
1752 * Added docs for `status` option special-case. Closes #739
1753 * Fixed `options.filename`, exposing the view path to template engines
1754
17552.4.2. / 2011-07-06
1756==================
1757
1758 * Revert "removed jsonp stripping" for XSS
1759
17602.4.1 / 2011-07-06
1761==================
1762
1763 * Added `res.json()` JSONP support. Closes #737
1764 * Added _extending-templates_ example. Closes #730
1765 * Added "strict routing" setting for trailing slashes
1766 * Added support for multiple envs in `app.configure()` calls. Closes #735
1767 * Changed: `res.send()` using `res.json()`
1768 * Changed: when cookie `path === null` don't default it
1769 * Changed; default cookie path to "home" setting. Closes #731
1770 * Removed _pids/logs_ creation from express(1)
1771
17722.4.0 / 2011-06-28
1773==================
1774
1775 * Added chainable `res.status(code)`
1776 * Added `res.json()`, an explicit version of `res.send(obj)`
1777 * Added simple web-service example
1778
17792.3.12 / 2011-06-22
1780==================
1781
1782 * \#express is now on freenode! come join!
1783 * Added `req.get(field, param)`
1784 * Added links to Japanese documentation, thanks @hideyukisaito!
1785 * Added; the `express(1)` generated app outputs the env
1786 * Added `content-negotiation` example
1787 * Dependency: connect >= 1.5.1 < 2.0.0
1788 * Fixed view layout bug. Closes #720
1789 * Fixed; ignore body on 304. Closes #701
1790
17912.3.11 / 2011-06-04
1792==================
1793
1794 * Added `npm test`
1795 * Removed generation of dummy test file from `express(1)`
1796 * Fixed; `express(1)` adds express as a dep
1797 * Fixed; prune on `prepublish`
1798
17992.3.10 / 2011-05-27
1800==================
1801
1802 * Added `req.route`, exposing the current route
1803 * Added _package.json_ generation support to `express(1)`
1804 * Fixed call to `app.param()` function for optional params. Closes #682
1805
18062.3.9 / 2011-05-25
1807==================
1808
1809 * Fixed bug-ish with `../' in `res.partial()` calls
1810
18112.3.8 / 2011-05-24
1812==================
1813
1814 * Fixed `app.options()`
1815
18162.3.7 / 2011-05-23
1817==================
1818
1819 * Added route `Collection`, ex: `app.get('/user/:id').remove();`
1820 * Added support for `app.param(fn)` to define param logic
1821 * Removed `app.param()` support for callback with return value
1822 * Removed module.parent check from express(1) generated app. Closes #670
1823 * Refactored router. Closes #639
1824
18252.3.6 / 2011-05-20
1826==================
1827
1828 * Changed; using devDependencies instead of git submodules
1829 * Fixed redis session example
1830 * Fixed markdown example
1831 * Fixed view caching, should not be enabled in development
1832
18332.3.5 / 2011-05-20
1834==================
1835
1836 * Added export `.view` as alias for `.View`
1837
18382.3.4 / 2011-05-08
1839==================
1840
1841 * Added `./examples/say`
1842 * Fixed `res.sendfile()` bug preventing the transfer of files with spaces
1843
18442.3.3 / 2011-05-03
1845==================
1846
1847 * Added "case sensitive routes" option.
1848 * Changed; split methods supported per rfc [slaskis]
1849 * Fixed route-specific middleware when using the same callback function several times
1850
18512.3.2 / 2011-04-27
1852==================
1853
1854 * Fixed view hints
1855
18562.3.1 / 2011-04-26
1857==================
1858
1859 * Added `app.match()` as `app.match.all()`
1860 * Added `app.lookup()` as `app.lookup.all()`
1861 * Added `app.remove()` for `app.remove.all()`
1862 * Added `app.remove.VERB()`
1863 * Fixed template caching collision issue. Closes #644
1864 * Moved router over from connect and started refactor
1865
18662.3.0 / 2011-04-25
1867==================
1868
1869 * Added options support to `res.clearCookie()`
1870 * Added `res.helpers()` as alias of `res.locals()`
1871 * Added; json defaults to UTF-8 with `res.send()`. Closes #632. [Daniel * Dependency `connect >= 1.4.0`
1872 * Changed; auto set Content-Type in res.attachement [Aaron Heckmann]
1873 * Renamed "cache views" to "view cache". Closes #628
1874 * Fixed caching of views when using several apps. Closes #637
1875 * Fixed gotcha invoking `app.param()` callbacks once per route middleware.
1876Closes #638
1877 * Fixed partial lookup precedence. Closes #631
1878Shaw]
1879
18802.2.2 / 2011-04-12
1881==================
1882
1883 * Added second callback support for `res.download()` connection errors
1884 * Fixed `filename` option passing to template engine
1885
18862.2.1 / 2011-04-04
1887==================
1888
1889 * Added `layout(path)` helper to change the layout within a view. Closes #610
1890 * Fixed `partial()` collection object support.
1891 Previously only anything with `.length` would work.
1892 When `.length` is present one must still be aware of holes,
1893 however now `{ collection: {foo: 'bar'}}` is valid, exposes
1894 `keyInCollection` and `keysInCollection`.
1895
1896 * Performance improved with better view caching
1897 * Removed `request` and `response` locals
1898 * Changed; errorHandler page title is now `Express` instead of `Connect`
1899
19002.2.0 / 2011-03-30
1901==================
1902
1903 * Added `app.lookup.VERB()`, ex `app.lookup.put('/user/:id')`. Closes #606
1904 * Added `app.match.VERB()`, ex `app.match.put('/user/12')`. Closes #606
1905 * Added `app.VERB(path)` as alias of `app.lookup.VERB()`.
1906 * Dependency `connect >= 1.2.0`
1907
19082.1.1 / 2011-03-29
1909==================
1910
1911 * Added; expose `err.view` object when failing to locate a view
1912 * Fixed `res.partial()` call `next(err)` when no callback is given [reported by aheckmann]
1913 * Fixed; `res.send(undefined)` responds with 204 [aheckmann]
1914
19152.1.0 / 2011-03-24
1916==================
1917
1918 * Added `<root>/_?<name>` partial lookup support. Closes #447
1919 * Added `request`, `response`, and `app` local variables
1920 * Added `settings` local variable, containing the app's settings
1921 * Added `req.flash()` exception if `req.session` is not available
1922 * Added `res.send(bool)` support (json response)
1923 * Fixed stylus example for latest version
1924 * Fixed; wrap try/catch around `res.render()`
1925
19262.0.0 / 2011-03-17
1927==================
1928
1929 * Fixed up index view path alternative.
1930 * Changed; `res.locals()` without object returns the locals
1931
19322.0.0rc3 / 2011-03-17
1933==================
1934
1935 * Added `res.locals(obj)` to compliment `res.local(key, val)`
1936 * Added `res.partial()` callback support
1937 * Fixed recursive error reporting issue in `res.render()`
1938
19392.0.0rc2 / 2011-03-17
1940==================
1941
1942 * Changed; `partial()` "locals" are now optional
1943 * Fixed `SlowBuffer` support. Closes #584 [reported by tyrda01]
1944 * Fixed .filename view engine option [reported by drudge]
1945 * Fixed blog example
1946 * Fixed `{req,res}.app` reference when mounting [Ben Weaver]
1947
19482.0.0rc / 2011-03-14
1949==================
1950
1951 * Fixed; expose `HTTPSServer` constructor
1952 * Fixed express(1) default test charset. Closes #579 [reported by secoif]
1953 * Fixed; default charset to utf-8 instead of utf8 for lame IE [reported by NickP]
1954
19552.0.0beta3 / 2011-03-09
1956==================
1957
1958 * Added support for `res.contentType()` literal
1959 The original `res.contentType('.json')`,
1960 `res.contentType('application/json')`, and `res.contentType('json')`
1961 will work now.
1962 * Added `res.render()` status option support back
1963 * Added charset option for `res.render()`
1964 * Added `.charset` support (via connect 1.0.4)
1965 * Added view resolution hints when in development and a lookup fails
1966 * Added layout lookup support relative to the page view.
1967 For example while rendering `./views/user/index.jade` if you create
1968 `./views/user/layout.jade` it will be used in favour of the root layout.
1969 * Fixed `res.redirect()`. RFC states absolute url [reported by unlink]
1970 * Fixed; default `res.send()` string charset to utf8
1971 * Removed `Partial` constructor (not currently used)
1972
19732.0.0beta2 / 2011-03-07
1974==================
1975
1976 * Added res.render() `.locals` support back to aid in migration process
1977 * Fixed flash example
1978
19792.0.0beta / 2011-03-03
1980==================
1981
1982 * Added HTTPS support
1983 * Added `res.cookie()` maxAge support
1984 * Added `req.header()` _Referrer_ / _Referer_ special-case, either works
1985 * Added mount support for `res.redirect()`, now respects the mount-point
1986 * Added `union()` util, taking place of `merge(clone())` combo
1987 * Added stylus support to express(1) generated app
1988 * Added secret to session middleware used in examples and generated app
1989 * Added `res.local(name, val)` for progressive view locals
1990 * Added default param support to `req.param(name, default)`
1991 * Added `app.disabled()` and `app.enabled()`
1992 * Added `app.register()` support for omitting leading ".", either works
1993 * Added `res.partial()`, using the same interface as `partial()` within a view. Closes #539
1994 * Added `app.param()` to map route params to async/sync logic
1995 * Added; aliased `app.helpers()` as `app.locals()`. Closes #481
1996 * Added extname with no leading "." support to `res.contentType()`
1997 * Added `cache views` setting, defaulting to enabled in "production" env
1998 * Added index file partial resolution, eg: partial('user') may try _views/user/index.jade_.
1999 * Added `req.accepts()` support for extensions
2000 * Changed; `res.download()` and `res.sendfile()` now utilize Connect's
2001 static file server `connect.static.send()`.
2002 * Changed; replaced `connect.utils.mime()` with npm _mime_ module
2003 * Changed; allow `req.query` to be pre-defined (via middleware or other parent
2004 * Changed view partial resolution, now relative to parent view
2005 * Changed view engine signature. no longer `engine.render(str, options, callback)`, now `engine.compile(str, options) -> Function`, the returned function accepts `fn(locals)`.
2006 * Fixed `req.param()` bug returning Array.prototype methods. Closes #552
2007 * Fixed; using `Stream#pipe()` instead of `sys.pump()` in `res.sendfile()`
2008 * Fixed; using _qs_ module instead of _querystring_
2009 * Fixed; strip unsafe chars from jsonp callbacks
2010 * Removed "stream threshold" setting
2011
20121.0.8 / 2011-03-01
2013==================
2014
2015 * Allow `req.query` to be pre-defined (via middleware or other parent app)
2016 * "connect": ">= 0.5.0 < 1.0.0". Closes #547
2017 * Removed the long deprecated __EXPRESS_ENV__ support
2018
20191.0.7 / 2011-02-07
2020==================
2021
2022 * Fixed `render()` setting inheritance.
2023 Mounted apps would not inherit "view engine"
2024
20251.0.6 / 2011-02-07
2026==================
2027
2028 * Fixed `view engine` setting bug when period is in dirname
2029
20301.0.5 / 2011-02-05
2031==================
2032
2033 * Added secret to generated app `session()` call
2034
20351.0.4 / 2011-02-05
2036==================
2037
2038 * Added `qs` dependency to _package.json_
2039 * Fixed namespaced `require()`s for latest connect support
2040
20411.0.3 / 2011-01-13
2042==================
2043
2044 * Remove unsafe characters from JSONP callback names [Ryan Grove]
2045
20461.0.2 / 2011-01-10
2047==================
2048
2049 * Removed nested require, using `connect.router`
2050
20511.0.1 / 2010-12-29
2052==================
2053
2054 * Fixed for middleware stacked via `createServer()`
2055 previously the `foo` middleware passed to `createServer(foo)`
2056 would not have access to Express methods such as `res.send()`
2057 or props like `req.query` etc.
2058
20591.0.0 / 2010-11-16
2060==================
2061
2062 * Added; deduce partial object names from the last segment.
2063 For example by default `partial('forum/post', postObject)` will
2064 give you the _post_ object, providing a meaningful default.
2065 * Added http status code string representation to `res.redirect()` body
2066 * Added; `res.redirect()` supporting _text/plain_ and _text/html_ via __Accept__.
2067 * Added `req.is()` to aid in content negotiation
2068 * Added partial local inheritance [suggested by masylum]. Closes #102
2069 providing access to parent template locals.
2070 * Added _-s, --session[s]_ flag to express(1) to add session related middleware
2071 * Added _--template_ flag to express(1) to specify the
2072 template engine to use.
2073 * Added _--css_ flag to express(1) to specify the
2074 stylesheet engine to use (or just plain css by default).
2075 * Added `app.all()` support [thanks aheckmann]
2076 * Added partial direct object support.
2077 You may now `partial('user', user)` providing the "user" local,
2078 vs previously `partial('user', { object: user })`.
2079 * Added _route-separation_ example since many people question ways
2080 to do this with CommonJS modules. Also view the _blog_ example for
2081 an alternative.
2082 * Performance; caching view path derived partial object names
2083 * Fixed partial local inheritance precedence. [reported by Nick Poulden] Closes #454
2084 * Fixed jsonp support; _text/javascript_ as per mailinglist discussion
2085
20861.0.0rc4 / 2010-10-14
2087==================
2088
2089 * Added _NODE_ENV_ support, _EXPRESS_ENV_ is deprecated and will be removed in 1.0.0
2090 * Added route-middleware support (very helpful, see the [docs](http://expressjs.com/guide.html#Route-Middleware))
2091 * Added _jsonp callback_ setting to enable/disable jsonp autowrapping [Dav Glass]
2092 * Added callback query check on response.send to autowrap JSON objects for simple webservice implementations [Dav Glass]
2093 * Added `partial()` support for array-like collections. Closes #434
2094 * Added support for swappable querystring parsers
2095 * Added session usage docs. Closes #443
2096 * Added dynamic helper caching. Closes #439 [suggested by maritz]
2097 * Added authentication example
2098 * Added basic Range support to `res.sendfile()` (and `res.download()` etc)
2099 * Changed; `express(1)` generated app using 2 spaces instead of 4
2100 * Default env to "development" again [aheckmann]
2101 * Removed _context_ option is no more, use "scope"
2102 * Fixed; exposing _./support_ libs to examples so they can run without installs
2103 * Fixed mvc example
2104
21051.0.0rc3 / 2010-09-20
2106==================
2107
2108 * Added confirmation for `express(1)` app generation. Closes #391
2109 * Added extending of flash formatters via `app.flashFormatters`
2110 * Added flash formatter support. Closes #411
2111 * Added streaming support to `res.sendfile()` using `sys.pump()` when >= "stream threshold"
2112 * Added _stream threshold_ setting for `res.sendfile()`
2113 * Added `res.send()` __HEAD__ support
2114 * Added `res.clearCookie()`
2115 * Added `res.cookie()`
2116 * Added `res.render()` headers option
2117 * Added `res.redirect()` response bodies
2118 * Added `res.render()` status option support. Closes #425 [thanks aheckmann]
2119 * Fixed `res.sendfile()` responding with 403 on malicious path
2120 * Fixed `res.download()` bug; when an error occurs remove _Content-Disposition_
2121 * Fixed; mounted apps settings now inherit from parent app [aheckmann]
2122 * Fixed; stripping Content-Length / Content-Type when 204
2123 * Fixed `res.send()` 204. Closes #419
2124 * Fixed multiple _Set-Cookie_ headers via `res.header()`. Closes #402
2125 * Fixed bug messing with error handlers when `listenFD()` is called instead of `listen()`. [thanks guillermo]
2126
2127
21281.0.0rc2 / 2010-08-17
2129==================
2130
2131 * Added `app.register()` for template engine mapping. Closes #390
2132 * Added `res.render()` callback support as second argument (no options)
2133 * Added callback support to `res.download()`
2134 * Added callback support for `res.sendfile()`
2135 * Added support for middleware access via `express.middlewareName()` vs `connect.middlewareName()`
2136 * Added "partials" setting to docs
2137 * Added default expresso tests to `express(1)` generated app. Closes #384
2138 * Fixed `res.sendfile()` error handling, defer via `next()`
2139 * Fixed `res.render()` callback when a layout is used [thanks guillermo]
2140 * Fixed; `make install` creating ~/.node_libraries when not present
2141 * Fixed issue preventing error handlers from being defined anywhere. Closes #387
2142
21431.0.0rc / 2010-07-28
2144==================
2145
2146 * Added mounted hook. Closes #369
2147 * Added connect dependency to _package.json_
2148
2149 * Removed "reload views" setting and support code
2150 development env never caches, production always caches.
2151
2152 * Removed _param_ in route callbacks, signature is now
2153 simply (req, res, next), previously (req, res, params, next).
2154 Use _req.params_ for path captures, _req.query_ for GET params.
2155
2156 * Fixed "home" setting
2157 * Fixed middleware/router precedence issue. Closes #366
2158 * Fixed; _configure()_ callbacks called immediately. Closes #368
2159
21601.0.0beta2 / 2010-07-23
2161==================
2162
2163 * Added more examples
2164 * Added; exporting `Server` constructor
2165 * Added `Server#helpers()` for view locals
2166 * Added `Server#dynamicHelpers()` for dynamic view locals. Closes #349
2167 * Added support for absolute view paths
2168 * Added; _home_ setting defaults to `Server#route` for mounted apps. Closes #363
2169 * Added Guillermo Rauch to the contributor list
2170 * Added support for "as" for non-collection partials. Closes #341
2171 * Fixed _install.sh_, ensuring _~/.node_libraries_ exists. Closes #362 [thanks jf]
2172 * Fixed `res.render()` exceptions, now passed to `next()` when no callback is given [thanks guillermo]
2173 * Fixed instanceof `Array` checks, now `Array.isArray()`
2174 * Fixed express(1) expansion of public dirs. Closes #348
2175 * Fixed middleware precedence. Closes #345
2176 * Fixed view watcher, now async [thanks aheckmann]
2177
21781.0.0beta / 2010-07-15
2179==================
2180
2181 * Re-write
2182 - much faster
2183 - much lighter
2184 - Check [ExpressJS.com](http://expressjs.com) for migration guide and updated docs
2185
21860.14.0 / 2010-06-15
2187==================
2188
2189 * Utilize relative requires
2190 * Added Static bufferSize option [aheckmann]
2191 * Fixed caching of view and partial subdirectories [aheckmann]
2192 * Fixed mime.type() comments now that ".ext" is not supported
2193 * Updated haml submodule
2194 * Updated class submodule
2195 * Removed bin/express
2196
21970.13.0 / 2010-06-01
2198==================
2199
2200 * Added node v0.1.97 compatibility
2201 * Added support for deleting cookies via Request#cookie('key', null)
2202 * Updated haml submodule
2203 * Fixed not-found page, now using using charset utf-8
2204 * Fixed show-exceptions page, now using using charset utf-8
2205 * Fixed view support due to fs.readFile Buffers
2206 * Changed; mime.type() no longer accepts ".type" due to node extname() changes
2207
22080.12.0 / 2010-05-22
2209==================
2210
2211 * Added node v0.1.96 compatibility
2212 * Added view `helpers` export which act as additional local variables
2213 * Updated haml submodule
2214 * Changed ETag; removed inode, modified time only
2215 * Fixed LF to CRLF for setting multiple cookies
2216 * Fixed cookie complation; values are now urlencoded
2217 * Fixed cookies parsing; accepts quoted values and url escaped cookies
2218
22190.11.0 / 2010-05-06
2220==================
2221
2222 * Added support for layouts using different engines
2223 - this.render('page.html.haml', { layout: 'super-cool-layout.html.ejs' })
2224 - this.render('page.html.haml', { layout: 'foo' }) // assumes 'foo.html.haml'
2225 - this.render('page.html.haml', { layout: false }) // no layout
2226 * Updated ext submodule
2227 * Updated haml submodule
2228 * Fixed EJS partial support by passing along the context. Issue #307
2229
22300.10.1 / 2010-05-03
2231==================
2232
2233 * Fixed binary uploads.
2234
22350.10.0 / 2010-04-30
2236==================
2237
2238 * Added charset support via Request#charset (automatically assigned to 'UTF-8' when respond()'s
2239 encoding is set to 'utf8' or 'utf-8'.
2240 * Added "encoding" option to Request#render(). Closes #299
2241 * Added "dump exceptions" setting, which is enabled by default.
2242 * Added simple ejs template engine support
2243 * Added error response support for text/plain, application/json. Closes #297
2244 * Added callback function param to Request#error()
2245 * Added Request#sendHead()
2246 * Added Request#stream()
2247 * Added support for Request#respond(304, null) for empty response bodies
2248 * Added ETag support to Request#sendfile()
2249 * Added options to Request#sendfile(), passed to fs.createReadStream()
2250 * Added filename arg to Request#download()
2251 * Performance enhanced due to pre-reversing plugins so that plugins.reverse() is not called on each request
2252 * Performance enhanced by preventing several calls to toLowerCase() in Router#match()
2253 * Changed; Request#sendfile() now streams
2254 * Changed; Renamed Request#halt() to Request#respond(). Closes #289
2255 * Changed; Using sys.inspect() instead of JSON.encode() for error output
2256 * Changed; run() returns the http.Server instance. Closes #298
2257 * Changed; Defaulting Server#host to null (INADDR_ANY)
2258 * Changed; Logger "common" format scale of 0.4f
2259 * Removed Logger "request" format
2260 * Fixed; Catching ENOENT in view caching, preventing error when "views/partials" is not found
2261 * Fixed several issues with http client
2262 * Fixed Logger Content-Length output
2263 * Fixed bug preventing Opera from retaining the generated session id. Closes #292
2264
22650.9.0 / 2010-04-14
2266==================
2267
2268 * Added DSL level error() route support
2269 * Added DSL level notFound() route support
2270 * Added Request#error()
2271 * Added Request#notFound()
2272 * Added Request#render() callback function. Closes #258
2273 * Added "max upload size" setting
2274 * Added "magic" variables to collection partials (\_\_index\_\_, \_\_length\_\_, \_\_isFirst\_\_, \_\_isLast\_\_). Closes #254
2275 * Added [haml.js](http://github.com/visionmedia/haml.js) submodule; removed haml-js
2276 * Added callback function support to Request#halt() as 3rd/4th arg
2277 * Added preprocessing of route param wildcards using param(). Closes #251
2278 * Added view partial support (with collections etc)
2279 * Fixed bug preventing falsey params (such as ?page=0). Closes #286
2280 * Fixed setting of multiple cookies. Closes #199
2281 * Changed; view naming convention is now NAME.TYPE.ENGINE (for example page.html.haml)
2282 * Changed; session cookie is now httpOnly
2283 * Changed; Request is no longer global
2284 * Changed; Event is no longer global
2285 * Changed; "sys" module is no longer global
2286 * Changed; moved Request#download to Static plugin where it belongs
2287 * Changed; Request instance created before body parsing. Closes #262
2288 * Changed; Pre-caching views in memory when "cache view contents" is enabled. Closes #253
2289 * Changed; Pre-caching view partials in memory when "cache view partials" is enabled
2290 * Updated support to node --version 0.1.90
2291 * Updated dependencies
2292 * Removed set("session cookie") in favour of use(Session, { cookie: { ... }})
2293 * Removed utils.mixin(); use Object#mergeDeep()
2294
22950.8.0 / 2010-03-19
2296==================
2297
2298 * Added coffeescript example app. Closes #242
2299 * Changed; cache api now async friendly. Closes #240
2300 * Removed deprecated 'express/static' support. Use 'express/plugins/static'
2301
23020.7.6 / 2010-03-19
2303==================
2304
2305 * Added Request#isXHR. Closes #229
2306 * Added `make install` (for the executable)
2307 * Added `express` executable for setting up simple app templates
2308 * Added "GET /public/*" to Static plugin, defaulting to <root>/public
2309 * Added Static plugin
2310 * Fixed; Request#render() only calls cache.get() once
2311 * Fixed; Namespacing View caches with "view:"
2312 * Fixed; Namespacing Static caches with "static:"
2313 * Fixed; Both example apps now use the Static plugin
2314 * Fixed set("views"). Closes #239
2315 * Fixed missing space for combined log format
2316 * Deprecated Request#sendfile() and 'express/static'
2317 * Removed Server#running
2318
23190.7.5 / 2010-03-16
2320==================
2321
2322 * Added Request#flash() support without args, now returns all flashes
2323 * Updated ext submodule
2324
23250.7.4 / 2010-03-16
2326==================
2327
2328 * Fixed session reaper
2329 * Changed; class.js replacing js-oo Class implementation (quite a bit faster, no browser cruft)
2330
23310.7.3 / 2010-03-16
2332==================
2333
2334 * Added package.json
2335 * Fixed requiring of haml / sass due to kiwi removal
2336
23370.7.2 / 2010-03-16
2338==================
2339
2340 * Fixed GIT submodules (HAH!)
2341
23420.7.1 / 2010-03-16
2343==================
2344
2345 * Changed; Express now using submodules again until a PM is adopted
2346 * Changed; chat example using millisecond conversions from ext
2347
23480.7.0 / 2010-03-15
2349==================
2350
2351 * Added Request#pass() support (finds the next matching route, or the given path)
2352 * Added Logger plugin (default "common" format replaces CommonLogger)
2353 * Removed Profiler plugin
2354 * Removed CommonLogger plugin
2355
23560.6.0 / 2010-03-11
2357==================
2358
2359 * Added seed.yml for kiwi package management support
2360 * Added HTTP client query string support when method is GET. Closes #205
2361
2362 * Added support for arbitrary view engines.
2363 For example "foo.engine.html" will now require('engine'),
2364 the exports from this module are cached after the first require().
2365
2366 * Added async plugin support
2367
2368 * Removed usage of RESTful route funcs as http client
2369 get() etc, use http.get() and friends
2370
2371 * Removed custom exceptions
2372
23730.5.0 / 2010-03-10
2374==================
2375
2376 * Added ext dependency (library of js extensions)
2377 * Removed extname() / basename() utils. Use path module
2378 * Removed toArray() util. Use arguments.values
2379 * Removed escapeRegexp() util. Use RegExp.escape()
2380 * Removed process.mixin() dependency. Use utils.mixin()
2381 * Removed Collection
2382 * Removed ElementCollection
2383 * Shameless self promotion of ebook "Advanced JavaScript" (http://dev-mag.com) ;)
2384
23850.4.0 / 2010-02-11
2386==================
2387
2388 * Added flash() example to sample upload app
2389 * Added high level restful http client module (express/http)
2390 * Changed; RESTful route functions double as HTTP clients. Closes #69
2391 * Changed; throwing error when routes are added at runtime
2392 * Changed; defaulting render() context to the current Request. Closes #197
2393 * Updated haml submodule
2394
23950.3.0 / 2010-02-11
2396==================
2397
2398 * Updated haml / sass submodules. Closes #200
2399 * Added flash message support. Closes #64
2400 * Added accepts() now allows multiple args. fixes #117
2401 * Added support for plugins to halt. Closes #189
2402 * Added alternate layout support. Closes #119
2403 * Removed Route#run(). Closes #188
2404 * Fixed broken specs due to use(Cookie) missing
2405
24060.2.1 / 2010-02-05
2407==================
2408
2409 * Added "plot" format option for Profiler (for gnuplot processing)
2410 * Added request number to Profiler plugin
2411 * Fixed binary encoding for multi-part file uploads, was previously defaulting to UTF8
2412 * Fixed issue with routes not firing when not files are present. Closes #184
2413 * Fixed process.Promise -> events.Promise
2414
24150.2.0 / 2010-02-03
2416==================
2417
2418 * Added parseParam() support for name[] etc. (allows for file inputs with "multiple" attr) Closes #180
2419 * Added Both Cache and Session option "reapInterval" may be "reapEvery". Closes #174
2420 * Added expiration support to cache api with reaper. Closes #133
2421 * Added cache Store.Memory#reap()
2422 * Added Cache; cache api now uses first class Cache instances
2423 * Added abstract session Store. Closes #172
2424 * Changed; cache Memory.Store#get() utilizing Collection
2425 * Renamed MemoryStore -> Store.Memory
2426 * Fixed use() of the same plugin several time will always use latest options. Closes #176
2427
24280.1.0 / 2010-02-03
2429==================
2430
2431 * Changed; Hooks (before / after) pass request as arg as well as evaluated in their context
2432 * Updated node support to 0.1.27 Closes #169
2433 * Updated dirname(__filename) -> __dirname
2434 * Updated libxmljs support to v0.2.0
2435 * Added session support with memory store / reaping
2436 * Added quick uid() helper
2437 * Added multi-part upload support
2438 * Added Sass.js support / submodule
2439 * Added production env caching view contents and static files
2440 * Added static file caching. Closes #136
2441 * Added cache plugin with memory stores
2442 * Added support to StaticFile so that it works with non-textual files.
2443 * Removed dirname() helper
2444 * Removed several globals (now their modules must be required)
2445
24460.0.2 / 2010-01-10
2447==================
2448
2449 * Added view benchmarks; currently haml vs ejs
2450 * Added Request#attachment() specs. Closes #116
2451 * Added use of node's parseQuery() util. Closes #123
2452 * Added `make init` for submodules
2453 * Updated Haml
2454 * Updated sample chat app to show messages on load
2455 * Updated libxmljs parseString -> parseHtmlString
2456 * Fixed `make init` to work with older versions of git
2457 * Fixed specs can now run independent specs for those who cant build deps. Closes #127
2458 * Fixed issues introduced by the node url module changes. Closes 126.
2459 * Fixed two assertions failing due to Collection#keys() returning strings
2460 * Fixed faulty Collection#toArray() spec due to keys() returning strings
2461 * Fixed `make test` now builds libxmljs.node before testing
2462
24630.0.1 / 2010-01-03
2464==================
2465
2466 * Initial release