4 * Fix incorrect end tag in default error & redirects
6 - perf: remove argument reassignment
7 * deps: encodeurl@~1.0.2
8 - Fix encoding `%` as last character
9 * deps: statuses@~1.4.0
14 * Fix regression in edge-case behavior for empty `path`
19 * Add `immutable` option
20 * Fix missing `</html>` in default error & redirects
21 * Use instance methods on steam to check for listeners
23 - Add 70 new types for file extensions
24 - Set charset as "UTF-8" for .js and .json
25 * perf: improve path validation speed
31 * perf: improve `If-Match` token parsing
37 - perf: replace regular expression with substring
39 - Fix handling of modified headers with invalid dates
40 - perf: improve ETag match loop
41 - perf: improve `If-None-Match` token parsing
48 - Remove unnecessary `Buffer` loading
49 * deps: http-errors@~1.6.2
63 - Fix `DEBUG_MAX_ARRAY_LENGTH`
70 * Fix issue when `Date.parse` does not return `NaN` on invalid date
71 * Fix strict violation in broken environments
76 * Support `If-Match` and `If-Unmodified-Since` headers
77 * Add `res` and `path` arguments to `directory` event
78 * Remove usage of `res._headers` private field
79 - Improves compatibility with Node.js 8 nightly
80 * Send complete HTML document in redirect & error responses
81 * Set default CSP header in redirect & error responses
82 * Use `res.getHeaderNames()` when available
83 * Use `res.headersSent` when available
85 - Allow colors in workers
86 - Deprecated `DEBUG_FD` environment variable set to `3` or higher
87 - Fix error when running under React Native
88 - Use same color for same namespace
92 - Fix false detection of `no-cache` request directive
93 - Fix incorrect result when `If-None-Match` has both `*` and ETags
94 - Fix weak `ETag` matching to match spec
95 - perf: delay reading header values until needed
96 - perf: enable strict mode
97 - perf: hoist regular expressions
98 - perf: remove duplicate conditional
99 - perf: remove unnecessary boolean coercions
100 - perf: skip checking modified time if ETag check failed
101 - perf: skip parsing `If-None-Match` when no `ETag` header
102 - perf: use `Date.parse` instead of `new Date`
103 * deps: http-errors@~1.6.1
104 - Make `message` property enumerable for `HttpError`s
105 - deps: setprototypeof@1.0.3
110 * deps: http-errors@~1.5.1
111 - deps: inherits@2.0.3
112 - deps: setprototypeof@1.0.2
113 - deps: statuses@'>= 1.3.1 < 2'
115 * deps: statuses@~1.3.1
120 * Fix redirect error when `path` contains raw non-URL characters
121 * Fix redirect when `path` starts with multiple forward slashes
126 * Add `acceptRanges` option
127 * Add `cacheControl` option
128 * Attempt to combine multiple ranges into single range
129 * Correctly inherit from `Stream` class
130 * Fix `Content-Range` header in 416 responses when using `start`/`end` options
131 * Fix `Content-Range` header missing from default 416 responses
132 * Ignore non-byte `Range` headers
133 * deps: http-errors@~1.5.0
134 - Add `HttpError` export, for `err instanceof createError.HttpError`
135 - Support new code `421 Misdirected Request`
136 - Use `setprototypeof` module to replace `__proto__` setting
137 - deps: inherits@2.0.1
138 - deps: statuses@'>= 1.3.0 < 2'
139 - perf: enable strict mode
140 * deps: range-parser@~1.2.0
141 - Fix incorrectly returning -1 when there is at least one valid range
142 - perf: remove internal function
143 * deps: statuses@~1.3.0
144 - Add `421 Misdirected Request`
145 - perf: enable strict mode
146 * perf: remove argument reassignment
151 * Fix invalid `Content-Type` header when `send.mime.default_type` unset
157 - Support web browser loading
158 - perf: enable strict mode
159 * deps: destroy@~1.0.4
160 - perf: enable strict mode
161 * deps: escape-html@~1.0.3
162 - perf: enable strict mode
163 - perf: optimize string replacement
164 - perf: use faster string coercion
165 * deps: range-parser@~1.0.3
166 - perf: enable strict mode
171 * Allow Node.js HTTP server to set `Date` response header
172 * Fix incorrectly removing `Content-Location` on 304 response
173 * Improve the default redirect response headers
174 * Send appropriate headers on default error response
175 * Use `http-errors` for standard emitted errors
176 * Use `statuses` instead of `http` module for status messages
177 * deps: escape-html@1.0.2
179 - Improve stat performance by removing hashing
181 - Add weak `ETag` matching support
182 * deps: on-finished@~2.3.0
183 - Add defined behavior for HTTP `CONNECT` requests
184 - Add defined behavior for HTTP `Upgrade` requests
185 - deps: ee-first@1.1.1
186 * perf: enable strict mode
187 * perf: remove unnecessary array allocations
196 - Improve support for JXcore
197 - Support "fake" stats objects in environments without `fs`
199 - Prevent extraordinarily long inputs
200 * deps: on-finished@~2.2.1
205 * Throw errors early for invalid `extensions` or `index` options
207 - Fix high intensity foreground color for bold
213 * Fix regression sending zero-length files
218 * Always read the stat size from the file
219 * Fix mutating passed-in `options`
225 * Fix `root` path disclosure
240 * deps: on-finished@~2.2.0
245 * deps: on-finished@~2.1.1
246 - Fix handling of pipelined requests
252 - Implement `DEBUG_FD` env variable support
255 - Improve string performance
256 - Slightly improve speed for weak ETags over 1KB
262 - Support "fake" stats objects
269 * deps: range-parser@~1.0.2
279 * Add `lastModified` option
280 * Use `etag` to generate `ETag` header
286 * Fix malicious path detection for empty string path
291 * Fix a path traversal issue when using `root`
296 * deps: destroy@1.0.3
297 - renamed from dethroy
298 * deps: on-finished@2.1.0
303 * Work around `fd` leak in Node.js 0.10 for `fs.ReadStream`
304 * deps: dethroy@1.0.2
309 * Fix `extensions` behavior when file already has extension
314 * Add `extensions` option
319 * Fix serving index files without root dir
324 * Fix incorrect 403 on Windows and Node.js 0.11
330 - Work-around v8 generating empty stack traces
336 - Fix exception when global `Error.stackTraceLimit` is too low
341 * Deprecate `hidden` option; use `dotfiles` option
342 * Add `dotfiles` option
345 - Add `TRACE_DEPRECATION` environment variable
346 - Remove non-standard grey color from color output
347 - Support `--no-deprecation` argument
348 - Support `--trace-deprecation` argument
353 * Deprecate `from` option; use `root` option
354 * Deprecate `send.etag()` -- use `etag` in `options`
355 * Deprecate `send.hidden()` -- use `hidden` in `options`
356 * Deprecate `send.index()` -- use `index` in `options`
357 * Deprecate `send.maxage()` -- use `maxAge` in `options`
358 * Deprecate `send.root()` -- use `root` in `options`
359 * Cap `maxAge` value to 1 year
361 - Add support for multiple wildcards in namespaces
366 * Accept string for `maxAge` (converted by `ms`)
367 * Add `headers` event
368 * Include link in default redirect response
369 * Use `EventEmitter.listenerCount` to count listeners
374 * Do not throw un-catchable error on file open race condition
375 * Use `escape-html` for HTML escaping
377 - fix some debugging output colors on node.js 0.8
378 * deps: finished@1.2.2
384 * fix "event emitter leak" warnings
386 * deps: finished@1.2.1
391 * Send `max-age` in `Cache-Control` in correct format
396 * Calculate ETag with md5 for reduced collisions
397 * Fix wrong behavior when index file matches directory
398 * Ignore stream errors after request ends
399 - Goodbye `EBADF, read`
400 * Skip directories in index file search
406 * Fix sending files with dots without root set
407 * Coerce option types
408 * Accept API options in options object
409 * Set etags to "weak"
410 * Include file path in etag
411 * Make "Can't set headers after they are sent." catchable
412 * Send full entity-body for multi range requests
413 * Default directory access to 403 when index disabled
414 * Support multiple index paths
415 * Support "If-Range" header
416 * Control whether to generate etags
422 * update range-parser and fresh
432 * Revert "Fix fd leak"
442 * add options parameter to send() that is passed to fs.createReadStream() [kanongil]
447 * allow custom "Accept-Ranges" definition
452 * fix normalization of the root directory. Closes #3
457 * add passing of req explicitly for now (YUCK)