7. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 10/24/2017 6:38:23 AM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

7.1 Files compared

# Location File Last Modified
1 CHAMP_VA1.zip\CHAMP_VA1\app\node_modules\express History.md Mon Oct 16 21:06:50 2017 UTC
2 CHAMP_VA1.zip\CHAMP_VA1\app\node_modules\express History.md Mon Oct 23 12:43:28 2017 UTC

7.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 3 6112
Changed 2 12
Inserted 0 0
Removed 0 0

7.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

7.4 Active regular expressions

No regular expressions were active.

7.5 Comparison detail

  1   4.13.4 / 2 016-01-21
  2   ========== =========
  3  
  4     * deps:  content-di sposition@ 0.5.1
  5       - perf : enable s trict mode
  6     * deps:  cookie@0.1 .5
  7       - Thro w on inval id values  provided t o `seriali ze`
  8     * deps:  depd@~1.1. 0
  9       - Supp ort web br owser load ing
  10       - perf : enable s trict mode
  11     * deps:  escape-htm l@~1.0.3
  12       - perf : enable s trict mode
  13       - perf : optimize  string re placement
  14       - perf : use fast er string  coercion
  15     * deps:  finalhandl er@0.4.1
  16       - deps : escape-h tml@~1.0.3
  17     * deps:  merge-desc riptors@1. 0.1
  18       - perf : enable s trict mode
  19     * deps:  methods@~1 .1.2
  20       - perf : enable s trict mode
  21     * deps:  parseurl@~ 1.3.1
  22       - perf : enable s trict mode
  23     * deps:  proxy-addr @~1.0.10
  24       - deps : ipaddr.j s@1.0.5
  25       - perf : enable s trict mode
  26     * deps:  range-pars er@~1.0.3
  27       - perf : enable s trict mode
  28     * deps:  send@0.13. 1
  29       - deps : depd@~1. 1.0
  30       - deps : destroy@ ~1.0.4
  31       - deps : escape-h tml@~1.0.3
  32       - deps : range-pa rser@~1.0. 3
  33     * deps:  serve-stat ic@~1.10.2
  34       - deps : escape-h tml@~1.0.3
  35       - deps : parseurl @~1.3.0
  36       - deps : send@0.1 3.1
  37  
  38   4.13.3 / 2 015-08-02
  39   ========== =========
  40  
  41     * Fix in finite loo p conditio n using `m ergeParams : true`
  42     * Fix in ner numeri c indices  incorrectl y altering  parent `r eq.params`
  43  
  44   4.13.2 / 2 015-07-31
  45   ========== =========
  46  
  47     * deps:  accepts@~1 .2.12
  48       - deps : mime-typ es@~2.1.4
  49     * deps:  array-flat ten@1.1.1
  50       - perf : enable s trict mode
  51     * deps:  path-to-re gexp@0.1.7
  52       - Fix  regression  with esca ped round  brackets a nd matchin g groups
  53     * deps:  type-is@~1 .6.6
  54       - deps : mime-typ es@~2.1.4
  55  
  56   4.13.1 / 2 015-07-05
  57   ========== =========
  58  
  59     * deps:  accepts@~1 .2.10
  60       - deps : mime-typ es@~2.1.2
  61     * deps:  qs@4.0.0
  62       - Fix  dropping p arameters  like `hasO wnProperty `
  63       - Fix  various pa rsing edge  cases
  64     * deps:  type-is@~1 .6.4
  65       - deps : mime-typ es@~2.1.2
  66       - perf : enable s trict mode
  67       - perf : remove a rgument re assignment
  68  
  69   4.13.0 / 2 015-06-20
  70   ========== =========
  71  
  72     * Add se ttings to  debug outp ut
  73     * Fix `r es.format`  error whe n only `de fault` pro vided
  74     * Fix is sue where  `next('rou te')` in ` app.param`  would inc orrectly s kip values
  75     * Fix hi ding platf orm issues  with `dec odeURIComp onent`
  76       - Only  `URIError `s are a 4 00
  77     * Fix us ing `*` be fore param s in route s
  78     * Fix us ing captur e groups b efore para ms in rout es
  79     * Simpli fy `res.co okie` to c all `res.a ppend`
  80     * Use `a rray-flatt en` module  for flatt ening arra ys
  81     * deps:  accepts@~1 .2.9
  82       - deps : mime-typ es@~2.1.1
  83       - perf : avoid ar gument rea ssignment  & argument  slice
  84       - perf : avoid ne gotiator r ecursive c onstructio n
  85       - perf : enable s trict mode
  86       - perf : remove u nnecessary  bitwise o perator
  87     * deps:  cookie@0.1 .3
  88       - perf : deduce t he scope o f try-catc h deopt
  89       - perf : remove a rgument re assignment s
  90     * deps:  escape-htm l@1.0.2
  91     * deps:  etag@~1.7. 0
  92       - Alwa ys include  entity le ngth in ET ags for ha sh length  extensions
  93       - Gene rate non-S tats ETags  using MD5  only (no  longer CRC 32)
  94       - Impr ove stat p erformance  by removi ng hashing
  95       - Impr ove suppor t for JXco re
  96       - Remo ve base64  padding in  ETags to  shorten
  97       - Supp ort "fake"  stats obj ects in en vironments  without f s
  98       - Use  MD5 instea d of MD4 i n weak ETa gs over 1K B
  99     * deps:  finalhandl er@0.4.0
  100       - Fix  a false-po sitive whe n unpiping  in Node.j s 0.8
  101       - Supp ort `statu sCode` pro perty on ` Error` obj ects
  102       - Use  `unpipe` m odule for  unpiping r equests
  103       - deps : escape-h tml@1.0.2
  104       - deps : on-finis hed@~2.3.0
  105       - perf : enable s trict mode
  106       - perf : remove a rgument re assignment
  107     * deps:  fresh@0.3. 0
  108       - Add  weak `ETag ` matching  support
  109     * deps:  on-finishe d@~2.3.0
  110       - Add  defined be havior for  HTTP `CON NECT` requ ests
  111       - Add  defined be havior for  HTTP `Upg rade` requ ests
  112       - deps : ee-first @1.1.1
  113     * deps:  path-to-re gexp@0.1.6
  114     * deps:  send@0.13. 0
  115       - Allo w Node.js  HTTP serve r to set ` Date` resp onse heade r
  116       - Fix  incorrectl y removing  `Content- Location`  on 304 res ponse
  117       - Impr ove the de fault redi rect respo nse header s
  118       - Send  appropria te headers  on defaul t error re sponse
  119       - Use  `http-erro rs` for st andard emi tted error s
  120       - Use  `statuses`  instead o f `http` m odule for  status mes sages
  121       - deps : escape-h tml@1.0.2
  122       - deps : etag@~1. 7.0
  123       - deps : fresh@0. 3.0
  124       - deps : on-finis hed@~2.3.0
  125       - perf : enable s trict mode
  126       - perf : remove u nnecessary  array all ocations
  127     * deps:  serve-stat ic@~1.10.0
  128       - Add  `fallthrou gh` option
  129       - Fix  reading op tions from  options p rototype
  130       - Impr ove the de fault redi rect respo nse header s
  131       - Malf ormed URLs  now `next ()` instea d of 400
  132       - deps : escape-h tml@1.0.2
  133       - deps : send@0.1 3.0
  134       - perf : enable s trict mode
  135       - perf : remove a rgument re assignment
  136     * deps:  type-is@~1 .6.3
  137       - deps : mime-typ es@~2.1.1
  138       - perf : reduce t ry block s ize
  139       - perf : remove b itwise ope rations
  140     * perf:  enable str ict mode
  141     * perf:  isolate `a pp.render`  try block
  142     * perf:  remove arg ument reas signments  in applica tion
  143     * perf:  remove arg ument reas signments  in request  prototype
  144     * perf:  remove arg ument reas signments  in respons e prototyp e
  145     * perf:  remove arg ument reas signments  in routing
  146     * perf:  remove arg ument reas signments  in `View`
  147     * perf:  skip attem pting to d ecode zero  length st ring
  148     * perf:  use saved  reference  to `http.S TATUS_CODE S`
  149  
  150   4.12.4 / 2 015-05-17
  151   ========== =========
  152  
  153     * deps:  accepts@~1 .2.7
  154       - deps : mime-typ es@~2.0.11
  155       - deps : negotiat or@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       - Impr ove suppor t for JXco re
  161       - Supp ort "fake"  stats obj ects in en vironments  without ` fs`
  162     * deps:  finalhandl er@0.3.6
  163       - deps : debug@~2 .2.0
  164       - deps : on-finis hed@~2.2.1
  165     * deps:  on-finishe d@~2.2.1
  166       - Fix  `isFinishe d(req)` wh en data bu ffered
  167     * deps:  proxy-addr @~1.0.8
  168       - deps : ipaddr.j s@1.0.1
  169     * deps:  qs@2.4.2
  170      - Fix a llowing pa rameters l ike `const ructor`
  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-finis hed@~2.2.1
  177     * deps:  serve-stat ic@~1.9.3
  178       - deps : send@0.1 2.3
  179     * deps:  type-is@~1 .6.2
  180       - deps : mime-typ es@~2.0.11
  181  
  182   4.12.3 / 2 015-03-17
  183   ========== =========
  184  
  185     * deps:  accepts@~1 .2.5
  186       - deps : mime-typ es@~2.0.10
  187     * deps:  debug@~2.1 .3
  188       - Fix  high inten sity foreg round colo r for bold
  189       - deps : ms@0.7.0
  190     * deps:  finalhandl er@0.3.4
  191       - deps : debug@~2 .1.3
  192     * deps:  proxy-addr @~1.0.7
  193       - deps : ipaddr.j s@0.1.9
  194     * deps:  qs@2.4.1
  195       - Fix  error when  parameter  `hasOwnPr operty` is  present
  196     * deps:  send@0.12. 2
  197       - Thro w errors e arly for i nvalid `ex tensions`  or `index`  options
  198       - deps : debug@~2 .1.3
  199     * deps:  serve-stat ic@~1.9.2
  200       - deps : send@0.1 2.2
  201     * deps:  type-is@~1 .6.1
  202       - deps : mime-typ es@~2.0.10
  203  
  204   4.12.2 / 2 015-03-02
  205   ========== =========
  206  
  207     * Fix re gression w here `"Req uest abort ed"` is lo gged using  `res.send File`
  208  
  209   4.12.1 / 2 015-03-01
  210   ========== =========
  211  
  212     * Fix co nstructing  applicati on with no n-configur able proto type prope rties
  213     * Fix `E CONNRESET`  errors fr om `res.se ndFile` us age
  214     * Fix `r eq.host` w hen using  "trust pro xy" hops c ount
  215     * Fix `r eq.protoco l`/`req.se cure` when  using "tr ust proxy"  hops coun t
  216     * Fix wr ong `code`  on aborte d connecti ons from ` res.sendFi le`
  217     * deps:  merge-desc riptors@1. 0.0
  218  
  219   4.12.0 / 2 015-02-23
  220   ========== =========
  221  
  222     * Fix `" trust prox y"` settin g to inher it when ap p is mount ed
  223     * Genera te `ETag`s  for all r equest res ponses
  224       - No l onger rest ricted to  only respo nses for ` GET` and ` HEAD` requ ests
  225     * Use `c ontent-typ e` to pars e `Content -Type` hea ders
  226     * deps:  accepts@~1 .2.4
  227       - Fix  preference  sorting t o be stabl e for long  acceptabl e lists
  228       - deps : mime-typ es@~2.0.9
  229       - deps : negotiat or@0.5.1
  230     * deps:  cookie-sig nature@1.0 .6
  231     * deps:  send@0.12. 1
  232       - Alwa ys read th e stat siz e from the  file
  233       - Fix  mutating p assed-in ` options`
  234       - deps : mime@1.3 .4
  235     * deps:  serve-stat ic@~1.9.1
  236       - deps : send@0.1 2.1
  237     * deps:  type-is@~1 .6.0
  238       - fix  argument r eassignmen t
  239       - fix  false-posi tives in ` hasBody` ` Transfer-E ncoding` c heck
  240       - supp ort wildca rd for bot h type and  subtype ( `*/*`)
  241       - deps : mime-typ es@~2.0.9
  242  
  243   4.11.2 / 2 015-02-01
  244   ========== =========
  245  
  246     * Fix `r es.redirec t` double- calling `r es.end` fo r `HEAD` r equests
  247     * deps:  accepts@~1 .2.3
  248       - deps : mime-typ es@~2.0.8
  249     * deps:  proxy-addr @~1.0.6
  250       - deps : ipaddr.j s@0.1.8
  251     * deps:  type-is@~1 .5.6
  252       - deps : mime-typ es@~2.0.8
  253  
  254   4.11.1 / 2 015-01-20
  255   ========== =========
  256  
  257     * deps:  send@0.11. 1
  258       - Fix  root path  disclosure
  259     * deps:  serve-stat ic@~1.8.1
  260       - Fix  redirect l oop in Nod e.js 0.11. 14
  261       - Fix  root path  disclosure
  262       - deps : send@0.1 1.1
  263  
  264   4.11.0 / 2 015-01-13
  265   ========== =========
  266  
  267     * Add `r es.append( field, val )` to appe nd headers
  268     * Deprec ate leadin g `:` in ` name` for  `app.param (name, fn) `
  269     * Deprec ate `req.p aram()` --  use `req. params`, ` req.body`,  or `req.q uery` inst ead
  270     * Deprec ate `app.p aram(fn)`
  271     * Fix `O PTIONS` re sponses to  include t he `HEAD`  method pro perly
  272     * Fix `r es.sendFil e` not alw ays detect ing aborte d connecti on
  273     * Match  routes ite ratively t o prevent  stack over flows
  274     * deps:  accepts@~1 .2.2
  275       - deps : mime-typ es@~2.0.7
  276       - deps : negotiat or@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-finis hed@~2.2.0
  282     * deps:  serve-stat ic@~1.8.0
  283       - deps : send@0.1 1.0
  284  
  285   4.10.8 / 2 015-01-13
  286   ========== =========
  287  
  288     * Fix cr ash from e rror withi n `OPTIONS ` response  handler
  289     * deps:  proxy-addr @~1.0.5
  290       - deps : ipaddr.j s@0.1.6
  291  
  292   4.10.7 / 2 015-01-04
  293   ========== =========
  294  
  295     * Fix `A llow` head er for `OP TIONS` to  not contai n duplicat e methods
  296     * Fix in correct "R equest abo rted" for  `res.sendF ile` when  `HEAD` or  304
  297     * deps:  debug@~2.1 .1
  298     * deps:  finalhandl er@0.3.3
  299       - deps : debug@~2 .1.1
  300       - deps : on-finis hed@~2.2.0
  301     * deps:  methods@~1 .1.1
  302     * deps:  on-finishe d@~2.2.0
  303     * deps:  serve-stat ic@~1.7.2
  304       - Fix  potential  open redir ect when m ounted at  root
  305     * deps:  type-is@~1 .5.5
  306       - deps : mime-typ es@~2.0.7
  307  
  308   4.10.6 / 2 014-12-12
  309   ========== =========
  310  
  311     * Fix ex ception in  `req.fres h`/`req.st ale` witho ut respons e headers
  312  
  313   4.10.5 / 2 014-12-10
  314   ========== =========
  315  
  316     * Fix `r es.send` d ouble-call ing `res.e nd` for `H EAD` reque sts
  317     * deps:  accepts@~1 .1.4
  318       - deps : mime-typ es@~2.0.4
  319     * deps:  type-is@~1 .5.4
  320       - deps : mime-typ es@~2.0.4
  321  
  322   4.10.4 / 2 014-11-24
  323   ========== =========
  324  
  325     * Fix `r es.sendfil e` logging  standard  write erro rs
  326  
  327   4.10.3 / 2 014-11-23
  328   ========== =========
  329  
  330     * Fix `r es.sendFil e` logging  standard  write erro rs
  331     * deps:  etag@~1.5. 1
  332     * deps:  proxy-addr @~1.0.4
  333       - deps : ipaddr.j s@0.1.5
  334     * deps:  qs@2.3.3
  335       - Fix  `arrayLimi t` behavio r
  336  
  337   4.10.2 / 2 014-11-09
  338   ========== =========
  339  
  340     * Correc tly invoke  async rou ter callba ck asynchr onously
  341     * deps:  accepts@~1 .1.3
  342       - deps : mime-typ es@~2.0.3
  343     * deps:  type-is@~1 .5.3
  344       - deps : mime-typ es@~2.0.3
  345  
  346   4.10.1 / 2 014-10-28
  347   ========== =========
  348  
  349     * Fix ha ndling of  URLs conta ining `:// ` in the p ath
  350     * deps:  qs@2.3.2
  351       - Fix  parsing of  mixed obj ects and v alues
  352  
  353   4.10.0 / 2 014-10-23
  354   ========== =========
  355  
  356     * Add su pport for  `app.set(' views', ar ray)`
  357       - View s are look ed up in s equence in  array of  directorie s
  358     * Fix `r es.send(st atus)` to  mention `r es.sendSta tus(status )`
  359     * Fix ha ndling of  invalid em pty URLs
  360     * Use `c ontent-dis position`  module for  `res.atta chment`/`r es.downloa d`
  361       - Send s standard s-complian t `Content -Dispositi on` header
  362       - Full  Unicode s upport
  363     * Use `p ath.resolv e` in view  lookup
  364     * deps:  debug@~2.1 .0
  365       - Impl ement `DEB UG_FD` env  variable  support
  366     * deps:  depd@~1.0. 0
  367     * deps:  etag@~1.5. 0
  368       - Impr ove string  performan ce
  369       - Slig htly impro ve speed f or weak ET ags over 1 KB
  370     * deps:  finalhandl er@0.3.2
  371       - Term inate in p rogress re sponse onl y on error
  372       - Use  `on-finish ed` to det ermine req uest statu s
  373       - deps : debug@~2 .1.0
  374       - deps : on-finis hed@~2.1.1
  375     * deps:  on-finishe d@~2.1.1
  376       - Fix  handling o f pipeline d requests
  377     * deps:  qs@2.3.0
  378       - Fix  parsing of  mixed imp licit and  explicit a rrays
  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-finis hed@~2.1.1
  384     * deps:  serve-stat ic@~1.7.1
  385       - deps : send@0.1 0.1
  386  
  387   4.9.8 / 20 14-10-17
  388   ========== ========
  389  
  390     * Fix `r es.redirec t` body wh en redirec t status s pecified
  391     * deps:  accepts@~1 .1.2
  392       - Fix  error when  media typ e has inva lid parame ter
  393       - deps : negotiat or@0.4.9
  394  
  395   4.9.7 / 20 14-10-10
  396   ========== ========
  397  
  398     * Fix us ing same p aram name  in array o f paths
  399  
  400   4.9.6 / 20 14-10-08
  401   ========== ========
  402  
  403     * deps:  accepts@~1 .1.1
  404       - deps : mime-typ es@~2.0.2
  405       - deps : negotiat or@0.4.8
  406     * deps:  serve-stat ic@~1.6.4
  407       - Fix  redirect l oop when i ndex file  serving di sabled
  408     * deps:  type-is@~1 .5.2
  409       - deps : mime-typ es@~2.0.2
  410  
  411   4.9.5 / 20 14-09-24
  412   ========== ========
  413  
  414     * deps:  etag@~1.4. 0
  415     * deps:  proxy-addr @~1.0.3
  416       - Use  `forwarded ` npm modu le
  417     * deps:  send@0.9.3
  418       - deps : etag@~1. 4.0
  419     * deps:  serve-stat ic@~1.6.3
  420       - deps : send@0.9 .3
  421  
  422   4.9.4 / 20 14-09-19
  423   ========== ========
  424  
  425     * deps:  qs@2.2.4
  426       - Fix  issue with  object ke ys startin g with num bers trunc ated
  427  
  428   4.9.3 / 20 14-09-18
  429   ========== ========
  430  
  431     * deps:  proxy-addr @~1.0.2
  432       - Fix  a global l eak when m ultiple su bnets are  trusted
  433       - deps : ipaddr.j s@0.1.3
  434  
  435   4.9.2 / 20 14-09-17
  436   ========== ========
  437  
  438     * Fix re gression f or empty s tring `pat h` in `app .use`
  439     * Fix `r outer.use`  to accept  array of  middleware  without p ath
  440     * Improv e error me ssage for  bad `app.u se` argume nts
  441  
  442   4.9.1 / 20 14-09-16
  443   ========== ========
  444  
  445     * Fix `a pp.use` to  accept ar ray of mid dleware wi thout 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-pa rser@~1.0. 2
  452     * deps:  serve-stat ic@~1.6.2
  453       - deps : send@0.9 .2
  454  
  455   4.9.0 / 20 14-09-08
  456   ========== ========
  457  
  458     * Add `r es.sendSta tus`
  459     * Invoke  callback  for sendfi le when cl ient abort s
  460       - Appl ies to `re s.sendFile `, `res.se ndfile`, a nd `res.do wnload`
  461       - `err ` will be  populated  with reque st aborted  error
  462     * Suppor t IP addre ss host in  `req.subd omains`
  463     * Use `e tag` to ge nerate `ET ag` header s
  464     * deps:  accepts@~1 .1.0
  465       - upda te `mime-t ypes`
  466     * deps:  cookie-sig nature@1.0 .5
  467     * deps:  debug@~2.0 .0
  468     * deps:  finalhandl er@0.2.0
  469       - Set  `X-Content -Type-Opti ons: nosni ff` header
  470       - deps : debug@~2 .0.0
  471     * deps:  fresh@0.2. 4
  472     * deps:  media-type r@0.3.0
  473       - Thro w error wh en paramet er format  invalid on  parse
  474     * deps:  qs@2.2.3
  475       - Fix  issue wher e first em pty value  in array i s discarde d
  476     * deps:  range-pars er@~1.0.2
  477     * deps:  send@0.9.1
  478       - Add  `lastModif ied` optio n
  479       - Use  `etag` to  generate ` ETag` head er
  480       - deps : debug@~2 .0.0
  481       - deps : fresh@0. 2.4
  482     * deps:  serve-stat ic@~1.6.1
  483       - Add  `lastModif ied` optio n
  484       - deps : send@0.9 .1
  485     * deps:  type-is@~1 .5.1
  486       - fix  `hasbody`  to be true  for `cont ent-length : 0`
  487       - deps : media-ty per@0.3.0
  488       - deps : mime-typ es@~2.0.1
  489     * deps:  vary@~1.0. 0
  490       - Acce pt valid ` Vary` head er string  as `field`
  491  
  492   4.8.8 / 20 14-09-04
  493   ========== ========
  494  
  495     * deps:  send@0.8.5
  496       - Fix  a path tra versal iss ue when us ing `root`
  497       - Fix  malicious  path detec tion for e mpty strin g path
  498     * deps:  serve-stat ic@~1.5.4
  499       - deps : send@0.8 .5
  500  
  501   4.8.7 / 20 14-08-29
  502   ========== ========
  503  
  504     * deps:  qs@2.2.2
  505       - Remo ve unneces sary cloni ng
  506  
  507   4.8.6 / 20 14-08-27
  508   ========== ========
  509  
  510     * deps:  qs@2.2.0
  511       - Arra y parsing  fix
  512       - Perf ormance im provements
  513  
  514   4.8.5 / 20 14-08-18
  515   ========== ========
  516  
  517     * deps:  send@0.8.3
  518       - deps : destroy@ 1.0.3
  519       - deps : on-finis hed@2.1.0
  520     * deps:  serve-stat ic@~1.5.3
  521       - deps : send@0.8 .3
  522  
  523   4.8.4 / 20 14-08-14
  524   ========== ========
  525  
  526     * deps:  qs@1.2.2
  527     * deps:  send@0.8.2
  528       - Work  around `f d` leak in  Node.js 0 .10 for `f s.ReadStre am`
  529     * deps:  serve-stat ic@~1.5.2
  530       - deps : send@0.8 .2
  531  
  532   4.8.3 / 20 14-08-10
  533   ========== ========
  534  
  535     * deps:  parseurl@~ 1.3.0
  536     * deps:  qs@1.2.1
  537     * deps:  serve-stat ic@~1.5.1
  538       - Fix  parsing of  weird `re q.original Url` value s
  539       - deps : parseurl @~1.3.0
  540       - deps : utils-me rge@1.0.0
  541  
  542   4.8.2 / 20 14-08-07
  543   ========== ========
  544  
  545     * deps:  qs@1.2.0
  546       - Fix  parsing ar ray of obj ects
  547  
  548   4.8.1 / 20 14-08-06
  549   ========== ========
  550  
  551     * fix in correct de precation  warnings o n `res.dow nload`
  552     * deps:  qs@1.1.0
  553       - Acce pt urlenco ded square  brackets
  554       - Acce pt empty v alues in i mplicit ar ray notati on
  555  
  556   4.8.0 / 20 14-08-05
  557   ========== ========
  558  
  559     * add `r es.sendFil e`
  560       - acce pts a file  system pa th instead  of a URL
  561       - requ ires an ab solute pat h or `root ` option s pecified
  562     * deprec ate `res.s endfile` - - use `res .sendFile`  instead
  563     * suppor t mounted  app as any  argument  to `app.us e()`
  564     * deps:  qs@1.0.2
  565       - Comp lete rewri te
  566       - Limi ts array l ength to 2 0
  567       - Limi ts object  depth to 5
  568       - Limi ts paramet ers to 1,0 00
  569     * deps:  send@0.8.1
  570       - Add  `extension s` option
  571     * deps:  serve-stat ic@~1.5.0
  572       - Add  `extension s` option
  573       - deps : send@0.8 .1
  574  
  575   4.7.4 / 20 14-08-04
  576   ========== ========
  577  
  578     * fix `r es.sendfil e` regress ion for se rving dire ctory inde x files
  579     * deps:  send@0.7.4
  580       - Fix  incorrect  403 on Win dows and N ode.js 0.1 1
  581       - Fix  serving in dex files  without ro ot dir
  582     * deps:  serve-stat ic@~1.4.4
  583       - deps : send@0.7 .4
  584  
  585   4.7.3 / 20 14-08-04
  586   ========== ========
  587  
  588     * deps:  send@0.7.3
  589       - Fix  incorrect  403 on Win dows and N ode.js 0.1 1
  590     * deps:  serve-stat ic@~1.4.3
  591       - Fix  incorrect  403 on Win dows and N ode.js 0.1 1
  592       - deps : send@0.7 .3
  593  
  594   4.7.2 / 20 14-07-27
  595   ========== ========
  596  
  597     * deps:  depd@0.4.4
  598       - Work -around v8  generatin g empty st ack traces
  599     * deps:  send@0.7.2
  600       - deps : depd@0.4 .4
  601     * deps:  serve-stat ic@~1.4.2
  602  
  603   4.7.1 / 20 14-07-26
  604   ========== ========
  605  
  606     * deps:  depd@0.4.3
  607       - Fix  exception  when globa l `Error.s tackTraceL imit` is t oo low
  608     * deps:  send@0.7.1
  609       - deps : depd@0.4 .3
  610     * deps:  serve-stat ic@~1.4.1
  611  
  612   4.7.0 / 20 14-07-25
  613   ========== ========
  614  
  615     * fix `r eq.protoco l` for pro xy-direct  connection s
  616     * config urable que ry parser  with `app. set('query  parser',  parser)`
  617       - `app .set('quer y parser',  'extended ')` parse  with "qs"  module
  618       - `app .set('quer y parser',  'simple') ` parse wi th "querys tring" cor e module
  619       - `app .set('quer y parser',  false)` d isable que ry string  parsing
  620       - `app .set('quer y parser',  true)` en able simpl e parsing
  621     * deprec ate `res.j son(status , obj)` --  use `res. status(sta tus).json( obj)` inst ead
  622     * deprec ate `res.j sonp(statu s, obj)` - - use `res .status(st atus).json p(obj)` in stead
  623     * deprec ate `res.s end(status , body)` - - use `res .status(st atus).send (body)` in stead
  624     * deps:  debug@1.0. 4
  625     * deps:  depd@0.4.2
  626       - Add  `TRACE_DEP RECATION`  environmen t variable
  627       - Remo ve non-sta ndard grey  color fro m color ou tput
  628       - Supp ort `--no- deprecatio n` argumen t
  629       - Supp ort `--tra ce-depreca tion` argu ment
  630     * deps:  finalhandl er@0.1.0
  631       - Resp ond after  request fu lly read
  632       - deps : debug@1. 0.4
  633     * deps:  parseurl@~ 1.2.0
  634       - Cach e URLs bas ed on orig inal value
  635       - Remo ve no-long er-needed  URL mis-pa rse work-a round
  636       - Simp lify the " fast-path"  `RegExp`
  637     * deps:  send@0.7.0
  638       - Add  `dotfiles`  option
  639       - Cap  `maxAge` v alue to 1  year
  640       - deps : debug@1. 0.4
  641       - deps : depd@0.4 .2
  642     * deps:  serve-stat ic@~1.4.0
  643       - deps : parseurl @~1.2.0
  644       - deps : send@0.7 .0
  645     * perf:  prevent mu ltiple `Bu ffer` crea tion in `r es.send`
  646  
  647   4.6.1 / 20 14-07-12
  648   ========== ========
  649  
  650     * fix `s ubapp.moun tpath` reg ression fo r `app.use (subapp)`
  651  
  652   4.6.0 / 20 14-07-11
  653   ========== ========
  654  
  655     * accept  multiple  callbacks  to `app.us e()`
  656     * add ex plicit "Ro setta Flas h JSONP ab use" prote ction
  657       - prev ious versi ons are no t vulnerab le; this i s just exp licit prot ection
  658     * catch  errors in  multiple ` req.param( name, fn)`  handlers
  659     * deprec ate `res.r edirect(ur l, status) ` -- use ` res.redire ct(status,  url)` ins tead
  660     * fix `r es.send(st atus, num) ` to send  `num` as j son (not e rror)
  661     * remove  unnecessa ry escapin g when `re s.jsonp` r eturns JSO N response
  662     * suppor t non-stri ng `path`  in `app.us e(path, fn )`
  663       - supp orts array  of paths
  664       - supp orts `RegE xp`
  665     * router : fix opti mization o n router e xit
  666     * router : refactor  location  of `try` b locks
  667     * router : speed up  standard  `app.use(f n)`
  668     * deps:  debug@1.0. 3
  669       - Add  support fo r multiple  wildcards  in namesp aces
  670     * deps:  finalhandl er@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       - fast er parsing  of href-o nly URLs
  676     * deps:  path-to-re gexp@0.1.3
  677     * deps:  send@0.6.0
  678       - deps : debug@1. 0.3
  679     * deps:  serve-stat ic@~1.3.2
  680       - deps : parseurl @~1.1.3
  681       - deps : send@0.6 .0
  682     * perf:  fix argume nts reassi gn deopt i n some `re s` methods
  683  
  684   4.5.1 / 20 14-07-06
  685   ========== ========
  686  
  687    * fix rou ting regre ssion when  altering  `req.metho d`
  688  
  689   4.5.0 / 20 14-07-04
  690   ========== ========
  691  
  692    * add dep recation m essage to  non-plural  `req.acce pts*`
  693    * add dep recation m essage to  `res.send( body, stat us)`
  694    * add dep recation m essage to  `res.vary( )`
  695    * add `he aders` opt ion to `re s.sendfile `
  696      - use t o set head ers on suc cessful fi le transfe r
  697    * add `me rgeParams`  option to  `Router`
  698      - merge s `req.par ams` from  parent rou tes
  699    * add `re q.hostname ` -- corre ct name fo r what `re q.host` re turns
  700    * depreca te things  with `depd ` module
  701    * depreca te `req.ho st` -- use  `req.host name` inst ead
  702    * fix beh avior when  handling  request wi thout rout es
  703    * fix han dling when  `route.al l` is only  route
  704    * invoke  `router.pa ram()` onl y when rou te matches
  705    * restore  `req.para ms` after  invoking r outer
  706    * use `fi nalhandler ` for fina l response  handling
  707    * use `me dia-typer`  to alter  content-ty pe charset
  708    * deps: a ccepts@~1. 0.7
  709    * deps: s end@0.5.0
  710      - Accep t string f or `maxage ` (convert ed by `ms` )
  711      - Inclu de link in  default r edirect re sponse
  712    * deps: s erve-stati c@~1.3.0
  713      - Accep t string f or `maxAge ` (convert ed by `ms` )
  714      - Add ` setHeaders ` option
  715      - Inclu de HTML li nk in redi rect respo nse
  716      - deps:  send@0.5. 0
  717    * deps: t ype-is@~1. 3.2
  718  
  719   4.4.5 / 20 14-06-26
  720   ========== ========
  721  
  722    * deps: c ookie-sign ature@1.0. 4
  723      - fix f or timing  attacks
  724  
  725   4.4.4 / 20 14-06-20
  726   ========== ========
  727  
  728    * fix `re s.attachme nt` Unicod e filename s in Safar i
  729    * fix "tr im prefix"  debug mes sage in `e xpress:rou ter`
  730    * deps: a ccepts@~1. 0.5
  731    * deps: b uffer-crc3 2@0.2.3
  732  
  733   4.4.3 / 20 14-06-11
  734   ========== ========
  735  
  736    * fix per sistence o f modified  `req.para ms[name]`  from `app. param()`
  737    * deps: a ccepts@1.0 .3
  738      - deps:  negotiato r@0.4.6
  739    * deps: d ebug@1.0.2
  740    * deps: s end@0.4.3
  741      - Do no t throw un -catchable  error on  file open  race condi tion
  742      - Use ` escape-htm l` for HTM L escaping
  743      - deps:  debug@1.0 .2
  744      - deps:  finished@ 1.2.2
  745      - deps:  fresh@0.2 .2
  746    * deps: s erve-stati c@1.2.3
  747      - Do no t throw un -catchable  error on  file open  race condi tion
  748      - deps:  send@0.4. 3
  749  
  750   4.4.2 / 20 14-06-09
  751   ========== ========
  752  
  753    * fix cat ching erro rs from to p-level ha ndlers
  754    * use `va ry` module  for `res. vary`
  755    * deps: d ebug@1.0.1
  756    * deps: p roxy-addr@ 1.0.1
  757    * deps: s end@0.4.2
  758      - fix " event emit ter leak"  warnings
  759      - deps:  debug@1.0 .1
  760      - deps:  finished@ 1.2.1
  761    * deps: s erve-stati c@1.2.2
  762      - fix " event emit ter leak"  warnings
  763      - deps:  send@0.4. 2
  764    * deps: t ype-is@1.2 .1
  765  
  766   4.4.1 / 20 14-06-02
  767   ========== ========
  768  
  769    * deps: m ethods@1.0 .1
  770    * deps: s end@0.4.1
  771      - Send  `max-age`  in `Cache- Control` i n correct  format
  772    * deps: s erve-stati c@1.2.1
  773      - use ` escape-htm l` for esc aping
  774      - deps:  send@0.4. 1
  775  
  776   4.4.0 / 20 14-05-30
  777   ========== ========
  778  
  779    * custom  etag contr ol with `a pp.set('et ag', val)`
  780      - `app. set('etag' , function (body, enc oding){ re turn '"eta g"' })` cu stom 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)` s tandard et ag
  785    * mark `r es.send` E Tag as wea k and redu ce collisi ons
  786    * update  accepts to  1.0.2
  787      - Fix i nterpretat ion when h eader not  in request
  788    * update  send to 0. 4.0
  789      - Calcu late ETag  with md5 f or reduced  collision s
  790      - Ignor e stream e rrors afte r request  ends
  791      - deps:  debug@0.8 .1
  792    * update  serve-stat ic to 1.2. 0
  793      - Calcu late ETag  with md5 f or reduced  collision s
  794      - Ignor e stream e rrors afte r request  ends
  795      - deps:  send@0.4. 0
  796  
  797   4.3.2 / 20 14-05-28
  798   ========== ========
  799  
  800    * fix han dling of e rrors from  `router.p aram()` ca llbacks
  801  
  802   4.3.1 / 20 14-05-23
  803   ========== ========
  804  
  805    * revert  "fix behav ior of mul tiple `app .VERB` for  the same  path"
  806      - this  caused a r egression  in the ord er of rout e executio n
  807  
  808   4.3.0 / 20 14-05-21
  809   ========== ========
  810  
  811    * add `re q.baseUrl`  to access  the path  stripped f rom `req.u rl` in rou tes
  812    * fix beh avior of m ultiple `a pp.VERB` f or the sam e path
  813    * fix iss ue routing  requests  among sub  routers
  814    * invoke  `router.pa ram()` onl y when nec essary ins tead of ev ery match
  815    * proper  proxy trus t with `ap p.set('tru st proxy',  trust)`
  816      - `app. set('trust  proxy', 1 )` trust f irst hop
  817      - `app. set('trust  proxy', ' loopback') ` trust lo opback add resses
  818        - `app.set ('trust pr oxy', ' IP        ')` trust  single IP
  819        - `app.set ('trust pr oxy', ' IP        /16')` tru st subnet
  820        - `app.set ('trust pr oxy', ' IP        IP        ')` trust  list
  821      - `app. set('trust  proxy', f alse)` tur n off
  822      - `app. set('trust  proxy', t rue)` trus t everythi ng
  823    * set pro per `chars et` in `Co ntent-Type ` for `res .send`
  824    * update  type-is to  1.2.0
  825      - suppo rt suffix  matching
  826  
  827   4.2.0 / 20 14-05-11
  828   ========== ========
  829  
  830    * depreca te `app.de l()` -- us e `app.del ete()` ins tead
  831    * depreca te `res.js on(obj, st atus)` --  use `res.j son(status , obj)` in stead
  832      - the e dge-case ` res.json(s tatus, num )` require s `res.sta tus(status ).json(num )`
  833    * depreca te `res.js onp(obj, s tatus)` --  use `res. jsonp(stat us, obj)`  instead
  834      - the e dge-case ` res.jsonp( status, nu m)` requir es `res.st atus(statu s).jsonp(n um)`
  835    * fix `re q.next` wh en inside  router ins tance
  836    * include  `ETag` he ader in `H EAD` reque sts
  837    * keep pr evious `Co ntent-Type ` for `res .jsonp`
  838    * support  PURGE met hod
  839      - add ` app.purge`
  840      - add ` router.pur ge`
  841      - inclu de PURGE i n `app.all `
  842    * update  debug to 0 .8.0
  843      - add ` enable()`  method
  844      - chang e from std err to std out
  845    * update  methods to  1.0.0
  846      - add P URGE
  847  
  848   4.1.2 / 20 14-05-08
  849   ========== ========
  850  
  851    * fix `re q.host` fo r IPv6 lit erals
  852    * fix `re s.jsonp` e rror if ca llback par am is obje ct
  853  
  854   4.1.1 / 20 14-04-27
  855   ========== ========
  856  
  857    * fix pac kage.json  to reflect  supported  node vers ion
  858  
  859   4.1.0 / 20 14-04-24
  860   ========== ========
  861  
  862    * pass op tions from  `res.send file` to ` send`
  863    * preserv e casing o f headers  in `res.he ader` and  `res.set`
  864    * support  unicode f ile names  in `res.at tachment`  and `res.d ownload`
  865    * update  accepts to  1.0.1
  866      - deps:  negotiato r@0.4.0
  867    * update  cookie to  0.1.2
  868      - Fix f or maxAge  == 0
  869      - made  compat wit h expires  field
  870    * update  send to 0. 3.0
  871      - Accep t API opti ons in opt ions objec t
  872      - Coerc e option t ypes
  873      - Contr ol whether  to genera te etags
  874      - Defau lt directo ry access  to 403 whe n index di sabled
  875      - Fix s ending fil es with do ts without  root set
  876      - Inclu de file pa th in etag
  877      - Make  "Can't set  headers a fter they  are sent."  catchable
  878      - Send  full entit y-body for  multi ran ge request s
  879      - Set e tags to "w eak"
  880      - Suppo rt "If-Ran ge" header
  881      - Suppo rt multipl e index pa ths
  882      - deps:  mime@1.2. 11
  883    * update  serve-stat ic to 1.1. 0
  884      - Accep t options  directly t o `send` m odule
  885      - Resol ve relativ e paths at  middlewar e setup
  886      - Use p arseurl to  parse the  URL from  request
  887      - deps:  send@0.3. 0
  888    * update  type-is to  1.1.0
  889      - add n on-array v alues supp ort
  890      - add ` multipart`  as a shor thand
  891  
  892   4.0.0 / 20 14-04-09
  893   ========== ========
  894  
  895    * remove:
  896      - node  0.8 suppor t
  897      - conne ct and con nect's pat ches excep t for char set handli ng
  898      - expre ss(1) - mo ved to [ex press-gene rator](htt ps://githu b.com/expr essjs/gene rator)
  899      - `expr ess.create Server()`  - it has b een deprec ated for a  long time . Use `exp ress()`
  900      - `app. configure`  - use log ic in your  own app c ode
  901      - `app. router` -  is removed
  902      - `req. auth` - us e `basic-a uth` inste ad
  903      - `req. accepted*`  - use `re q.accepts* ()` instea d
  904      - `res. location`  - relative  URL resol ution is r emoved
  905      - `res. charset` -  include t he charset  in the co ntent type  when usin g `res.set ()`
  906      - all b undled mid dleware ex cept `stat ic`
  907    * change:
  908      - `app. route` ->  `app.mount path` when  mounting  an express  app in an other expr ess app
  909      - `json  spaces` n o longer e nabled by  default in  developme nt
  910      - `req. accepts*`  -> `req.ac cepts*s` -  i.e. `req .acceptsEn coding` ->  `req.acce ptsEncodin gs`
  911      - `req. params` is  now an ob ject inste ad of an a rray
  912      - `res. locals` is  no longer  a functio n. It is a  plain js  object. Tr eat it as  such.
  913      - `res. headerSent ` -> `res. headersSen t` to matc h node.js  ServerResp onse objec t
  914    * refacto r:
  915      - `req. accepts*`  with [acce pts](https ://github. com/expres sjs/accept s)
  916      - `req. is` with [ type-is](h ttps://git hub.com/ex pressjs/ty pe-is)
  917      - [path -to-regexp ](https:// github.com /component /path-to-r egexp)
  918    * add:
  919      - `app. router()`  - returns  the app Ro uter insta nce
  920      - `app. route()` -  Proxy to  the app's  `Router#ro ute()` met hod to cre ate a new  route
  921      - Route r & Route  - public A PI
  922  
  923   3.21.2 / 2 015-07-31
  924   ========== =========
  925  
  926     * deps:  connect@2. 30.2
  927       - deps : body-par ser@~1.13. 3
  928       - deps : compress ion@~1.5.2
  929       - deps : errorhan dler@~1.4. 2
  930       - deps : method-o verride@~2 .3.5
  931       - deps : serve-in dex@~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 em pty header  from empt y `field`
  936       - perf : enable s trict mode
  937       - perf : remove a rgument re assignment s
  938  
  939   3.21.1 / 2 015-07-05
  940   ========== =========
  941  
  942     * deps:  basic-auth @~1.0.3
  943     * deps:  connect@2. 30.1
  944       - deps : body-par ser@~1.13. 2
  945       - deps : compress ion@~1.5.1
  946       - deps : errorhan dler@~1.4. 1
  947       - deps : morgan@~ 1.6.1
  948       - deps : pause@0. 1.0
  949       - deps : qs@4.0.0
  950       - deps : serve-in dex@~1.7.1
  951       - deps : type-is@ ~1.6.4
  952  
  953   3.21.0 / 2 015-06-18
  954   ========== =========
  955  
  956     * deps:  basic-auth @1.0.2
  957       - perf : enable s trict mode
  958       - perf : hoist re gular expr ession
  959       - perf : parse wi th regular  expressio ns
  960       - perf : remove a rgument re assignment
  961     * deps:  connect@2. 30.0
  962       - deps : body-par ser@~1.13. 1
  963       - deps : bytes@2. 1.0
  964       - deps : compress ion@~1.5.0
  965       - deps : cookie@0 .1.3
  966       - deps : cookie-p arser@~1.3 .5
  967       - deps : csurf@~1 .8.3
  968       - deps : errorhan dler@~1.4. 0
  969       - deps : express- session@~1 .11.3
  970       - deps : finalhan dler@0.4.0
  971       - deps : fresh@0. 3.0
  972       - deps : morgan@~ 1.6.0
  973       - deps : serve-fa vicon@~2.3 .0
  974       - deps : serve-in dex@~1.7.0
  975       - deps : serve-st atic@~1.10 .0
  976       - deps : type-is@ ~1.6.3
  977     * deps:  cookie@0.1 .3
  978       - perf : deduce t he scope o f try-catc h deopt
  979       - perf : remove a rgument re assignment s
  980     * deps:  escape-htm l@1.0.2
  981     * deps:  etag@~1.7. 0
  982       - Alwa ys include  entity le ngth in ET ags for ha sh length  extensions
  983       - Gene rate non-S tats ETags  using MD5  only (no  longer CRC 32)
  984       - Impr ove stat p erformance  by removi ng hashing
  985       - Impr ove suppor t for JXco re
  986       - Remo ve base64  padding in  ETags to  shorten
  987       - Supp ort "fake"  stats obj ects in en vironments  without f s
  988       - Use  MD5 instea d of MD4 i n weak ETa gs over 1K B
  989     * deps:  fresh@0.3. 0
  990       - Add  weak `ETag ` matching  support
  991     * deps:  mkdirp@0.5 .1
  992       - Work  in global  strict mo de
  993     * deps:  send@0.13. 0
  994       - Allo w Node.js  HTTP serve r to set ` Date` resp onse heade r
  995       - Fix  incorrectl y removing  `Content- Location`  on 304 res ponse
  996       - Impr ove the de fault redi rect respo nse header s
  997       - Send  appropria te headers  on defaul t error re sponse
  998       - Use  `http-erro rs` for st andard emi tted error s
  999       - Use  `statuses`  instead o f `http` m odule for  status mes sages
  1000       - deps : escape-h tml@1.0.2
  1001       - deps : etag@~1. 7.0
  1002       - deps : fresh@0. 3.0
  1003       - deps : on-finis hed@~2.3.0
  1004       - perf : enable s trict mode
  1005       - perf : remove u nnecessary  array all ocations
  1006  
  1007   3.20.3 / 2 015-05-17
  1008   ========== =========
  1009  
  1010     * deps:  connect@2. 29.2
  1011       - deps : body-par ser@~1.12. 4
  1012       - deps : compress ion@~1.4.4
  1013       - deps : connect- timeout@~1 .6.2
  1014       - deps : debug@~2 .2.0
  1015       - deps : depd@~1. 0.1
  1016       - deps : errorhan dler@~1.3. 6
  1017       - deps : finalhan dler@0.3.6
  1018       - deps : method-o verride@~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-fa vicon@~2.2 .1
  1023       - deps : serve-in dex@~1.6.4
  1024       - deps : serve-st atic@~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.j s@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-finis hed@~2.2.1
  1037  
  1038   3.20.2 / 2 015-03-16
  1039   ========== =========
  1040  
  1041     * deps:  connect@2. 29.1
  1042       - deps : body-par ser@~1.12. 2
  1043       - deps : compress ion@~1.4.3
  1044       - deps : connect- timeout@~1 .6.1
  1045       - deps : debug@~2 .1.3
  1046       - deps : errorhan dler@~1.3. 5
  1047       - deps : express- session@~1 .10.4
  1048       - deps : finalhan dler@0.3.4
  1049       - deps : method-o verride@~2 .3.2
  1050       - deps : morgan@~ 1.5.2
  1051       - deps : qs@2.4.1
  1052       - deps : serve-in dex@~1.6.3
  1053       - deps : serve-st atic@~1.9. 2
  1054       - deps : type-is@ ~1.6.1
  1055     * deps:  debug@~2.1 .3
  1056       - Fix  high inten sity foreg round colo r for bold
  1057       - deps : ms@0.7.0
  1058     * deps:  merge-desc riptors@1. 0.0
  1059     * deps:  proxy-addr @~1.0.7
  1060       - deps : ipaddr.j s@0.1.9
  1061     * deps:  send@0.12. 2
  1062       - Thro w errors e arly for i nvalid `ex tensions`  or `index`  options
  1063       - deps : debug@~2 .1.3
  1064  
  1065   3.20.1 / 2 015-02-28
  1066   ========== =========
  1067  
  1068     * Fix `r eq.host` w hen using  "trust pro xy" hops c ount
  1069     * Fix `r eq.protoco l`/`req.se cure` when  using "tr ust proxy"  hops coun t
  1070  
  1071   3.20.0 / 2 015-02-18
  1072   ========== =========
  1073  
  1074     * Fix `" trust prox y"` settin g to inher it when ap p is mount ed
  1075     * Genera te `ETag`s  for all r equest res ponses
  1076       - No l onger rest ricted to  only respo nses for ` GET` and ` HEAD` requ ests
  1077     * Use `c ontent-typ e` to pars e `Content -Type` hea ders
  1078     * deps:  connect@2. 29.0
  1079       - Use  `content-t ype` to pa rse `Conte nt-Type` h eaders
  1080       - deps : body-par ser@~1.12. 0
  1081       - deps : compress ion@~1.4.1
  1082       - deps : connect- timeout@~1 .6.0
  1083       - deps : cookie-p arser@~1.3 .4
  1084       - deps : cookie-s ignature@1 .0.6
  1085       - deps : csurf@~1 .7.0
  1086       - deps : errorhan dler@~1.3. 4
  1087       - deps : express- session@~1 .10.3
  1088       - deps : http-err ors@~1.3.1
  1089       - deps : response -time@~2.3 .0
  1090       - deps : serve-in dex@~1.6.2
  1091       - deps : serve-st atic@~1.9. 1
  1092       - deps : type-is@ ~1.6.0
  1093     * deps:  cookie-sig nature@1.0 .6
  1094     * deps:  send@0.12. 1
  1095       - Alwa ys read th e stat siz e from the  file
  1096       - Fix  mutating p assed-in ` options`
  1097       - deps : mime@1.3 .4
  1098  
  1099   3.19.2 / 2 015-02-01
  1100   ========== =========
  1101  
  1102     * deps:  connect@2. 28.3
  1103       - deps : compress ion@~1.3.1
  1104       - deps : csurf@~1 .6.6
  1105       - deps : errorhan dler@~1.3. 3
  1106       - deps : express- session@~1 .10.2
  1107       - deps : serve-in dex@~1.6.1
  1108       - deps : type-is@ ~1.5.6
  1109     * deps:  proxy-addr @~1.0.6
  1110       - deps : ipaddr.j s@0.1.8
  1111  
  1112   3.19.1 / 2 015-01-20
  1113   ========== =========
  1114  
  1115     * deps:  connect@2. 28.2
  1116       - deps : body-par ser@~1.10. 2
  1117       - deps : serve-st atic@~1.8. 1
  1118     * deps:  send@0.11. 1
  1119       - Fix  root path  disclosure
  1120  
  1121   3.19.0 / 2 015-01-09
  1122   ========== =========
  1123  
  1124     * Fix `O PTIONS` re sponses to  include t he `HEAD`  method pro perty
  1125     * Use `r eadline` f or prompt  in `expres s(1)`
  1126     * deps:  commander@ 2.6.0
  1127     * deps:  connect@2. 28.1
  1128       - deps : body-par ser@~1.10. 1
  1129       - deps : compress ion@~1.3.0
  1130       - deps : connect- timeout@~1 .5.0
  1131       - deps : csurf@~1 .6.4
  1132       - deps : debug@~2 .1.1
  1133       - deps : errorhan dler@~1.3. 2
  1134       - deps : express- session@~1 .10.1
  1135       - deps : finalhan dler@0.3.3
  1136       - deps : method-o verride@~2 .3.1
  1137       - deps : morgan@~ 1.5.1
  1138       - deps : serve-fa vicon@~2.2 .0
  1139       - deps : serve-in dex@~1.6.0
  1140       - deps : serve-st atic@~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.j s@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-finis hed@~2.2.0
  1151  
  1152   3.18.6 / 2 014-12-12
  1153   ========== =========
  1154  
  1155     * Fix ex ception in  `req.fres h`/`req.st ale` witho ut respons e headers
  1156  
  1157   3.18.5 / 2 014-12-11
  1158   ========== =========
  1159  
  1160     * deps:  connect@2. 27.6
  1161       - deps : compress ion@~1.2.2
  1162       - deps : express- session@~1 .9.3
  1163       - deps : http-err ors@~1.2.8
  1164       - deps : serve-in dex@~1.5.3
  1165       - deps : type-is@ ~1.5.4
  1166  
  1167   3.18.4 / 2 014-11-23
  1168   ========== =========
  1169  
  1170     * deps:  connect@2. 27.4
  1171       - deps : body-par ser@~1.9.3
  1172       - deps : compress ion@~1.2.1
  1173       - deps : errorhan dler@~1.2. 3
  1174       - deps : express- session@~1 .9.2
  1175       - deps : qs@2.3.3
  1176       - deps : serve-fa vicon@~2.1 .7
  1177       - deps : serve-st atic@~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.j s@0.1.5
  1182  
  1183   3.18.3 / 2 014-11-09
  1184   ========== =========
  1185  
  1186     * deps:  connect@2. 27.3
  1187       - Corr ectly invo ke async c allback as ynchronous ly
  1188       - deps : csurf@~1 .6.3
  1189  
  1190   3.18.2 / 2 014-10-28
  1191   ========== =========
  1192  
  1193     * deps:  connect@2. 27.2
  1194       - Fix  handling o f URLs con taining `: //` in the  path
  1195       - deps : body-par ser@~1.9.2
  1196       - deps : qs@2.3.2
  1197  
  1198   3.18.1 / 2 014-10-22
  1199   ========== =========
  1200  
  1201     * Fix in ternal `ut ils.merge`  deprecati on warning s
  1202     * deps:  connect@2. 27.1
  1203       - deps : body-par ser@~1.9.1
  1204       - deps : express- session@~1 .9.1
  1205       - deps : finalhan dler@0.3.2
  1206       - deps : morgan@~ 1.4.1
  1207       - deps : qs@2.3.0
  1208       - deps : serve-st atic@~1.7. 1
  1209     * deps:  send@0.10. 1
  1210       - deps : on-finis hed@~2.1.1
  1211  
  1212   3.18.0 / 2 014-10-17
  1213   ========== =========
  1214  
  1215     * Use `c ontent-dis position`  module for  `res.atta chment`/`r es.downloa d`
  1216       - Send s standard s-complian t `Content -Dispositi on` header
  1217       - Full  Unicode s upport
  1218     * Use `e tag` modul e to gener ate `ETag`  headers
  1219     * deps:  connect@2. 27.0
  1220       - Use  `http-erro rs` module  for creat ing errors
  1221       - Use  `utils-mer ge` module  for mergi ng objects
  1222       - deps : body-par ser@~1.9.0
  1223       - deps : compress ion@~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 : finalhan dler@0.3.1
  1229       - deps : method-o verride@~2 .3.0
  1230       - deps : morgan@~ 1.4.0
  1231       - deps : response -time@~2.2 .0
  1232       - deps : serve-fa vicon@~2.1 .6
  1233       - deps : serve-in dex@~1.5.0
  1234       - deps : serve-st atic@~1.7. 0
  1235     * deps:  debug@~2.1 .0
  1236       - Impl ement `DEB UG_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 / 2 014-10-15
  1244   ========== =========
  1245  
  1246     * deps:  connect@2. 26.6
  1247       - deps : compress ion@~1.1.2
  1248       - deps : csurf@~1 .6.2
  1249       - deps : errorhan dler@~1.2. 2
  1250  
  1251   3.17.7 / 2 014-10-08
  1252   ========== =========
  1253  
  1254     * deps:  connect@2. 26.5
  1255       - Fix  accepting  non-object  arguments  to `logge r`
  1256       - deps : serve-st atic@~1.6. 4
  1257  
  1258   3.17.6 / 2 014-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 / 2 014-09-24
  1266   ========== =========
  1267  
  1268     * deps:  connect@2. 26.3
  1269       - deps : body-par ser@~1.8.4
  1270       - deps : serve-fa vicon@~2.1 .5
  1271       - deps : serve-st atic@~1.6. 3
  1272     * deps:  proxy-addr @~1.0.3
  1273       - Use  `forwarded ` npm modu le
  1274     * deps:  send@0.9.3
  1275       - deps : etag@~1. 4.0
  1276  
  1277   3.17.4 / 2 014-09-19
  1278   ========== =========
  1279  
  1280     * deps:  connect@2. 26.2
  1281       - deps : body-par ser@~1.8.3
  1282       - deps : qs@2.2.4
  1283  
  1284   3.17.3 / 2 014-09-18
  1285   ========== =========
  1286  
  1287     * deps:  proxy-addr @~1.0.2
  1288       - Fix  a global l eak when m ultiple su bnets are  trusted
  1289       - deps : ipaddr.j s@0.1.3
  1290  
  1291   3.17.2 / 2 014-09-15
  1292   ========== =========
  1293  
  1294     * Use `c rc` instea d of `buff er-crc32`  for speed
  1295     * deps:  connect@2. 26.1
  1296       - deps : body-par ser@~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-fa vicon@~2.1 .3
  1301       - deps : serve-st atic@~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-pa rser@~1.0. 2
  1307  
  1308   3.17.1 / 2 014-09-08
  1309   ========== =========
  1310  
  1311     * Fix er ror in `re q.subdomai ns` on emp ty host
  1312  
  1313   3.17.0 / 2 014-09-08
  1314   ========== =========
  1315  
  1316     * Suppor t `X-Forwa rded-Host`  in `req.s ubdomains`
  1317     * Suppor t IP addre ss host in  `req.subd omains`
  1318     * deps:  connect@2. 26.0
  1319       - deps : body-par ser@~1.8.1
  1320       - deps : compress ion@~1.1.0
  1321       - deps : connect- timeout@~1 .3.0
  1322       - deps : cookie-p arser@~1.3 .3
  1323       - deps : cookie-s ignature@1 .0.5
  1324       - deps : csurf@~1 .6.1
  1325       - deps : debug@~2 .0.0
  1326       - deps : errorhan dler@~1.2. 0
  1327       - deps : express- session@~1 .8.1
  1328       - deps : finalhan dler@0.2.0
  1329       - deps : fresh@0. 2.4
  1330       - deps : media-ty per@0.3.0
  1331       - deps : method-o verride@~2 .2.0
  1332       - deps : morgan@~ 1.3.0
  1333       - deps : qs@2.2.3
  1334       - deps : serve-fa vicon@~2.1 .3
  1335       - deps : serve-in dex@~1.2.1
  1336       - deps : serve-st atic@~1.6. 1
  1337       - deps : type-is@ ~1.5.1
  1338       - deps : vhost@~3 .0.0
  1339     * deps:  cookie-sig nature@1.0 .5
  1340     * deps:  debug@~2.0 .0
  1341     * deps:  fresh@0.2. 4
  1342     * deps:  media-type r@0.3.0
  1343       - Thro w error wh en paramet er format  invalid on  parse
  1344     * deps:  range-pars er@~1.0.2
  1345     * deps:  send@0.9.1
  1346       - Add  `lastModif ied` optio n
  1347       - Use  `etag` to  generate ` ETag` head er
  1348       - deps : debug@~2 .0.0
  1349       - deps : fresh@0. 2.4
  1350     * deps:  vary@~1.0. 0
  1351       - Acce pt valid ` Vary` head er string  as `field`
  1352  
  1353   3.16.10 /  2014-09-04
  1354   ========== ==========
  1355  
  1356     * deps:  connect@2. 25.10
  1357       - deps : serve-st atic@~1.5. 4
  1358     * deps:  send@0.8.5
  1359       - Fix  a path tra versal iss ue when us ing `root`
  1360       - Fix  malicious  path detec tion for e mpty strin g path
  1361  
  1362   3.16.9 / 2 014-08-29
  1363   ========== =========
  1364  
  1365     * deps:  connect@2. 25.9
  1366       - deps : body-par ser@~1.6.7
  1367       - deps : qs@2.2.2
  1368  
  1369   3.16.8 / 2 014-08-27
  1370   ========== =========
  1371  
  1372     * deps:  connect@2. 25.8
  1373       - deps : body-par ser@~1.6.6
  1374       - deps : csurf@~1 .4.1
  1375       - deps : qs@2.2.0
  1376  
  1377   3.16.7 / 2 014-08-18
  1378   ========== =========
  1379  
  1380     * deps:  connect@2. 25.7
  1381       - deps : body-par ser@~1.6.5
  1382       - deps : express- session@~1 .7.6
  1383       - deps : morgan@~ 1.2.3
  1384       - deps : serve-st atic@~1.5. 3
  1385     * deps:  send@0.8.3
  1386       - deps : destroy@ 1.0.3
  1387       - deps : on-finis hed@2.1.0
  1388  
  1389   3.16.6 / 2 014-08-14
  1390   ========== =========
  1391  
  1392     * deps:  connect@2. 25.6
  1393       - deps : body-par ser@~1.6.4
  1394       - deps : qs@1.2.2
  1395       - deps : serve-st atic@~1.5. 2
  1396     * deps:  send@0.8.2
  1397       - Work  around `f d` leak in  Node.js 0 .10 for `f s.ReadStre am`
  1398  
  1399   3.16.5 / 2 014-08-11
  1400   ========== =========
  1401  
  1402     * deps:  connect@2. 25.5
  1403       - Fix  backwards  compatibil ity in `lo gger`
  1404  
  1405   3.16.4 / 2 014-08-10
  1406   ========== =========
  1407  
  1408     * Fix or iginal URL  parsing i n `res.loc ation`
  1409     * deps:  connect@2. 25.4
  1410       - Fix  `query` mi ddleware b reaking wi th argumen t
  1411       - deps : body-par ser@~1.6.3
  1412       - deps : compress ion@~1.0.1 1
  1413       - deps : connect- timeout@~1 .2.2
  1414       - deps : express- session@~1 .7.5
  1415       - deps : method-o verride@~2 .1.3
  1416       - deps : on-heade rs@~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-in dex@~1.1.6
  1421       - deps : serve-st atic@~1.5. 1
  1422     * deps:  parseurl@~ 1.3.0
  1423  
  1424   3.16.3 / 2 014-08-07
  1425   ========== =========
  1426  
  1427     * deps:  connect@2. 25.3
  1428       - deps : multipar ty@3.3.2
  1429  
  1430   3.16.2 / 2 014-08-07
  1431   ========== =========
  1432  
  1433     * deps:  connect@2. 25.2
  1434       - deps : body-par ser@~1.6.2
  1435       - deps : qs@1.2.0
  1436  
  1437   3.16.1 / 2 014-08-06
  1438   ========== =========
  1439  
  1440     * deps:  connect@2. 25.1
  1441       - deps : body-par ser@~1.6.1
  1442       - deps : qs@1.1.0
  1443  
  1444   3.16.0 / 2 014-08-05
  1445   ========== =========
  1446  
  1447     * deps:  connect@2. 25.0
  1448       - deps : body-par ser@~1.6.0
  1449       - deps : compress ion@~1.0.1 0
  1450       - deps : csurf@~1 .4.0
  1451       - deps : express- session@~1 .7.4
  1452       - deps : qs@1.0.2
  1453       - deps : serve-st atic@~1.5. 0
  1454     * deps:  send@0.8.1
  1455       - Add  `extension s` option
  1456  
  1457   3.15.3 / 2 014-08-04
  1458   ========== =========
  1459  
  1460     * fix `r es.sendfil e` regress ion for se rving dire ctory inde x files
  1461     * deps:  connect@2. 24.3
  1462       - deps : serve-in dex@~1.1.5
  1463       - deps : serve-st atic@~1.4. 4
  1464     * deps:  send@0.7.4
  1465       - Fix  incorrect  403 on Win dows and N ode.js 0.1 1
  1466       - Fix  serving in dex files  without ro ot dir
  1467  
  1468   3.15.2 / 2 014-07-27
  1469   ========== =========
  1470  
  1471     * deps:  connect@2. 24.2
  1472       - deps : body-par ser@~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-st atic@~1.4. 2
  1477     * deps:  depd@0.4.4
  1478       - Work -around v8  generatin g empty st ack traces
  1479     * deps:  send@0.7.2
  1480       - deps : depd@0.4 .4
  1481  
  1482   3.15.1 / 2 014-07-26
  1483   ========== =========
  1484  
  1485     * deps:  connect@2. 24.1
  1486       - deps : body-par ser@~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-in dex@~1.1.4
  1491       - deps : serve-st atic@~1.4. 1
  1492     * deps:  depd@0.4.3
  1493       - Fix  exception  when globa l `Error.s tackTraceL imit` is t oo low
  1494     * deps:  send@0.7.1
  1495       - deps : depd@0.4 .3
  1496  
  1497   3.15.0 / 2 014-07-22
  1498   ========== =========
  1499  
  1500     * Fix `r eq.protoco l` for pro xy-direct  connection s
  1501     * Pass o ptions fro m `res.sen dfile` to  `send`
  1502     * deps:  connect@2. 24.0
  1503       - deps : body-par ser@~1.5.0
  1504       - deps : compress ion@~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 : finalhan dler@0.1.0
  1510       - deps : method-o verride@~2 .1.2
  1511       - deps : morgan@~ 1.2.0
  1512       - deps : multipar ty@3.3.1
  1513       - deps : parseurl @~1.2.0
  1514       - deps : serve-st atic@~1.4. 0
  1515     * deps:  debug@1.0. 4
  1516     * deps:  depd@0.4.2
  1517       - Add  `TRACE_DEP RECATION`  environmen t variable
  1518       - Remo ve non-sta ndard grey  color fro m color ou tput
  1519       - Supp ort `--no- deprecatio n` argumen t
  1520       - Supp ort `--tra ce-depreca tion` argu ment
  1521     * deps:  parseurl@~ 1.2.0
  1522       - Cach e URLs bas ed on orig inal value
  1523       - Remo ve no-long er-needed  URL mis-pa rse work-a round
  1524       - Simp lify the " fast-path"  `RegExp`
  1525     * deps:  send@0.7.0
  1526       - Add  `dotfiles`  option
  1527       - Cap  `maxAge` v alue to 1  year
  1528       - deps : debug@1. 0.4
  1529       - deps : depd@0.4 .2
  1530  
  1531   3.14.0 / 2 014-07-11
  1532   ========== =========
  1533  
  1534    * add exp licit "Ros etta Flash  JSONP abu se" protec tion
  1535      - previ ous versio ns are not  vulnerabl e; this is  just expl icit prote ction
  1536    * depreca te `res.re direct(url , status)`  -- use `r es.redirec t(status,  url)` inst ead
  1537    * fix `re s.send(sta tus, num)`  to send ` num` as js on (not er ror)
  1538    * remove  unnecessar y escaping  when `res .jsonp` re turns JSON  response
  1539    * deps: b asic-auth@ 1.0.0
  1540      - suppo rt empty p assword
  1541      - suppo rt empty u sername
  1542    * deps: c onnect@2.2 3.0
  1543      - deps:  debug@1.0 .3
  1544      - deps:  express-s ession@~1. 6.4
  1545      - deps:  method-ov erride@~2. 1.0
  1546      - deps:  parseurl@ ~1.1.3
  1547      - deps:  serve-sta tic@~1.3.1
  1548     * deps:  debug@1.0. 3
  1549       - Add  support fo r multiple  wildcards  in namesp aces
  1550     * deps:  methods@1. 1.0
  1551       - add  `CONNECT`
  1552     * deps:  parseurl@~ 1.1.3
  1553       - fast er parsing  of href-o nly URLs
  1554  
  1555   3.13.0 / 2 014-07-03
  1556   ========== =========
  1557  
  1558    * add dep recation m essage to  `app.confi gure`
  1559    * add dep recation m essage to  `req.auth`
  1560    * use `ba sic-auth`  to parse ` Authorizat ion` heade r
  1561    * deps: c onnect@2.2 2.0
  1562      - deps:  csurf@~1. 3.0
  1563      - deps:  express-s ession@~1. 6.1
  1564      - deps:  multipart y@3.3.0
  1565      - deps:  serve-sta tic@~1.3.0
  1566    * deps: s end@0.5.0
  1567      - Accep t string f or `maxage ` (convert ed by `ms` )
  1568      - Inclu de link in  default r edirect re sponse
  1569  
  1570   3.12.1 / 2 014-06-26
  1571   ========== =========
  1572  
  1573    * deps: c onnect@2.2 1.1
  1574      - deps:  cookie-pa rser@1.3.2
  1575      - deps:  cookie-si gnature@1. 0.4
  1576      - deps:  express-s ession@~1. 5.2
  1577      - deps:  type-is@~ 1.3.2
  1578    * deps: c ookie-sign ature@1.0. 4
  1579      - fix f or timing  attacks
  1580  
  1581   3.12.0 / 2 014-06-21
  1582   ========== =========
  1583  
  1584    * use `me dia-typer`  to alter  content-ty pe charset
  1585    * deps: c onnect@2.2 1.0
  1586      - depre cate `conn ect(middle ware)` --  use `app.u se(middlew are)` inst ead
  1587      - depre cate `conn ect.create Server()`  -- use `co nnect()` i nstead
  1588      - fix ` res.setHea der()` pat ch to work  with with  get -> ap pend -> se t pattern
  1589      - deps:  compressi on@~1.0.8
  1590      - deps:  errorhand ler@~1.1.1
  1591      - deps:  express-s ession@~1. 5.0
  1592      - deps:  serve-ind ex@~1.1.3
  1593  
  1594   3.11.0 / 2 014-06-19
  1595   ========== =========
  1596  
  1597    * depreca te things  with `depd ` module
  1598    * deps: b uffer-crc3 2@0.2.3
  1599    * deps: c onnect@2.2 0.2
  1600      - depre cate `veri fy` option  to `json`  -- use `b ody-parser ` npm modu le instead
  1601      - depre cate `veri fy` option  to `urlen coded` --  use `body- parser` np m module i nstead
  1602      - depre cate thing s with `de pd` module
  1603      - use ` finalhandl er` for fi nal respon se handlin g
  1604      - use ` media-type r` to pars e `content -type` for  charset
  1605      - deps:  body-pars er@1.4.3
  1606      - deps:  connect-t imeout@1.1 .1
  1607      - deps:  cookie-pa rser@1.3.1
  1608      - deps:  csurf@1.2 .2
  1609      - deps:  errorhand ler@1.1.0
  1610      - deps:  express-s ession@1.4 .0
  1611      - deps:  multipart y@3.2.9
  1612      - deps:  serve-ind ex@1.1.2
  1613      - deps:  type-is@1 .3.1
  1614      - deps:  vhost@2.0 .0
  1615  
  1616   3.10.5 / 2 014-06-11
  1617   ========== =========
  1618  
  1619    * deps: c onnect@2.1 9.6
  1620      - deps:  body-pars er@1.3.1
  1621      - deps:  compressi on@1.0.7
  1622      - deps:  debug@1.0 .2
  1623      - deps:  serve-ind ex@1.1.1
  1624      - deps:  serve-sta tic@1.2.3
  1625    * deps: d ebug@1.0.2
  1626    * deps: s end@0.4.3
  1627      - Do no t throw un -catchable  error on  file open  race condi tion
  1628      - Use ` escape-htm l` for HTM L escaping
  1629      - deps:  debug@1.0 .2
  1630      - deps:  finished@ 1.2.2
  1631      - deps:  fresh@0.2 .2
  1632  
  1633   3.10.4 / 2 014-06-09
  1634   ========== =========
  1635  
  1636    * deps: c onnect@2.1 9.5
  1637      - fix " event emit ter leak"  warnings
  1638      - deps:  csurf@1.2 .1
  1639      - deps:  debug@1.0 .1
  1640      - deps:  serve-sta tic@1.2.2
  1641      - deps:  type-is@1 .2.1
  1642    * deps: d ebug@1.0.1
  1643    * deps: s end@0.4.2
  1644      - fix " event emit ter leak"  warnings
  1645      - deps:  finished@ 1.2.1
  1646      - deps:  debug@1.0 .1
  1647  
  1648   3.10.3 / 2 014-06-05
  1649   ========== =========
  1650  
  1651    * use `va ry` module  for `res. vary`
  1652    * deps: c onnect@2.1 9.4
  1653      - deps:  errorhand ler@1.0.2
  1654      - deps:  method-ov erride@2.0 .2
  1655      - deps:  serve-fav icon@2.0.1
  1656    * deps: d ebug@1.0.0
  1657  
  1658   3.10.2 / 2 014-06-03
  1659   ========== =========
  1660  
  1661    * deps: c onnect@2.1 9.3
  1662      - deps:  compressi on@1.0.6
  1663  
  1664   3.10.1 / 2 014-06-03
  1665   ========== =========
  1666  
  1667    * deps: c onnect@2.1 9.2
  1668      - deps:  compressi on@1.0.4
  1669    * deps: p roxy-addr@ 1.0.1
  1670  
  1671   3.10.0 / 2 014-06-02
  1672   ========== =========
  1673  
  1674    * deps: c onnect@2.1 9.1
  1675      - depre cate `meth odOverride ()` -- use  `method-o verride` n pm module  instead
  1676      - deps:  body-pars er@1.3.0
  1677      - deps:  method-ov erride@2.0 .1
  1678      - deps:  multipart y@3.2.8
  1679      - deps:  response- time@2.0.0
  1680      - deps:  serve-sta tic@1.2.1
  1681    * deps: m ethods@1.0 .1
  1682    * deps: s end@0.4.1
  1683      - Send  `max-age`  in `Cache- Control` i n correct  format
  1684  
  1685   3.9.0 / 20 14-05-30
  1686   ========== ========
  1687  
  1688    * custom  etag contr ol with `a pp.set('et ag', val)`
  1689      - `app. set('etag' , function (body, enc oding){ re turn '"eta g"' })` cu stom 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)` s tandard et ag
  1694    * Include  ETag in H EAD reques ts
  1695    * mark `r es.send` E Tag as wea k and redu ce collisi ons
  1696    * update  connect to  2.18.0
  1697      - deps:  compressi on@1.0.3
  1698      - deps:  serve-ind ex@1.1.0
  1699      - deps:  serve-sta tic@1.2.0
  1700    * update  send to 0. 4.0
  1701      - Calcu late ETag  with md5 f or reduced  collision s
  1702      - Ignor e stream e rrors afte r request  ends
  1703      - deps:  debug@0.8 .1
  1704  
  1705   3.8.1 / 20 14-05-27
  1706   ========== ========
  1707  
  1708    * update  connect to  2.17.3
  1709      - deps:  body-pars er@1.2.2
  1710      - deps:  express-s ession@1.2 .1
  1711      - deps:  method-ov erride@1.0 .2
  1712  
  1713   3.8.0 / 20 14-05-21
  1714   ========== ========
  1715  
  1716    * keep pr evious `Co ntent-Type ` for `res .jsonp`
  1717    * set pro per `chars et` in `Co ntent-Type ` for `res .send`
  1718    * update  connect to  2.17.1
  1719      - fix ` res.charse t` appendi ng charset  when `con tent-type`  has one
  1720      - deps:  express-s ession@1.2 .0
  1721      - deps:  morgan@1. 1.1
  1722      - deps:  serve-ind ex@1.0.3
  1723  
  1724   3.7.0 / 20 14-05-18
  1725   ========== ========
  1726  
  1727    * proper  proxy trus t with `ap p.set('tru st proxy',  trust)`
  1728      - `app. set('trust  proxy', 1 )` trust f irst hop
  1729      - `app. set('trust  proxy', ' loopback') ` trust lo opback add resses
  1730        - `app.set ('trust pr oxy', ' IP        ')` trust  single IP
  1731        - `app.set ('trust pr oxy', ' IP        /16')` tru st subnet
  1732        - `app.set ('trust pr oxy', ' IP        IP        ')` trust  list
  1733      - `app. set('trust  proxy', f alse)` tur n off
  1734      - `app. set('trust  proxy', t rue)` trus t everythi ng
  1735    * update  connect to  2.16.2
  1736      - depre cate `res. headerSent ` -- use ` res.header sSent`
  1737      - depre cate `res. on("header ")` -- use  on-header s module i nstead
  1738      - fix e dge-case i n `res.app endHeader`  that woul d append i n wrong or der
  1739      - json:  use body- parser
  1740      - urlen coded: use  body-pars er
  1741      - dep:  bytes@1.0. 0
  1742      - dep:  cookie-par ser@1.1.0
  1743      - dep:  csurf@1.2. 0
  1744      - dep:  express-se ssion@1.1. 0
  1745      - dep:  method-ove rride@1.0. 1
  1746  
  1747   3.6.0 / 20 14-05-09
  1748   ========== ========
  1749  
  1750    * depreca te `app.de l()` -- us e `app.del ete()` ins tead
  1751    * depreca te `res.js on(obj, st atus)` --  use `res.j son(status , obj)` in stead
  1752      - the e dge-case ` res.json(s tatus, num )` require s `res.sta tus(status ).json(num )`
  1753    * depreca te `res.js onp(obj, s tatus)` --  use `res. jsonp(stat us, obj)`  instead
  1754      - the e dge-case ` res.jsonp( status, nu m)` requir es `res.st atus(statu s).jsonp(n um)`
  1755    * support  PURGE met hod
  1756      - add ` app.purge`
  1757      - add ` router.pur ge`
  1758      - inclu de PURGE i n `app.all `
  1759    * update  connect to  2.15.0
  1760      * Add ` res.append Header`
  1761      * Call  error stac k even whe n response  has been  sent
  1762      * Patch  `res.head erSent` to  return Bo olean
  1763      * Patch  `res.head ersSent` f or node.js  0.8
  1764      * Preve nt default  404 handl er after r esponse se nt
  1765      * dep:  compressio n@1.0.2
  1766      * dep:  connect-ti meout@1.1. 0
  1767      * dep:  debug@^0.8 .0
  1768      * dep:  errorhandl er@1.0.1
  1769      * dep:  express-se ssion@1.0. 4
  1770      * dep:  morgan@1.0 .1
  1771      * dep:  serve-favi con@2.0.0
  1772      * dep:  serve-inde x@1.0.2
  1773    * update  debug to 0 .8.0
  1774      * add ` enable()`  method
  1775      * chang e from std err to std out
  1776    * update  methods to  1.0.0
  1777      - add P URGE
  1778    * update  mkdirp to  0.5.0
  1779  
  1780   3.5.3 / 20 14-05-08
  1781   ========== ========
  1782  
  1783    * fix `re q.host` fo r IPv6 lit erals
  1784    * fix `re s.jsonp` e rror if ca llback par am is obje ct
  1785  
  1786   3.5.2 / 20 14-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 / 20 14-03-25
  1795   ========== ========
  1796  
  1797    * pin les s-middlewa re in gene rated app
  1798  
  1799   3.5.0 / 20 14-03-06
  1800   ========== ========
  1801  
  1802    * bump de ps
  1803  
  1804   3.4.8 / 20 14-01-13
  1805   ========== ========
  1806  
  1807    * prevent  incorrect  automatic  OPTIONS r esponses # 1868 @dpat ti
  1808    * update  binary and  examples  for jade 1 .0 #1876 @ yossi, #18 77 @reqsha rk, #1892  @matheusaz zi
  1809    * throw 4 00 in case  of malfor med paths  @rlidwka
  1810  
  1811   3.4.7 / 20 13-12-10
  1812   ========== ========
  1813  
  1814    * update  connect
  1815  
  1816   3.4.6 / 20 13-12-01
  1817   ========== ========
  1818  
  1819    * update  connect (r aw-body)
  1820  
  1821   3.4.5 / 20 13-11-27
  1822   ========== ========
  1823  
  1824    * update  connect
  1825    * res.loc ation: rem ove leadin g ./ #1802  @kapouer
  1826    * res.red irect: fix  `res.redi rect('toSt ring') #18 29 @michae lficarra
  1827    * res.sen d: always  send ETag  when conte nt-length  > 0
  1828    * router:  add Route r.all() me thod
  1829  
  1830   3.4.4 / 20 13-10-29
  1831   ========== ========
  1832  
  1833    * update  connect
  1834    * update  supertest
  1835    * update  methods
  1836    * express (1): repla ce bodyPar ser() with  urlencode d() and js on() #1795  @chirag04
  1837  
  1838   3.4.3 / 20 13-10-23
  1839   ========== ========
  1840  
  1841    * update  connect
  1842  
  1843   3.4.2 / 20 13-10-18
  1844   ========== ========
  1845  
  1846    * update  connect
  1847    * downgra de command er
  1848  
  1849   3.4.1 / 20 13-10-15
  1850   ========== ========
  1851  
  1852    * update  connect
  1853    * update  commander
  1854    * jsonp:  check if c allback is  a functio n
  1855    * router:  wrap enco deURICompo nent in a  try/catch  #1735 (@lx e)
  1856    * res.for mat: now i ncludes ch arset @174 7 (@sorrib as)
  1857    * res.lin ks: allow  multiple c alls @1746  (@sorriba s)
  1858  
  1859   3.4.0 / 20 13-09-07
  1860   ========== ========
  1861  
  1862    * add res .vary(). C loses #168 2
  1863    * update  connect
  1864  
  1865   3.3.8 / 20 13-09-02
  1866   ========== ========
  1867  
  1868    * update  connect
  1869  
  1870   3.3.7 / 20 13-08-28
  1871   ========== ========
  1872  
  1873    * update  connect
  1874  
  1875   3.3.6 / 20 13-08-27
  1876   ========== ========
  1877  
  1878    * Revert  "remove ch arset from  json resp onses. Clo ses #1631"  (causes i ssues in s ome client s)
  1879    * add: re q.accepts  take an ar gument lis t
  1880  
  1881   3.3.4 / 20 13-07-08
  1882   ========== ========
  1883  
  1884    * update  send and c onnect
  1885  
  1886   3.3.3 / 20 13-07-04
  1887   ========== ========
  1888  
  1889    * update  connect
  1890  
  1891   3.3.2 / 20 13-07-03
  1892   ========== ========
  1893  
  1894    * update  connect
  1895    * update  send
  1896    * remove  .version e xport
  1897  
  1898   3.3.1 / 20 13-06-27
  1899   ========== ========
  1900  
  1901    * update  connect
  1902  
  1903   3.3.0 / 20 13-06-26
  1904   ========== ========
  1905  
  1906    * update  connect
  1907    * add sup port for m ultiple X- Forwarded- Proto valu es. Closes  #1646
  1908    * change:  remove ch arset from  json resp onses. Clo ses #1631
  1909    * change:  return ac tual boole ans from r eq.accept*  functions
  1910    * fix jso np callbac k array th row
  1911  
  1912   3.2.6 / 20 13-06-02
  1913   ========== ========
  1914  
  1915    * update  connect
  1916  
  1917   3.2.5 / 20 13-05-21
  1918   ========== ========
  1919  
  1920    * update  connect
  1921    * update  node-cooki e
  1922    * add: th row a mean ingful err or when th ere is no  default en gine
  1923    * change  generation  of ETags  with res.s end() to G ET request s only. Cl oses #1619
  1924  
  1925   3.2.4 / 20 13-05-09
  1926   ========== ========
  1927  
  1928     * fix `r eq.subdoma ins` when  no Host is  present
  1929     * fix `r eq.host` w hen no Hos t is prese nt, return  undefined
  1930  
  1931   3.2.3 / 20 13-05-07
  1932   ========== ========
  1933  
  1934     * update  connect /  qs
  1935  
  1936   3.2.2 / 20 13-05-03
  1937   ========== ========
  1938  
  1939     * update  qs
  1940  
  1941   3.2.1 / 20 13-04-29
  1942   ========== ========
  1943  
  1944     * add ap p.VERB() p aths array  deprecati on warning
  1945     * update  connect
  1946     * update  qs and re move all ~  semver cr ap
  1947     * fix: a ccept numb er as valu e of Signe d Cookie
  1948  
  1949   3.2.0 / 20 13-04-15
  1950   ========== ========
  1951  
  1952     * add "v iew" const ructor set ting to ov erride vie w behaviou r
  1953     * add re q.acceptsE ncoding(na me)
  1954     * add re q.accepted Encodings
  1955     * revert  cookie si gnature ch ange causi ng session  race cond itions
  1956     * fix so rting of A ccept valu es of the  same quali ty
  1957  
  1958   3.1.2 / 20 13-04-12
  1959   ========== ========
  1960  
  1961     * add su pport for  custom Acc ept parame ters
  1962     * update  cookie-si gnature
  1963  
  1964   3.1.1 / 20 13-04-01
  1965   ========== ========
  1966  
  1967     * add X- Forwarded- Host suppo rt to `req .host`
  1968     * fix re lative red irects
  1969     * update  mkdirp
  1970     * update  buffer-cr c32
  1971     * remove  legacy ap p.configur e() method  from app  template.
  1972  
  1973   3.1.0 / 20 13-01-25
  1974   ========== ========
  1975  
  1976     * add su pport for  leading ". " in "view  engine" s etting
  1977     * add ar ray suppor t to `res. set()`
  1978     * add no de 0.8.x t o travis.y ml
  1979     * add "s ubdomain o ffset" set ting for t weaking `r eq.subdoma ins`
  1980     * add `r es.locatio n(url)` im plementing  `res.redi rect()`-li ke setting  of Locati on
  1981     * use ap p.get() fo r x-powere d-by setti ng for inh eritance
  1982     * fix co lons in pa sswords fo r `req.aut h`
  1983  
  1984   3.0.6 / 20 13-01-04
  1985   ========== ========
  1986  
  1987     * add ht tp verb me thods to R outer
  1988     * update  connect
  1989     * fix ma ngling of  the `res.c ookie()` o ptions obj ect
  1990     * fix js onp whites pace escap e. Closes  #1132
  1991  
  1992   3.0.5 / 20 12-12-19
  1993   ========== ========
  1994  
  1995     * add th rowing whe n a non-fu nction is  passed to  a route
  1996     * fix: e xplicitly  remove Tra nsfer-Enco ding heade r from 204  and 304 r esponses
  1997     * revert  "add 'eta g' option"
  1998  
  1999   3.0.4 / 20 12-12-05
  2000   ========== ========
  2001  
  2002     * add 'e tag' optio n to disab le `res.se nd()` Etag s
  2003     * add es caping of  urls in te xt/plain i n `res.red irect()`
  2004       for ol d browsers  interpret ing as htm l
  2005     * change  crc32 mod ule for a  more liber al license
  2006     * update  connect
  2007  
  2008   3.0.3 / 20 12-11-13
  2009   ========== ========
  2010  
  2011     * update  connect
  2012     * update  cookie mo dule
  2013     * fix co okie max-a ge
  2014  
  2015   3.0.2 / 20 12-11-08
  2016   ========== ========
  2017  
  2018     * add OP TIONS to c ors exampl e. Closes  #1398
  2019     * fix ro ute chaini ng regress ion. Close s #1397
  2020  
  2021   3.0.1 / 20 12-11-01
  2022   ========== ========
  2023  
  2024     * update  connect
  2025  
  2026   3.0.0 / 20 12-10-23
  2027   ========== ========
  2028  
  2029     * add `m ake clean`
  2030     * add "B asic" chec k to req.a uth
  2031     * add `r eq.auth` t est covera ge
  2032     * add cb  && cb(pay load) to ` res.jsonp( )`. Closes  #1374
  2033     * add ba ckwards co mpat for ` res.redire ct()` stat us. Closes  #1336
  2034     * add su pport for  `res.json( )` to reta in previou sly define d Content- Types. Clo ses #1349
  2035     * update  connect
  2036     * change  `res.redi rect()` to  utilize a  pathname- relative L ocation ag ain. Close s #1382
  2037     * remove  non-primi tive strin g support  for `res.s end()`
  2038     * fix vi ew-locals  example. C loses #137 0
  2039     * fix ro ute-separa tion examp le
  2040  
  2041   3.0.0rc5 /  2012-09-1 8
  2042   ========== ========
  2043  
  2044     * update  connect
  2045     * add re dis search  example
  2046     * add st atic-files  example
  2047     * add "x -powered-b y" setting  (`app.dis able('x-po wered-by') `)
  2048     * add "a pplication /octet-str eam" redir ect Accept  test case . Closes # 1317
  2049  
  2050   3.0.0rc4 /  2012-08-3 0
  2051   ========== ========
  2052  
  2053     * add `r es.jsonp() `. Closes  #1307
  2054     * add "v erbose err ors" optio n to error -pages exa mple
  2055     * add an other rout e example  to express (1) so peo ple are no t so confu sed
  2056     * add re dis online  user acti vity track ing exampl e
  2057     * update  connect d ep
  2058     * fix et ag quoting . Closes # 1310
  2059     * fix er ror-pages  404 status
  2060     * fix js onp callba ck char re strictions
  2061     * remove  old OPTIO NS default  response
  2062  
  2063   3.0.0rc3 /  2012-08-1 3
  2064   ========== ========
  2065  
  2066     * update  connect d ep
  2067     * fix si gned cooki es to work  with `con nect.cooki eParser()`  ("s:" pre fix was mi ssing) [tn ydwrds]
  2068     * fix `r es.render( )` clobber ing of "lo cals"
  2069  
  2070   3.0.0rc2 /  2012-08-0 3
  2071   ========== ========
  2072  
  2073     * add CO RS example
  2074     * update  connect d ep
  2075     * deprec ate `.crea teServer() ` & remove  old stale  examples
  2076     * fix: e scape `res .redirect( )` link
  2077     * fix vh ost exampl e
  2078  
  2079   3.0.0rc1 /  2012-07-2 4
  2080   ========== ========
  2081  
  2082     * add mo re example s to view- locals
  2083     * add sc heme-relat ive redire cts (`res. redirect(" //foo.com" )`) suppor t
  2084     * update  cookie de p
  2085     * update  connect d ep
  2086     * update  send dep
  2087     * fix `e xpress(1)`  -h flag,  use -H for  hogan. Cl oses #1245
  2088     * fix `r es.sendfil e()` socke t error ha ndling reg ression
  2089  
  2090   3.0.0beta7  / 2012-07 -16
  2091   ========== ========
  2092  
  2093     * update  connect d ep for `se nd()` root  normaliza tion regre ssion
  2094  
  2095   3.0.0beta6  / 2012-07 -13
  2096   ========== ========
  2097  
  2098     * add `e rr.view` p roperty fo r view err ors. Close s #1226
  2099     * add "j sonp callb ack name"  setting
  2100     * add su pport for  "/foo/:bar *" non-gre edy matche s
  2101     * change  `res.send file()` to  use `send ()` module
  2102     * change  `res.send ` to use " response-s end" modul e
  2103     * remove  `app.loca ls.use` an d `res.loc als.use`,  use regula r middlewa re
  2104  
  2105   3.0.0beta5  / 2012-07 -03
  2106   ========== ========
  2107  
  2108     * add "m ake check"  support
  2109     * add ro ute-map ex ample
  2110     * add `r es.json(ob j, status) ` support  back for B C
  2111     * add "m ethods" de p, remove  internal m ethods mod ule
  2112     * update  connect d ep
  2113     * update  auth exam ple to uti lize cores  pbkdf2
  2114     * update d tests to  use "supe rtest"
  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, stat us)` suppo rt back fo r backward s compat
  2123     * Added  `.default( )` support  to `res.f ormat()`
  2124     * Added  2xx / 304  check to ` req.fresh`
  2125     * Revert  "Added +  support to  the route r"
  2126     * Fixed  `res.send( )` freshne ss check,  respect re s.statusCo de
  2127  
  2128   3.0.0beta3  / 2012-06 -15
  2129   ========== ========
  2130  
  2131     * Added  hogan `--h js` to exp ress(1) [n ullfirm]
  2132     * Added  another ex ample to c ontent-neg otiation
  2133     * Added  `fresh` de p
  2134     * Change d: `res.se nd()` alwa ys checks  freshness
  2135     * Fixed:  expose co nnects mim e module.  Closes #11 65
  2136  
  2137   3.0.0beta2  / 2012-06 -06
  2138   ========== ========
  2139  
  2140     * Added  `+` suppor t to the r outer
  2141     * Added  `req.host`
  2142     * Change d `req.par am()` to c heck route  first
  2143     * Update  connect d ep
  2144  
  2145   3.0.0beta1  / 2012-06 -01
  2146   ========== ========
  2147  
  2148     * Added  `res.forma t()` callb ack to ove rride defa ult 406 be haviour
  2149     * Fixed  `res.redir ect()` 406 . Closes # 1154
  2150  
  2151   3.0.0alpha 5 / 2012-0 5-30
  2152   ========== ========
  2153  
  2154     * Added  `req.ip`
  2155     * Added  `{ signed:  true }` o ption to ` res.cookie ()`
  2156     * Remove d `res.sig nedCookie( )`
  2157     * Change d: dont re verse `req .ips`
  2158     * Fixed  "trust pro xy" settin g check fo r `req.ips `
  2159  
  2160   3.0.0alpha 4 / 2012-0 5-09
  2161   ========== ========
  2162  
  2163     * Added:  allow `[] ` in jsonp  callback.  Closes #1 128
  2164     * Added  `PORT` env  var suppo rt in gene rated temp late. Clos es #1118 [ benatkin]
  2165     * Update d: connect  2.2.2
  2166  
  2167   3.0.0alpha 3 / 2012-0 5-04
  2168   ========== ========
  2169  
  2170     * Added  public `ap p.routes`.  Closes #8 87
  2171     * Added  _view-loca ls_ exampl e
  2172     * Added  _mvc_ exam ple
  2173     * Added  `res.local s.use()`.  Closes #11 20
  2174     * Added  conditiona l-GET supp ort to `re s.send()`
  2175     * Added:  coerce `r es.set()`  values to  strings
  2176     * Change d: moved ` static()`  in generat ed apps be low router
  2177     * Change d: `res.se nd()` only  set ETag  when not p reviously  set
  2178     * Change d connect  2.2.1 dep
  2179     * Change d: `make t est` now r uns unit /  acceptanc e tests
  2180     * Fixed  req/res pr oto inheri tance
  2181  
  2182   3.0.0alpha 2 / 2012-0 4-26
  2183   ========== ========
  2184  
  2185     * Added  `make benc hmark` bac k
  2186     * Added  `res.send( )` support  for `Stri ng` object s
  2187     * Added  client-sid e data exp osing exam ple
  2188     * Added  `res.heade r()` and ` req.header ()` aliase s for BC
  2189     * Added  `express.c reateServe r()` for B C
  2190     * Perf:  memoize pa rsed urls
  2191     * Perf:  connect 2. 2.0 dep
  2192     * Change d: make `e xpressInit ()` middle ware self- aware
  2193     * Fixed:  use app.g et() for a ll core se ttings
  2194     * Fixed  redis sess ion exampl e
  2195     * Fixed  session ex ample. Clo ses #1105
  2196     * Fixed  generated  express de p. Closes  #1078
  2197  
  2198   3.0.0alpha 1 / 2012-0 4-15
  2199   ========== ========
  2200  
  2201     * Added  `app.local s.use(call back)`
  2202     * Added  `app.local s` object
  2203     * Added  `app.local s(obj)`
  2204     * Added  `res.local s` object
  2205     * Added  `res.local s(obj)`
  2206     * Added  `res.forma t()` for c ontent-neg otiation
  2207     * Added  `app.engin e()`
  2208     * Added  `res.cooki e()` JSON  cookie sup port
  2209     * Added  "trust pro xy" settin g
  2210     * Added  `req.subdo mains`
  2211     * Added  `req.proto col`
  2212     * Added  `req.secur e`
  2213     * Added  `req.path`
  2214     * Added  `req.ips`
  2215     * Added  `req.fresh `
  2216     * Added  `req.stale `
  2217     * Added  comma-deli mited / ar ray suppor t for `req .accepts() `
  2218     * Added  debug inst rumentatio n
  2219     * Added  `res.set(o bj)`
  2220     * Added  `res.set(f ield, valu e)`
  2221     * Added  `res.get(f ield)`
  2222     * Added  `app.get(s etting)`.  Closes #84 2
  2223     * Added  `req.accep tsLanguage ()`
  2224     * Added  `req.accep tsCharset( )`
  2225     * Added  `req.accep ted`
  2226     * Added  `req.accep tedLanguag es`
  2227     * Added  `req.accep tedCharset s`
  2228     * Added  "json repl acer" sett ing
  2229     * Added  "json spac es" settin g
  2230     * Added  X-Forwarde d-Proto su pport to ` res.redire ct()`. Clo ses #92
  2231     * Added  `--less` s upport to  express(1)
  2232     * Added  `express.r esponse` p rototype
  2233     * Added  `express.r equest` pr ototype
  2234     * Added  `express.a pplication ` prototyp e
  2235     * Added  `app.path( )`
  2236     * Added  `app.rende r()`
  2237     * Added  `res.type( )` to repl ace `res.c ontentType ()`
  2238     * Change d: `res.re direct()`  to add rel ative supp ort
  2239     * Change d: enable  "jsonp cal lback" by  default
  2240     * Change d: renamed  "case sen sitive rou tes" to "c ase sensit ive routin g"
  2241     * Rewrit e of all t ests with  mocha
  2242     * Remove d "root" s etting
  2243     * Remove d `res.red irect('hom e')` suppo rt
  2244     * Remove d `req.not ify()`
  2245     * Remove d `app.reg ister()`
  2246     * Remove d `app.red irect()`
  2247     * Remove d `app.is( )`
  2248     * Remove d `app.hel pers()`
  2249     * Remove d `app.dyn amicHelper s()`
  2250     * Fixed  `res.sendf ile()` wit h non-GET.  Closes #7 23
  2251     * Fixed  express(1)  public di r for wind ows. Close s #866
  2252  
  2253   2.5.9/ 201 2-04-02
  2254   ========== ========
  2255  
  2256     * Added  support fo r PURGE re quest meth od [pbuyle ]
  2257     * Fixed  `express(1 )` generat ed app `ap p.address( )` before  `listening ` [mmaleck i]
  2258  
  2259   2.5.8 / 20 12-02-08
  2260   ========== ========
  2261  
  2262     * Update  mkdirp de p. Closes  #991
  2263  
  2264   2.5.7 / 20 12-02-06
  2265   ========== ========
  2266  
  2267     * Fixed  `app.all`  duplicate  DELETE req uests [msc dex]
  2268  
  2269   2.5.6 / 20 12-01-13
  2270   ========== ========
  2271  
  2272     * Update d hamljs d ev dep. Cl oses #953
  2273  
  2274   2.5.5 / 20 12-01-08
  2275   ========== ========
  2276  
  2277     * Fixed:  set `file name` on c ached temp lates [mat thewleon]
  2278  
  2279   2.5.4 / 20 12-01-02
  2280   ========== ========
  2281  
  2282     * Fixed  `express(1 )` eol on  0.4.x. Clo ses #947
  2283  
  2284   2.5.3 / 20 11-12-30
  2285   ========== ========
  2286  
  2287     * Fixed  `req.is()`  when a ch arset is p resent
  2288  
  2289   2.5.2 / 20 11-12-10
  2290   ========== ========
  2291  
  2292     * Fixed:  express(1 ) LF -> CR LF for win dows
  2293  
  2294   2.5.1 / 20 11-11-17
  2295   ========== ========
  2296  
  2297     * Change d: updated  connect t o 1.8.x
  2298     * Remove d sass.js  support fr om express (1)
  2299  
  2300   2.5.0 / 20 11-10-24
  2301   ========== ========
  2302  
  2303     * Added  ./routes d ir for gen erated app  by defaul t
  2304     * Added  npm instal l reminder  to expres s(1) app g en
  2305     * Added  0.5.x supp ort
  2306     * Remove d `make te st-cov` si nce it won t work wit h node 0.5 .x
  2307     * Fixed  express(1)  public di r for wind ows. Close s #866
  2308  
  2309   2.4.7 / 20 11-10-05
  2310   ========== ========
  2311  
  2312     * Added  mkdirp to  express(1) . Closes # 795
  2313     * Added  simple _js on-config_  example
  2314     * Added   shorthand  for the p arsed requ est's path name via ` req.path`
  2315     * Change d connect  dep to 1.7 .x to fix  npm issue. ..
  2316     * Fixed  `res.redir ect()` __H EAD__ supp ort. [repo rted by xe rox]
  2317     * Fixed  `req.flash ()`, only  escape arg s
  2318     * Fixed  absolute p ath checki ng on wind ows. Close s #829 [re ported by  andrewpmck enzie]
  2319  
  2320   2.4.6 / 20 11-08-22
  2321   ========== ========
  2322  
  2323     * Fixed  multiple p aram callb ack regres sion. Clos es #824 [r eported by  TroyGoode ]
  2324  
  2325   2.4.5 / 20 11-08-19
  2326   ========== ========
  2327  
  2328     * Added  support fo r routes t o handle e rrors. Clo ses #809
  2329     * Added  `app.route s.all()`.  Closes #80 3
  2330     * Added  "basepath"  setting t o work in  conjunctio n with rev erse proxi es etc.
  2331     * Refact ored `Rout e` to use  a single a rray of ca llbacks
  2332     * Added  support fo r multiple  callbacks  for `app. param()`.  Closes #80 1
  2333   Closes #80 5
  2334     * Change d: removed  .call(sel f) for rou te callbac ks
  2335     * Depend ency: `qs  >= 0.3.1`
  2336     * Fixed  `res.redir ect()` on  windows du e to `join ()` usage.  Closes #8 08
  2337  
  2338   2.4.4 / 20 11-08-05
  2339   ========== ========
  2340  
  2341     * Fixed  `res.heade r()` inten tion of a  set, even  when `unde fined`
  2342     * Fixed  `*`, value  no longer  required
  2343     * Fixed  `res.send( 204)` supp ort. Close s #771
  2344  
  2345   2.4.3 / 20 11-07-14
  2346   ========== ========
  2347  
  2348     * Added  docs for ` status` op tion speci al-case. C loses #739
  2349     * Fixed  `options.f ilename`,  exposing t he view pa th to temp late engin es
  2350  
  2351   2.4.2. / 2 011-07-06
  2352   ========== ========
  2353  
  2354     * Revert  "removed  jsonp stri pping" for  XSS
  2355  
  2356   2.4.1 / 20 11-07-06
  2357   ========== ========
  2358  
  2359     * Added  `res.json( )` JSONP s upport. Cl oses #737
  2360     * Added  _extending -templates _ example.  Closes #7 30
  2361     * Added  "strict ro uting" set ting for t railing sl ashes
  2362     * Added  support fo r multiple  envs in ` app.config ure()` cal ls. Closes  #735
  2363     * Change d: `res.se nd()` usin g `res.jso n()`
  2364     * Change d: when co okie `path  === null`  don't def ault it
  2365     * Change d; default  cookie pa th to "hom e" setting . Closes # 731
  2366     * Remove d _pids/lo gs_ creati on from ex press(1)
  2367  
  2368   2.4.0 / 20 11-06-28
  2369   ========== ========
  2370  
  2371     * Added  chainable  `res.statu s(code)`
  2372     * Added  `res.json( )`, an exp licit vers ion of `re s.send(obj )`
  2373     * Added  simple web -service e xample
  2374  
  2375   2.3.12 / 2 011-06-22
  2376   ========== ========
  2377  
  2378     * \#expr ess is now  on freeno de! come j oin!
  2379     * Added  `req.get(f ield, para m)`
  2380     * Added  links to J apanese do cumentatio n, thanks  @hideyukis aito!
  2381     * Added;  the `expr ess(1)` ge nerated ap p outputs  the env
  2382     * Added  `content-n egotiation ` example
  2383     * Depend ency: conn ect >= 1.5 .1 < 2.0.0
  2384     * Fixed  view layou t bug. Clo ses #720
  2385     * Fixed;  ignore bo dy on 304.  Closes #7 01
  2386  
  2387   2.3.11 / 2 011-06-04
  2388   ========== ========
  2389  
  2390     * Added  `npm test`
  2391     * Remove d generati on of dumm y test fil e from `ex press(1)`
  2392     * Fixed;  `express( 1)` adds e xpress as  a dep
  2393     * Fixed;  prune on  `prepublis h`
  2394  
  2395   2.3.10 / 2 011-05-27
  2396   ========== ========
  2397  
  2398     * Added  `req.route `, exposin g the curr ent route
  2399     * Added  _package.j son_ gener ation supp ort to `ex press(1)`
  2400     * Fixed  call to `a pp.param() ` function  for optio nal params . Closes # 682
  2401  
  2402   2.3.9 / 20 11-05-25
  2403   ========== ========
  2404  
  2405     * Fixed  bug-ish wi th `../' i n `res.par tial()` ca lls
  2406  
  2407   2.3.8 / 20 11-05-24
  2408   ========== ========
  2409  
  2410     * Fixed  `app.optio ns()`
  2411  
  2412   2.3.7 / 20 11-05-23
  2413   ========== ========
  2414  
  2415     * Added  route `Col lection`,  ex: `app.g et('/user/ :id').remo ve();`
  2416     * Added  support fo r `app.par am(fn)` to  define pa ram logic
  2417     * Remove d `app.par am()` supp ort for ca llback wit h return v alue
  2418     * Remove d module.p arent chec k from exp ress(1) ge nerated ap p. Closes  #670
  2419     * Refact ored route r. Closes  #639
  2420  
  2421   2.3.6 / 20 11-05-20
  2422   ========== ========
  2423  
  2424     * Change d; using d evDependen cies inste ad of git  submodules
  2425     * Fixed  redis sess ion exampl e
  2426     * Fixed  markdown e xample
  2427     * Fixed  view cachi ng, should  not be en abled in d evelopment
  2428  
  2429   2.3.5 / 20 11-05-20
  2430   ========== ========
  2431  
  2432     * Added  export `.v iew` as al ias for `. View`
  2433  
  2434   2.3.4 / 20 11-05-08
  2435   ========== ========
  2436  
  2437     * Added  `./example s/say`
  2438     * Fixed  `res.sendf ile()` bug  preventin g the tran sfer of fi les with s paces
  2439  
  2440   2.3.3 / 20 11-05-03
  2441   ========== ========
  2442  
  2443     * Added  "case sens itive rout es" option .
  2444     * Change d; split m ethods sup ported per  rfc [slas kis]
  2445     * Fixed  route-spec ific middl eware when  using the  same call back funct ion severa l times
  2446  
  2447   2.3.2 / 20 11-04-27
  2448   ========== ========
  2449  
  2450     * Fixed  view hints
  2451  
  2452   2.3.1 / 20 11-04-26
  2453   ========== ========
  2454  
  2455     * Added  `app.match ()` as `ap p.match.al l()`
  2456     * Added  `app.looku p()` as `a pp.lookup. all()`
  2457     * Added  `app.remov e()` for ` app.remove .all()`
  2458     * Added  `app.remov e.VERB()`
  2459     * Fixed  template c aching col lision iss ue. Closes  #644
  2460     * Moved  router ove r from con nect and s tarted ref actor
  2461  
  2462   2.3.0 / 20 11-04-25
  2463   ========== ========
  2464  
  2465     * Added  options su pport to ` res.clearC ookie()`
  2466     * Added  `res.helpe rs()` as a lias of `r es.locals( )`
  2467     * Added;  json defa ults to UT F-8 with ` res.send() `. Closes  #632. [Dan iel   * De pendency ` connect >=  1.4.0`
  2468     * Change d; auto se t Content- Type in re s.attachem ent [Aaron  Heckmann]
  2469     * Rename d "cache v iews" to " view cache ". Closes  #628
  2470     * Fixed  caching of  views whe n using se veral apps . Closes # 637
  2471     * Fixed  gotcha inv oking `app .param()`  callbacks  once per r oute middl eware.
  2472   Closes #63 8
  2473     * Fixed  partial lo okup prece dence. Clo ses #631
  2474   Shaw]
  2475  
  2476   2.2.2 / 20 11-04-12
  2477   ========== ========
  2478  
  2479     * Added  second cal lback supp ort for `r es.downloa d()` conne ction erro rs
  2480     * Fixed  `filename`  option pa ssing to t emplate en gine
  2481  
  2482   2.2.1 / 20 11-04-04
  2483   ========== ========
  2484  
  2485     * Added  `layout(pa th)` helpe r to chang e the layo ut within  a view. Cl oses #610
  2486     * Fixed  `partial() ` collecti on object  support.
  2487       Previo usly only  anything w ith `.leng th` would  work.
  2488       When ` .length` i s present  one must s till be aw are of hol es,
  2489       howeve r now `{ c ollection:  {foo: 'ba r'}}` is v alid, expo ses
  2490       `keyIn Collection ` and `key sInCollect ion`.
  2491  
  2492     * Perfor mance impr oved with  better vie w caching
  2493     * Remove d `request ` and `res ponse` loc als
  2494     * Change d; errorHa ndler page  title is  now `Expre ss` instea d of `Conn ect`
  2495  
  2496   2.2.0 / 20 11-03-30
  2497   ========== ========
  2498  
  2499     * Added  `app.looku p.VERB()`,  ex `app.l ookup.put( '/user/:id ')`. Close s #606
  2500     * Added  `app.match .VERB()`,  ex `app.ma tch.put('/ user/12')` . Closes # 606
  2501     * Added  `app.VERB( path)` as  alias of ` app.lookup .VERB()`.
  2502     * Depend ency `conn ect >= 1.2 .0`
  2503  
  2504   2.1.1 / 20 11-03-29
  2505   ========== ========
  2506  
  2507     * Added;  expose `e rr.view` o bject when  failing t o locate a  view
  2508     * Fixed  `res.parti al()` call  `next(err )` when no  callback  is given [ reported b y aheckman n]
  2509     * Fixed;  `res.send (undefined )` respond s with 204  [aheckman n]
  2510  
  2511   2.1.0 / 20 11-03-24
  2512   ========== ========
  2513  
  2514     * Added  `<root>/_? <name>` pa rtial look up support . Closes # 447
  2515     * Added  `request`,  `response `, and `ap p` local v ariables
  2516     * Added  `settings`  local var iable, con taining th e app's se ttings
  2517     * Added  `req.flash ()` except ion if `re q.session`  is not av ailable
  2518     * Added  `res.send( bool)` sup port (json  response)
  2519     * Fixed  stylus exa mple for l atest vers ion
  2520     * Fixed;  wrap try/ catch arou nd `res.re nder()`
  2521  
  2522   2.0.0 / 20 11-03-17
  2523   ========== ========
  2524  
  2525     * Fixed  up index v iew path a lternative .
  2526     * Change d; `res.lo cals()` wi thout obje ct returns  the local s
  2527  
  2528   2.0.0rc3 /  2011-03-1 7
  2529   ========== ========
  2530  
  2531     * Added  `res.local s(obj)` to  complimen t `res.loc al(key, va l)`
  2532     * Added  `res.parti al()` call back suppo rt
  2533     * Fixed  recursive  error repo rting issu e in `res. render()`
  2534  
  2535   2.0.0rc2 /  2011-03-1 7
  2536   ========== ========
  2537  
  2538     * Change d; `partia l()` "loca ls" are no w optional
  2539     * Fixed  `SlowBuffe r` support . Closes # 584 [repor ted by tyr da01]
  2540     * Fixed  .filename  view engin e option [ reported b y drudge]
  2541     * Fixed  blog examp le
  2542     * Fixed  `{req,res} .app` refe rence when  mounting  [Ben Weave r]
  2543  
  2544   2.0.0rc /  2011-03-14
  2545   ========== ========
  2546  
  2547     * Fixed;  expose `H TTPSServer ` construc tor
  2548     * Fixed  express(1)  default t est charse t. Closes  #579 [repo rted by se coif]
  2549     * Fixed;  default c harset to  utf-8 inst ead of utf 8 for lame  IE [repor ted by Nic kP]
  2550  
  2551   2.0.0beta3  / 2011-03 -09
  2552   ========== ========
  2553  
  2554     * Added  support fo r `res.con tentType() ` literal
  2555       The or iginal `re s.contentT ype('.json ')`,
  2556       `res.c ontentType ('applicat ion/json') `, and `re s.contentT ype('json' )`
  2557       will w ork now.
  2558     * Added  `res.rende r()` statu s option s upport bac k
  2559     * Added  charset op tion for ` res.render ()`
  2560     * Added  `.charset`  support ( via connec t 1.0.4)
  2561     * Added  view resol ution hint s when in  developmen t and a lo okup fails
  2562     * Added  layout loo kup suppor t relative  to the pa ge view.
  2563       For ex ample whil e renderin g `./views /user/inde x.jade` if  you creat e
  2564       `./vie ws/user/la yout.jade`  it will b e used in  favour of  the root l ayout.
  2565     * Fixed  `res.redir ect()`. RF C states a bsolute ur l [reporte d by unlin k]
  2566     * Fixed;  default ` res.send() ` string c harset to  utf8
  2567     * Remove d `Partial ` construc tor (not c urrently u sed)
  2568  
  2569   2.0.0beta2  / 2011-03 -07
  2570   ========== ========
  2571  
  2572     * Added  res.render () `.local s` support  back to a id in migr ation proc ess
  2573     * Fixed  flash exam ple
  2574  
  2575   2.0.0beta  / 2011-03- 03
  2576   ========== ========
  2577  
  2578     * Added  HTTPS supp ort
  2579     * Added  `res.cooki e()` maxAg e support
  2580     * Added  `req.heade r()` _Refe rrer_ / _R eferer_ sp ecial-case , either w orks
  2581     * Added  mount supp ort for `r es.redirec t()`, now  respects t he mount-p oint
  2582     * Added  `union()`  util, taki ng place o f `merge(c lone())` c ombo
  2583     * Added  stylus sup port to ex press(1) g enerated a pp
  2584     * Added  secret to  session mi ddleware u sed in exa mples and  generated  app
  2585     * Added  `res.local (name, val )` for pro gressive v iew locals
  2586     * Added  default pa ram suppor t to `req. param(name , default) `
  2587     * Added  `app.disab led()` and  `app.enab led()`
  2588     * Added  `app.regis ter()` sup port for o mitting le ading ".",  either wo rks
  2589     * Added  `res.parti al()`, usi ng the sam e interfac e as `part ial()` wit hin a view . Closes # 539
  2590     * Added  `app.param ()` to map  route par ams to asy nc/sync lo gic
  2591     * Added;  aliased ` app.helper s()` as `a pp.locals( )`. Closes  #481
  2592     * Added  extname wi th no lead ing "." su pport to ` res.conten tType()`
  2593     * Added  `cache vie ws` settin g, default ing to ena bled in "p roduction"  env
  2594     * Added  index file  partial r esolution,  eg: parti al('user')  may try _ views/user /index.jad e_.
  2595     * Added  `req.accep ts()` supp ort for ex tensions
  2596     * Change d; `res.do wnload()`  and `res.s endfile()`  now utili ze Connect 's
  2597       static  file serv er `connec t.static.s end()`.
  2598     * Change d; replace d `connect .utils.mim e()` with  npm _mime_  module
  2599     * Change d; allow ` req.query`  to be pre -defined ( via middle ware or ot her parent
  2600     * Change d view par tial resol ution, now  relative  to parent  view
  2601     * Change d view eng ine signat ure. no lo nger `engi ne.render( str, optio ns, callba ck)`, now  `engine.co mpile(str,  options)  -> Functio n`, the re turned fun ction acce pts `fn(lo cals)`.
  2602     * Fixed  `req.param ()` bug re turning Ar ray.protot ype method s. Closes  #552
  2603     * Fixed;  using `St ream#pipe( )` instead  of `sys.p ump()` in  `res.sendf ile()`
  2604     * Fixed;  using _qs _ module i nstead of  _querystri ng_
  2605     * Fixed;  strip uns afe chars  from jsonp  callbacks
  2606     * Remove d "stream  threshold"  setting
  2607  
  2608   1.0.8 / 20 11-03-01
  2609   ========== ========
  2610  
  2611     * Allow  `req.query ` to be pr e-defined  (via middl eware or o ther paren t app)
  2612     * "conne ct": ">= 0 .5.0 < 1.0 .0". Close s #547
  2613     * Remove d the long  deprecate d __EXPRES S_ENV__ su pport
  2614  
  2615   1.0.7 / 20 11-02-07
  2616   ========== ========
  2617  
  2618     * Fixed  `render()`  setting i nheritance .
  2619       Mounte d apps wou ld not inh erit "view  engine"
  2620  
  2621   1.0.6 / 20 11-02-07
  2622   ========== ========
  2623  
  2624     * Fixed  `view engi ne` settin g bug when  period is  in dirnam e
  2625  
  2626   1.0.5 / 20 11-02-05
  2627   ========== ========
  2628  
  2629     * Added  secret to  generated  app `sessi on()` call
  2630  
  2631   1.0.4 / 20 11-02-05
  2632   ========== ========
  2633  
  2634     * Added  `qs` depen dency to _ package.js on_
  2635     * Fixed  namespaced  `require( )`s for la test conne ct support
  2636  
  2637   1.0.3 / 20 11-01-13
  2638   ========== ========
  2639  
  2640     * Remove  unsafe ch aracters f rom JSONP  callback n ames [Ryan  Grove]
  2641  
  2642   1.0.2 / 20 11-01-10
  2643   ========== ========
  2644  
  2645     * Remove d nested r equire, us ing `conne ct.router`
  2646  
  2647   1.0.1 / 20 10-12-29
  2648   ========== ========
  2649  
  2650     * Fixed  for middle ware stack ed via `cr eateServer ()`
  2651       previo usly the ` foo` middl eware pass ed to `cre ateServer( foo)`
  2652       would  not have a ccess to E xpress met hods such  as `res.se nd()`
  2653       or pro ps like `r eq.query`  etc.
  2654  
  2655   1.0.0 / 20 10-11-16
  2656   ========== ========
  2657  
  2658     * Added;  deduce pa rtial obje ct names f rom the la st segment .
  2659       For ex ample by d efault `pa rtial('for um/post',  postObject )` will
  2660       give y ou the _po st_ object , providin g a meanin gful defau lt.
  2661     * Added  http statu s code str ing repres entation t o `res.red irect()` b ody
  2662     * Added;  `res.redi rect()` su pporting _ text/plain _ and _tex t/html_ vi a __Accept __.
  2663     * Added  `req.is()`  to aid in  content n egotiation
  2664     * Added  partial lo cal inheri tance [sug gested by  masylum].  Closes #10 2
  2665       provid ing access  to parent  template  locals.
  2666     * Added  _-s, --ses sion[s]_ f lag to exp ress(1) to  add sessi on related  middlewar e
  2667     * Added  _--templat e_ flag to  express(1 ) to speci fy the
  2668       templa te engine  to use.
  2669     * Added  _--css_ fl ag to expr ess(1) to  specify th e
  2670       styles heet engin e to use ( or just pl ain css by  default).
  2671     * Added  `app.all() ` support  [thanks ah eckmann]
  2672     * Added  partial di rect objec t support.
  2673       You ma y now `par tial('user ', user)`  providing  the "user"  local,
  2674       vs pre viously `p artial('us er', { obj ect: user  })`.
  2675     * Added  _route-sep aration_ e xample sin ce many pe ople quest ion ways
  2676       to do  this with  CommonJS m odules. Al so view th e _blog_ e xample for
  2677       an alt ernative.
  2678     * Perfor mance; cac hing view  path deriv ed partial  object na mes
  2679     * Fixed  partial lo cal inheri tance prec edence. [r eported by  Nick Poul den] Close s #454
  2680     * Fixed  jsonp supp ort; _text /javascrip t_ as per  mailinglis t discussi on
  2681  
  2682   1.0.0rc4 /  2010-10-1 4
  2683   ========== ========
  2684  
  2685     * Added  _NODE_ENV_  support,  _EXPRESS_E NV_ is dep recated an d will be  removed in  1.0.0
  2686     * Added  route-midd leware sup port (very  helpful,  see the [d ocs](http: //expressj s.com/guid e.html#Rou te-Middlew are))
  2687     * Added  _jsonp cal lback_ set ting to en able/disab le jsonp a utowrappin g [Dav Gla ss]
  2688     * Added  callback q uery check  on respon se.send to  autowrap  JSON objec ts for sim ple webser vice imple mentations  [Dav Glas s]
  2689     * Added  `partial() ` support  for array- like colle ctions. Cl oses #434
  2690     * Added  support fo r swappabl e querystr ing parser s
  2691     * Added  session us age docs.  Closes #44 3
  2692     * Added  dynamic he lper cachi ng. Closes  #439 [sug gested by  maritz]
  2693     * Added  authentica tion examp le
  2694     * Added  basic Rang e support  to `res.se ndfile()`  (and `res. download() ` etc)
  2695     * Change d; `expres s(1)` gene rated app  using 2 sp aces inste ad of 4
  2696     * Defaul t env to " developmen t" again [ aheckmann]
  2697     * Remove d _context _ option i s no more,  use "scop e"
  2698     * Fixed;  exposing  _./support _ libs to  examples s o they can  run witho ut install s
  2699     * Fixed  mvc exampl e
  2700  
  2701   1.0.0rc3 /  2010-09-2 0
  2702   ========== ========
  2703  
  2704     * Added  confirmati on for `ex press(1)`  app genera tion. Clos es #391
  2705     * Added  extending  of flash f ormatters  via `app.f lashFormat ters`
  2706     * Added  flash form atter supp ort. Close s #411
  2707     * Added  streaming  support to  `res.send file()` us ing `sys.p ump()` whe n >= "stre am thresho ld"
  2708     * Added  _stream th reshold_ s etting for  `res.send file()`
  2709     * Added  `res.send( )` __HEAD_ _ support
  2710     * Added  `res.clear Cookie()`
  2711     * Added  `res.cooki e()`
  2712     * Added  `res.rende r()` heade rs option
  2713     * Added  `res.redir ect()` res ponse bodi es
  2714     * Added  `res.rende r()` statu s option s upport. Cl oses #425  [thanks ah eckmann]
  2715     * Fixed  `res.sendf ile()` res ponding wi th 403 on  malicious  path
  2716     * Fixed  `res.downl oad()` bug ; when an  error occu rs remove  _Content-D isposition _
  2717     * Fixed;  mounted a pps settin gs now inh erit from  parent app  [aheckman n]
  2718     * Fixed;  stripping  Content-L ength / Co ntent-Type  when 204
  2719     * Fixed  `res.send( )` 204. Cl oses #419
  2720     * Fixed  multiple _ Set-Cookie _ headers  via `res.h eader()`.  Closes #40 2
  2721     * Fixed  bug messin g with err or handler s when `li stenFD()`  is called  instead of  `listen() `. [thanks  guillermo ]
  2722  
  2723  
  2724   1.0.0rc2 /  2010-08-1 7
  2725   ========== ========
  2726  
  2727     * Added  `app.regis ter()` for  template  engine map ping. Clos es #390
  2728     * Added  `res.rende r()` callb ack suppor t as secon d argument  (no optio ns)
  2729     * Added  callback s upport to  `res.downl oad()`
  2730     * Added  callback s upport for  `res.send file()`
  2731     * Added  support fo r middlewa re access  via `expre ss.middlew areName()`  vs `conne ct.middlew areName()`
  2732     * Added  "partials"  setting t o docs
  2733     * Added  default ex presso tes ts to `exp ress(1)` g enerated a pp. Closes  #384
  2734     * Fixed  `res.sendf ile()` err or handlin g, defer v ia `next() `
  2735     * Fixed  `res.rende r()` callb ack when a  layout is  used [tha nks guille rmo]
  2736     * Fixed;  `make ins tall` crea ting ~/.no de_librari es when no t present
  2737     * Fixed  issue prev enting err or handler s from bei ng defined  anywhere.  Closes #3 87
  2738  
  2739   1.0.0rc /  2010-07-28
  2740   ========== ========
  2741  
  2742     * Added  mounted ho ok. Closes  #369
  2743     * Added  connect de pendency t o _package .json_
  2744  
  2745     * Remove d "reload  views" set ting and s upport cod e
  2746       develo pment env  never cach es, produc tion alway s caches.
  2747  
  2748     * Remove d _param_  in route c allbacks,  signature  is now
  2749       simply  (req, res , next), p reviously  (req, res,  params, n ext).
  2750       Use _r eq.params_  for path  captures,  _req.query _ for GET  params.
  2751  
  2752     * Fixed  "home" set ting
  2753     * Fixed  middleware /router pr ecedence i ssue. Clos es #366
  2754     * Fixed;  _configur e()_ callb acks calle d immediat ely. Close s #368
  2755  
  2756   1.0.0beta2  / 2010-07 -23
  2757   ========== ========
  2758  
  2759     * Added  more examp les
  2760     * Added;  exporting  `Server`  constructo r
  2761     * Added  `Server#he lpers()` f or view lo cals
  2762     * Added  `Server#dy namicHelpe rs()` for  dynamic vi ew locals.  Closes #3 49
  2763     * Added  support fo r absolute  view path s
  2764     * Added;  _home_ se tting defa ults to `S erver#rout e` for mou nted apps.  Closes #3 63
  2765     * Added  Guillermo  Rauch to t he contrib utor list
  2766     * Added  support fo r "as" for  non-colle ction part ials. Clos es #341
  2767     * Fixed  _install.s h_, ensuri ng _~/.nod e_librarie s_ exists.  Closes #3 62 [thanks  jf]
  2768     * Fixed  `res.rende r()` excep tions, now  passed to  `next()`  when no ca llback is  given [tha nks guille rmo]
  2769     * Fixed  instanceof  `Array` c hecks, now  `Array.is Array()`
  2770     * Fixed  express(1)  expansion  of public  dirs. Clo ses #348
  2771     * Fixed  middleware  precedenc e. Closes  #345
  2772     * Fixed  view watch er, now as ync [thank s aheckman n]
  2773  
  2774   1.0.0beta  / 2010-07- 15
  2775   ========== ========
  2776  
  2777     * Re-wri te
  2778       - much  faster
  2779       - much  lighter
  2780       - Chec k [Express JS.com](ht tp://expre ssjs.com)  for migrat ion guide  and update d docs
  2781  
  2782   0.14.0 / 2 010-06-15
  2783   ========== ========
  2784  
  2785     * Utiliz e relative  requires
  2786     * Added  Static buf ferSize op tion [ahec kmann]
  2787     * Fixed  caching of  view and  partial su bdirectori es [aheckm ann]
  2788     * Fixed  mime.type( ) comments  now that  ".ext" is  not suppor ted
  2789     * Update d haml sub module
  2790     * Update d class su bmodule
  2791     * Remove d bin/expr ess
  2792  
  2793   0.13.0 / 2 010-06-01
  2794   ========== ========
  2795  
  2796     * Added  node v0.1. 97 compati bility
  2797     * Added  support fo r deleting  cookies v ia Request #cookie('k ey', null)
  2798     * Update d haml sub module
  2799     * Fixed  not-found  page, now  using usin g charset  utf-8
  2800     * Fixed  show-excep tions page , now usin g using ch arset utf- 8
  2801     * Fixed  view suppo rt due to  fs.readFil e Buffers
  2802     * Change d; mime.ty pe() no lo nger accep ts ".type"  due to no de extname () changes
  2803  
  2804   0.12.0 / 2 010-05-22
  2805   ========== ========
  2806  
  2807     * Added  node v0.1. 96 compati bility
  2808     * Added  view `help ers` expor t which ac t as addit ional loca l variable s
  2809     * Update d haml sub module
  2810     * Change d ETag; re moved inod e, modifie d time onl y
  2811     * Fixed  LF to CRLF  for setti ng multipl e cookies
  2812     * Fixed  cookie com plation; v alues are  now urlenc oded
  2813     * Fixed  cookies pa rsing; acc epts quote d values a nd url esc aped cooki es
  2814  
  2815   0.11.0 / 2 010-05-06
  2816   ========== ========
  2817  
  2818     * Added  support fo r layouts  using diff erent engi nes
  2819       - this .render('p age.html.h aml', { la yout: 'sup er-cool-la yout.html. ejs' })
  2820       - this .render('p age.html.h aml', { la yout: 'foo ' }) // as sumes 'foo .html.haml '
  2821       - this .render('p age.html.h aml', { la yout: fals e }) // no  layout
  2822     * Update d ext subm odule
  2823     * Update d haml sub module
  2824     * Fixed  EJS partia l support  by passing  along the  context.  Issue #307
  2825  
  2826   0.10.1 / 2 010-05-03
  2827   ========== ========
  2828  
  2829     * Fixed  binary upl oads.
  2830  
  2831   0.10.0 / 2 010-04-30
  2832   ========== ========
  2833  
  2834     * Added  charset su pport via  Request#ch arset (aut omatically  assigned  to 'UTF-8'  when resp ond()'s
  2835       encodi ng is set  to 'utf8'  or 'utf-8' .
  2836     * Added  "encoding"  option to  Request#r ender(). C loses #299
  2837     * Added  "dump exce ptions" se tting, whi ch is enab led by def ault.
  2838     * Added  simple ejs  template  engine sup port
  2839     * Added  error resp onse suppo rt for tex t/plain, a pplication /json. Clo ses #297
  2840     * Added  callback f unction pa ram to Req uest#error ()
  2841     * Added  Request#se ndHead()
  2842     * Added  Request#st ream()
  2843     * Added  support fo r Request# respond(30 4, null) f or empty r esponse bo dies
  2844     * Added  ETag suppo rt to Requ est#sendfi le()
  2845     * Added  options to  Request#s endfile(),  passed to  fs.create ReadStream ()
  2846     * Added  filename a rg to Requ est#downlo ad()
  2847     * Perfor mance enha nced due t o pre-reve rsing plug ins so tha t plugins. reverse()  is not cal led on eac h request
  2848     * Perfor mance enha nced by pr eventing s everal cal ls to toLo werCase()  in Router# match()
  2849     * Change d; Request #sendfile( ) now stre ams
  2850     * Change d; Renamed  Request#h alt() to R equest#res pond(). Cl oses #289
  2851     * Change d; Using s ys.inspect () instead  of JSON.e ncode() fo r error ou tput
  2852     * Change d; run() r eturns the  http.Serv er instanc e. Closes  #298
  2853     * Change d; Default ing Server #host to n ull (INADD R_ANY)
  2854     * Change d; Logger  "common" f ormat scal e of 0.4f
  2855     * Remove d Logger " request" f ormat
  2856     * Fixed;  Catching  ENOENT in  view cachi ng, preven ting error  when "vie ws/partial s" is not  found
  2857     * Fixed  several is sues with  http clien t
  2858     * Fixed  Logger Con tent-Lengt h output
  2859     * Fixed  bug preven ting Opera  from reta ining the  generated  session id . Closes # 292
  2860  
  2861   0.9.0 / 20 10-04-14
  2862   ========== ========
  2863  
  2864     * Added  DSL level  error() ro ute suppor t
  2865     * Added  DSL level  notFound()  route sup port
  2866     * Added  Request#er ror()
  2867     * Added  Request#no tFound()
  2868     * Added  Request#re nder() cal lback func tion. Clos es #258
  2869     * Added  "max uploa d size" se tting
  2870     * Added  "magic" va riables to  collectio n partials  (\_\_inde x\_\_, \_\ _length\_\ _, \_\_isF irst\_\_,  \_\_isLast \_\_). Clo ses #254
  2871     * Added  [haml.js]( http://git hub.com/vi sionmedia/ haml.js) s ubmodule;  removed ha ml-js
  2872     * Added  callback f unction su pport to R equest#hal t() as 3rd /4th arg
  2873     * Added  preprocess ing of rou te param w ildcards u sing param (). Closes  #251
  2874     * Added  view parti al support  (with col lections e tc)
  2875     * Fixed  bug preven ting false y params ( such as ?p age=0). Cl oses #286
  2876     * Fixed  setting of  multiple  cookies. C loses #199
  2877     * Change d; view na ming conve ntion is n ow NAME.TY PE.ENGINE  (for examp le page.ht ml.haml)
  2878     * Change d; session  cookie is  now httpO nly
  2879     * Change d; Request  is no lon ger global
  2880     * Change d; Event i s no longe r global
  2881     * Change d; "sys" m odule is n o longer g lobal
  2882     * Change d; moved R equest#dow nload to S tatic plug in where i t belongs
  2883     * Change d; Request  instance  created be fore body  parsing. C loses #262
  2884     * Change d; Pre-cac hing views  in memory  when "cac he view co ntents" is  enabled.  Closes #25 3
  2885     * Change d; Pre-cac hing view  partials i n memory w hen "cache  view part ials" is e nabled
  2886     * Update d support  to node -- version 0. 1.90
  2887     * Update d dependen cies
  2888     * Remove d set("ses sion cooki e") in fav our of use (Session,  { cookie:  { ... }})
  2889     * Remove d utils.mi xin(); use  Object#me rgeDeep()
  2890  
  2891   0.8.0 / 20 10-03-19
  2892   ========== ========
  2893  
  2894     * Added  coffeescri pt example  app. Clos es #242
  2895     * Change d; cache a pi now asy nc friendl y. Closes  #240
  2896     * Remove d deprecat ed 'expres s/static'  support. U se 'expres s/plugins/ static'
  2897  
  2898   0.7.6 / 20 10-03-19
  2899   ========== ========
  2900  
  2901     * Added  Request#is XHR. Close s #229
  2902     * Added  `make inst all` (for  the execut able)
  2903     * Added  `express`  executable  for setti ng up simp le app tem plates
  2904     * Added  "GET /publ ic/*" to S tatic plug in, defaul ting to <r oot>/publi c
  2905     * Added  Static plu gin
  2906     * Fixed;  Request#r ender() on ly calls c ache.get()  once
  2907     * Fixed;  Namespaci ng View ca ches with  "view:"
  2908     * Fixed;  Namespaci ng Static  caches wit h "static: "
  2909     * Fixed;  Both exam ple apps n ow use the  Static pl ugin
  2910     * Fixed  set("views "). Closes  #239
  2911     * Fixed  missing sp ace for co mbined log  format
  2912     * Deprec ated Reque st#sendfil e() and 'e xpress/sta tic'
  2913     * Remove d Server#r unning
  2914  
  2915   0.7.5 / 20 10-03-16
  2916   ========== ========
  2917  
  2918     * Added  Request#fl ash() supp ort withou t args, no w returns  all flashe s
  2919     * Update d ext subm odule
  2920  
  2921   0.7.4 / 20 10-03-16
  2922   ========== ========
  2923  
  2924     * Fixed  session re aper
  2925     * Change d; class.j s replacin g js-oo Cl ass implem entation ( quite a bi t faster,  no browser  cruft)
  2926  
  2927   0.7.3 / 20 10-03-16
  2928   ========== ========
  2929  
  2930     * Added  package.js on
  2931     * Fixed  requiring  of haml /  sass due t o kiwi rem oval
  2932  
  2933   0.7.2 / 20 10-03-16
  2934   ========== ========
  2935  
  2936     * Fixed  GIT submod ules (HAH! )
  2937  
  2938   0.7.1 / 20 10-03-16
  2939   ========== ========
  2940  
  2941     * Change d; Express  now using  submodule s again un til a PM i s adopted
  2942     * Change d; chat ex ample usin g millisec ond conver sions from  ext
  2943  
  2944   0.7.0 / 20 10-03-15
  2945   ========== ========
  2946  
  2947     * Added  Request#pa ss() suppo rt (finds  the next m atching ro ute, or th e given pa th)
  2948     * Added  Logger plu gin (defau lt "common " format r eplaces Co mmonLogger )
  2949     * Remove d Profiler  plugin
  2950     * Remove d CommonLo gger plugi n
  2951  
  2952   0.6.0 / 20 10-03-11
  2953   ========== ========
  2954  
  2955     * Added  seed.yml f or kiwi pa ckage mana gement sup port
  2956     * Added  HTTP clien t query st ring suppo rt when me thod is GE T. Closes  #205
  2957  
  2958     * Added  support fo r arbitrar y view eng ines.
  2959       For ex ample "foo .engine.ht ml" will n ow require ('engine') ,
  2960       the ex ports from  this modu le are cac hed after  the first  require().
  2961  
  2962     * Added  async plug in support
  2963  
  2964     * Remove d usage of  RESTful r oute funcs  as http c lient
  2965       get()  etc, use h ttp.get()  and friend s
  2966  
  2967     * Remove d custom e xceptions
  2968  
  2969   0.5.0 / 20 10-03-10
  2970   ========== ========
  2971  
  2972     * Added  ext depend ency (libr ary of js  extensions )
  2973     * Remove d extname( ) / basena me() utils . Use path  module
  2974     * Remove d toArray( ) util. Us e argument s.values
  2975     * Remove d escapeRe gexp() uti l. Use Reg Exp.escape ()
  2976     * Remove d process. mixin() de pendency.  Use utils. mixin()
  2977     * Remove d Collecti on
  2978     * Remove d ElementC ollection
  2979     * Shamel ess self p romotion o f ebook "A dvanced Ja vaScript"  (http://de v-mag.com)   ;)
  2980  
  2981   0.4.0 / 20 10-02-11
  2982   ========== ========
  2983  
  2984     * Added  flash() ex ample to s ample uplo ad app
  2985     * Added  high level  restful h ttp client  module (e xpress/htt p)
  2986     * Change d; RESTful  route fun ctions dou ble as HTT P clients.  Closes #6 9
  2987     * Change d; throwin g error wh en routes  are added  at runtime
  2988     * Change d; default ing render () context  to the cu rrent Requ est. Close s #197
  2989     * Update d haml sub module
  2990  
  2991   0.3.0 / 20 10-02-11
  2992   ========== ========
  2993  
  2994     * Update d haml / s ass submod ules. Clos es #200
  2995     * Added  flash mess age suppor t. Closes  #64
  2996     * Added  accepts()  now allows  multiple  args. fixe s #117
  2997     * Added  support fo r plugins  to halt. C loses #189
  2998     * Added  alternate  layout sup port. Clos es #119
  2999     * Remove d Route#ru n(). Close s #188
  3000     * Fixed  broken spe cs due to  use(Cookie ) missing
  3001  
  3002   0.2.1 / 20 10-02-05
  3003   ========== ========
  3004  
  3005     * Added  "plot" for mat option  for Profi ler (for g nuplot pro cessing)
  3006     * Added  request nu mber to Pr ofiler plu gin
  3007     * Fixed  binary enc oding for  multi-part  file uplo ads, was p reviously  defaulting  to UTF8
  3008     * Fixed  issue with  routes no t firing w hen not fi les are pr esent. Clo ses #184
  3009     * Fixed  process.Pr omise -> e vents.Prom ise
  3010  
  3011   0.2.0 / 20 10-02-03
  3012   ========== ========
  3013  
  3014     * Added  parseParam () support  for name[ ] etc. (al lows for f ile inputs  with "mul tiple" att r) Closes  #180
  3015     * Added  Both Cache  and Sessi on option  "reapInter val" may b e "reapEve ry". Close s #174
  3016     * Added  expiration  support t o cache ap i with rea per. Close s #133
  3017     * Added  cache Stor e.Memory#r eap()
  3018     * Added  Cache; cac he api now  uses firs t class Ca che instan ces
  3019     * Added  abstract s ession Sto re. Closes  #172
  3020     * Change d; cache M emory.Stor e#get() ut ilizing Co llection
  3021     * Rename d MemorySt ore -> Sto re.Memory
  3022     * Fixed  use() of t he same pl ugin sever al time wi ll always  use latest  options.  Closes #17 6
  3023  
  3024   0.1.0 / 20 10-02-03
  3025   ========== ========
  3026  
  3027     * Change d; Hooks ( before / a fter) pass  request a s arg as w ell as eva luated in  their cont ext
  3028     * Update d node sup port to 0. 1.27 Close s #169
  3029     * Update d dirname( __filename ) -> __dir name
  3030     * Update d libxmljs  support t o v0.2.0
  3031     * Added  session su pport with  memory st ore / reap ing
  3032     * Added  quick uid( ) helper
  3033     * Added  multi-part  upload su pport
  3034     * Added  Sass.js su pport / su bmodule
  3035     * Added  production  env cachi ng view co ntents and  static fi les
  3036     * Added  static fil e caching.  Closes #1 36
  3037     * Added  cache plug in with me mory store s
  3038     * Added  support to  StaticFil e so that  it works w ith non-te xtual file s.
  3039     * Remove d dirname( ) helper
  3040     * Remove d several  globals (n ow their m odules mus t be requi red)
  3041  
  3042   0.0.2 / 20 10-01-10
  3043   ========== ========
  3044  
  3045     * Added  view bench marks; cur rently ham l vs ejs
  3046     * Added  Request#at tachment()  specs. Cl oses #116
  3047     * Added  use of nod e's parseQ uery() uti l. Closes  #123
  3048     * Added  `make init ` for subm odules
  3049     * Update d Haml
  3050     * Update d sample c hat app to  show mess ages on lo ad
  3051     * Update d libxmljs  parseStri ng -> pars eHtmlStrin g
  3052     * Fixed  `make init ` to work  with older  versions  of git
  3053     * Fixed  specs can  now run in dependent  specs for  those who  cant build  deps. Clo ses #127
  3054     * Fixed  issues int roduced by  the node  url module  changes.  Closes 126 .
  3055     * Fixed  two assert ions faili ng due to  Collection #keys() re turning st rings
  3056     * Fixed  faulty Col lection#to Array() sp ec due to  keys() ret urning str ings
  3057     * Fixed  `make test ` now buil ds libxmlj s.node bef ore testin g
  3058  
  3059   0.0.1 / 20 10-01-03
  3060   ========== ========
  3061  
  3062     * Initia l release