4 * Fix redirect error when `req.url` contains raw non-URL characters
10 * Use status code 301 for redirects
12 - Add `acceptRanges` option
13 - Add `cacheControl` option
14 - Attempt to combine multiple ranges into single range
15 - Correctly inherit from `Stream` class
16 - Fix `Content-Range` header in 416 responses when using `start`/`end` options
17 - Fix `Content-Range` header missing from default 416 responses
18 - Ignore non-byte `Range` headers
19 - deps: http-errors@~1.5.0
20 - deps: range-parser@~1.2.0
21 - deps: statuses@~1.3.0
22 - perf: remove argument reassignment
28 - Fix invalid `Content-Type` header when `send.mime.default_type` unset
33 * deps: parseurl@~1.3.1
34 - perf: enable strict mode
39 * deps: escape-html@~1.0.3
40 - perf: enable strict mode
41 - perf: optimize string replacement
42 - perf: use faster string coercion
45 - deps: destroy@~1.0.4
46 - deps: escape-html@~1.0.3
47 - deps: range-parser@~1.0.3
52 * Add `fallthrough` option
53 - Allows declaring this middleware is the final destination
54 - Provides better integration with Express patterns
55 * Fix reading options from options prototype
56 * Improve the default redirect response headers
57 * deps: escape-html@1.0.2
59 - Allow Node.js HTTP server to set `Date` response header
60 - Fix incorrectly removing `Content-Location` on 304 response
61 - Improve the default redirect response headers
62 - Send appropriate headers on default error response
63 - Use `http-errors` for standard emitted errors
64 - Use `statuses` instead of `http` module for status messages
65 - deps: escape-html@1.0.2
68 - deps: on-finished@~2.3.0
69 - perf: enable strict mode
70 - perf: remove unnecessary array allocations
71 * perf: enable strict mode
72 * perf: remove argument reassignment
82 - deps: on-finished@~2.2.1
88 - Throw errors early for invalid `extensions` or `index` options
95 - Fix regression sending zero-length files
101 - Always read the stat size from the file
102 - Fix mutating passed-in `options`
108 * Fix redirect loop in Node.js 0.11.14
110 - Fix root path disclosure
119 - deps: on-finished@~2.2.0
124 * Fix potential open redirect when mounted at root
130 - deps: on-finished@~2.1.1
143 * Fix potential open redirect when mounted at root
144 - Back-ported from v1.7.2
149 * Fix redirect loop when index file serving disabled
163 - deps: range-parser@~1.0.2
175 - Add `lastModified` option
176 - Use `etag` to generate `ETag` header
183 - Fix a path traversal issue when using `root`
184 - Fix malicious path detection for empty string path
195 - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream`
200 * Fix parsing of weird `req.originalUrl` values
201 * deps: parseurl@~1.3.0
202 * deps: utils-merge@1.0.0
208 - Add `extensions` option
214 - Fix serving index files without root dir
220 - Fix incorrect 403 on Windows and Node.js 0.11
237 * deps: parseurl@~1.2.0
238 - Cache URLs based on original value
239 - Remove no-longer-needed URL mis-parse work-around
240 - Simplify the "fast-path" `RegExp`
242 - Add `dotfiles` option
250 - Cap `maxAge` value to 1 year
256 * deps: parseurl@~1.1.3
257 - faster parsing of href-only URLs
262 * Add `setHeaders` option
263 * Include HTML link in redirect response
265 - Accept string for `maxAge` (converted by `ms`)
271 - Do not throw un-catchable error on file open race condition
272 - Use `escape-html` for HTML escaping
274 - deps: finished@1.2.2
281 - fix "event emitter leak" warnings
283 - deps: finished@1.2.1
288 * use `escape-html` for escaping
290 - Send `max-age` in `Cache-Control` in correct format
296 - Calculate ETag with md5 for reduced collisions
297 - Fix wrong behavior when index file matches directory
298 - Ignore stream errors after request ends
299 - Skip directories in index file search
305 * Accept options directly to `send` module
311 * Resolve relative paths at middleware setup
312 * Use parseurl to parse the URL from request
317 * Do not rely on connect-like environments
327 * Add mime export for back-compat
332 * Genesis from `connect`