Browse Source

added support for HTTP Range requests, adding lws-range to the default stack. Fixes #81.

master
Lloyd Brookes 6 years ago
parent
commit
fbc4b2a7b9
  1. 2
      LICENSE
  2. 4
      README.md
  3. 51
      doc/api.md
  4. 1
      lib/default-stack.js
  5. 653
      package-lock.json
  6. 4
      package.json

2
LICENSE

@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2013-17 Lloyd Brookes <75pound@gmail.com>
Copyright (c) 2013-18 Lloyd Brookes <75pound@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

4
README.md

@ -29,7 +29,7 @@ Features:
* Response mocking
* Configurable access log
* Route blacklisting
* HTTP Conditional Request support
* HTTP Conditional and Range request support
* Gzip response compression, HTTP Basic Authentication and much more
## Synopsis
@ -243,4 +243,4 @@ $ npm install -g local-web-server
```
* * *
&copy; 2013-17 Lloyd Brookes <75pound@gmail.com>. Documented by [jsdoc-to-markdown](https://github.com/jsdoc2md/jsdoc-to-markdown).
&copy; 2013-18 Lloyd Brookes <75pound@gmail.com>. Documented by [jsdoc-to-markdown](https://github.com/jsdoc2md/jsdoc-to-markdown).

51
doc/api.md

@ -0,0 +1,51 @@
<a name="module_local-web-server"></a>
## local-web-server
**Emits**: <code>module:local-web-server#event:verbose</code>
**Example**
```js
const LocalWebServer = require('local-web-server')
const localWebServer = new LocalWebServer()
const server = localWebServer.listen({
port: 8050,
https: true,
directory: 'src',
spa: 'index.html',
websocket: 'src/websocket-server.js'
})
// secure, SPA server with listening websocket now ready on port 8050
```
* [local-web-server](#module_local-web-server)
* [LocalWebServer](#exp_module_local-web-server--LocalWebServer) ⏏
* [.listen([options])](#module_local-web-server--LocalWebServer+listen) ⇒ <code>Server</code>
<a name="exp_module_local-web-server--LocalWebServer"></a>
### LocalWebServer ⏏
**Kind**: Exported class
<a name="module_local-web-server--LocalWebServer+listen"></a>
#### localWebServer.listen([options]) ⇒ <code>Server</code>
Returns a listening HTTP/HTTPS server.
**Kind**: instance method of [<code>LocalWebServer</code>](#exp_module_local-web-server--LocalWebServer)
**Params**
- [options] <code>object</code> - Server options
- [.port] <code>number</code> - Port
- [.hostname] <code>string</code> - The hostname (or IP address) to listen on. Defaults to 0.0.0.0.
- [.maxConnections] <code>number</code> - The maximum number of concurrent connections supported by the server.
- [.keepAliveTimeout] <code>number</code> - The period (in milliseconds) of inactivity a connection will remain open before being destroyed. Set to `0` to keep connections open indefinitely.
- [.configFile] <code>string</code> - Config file path, defaults to 'lws.config.js'.
- [.https] <code>boolean</code> - Enable HTTPS using a built-in key and cert registered to the domain 127.0.0.1.
- [.key] <code>string</code> - SSL key file path. Supply along with --cert to launch a https server.
- [.cert] <code>string</code> - SSL cert file path. Supply along with --key to launch a https server.
- [.pfx] <code>string</code> - Path to an PFX or PKCS12 encoded private key and certificate chain. An alternative to providing --key and --cert.
- [.ciphers] <code>string</code> - Optional cipher suite specification, replacing the default.
- [.secureProtocol] <code>string</code> - Optional SSL method to use, default is "SSLv23_method".
- [.stack] <code>Array.&lt;string&gt;</code> | <code>Array.&lt;Middlewares&gt;</code> - Array of feature classes, or filenames of modules exporting a feature class.
- [.server] <code>string</code> | <code>ServerFactory</code> - Custom server factory, e.g. lws-http2.
- [.websocket] <code>string</code> | <code>Websocket</code> - Path to a websocket module
- [.moduleDir] <code>Array.&lt;string&gt;</code> - One or more directories to search for modules.

1
lib/default-stack.js

@ -10,6 +10,7 @@ module.exports = [
'lws-blacklist',
'lws-conditional-get',
'lws-mime',
'lws-range',
'lws-mock-response',
'lws-spa',
'lws-static',

653
package-lock.json

@ -39,6 +39,23 @@
"json-schema-traverse": "0.3.1"
}
},
"align-text": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
"integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
"dev": true,
"requires": {
"kind-of": "3.2.2",
"longest": "1.0.1",
"repeat-string": "1.6.1"
}
},
"amdefine": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
"dev": true
},
"ansi-escape-sequences": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz",
@ -110,6 +127,12 @@
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"dev": true
},
"async": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
"dev": true
},
"async-limiter": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
@ -133,6 +156,12 @@
"integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
"dev": true
},
"babylon": {
"version": "7.0.0-beta.19",
"resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.19.tgz",
"integrity": "sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A==",
"dev": true
},
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
@ -159,6 +188,12 @@
"tweetnacl": "0.14.5"
}
},
"bluebird": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
"integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
"dev": true
},
"boom": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
@ -188,12 +223,50 @@
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
"integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
},
"cache-point": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/cache-point/-/cache-point-0.4.1.tgz",
"integrity": "sha512-4TgWfe9SF+bUy5cCql8gWHqKNrviufNwSYxLjf2utB0pY4+bdcuFwMmY1hDB+67Gz/L1vmhFNhePAjJTFBtV+Q==",
"dev": true,
"requires": {
"array-back": "2.0.0",
"fs-then-native": "2.0.0",
"mkdirp2": "1.0.3"
}
},
"camelcase": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
"integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
"dev": true,
"optional": true
},
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"dev": true
},
"catharsis": {
"version": "0.8.9",
"resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.9.tgz",
"integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=",
"dev": true,
"requires": {
"underscore-contrib": "0.3.0"
}
},
"center-align": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
"integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
"dev": true,
"optional": true,
"requires": {
"align-text": "0.1.4",
"lazy-cache": "1.0.4"
}
},
"cli-commands": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/cli-commands/-/cli-commands-0.3.3.tgz",
@ -215,6 +288,27 @@
}
}
},
"cliui": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
"integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
"dev": true,
"optional": true,
"requires": {
"center-align": "0.1.3",
"right-align": "0.1.3",
"wordwrap": "0.0.2"
},
"dependencies": {
"wordwrap": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
"integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
"dev": true,
"optional": true
}
}
},
"co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@ -231,6 +325,16 @@
"type-is": "1.6.15"
}
},
"collect-all": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.3.tgz",
"integrity": "sha512-0y0rBgoX8IzIjBAUnO73SEtSb4Mhk3IoceWJq5zZSxb9mWORhWH8xLYo4EDSOE1jRBk1LhmfjqWFFt10h/+MEA==",
"dev": true,
"requires": {
"stream-connect": "1.0.2",
"stream-via": "1.0.4"
}
},
"combined-stream": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
@ -241,9 +345,9 @@
}
},
"command-line-args": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.0.tgz",
"integrity": "sha512-jp5PY9xA7pff6TaLS5y10zRqD5Xwsk/kODoIZy+FIKyHwcKFBsMAL3OMwL88VfrpAN706WFWZaPEjDaY5u2/xA==",
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.0.1.tgz",
"integrity": "sha512-gRJDcIjFSzMcmG/GrJlgL0wWoAxr11mVzCq32bjka0endupm9meLwvoJUKc4HDeFiEIB2X3GvNrhF5cKO4Bd4A==",
"requires": {
"argv-tools": "0.1.1",
"array-back": "2.0.0",
@ -280,6 +384,19 @@
"array-back": "2.0.0"
}
},
"command-line-tool": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz",
"integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==",
"dev": true,
"requires": {
"ansi-escape-sequences": "4.0.0",
"array-back": "2.0.0",
"command-line-args": "5.0.1",
"command-line-usage": "4.1.0",
"typical": "2.6.1"
}
},
"command-line-usage": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz",
@ -296,6 +413,12 @@
"resolved": "https://registry.npmjs.org/common-log-format/-/common-log-format-0.1.3.tgz",
"integrity": "sha1-YAna3E7EZzca8oqNvT5M4CsWZ4I="
},
"common-sequence": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-1.0.2.tgz",
"integrity": "sha1-MOB/P49vf5s97oVPILLTnu4Ibeg=",
"dev": true
},
"compressible": {
"version": "2.0.12",
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz",
@ -310,6 +433,23 @@
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
},
"config-master": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz",
"integrity": "sha1-ZnZjWQUFooO/JqSE1oSJ10xUhdo=",
"dev": true,
"requires": {
"walk-back": "2.0.1"
},
"dependencies": {
"walk-back": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz",
"integrity": "sha1-VU4qnYdPrEeoywBr9EwvDEmYoKQ=",
"dev": true
}
}
},
"content-disposition": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
@ -389,6 +529,13 @@
"ms": "2.0.0"
}
},
"decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
"dev": true,
"optional": true
},
"deep-equal": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
@ -425,6 +572,38 @@
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
"dmd": {
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/dmd/-/dmd-3.0.10.tgz",
"integrity": "sha512-+tRZIFV9fII538XFZSoRP1abtIy55RYa4waGvtKB36LD97NRorWsYT3V3HEURmnXpA4eGIFQph1E2f+51hWrTg==",
"dev": true,
"requires": {
"array-back": "2.0.0",
"cache-point": "0.4.1",
"common-sequence": "1.0.2",
"file-set": "1.1.1",
"handlebars": "4.0.11",
"marked": "0.3.12",
"object-get": "2.1.0",
"reduce-flatten": "1.0.1",
"reduce-unique": "1.0.0",
"reduce-without": "1.0.1",
"test-value": "3.0.0",
"walk-back": "3.0.0"
},
"dependencies": {
"test-value": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz",
"integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==",
"dev": true,
"requires": {
"array-back": "2.0.0",
"typical": "2.6.1"
}
}
}
},
"ecc-jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
@ -450,6 +629,12 @@
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
},
"esprima": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
@ -547,6 +732,12 @@
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
},
"fs-then-native": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz",
"integrity": "sha1-GaEk2U2QwiyOBF8ujdbr6jbUjGc=",
"dev": true
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@ -576,6 +767,24 @@
"path-is-absolute": "1.0.1"
}
},
"graceful-fs": {
"version": "4.1.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"dev": true
},
"handlebars": {
"version": "4.0.11",
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz",
"integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=",
"dev": true,
"requires": {
"async": "1.5.2",
"optimist": "0.6.1",
"source-map": "0.4.4",
"uglify-js": "2.8.29"
}
},
"har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
@ -678,6 +887,12 @@
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
"dev": true
},
"is-generator-function": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz",
@ -710,6 +925,15 @@
"esprima": "4.0.0"
}
},
"js2xmlparser": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz",
"integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=",
"dev": true,
"requires": {
"xmlcreate": "1.0.2"
}
},
"jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
@ -717,6 +941,84 @@
"dev": true,
"optional": true
},
"jsdoc": {
"version": "3.5.5",
"resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.5.5.tgz",
"integrity": "sha512-6PxB65TAU4WO0Wzyr/4/YhlGovXl0EVYfpKbpSroSj0qBxT4/xod/l40Opkm38dRHRdQgdeY836M0uVnJQG7kg==",
"dev": true,
"requires": {
"babylon": "7.0.0-beta.19",
"bluebird": "3.5.1",
"catharsis": "0.8.9",
"escape-string-regexp": "1.0.5",
"js2xmlparser": "3.0.0",
"klaw": "2.0.0",
"marked": "0.3.12",
"mkdirp": "0.5.1",
"requizzle": "0.2.1",
"strip-json-comments": "2.0.1",
"taffydb": "2.6.2",
"underscore": "1.8.3"
}
},
"jsdoc-api": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-4.0.1.tgz",
"integrity": "sha512-qCzHGQxfd9toMRjQft9E44Y40zWDPgf13pt3n+xExk8+wmVd7aueW6cTSQOHyjQG1v07INunQD8AcCAPxhZVmw==",
"dev": true,
"requires": {
"array-back": "2.0.0",
"cache-point": "0.4.1",
"collect-all": "1.0.3",
"file-set": "1.1.1",
"fs-then-native": "2.0.0",
"jsdoc": "3.5.5",
"object-to-spawn-args": "1.1.1",
"temp-path": "1.0.0",
"walk-back": "3.0.0"
}
},
"jsdoc-parse": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-3.0.1.tgz",
"integrity": "sha512-btZLp4wYl90vcAfgk4hoGQbO17iBVrhh3LJRMKZNtZgniO3F8H2CjxXld0owBIB1XxN+j3bAcWZnZKMnSj3iMA==",
"dev": true,
"requires": {
"array-back": "2.0.0",
"lodash.omit": "4.5.0",
"lodash.pick": "4.4.0",
"reduce-extract": "1.0.0",
"sort-array": "2.0.0",
"test-value": "3.0.0"
},
"dependencies": {
"test-value": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz",
"integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==",
"dev": true,
"requires": {
"array-back": "2.0.0",
"typical": "2.6.1"
}
}
}
},
"jsdoc-to-markdown": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-4.0.1.tgz",
"integrity": "sha512-LHJRoLoLyDdxNcColgkLoB/rFG5iRP+PNJjMILI0x+95IdEAtyjSt0wJ6ZlKxRpkhBYtQXTQQ119hMqPIUZzTQ==",
"dev": true,
"requires": {
"array-back": "2.0.0",
"command-line-tool": "0.8.0",
"config-master": "3.1.0",
"dmd": "3.0.10",
"jsdoc-api": "4.0.1",
"jsdoc-parse": "3.0.1",
"walk-back": "3.0.0"
}
},
"json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
@ -756,6 +1058,24 @@
"resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.0.2.tgz",
"integrity": "sha1-rTKXxVcGneqLz+ek+kkbdcXd65E="
},
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
"is-buffer": "1.1.6"
}
},
"klaw": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz",
"integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=",
"dev": true,
"requires": {
"graceful-fs": "4.1.11"
}
},
"koa": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/koa/-/koa-2.4.1.tgz",
@ -884,6 +1204,14 @@
"morgan": "1.9.0"
}
},
"koa-range": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/koa-range/-/koa-range-0.3.0.tgz",
"integrity": "sha1-NYjjSWRzqDmhvSZNKkKx2FvX/qw=",
"requires": {
"stream-slice": "0.1.2"
}
},
"koa-rewrite-75lb": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/koa-rewrite-75lb/-/koa-rewrite-75lb-2.1.1.tgz",
@ -942,6 +1270,13 @@
}
}
},
"lazy-cache": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
"integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
"dev": true,
"optional": true
},
"lcov-parse": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz",
@ -966,6 +1301,12 @@
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
"integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
},
"lodash.omit": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
"integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=",
"dev": true
},
"lodash.padend": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
@ -987,6 +1328,12 @@
"integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=",
"dev": true
},
"longest": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
"integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
"dev": true
},
"lws": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/lws/-/lws-1.1.7.tgz",
@ -996,7 +1343,7 @@
"array-back": "2.0.0",
"byte-size": "4.0.2",
"cli-commands": "0.3.3",
"command-line-args": "5.0.0",
"command-line-args": "5.0.1",
"command-line-usage": "4.1.0",
"koa": "2.4.1",
"load-module": "0.2.4",
@ -1100,6 +1447,14 @@
"reduce-flatten": "1.0.1"
}
},
"lws-range": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/lws-range/-/lws-range-1.1.0.tgz",
"integrity": "sha512-Mpx6FdO58Z4l6DAXlATsC2zm10QvyGYElQvFd7P1xqUSTPoYG0wAxfjlpqI+Qdb2O7W4Ah21yESVnPEwae3SIw==",
"requires": {
"koa-range": "0.3.0"
}
},
"lws-request-monitor": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/lws-request-monitor/-/lws-request-monitor-0.1.5.tgz",
@ -1139,6 +1494,12 @@
"koa-static": "4.0.2"
}
},
"marked": {
"version": "0.3.12",
"resolved": "https://registry.npmjs.org/marked/-/marked-0.3.12.tgz",
"integrity": "sha512-k4NaW+vS7ytQn6MgJn3fYpQt20/mOgYM5Ft9BYMfQJDz2QT6yEeS9XJ8k2Nw8JTeWK/znPPW2n3UJGzyYEiMoA==",
"dev": true
},
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@ -1177,6 +1538,23 @@
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
},
"mkdirp": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"dev": true,
"requires": {
"minimist": "0.0.8"
},
"dependencies": {
"minimist": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
"dev": true
}
}
},
"mkdirp2": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.3.tgz",
@ -1243,6 +1621,18 @@
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"object-get": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.0.tgz",
"integrity": "sha1-ciu9tgA576R8rTxtws5RqFwCxa4=",
"dev": true
},
"object-to-spawn-args": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-1.1.1.tgz",
"integrity": "sha1-d9qIJ/Bz0BHJ4bFz+JV4FHAkZ4U=",
"dev": true
},
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@ -1270,6 +1660,24 @@
"resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz",
"integrity": "sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q="
},
"optimist": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
"dev": true,
"requires": {
"minimist": "0.0.10",
"wordwrap": "0.0.3"
},
"dependencies": {
"minimist": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
"dev": true
}
}
},
"parseurl": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
@ -1342,11 +1750,62 @@
}
}
},
"reduce-extract": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz",
"integrity": "sha1-Z/I4W+2mUGG19fQxJmLosIDKFSU=",
"dev": true,
"requires": {
"test-value": "1.1.0"
},
"dependencies": {
"array-back": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
"integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=",
"dev": true,
"requires": {
"typical": "2.6.1"
}
},
"test-value": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz",
"integrity": "sha1-oJE29y7AQ9J8iTcHwrFZv6196T8=",
"dev": true,
"requires": {
"array-back": "1.0.4",
"typical": "2.6.1"
}
}
}
},
"reduce-flatten": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz",
"integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc="
},
"reduce-unique": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-1.0.0.tgz",
"integrity": "sha1-flhrz4ek4ytter2Cd/rWzeyfSAM=",
"dev": true
},
"reduce-without": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz",
"integrity": "sha1-aK0OrRGFXJo31OglbBW7+Hly/Iw=",
"dev": true,
"requires": {
"test-value": "2.1.0"
}
},
"repeat-string": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
"dev": true
},
"req-then": {
"version": "0.6.4",
"resolved": "https://registry.npmjs.org/req-then/-/req-then-0.6.4.tgz",
@ -1389,6 +1848,23 @@
"uuid": "3.2.1"
}
},
"requizzle": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.1.tgz",
"integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=",
"dev": true,
"requires": {
"underscore": "1.6.0"
},
"dependencies": {
"underscore": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
"integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=",
"dev": true
}
}
},
"resolve-path": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.3.3.tgz",
@ -1415,6 +1891,16 @@
}
}
},
"right-align": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
"integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
"dev": true,
"optional": true,
"requires": {
"align-text": "0.1.4"
}
},
"safe-buffer": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
@ -1463,6 +1949,37 @@
"hoek": "4.2.0"
}
},
"sort-array": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/sort-array/-/sort-array-2.0.0.tgz",
"integrity": "sha1-OKnG2if9fRR7QuYFVPKBGHtN9HI=",
"dev": true,
"requires": {
"array-back": "1.0.4",
"object-get": "2.1.0",
"typical": "2.6.1"
},
"dependencies": {
"array-back": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
"integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=",
"dev": true,
"requires": {
"typical": "2.6.1"
}
}
}
},
"source-map": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
"dev": true,
"requires": {
"amdefine": "1.0.1"
}
},
"sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
@ -1490,6 +2007,26 @@
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
},
"stream-connect": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz",
"integrity": "sha1-GLyB8u2zW4tdmoAJIAqYUxRCipc=",
"dev": true,
"requires": {
"array-back": "1.0.4"
},
"dependencies": {
"array-back": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
"integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=",
"dev": true,
"requires": {
"typical": "2.6.1"
}
}
}
},
"stream-log-stats": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/stream-log-stats/-/stream-log-stats-2.0.2.tgz",
@ -1532,6 +2069,11 @@
"resolved": "https://registry.npmjs.org/stream-read-all/-/stream-read-all-0.1.2.tgz",
"integrity": "sha512-KX42xBg853m+KnwRtwCKT95ShopAbY/MNKs2dBQ0WkNeuJdqgQYRtGRbTlxdx0L6t979h3z/wMq2eMSAu7Tygw=="
},
"stream-slice": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/stream-slice/-/stream-slice-0.1.2.tgz",
"integrity": "sha1-LcT04bk2+xPz6zmi3vGTJ5jQeks="
},
"stream-via": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz",
@ -1560,6 +2102,12 @@
"integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
"dev": true
},
"strip-json-comments": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"dev": true
},
"table-layout": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.2.tgz",
@ -1572,6 +2120,18 @@
"wordwrapjs": "3.0.0"
}
},
"taffydb": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz",
"integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=",
"dev": true
},
"temp-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz",
"integrity": "sha1-JLFUOXOrRCiW2a02fdnL2/r+kYs=",
"dev": true
},
"test-runner": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/test-runner/-/test-runner-0.5.0.tgz",
@ -1580,7 +2140,7 @@
"requires": {
"ansi-escape-sequences": "4.0.0",
"array-back": "2.0.0",
"command-line-args": "5.0.0",
"command-line-args": "5.0.1",
"command-line-usage": "4.1.0",
"file-set": "1.1.1",
"reduce-flatten": "1.0.1"
@ -1665,11 +2225,62 @@
"resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
"integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0="
},
"uglify-js": {
"version": "2.8.29",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
"dev": true,
"optional": true,
"requires": {
"source-map": "0.5.7",
"uglify-to-browserify": "1.0.2",
"yargs": "3.10.0"
},
"dependencies": {
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true,
"optional": true
}
}
},
"uglify-to-browserify": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
"integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
"dev": true,
"optional": true
},
"ultron": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
"integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
},
"underscore": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
"integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=",
"dev": true
},
"underscore-contrib": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz",
"integrity": "sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc=",
"dev": true,
"requires": {
"underscore": "1.6.0"
},
"dependencies": {
"underscore": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
"integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=",
"dev": true
}
}
},
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
@ -1719,6 +2330,19 @@
"resolved": "https://registry.npmjs.org/walk-back/-/walk-back-3.0.0.tgz",
"integrity": "sha1-I1h4ejXakQMtrV6S+AsSNw2HlcU="
},
"window-size": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
"integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
"dev": true,
"optional": true
},
"wordwrap": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
"integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
"dev": true
},
"wordwrapjs": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz",
@ -1743,6 +2367,25 @@
"safe-buffer": "5.1.1",
"ultron": "1.1.1"
}
},
"xmlcreate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz",
"integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=",
"dev": true
},
"yargs": {
"version": "3.10.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
"integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
"dev": true,
"optional": true,
"requires": {
"camelcase": "1.2.1",
"cliui": "2.1.0",
"decamelize": "1.2.0",
"window-size": "0.1.0"
}
}
}
}

4
package.json

@ -26,7 +26,7 @@
},
"scripts": {
"test": "test-runner test/*.js",
"docs": "jsdoc2md -t jsdoc2md/api.hbs -p list lib/*.js > doc/api.md; echo",
"docs": "jsdoc2md -p list lib/*.js > doc/api.md; echo",
"cover": "istanbul cover ./node_modules/.bin/test-runner test/*.js && cat coverage/lcov.info | coveralls"
},
"repository": "https://github.com/lwsjs/local-web-server",
@ -44,6 +44,7 @@
"lws-log": "^0.3.2",
"lws-mime": "^0.2.2",
"lws-mock-response": "^0.4.6",
"lws-range": "^1.1.0",
"lws-request-monitor": "^0.1.5",
"lws-rewrite": "^0.3.7",
"lws-spa": "^0.2.4",
@ -52,6 +53,7 @@
},
"devDependencies": {
"coveralls": "^3.0.0",
"jsdoc-to-markdown": "^4.0.1",
"req-then": "^0.6.4",
"test-runner": "^0.5.0"
}

Loading…
Cancel
Save