xprezzo-send
Advanced tools
Comparing version 1.0.0 to 1.0.1
499
HISTORY.md
@@ -1,496 +0,13 @@ | ||
0.17.1 / 2019-05-10 | ||
1.0.1 / 2020-09-18 | ||
=================== | ||
* Set stricter CSP header in redirect & error responses | ||
* deps: range-parser@~1.2.1 | ||
* expose debug to public | ||
* expose ms to public | ||
* add expect.js in dev-dependencies | ||
* add test cases for debug | ||
* add test cases for ms | ||
0.17.0 / 2019-05-03 | ||
1.0.0 / 2020-09-17 | ||
=================== | ||
* deps: http-errors@~1.7.2 | ||
- Set constructor name when possible | ||
- Use `toidentifier` module to make class names | ||
- deps: depd@~1.1.2 | ||
- deps: setprototypeof@1.1.1 | ||
- deps: statuses@'>= 1.5.0 < 2' | ||
* deps: mime@1.6.0 | ||
- Add extensions for JPEG-2000 images | ||
- Add new `font/*` types from IANA | ||
- Add WASM mapping | ||
- Update `.bdoc` to `application/bdoc` | ||
- Update `.bmp` to `image/bmp` | ||
- Update `.m4a` to `audio/mp4` | ||
- Update `.rtf` to `application/rtf` | ||
- Update `.wav` to `audio/wav` | ||
- Update `.xml` to `application/xml` | ||
- Update generic extensions to `application/octet-stream`: | ||
`.deb`, `.dll`, `.dmg`, `.exe`, `.iso`, `.msi` | ||
- Use mime-score module to resolve extension conflicts | ||
* deps: ms@2.1.1 | ||
- Add `week`/`w` support | ||
- Fix negative number handling | ||
* deps: statuses@~1.5.0 | ||
* perf: remove redundant `path.normalize` call | ||
0.16.2 / 2018-02-07 | ||
=================== | ||
* Fix incorrect end tag in default error & redirects | ||
* deps: depd@~1.1.2 | ||
- perf: remove argument reassignment | ||
* deps: encodeurl@~1.0.2 | ||
- Fix encoding `%` as last character | ||
* deps: statuses@~1.4.0 | ||
0.16.1 / 2017-09-29 | ||
=================== | ||
* Fix regression in edge-case behavior for empty `path` | ||
0.16.0 / 2017-09-27 | ||
=================== | ||
* Add `immutable` option | ||
* Fix missing `</html>` in default error & redirects | ||
* Use instance methods on steam to check for listeners | ||
* deps: mime@1.4.1 | ||
- Add 70 new types for file extensions | ||
- Set charset as "UTF-8" for .js and .json | ||
* perf: improve path validation speed | ||
0.15.6 / 2017-09-22 | ||
=================== | ||
* deps: debug@2.6.9 | ||
* perf: improve `If-Match` token parsing | ||
0.15.5 / 2017-09-20 | ||
=================== | ||
* deps: etag@~1.8.1 | ||
- perf: replace regular expression with substring | ||
* deps: fresh@0.5.2 | ||
- Fix handling of modified headers with invalid dates | ||
- perf: improve ETag match loop | ||
- perf: improve `If-None-Match` token parsing | ||
0.15.4 / 2017-08-05 | ||
=================== | ||
* deps: debug@2.6.8 | ||
* deps: depd@~1.1.1 | ||
- Remove unnecessary `Buffer` loading | ||
* deps: http-errors@~1.6.2 | ||
- deps: depd@1.1.1 | ||
0.15.3 / 2017-05-16 | ||
=================== | ||
* deps: debug@2.6.7 | ||
- deps: ms@2.0.0 | ||
* deps: ms@2.0.0 | ||
0.15.2 / 2017-04-26 | ||
=================== | ||
* deps: debug@2.6.4 | ||
- Fix `DEBUG_MAX_ARRAY_LENGTH` | ||
- deps: ms@0.7.3 | ||
* deps: ms@1.0.0 | ||
0.15.1 / 2017-03-04 | ||
=================== | ||
* Fix issue when `Date.parse` does not return `NaN` on invalid date | ||
* Fix strict violation in broken environments | ||
0.15.0 / 2017-02-25 | ||
=================== | ||
* Support `If-Match` and `If-Unmodified-Since` headers | ||
* Add `res` and `path` arguments to `directory` event | ||
* Remove usage of `res._headers` private field | ||
- Improves compatibility with Node.js 8 nightly | ||
* Send complete HTML document in redirect & error responses | ||
* Set default CSP header in redirect & error responses | ||
* Use `res.getHeaderNames()` when available | ||
* Use `res.headersSent` when available | ||
* deps: debug@2.6.1 | ||
- Allow colors in workers | ||
- Deprecated `DEBUG_FD` environment variable set to `3` or higher | ||
- Fix error when running under React Native | ||
- Use same color for same namespace | ||
- deps: ms@0.7.2 | ||
* deps: etag@~1.8.0 | ||
* deps: fresh@0.5.0 | ||
- Fix false detection of `no-cache` request directive | ||
- Fix incorrect result when `If-None-Match` has both `*` and ETags | ||
- Fix weak `ETag` matching to match spec | ||
- perf: delay reading header values until needed | ||
- perf: enable strict mode | ||
- perf: hoist regular expressions | ||
- perf: remove duplicate conditional | ||
- perf: remove unnecessary boolean coercions | ||
- perf: skip checking modified time if ETag check failed | ||
- perf: skip parsing `If-None-Match` when no `ETag` header | ||
- perf: use `Date.parse` instead of `new Date` | ||
* deps: http-errors@~1.6.1 | ||
- Make `message` property enumerable for `HttpError`s | ||
- deps: setprototypeof@1.0.3 | ||
0.14.2 / 2017-01-23 | ||
=================== | ||
* deps: http-errors@~1.5.1 | ||
- deps: inherits@2.0.3 | ||
- deps: setprototypeof@1.0.2 | ||
- deps: statuses@'>= 1.3.1 < 2' | ||
* deps: ms@0.7.2 | ||
* deps: statuses@~1.3.1 | ||
0.14.1 / 2016-06-09 | ||
=================== | ||
* Fix redirect error when `path` contains raw non-URL characters | ||
* Fix redirect when `path` starts with multiple forward slashes | ||
0.14.0 / 2016-06-06 | ||
=================== | ||
* Add `acceptRanges` option | ||
* Add `cacheControl` option | ||
* Attempt to combine multiple ranges into single range | ||
* Correctly inherit from `Stream` class | ||
* Fix `Content-Range` header in 416 responses when using `start`/`end` options | ||
* Fix `Content-Range` header missing from default 416 responses | ||
* Ignore non-byte `Range` headers | ||
* deps: http-errors@~1.5.0 | ||
- Add `HttpError` export, for `err instanceof createError.HttpError` | ||
- Support new code `421 Misdirected Request` | ||
- Use `setprototypeof` module to replace `__proto__` setting | ||
- deps: inherits@2.0.1 | ||
- deps: statuses@'>= 1.3.0 < 2' | ||
- perf: enable strict mode | ||
* deps: range-parser@~1.2.0 | ||
- Fix incorrectly returning -1 when there is at least one valid range | ||
- perf: remove internal function | ||
* deps: statuses@~1.3.0 | ||
- Add `421 Misdirected Request` | ||
- perf: enable strict mode | ||
* perf: remove argument reassignment | ||
0.13.2 / 2016-03-05 | ||
=================== | ||
* Fix invalid `Content-Type` header when `send.mime.default_type` unset | ||
0.13.1 / 2016-01-16 | ||
=================== | ||
* deps: depd@~1.1.0 | ||
- Support web browser loading | ||
- perf: enable strict mode | ||
* deps: destroy@~1.0.4 | ||
- perf: enable strict mode | ||
* deps: escape-html@~1.0.3 | ||
- perf: enable strict mode | ||
- perf: optimize string replacement | ||
- perf: use faster string coercion | ||
* deps: range-parser@~1.0.3 | ||
- perf: enable strict mode | ||
0.13.0 / 2015-06-16 | ||
=================== | ||
* Allow Node.js HTTP server to set `Date` response header | ||
* Fix incorrectly removing `Content-Location` on 304 response | ||
* Improve the default redirect response headers | ||
* Send appropriate headers on default error response | ||
* Use `http-errors` for standard emitted errors | ||
* Use `statuses` instead of `http` module for status messages | ||
* deps: escape-html@1.0.2 | ||
* deps: etag@~1.7.0 | ||
- Improve stat performance by removing hashing | ||
* deps: fresh@0.3.0 | ||
- Add weak `ETag` matching support | ||
* deps: on-finished@~2.3.0 | ||
- Add defined behavior for HTTP `CONNECT` requests | ||
- Add defined behavior for HTTP `Upgrade` requests | ||
- deps: ee-first@1.1.1 | ||
* perf: enable strict mode | ||
* perf: remove unnecessary array allocations | ||
0.12.3 / 2015-05-13 | ||
=================== | ||
* deps: debug@~2.2.0 | ||
- deps: ms@0.7.1 | ||
* deps: depd@~1.0.1 | ||
* deps: etag@~1.6.0 | ||
- Improve support for JXcore | ||
- Support "fake" stats objects in environments without `fs` | ||
* deps: ms@0.7.1 | ||
- Prevent extraordinarily long inputs | ||
* deps: on-finished@~2.2.1 | ||
0.12.2 / 2015-03-13 | ||
=================== | ||
* Throw errors early for invalid `extensions` or `index` options | ||
* deps: debug@~2.1.3 | ||
- Fix high intensity foreground color for bold | ||
- deps: ms@0.7.0 | ||
0.12.1 / 2015-02-17 | ||
=================== | ||
* Fix regression sending zero-length files | ||
0.12.0 / 2015-02-16 | ||
=================== | ||
* Always read the stat size from the file | ||
* Fix mutating passed-in `options` | ||
* deps: mime@1.3.4 | ||
0.11.1 / 2015-01-20 | ||
=================== | ||
* Fix `root` path disclosure | ||
0.11.0 / 2015-01-05 | ||
=================== | ||
* deps: debug@~2.1.1 | ||
* deps: etag@~1.5.1 | ||
- deps: crc@3.2.1 | ||
* deps: ms@0.7.0 | ||
- Add `milliseconds` | ||
- Add `msecs` | ||
- Add `secs` | ||
- Add `mins` | ||
- Add `hrs` | ||
- Add `yrs` | ||
* deps: on-finished@~2.2.0 | ||
0.10.1 / 2014-10-22 | ||
=================== | ||
* deps: on-finished@~2.1.1 | ||
- Fix handling of pipelined requests | ||
0.10.0 / 2014-10-15 | ||
=================== | ||
* deps: debug@~2.1.0 | ||
- Implement `DEBUG_FD` env variable support | ||
* deps: depd@~1.0.0 | ||
* deps: etag@~1.5.0 | ||
- Improve string performance | ||
- Slightly improve speed for weak ETags over 1KB | ||
0.9.3 / 2014-09-24 | ||
================== | ||
* deps: etag@~1.4.0 | ||
- Support "fake" stats objects | ||
0.9.2 / 2014-09-15 | ||
================== | ||
* deps: depd@0.4.5 | ||
* deps: etag@~1.3.1 | ||
* deps: range-parser@~1.0.2 | ||
0.9.1 / 2014-09-07 | ||
================== | ||
* deps: fresh@0.2.4 | ||
0.9.0 / 2014-09-07 | ||
================== | ||
* Add `lastModified` option | ||
* Use `etag` to generate `ETag` header | ||
* deps: debug@~2.0.0 | ||
0.8.5 / 2014-09-04 | ||
================== | ||
* Fix malicious path detection for empty string path | ||
0.8.4 / 2014-09-04 | ||
================== | ||
* Fix a path traversal issue when using `root` | ||
0.8.3 / 2014-08-16 | ||
================== | ||
* deps: destroy@1.0.3 | ||
- renamed from dethroy | ||
* deps: on-finished@2.1.0 | ||
0.8.2 / 2014-08-14 | ||
================== | ||
* Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` | ||
* deps: dethroy@1.0.2 | ||
0.8.1 / 2014-08-05 | ||
================== | ||
* Fix `extensions` behavior when file already has extension | ||
0.8.0 / 2014-08-05 | ||
================== | ||
* Add `extensions` option | ||
0.7.4 / 2014-08-04 | ||
================== | ||
* Fix serving index files without root dir | ||
0.7.3 / 2014-07-29 | ||
================== | ||
* Fix incorrect 403 on Windows and Node.js 0.11 | ||
0.7.2 / 2014-07-27 | ||
================== | ||
* deps: depd@0.4.4 | ||
- Work-around v8 generating empty stack traces | ||
0.7.1 / 2014-07-26 | ||
================== | ||
* deps: depd@0.4.3 | ||
- Fix exception when global `Error.stackTraceLimit` is too low | ||
0.7.0 / 2014-07-20 | ||
================== | ||
* Deprecate `hidden` option; use `dotfiles` option | ||
* Add `dotfiles` option | ||
* deps: debug@1.0.4 | ||
* deps: depd@0.4.2 | ||
- Add `TRACE_DEPRECATION` environment variable | ||
- Remove non-standard grey color from color output | ||
- Support `--no-deprecation` argument | ||
- Support `--trace-deprecation` argument | ||
0.6.0 / 2014-07-11 | ||
================== | ||
* Deprecate `from` option; use `root` option | ||
* Deprecate `send.etag()` -- use `etag` in `options` | ||
* Deprecate `send.hidden()` -- use `hidden` in `options` | ||
* Deprecate `send.index()` -- use `index` in `options` | ||
* Deprecate `send.maxage()` -- use `maxAge` in `options` | ||
* Deprecate `send.root()` -- use `root` in `options` | ||
* Cap `maxAge` value to 1 year | ||
* deps: debug@1.0.3 | ||
- Add support for multiple wildcards in namespaces | ||
0.5.0 / 2014-06-28 | ||
================== | ||
* Accept string for `maxAge` (converted by `ms`) | ||
* Add `headers` event | ||
* Include link in default redirect response | ||
* Use `EventEmitter.listenerCount` to count listeners | ||
0.4.3 / 2014-06-11 | ||
================== | ||
* Do not throw un-catchable error on file open race condition | ||
* Use `escape-html` for HTML escaping | ||
* deps: debug@1.0.2 | ||
- fix some debugging output colors on node.js 0.8 | ||
* deps: finished@1.2.2 | ||
* deps: fresh@0.2.2 | ||
0.4.2 / 2014-06-09 | ||
================== | ||
* fix "event emitter leak" warnings | ||
* deps: debug@1.0.1 | ||
* deps: finished@1.2.1 | ||
0.4.1 / 2014-06-02 | ||
================== | ||
* Send `max-age` in `Cache-Control` in correct format | ||
0.4.0 / 2014-05-27 | ||
================== | ||
* Calculate ETag with md5 for reduced collisions | ||
* Fix wrong behavior when index file matches directory | ||
* Ignore stream errors after request ends | ||
- Goodbye `EBADF, read` | ||
* Skip directories in index file search | ||
* deps: debug@0.8.1 | ||
0.3.0 / 2014-04-24 | ||
================== | ||
* Fix sending files with dots without root set | ||
* Coerce option types | ||
* Accept API options in options object | ||
* Set etags to "weak" | ||
* Include file path in etag | ||
* Make "Can't set headers after they are sent." catchable | ||
* Send full entity-body for multi range requests | ||
* Default directory access to 403 when index disabled | ||
* Support multiple index paths | ||
* Support "If-Range" header | ||
* Control whether to generate etags | ||
* deps: mime@1.2.11 | ||
0.2.0 / 2014-01-29 | ||
================== | ||
* update range-parser and fresh | ||
0.1.4 / 2013-08-11 | ||
================== | ||
* update fresh | ||
0.1.3 / 2013-07-08 | ||
================== | ||
* Revert "Fix fd leak" | ||
0.1.2 / 2013-07-03 | ||
================== | ||
* Fix fd leak | ||
0.1.0 / 2012-08-25 | ||
================== | ||
* add options parameter to send() that is passed to fs.createReadStream() [kanongil] | ||
0.0.4 / 2012-08-16 | ||
================== | ||
* allow custom "Accept-Ranges" definition | ||
0.0.3 / 2012-07-16 | ||
================== | ||
* fix normalization of the root directory. Closes #3 | ||
0.0.2 / 2012-07-09 | ||
================== | ||
* add passing of req explicitly for now (YUCK) | ||
0.0.1 / 2010-01-03 | ||
================== | ||
* Initial release | ||
* Initial commit |
@@ -25,2 +25,3 @@ /*! | ||
var mime = require('mime') | ||
var xprezzoDebug = require('xprezzo-debug').debug | ||
var ms = require('xprezzo-debug').ms | ||
@@ -73,3 +74,3 @@ var onFinished = require('on-finished') | ||
module.exports.mime = mime | ||
module.exports.debug = debug | ||
module.exports.debug = xprezzoDebug | ||
module.exports.ms = ms | ||
@@ -76,0 +77,0 @@ |
{ | ||
"name": "xprezzo-send", | ||
"description": "Better streaming static file server with Range and conditional-GET support", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"author": "Leolio Mcleon <info@leolio.page>", | ||
@@ -37,2 +37,3 @@ "license": "MIT", | ||
"eslint-plugin-standard": "4.0.1", | ||
"expect.js": "0.3.1", | ||
"nyc": "15.1.0", | ||
@@ -39,0 +40,0 @@ "supertest": "4.0.2" |
# xprezzo-send | ||
Cloned and modifed version of [send] (https://github.com/pillarjs/send) | ||
xprezzo-send is a library for streaming files from the file system as a http response | ||
@@ -11,3 +9,19 @@ supporting partial responses (Ranges), conditional-GET negotiation (If-Match, | ||
It also expose the [xprezzo-debug](https://github.com/xprezzo/xprezzo-debug). | ||
## Philosophy of Xprezzo | ||
Problems faced: | ||
* Too many requires which creates problem when project grow | ||
* The dependencies update are slow | ||
* Test cases of difficult to design | ||
How Xprezzo try to tackle those problems: | ||
* Useful internal libraries/packages are exposed | ||
* Merge small libraries into a larger one. | ||
* Provide easy to use test framework | ||
## Installation | ||
@@ -14,0 +28,0 @@ |
937
328
35175
12