github.com/emc-advanced-dev/unik@v0.0.0-20190717152701-a58d3e8e33b7/docs/examples/example-nodejs-fileserver/node_modules/express/History.md (about)

     1  4.13.4 / 2016-01-21
     2  ===================
     3  
     4    * deps: content-disposition@0.5.1
     5      - perf: enable strict mode
     6    * deps: cookie@0.1.5
     7      - Throw on invalid values provided to `serialize`
     8    * deps: depd@~1.1.0
     9      - Support web browser loading
    10      - perf: enable strict mode
    11    * deps: escape-html@~1.0.3
    12      - perf: enable strict mode
    13      - perf: optimize string replacement
    14      - perf: use faster string coercion
    15    * deps: finalhandler@0.4.1
    16      - deps: escape-html@~1.0.3
    17    * deps: merge-descriptors@1.0.1
    18      - perf: enable strict mode
    19    * deps: methods@~1.1.2
    20      - perf: enable strict mode
    21    * deps: parseurl@~1.3.1
    22      - perf: enable strict mode
    23    * deps: proxy-addr@~1.0.10
    24      - deps: ipaddr.js@1.0.5
    25      - perf: enable strict mode
    26    * deps: range-parser@~1.0.3
    27      - perf: enable strict mode
    28    * deps: send@0.13.1
    29      - deps: depd@~1.1.0
    30      - deps: destroy@~1.0.4
    31      - deps: escape-html@~1.0.3
    32      - deps: range-parser@~1.0.3
    33    * deps: serve-static@~1.10.2
    34      - deps: escape-html@~1.0.3
    35      - deps: parseurl@~1.3.0
    36      - deps: send@0.13.1
    37  
    38  4.13.3 / 2015-08-02
    39  ===================
    40  
    41    * Fix infinite loop condition using `mergeParams: true`
    42    * Fix inner numeric indices incorrectly altering parent `req.params`
    43  
    44  4.13.2 / 2015-07-31
    45  ===================
    46  
    47    * deps: accepts@~1.2.12
    48      - deps: mime-types@~2.1.4
    49    * deps: array-flatten@1.1.1
    50      - perf: enable strict mode
    51    * deps: path-to-regexp@0.1.7
    52      - Fix regression with escaped round brackets and matching groups
    53    * deps: type-is@~1.6.6
    54      - deps: mime-types@~2.1.4
    55  
    56  4.13.1 / 2015-07-05
    57  ===================
    58  
    59    * deps: accepts@~1.2.10
    60      - deps: mime-types@~2.1.2
    61    * deps: qs@4.0.0
    62      - Fix dropping parameters like `hasOwnProperty`
    63      - Fix various parsing edge cases
    64    * deps: type-is@~1.6.4
    65      - deps: mime-types@~2.1.2
    66      - perf: enable strict mode
    67      - perf: remove argument reassignment
    68  
    69  4.13.0 / 2015-06-20
    70  ===================
    71  
    72    * Add settings to debug output
    73    * Fix `res.format` error when only `default` provided
    74    * Fix issue where `next('route')` in `app.param` would incorrectly skip values
    75    * Fix hiding platform issues with `decodeURIComponent`
    76      - Only `URIError`s are a 400
    77    * Fix using `*` before params in routes
    78    * Fix using capture groups before params in routes
    79    * Simplify `res.cookie` to call `res.append`
    80    * Use `array-flatten` module for flattening arrays
    81    * deps: accepts@~1.2.9
    82      - deps: mime-types@~2.1.1
    83      - perf: avoid argument reassignment & argument slice
    84      - perf: avoid negotiator recursive construction
    85      - perf: enable strict mode
    86      - perf: remove unnecessary bitwise operator
    87    * deps: cookie@0.1.3
    88      - perf: deduce the scope of try-catch deopt
    89      - perf: remove argument reassignments
    90    * deps: escape-html@1.0.2
    91    * deps: etag@~1.7.0
    92      - Always include entity length in ETags for hash length extensions
    93      - Generate non-Stats ETags using MD5 only (no longer CRC32)
    94      - Improve stat performance by removing hashing
    95      - Improve support for JXcore
    96      - Remove base64 padding in ETags to shorten
    97      - Support "fake" stats objects in environments without fs
    98      - Use MD5 instead of MD4 in weak ETags over 1KB
    99    * deps: finalhandler@0.4.0
   100      - Fix a false-positive when unpiping in Node.js 0.8
   101      - Support `statusCode` property on `Error` objects
   102      - Use `unpipe` module for unpiping requests
   103      - deps: escape-html@1.0.2
   104      - deps: on-finished@~2.3.0
   105      - perf: enable strict mode
   106      - perf: remove argument reassignment
   107    * deps: fresh@0.3.0
   108      - Add weak `ETag` matching support
   109    * deps: on-finished@~2.3.0
   110      - Add defined behavior for HTTP `CONNECT` requests
   111      - Add defined behavior for HTTP `Upgrade` requests
   112      - deps: ee-first@1.1.1
   113    * deps: path-to-regexp@0.1.6
   114    * deps: send@0.13.0
   115      - Allow Node.js HTTP server to set `Date` response header
   116      - Fix incorrectly removing `Content-Location` on 304 response
   117      - Improve the default redirect response headers
   118      - Send appropriate headers on default error response
   119      - Use `http-errors` for standard emitted errors
   120      - Use `statuses` instead of `http` module for status messages
   121      - deps: escape-html@1.0.2
   122      - deps: etag@~1.7.0
   123      - deps: fresh@0.3.0
   124      - deps: on-finished@~2.3.0
   125      - perf: enable strict mode
   126      - perf: remove unnecessary array allocations
   127    * deps: serve-static@~1.10.0
   128      - Add `fallthrough` option
   129      - Fix reading options from options prototype
   130      - Improve the default redirect response headers
   131      - Malformed URLs now `next()` instead of 400
   132      - deps: escape-html@1.0.2
   133      - deps: send@0.13.0
   134      - perf: enable strict mode
   135      - perf: remove argument reassignment
   136    * deps: type-is@~1.6.3
   137      - deps: mime-types@~2.1.1
   138      - perf: reduce try block size
   139      - perf: remove bitwise operations
   140    * perf: enable strict mode
   141    * perf: isolate `app.render` try block
   142    * perf: remove argument reassignments in application
   143    * perf: remove argument reassignments in request prototype
   144    * perf: remove argument reassignments in response prototype
   145    * perf: remove argument reassignments in routing
   146    * perf: remove argument reassignments in `View`
   147    * perf: skip attempting to decode zero length string
   148    * perf: use saved reference to `http.STATUS_CODES`
   149  
   150  4.12.4 / 2015-05-17
   151  ===================
   152  
   153    * deps: accepts@~1.2.7
   154      - deps: mime-types@~2.0.11
   155      - deps: negotiator@0.5.3
   156    * deps: debug@~2.2.0
   157      - deps: ms@0.7.1
   158    * deps: depd@~1.0.1
   159    * deps: etag@~1.6.0
   160      - Improve support for JXcore
   161      - Support "fake" stats objects in environments without `fs`
   162    * deps: finalhandler@0.3.6
   163      - deps: debug@~2.2.0
   164      - deps: on-finished@~2.2.1
   165    * deps: on-finished@~2.2.1
   166      - Fix `isFinished(req)` when data buffered
   167    * deps: proxy-addr@~1.0.8
   168      - deps: ipaddr.js@1.0.1
   169    * deps: qs@2.4.2
   170     - Fix allowing parameters like `constructor`
   171    * deps: send@0.12.3
   172      - deps: debug@~2.2.0
   173      - deps: depd@~1.0.1
   174      - deps: etag@~1.6.0
   175      - deps: ms@0.7.1
   176      - deps: on-finished@~2.2.1
   177    * deps: serve-static@~1.9.3
   178      - deps: send@0.12.3
   179    * deps: type-is@~1.6.2
   180      - deps: mime-types@~2.0.11
   181  
   182  4.12.3 / 2015-03-17
   183  ===================
   184  
   185    * deps: accepts@~1.2.5
   186      - deps: mime-types@~2.0.10
   187    * deps: debug@~2.1.3
   188      - Fix high intensity foreground color for bold
   189      - deps: ms@0.7.0
   190    * deps: finalhandler@0.3.4
   191      - deps: debug@~2.1.3
   192    * deps: proxy-addr@~1.0.7
   193      - deps: ipaddr.js@0.1.9
   194    * deps: qs@2.4.1
   195      - Fix error when parameter `hasOwnProperty` is present
   196    * deps: send@0.12.2
   197      - Throw errors early for invalid `extensions` or `index` options
   198      - deps: debug@~2.1.3
   199    * deps: serve-static@~1.9.2
   200      - deps: send@0.12.2
   201    * deps: type-is@~1.6.1
   202      - deps: mime-types@~2.0.10
   203  
   204  4.12.2 / 2015-03-02
   205  ===================
   206  
   207    * Fix regression where `"Request aborted"` is logged using `res.sendFile`
   208  
   209  4.12.1 / 2015-03-01
   210  ===================
   211  
   212    * Fix constructing application with non-configurable prototype properties
   213    * Fix `ECONNRESET` errors from `res.sendFile` usage
   214    * Fix `req.host` when using "trust proxy" hops count
   215    * Fix `req.protocol`/`req.secure` when using "trust proxy" hops count
   216    * Fix wrong `code` on aborted connections from `res.sendFile`
   217    * deps: merge-descriptors@1.0.0
   218  
   219  4.12.0 / 2015-02-23
   220  ===================
   221  
   222    * Fix `"trust proxy"` setting to inherit when app is mounted
   223    * Generate `ETag`s for all request responses
   224      - No longer restricted to only responses for `GET` and `HEAD` requests
   225    * Use `content-type` to parse `Content-Type` headers
   226    * deps: accepts@~1.2.4
   227      - Fix preference sorting to be stable for long acceptable lists
   228      - deps: mime-types@~2.0.9
   229      - deps: negotiator@0.5.1
   230    * deps: cookie-signature@1.0.6
   231    * deps: send@0.12.1
   232      - Always read the stat size from the file
   233      - Fix mutating passed-in `options`
   234      - deps: mime@1.3.4
   235    * deps: serve-static@~1.9.1
   236      - deps: send@0.12.1
   237    * deps: type-is@~1.6.0
   238      - fix argument reassignment
   239      - fix false-positives in `hasBody` `Transfer-Encoding` check
   240      - support wildcard for both type and subtype (`*/*`)
   241      - deps: mime-types@~2.0.9
   242  
   243  4.11.2 / 2015-02-01
   244  ===================
   245  
   246    * Fix `res.redirect` double-calling `res.end` for `HEAD` requests
   247    * deps: accepts@~1.2.3
   248      - deps: mime-types@~2.0.8
   249    * deps: proxy-addr@~1.0.6
   250      - deps: ipaddr.js@0.1.8
   251    * deps: type-is@~1.5.6
   252      - deps: mime-types@~2.0.8
   253  
   254  4.11.1 / 2015-01-20
   255  ===================
   256  
   257    * deps: send@0.11.1
   258      - Fix root path disclosure
   259    * deps: serve-static@~1.8.1
   260      - Fix redirect loop in Node.js 0.11.14
   261      - Fix root path disclosure
   262      - deps: send@0.11.1
   263  
   264  4.11.0 / 2015-01-13
   265  ===================
   266  
   267    * Add `res.append(field, val)` to append headers
   268    * Deprecate leading `:` in `name` for `app.param(name, fn)`
   269    * Deprecate `req.param()` -- use `req.params`, `req.body`, or `req.query` instead
   270    * Deprecate `app.param(fn)`
   271    * Fix `OPTIONS` responses to include the `HEAD` method properly
   272    * Fix `res.sendFile` not always detecting aborted connection
   273    * Match routes iteratively to prevent stack overflows
   274    * deps: accepts@~1.2.2
   275      - deps: mime-types@~2.0.7
   276      - deps: negotiator@0.5.0
   277    * deps: send@0.11.0
   278      - deps: debug@~2.1.1
   279      - deps: etag@~1.5.1
   280      - deps: ms@0.7.0
   281      - deps: on-finished@~2.2.0
   282    * deps: serve-static@~1.8.0
   283      - deps: send@0.11.0
   284  
   285  4.10.8 / 2015-01-13
   286  ===================
   287  
   288    * Fix crash from error within `OPTIONS` response handler
   289    * deps: proxy-addr@~1.0.5
   290      - deps: ipaddr.js@0.1.6
   291  
   292  4.10.7 / 2015-01-04
   293  ===================
   294  
   295    * Fix `Allow` header for `OPTIONS` to not contain duplicate methods
   296    * Fix incorrect "Request aborted" for `res.sendFile` when `HEAD` or 304
   297    * deps: debug@~2.1.1
   298    * deps: finalhandler@0.3.3
   299      - deps: debug@~2.1.1
   300      - deps: on-finished@~2.2.0
   301    * deps: methods@~1.1.1
   302    * deps: on-finished@~2.2.0
   303    * deps: serve-static@~1.7.2
   304      - Fix potential open redirect when mounted at root
   305    * deps: type-is@~1.5.5
   306      - deps: mime-types@~2.0.7
   307  
   308  4.10.6 / 2014-12-12
   309  ===================
   310  
   311    * Fix exception in `req.fresh`/`req.stale` without response headers
   312  
   313  4.10.5 / 2014-12-10
   314  ===================
   315  
   316    * Fix `res.send` double-calling `res.end` for `HEAD` requests
   317    * deps: accepts@~1.1.4
   318      - deps: mime-types@~2.0.4
   319    * deps: type-is@~1.5.4
   320      - deps: mime-types@~2.0.4
   321  
   322  4.10.4 / 2014-11-24
   323  ===================
   324  
   325    * Fix `res.sendfile` logging standard write errors
   326  
   327  4.10.3 / 2014-11-23
   328  ===================
   329  
   330    * Fix `res.sendFile` logging standard write errors
   331    * deps: etag@~1.5.1
   332    * deps: proxy-addr@~1.0.4
   333      - deps: ipaddr.js@0.1.5
   334    * deps: qs@2.3.3
   335      - Fix `arrayLimit` behavior
   336  
   337  4.10.2 / 2014-11-09
   338  ===================
   339  
   340    * Correctly invoke async router callback asynchronously
   341    * deps: accepts@~1.1.3
   342      - deps: mime-types@~2.0.3
   343    * deps: type-is@~1.5.3
   344      - deps: mime-types@~2.0.3
   345  
   346  4.10.1 / 2014-10-28
   347  ===================
   348  
   349    * Fix handling of URLs containing `://` in the path
   350    * deps: qs@2.3.2
   351      - Fix parsing of mixed objects and values
   352  
   353  4.10.0 / 2014-10-23
   354  ===================
   355  
   356    * Add support for `app.set('views', array)`
   357      - Views are looked up in sequence in array of directories
   358    * Fix `res.send(status)` to mention `res.sendStatus(status)`
   359    * Fix handling of invalid empty URLs
   360    * Use `content-disposition` module for `res.attachment`/`res.download`
   361      - Sends standards-compliant `Content-Disposition` header
   362      - Full Unicode support
   363    * Use `path.resolve` in view lookup
   364    * deps: debug@~2.1.0
   365      - Implement `DEBUG_FD` env variable support
   366    * deps: depd@~1.0.0
   367    * deps: etag@~1.5.0
   368      - Improve string performance
   369      - Slightly improve speed for weak ETags over 1KB
   370    * deps: finalhandler@0.3.2
   371      - Terminate in progress response only on error
   372      - Use `on-finished` to determine request status
   373      - deps: debug@~2.1.0
   374      - deps: on-finished@~2.1.1
   375    * deps: on-finished@~2.1.1
   376      - Fix handling of pipelined requests
   377    * deps: qs@2.3.0
   378      - Fix parsing of mixed implicit and explicit arrays
   379    * deps: send@0.10.1
   380      - deps: debug@~2.1.0
   381      - deps: depd@~1.0.0
   382      - deps: etag@~1.5.0
   383      - deps: on-finished@~2.1.1
   384    * deps: serve-static@~1.7.1
   385      - deps: send@0.10.1
   386  
   387  4.9.8 / 2014-10-17
   388  ==================
   389  
   390    * Fix `res.redirect` body when redirect status specified
   391    * deps: accepts@~1.1.2
   392      - Fix error when media type has invalid parameter
   393      - deps: negotiator@0.4.9
   394  
   395  4.9.7 / 2014-10-10
   396  ==================
   397  
   398    * Fix using same param name in array of paths
   399  
   400  4.9.6 / 2014-10-08
   401  ==================
   402  
   403    * deps: accepts@~1.1.1
   404      - deps: mime-types@~2.0.2
   405      - deps: negotiator@0.4.8
   406    * deps: serve-static@~1.6.4
   407      - Fix redirect loop when index file serving disabled
   408    * deps: type-is@~1.5.2
   409      - deps: mime-types@~2.0.2
   410  
   411  4.9.5 / 2014-09-24
   412  ==================
   413  
   414    * deps: etag@~1.4.0
   415    * deps: proxy-addr@~1.0.3
   416      - Use `forwarded` npm module
   417    * deps: send@0.9.3
   418      - deps: etag@~1.4.0
   419    * deps: serve-static@~1.6.3
   420      - deps: send@0.9.3
   421  
   422  4.9.4 / 2014-09-19
   423  ==================
   424  
   425    * deps: qs@2.2.4
   426      - Fix issue with object keys starting with numbers truncated
   427  
   428  4.9.3 / 2014-09-18
   429  ==================
   430  
   431    * deps: proxy-addr@~1.0.2
   432      - Fix a global leak when multiple subnets are trusted
   433      - deps: ipaddr.js@0.1.3
   434  
   435  4.9.2 / 2014-09-17
   436  ==================
   437  
   438    * Fix regression for empty string `path` in `app.use`
   439    * Fix `router.use` to accept array of middleware without path
   440    * Improve error message for bad `app.use` arguments
   441  
   442  4.9.1 / 2014-09-16
   443  ==================
   444  
   445    * Fix `app.use` to accept array of middleware without path
   446    * deps: depd@0.4.5
   447    * deps: etag@~1.3.1
   448    * deps: send@0.9.2
   449      - deps: depd@0.4.5
   450      - deps: etag@~1.3.1
   451      - deps: range-parser@~1.0.2
   452    * deps: serve-static@~1.6.2
   453      - deps: send@0.9.2
   454  
   455  4.9.0 / 2014-09-08
   456  ==================
   457  
   458    * Add `res.sendStatus`
   459    * Invoke callback for sendfile when client aborts
   460      - Applies to `res.sendFile`, `res.sendfile`, and `res.download`
   461      - `err` will be populated with request aborted error
   462    * Support IP address host in `req.subdomains`
   463    * Use `etag` to generate `ETag` headers
   464    * deps: accepts@~1.1.0
   465      - update `mime-types`
   466    * deps: cookie-signature@1.0.5
   467    * deps: debug@~2.0.0
   468    * deps: finalhandler@0.2.0
   469      - Set `X-Content-Type-Options: nosniff` header
   470      - deps: debug@~2.0.0
   471    * deps: fresh@0.2.4
   472    * deps: media-typer@0.3.0
   473      - Throw error when parameter format invalid on parse
   474    * deps: qs@2.2.3
   475      - Fix issue where first empty value in array is discarded
   476    * deps: range-parser@~1.0.2
   477    * deps: send@0.9.1
   478      - Add `lastModified` option
   479      - Use `etag` to generate `ETag` header
   480      - deps: debug@~2.0.0
   481      - deps: fresh@0.2.4
   482    * deps: serve-static@~1.6.1
   483      - Add `lastModified` option
   484      - deps: send@0.9.1
   485    * deps: type-is@~1.5.1
   486      - fix `hasbody` to be true for `content-length: 0`
   487      - deps: media-typer@0.3.0
   488      - deps: mime-types@~2.0.1
   489    * deps: vary@~1.0.0
   490      - Accept valid `Vary` header string as `field`
   491  
   492  4.8.8 / 2014-09-04
   493  ==================
   494  
   495    * deps: send@0.8.5
   496      - Fix a path traversal issue when using `root`
   497      - Fix malicious path detection for empty string path
   498    * deps: serve-static@~1.5.4
   499      - deps: send@0.8.5
   500  
   501  4.8.7 / 2014-08-29
   502  ==================
   503  
   504    * deps: qs@2.2.2
   505      - Remove unnecessary cloning
   506  
   507  4.8.6 / 2014-08-27
   508  ==================
   509  
   510    * deps: qs@2.2.0
   511      - Array parsing fix
   512      - Performance improvements
   513  
   514  4.8.5 / 2014-08-18
   515  ==================
   516  
   517    * deps: send@0.8.3
   518      - deps: destroy@1.0.3
   519      - deps: on-finished@2.1.0
   520    * deps: serve-static@~1.5.3
   521      - deps: send@0.8.3
   522  
   523  4.8.4 / 2014-08-14
   524  ==================
   525  
   526    * deps: qs@1.2.2
   527    * deps: send@0.8.2
   528      - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream`
   529    * deps: serve-static@~1.5.2
   530      - deps: send@0.8.2
   531  
   532  4.8.3 / 2014-08-10
   533  ==================
   534  
   535    * deps: parseurl@~1.3.0
   536    * deps: qs@1.2.1
   537    * deps: serve-static@~1.5.1
   538      - Fix parsing of weird `req.originalUrl` values
   539      - deps: parseurl@~1.3.0
   540      - deps: utils-merge@1.0.0
   541  
   542  4.8.2 / 2014-08-07
   543  ==================
   544  
   545    * deps: qs@1.2.0
   546      - Fix parsing array of objects
   547  
   548  4.8.1 / 2014-08-06
   549  ==================
   550  
   551    * fix incorrect deprecation warnings on `res.download`
   552    * deps: qs@1.1.0
   553      - Accept urlencoded square brackets
   554      - Accept empty values in implicit array notation
   555  
   556  4.8.0 / 2014-08-05
   557  ==================
   558  
   559    * add `res.sendFile`
   560      - accepts a file system path instead of a URL
   561      - requires an absolute path or `root` option specified
   562    * deprecate `res.sendfile` -- use `res.sendFile` instead
   563    * support mounted app as any argument to `app.use()`
   564    * deps: qs@1.0.2
   565      - Complete rewrite
   566      - Limits array length to 20
   567      - Limits object depth to 5
   568      - Limits parameters to 1,000
   569    * deps: send@0.8.1
   570      - Add `extensions` option
   571    * deps: serve-static@~1.5.0
   572      - Add `extensions` option
   573      - deps: send@0.8.1
   574  
   575  4.7.4 / 2014-08-04
   576  ==================
   577  
   578    * fix `res.sendfile` regression for serving directory index files
   579    * deps: send@0.7.4
   580      - Fix incorrect 403 on Windows and Node.js 0.11
   581      - Fix serving index files without root dir
   582    * deps: serve-static@~1.4.4
   583      - deps: send@0.7.4
   584  
   585  4.7.3 / 2014-08-04
   586  ==================
   587  
   588    * deps: send@0.7.3
   589      - Fix incorrect 403 on Windows and Node.js 0.11
   590    * deps: serve-static@~1.4.3
   591      - Fix incorrect 403 on Windows and Node.js 0.11
   592      - deps: send@0.7.3
   593  
   594  4.7.2 / 2014-07-27
   595  ==================
   596  
   597    * deps: depd@0.4.4
   598      - Work-around v8 generating empty stack traces
   599    * deps: send@0.7.2
   600      - deps: depd@0.4.4
   601    * deps: serve-static@~1.4.2
   602  
   603  4.7.1 / 2014-07-26
   604  ==================
   605  
   606    * deps: depd@0.4.3
   607      - Fix exception when global `Error.stackTraceLimit` is too low
   608    * deps: send@0.7.1
   609      - deps: depd@0.4.3
   610    * deps: serve-static@~1.4.1
   611  
   612  4.7.0 / 2014-07-25
   613  ==================
   614  
   615    * fix `req.protocol` for proxy-direct connections
   616    * configurable query parser with `app.set('query parser', parser)`
   617      - `app.set('query parser', 'extended')` parse with "qs" module
   618      - `app.set('query parser', 'simple')` parse with "querystring" core module
   619      - `app.set('query parser', false)` disable query string parsing
   620      - `app.set('query parser', true)` enable simple parsing
   621    * deprecate `res.json(status, obj)` -- use `res.status(status).json(obj)` instead
   622    * deprecate `res.jsonp(status, obj)` -- use `res.status(status).jsonp(obj)` instead
   623    * deprecate `res.send(status, body)` -- use `res.status(status).send(body)` instead
   624    * deps: debug@1.0.4
   625    * deps: depd@0.4.2
   626      - Add `TRACE_DEPRECATION` environment variable
   627      - Remove non-standard grey color from color output
   628      - Support `--no-deprecation` argument
   629      - Support `--trace-deprecation` argument
   630    * deps: finalhandler@0.1.0
   631      - Respond after request fully read
   632      - deps: debug@1.0.4
   633    * deps: parseurl@~1.2.0
   634      - Cache URLs based on original value
   635      - Remove no-longer-needed URL mis-parse work-around
   636      - Simplify the "fast-path" `RegExp`
   637    * deps: send@0.7.0
   638      - Add `dotfiles` option
   639      - Cap `maxAge` value to 1 year
   640      - deps: debug@1.0.4
   641      - deps: depd@0.4.2
   642    * deps: serve-static@~1.4.0
   643      - deps: parseurl@~1.2.0
   644      - deps: send@0.7.0
   645    * perf: prevent multiple `Buffer` creation in `res.send`
   646  
   647  4.6.1 / 2014-07-12
   648  ==================
   649  
   650    * fix `subapp.mountpath` regression for `app.use(subapp)`
   651  
   652  4.6.0 / 2014-07-11
   653  ==================
   654  
   655    * accept multiple callbacks to `app.use()`
   656    * add explicit "Rosetta Flash JSONP abuse" protection
   657      - previous versions are not vulnerable; this is just explicit protection
   658    * catch errors in multiple `req.param(name, fn)` handlers
   659    * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead
   660    * fix `res.send(status, num)` to send `num` as json (not error)
   661    * remove unnecessary escaping when `res.jsonp` returns JSON response
   662    * support non-string `path` in `app.use(path, fn)`
   663      - supports array of paths
   664      - supports `RegExp`
   665    * router: fix optimization on router exit
   666    * router: refactor location of `try` blocks
   667    * router: speed up standard `app.use(fn)`
   668    * deps: debug@1.0.3
   669      - Add support for multiple wildcards in namespaces
   670    * deps: finalhandler@0.0.3
   671      - deps: debug@1.0.3
   672    * deps: methods@1.1.0
   673      - add `CONNECT`
   674    * deps: parseurl@~1.1.3
   675      - faster parsing of href-only URLs
   676    * deps: path-to-regexp@0.1.3
   677    * deps: send@0.6.0
   678      - deps: debug@1.0.3
   679    * deps: serve-static@~1.3.2
   680      - deps: parseurl@~1.1.3
   681      - deps: send@0.6.0
   682    * perf: fix arguments reassign deopt in some `res` methods
   683  
   684  4.5.1 / 2014-07-06
   685  ==================
   686  
   687   * fix routing regression when altering `req.method`
   688  
   689  4.5.0 / 2014-07-04
   690  ==================
   691  
   692   * add deprecation message to non-plural `req.accepts*`
   693   * add deprecation message to `res.send(body, status)`
   694   * add deprecation message to `res.vary()`
   695   * add `headers` option to `res.sendfile`
   696     - use to set headers on successful file transfer
   697   * add `mergeParams` option to `Router`
   698     - merges `req.params` from parent routes
   699   * add `req.hostname` -- correct name for what `req.host` returns
   700   * deprecate things with `depd` module
   701   * deprecate `req.host` -- use `req.hostname` instead
   702   * fix behavior when handling request without routes
   703   * fix handling when `route.all` is only route
   704   * invoke `router.param()` only when route matches
   705   * restore `req.params` after invoking router
   706   * use `finalhandler` for final response handling
   707   * use `media-typer` to alter content-type charset
   708   * deps: accepts@~1.0.7
   709   * deps: send@0.5.0
   710     - Accept string for `maxage` (converted by `ms`)
   711     - Include link in default redirect response
   712   * deps: serve-static@~1.3.0
   713     - Accept string for `maxAge` (converted by `ms`)
   714     - Add `setHeaders` option
   715     - Include HTML link in redirect response
   716     - deps: send@0.5.0
   717   * deps: type-is@~1.3.2
   718  
   719  4.4.5 / 2014-06-26
   720  ==================
   721  
   722   * deps: cookie-signature@1.0.4
   723     - fix for timing attacks
   724  
   725  4.4.4 / 2014-06-20
   726  ==================
   727  
   728   * fix `res.attachment` Unicode filenames in Safari
   729   * fix "trim prefix" debug message in `express:router`
   730   * deps: accepts@~1.0.5
   731   * deps: buffer-crc32@0.2.3
   732  
   733  4.4.3 / 2014-06-11
   734  ==================
   735  
   736   * fix persistence of modified `req.params[name]` from `app.param()`
   737   * deps: accepts@1.0.3
   738     - deps: negotiator@0.4.6
   739   * deps: debug@1.0.2
   740   * deps: send@0.4.3
   741     - Do not throw un-catchable error on file open race condition
   742     - Use `escape-html` for HTML escaping
   743     - deps: debug@1.0.2
   744     - deps: finished@1.2.2
   745     - deps: fresh@0.2.2
   746   * deps: serve-static@1.2.3
   747     - Do not throw un-catchable error on file open race condition
   748     - deps: send@0.4.3
   749  
   750  4.4.2 / 2014-06-09
   751  ==================
   752  
   753   * fix catching errors from top-level handlers
   754   * use `vary` module for `res.vary`
   755   * deps: debug@1.0.1
   756   * deps: proxy-addr@1.0.1
   757   * deps: send@0.4.2
   758     - fix "event emitter leak" warnings
   759     - deps: debug@1.0.1
   760     - deps: finished@1.2.1
   761   * deps: serve-static@1.2.2
   762     - fix "event emitter leak" warnings
   763     - deps: send@0.4.2
   764   * deps: type-is@1.2.1
   765  
   766  4.4.1 / 2014-06-02
   767  ==================
   768  
   769   * deps: methods@1.0.1
   770   * deps: send@0.4.1
   771     - Send `max-age` in `Cache-Control` in correct format
   772   * deps: serve-static@1.2.1
   773     - use `escape-html` for escaping
   774     - deps: send@0.4.1
   775  
   776  4.4.0 / 2014-05-30
   777  ==================
   778  
   779   * custom etag control with `app.set('etag', val)`
   780     - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation
   781     - `app.set('etag', 'weak')` weak tag
   782     - `app.set('etag', 'strong')` strong etag
   783     - `app.set('etag', false)` turn off
   784     - `app.set('etag', true)` standard etag
   785   * mark `res.send` ETag as weak and reduce collisions
   786   * update accepts to 1.0.2
   787     - Fix interpretation when header not in request
   788   * update send to 0.4.0
   789     - Calculate ETag with md5 for reduced collisions
   790     - Ignore stream errors after request ends
   791     - deps: debug@0.8.1
   792   * update serve-static to 1.2.0
   793     - Calculate ETag with md5 for reduced collisions
   794     - Ignore stream errors after request ends
   795     - deps: send@0.4.0
   796  
   797  4.3.2 / 2014-05-28
   798  ==================
   799  
   800   * fix handling of errors from `router.param()` callbacks
   801  
   802  4.3.1 / 2014-05-23
   803  ==================
   804  
   805   * revert "fix behavior of multiple `app.VERB` for the same path"
   806     - this caused a regression in the order of route execution
   807  
   808  4.3.0 / 2014-05-21
   809  ==================
   810  
   811   * add `req.baseUrl` to access the path stripped from `req.url` in routes
   812   * fix behavior of multiple `app.VERB` for the same path
   813   * fix issue routing requests among sub routers
   814   * invoke `router.param()` only when necessary instead of every match
   815   * proper proxy trust with `app.set('trust proxy', trust)`
   816     - `app.set('trust proxy', 1)` trust first hop
   817     - `app.set('trust proxy', 'loopback')` trust loopback addresses
   818     - `app.set('trust proxy', '10.0.0.1')` trust single IP
   819     - `app.set('trust proxy', '10.0.0.1/16')` trust subnet
   820     - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list
   821     - `app.set('trust proxy', false)` turn off
   822     - `app.set('trust proxy', true)` trust everything
   823   * set proper `charset` in `Content-Type` for `res.send`
   824   * update type-is to 1.2.0
   825     - support suffix matching
   826  
   827  4.2.0 / 2014-05-11
   828  ==================
   829  
   830   * deprecate `app.del()` -- use `app.delete()` instead
   831   * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead
   832     - the edge-case `res.json(status, num)` requires `res.status(status).json(num)`
   833   * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead
   834     - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)`
   835   * fix `req.next` when inside router instance
   836   * include `ETag` header in `HEAD` requests
   837   * keep previous `Content-Type` for `res.jsonp`
   838   * support PURGE method
   839     - add `app.purge`
   840     - add `router.purge`
   841     - include PURGE in `app.all`
   842   * update debug to 0.8.0
   843     - add `enable()` method
   844     - change from stderr to stdout
   845   * update methods to 1.0.0
   846     - add PURGE
   847  
   848  4.1.2 / 2014-05-08
   849  ==================
   850  
   851   * fix `req.host` for IPv6 literals
   852   * fix `res.jsonp` error if callback param is object
   853  
   854  4.1.1 / 2014-04-27
   855  ==================
   856  
   857   * fix package.json to reflect supported node version
   858  
   859  4.1.0 / 2014-04-24
   860  ==================
   861  
   862   * pass options from `res.sendfile` to `send`
   863   * preserve casing of headers in `res.header` and `res.set`
   864   * support unicode file names in `res.attachment` and `res.download`
   865   * update accepts to 1.0.1
   866     - deps: negotiator@0.4.0
   867   * update cookie to 0.1.2
   868     - Fix for maxAge == 0
   869     - made compat with expires field
   870   * update send to 0.3.0
   871     - Accept API options in options object
   872     - Coerce option types
   873     - Control whether to generate etags
   874     - Default directory access to 403 when index disabled
   875     - Fix sending files with dots without root set
   876     - Include file path in etag
   877     - Make "Can't set headers after they are sent." catchable
   878     - Send full entity-body for multi range requests
   879     - Set etags to "weak"
   880     - Support "If-Range" header
   881     - Support multiple index paths
   882     - deps: mime@1.2.11
   883   * update serve-static to 1.1.0
   884     - Accept options directly to `send` module
   885     - Resolve relative paths at middleware setup
   886     - Use parseurl to parse the URL from request
   887     - deps: send@0.3.0
   888   * update type-is to 1.1.0
   889     - add non-array values support
   890     - add `multipart` as a shorthand
   891  
   892  4.0.0 / 2014-04-09
   893  ==================
   894  
   895   * remove:
   896     - node 0.8 support
   897     - connect and connect's patches except for charset handling
   898     - express(1) - moved to [express-generator](https://github.com/expressjs/generator)
   899     - `express.createServer()` - it has been deprecated for a long time. Use `express()`
   900     - `app.configure` - use logic in your own app code
   901     - `app.router` - is removed
   902     - `req.auth` - use `basic-auth` instead
   903     - `req.accepted*` - use `req.accepts*()` instead
   904     - `res.location` - relative URL resolution is removed
   905     - `res.charset` - include the charset in the content type when using `res.set()`
   906     - all bundled middleware except `static`
   907   * change:
   908     - `app.route` -> `app.mountpath` when mounting an express app in another express app
   909     - `json spaces` no longer enabled by default in development
   910     - `req.accepts*` -> `req.accepts*s` - i.e. `req.acceptsEncoding` -> `req.acceptsEncodings`
   911     - `req.params` is now an object instead of an array
   912     - `res.locals` is no longer a function. It is a plain js object. Treat it as such.
   913     - `res.headerSent` -> `res.headersSent` to match node.js ServerResponse object
   914   * refactor:
   915     - `req.accepts*` with [accepts](https://github.com/expressjs/accepts)
   916     - `req.is` with [type-is](https://github.com/expressjs/type-is)
   917     - [path-to-regexp](https://github.com/component/path-to-regexp)
   918   * add:
   919     - `app.router()` - returns the app Router instance
   920     - `app.route()` - Proxy to the app's `Router#route()` method to create a new route
   921     - Router & Route - public API
   922  
   923  3.21.2 / 2015-07-31
   924  ===================
   925  
   926    * deps: connect@2.30.2
   927      - deps: body-parser@~1.13.3
   928      - deps: compression@~1.5.2
   929      - deps: errorhandler@~1.4.2
   930      - deps: method-override@~2.3.5
   931      - deps: serve-index@~1.7.2
   932      - deps: type-is@~1.6.6
   933      - deps: vhost@~3.0.1
   934    * deps: vary@~1.0.1
   935      - Fix setting empty header from empty `field`
   936      - perf: enable strict mode
   937      - perf: remove argument reassignments
   938  
   939  3.21.1 / 2015-07-05
   940  ===================
   941  
   942    * deps: basic-auth@~1.0.3
   943    * deps: connect@2.30.1
   944      - deps: body-parser@~1.13.2
   945      - deps: compression@~1.5.1
   946      - deps: errorhandler@~1.4.1
   947      - deps: morgan@~1.6.1
   948      - deps: pause@0.1.0
   949      - deps: qs@4.0.0
   950      - deps: serve-index@~1.7.1
   951      - deps: type-is@~1.6.4
   952  
   953  3.21.0 / 2015-06-18
   954  ===================
   955  
   956    * deps: basic-auth@1.0.2
   957      - perf: enable strict mode
   958      - perf: hoist regular expression
   959      - perf: parse with regular expressions
   960      - perf: remove argument reassignment
   961    * deps: connect@2.30.0
   962      - deps: body-parser@~1.13.1
   963      - deps: bytes@2.1.0
   964      - deps: compression@~1.5.0
   965      - deps: cookie@0.1.3
   966      - deps: cookie-parser@~1.3.5
   967      - deps: csurf@~1.8.3
   968      - deps: errorhandler@~1.4.0
   969      - deps: express-session@~1.11.3
   970      - deps: finalhandler@0.4.0
   971      - deps: fresh@0.3.0
   972      - deps: morgan@~1.6.0
   973      - deps: serve-favicon@~2.3.0
   974      - deps: serve-index@~1.7.0
   975      - deps: serve-static@~1.10.0
   976      - deps: type-is@~1.6.3
   977    * deps: cookie@0.1.3
   978      - perf: deduce the scope of try-catch deopt
   979      - perf: remove argument reassignments
   980    * deps: escape-html@1.0.2
   981    * deps: etag@~1.7.0
   982      - Always include entity length in ETags for hash length extensions
   983      - Generate non-Stats ETags using MD5 only (no longer CRC32)
   984      - Improve stat performance by removing hashing
   985      - Improve support for JXcore
   986      - Remove base64 padding in ETags to shorten
   987      - Support "fake" stats objects in environments without fs
   988      - Use MD5 instead of MD4 in weak ETags over 1KB
   989    * deps: fresh@0.3.0
   990      - Add weak `ETag` matching support
   991    * deps: mkdirp@0.5.1
   992      - Work in global strict mode
   993    * deps: send@0.13.0
   994      - Allow Node.js HTTP server to set `Date` response header
   995      - Fix incorrectly removing `Content-Location` on 304 response
   996      - Improve the default redirect response headers
   997      - Send appropriate headers on default error response
   998      - Use `http-errors` for standard emitted errors
   999      - Use `statuses` instead of `http` module for status messages
  1000      - deps: escape-html@1.0.2
  1001      - deps: etag@~1.7.0
  1002      - deps: fresh@0.3.0
  1003      - deps: on-finished@~2.3.0
  1004      - perf: enable strict mode
  1005      - perf: remove unnecessary array allocations
  1006  
  1007  3.20.3 / 2015-05-17
  1008  ===================
  1009  
  1010    * deps: connect@2.29.2
  1011      - deps: body-parser@~1.12.4
  1012      - deps: compression@~1.4.4
  1013      - deps: connect-timeout@~1.6.2
  1014      - deps: debug@~2.2.0
  1015      - deps: depd@~1.0.1
  1016      - deps: errorhandler@~1.3.6
  1017      - deps: finalhandler@0.3.6
  1018      - deps: method-override@~2.3.3
  1019      - deps: morgan@~1.5.3
  1020      - deps: qs@2.4.2
  1021      - deps: response-time@~2.3.1
  1022      - deps: serve-favicon@~2.2.1
  1023      - deps: serve-index@~1.6.4
  1024      - deps: serve-static@~1.9.3
  1025      - deps: type-is@~1.6.2
  1026    * deps: debug@~2.2.0
  1027      - deps: ms@0.7.1
  1028    * deps: depd@~1.0.1
  1029    * deps: proxy-addr@~1.0.8
  1030      - deps: ipaddr.js@1.0.1
  1031    * deps: send@0.12.3
  1032      - deps: debug@~2.2.0
  1033      - deps: depd@~1.0.1
  1034      - deps: etag@~1.6.0
  1035      - deps: ms@0.7.1
  1036      - deps: on-finished@~2.2.1
  1037  
  1038  3.20.2 / 2015-03-16
  1039  ===================
  1040  
  1041    * deps: connect@2.29.1
  1042      - deps: body-parser@~1.12.2
  1043      - deps: compression@~1.4.3
  1044      - deps: connect-timeout@~1.6.1
  1045      - deps: debug@~2.1.3
  1046      - deps: errorhandler@~1.3.5
  1047      - deps: express-session@~1.10.4
  1048      - deps: finalhandler@0.3.4
  1049      - deps: method-override@~2.3.2
  1050      - deps: morgan@~1.5.2
  1051      - deps: qs@2.4.1
  1052      - deps: serve-index@~1.6.3
  1053      - deps: serve-static@~1.9.2
  1054      - deps: type-is@~1.6.1
  1055    * deps: debug@~2.1.3
  1056      - Fix high intensity foreground color for bold
  1057      - deps: ms@0.7.0
  1058    * deps: merge-descriptors@1.0.0
  1059    * deps: proxy-addr@~1.0.7
  1060      - deps: ipaddr.js@0.1.9
  1061    * deps: send@0.12.2
  1062      - Throw errors early for invalid `extensions` or `index` options
  1063      - deps: debug@~2.1.3
  1064  
  1065  3.20.1 / 2015-02-28
  1066  ===================
  1067  
  1068    * Fix `req.host` when using "trust proxy" hops count
  1069    * Fix `req.protocol`/`req.secure` when using "trust proxy" hops count
  1070  
  1071  3.20.0 / 2015-02-18
  1072  ===================
  1073  
  1074    * Fix `"trust proxy"` setting to inherit when app is mounted
  1075    * Generate `ETag`s for all request responses
  1076      - No longer restricted to only responses for `GET` and `HEAD` requests
  1077    * Use `content-type` to parse `Content-Type` headers
  1078    * deps: connect@2.29.0
  1079      - Use `content-type` to parse `Content-Type` headers
  1080      - deps: body-parser@~1.12.0
  1081      - deps: compression@~1.4.1
  1082      - deps: connect-timeout@~1.6.0
  1083      - deps: cookie-parser@~1.3.4
  1084      - deps: cookie-signature@1.0.6
  1085      - deps: csurf@~1.7.0
  1086      - deps: errorhandler@~1.3.4
  1087      - deps: express-session@~1.10.3
  1088      - deps: http-errors@~1.3.1
  1089      - deps: response-time@~2.3.0
  1090      - deps: serve-index@~1.6.2
  1091      - deps: serve-static@~1.9.1
  1092      - deps: type-is@~1.6.0
  1093    * deps: cookie-signature@1.0.6
  1094    * deps: send@0.12.1
  1095      - Always read the stat size from the file
  1096      - Fix mutating passed-in `options`
  1097      - deps: mime@1.3.4
  1098  
  1099  3.19.2 / 2015-02-01
  1100  ===================
  1101  
  1102    * deps: connect@2.28.3
  1103      - deps: compression@~1.3.1
  1104      - deps: csurf@~1.6.6
  1105      - deps: errorhandler@~1.3.3
  1106      - deps: express-session@~1.10.2
  1107      - deps: serve-index@~1.6.1
  1108      - deps: type-is@~1.5.6
  1109    * deps: proxy-addr@~1.0.6
  1110      - deps: ipaddr.js@0.1.8
  1111  
  1112  3.19.1 / 2015-01-20
  1113  ===================
  1114  
  1115    * deps: connect@2.28.2
  1116      - deps: body-parser@~1.10.2
  1117      - deps: serve-static@~1.8.1
  1118    * deps: send@0.11.1
  1119      - Fix root path disclosure
  1120  
  1121  3.19.0 / 2015-01-09
  1122  ===================
  1123  
  1124    * Fix `OPTIONS` responses to include the `HEAD` method property
  1125    * Use `readline` for prompt in `express(1)`
  1126    * deps: commander@2.6.0
  1127    * deps: connect@2.28.1
  1128      - deps: body-parser@~1.10.1
  1129      - deps: compression@~1.3.0
  1130      - deps: connect-timeout@~1.5.0
  1131      - deps: csurf@~1.6.4
  1132      - deps: debug@~2.1.1
  1133      - deps: errorhandler@~1.3.2
  1134      - deps: express-session@~1.10.1
  1135      - deps: finalhandler@0.3.3
  1136      - deps: method-override@~2.3.1
  1137      - deps: morgan@~1.5.1
  1138      - deps: serve-favicon@~2.2.0
  1139      - deps: serve-index@~1.6.0
  1140      - deps: serve-static@~1.8.0
  1141      - deps: type-is@~1.5.5
  1142    * deps: debug@~2.1.1
  1143    * deps: methods@~1.1.1
  1144    * deps: proxy-addr@~1.0.5
  1145      - deps: ipaddr.js@0.1.6
  1146    * deps: send@0.11.0
  1147      - deps: debug@~2.1.1
  1148      - deps: etag@~1.5.1
  1149      - deps: ms@0.7.0
  1150      - deps: on-finished@~2.2.0
  1151  
  1152  3.18.6 / 2014-12-12
  1153  ===================
  1154  
  1155    * Fix exception in `req.fresh`/`req.stale` without response headers
  1156  
  1157  3.18.5 / 2014-12-11
  1158  ===================
  1159  
  1160    * deps: connect@2.27.6
  1161      - deps: compression@~1.2.2
  1162      - deps: express-session@~1.9.3
  1163      - deps: http-errors@~1.2.8
  1164      - deps: serve-index@~1.5.3
  1165      - deps: type-is@~1.5.4
  1166  
  1167  3.18.4 / 2014-11-23
  1168  ===================
  1169  
  1170    * deps: connect@2.27.4
  1171      - deps: body-parser@~1.9.3
  1172      - deps: compression@~1.2.1
  1173      - deps: errorhandler@~1.2.3
  1174      - deps: express-session@~1.9.2
  1175      - deps: qs@2.3.3
  1176      - deps: serve-favicon@~2.1.7
  1177      - deps: serve-static@~1.5.1
  1178      - deps: type-is@~1.5.3
  1179    * deps: etag@~1.5.1
  1180    * deps: proxy-addr@~1.0.4
  1181      - deps: ipaddr.js@0.1.5
  1182  
  1183  3.18.3 / 2014-11-09
  1184  ===================
  1185  
  1186    * deps: connect@2.27.3
  1187      - Correctly invoke async callback asynchronously
  1188      - deps: csurf@~1.6.3
  1189  
  1190  3.18.2 / 2014-10-28
  1191  ===================
  1192  
  1193    * deps: connect@2.27.2
  1194      - Fix handling of URLs containing `://` in the path
  1195      - deps: body-parser@~1.9.2
  1196      - deps: qs@2.3.2
  1197  
  1198  3.18.1 / 2014-10-22
  1199  ===================
  1200  
  1201    * Fix internal `utils.merge` deprecation warnings
  1202    * deps: connect@2.27.1
  1203      - deps: body-parser@~1.9.1
  1204      - deps: express-session@~1.9.1
  1205      - deps: finalhandler@0.3.2
  1206      - deps: morgan@~1.4.1
  1207      - deps: qs@2.3.0
  1208      - deps: serve-static@~1.7.1
  1209    * deps: send@0.10.1
  1210      - deps: on-finished@~2.1.1
  1211  
  1212  3.18.0 / 2014-10-17
  1213  ===================
  1214  
  1215    * Use `content-disposition` module for `res.attachment`/`res.download`
  1216      - Sends standards-compliant `Content-Disposition` header
  1217      - Full Unicode support
  1218    * Use `etag` module to generate `ETag` headers
  1219    * deps: connect@2.27.0
  1220      - Use `http-errors` module for creating errors
  1221      - Use `utils-merge` module for merging objects
  1222      - deps: body-parser@~1.9.0
  1223      - deps: compression@~1.2.0
  1224      - deps: connect-timeout@~1.4.0
  1225      - deps: debug@~2.1.0
  1226      - deps: depd@~1.0.0
  1227      - deps: express-session@~1.9.0
  1228      - deps: finalhandler@0.3.1
  1229      - deps: method-override@~2.3.0
  1230      - deps: morgan@~1.4.0
  1231      - deps: response-time@~2.2.0
  1232      - deps: serve-favicon@~2.1.6
  1233      - deps: serve-index@~1.5.0
  1234      - deps: serve-static@~1.7.0
  1235    * deps: debug@~2.1.0
  1236      - Implement `DEBUG_FD` env variable support
  1237    * deps: depd@~1.0.0
  1238    * deps: send@0.10.0
  1239      - deps: debug@~2.1.0
  1240      - deps: depd@~1.0.0
  1241      - deps: etag@~1.5.0
  1242  
  1243  3.17.8 / 2014-10-15
  1244  ===================
  1245  
  1246    * deps: connect@2.26.6
  1247      - deps: compression@~1.1.2
  1248      - deps: csurf@~1.6.2
  1249      - deps: errorhandler@~1.2.2
  1250  
  1251  3.17.7 / 2014-10-08
  1252  ===================
  1253  
  1254    * deps: connect@2.26.5
  1255      - Fix accepting non-object arguments to `logger`
  1256      - deps: serve-static@~1.6.4
  1257  
  1258  3.17.6 / 2014-10-02
  1259  ===================
  1260  
  1261    * deps: connect@2.26.4
  1262      - deps: morgan@~1.3.2
  1263      - deps: type-is@~1.5.2
  1264  
  1265  3.17.5 / 2014-09-24
  1266  ===================
  1267  
  1268    * deps: connect@2.26.3
  1269      - deps: body-parser@~1.8.4
  1270      - deps: serve-favicon@~2.1.5
  1271      - deps: serve-static@~1.6.3
  1272    * deps: proxy-addr@~1.0.3
  1273      - Use `forwarded` npm module
  1274    * deps: send@0.9.3
  1275      - deps: etag@~1.4.0
  1276  
  1277  3.17.4 / 2014-09-19
  1278  ===================
  1279  
  1280    * deps: connect@2.26.2
  1281      - deps: body-parser@~1.8.3
  1282      - deps: qs@2.2.4
  1283  
  1284  3.17.3 / 2014-09-18
  1285  ===================
  1286  
  1287    * deps: proxy-addr@~1.0.2
  1288      - Fix a global leak when multiple subnets are trusted
  1289      - deps: ipaddr.js@0.1.3
  1290  
  1291  3.17.2 / 2014-09-15
  1292  ===================
  1293  
  1294    * Use `crc` instead of `buffer-crc32` for speed
  1295    * deps: connect@2.26.1
  1296      - deps: body-parser@~1.8.2
  1297      - deps: depd@0.4.5
  1298      - deps: express-session@~1.8.2
  1299      - deps: morgan@~1.3.1
  1300      - deps: serve-favicon@~2.1.3
  1301      - deps: serve-static@~1.6.2
  1302    * deps: depd@0.4.5
  1303    * deps: send@0.9.2
  1304      - deps: depd@0.4.5
  1305      - deps: etag@~1.3.1
  1306      - deps: range-parser@~1.0.2
  1307  
  1308  3.17.1 / 2014-09-08
  1309  ===================
  1310  
  1311    * Fix error in `req.subdomains` on empty host
  1312  
  1313  3.17.0 / 2014-09-08
  1314  ===================
  1315  
  1316    * Support `X-Forwarded-Host` in `req.subdomains`
  1317    * Support IP address host in `req.subdomains`
  1318    * deps: connect@2.26.0
  1319      - deps: body-parser@~1.8.1
  1320      - deps: compression@~1.1.0
  1321      - deps: connect-timeout@~1.3.0
  1322      - deps: cookie-parser@~1.3.3
  1323      - deps: cookie-signature@1.0.5
  1324      - deps: csurf@~1.6.1
  1325      - deps: debug@~2.0.0
  1326      - deps: errorhandler@~1.2.0
  1327      - deps: express-session@~1.8.1
  1328      - deps: finalhandler@0.2.0
  1329      - deps: fresh@0.2.4
  1330      - deps: media-typer@0.3.0
  1331      - deps: method-override@~2.2.0
  1332      - deps: morgan@~1.3.0
  1333      - deps: qs@2.2.3
  1334      - deps: serve-favicon@~2.1.3
  1335      - deps: serve-index@~1.2.1
  1336      - deps: serve-static@~1.6.1
  1337      - deps: type-is@~1.5.1
  1338      - deps: vhost@~3.0.0
  1339    * deps: cookie-signature@1.0.5
  1340    * deps: debug@~2.0.0
  1341    * deps: fresh@0.2.4
  1342    * deps: media-typer@0.3.0
  1343      - Throw error when parameter format invalid on parse
  1344    * deps: range-parser@~1.0.2
  1345    * deps: send@0.9.1
  1346      - Add `lastModified` option
  1347      - Use `etag` to generate `ETag` header
  1348      - deps: debug@~2.0.0
  1349      - deps: fresh@0.2.4
  1350    * deps: vary@~1.0.0
  1351      - Accept valid `Vary` header string as `field`
  1352  
  1353  3.16.10 / 2014-09-04
  1354  ====================
  1355  
  1356    * deps: connect@2.25.10
  1357      - deps: serve-static@~1.5.4
  1358    * deps: send@0.8.5
  1359      - Fix a path traversal issue when using `root`
  1360      - Fix malicious path detection for empty string path
  1361  
  1362  3.16.9 / 2014-08-29
  1363  ===================
  1364  
  1365    * deps: connect@2.25.9
  1366      - deps: body-parser@~1.6.7
  1367      - deps: qs@2.2.2
  1368  
  1369  3.16.8 / 2014-08-27
  1370  ===================
  1371  
  1372    * deps: connect@2.25.8
  1373      - deps: body-parser@~1.6.6
  1374      - deps: csurf@~1.4.1
  1375      - deps: qs@2.2.0
  1376  
  1377  3.16.7 / 2014-08-18
  1378  ===================
  1379  
  1380    * deps: connect@2.25.7
  1381      - deps: body-parser@~1.6.5
  1382      - deps: express-session@~1.7.6
  1383      - deps: morgan@~1.2.3
  1384      - deps: serve-static@~1.5.3
  1385    * deps: send@0.8.3
  1386      - deps: destroy@1.0.3
  1387      - deps: on-finished@2.1.0
  1388  
  1389  3.16.6 / 2014-08-14
  1390  ===================
  1391  
  1392    * deps: connect@2.25.6
  1393      - deps: body-parser@~1.6.4
  1394      - deps: qs@1.2.2
  1395      - deps: serve-static@~1.5.2
  1396    * deps: send@0.8.2
  1397      - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream`
  1398  
  1399  3.16.5 / 2014-08-11
  1400  ===================
  1401  
  1402    * deps: connect@2.25.5
  1403      - Fix backwards compatibility in `logger`
  1404  
  1405  3.16.4 / 2014-08-10
  1406  ===================
  1407  
  1408    * Fix original URL parsing in `res.location`
  1409    * deps: connect@2.25.4
  1410      - Fix `query` middleware breaking with argument
  1411      - deps: body-parser@~1.6.3
  1412      - deps: compression@~1.0.11
  1413      - deps: connect-timeout@~1.2.2
  1414      - deps: express-session@~1.7.5
  1415      - deps: method-override@~2.1.3
  1416      - deps: on-headers@~1.0.0
  1417      - deps: parseurl@~1.3.0
  1418      - deps: qs@1.2.1
  1419      - deps: response-time@~2.0.1
  1420      - deps: serve-index@~1.1.6
  1421      - deps: serve-static@~1.5.1
  1422    * deps: parseurl@~1.3.0
  1423  
  1424  3.16.3 / 2014-08-07
  1425  ===================
  1426  
  1427    * deps: connect@2.25.3
  1428      - deps: multiparty@3.3.2
  1429  
  1430  3.16.2 / 2014-08-07
  1431  ===================
  1432  
  1433    * deps: connect@2.25.2
  1434      - deps: body-parser@~1.6.2
  1435      - deps: qs@1.2.0
  1436  
  1437  3.16.1 / 2014-08-06
  1438  ===================
  1439  
  1440    * deps: connect@2.25.1
  1441      - deps: body-parser@~1.6.1
  1442      - deps: qs@1.1.0
  1443  
  1444  3.16.0 / 2014-08-05
  1445  ===================
  1446  
  1447    * deps: connect@2.25.0
  1448      - deps: body-parser@~1.6.0
  1449      - deps: compression@~1.0.10
  1450      - deps: csurf@~1.4.0
  1451      - deps: express-session@~1.7.4
  1452      - deps: qs@1.0.2
  1453      - deps: serve-static@~1.5.0
  1454    * deps: send@0.8.1
  1455      - Add `extensions` option
  1456  
  1457  3.15.3 / 2014-08-04
  1458  ===================
  1459  
  1460    * fix `res.sendfile` regression for serving directory index files
  1461    * deps: connect@2.24.3
  1462      - deps: serve-index@~1.1.5
  1463      - deps: serve-static@~1.4.4
  1464    * deps: send@0.7.4
  1465      - Fix incorrect 403 on Windows and Node.js 0.11
  1466      - Fix serving index files without root dir
  1467  
  1468  3.15.2 / 2014-07-27
  1469  ===================
  1470  
  1471    * deps: connect@2.24.2
  1472      - deps: body-parser@~1.5.2
  1473      - deps: depd@0.4.4
  1474      - deps: express-session@~1.7.2
  1475      - deps: morgan@~1.2.2
  1476      - deps: serve-static@~1.4.2
  1477    * deps: depd@0.4.4
  1478      - Work-around v8 generating empty stack traces
  1479    * deps: send@0.7.2
  1480      - deps: depd@0.4.4
  1481  
  1482  3.15.1 / 2014-07-26
  1483  ===================
  1484  
  1485    * deps: connect@2.24.1
  1486      - deps: body-parser@~1.5.1
  1487      - deps: depd@0.4.3
  1488      - deps: express-session@~1.7.1
  1489      - deps: morgan@~1.2.1
  1490      - deps: serve-index@~1.1.4
  1491      - deps: serve-static@~1.4.1
  1492    * deps: depd@0.4.3
  1493      - Fix exception when global `Error.stackTraceLimit` is too low
  1494    * deps: send@0.7.1
  1495      - deps: depd@0.4.3
  1496  
  1497  3.15.0 / 2014-07-22
  1498  ===================
  1499  
  1500    * Fix `req.protocol` for proxy-direct connections
  1501    * Pass options from `res.sendfile` to `send`
  1502    * deps: connect@2.24.0
  1503      - deps: body-parser@~1.5.0
  1504      - deps: compression@~1.0.9
  1505      - deps: connect-timeout@~1.2.1
  1506      - deps: debug@1.0.4
  1507      - deps: depd@0.4.2
  1508      - deps: express-session@~1.7.0
  1509      - deps: finalhandler@0.1.0
  1510      - deps: method-override@~2.1.2
  1511      - deps: morgan@~1.2.0
  1512      - deps: multiparty@3.3.1
  1513      - deps: parseurl@~1.2.0
  1514      - deps: serve-static@~1.4.0
  1515    * deps: debug@1.0.4
  1516    * deps: depd@0.4.2
  1517      - Add `TRACE_DEPRECATION` environment variable
  1518      - Remove non-standard grey color from color output
  1519      - Support `--no-deprecation` argument
  1520      - Support `--trace-deprecation` argument
  1521    * deps: parseurl@~1.2.0
  1522      - Cache URLs based on original value
  1523      - Remove no-longer-needed URL mis-parse work-around
  1524      - Simplify the "fast-path" `RegExp`
  1525    * deps: send@0.7.0
  1526      - Add `dotfiles` option
  1527      - Cap `maxAge` value to 1 year
  1528      - deps: debug@1.0.4
  1529      - deps: depd@0.4.2
  1530  
  1531  3.14.0 / 2014-07-11
  1532  ===================
  1533  
  1534   * add explicit "Rosetta Flash JSONP abuse" protection
  1535     - previous versions are not vulnerable; this is just explicit protection
  1536   * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead
  1537   * fix `res.send(status, num)` to send `num` as json (not error)
  1538   * remove unnecessary escaping when `res.jsonp` returns JSON response
  1539   * deps: basic-auth@1.0.0
  1540     - support empty password
  1541     - support empty username
  1542   * deps: connect@2.23.0
  1543     - deps: debug@1.0.3
  1544     - deps: express-session@~1.6.4
  1545     - deps: method-override@~2.1.0
  1546     - deps: parseurl@~1.1.3
  1547     - deps: serve-static@~1.3.1
  1548    * deps: debug@1.0.3
  1549      - Add support for multiple wildcards in namespaces
  1550    * deps: methods@1.1.0
  1551      - add `CONNECT`
  1552    * deps: parseurl@~1.1.3
  1553      - faster parsing of href-only URLs
  1554  
  1555  3.13.0 / 2014-07-03
  1556  ===================
  1557  
  1558   * add deprecation message to `app.configure`
  1559   * add deprecation message to `req.auth`
  1560   * use `basic-auth` to parse `Authorization` header
  1561   * deps: connect@2.22.0
  1562     - deps: csurf@~1.3.0
  1563     - deps: express-session@~1.6.1
  1564     - deps: multiparty@3.3.0
  1565     - deps: serve-static@~1.3.0
  1566   * deps: send@0.5.0
  1567     - Accept string for `maxage` (converted by `ms`)
  1568     - Include link in default redirect response
  1569  
  1570  3.12.1 / 2014-06-26
  1571  ===================
  1572  
  1573   * deps: connect@2.21.1
  1574     - deps: cookie-parser@1.3.2
  1575     - deps: cookie-signature@1.0.4
  1576     - deps: express-session@~1.5.2
  1577     - deps: type-is@~1.3.2
  1578   * deps: cookie-signature@1.0.4
  1579     - fix for timing attacks
  1580  
  1581  3.12.0 / 2014-06-21
  1582  ===================
  1583  
  1584   * use `media-typer` to alter content-type charset
  1585   * deps: connect@2.21.0
  1586     - deprecate `connect(middleware)` -- use `app.use(middleware)` instead
  1587     - deprecate `connect.createServer()` -- use `connect()` instead
  1588     - fix `res.setHeader()` patch to work with with get -> append -> set pattern
  1589     - deps: compression@~1.0.8
  1590     - deps: errorhandler@~1.1.1
  1591     - deps: express-session@~1.5.0
  1592     - deps: serve-index@~1.1.3
  1593  
  1594  3.11.0 / 2014-06-19
  1595  ===================
  1596  
  1597   * deprecate things with `depd` module
  1598   * deps: buffer-crc32@0.2.3
  1599   * deps: connect@2.20.2
  1600     - deprecate `verify` option to `json` -- use `body-parser` npm module instead
  1601     - deprecate `verify` option to `urlencoded` -- use `body-parser` npm module instead
  1602     - deprecate things with `depd` module
  1603     - use `finalhandler` for final response handling
  1604     - use `media-typer` to parse `content-type` for charset
  1605     - deps: body-parser@1.4.3
  1606     - deps: connect-timeout@1.1.1
  1607     - deps: cookie-parser@1.3.1
  1608     - deps: csurf@1.2.2
  1609     - deps: errorhandler@1.1.0
  1610     - deps: express-session@1.4.0
  1611     - deps: multiparty@3.2.9
  1612     - deps: serve-index@1.1.2
  1613     - deps: type-is@1.3.1
  1614     - deps: vhost@2.0.0
  1615  
  1616  3.10.5 / 2014-06-11
  1617  ===================
  1618  
  1619   * deps: connect@2.19.6
  1620     - deps: body-parser@1.3.1
  1621     - deps: compression@1.0.7
  1622     - deps: debug@1.0.2
  1623     - deps: serve-index@1.1.1
  1624     - deps: serve-static@1.2.3
  1625   * deps: debug@1.0.2
  1626   * deps: send@0.4.3
  1627     - Do not throw un-catchable error on file open race condition
  1628     - Use `escape-html` for HTML escaping
  1629     - deps: debug@1.0.2
  1630     - deps: finished@1.2.2
  1631     - deps: fresh@0.2.2
  1632  
  1633  3.10.4 / 2014-06-09
  1634  ===================
  1635  
  1636   * deps: connect@2.19.5
  1637     - fix "event emitter leak" warnings
  1638     - deps: csurf@1.2.1
  1639     - deps: debug@1.0.1
  1640     - deps: serve-static@1.2.2
  1641     - deps: type-is@1.2.1
  1642   * deps: debug@1.0.1
  1643   * deps: send@0.4.2
  1644     - fix "event emitter leak" warnings
  1645     - deps: finished@1.2.1
  1646     - deps: debug@1.0.1
  1647  
  1648  3.10.3 / 2014-06-05
  1649  ===================
  1650  
  1651   * use `vary` module for `res.vary`
  1652   * deps: connect@2.19.4
  1653     - deps: errorhandler@1.0.2
  1654     - deps: method-override@2.0.2
  1655     - deps: serve-favicon@2.0.1
  1656   * deps: debug@1.0.0
  1657  
  1658  3.10.2 / 2014-06-03
  1659  ===================
  1660  
  1661   * deps: connect@2.19.3
  1662     - deps: compression@1.0.6
  1663  
  1664  3.10.1 / 2014-06-03
  1665  ===================
  1666  
  1667   * deps: connect@2.19.2
  1668     - deps: compression@1.0.4
  1669   * deps: proxy-addr@1.0.1
  1670  
  1671  3.10.0 / 2014-06-02
  1672  ===================
  1673  
  1674   * deps: connect@2.19.1
  1675     - deprecate `methodOverride()` -- use `method-override` npm module instead
  1676     - deps: body-parser@1.3.0
  1677     - deps: method-override@2.0.1
  1678     - deps: multiparty@3.2.8
  1679     - deps: response-time@2.0.0
  1680     - deps: serve-static@1.2.1
  1681   * deps: methods@1.0.1
  1682   * deps: send@0.4.1
  1683     - Send `max-age` in `Cache-Control` in correct format
  1684  
  1685  3.9.0 / 2014-05-30
  1686  ==================
  1687  
  1688   * custom etag control with `app.set('etag', val)`
  1689     - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation
  1690     - `app.set('etag', 'weak')` weak tag
  1691     - `app.set('etag', 'strong')` strong etag
  1692     - `app.set('etag', false)` turn off
  1693     - `app.set('etag', true)` standard etag
  1694   * Include ETag in HEAD requests
  1695   * mark `res.send` ETag as weak and reduce collisions
  1696   * update connect to 2.18.0
  1697     - deps: compression@1.0.3
  1698     - deps: serve-index@1.1.0
  1699     - deps: serve-static@1.2.0
  1700   * update send to 0.4.0
  1701     - Calculate ETag with md5 for reduced collisions
  1702     - Ignore stream errors after request ends
  1703     - deps: debug@0.8.1
  1704  
  1705  3.8.1 / 2014-05-27
  1706  ==================
  1707  
  1708   * update connect to 2.17.3
  1709     - deps: body-parser@1.2.2
  1710     - deps: express-session@1.2.1
  1711     - deps: method-override@1.0.2
  1712  
  1713  3.8.0 / 2014-05-21
  1714  ==================
  1715  
  1716   * keep previous `Content-Type` for `res.jsonp`
  1717   * set proper `charset` in `Content-Type` for `res.send`
  1718   * update connect to 2.17.1
  1719     - fix `res.charset` appending charset when `content-type` has one
  1720     - deps: express-session@1.2.0
  1721     - deps: morgan@1.1.1
  1722     - deps: serve-index@1.0.3
  1723  
  1724  3.7.0 / 2014-05-18
  1725  ==================
  1726  
  1727   * proper proxy trust with `app.set('trust proxy', trust)`
  1728     - `app.set('trust proxy', 1)` trust first hop
  1729     - `app.set('trust proxy', 'loopback')` trust loopback addresses
  1730     - `app.set('trust proxy', '10.0.0.1')` trust single IP
  1731     - `app.set('trust proxy', '10.0.0.1/16')` trust subnet
  1732     - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list
  1733     - `app.set('trust proxy', false)` turn off
  1734     - `app.set('trust proxy', true)` trust everything
  1735   * update connect to 2.16.2
  1736     - deprecate `res.headerSent` -- use `res.headersSent`
  1737     - deprecate `res.on("header")` -- use on-headers module instead
  1738     - fix edge-case in `res.appendHeader` that would append in wrong order
  1739     - json: use body-parser
  1740     - urlencoded: use body-parser
  1741     - dep: bytes@1.0.0
  1742     - dep: cookie-parser@1.1.0
  1743     - dep: csurf@1.2.0
  1744     - dep: express-session@1.1.0
  1745     - dep: method-override@1.0.1
  1746  
  1747  3.6.0 / 2014-05-09
  1748  ==================
  1749  
  1750   * deprecate `app.del()` -- use `app.delete()` instead
  1751   * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead
  1752     - the edge-case `res.json(status, num)` requires `res.status(status).json(num)`
  1753   * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead
  1754     - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)`
  1755   * support PURGE method
  1756     - add `app.purge`
  1757     - add `router.purge`
  1758     - include PURGE in `app.all`
  1759   * update connect to 2.15.0
  1760     * Add `res.appendHeader`
  1761     * Call error stack even when response has been sent
  1762     * Patch `res.headerSent` to return Boolean
  1763     * Patch `res.headersSent` for node.js 0.8
  1764     * Prevent default 404 handler after response sent
  1765     * dep: compression@1.0.2
  1766     * dep: connect-timeout@1.1.0
  1767     * dep: debug@^0.8.0
  1768     * dep: errorhandler@1.0.1
  1769     * dep: express-session@1.0.4
  1770     * dep: morgan@1.0.1
  1771     * dep: serve-favicon@2.0.0
  1772     * dep: serve-index@1.0.2
  1773   * update debug to 0.8.0
  1774     * add `enable()` method
  1775     * change from stderr to stdout
  1776   * update methods to 1.0.0
  1777     - add PURGE
  1778   * update mkdirp to 0.5.0
  1779  
  1780  3.5.3 / 2014-05-08
  1781  ==================
  1782  
  1783   * fix `req.host` for IPv6 literals
  1784   * fix `res.jsonp` error if callback param is object
  1785  
  1786  3.5.2 / 2014-04-24
  1787  ==================
  1788  
  1789   * update connect to 2.14.5
  1790   * update cookie to 0.1.2
  1791   * update mkdirp to 0.4.0
  1792   * update send to 0.3.0
  1793  
  1794  3.5.1 / 2014-03-25
  1795  ==================
  1796  
  1797   * pin less-middleware in generated app
  1798  
  1799  3.5.0 / 2014-03-06
  1800  ==================
  1801  
  1802   * bump deps
  1803  
  1804  3.4.8 / 2014-01-13
  1805  ==================
  1806  
  1807   * prevent incorrect automatic OPTIONS responses #1868 @dpatti
  1808   * update binary and examples for jade 1.0 #1876 @yossi, #1877 @reqshark, #1892 @matheusazzi
  1809   * throw 400 in case of malformed paths @rlidwka
  1810  
  1811  3.4.7 / 2013-12-10
  1812  ==================
  1813  
  1814   * update connect
  1815  
  1816  3.4.6 / 2013-12-01
  1817  ==================
  1818  
  1819   * update connect (raw-body)
  1820  
  1821  3.4.5 / 2013-11-27
  1822  ==================
  1823  
  1824   * update connect
  1825   * res.location: remove leading ./ #1802 @kapouer
  1826   * res.redirect: fix `res.redirect('toString') #1829 @michaelficarra
  1827   * res.send: always send ETag when content-length > 0
  1828   * router: add Router.all() method
  1829  
  1830  3.4.4 / 2013-10-29
  1831  ==================
  1832  
  1833   * update connect
  1834   * update supertest
  1835   * update methods
  1836   * express(1): replace bodyParser() with urlencoded() and json() #1795 @chirag04
  1837  
  1838  3.4.3 / 2013-10-23
  1839  ==================
  1840  
  1841   * update connect
  1842  
  1843  3.4.2 / 2013-10-18
  1844  ==================
  1845  
  1846   * update connect
  1847   * downgrade commander
  1848  
  1849  3.4.1 / 2013-10-15
  1850  ==================
  1851  
  1852   * update connect
  1853   * update commander
  1854   * jsonp: check if callback is a function
  1855   * router: wrap encodeURIComponent in a try/catch #1735 (@lxe)
  1856   * res.format: now includes charset @1747 (@sorribas)
  1857   * res.links: allow multiple calls @1746 (@sorribas)
  1858  
  1859  3.4.0 / 2013-09-07
  1860  ==================
  1861  
  1862   * add res.vary(). Closes #1682
  1863   * update connect
  1864  
  1865  3.3.8 / 2013-09-02
  1866  ==================
  1867  
  1868   * update connect
  1869  
  1870  3.3.7 / 2013-08-28
  1871  ==================
  1872  
  1873   * update connect
  1874  
  1875  3.3.6 / 2013-08-27
  1876  ==================
  1877  
  1878   * Revert "remove charset from json responses. Closes #1631" (causes issues in some clients)
  1879   * add: req.accepts take an argument list
  1880  
  1881  3.3.4 / 2013-07-08
  1882  ==================
  1883  
  1884   * update send and connect
  1885  
  1886  3.3.3 / 2013-07-04
  1887  ==================
  1888  
  1889   * update connect
  1890  
  1891  3.3.2 / 2013-07-03
  1892  ==================
  1893  
  1894   * update connect
  1895   * update send
  1896   * remove .version export
  1897  
  1898  3.3.1 / 2013-06-27
  1899  ==================
  1900  
  1901   * update connect
  1902  
  1903  3.3.0 / 2013-06-26
  1904  ==================
  1905  
  1906   * update connect
  1907   * add support for multiple X-Forwarded-Proto values. Closes #1646
  1908   * change: remove charset from json responses. Closes #1631
  1909   * change: return actual booleans from req.accept* functions
  1910   * fix jsonp callback array throw
  1911  
  1912  3.2.6 / 2013-06-02
  1913  ==================
  1914  
  1915   * update connect
  1916  
  1917  3.2.5 / 2013-05-21
  1918  ==================
  1919  
  1920   * update connect
  1921   * update node-cookie
  1922   * add: throw a meaningful error when there is no default engine
  1923   * change generation of ETags with res.send() to GET requests only. Closes #1619
  1924  
  1925  3.2.4 / 2013-05-09
  1926  ==================
  1927  
  1928    * fix `req.subdomains` when no Host is present
  1929    * fix `req.host` when no Host is present, return undefined
  1930  
  1931  3.2.3 / 2013-05-07
  1932  ==================
  1933  
  1934    * update connect / qs
  1935  
  1936  3.2.2 / 2013-05-03
  1937  ==================
  1938  
  1939    * update qs
  1940  
  1941  3.2.1 / 2013-04-29
  1942  ==================
  1943  
  1944    * add app.VERB() paths array deprecation warning
  1945    * update connect
  1946    * update qs and remove all ~ semver crap
  1947    * fix: accept number as value of Signed Cookie
  1948  
  1949  3.2.0 / 2013-04-15
  1950  ==================
  1951  
  1952    * add "view" constructor setting to override view behaviour
  1953    * add req.acceptsEncoding(name)
  1954    * add req.acceptedEncodings
  1955    * revert cookie signature change causing session race conditions
  1956    * fix sorting of Accept values of the same quality
  1957  
  1958  3.1.2 / 2013-04-12
  1959  ==================
  1960  
  1961    * add support for custom Accept parameters
  1962    * update cookie-signature
  1963  
  1964  3.1.1 / 2013-04-01
  1965  ==================
  1966  
  1967    * add X-Forwarded-Host support to `req.host`
  1968    * fix relative redirects
  1969    * update mkdirp
  1970    * update buffer-crc32
  1971    * remove legacy app.configure() method from app template.
  1972  
  1973  3.1.0 / 2013-01-25
  1974  ==================
  1975  
  1976    * add support for leading "." in "view engine" setting
  1977    * add array support to `res.set()`
  1978    * add node 0.8.x to travis.yml
  1979    * add "subdomain offset" setting for tweaking `req.subdomains`
  1980    * add `res.location(url)` implementing `res.redirect()`-like setting of Location
  1981    * use app.get() for x-powered-by setting for inheritance
  1982    * fix colons in passwords for `req.auth`
  1983  
  1984  3.0.6 / 2013-01-04
  1985  ==================
  1986  
  1987    * add http verb methods to Router
  1988    * update connect
  1989    * fix mangling of the `res.cookie()` options object
  1990    * fix jsonp whitespace escape. Closes #1132
  1991  
  1992  3.0.5 / 2012-12-19
  1993  ==================
  1994  
  1995    * add throwing when a non-function is passed to a route
  1996    * fix: explicitly remove Transfer-Encoding header from 204 and 304 responses
  1997    * revert "add 'etag' option"
  1998  
  1999  3.0.4 / 2012-12-05
  2000  ==================
  2001  
  2002    * add 'etag' option to disable `res.send()` Etags
  2003    * add escaping of urls in text/plain in `res.redirect()`
  2004      for old browsers interpreting as html
  2005    * change crc32 module for a more liberal license
  2006    * update connect
  2007  
  2008  3.0.3 / 2012-11-13
  2009  ==================
  2010  
  2011    * update connect
  2012    * update cookie module
  2013    * fix cookie max-age
  2014  
  2015  3.0.2 / 2012-11-08
  2016  ==================
  2017  
  2018    * add OPTIONS to cors example. Closes #1398
  2019    * fix route chaining regression. Closes #1397
  2020  
  2021  3.0.1 / 2012-11-01
  2022  ==================
  2023  
  2024    * update connect
  2025  
  2026  3.0.0 / 2012-10-23
  2027  ==================
  2028  
  2029    * add `make clean`
  2030    * add "Basic" check to req.auth
  2031    * add `req.auth` test coverage
  2032    * add cb && cb(payload) to `res.jsonp()`. Closes #1374
  2033    * add backwards compat for `res.redirect()` status. Closes #1336
  2034    * add support for `res.json()` to retain previously defined Content-Types. Closes #1349
  2035    * update connect
  2036    * change `res.redirect()` to utilize a pathname-relative Location again. Closes #1382
  2037    * remove non-primitive string support for `res.send()`
  2038    * fix view-locals example. Closes #1370
  2039    * fix route-separation example
  2040  
  2041  3.0.0rc5 / 2012-09-18
  2042  ==================
  2043  
  2044    * update connect
  2045    * add redis search example
  2046    * add static-files example
  2047    * add "x-powered-by" setting (`app.disable('x-powered-by')`)
  2048    * add "application/octet-stream" redirect Accept test case. Closes #1317
  2049  
  2050  3.0.0rc4 / 2012-08-30
  2051  ==================
  2052  
  2053    * add `res.jsonp()`. Closes #1307
  2054    * add "verbose errors" option to error-pages example
  2055    * add another route example to express(1) so people are not so confused
  2056    * add redis online user activity tracking example
  2057    * update connect dep
  2058    * fix etag quoting. Closes #1310
  2059    * fix error-pages 404 status
  2060    * fix jsonp callback char restrictions
  2061    * remove old OPTIONS default response
  2062  
  2063  3.0.0rc3 / 2012-08-13
  2064  ==================
  2065  
  2066    * update connect dep
  2067    * fix signed cookies to work with `connect.cookieParser()` ("s:" prefix was missing) [tnydwrds]
  2068    * fix `res.render()` clobbering of "locals"
  2069  
  2070  3.0.0rc2 / 2012-08-03
  2071  ==================
  2072  
  2073    * add CORS example
  2074    * update connect dep
  2075    * deprecate `.createServer()` & remove old stale examples
  2076    * fix: escape `res.redirect()` link
  2077    * fix vhost example
  2078  
  2079  3.0.0rc1 / 2012-07-24
  2080  ==================
  2081  
  2082    * add more examples to view-locals
  2083    * add scheme-relative redirects (`res.redirect("//foo.com")`) support
  2084    * update cookie dep
  2085    * update connect dep
  2086    * update send dep
  2087    * fix `express(1)` -h flag, use -H for hogan. Closes #1245
  2088    * fix `res.sendfile()` socket error handling regression
  2089  
  2090  3.0.0beta7 / 2012-07-16
  2091  ==================
  2092  
  2093    * update connect dep for `send()` root normalization regression
  2094  
  2095  3.0.0beta6 / 2012-07-13
  2096  ==================
  2097  
  2098    * add `err.view` property for view errors. Closes #1226
  2099    * add "jsonp callback name" setting
  2100    * add support for "/foo/:bar*" non-greedy matches
  2101    * change `res.sendfile()` to use `send()` module
  2102    * change `res.send` to use "response-send" module
  2103    * remove `app.locals.use` and `res.locals.use`, use regular middleware
  2104  
  2105  3.0.0beta5 / 2012-07-03
  2106  ==================
  2107  
  2108    * add "make check" support
  2109    * add route-map example
  2110    * add `res.json(obj, status)` support back for BC
  2111    * add "methods" dep, remove internal methods module
  2112    * update connect dep
  2113    * update auth example to utilize cores pbkdf2
  2114    * updated tests to use "supertest"
  2115  
  2116  3.0.0beta4 / 2012-06-25
  2117  ==================
  2118  
  2119    * Added `req.auth`
  2120    * Added `req.range(size)`
  2121    * Added `res.links(obj)`
  2122    * Added `res.send(body, status)` support back for backwards compat
  2123    * Added `.default()` support to `res.format()`
  2124    * Added 2xx / 304 check to `req.fresh`
  2125    * Revert "Added + support to the router"
  2126    * Fixed `res.send()` freshness check, respect res.statusCode
  2127  
  2128  3.0.0beta3 / 2012-06-15
  2129  ==================
  2130  
  2131    * Added hogan `--hjs` to express(1) [nullfirm]
  2132    * Added another example to content-negotiation
  2133    * Added `fresh` dep
  2134    * Changed: `res.send()` always checks freshness
  2135    * Fixed: expose connects mime module. Closes #1165
  2136  
  2137  3.0.0beta2 / 2012-06-06
  2138  ==================
  2139  
  2140    * Added `+` support to the router
  2141    * Added `req.host`
  2142    * Changed `req.param()` to check route first
  2143    * Update connect dep
  2144  
  2145  3.0.0beta1 / 2012-06-01
  2146  ==================
  2147  
  2148    * Added `res.format()` callback to override default 406 behaviour
  2149    * Fixed `res.redirect()` 406. Closes #1154
  2150  
  2151  3.0.0alpha5 / 2012-05-30
  2152  ==================
  2153  
  2154    * Added `req.ip`
  2155    * Added `{ signed: true }` option to `res.cookie()`
  2156    * Removed `res.signedCookie()`
  2157    * Changed: dont reverse `req.ips`
  2158    * Fixed "trust proxy" setting check for `req.ips`
  2159  
  2160  3.0.0alpha4 / 2012-05-09
  2161  ==================
  2162  
  2163    * Added: allow `[]` in jsonp callback. Closes #1128
  2164    * Added `PORT` env var support in generated template. Closes #1118 [benatkin]
  2165    * Updated: connect 2.2.2
  2166  
  2167  3.0.0alpha3 / 2012-05-04
  2168  ==================
  2169  
  2170    * Added public `app.routes`. Closes #887
  2171    * Added _view-locals_ example
  2172    * Added _mvc_ example
  2173    * Added `res.locals.use()`. Closes #1120
  2174    * Added conditional-GET support to `res.send()`
  2175    * Added: coerce `res.set()` values to strings
  2176    * Changed: moved `static()` in generated apps below router
  2177    * Changed: `res.send()` only set ETag when not previously set
  2178    * Changed connect 2.2.1 dep
  2179    * Changed: `make test` now runs unit / acceptance tests
  2180    * Fixed req/res proto inheritance
  2181  
  2182  3.0.0alpha2 / 2012-04-26
  2183  ==================
  2184  
  2185    * Added `make benchmark` back
  2186    * Added `res.send()` support for `String` objects
  2187    * Added client-side data exposing example
  2188    * Added `res.header()` and `req.header()` aliases for BC
  2189    * Added `express.createServer()` for BC
  2190    * Perf: memoize parsed urls
  2191    * Perf: connect 2.2.0 dep
  2192    * Changed: make `expressInit()` middleware self-aware
  2193    * Fixed: use app.get() for all core settings
  2194    * Fixed redis session example
  2195    * Fixed session example. Closes #1105
  2196    * Fixed generated express dep. Closes #1078
  2197  
  2198  3.0.0alpha1 / 2012-04-15
  2199  ==================
  2200  
  2201    * Added `app.locals.use(callback)`
  2202    * Added `app.locals` object
  2203    * Added `app.locals(obj)`
  2204    * Added `res.locals` object
  2205    * Added `res.locals(obj)`
  2206    * Added `res.format()` for content-negotiation
  2207    * Added `app.engine()`
  2208    * Added `res.cookie()` JSON cookie support
  2209    * Added "trust proxy" setting
  2210    * Added `req.subdomains`
  2211    * Added `req.protocol`
  2212    * Added `req.secure`
  2213    * Added `req.path`
  2214    * Added `req.ips`
  2215    * Added `req.fresh`
  2216    * Added `req.stale`
  2217    * Added comma-delimited / array support for `req.accepts()`
  2218    * Added debug instrumentation
  2219    * Added `res.set(obj)`
  2220    * Added `res.set(field, value)`
  2221    * Added `res.get(field)`
  2222    * Added `app.get(setting)`. Closes #842
  2223    * Added `req.acceptsLanguage()`
  2224    * Added `req.acceptsCharset()`
  2225    * Added `req.accepted`
  2226    * Added `req.acceptedLanguages`
  2227    * Added `req.acceptedCharsets`
  2228    * Added "json replacer" setting
  2229    * Added "json spaces" setting
  2230    * Added X-Forwarded-Proto support to `res.redirect()`. Closes #92
  2231    * Added `--less` support to express(1)
  2232    * Added `express.response` prototype
  2233    * Added `express.request` prototype
  2234    * Added `express.application` prototype
  2235    * Added `app.path()`
  2236    * Added `app.render()`
  2237    * Added `res.type()` to replace `res.contentType()`
  2238    * Changed: `res.redirect()` to add relative support
  2239    * Changed: enable "jsonp callback" by default
  2240    * Changed: renamed "case sensitive routes" to "case sensitive routing"
  2241    * Rewrite of all tests with mocha
  2242    * Removed "root" setting
  2243    * Removed `res.redirect('home')` support
  2244    * Removed `req.notify()`
  2245    * Removed `app.register()`
  2246    * Removed `app.redirect()`
  2247    * Removed `app.is()`
  2248    * Removed `app.helpers()`
  2249    * Removed `app.dynamicHelpers()`
  2250    * Fixed `res.sendfile()` with non-GET. Closes #723
  2251    * Fixed express(1) public dir for windows. Closes #866
  2252  
  2253  2.5.9/ 2012-04-02
  2254  ==================
  2255  
  2256    * Added support for PURGE request method [pbuyle]
  2257    * Fixed `express(1)` generated app `app.address()` before `listening` [mmalecki]
  2258  
  2259  2.5.8 / 2012-02-08
  2260  ==================
  2261  
  2262    * Update mkdirp dep. Closes #991
  2263  
  2264  2.5.7 / 2012-02-06
  2265  ==================
  2266  
  2267    * Fixed `app.all` duplicate DELETE requests [mscdex]
  2268  
  2269  2.5.6 / 2012-01-13
  2270  ==================
  2271  
  2272    * Updated hamljs dev dep. Closes #953
  2273  
  2274  2.5.5 / 2012-01-08
  2275  ==================
  2276  
  2277    * Fixed: set `filename` on cached templates [matthewleon]
  2278  
  2279  2.5.4 / 2012-01-02
  2280  ==================
  2281  
  2282    * Fixed `express(1)` eol on 0.4.x. Closes #947
  2283  
  2284  2.5.3 / 2011-12-30
  2285  ==================
  2286  
  2287    * Fixed `req.is()` when a charset is present
  2288  
  2289  2.5.2 / 2011-12-10
  2290  ==================
  2291  
  2292    * Fixed: express(1) LF -> CRLF for windows
  2293  
  2294  2.5.1 / 2011-11-17
  2295  ==================
  2296  
  2297    * Changed: updated connect to 1.8.x
  2298    * Removed sass.js support from express(1)
  2299  
  2300  2.5.0 / 2011-10-24
  2301  ==================
  2302  
  2303    * Added ./routes dir for generated app by default
  2304    * Added npm install reminder to express(1) app gen
  2305    * Added 0.5.x support
  2306    * Removed `make test-cov` since it wont work with node 0.5.x
  2307    * Fixed express(1) public dir for windows. Closes #866
  2308  
  2309  2.4.7 / 2011-10-05
  2310  ==================
  2311  
  2312    * Added mkdirp to express(1). Closes #795
  2313    * Added simple _json-config_ example
  2314    * Added  shorthand for the parsed request's pathname via `req.path`
  2315    * Changed connect dep to 1.7.x to fix npm issue...
  2316    * Fixed `res.redirect()` __HEAD__ support. [reported by xerox]
  2317    * Fixed `req.flash()`, only escape args
  2318    * Fixed absolute path checking on windows. Closes #829 [reported by andrewpmckenzie]
  2319  
  2320  2.4.6 / 2011-08-22
  2321  ==================
  2322  
  2323    * Fixed multiple param callback regression. Closes #824 [reported by TroyGoode]
  2324  
  2325  2.4.5 / 2011-08-19
  2326  ==================
  2327  
  2328    * Added support for routes to handle errors. Closes #809
  2329    * Added `app.routes.all()`. Closes #803
  2330    * Added "basepath" setting to work in conjunction with reverse proxies etc.
  2331    * Refactored `Route` to use a single array of callbacks
  2332    * Added support for multiple callbacks for `app.param()`. Closes #801
  2333  Closes #805
  2334    * Changed: removed .call(self) for route callbacks
  2335    * Dependency: `qs >= 0.3.1`
  2336    * Fixed `res.redirect()` on windows due to `join()` usage. Closes #808
  2337  
  2338  2.4.4 / 2011-08-05
  2339  ==================
  2340  
  2341    * Fixed `res.header()` intention of a set, even when `undefined`
  2342    * Fixed `*`, value no longer required
  2343    * Fixed `res.send(204)` support. Closes #771
  2344  
  2345  2.4.3 / 2011-07-14
  2346  ==================
  2347  
  2348    * Added docs for `status` option special-case. Closes #739
  2349    * Fixed `options.filename`, exposing the view path to template engines
  2350  
  2351  2.4.2. / 2011-07-06
  2352  ==================
  2353  
  2354    * Revert "removed jsonp stripping" for XSS
  2355  
  2356  2.4.1 / 2011-07-06
  2357  ==================
  2358  
  2359    * Added `res.json()` JSONP support. Closes #737
  2360    * Added _extending-templates_ example. Closes #730
  2361    * Added "strict routing" setting for trailing slashes
  2362    * Added support for multiple envs in `app.configure()` calls. Closes #735
  2363    * Changed: `res.send()` using `res.json()`
  2364    * Changed: when cookie `path === null` don't default it
  2365    * Changed; default cookie path to "home" setting. Closes #731
  2366    * Removed _pids/logs_ creation from express(1)
  2367  
  2368  2.4.0 / 2011-06-28
  2369  ==================
  2370  
  2371    * Added chainable `res.status(code)`
  2372    * Added `res.json()`, an explicit version of `res.send(obj)`
  2373    * Added simple web-service example
  2374  
  2375  2.3.12 / 2011-06-22
  2376  ==================
  2377  
  2378    * \#express is now on freenode! come join!
  2379    * Added `req.get(field, param)`
  2380    * Added links to Japanese documentation, thanks @hideyukisaito!
  2381    * Added; the `express(1)` generated app outputs the env
  2382    * Added `content-negotiation` example
  2383    * Dependency: connect >= 1.5.1 < 2.0.0
  2384    * Fixed view layout bug. Closes #720
  2385    * Fixed; ignore body on 304. Closes #701
  2386  
  2387  2.3.11 / 2011-06-04
  2388  ==================
  2389  
  2390    * Added `npm test`
  2391    * Removed generation of dummy test file from `express(1)`
  2392    * Fixed; `express(1)` adds express as a dep
  2393    * Fixed; prune on `prepublish`
  2394  
  2395  2.3.10 / 2011-05-27
  2396  ==================
  2397  
  2398    * Added `req.route`, exposing the current route
  2399    * Added _package.json_ generation support to `express(1)`
  2400    * Fixed call to `app.param()` function for optional params. Closes #682
  2401  
  2402  2.3.9 / 2011-05-25
  2403  ==================
  2404  
  2405    * Fixed bug-ish with `../' in `res.partial()` calls
  2406  
  2407  2.3.8 / 2011-05-24
  2408  ==================
  2409  
  2410    * Fixed `app.options()`
  2411  
  2412  2.3.7 / 2011-05-23
  2413  ==================
  2414  
  2415    * Added route `Collection`, ex: `app.get('/user/:id').remove();`
  2416    * Added support for `app.param(fn)` to define param logic
  2417    * Removed `app.param()` support for callback with return value
  2418    * Removed module.parent check from express(1) generated app. Closes #670
  2419    * Refactored router. Closes #639
  2420  
  2421  2.3.6 / 2011-05-20
  2422  ==================
  2423  
  2424    * Changed; using devDependencies instead of git submodules
  2425    * Fixed redis session example
  2426    * Fixed markdown example
  2427    * Fixed view caching, should not be enabled in development
  2428  
  2429  2.3.5 / 2011-05-20
  2430  ==================
  2431  
  2432    * Added export `.view` as alias for `.View`
  2433  
  2434  2.3.4 / 2011-05-08
  2435  ==================
  2436  
  2437    * Added `./examples/say`
  2438    * Fixed `res.sendfile()` bug preventing the transfer of files with spaces
  2439  
  2440  2.3.3 / 2011-05-03
  2441  ==================
  2442  
  2443    * Added "case sensitive routes" option.
  2444    * Changed; split methods supported per rfc [slaskis]
  2445    * Fixed route-specific middleware when using the same callback function several times
  2446  
  2447  2.3.2 / 2011-04-27
  2448  ==================
  2449  
  2450    * Fixed view hints
  2451  
  2452  2.3.1 / 2011-04-26
  2453  ==================
  2454  
  2455    * Added `app.match()` as `app.match.all()`
  2456    * Added `app.lookup()` as `app.lookup.all()`
  2457    * Added `app.remove()` for `app.remove.all()`
  2458    * Added `app.remove.VERB()`
  2459    * Fixed template caching collision issue. Closes #644
  2460    * Moved router over from connect and started refactor
  2461  
  2462  2.3.0 / 2011-04-25
  2463  ==================
  2464  
  2465    * Added options support to `res.clearCookie()`
  2466    * Added `res.helpers()` as alias of `res.locals()`
  2467    * Added; json defaults to UTF-8 with `res.send()`. Closes #632. [Daniel   * Dependency `connect >= 1.4.0`
  2468    * Changed; auto set Content-Type in res.attachement [Aaron Heckmann]
  2469    * Renamed "cache views" to "view cache". Closes #628
  2470    * Fixed caching of views when using several apps. Closes #637
  2471    * Fixed gotcha invoking `app.param()` callbacks once per route middleware.
  2472  Closes #638
  2473    * Fixed partial lookup precedence. Closes #631
  2474  Shaw]
  2475  
  2476  2.2.2 / 2011-04-12
  2477  ==================
  2478  
  2479    * Added second callback support for `res.download()` connection errors
  2480    * Fixed `filename` option passing to template engine
  2481  
  2482  2.2.1 / 2011-04-04
  2483  ==================
  2484  
  2485    * Added `layout(path)` helper to change the layout within a view. Closes #610
  2486    * Fixed `partial()` collection object support.
  2487      Previously only anything with `.length` would work.
  2488      When `.length` is present one must still be aware of holes,
  2489      however now `{ collection: {foo: 'bar'}}` is valid, exposes
  2490      `keyInCollection` and `keysInCollection`.
  2491  
  2492    * Performance improved with better view caching
  2493    * Removed `request` and `response` locals
  2494    * Changed; errorHandler page title is now `Express` instead of `Connect`
  2495  
  2496  2.2.0 / 2011-03-30
  2497  ==================
  2498  
  2499    * Added `app.lookup.VERB()`, ex `app.lookup.put('/user/:id')`. Closes #606
  2500    * Added `app.match.VERB()`, ex `app.match.put('/user/12')`. Closes #606
  2501    * Added `app.VERB(path)` as alias of `app.lookup.VERB()`.
  2502    * Dependency `connect >= 1.2.0`
  2503  
  2504  2.1.1 / 2011-03-29
  2505  ==================
  2506  
  2507    * Added; expose `err.view` object when failing to locate a view
  2508    * Fixed `res.partial()` call `next(err)` when no callback is given [reported by aheckmann]
  2509    * Fixed; `res.send(undefined)` responds with 204 [aheckmann]
  2510  
  2511  2.1.0 / 2011-03-24
  2512  ==================
  2513  
  2514    * Added `<root>/_?<name>` partial lookup support. Closes #447
  2515    * Added `request`, `response`, and `app` local variables
  2516    * Added `settings` local variable, containing the app's settings
  2517    * Added `req.flash()` exception if `req.session` is not available
  2518    * Added `res.send(bool)` support (json response)
  2519    * Fixed stylus example for latest version
  2520    * Fixed; wrap try/catch around `res.render()`
  2521  
  2522  2.0.0 / 2011-03-17
  2523  ==================
  2524  
  2525    * Fixed up index view path alternative.
  2526    * Changed; `res.locals()` without object returns the locals
  2527  
  2528  2.0.0rc3 / 2011-03-17
  2529  ==================
  2530  
  2531    * Added `res.locals(obj)` to compliment `res.local(key, val)`
  2532    * Added `res.partial()` callback support
  2533    * Fixed recursive error reporting issue in `res.render()`
  2534  
  2535  2.0.0rc2 / 2011-03-17
  2536  ==================
  2537  
  2538    * Changed; `partial()` "locals" are now optional
  2539    * Fixed `SlowBuffer` support. Closes #584 [reported by tyrda01]
  2540    * Fixed .filename view engine option [reported by drudge]
  2541    * Fixed blog example
  2542    * Fixed `{req,res}.app` reference when mounting [Ben Weaver]
  2543  
  2544  2.0.0rc / 2011-03-14
  2545  ==================
  2546  
  2547    * Fixed; expose `HTTPSServer` constructor
  2548    * Fixed express(1) default test charset. Closes #579 [reported by secoif]
  2549    * Fixed; default charset to utf-8 instead of utf8 for lame IE [reported by NickP]
  2550  
  2551  2.0.0beta3 / 2011-03-09
  2552  ==================
  2553  
  2554    * Added support for `res.contentType()` literal
  2555      The original `res.contentType('.json')`,
  2556      `res.contentType('application/json')`, and `res.contentType('json')`
  2557      will work now.
  2558    * Added `res.render()` status option support back
  2559    * Added charset option for `res.render()`
  2560    * Added `.charset` support (via connect 1.0.4)
  2561    * Added view resolution hints when in development and a lookup fails
  2562    * Added layout lookup support relative to the page view.
  2563      For example while rendering `./views/user/index.jade` if you create
  2564      `./views/user/layout.jade` it will be used in favour of the root layout.
  2565    * Fixed `res.redirect()`. RFC states absolute url [reported by unlink]
  2566    * Fixed; default `res.send()` string charset to utf8
  2567    * Removed `Partial` constructor (not currently used)
  2568  
  2569  2.0.0beta2 / 2011-03-07
  2570  ==================
  2571  
  2572    * Added res.render() `.locals` support back to aid in migration process
  2573    * Fixed flash example
  2574  
  2575  2.0.0beta / 2011-03-03
  2576  ==================
  2577  
  2578    * Added HTTPS support
  2579    * Added `res.cookie()` maxAge support
  2580    * Added `req.header()` _Referrer_ / _Referer_ special-case, either works
  2581    * Added mount support for `res.redirect()`, now respects the mount-point
  2582    * Added `union()` util, taking place of `merge(clone())` combo
  2583    * Added stylus support to express(1) generated app
  2584    * Added secret to session middleware used in examples and generated app
  2585    * Added `res.local(name, val)` for progressive view locals
  2586    * Added default param support to `req.param(name, default)`
  2587    * Added `app.disabled()` and `app.enabled()`
  2588    * Added `app.register()` support for omitting leading ".", either works
  2589    * Added `res.partial()`, using the same interface as `partial()` within a view. Closes #539
  2590    * Added `app.param()` to map route params to async/sync logic
  2591    * Added; aliased `app.helpers()` as `app.locals()`. Closes #481
  2592    * Added extname with no leading "." support to `res.contentType()`
  2593    * Added `cache views` setting, defaulting to enabled in "production" env
  2594    * Added index file partial resolution, eg: partial('user') may try _views/user/index.jade_.
  2595    * Added `req.accepts()` support for extensions
  2596    * Changed; `res.download()` and `res.sendfile()` now utilize Connect's
  2597      static file server `connect.static.send()`.
  2598    * Changed; replaced `connect.utils.mime()` with npm _mime_ module
  2599    * Changed; allow `req.query` to be pre-defined (via middleware or other parent
  2600    * Changed view partial resolution, now relative to parent view
  2601    * Changed view engine signature. no longer `engine.render(str, options, callback)`, now `engine.compile(str, options) -> Function`, the returned function accepts `fn(locals)`.
  2602    * Fixed `req.param()` bug returning Array.prototype methods. Closes #552
  2603    * Fixed; using `Stream#pipe()` instead of `sys.pump()` in `res.sendfile()`
  2604    * Fixed; using _qs_ module instead of _querystring_
  2605    * Fixed; strip unsafe chars from jsonp callbacks
  2606    * Removed "stream threshold" setting
  2607  
  2608  1.0.8 / 2011-03-01
  2609  ==================
  2610  
  2611    * Allow `req.query` to be pre-defined (via middleware or other parent app)
  2612    * "connect": ">= 0.5.0 < 1.0.0". Closes #547
  2613    * Removed the long deprecated __EXPRESS_ENV__ support
  2614  
  2615  1.0.7 / 2011-02-07
  2616  ==================
  2617  
  2618    * Fixed `render()` setting inheritance.
  2619      Mounted apps would not inherit "view engine"
  2620  
  2621  1.0.6 / 2011-02-07
  2622  ==================
  2623  
  2624    * Fixed `view engine` setting bug when period is in dirname
  2625  
  2626  1.0.5 / 2011-02-05
  2627  ==================
  2628  
  2629    * Added secret to generated app `session()` call
  2630  
  2631  1.0.4 / 2011-02-05
  2632  ==================
  2633  
  2634    * Added `qs` dependency to _package.json_
  2635    * Fixed namespaced `require()`s for latest connect support
  2636  
  2637  1.0.3 / 2011-01-13
  2638  ==================
  2639  
  2640    * Remove unsafe characters from JSONP callback names [Ryan Grove]
  2641  
  2642  1.0.2 / 2011-01-10
  2643  ==================
  2644  
  2645    * Removed nested require, using `connect.router`
  2646  
  2647  1.0.1 / 2010-12-29
  2648  ==================
  2649  
  2650    * Fixed for middleware stacked via `createServer()`
  2651      previously the `foo` middleware passed to `createServer(foo)`
  2652      would not have access to Express methods such as `res.send()`
  2653      or props like `req.query` etc.
  2654  
  2655  1.0.0 / 2010-11-16
  2656  ==================
  2657  
  2658    * Added; deduce partial object names from the last segment.
  2659      For example by default `partial('forum/post', postObject)` will
  2660      give you the _post_ object, providing a meaningful default.
  2661    * Added http status code string representation to `res.redirect()` body
  2662    * Added; `res.redirect()` supporting _text/plain_ and _text/html_ via __Accept__.
  2663    * Added `req.is()` to aid in content negotiation
  2664    * Added partial local inheritance [suggested by masylum]. Closes #102
  2665      providing access to parent template locals.
  2666    * Added _-s, --session[s]_ flag to express(1) to add session related middleware
  2667    * Added _--template_ flag to express(1) to specify the
  2668      template engine to use.
  2669    * Added _--css_ flag to express(1) to specify the
  2670      stylesheet engine to use (or just plain css by default).
  2671    * Added `app.all()` support [thanks aheckmann]
  2672    * Added partial direct object support.
  2673      You may now `partial('user', user)` providing the "user" local,
  2674      vs previously `partial('user', { object: user })`.
  2675    * Added _route-separation_ example since many people question ways
  2676      to do this with CommonJS modules. Also view the _blog_ example for
  2677      an alternative.
  2678    * Performance; caching view path derived partial object names
  2679    * Fixed partial local inheritance precedence. [reported by Nick Poulden] Closes #454
  2680    * Fixed jsonp support; _text/javascript_ as per mailinglist discussion
  2681  
  2682  1.0.0rc4 / 2010-10-14
  2683  ==================
  2684  
  2685    * Added _NODE_ENV_ support, _EXPRESS_ENV_ is deprecated and will be removed in 1.0.0
  2686    * Added route-middleware support (very helpful, see the [docs](http://expressjs.com/guide.html#Route-Middleware))
  2687    * Added _jsonp callback_ setting to enable/disable jsonp autowrapping [Dav Glass]
  2688    * Added callback query check on response.send to autowrap JSON objects for simple webservice implementations [Dav Glass]
  2689    * Added `partial()` support for array-like collections. Closes #434
  2690    * Added support for swappable querystring parsers
  2691    * Added session usage docs. Closes #443
  2692    * Added dynamic helper caching. Closes #439 [suggested by maritz]
  2693    * Added authentication example
  2694    * Added basic Range support to `res.sendfile()` (and `res.download()` etc)
  2695    * Changed; `express(1)` generated app using 2 spaces instead of 4
  2696    * Default env to "development" again [aheckmann]
  2697    * Removed _context_ option is no more, use "scope"
  2698    * Fixed; exposing _./support_ libs to examples so they can run without installs
  2699    * Fixed mvc example
  2700  
  2701  1.0.0rc3 / 2010-09-20
  2702  ==================
  2703  
  2704    * Added confirmation for `express(1)` app generation. Closes #391
  2705    * Added extending of flash formatters via `app.flashFormatters`
  2706    * Added flash formatter support. Closes #411
  2707    * Added streaming support to `res.sendfile()` using `sys.pump()` when >= "stream threshold"
  2708    * Added _stream threshold_ setting for `res.sendfile()`
  2709    * Added `res.send()` __HEAD__ support
  2710    * Added `res.clearCookie()`
  2711    * Added `res.cookie()`
  2712    * Added `res.render()` headers option
  2713    * Added `res.redirect()` response bodies
  2714    * Added `res.render()` status option support. Closes #425 [thanks aheckmann]
  2715    * Fixed `res.sendfile()` responding with 403 on malicious path
  2716    * Fixed `res.download()` bug; when an error occurs remove _Content-Disposition_
  2717    * Fixed; mounted apps settings now inherit from parent app [aheckmann]
  2718    * Fixed; stripping Content-Length / Content-Type when 204
  2719    * Fixed `res.send()` 204. Closes #419
  2720    * Fixed multiple _Set-Cookie_ headers via `res.header()`. Closes #402
  2721    * Fixed bug messing with error handlers when `listenFD()` is called instead of `listen()`. [thanks guillermo]
  2722  
  2723  
  2724  1.0.0rc2 / 2010-08-17
  2725  ==================
  2726  
  2727    * Added `app.register()` for template engine mapping. Closes #390
  2728    * Added `res.render()` callback support as second argument (no options)
  2729    * Added callback support to `res.download()`
  2730    * Added callback support for `res.sendfile()`
  2731    * Added support for middleware access via `express.middlewareName()` vs `connect.middlewareName()`
  2732    * Added "partials" setting to docs
  2733    * Added default expresso tests to `express(1)` generated app. Closes #384
  2734    * Fixed `res.sendfile()` error handling, defer via `next()`
  2735    * Fixed `res.render()` callback when a layout is used [thanks guillermo]
  2736    * Fixed; `make install` creating ~/.node_libraries when not present
  2737    * Fixed issue preventing error handlers from being defined anywhere. Closes #387
  2738  
  2739  1.0.0rc / 2010-07-28
  2740  ==================
  2741  
  2742    * Added mounted hook. Closes #369
  2743    * Added connect dependency to _package.json_
  2744  
  2745    * Removed "reload views" setting and support code
  2746      development env never caches, production always caches.
  2747  
  2748    * Removed _param_ in route callbacks, signature is now
  2749      simply (req, res, next), previously (req, res, params, next).
  2750      Use _req.params_ for path captures, _req.query_ for GET params.
  2751  
  2752    * Fixed "home" setting
  2753    * Fixed middleware/router precedence issue. Closes #366
  2754    * Fixed; _configure()_ callbacks called immediately. Closes #368
  2755  
  2756  1.0.0beta2 / 2010-07-23
  2757  ==================
  2758  
  2759    * Added more examples
  2760    * Added; exporting `Server` constructor
  2761    * Added `Server#helpers()` for view locals
  2762    * Added `Server#dynamicHelpers()` for dynamic view locals. Closes #349
  2763    * Added support for absolute view paths
  2764    * Added; _home_ setting defaults to `Server#route` for mounted apps. Closes #363
  2765    * Added Guillermo Rauch to the contributor list
  2766    * Added support for "as" for non-collection partials. Closes #341
  2767    * Fixed _install.sh_, ensuring _~/.node_libraries_ exists. Closes #362 [thanks jf]
  2768    * Fixed `res.render()` exceptions, now passed to `next()` when no callback is given [thanks guillermo]
  2769    * Fixed instanceof `Array` checks, now `Array.isArray()`
  2770    * Fixed express(1) expansion of public dirs. Closes #348
  2771    * Fixed middleware precedence. Closes #345
  2772    * Fixed view watcher, now async [thanks aheckmann]
  2773  
  2774  1.0.0beta / 2010-07-15
  2775  ==================
  2776  
  2777    * Re-write
  2778      - much faster
  2779      - much lighter
  2780      - Check [ExpressJS.com](http://expressjs.com) for migration guide and updated docs
  2781  
  2782  0.14.0 / 2010-06-15
  2783  ==================
  2784  
  2785    * Utilize relative requires
  2786    * Added Static bufferSize option [aheckmann]
  2787    * Fixed caching of view and partial subdirectories [aheckmann]
  2788    * Fixed mime.type() comments now that ".ext" is not supported
  2789    * Updated haml submodule
  2790    * Updated class submodule
  2791    * Removed bin/express
  2792  
  2793  0.13.0 / 2010-06-01
  2794  ==================
  2795  
  2796    * Added node v0.1.97 compatibility
  2797    * Added support for deleting cookies via Request#cookie('key', null)
  2798    * Updated haml submodule
  2799    * Fixed not-found page, now using using charset utf-8
  2800    * Fixed show-exceptions page, now using using charset utf-8
  2801    * Fixed view support due to fs.readFile Buffers
  2802    * Changed; mime.type() no longer accepts ".type" due to node extname() changes
  2803  
  2804  0.12.0 / 2010-05-22
  2805  ==================
  2806  
  2807    * Added node v0.1.96 compatibility
  2808    * Added view `helpers` export which act as additional local variables
  2809    * Updated haml submodule
  2810    * Changed ETag; removed inode, modified time only
  2811    * Fixed LF to CRLF for setting multiple cookies
  2812    * Fixed cookie complation; values are now urlencoded
  2813    * Fixed cookies parsing; accepts quoted values and url escaped cookies
  2814  
  2815  0.11.0 / 2010-05-06
  2816  ==================
  2817  
  2818    * Added support for layouts using different engines
  2819      - this.render('page.html.haml', { layout: 'super-cool-layout.html.ejs' })
  2820      - this.render('page.html.haml', { layout: 'foo' }) // assumes 'foo.html.haml'
  2821      - this.render('page.html.haml', { layout: false }) // no layout
  2822    * Updated ext submodule
  2823    * Updated haml submodule
  2824    * Fixed EJS partial support by passing along the context. Issue #307
  2825  
  2826  0.10.1 / 2010-05-03
  2827  ==================
  2828  
  2829    * Fixed binary uploads.
  2830  
  2831  0.10.0 / 2010-04-30
  2832  ==================
  2833  
  2834    * Added charset support via Request#charset (automatically assigned to 'UTF-8' when respond()'s
  2835      encoding is set to 'utf8' or 'utf-8'.
  2836    * Added "encoding" option to Request#render(). Closes #299
  2837    * Added "dump exceptions" setting, which is enabled by default.
  2838    * Added simple ejs template engine support
  2839    * Added error response support for text/plain, application/json. Closes #297
  2840    * Added callback function param to Request#error()
  2841    * Added Request#sendHead()
  2842    * Added Request#stream()
  2843    * Added support for Request#respond(304, null) for empty response bodies
  2844    * Added ETag support to Request#sendfile()
  2845    * Added options to Request#sendfile(), passed to fs.createReadStream()
  2846    * Added filename arg to Request#download()
  2847    * Performance enhanced due to pre-reversing plugins so that plugins.reverse() is not called on each request
  2848    * Performance enhanced by preventing several calls to toLowerCase() in Router#match()
  2849    * Changed; Request#sendfile() now streams
  2850    * Changed; Renamed Request#halt() to Request#respond(). Closes #289
  2851    * Changed; Using sys.inspect() instead of JSON.encode() for error output
  2852    * Changed; run() returns the http.Server instance. Closes #298
  2853    * Changed; Defaulting Server#host to null (INADDR_ANY)
  2854    * Changed; Logger "common" format scale of 0.4f
  2855    * Removed Logger "request" format
  2856    * Fixed; Catching ENOENT in view caching, preventing error when "views/partials" is not found
  2857    * Fixed several issues with http client
  2858    * Fixed Logger Content-Length output
  2859    * Fixed bug preventing Opera from retaining the generated session id. Closes #292
  2860  
  2861  0.9.0 / 2010-04-14
  2862  ==================
  2863  
  2864    * Added DSL level error() route support
  2865    * Added DSL level notFound() route support
  2866    * Added Request#error()
  2867    * Added Request#notFound()
  2868    * Added Request#render() callback function. Closes #258
  2869    * Added "max upload size" setting
  2870    * Added "magic" variables to collection partials (\_\_index\_\_, \_\_length\_\_, \_\_isFirst\_\_, \_\_isLast\_\_). Closes #254
  2871    * Added [haml.js](http://github.com/visionmedia/haml.js) submodule; removed haml-js
  2872    * Added callback function support to Request#halt() as 3rd/4th arg
  2873    * Added preprocessing of route param wildcards using param(). Closes #251
  2874    * Added view partial support (with collections etc)
  2875    * Fixed bug preventing falsey params (such as ?page=0). Closes #286
  2876    * Fixed setting of multiple cookies. Closes #199
  2877    * Changed; view naming convention is now NAME.TYPE.ENGINE (for example page.html.haml)
  2878    * Changed; session cookie is now httpOnly
  2879    * Changed; Request is no longer global
  2880    * Changed; Event is no longer global
  2881    * Changed; "sys" module is no longer global
  2882    * Changed; moved Request#download to Static plugin where it belongs
  2883    * Changed; Request instance created before body parsing. Closes #262
  2884    * Changed; Pre-caching views in memory when "cache view contents" is enabled. Closes #253
  2885    * Changed; Pre-caching view partials in memory when "cache view partials" is enabled
  2886    * Updated support to node --version 0.1.90
  2887    * Updated dependencies
  2888    * Removed set("session cookie") in favour of use(Session, { cookie: { ... }})
  2889    * Removed utils.mixin(); use Object#mergeDeep()
  2890  
  2891  0.8.0 / 2010-03-19
  2892  ==================
  2893  
  2894    * Added coffeescript example app. Closes #242
  2895    * Changed; cache api now async friendly. Closes #240
  2896    * Removed deprecated 'express/static' support. Use 'express/plugins/static'
  2897  
  2898  0.7.6 / 2010-03-19
  2899  ==================
  2900  
  2901    * Added Request#isXHR. Closes #229
  2902    * Added `make install` (for the executable)
  2903    * Added `express` executable for setting up simple app templates
  2904    * Added "GET /public/*" to Static plugin, defaulting to <root>/public
  2905    * Added Static plugin
  2906    * Fixed; Request#render() only calls cache.get() once
  2907    * Fixed; Namespacing View caches with "view:"
  2908    * Fixed; Namespacing Static caches with "static:"
  2909    * Fixed; Both example apps now use the Static plugin
  2910    * Fixed set("views"). Closes #239
  2911    * Fixed missing space for combined log format
  2912    * Deprecated Request#sendfile() and 'express/static'
  2913    * Removed Server#running
  2914  
  2915  0.7.5 / 2010-03-16
  2916  ==================
  2917  
  2918    * Added Request#flash() support without args, now returns all flashes
  2919    * Updated ext submodule
  2920  
  2921  0.7.4 / 2010-03-16
  2922  ==================
  2923  
  2924    * Fixed session reaper
  2925    * Changed; class.js replacing js-oo Class implementation (quite a bit faster, no browser cruft)
  2926  
  2927  0.7.3 / 2010-03-16
  2928  ==================
  2929  
  2930    * Added package.json
  2931    * Fixed requiring of haml / sass due to kiwi removal
  2932  
  2933  0.7.2 / 2010-03-16
  2934  ==================
  2935  
  2936    * Fixed GIT submodules (HAH!)
  2937  
  2938  0.7.1 / 2010-03-16
  2939  ==================
  2940  
  2941    * Changed; Express now using submodules again until a PM is adopted
  2942    * Changed; chat example using millisecond conversions from ext
  2943  
  2944  0.7.0 / 2010-03-15
  2945  ==================
  2946  
  2947    * Added Request#pass() support (finds the next matching route, or the given path)
  2948    * Added Logger plugin (default "common" format replaces CommonLogger)
  2949    * Removed Profiler plugin
  2950    * Removed CommonLogger plugin
  2951  
  2952  0.6.0 / 2010-03-11
  2953  ==================
  2954  
  2955    * Added seed.yml for kiwi package management support
  2956    * Added HTTP client query string support when method is GET. Closes #205
  2957  
  2958    * Added support for arbitrary view engines.
  2959      For example "foo.engine.html" will now require('engine'),
  2960      the exports from this module are cached after the first require().
  2961  
  2962    * Added async plugin support
  2963  
  2964    * Removed usage of RESTful route funcs as http client
  2965      get() etc, use http.get() and friends
  2966  
  2967    * Removed custom exceptions
  2968  
  2969  0.5.0 / 2010-03-10
  2970  ==================
  2971  
  2972    * Added ext dependency (library of js extensions)
  2973    * Removed extname() / basename() utils. Use path module
  2974    * Removed toArray() util. Use arguments.values
  2975    * Removed escapeRegexp() util. Use RegExp.escape()
  2976    * Removed process.mixin() dependency. Use utils.mixin()
  2977    * Removed Collection
  2978    * Removed ElementCollection
  2979    * Shameless self promotion of ebook "Advanced JavaScript" (http://dev-mag.com)  ;)
  2980  
  2981  0.4.0 / 2010-02-11
  2982  ==================
  2983  
  2984    * Added flash() example to sample upload app
  2985    * Added high level restful http client module (express/http)
  2986    * Changed; RESTful route functions double as HTTP clients. Closes #69
  2987    * Changed; throwing error when routes are added at runtime
  2988    * Changed; defaulting render() context to the current Request. Closes #197
  2989    * Updated haml submodule
  2990  
  2991  0.3.0 / 2010-02-11
  2992  ==================
  2993  
  2994    * Updated haml / sass submodules. Closes #200
  2995    * Added flash message support. Closes #64
  2996    * Added accepts() now allows multiple args. fixes #117
  2997    * Added support for plugins to halt. Closes #189
  2998    * Added alternate layout support. Closes #119
  2999    * Removed Route#run(). Closes #188
  3000    * Fixed broken specs due to use(Cookie) missing
  3001  
  3002  0.2.1 / 2010-02-05
  3003  ==================
  3004  
  3005    * Added "plot" format option for Profiler (for gnuplot processing)
  3006    * Added request number to Profiler plugin
  3007    * Fixed binary encoding for multi-part file uploads, was previously defaulting to UTF8
  3008    * Fixed issue with routes not firing when not files are present. Closes #184
  3009    * Fixed process.Promise -> events.Promise
  3010  
  3011  0.2.0 / 2010-02-03
  3012  ==================
  3013  
  3014    * Added parseParam() support for name[] etc. (allows for file inputs with "multiple" attr) Closes #180
  3015    * Added Both Cache and Session option "reapInterval" may be "reapEvery". Closes #174
  3016    * Added expiration support to cache api with reaper. Closes #133
  3017    * Added cache Store.Memory#reap()
  3018    * Added Cache; cache api now uses first class Cache instances
  3019    * Added abstract session Store. Closes #172
  3020    * Changed; cache Memory.Store#get() utilizing Collection
  3021    * Renamed MemoryStore -> Store.Memory
  3022    * Fixed use() of the same plugin several time will always use latest options. Closes #176
  3023  
  3024  0.1.0 / 2010-02-03
  3025  ==================
  3026  
  3027    * Changed; Hooks (before / after) pass request as arg as well as evaluated in their context
  3028    * Updated node support to 0.1.27 Closes #169
  3029    * Updated dirname(__filename) -> __dirname
  3030    * Updated libxmljs support to v0.2.0
  3031    * Added session support with memory store / reaping
  3032    * Added quick uid() helper
  3033    * Added multi-part upload support
  3034    * Added Sass.js support / submodule
  3035    * Added production env caching view contents and static files
  3036    * Added static file caching. Closes #136
  3037    * Added cache plugin with memory stores
  3038    * Added support to StaticFile so that it works with non-textual files.
  3039    * Removed dirname() helper
  3040    * Removed several globals (now their modules must be required)
  3041  
  3042  0.0.2 / 2010-01-10
  3043  ==================
  3044  
  3045    * Added view benchmarks; currently haml vs ejs
  3046    * Added Request#attachment() specs. Closes #116
  3047    * Added use of node's parseQuery() util. Closes #123
  3048    * Added `make init` for submodules
  3049    * Updated Haml
  3050    * Updated sample chat app to show messages on load
  3051    * Updated libxmljs parseString -> parseHtmlString
  3052    * Fixed `make init` to work with older versions of git
  3053    * Fixed specs can now run independent specs for those who cant build deps. Closes #127
  3054    * Fixed issues introduced by the node url module changes. Closes 126.
  3055    * Fixed two assertions failing due to Collection#keys() returning strings
  3056    * Fixed faulty Collection#toArray() spec due to keys() returning strings
  3057    * Fixed `make test` now builds libxmljs.node before testing
  3058  
  3059  0.0.1 / 2010-01-03
  3060  ==================
  3061  
  3062    * Initial release