express-lastest 0.0.1-security → 4.18.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of express-lastest might be problematic. Click here for more details.

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