Ein Projekt das es ermöglicht Beerpong über das Internet von zwei unabhängigen positionen aus zu spielen. Entstehung im Rahmen einer Praktikumsaufgabe im Fach Interaktion.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

History.md 72KB

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