4 * Set stricter CSP header in redirect & error responses
5 * deps: range-parser@~1.2.1
10 * deps: http-errors@~1.7.2
11 - Set constructor name when possible
12 - Use `toidentifier` module to make class names
14 - deps: setprototypeof@1.1.1
15 - deps: statuses@'>= 1.5.0 < 2'
17 - Add extensions for JPEG-2000 images
18 - Add new `font/*` types from IANA
20 - Update `.bdoc` to `application/bdoc`
21 - Update `.bmp` to `image/bmp`
22 - Update `.m4a` to `audio/mp4`
23 - Update `.rtf` to `application/rtf`
24 - Update `.wav` to `audio/wav`
25 - Update `.xml` to `application/xml`
26 - Update generic extensions to `application/octet-stream`:
27 `.deb`, `.dll`, `.dmg`, `.exe`, `.iso`, `.msi`
28 - Use mime-score module to resolve extension conflicts
30 - Add `week`/`w` support
31 - Fix negative number handling
32 * deps: statuses@~1.5.0
33 * perf: remove redundant `path.normalize` call
38 * Fix incorrect end tag in default error & redirects
40 - perf: remove argument reassignment
41 * deps: encodeurl@~1.0.2
42 - Fix encoding `%` as last character
43 * deps: statuses@~1.4.0
48 * Fix regression in edge-case behavior for empty `path`
53 * Add `immutable` option
54 * Fix missing `</html>` in default error & redirects
55 * Use instance methods on steam to check for listeners
57 - Add 70 new types for file extensions
58 - Set charset as "UTF-8" for .js and .json
59 * perf: improve path validation speed
65 * perf: improve `If-Match` token parsing
71 - perf: replace regular expression with substring
73 - Fix handling of modified headers with invalid dates
74 - perf: improve ETag match loop
75 - perf: improve `If-None-Match` token parsing
82 - Remove unnecessary `Buffer` loading
83 * deps: http-errors@~1.6.2
97 - Fix `DEBUG_MAX_ARRAY_LENGTH`
104 * Fix issue when `Date.parse` does not return `NaN` on invalid date
105 * Fix strict violation in broken environments
110 * Support `If-Match` and `If-Unmodified-Since` headers
111 * Add `res` and `path` arguments to `directory` event
112 * Remove usage of `res._headers` private field
113 - Improves compatibility with Node.js 8 nightly
114 * Send complete HTML document in redirect & error responses
115 * Set default CSP header in redirect & error responses
116 * Use `res.getHeaderNames()` when available
117 * Use `res.headersSent` when available
119 - Allow colors in workers
120 - Deprecated `DEBUG_FD` environment variable set to `3` or higher
121 - Fix error when running under React Native
122 - Use same color for same namespace
126 - Fix false detection of `no-cache` request directive
127 - Fix incorrect result when `If-None-Match` has both `*` and ETags
128 - Fix weak `ETag` matching to match spec
129 - perf: delay reading header values until needed
130 - perf: enable strict mode
131 - perf: hoist regular expressions
132 - perf: remove duplicate conditional
133 - perf: remove unnecessary boolean coercions
134 - perf: skip checking modified time if ETag check failed
135 - perf: skip parsing `If-None-Match` when no `ETag` header
136 - perf: use `Date.parse` instead of `new Date`
137 * deps: http-errors@~1.6.1
138 - Make `message` property enumerable for `HttpError`s
139 - deps: setprototypeof@1.0.3
144 * deps: http-errors@~1.5.1
145 - deps: inherits@2.0.3
146 - deps: setprototypeof@1.0.2
147 - deps: statuses@'>= 1.3.1 < 2'
149 * deps: statuses@~1.3.1
154 * Fix redirect error when `path` contains raw non-URL characters
155 * Fix redirect when `path` starts with multiple forward slashes
160 * Add `acceptRanges` option
161 * Add `cacheControl` option
162 * Attempt to combine multiple ranges into single range
163 * Correctly inherit from `Stream` class
164 * Fix `Content-Range` header in 416 responses when using `start`/`end` options
165 * Fix `Content-Range` header missing from default 416 responses
166 * Ignore non-byte `Range` headers
167 * deps: http-errors@~1.5.0
168 - Add `HttpError` export, for `err instanceof createError.HttpError`
169 - Support new code `421 Misdirected Request`
170 - Use `setprototypeof` module to replace `__proto__` setting
171 - deps: inherits@2.0.1
172 - deps: statuses@'>= 1.3.0 < 2'
173 - perf: enable strict mode
174 * deps: range-parser@~1.2.0
175 - Fix incorrectly returning -1 when there is at least one valid range
176 - perf: remove internal function
177 * deps: statuses@~1.3.0
178 - Add `421 Misdirected Request`
179 - perf: enable strict mode
180 * perf: remove argument reassignment
185 * Fix invalid `Content-Type` header when `send.mime.default_type` unset
191 - Support web browser loading
192 - perf: enable strict mode
193 * deps: destroy@~1.0.4
194 - perf: enable strict mode
195 * deps: escape-html@~1.0.3
196 - perf: enable strict mode
197 - perf: optimize string replacement
198 - perf: use faster string coercion
199 * deps: range-parser@~1.0.3
200 - perf: enable strict mode
205 * Allow Node.js HTTP server to set `Date` response header
206 * Fix incorrectly removing `Content-Location` on 304 response
207 * Improve the default redirect response headers
208 * Send appropriate headers on default error response
209 * Use `http-errors` for standard emitted errors
210 * Use `statuses` instead of `http` module for status messages
211 * deps: escape-html@1.0.2
213 - Improve stat performance by removing hashing
215 - Add weak `ETag` matching support
216 * deps: on-finished@~2.3.0
217 - Add defined behavior for HTTP `CONNECT` requests
218 - Add defined behavior for HTTP `Upgrade` requests
219 - deps: ee-first@1.1.1
220 * perf: enable strict mode
221 * perf: remove unnecessary array allocations
230 - Improve support for JXcore
231 - Support "fake" stats objects in environments without `fs`
233 - Prevent extraordinarily long inputs
234 * deps: on-finished@~2.2.1
239 * Throw errors early for invalid `extensions` or `index` options
241 - Fix high intensity foreground color for bold
247 * Fix regression sending zero-length files
252 * Always read the stat size from the file
253 * Fix mutating passed-in `options`
259 * Fix `root` path disclosure
274 * deps: on-finished@~2.2.0
279 * deps: on-finished@~2.1.1
280 - Fix handling of pipelined requests
286 - Implement `DEBUG_FD` env variable support
289 - Improve string performance
290 - Slightly improve speed for weak ETags over 1KB
296 - Support "fake" stats objects
303 * deps: range-parser@~1.0.2
313 * Add `lastModified` option
314 * Use `etag` to generate `ETag` header
320 * Fix malicious path detection for empty string path
325 * Fix a path traversal issue when using `root`
330 * deps: destroy@1.0.3
331 - renamed from dethroy
332 * deps: on-finished@2.1.0
337 * Work around `fd` leak in Node.js 0.10 for `fs.ReadStream`
338 * deps: dethroy@1.0.2
343 * Fix `extensions` behavior when file already has extension
348 * Add `extensions` option
353 * Fix serving index files without root dir
358 * Fix incorrect 403 on Windows and Node.js 0.11
364 - Work-around v8 generating empty stack traces
370 - Fix exception when global `Error.stackTraceLimit` is too low
375 * Deprecate `hidden` option; use `dotfiles` option
376 * Add `dotfiles` option
379 - Add `TRACE_DEPRECATION` environment variable
380 - Remove non-standard grey color from color output
381 - Support `--no-deprecation` argument
382 - Support `--trace-deprecation` argument
387 * Deprecate `from` option; use `root` option
388 * Deprecate `send.etag()` -- use `etag` in `options`
389 * Deprecate `send.hidden()` -- use `hidden` in `options`
390 * Deprecate `send.index()` -- use `index` in `options`
391 * Deprecate `send.maxage()` -- use `maxAge` in `options`
392 * Deprecate `send.root()` -- use `root` in `options`
393 * Cap `maxAge` value to 1 year
395 - Add support for multiple wildcards in namespaces
400 * Accept string for `maxAge` (converted by `ms`)
401 * Add `headers` event
402 * Include link in default redirect response
403 * Use `EventEmitter.listenerCount` to count listeners
408 * Do not throw un-catchable error on file open race condition
409 * Use `escape-html` for HTML escaping
411 - fix some debugging output colors on node.js 0.8
412 * deps: finished@1.2.2
418 * fix "event emitter leak" warnings
420 * deps: finished@1.2.1
425 * Send `max-age` in `Cache-Control` in correct format
430 * Calculate ETag with md5 for reduced collisions
431 * Fix wrong behavior when index file matches directory
432 * Ignore stream errors after request ends
433 - Goodbye `EBADF, read`
434 * Skip directories in index file search
440 * Fix sending files with dots without root set
441 * Coerce option types
442 * Accept API options in options object
443 * Set etags to "weak"
444 * Include file path in etag
445 * Make "Can't set headers after they are sent." catchable
446 * Send full entity-body for multi range requests
447 * Default directory access to 403 when index disabled
448 * Support multiple index paths
449 * Support "If-Range" header
450 * Control whether to generate etags
456 * update range-parser and fresh
466 * Revert "Fix fd leak"
476 * add options parameter to send() that is passed to fs.createReadStream() [kanongil]
481 * allow custom "Accept-Ranges" definition
486 * fix normalization of the root directory. Closes #3
491 * add passing of req explicitly for now (YUCK)