diff --git a/README.md b/README.md index 55c5255..190e96b 100644 --- a/README.md +++ b/README.md @@ -9,14 +9,12 @@ # local-web-server -A modular HTTP, HTTPS and HTTP2 command-line web server for productive full-stack development. +A modular, personalisable HTTP, HTTPS and HTTP2 command-line web server. Use this tool to: -* Help build any flavour of front-end web application. - * *Static site, dynamic site with client or server-rendered content, Single Page App, Progessive Web App, Angular or React app etc.* -* Prototype a CORS-enabled back-end service. - * *RESTful HTTP API, microservice, websocket server, Server Sent Events service etc.* +* Build any type of front-end web application (static, dynamic, Single Page App, Progessive Web App, React etc). +* Prototype a back-end service (REST API, microservice, websocket or Server Sent Events service etc). * Monitor activity, analyse performance, fine-tune caching strategy etc. Local-web-server is a distribution of [lws](https://github.com/lwsjs/lws) bundled with a "starter pack" of useful middleware. diff --git a/package-lock.json b/package-lock.json index 61ed5e0..7de6b93 100644 --- a/package-lock.json +++ b/package-lock.json @@ -118,9 +118,9 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } @@ -672,10 +672,9 @@ } }, "create-mixin": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-mixin/-/create-mixin-1.1.1.tgz", - "integrity": "sha512-z6QC4H0gSX81fUpvJ721IArB8rY449Oiu4bmI/AAn33AiSIerKh6d8azLb0mqgHU5aW+8rqeR4RGIu06dBFSZA==", - "dev": true + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/create-mixin/-/create-mixin-2.0.1.tgz", + "integrity": "sha512-r11aTk2z5x2C9ZI85oxuZ0EzgjBH0BdGacnXeuA+9d59xV2Hsy+ZpRmU+LUjJT9KdnLgzaxZoCbqrJ5qjl0bAA==" }, "cross-spawn": { "version": "4.0.2", @@ -1311,9 +1310,9 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } @@ -1809,9 +1808,9 @@ } }, "lws": { - "version": "2.0.0-11", - "resolved": "https://registry.npmjs.org/lws/-/lws-2.0.0-11.tgz", - "integrity": "sha512-flkwzQ/PqQbRoFT0OG1i4iLY8c+Lf5vIxwTMLIVyy6CoVH/H2o1KYdYV5NZEeaGU7aioMMmyaNFm9Ec/+JL4ww==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lws/-/lws-2.0.0.tgz", + "integrity": "sha512-OgAJ7Od6nteHv1p8QQPc28xFNZrPLBkyOu8lHsVH0Eo4qYPiY/401LHnIKwJEAQZAV8YF0lSL7/mtSxAM+mAVg==", "requires": { "ansi-escape-sequences": "^4.1.0", "array-back": "^3.1.0", @@ -1827,115 +1826,108 @@ "reduce-flatten": "^2.0.0", "typical": "^5.0.0", "walk-back": "^3.0.1" - }, - "dependencies": { - "create-mixin": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/create-mixin/-/create-mixin-2.0.1.tgz", - "integrity": "sha512-r11aTk2z5x2C9ZI85oxuZ0EzgjBH0BdGacnXeuA+9d59xV2Hsy+ZpRmU+LUjJT9KdnLgzaxZoCbqrJ5qjl0bAA==" - } } }, "lws-basic-auth": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lws-basic-auth/-/lws-basic-auth-1.0.2.tgz", - "integrity": "sha512-r2EvNdnubg/Kz0475s/XvJVspLHfyh3JjR2gaBfIS2BOhlm2Sm3gt/5YZmXe9tTpyLqVV2lz/Htki1Jgm/vNHQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/lws-basic-auth/-/lws-basic-auth-1.0.3.tgz", + "integrity": "sha512-YMVsYyIcmEgAyjuQuU+rVtrs1vmrc6U5Nqrj0G/A++h96bJVfgxu0p9Qj1ZmeZplya3Jx8TefzppAfuzxebZxw==", "requires": { "basic-auth": "^2.0.1" } }, "lws-blacklist": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/lws-blacklist/-/lws-blacklist-2.0.1.tgz", - "integrity": "sha512-Chcb6LQmuRZ9jZKypHBIc5S16RnxFIq9j0PRabguVAxuOWskTW9Z5QXu4pQRL2TAPr4ei4lIpgO464Nws4l0iw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lws-blacklist/-/lws-blacklist-2.0.2.tgz", + "integrity": "sha512-7W2z6epqC+V5FSLN9Cblezgqem8jdGvIyIlhrbNfV+Sq818xHU9h5+Bh2rfQmNUKYp59TX+7K3Gp73kGLo37bA==", "requires": { "array-back": "^3.1.0", "path-to-regexp": "^3.0.0" } }, "lws-body-parser": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lws-body-parser/-/lws-body-parser-1.0.1.tgz", - "integrity": "sha512-sxwV9NlBycofj7eLLLvUyV4ADU0f5TT8pu4u7DULIuwOGZfEnD15vc5/M9CeKKiCcbM3P0qH6egb4eMDsg2C+Q==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lws-body-parser/-/lws-body-parser-1.0.2.tgz", + "integrity": "sha512-Tm/gtNgQQdi6nr1FgD0PLDWohBdEXqXAPI62j/7JbGsQTcR7NBbSYmk1hrCdMKMcZ8BNZEPEDUjOA6v19YceWA==", "requires": { "koa-bodyparser": "^4.2.1" } }, "lws-compress": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lws-compress/-/lws-compress-1.0.1.tgz", - "integrity": "sha512-DexLARob9sKBgXW27ZSrDr/GDVTlvg3NMBeODS1Wvw3inTi/4O+JqTcXJ36PpSxZxZ4XpKxaqJe80SSNwq3h1w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lws-compress/-/lws-compress-1.0.2.tgz", + "integrity": "sha512-bQWfg6RopS4UEu9pXU8yCHxJa40do1NM3399oeAz9klMv94h+SAbjqpf1i5ZgEou5p5psiE6LYaGokHdJy/yew==", "requires": { "koa-compress": "^3.0.0" } }, "lws-conditional-get": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lws-conditional-get/-/lws-conditional-get-1.0.0.tgz", - "integrity": "sha512-RU/4zeOkFPKN9KwxtMfDGfOavbrpPm+eCzU81g7PHwDZfEc2lOiry7KGjk2o4gpMNkNfaoPkOJgZo6Rf5MWYTg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lws-conditional-get/-/lws-conditional-get-1.0.1.tgz", + "integrity": "sha512-PK6JOnrkGTlyqaq8mdxKfBVb8begapwk1i9jNvtWqs1FZj0ElLfDhF+57YR1r0aD/CX64RoaD5UHsGb84rQqTw==", "requires": { "koa-conditional-get": "^2.0.0", "koa-etag": "^3.0.0" } }, "lws-cors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lws-cors/-/lws-cors-2.0.0.tgz", - "integrity": "sha512-//y38wWWCBjSEt6gy7C7+MSEePPw4n5wOo68lhHPLuKHDY+F81UdlSspEtQSteqDGlYWDcO1A0RVUf4vCQqN/Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lws-cors/-/lws-cors-2.0.1.tgz", + "integrity": "sha512-FkGoqQrFETdyDYqPhuJufR7131J014QsyHVtDbBs17kMtspzcIrS2BOtO/NIShgs5ybGZ7S/CjuBNuy/0+kV1w==", "requires": { "@koa/cors": "^3.0.0" } }, "lws-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lws-index/-/lws-index-1.0.2.tgz", - "integrity": "sha512-cU0UohkIFnI1mHhs/fn3VuBTBWKl9soOnPXR8zUBoaYBfnNepFsVmnhpEmQIdDXXOtWZedIXFV5JH+aNWwLlmg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lws-index/-/lws-index-1.0.4.tgz", + "integrity": "sha512-DmfnyesC4M43bdO3Jr5fjye7qYaq6kGoOBfWJu64llHxHnOpvowShEtoJeUEEzUf4Myjzzl+xO2IzYqFmpqa4w==", "requires": { "serve-index": "^1.9.1" } }, "lws-json": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lws-json/-/lws-json-1.0.0.tgz", - "integrity": "sha512-X87AfkD8nr4YkoWpnazLrpIHWtMOym693nR0JmDh+5/vAz+LwmyGt0OwhlV1MUh/Cz8t68m5FOQq9vDv6xDu2Q==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lws-json/-/lws-json-1.0.1.tgz", + "integrity": "sha512-uP2YTPymDT2aJW7GBWjXKdfIqkQuUWz3T4lNw8U8AEbyR6sIg8J5nSO9PneT/zqq9KSp3/+nQoFkO31LMeSq5w==", "requires": { "koa-json": "^2.0.2" } }, "lws-log": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lws-log/-/lws-log-1.0.1.tgz", - "integrity": "sha512-dN50IuP7ro23rg06t0fp7PTZHiv2AI2F3Kj6Qj3uPgkTVVvR2T4UEnvhc9g7+6BLwAg429WfXo9STOWbE05vDA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lws-log/-/lws-log-1.0.2.tgz", + "integrity": "sha512-bJVcNiO43nnVtC/+QSnH1noNfBfgXJc98uLwCgofeDieTcQ56fWi+lX3DdXP5yN7p8J4ZrKVFBraA93TOF+p1g==", "requires": { "koa-morgan": "^1.0.1", "stream-log-stats": "^3.0.0" } }, "lws-mime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lws-mime/-/lws-mime-1.0.0.tgz", - "integrity": "sha512-QCrW36waIM77VmCcVOrjSxpzbvJfLLOz5Pk/oJBIQeHR9Bniqhdv3TLpiwJwCbO5pkiMQV7iXLI9dii4DqPEag==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lws-mime/-/lws-mime-1.0.1.tgz", + "integrity": "sha512-+4lRjaJmexwmScZAb50A0J4F8vhSyTBOsva8xFgX9yC/AMR7t56asZpgAAw7WUI8rlSbpJQCfh0nkuAhEWgMEA==" }, "lws-range": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lws-range/-/lws-range-2.0.0.tgz", - "integrity": "sha512-rP6IBgCTUFiWEOAs6Vj+k3tVl1CWfffA+JhgqQozKZ59uP7bEyAhZIzMFgFjL6Q0pyRDLxVqte2B7OXfHs0kHg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lws-range/-/lws-range-2.0.1.tgz", + "integrity": "sha512-W4phkrh4lGtwe4M4Q5xsKBhme69s0wyrYTxoe8K9ZRDQdCFrP5wUGa5+wz/dsOvlPSaBKWxnGluCYhspGid3Gw==", "requires": { "koa-range": "^0.3.0" } }, "lws-request-monitor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/lws-request-monitor/-/lws-request-monitor-1.0.3.tgz", - "integrity": "sha512-g0McT3GV8Gm9nCnlEXUJ5vTOgpiBgA2O0nxOQFzzpW0aDR5fxh2MoFYKxjpkOX09YaSdgpAaXdQV2ts/Ixk8Lw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lws-request-monitor/-/lws-request-monitor-1.0.4.tgz", + "integrity": "sha512-i3rpVmBnd/QIZe20lupZk+jcI7Qxr3zAddU7BR4FHniyY2ygGL3WobeZqKE0hT25p2N7roGbk/ywZn8EIXXBDQ==", "requires": { "byte-size": "^5.0.1" } }, "lws-rewrite": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/lws-rewrite/-/lws-rewrite-2.0.1.tgz", - "integrity": "sha512-IBIPnDKCwdvfkQWQFT2IHNwa4hjJqIXNspdPX3MBj2S9JhVE+EvvO0awzE3AHNwlBa+HJPYmVbtiSFwF4hNhAg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lws-rewrite/-/lws-rewrite-2.0.2.tgz", + "integrity": "sha512-3GL1rbNV/5Yrex7OOB61DGbweXFzDQa8XnN0BUAecRB2vV4zncgRtTr9kBhZ3R2K1JOJHD6fYD405pwq82KYyQ==", "requires": { "array-back": "^3.1.0", "koa-rewrite-75lb": "^3.0.1", @@ -1946,17 +1938,17 @@ } }, "lws-spa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lws-spa/-/lws-spa-2.0.0.tgz", - "integrity": "sha512-VkNUPoi/tVE0b2lgmvBM98VV8Qan66KlxuC09MlGaI8+/zI4T33MPXMUXgrAvFipOXHO+fCG/MUlo8XD9YJWCQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lws-spa/-/lws-spa-2.0.1.tgz", + "integrity": "sha512-E2Q76EW5MHD60w3JnFyJXHjJwSpOpFh/+VKLyiB6fFoo5ABSoPQPXYLwotyqewpMBxsPoooHeoc4+jv1tgz/cQ==", "requires": { "koa-send": "^5.0.0" } }, "lws-static": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/lws-static/-/lws-static-1.1.0.tgz", - "integrity": "sha512-Dj8hCHo2fDDCyctNEUK80EDeQRstJ0IKM3OrUK+MVFhXfz3QJ5oFa3ZDCM7k/gJdmCo21vLwda62XyjCjjSvTA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/lws-static/-/lws-static-1.1.2.tgz", + "integrity": "sha512-d42u7bM9W2+BGCne9jD7F8I6oe9i7kqtw/0GIX5C6c2zSTUI67U8RXAthKOaXay8UBAyro+Xoy4R8nbD7bAlXg==", "requires": { "koa-static": "^5.0.0" } @@ -1994,9 +1986,9 @@ } }, "markdown-it-anchor": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.2.3.tgz", - "integrity": "sha512-KjEKPZNYoanmTECbh9x1bBsXGJ6dNUTxIFg5YhdBxYkx/+27LNVUzh7Ctlb7jxadgGCWMX9tt46Aaby7Af8xSg==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.2.4.tgz", + "integrity": "sha512-n8zCGjxA3T+Mx1pG8HEgbJbkB8JFUuRkeTZQuIM8iPY6oQ8sWOPRZJDFC9a/pNg2QkHEjjGkhBEl/RSyzaDZ3A==", "dev": true }, "marked": { @@ -2694,9 +2686,9 @@ } }, "resolve": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz", - "integrity": "sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -3118,6 +3110,14 @@ "fsm-base": "^0.4.4", "race-timeout-anywhere": "^0.1.1", "typical": "^5.0.0" + }, + "dependencies": { + "create-mixin": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-mixin/-/create-mixin-1.1.1.tgz", + "integrity": "sha512-z6QC4H0gSX81fUpvJ721IArB8rY449Oiu4bmI/AAn33AiSIerKh6d8azLb0mqgHU5aW+8rqeR4RGIu06dBFSZA==", + "dev": true + } } }, "test-runner": { diff --git a/package.json b/package.json index 45d2758..9ae6c85 100644 --- a/package.json +++ b/package.json @@ -39,22 +39,22 @@ "index.js" ], "dependencies": { - "lws": "2.0.0-11", - "lws-basic-auth": "^1.0.2", - "lws-blacklist": "^2.0.1", - "lws-body-parser": "^1.0.1", - "lws-compress": "^1.0.1", - "lws-conditional-get": "^1.0.0", - "lws-cors": "^2.0.0", - "lws-index": "^1.0.2", - "lws-json": "^1.0.0", - "lws-log": "^1.0.1", - "lws-mime": "^1.0.0", - "lws-range": "^2.0.0", - "lws-request-monitor": "^1.0.3", - "lws-rewrite": "^2.0.1", - "lws-spa": "^2.0.0", - "lws-static": "^1.1.0", + "lws": "2.0.0", + "lws-basic-auth": "^1.0.3", + "lws-blacklist": "^2.0.2", + "lws-body-parser": "^1.0.2", + "lws-compress": "^1.0.2", + "lws-conditional-get": "^1.0.1", + "lws-cors": "^2.0.1", + "lws-index": "^1.0.4", + "lws-json": "^1.0.1", + "lws-log": "^1.0.2", + "lws-mime": "^1.0.1", + "lws-range": "^2.0.1", + "lws-request-monitor": "^1.0.4", + "lws-rewrite": "^2.0.2", + "lws-spa": "^2.0.1", + "lws-static": "^1.1.2", "node-version-matches": "^1.0.1" }, "devDependencies": {