From b1a5426405e9a8d00eb66dd642da226c2a6d6ac3 Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Sun, 16 Jun 2019 17:47:34 +0200 Subject: [PATCH] fix(core): update --- package-lock.json | 294 +++++++++++++++++++++++-------------- package.json | 3 + test/html/index.html | 81 ++++++++++ ts/tsbundle.cli.ts | 4 + ts/tsbundle.htmlhandler.ts | 28 ++++ ts/tsbundle.paths.ts | 6 + ts/tsbundle.plugins.ts | 15 +- 7 files changed, 318 insertions(+), 113 deletions(-) create mode 100644 test/html/index.html create mode 100644 ts/tsbundle.htmlhandler.ts create mode 100644 ts/tsbundle.paths.ts diff --git a/package-lock.json b/package-lock.json index 03472d5..536cf3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1267,7 +1267,7 @@ }, "@pushrocks/lik": { "version": "3.0.5", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2flik/-/lik-3.0.5.tgz", + "resolved": "https://registry.npmjs.org/@pushrocks/lik/-/lik-3.0.5.tgz", "integrity": "sha512-pc5Nq0WUysS34qPpyiZXiX254kL3vyRVbt3D36Q5QU+eHhxAThHofSzgOdyVHUZU2WFoaMlKowIVsyUFzIkfdw==", "requires": { "@pushrocks/smartdelay": "^2.0.2", @@ -1310,7 +1310,7 @@ }, "@pushrocks/smartevent": { "version": "2.0.3", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartevent/-/smartevent-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/@pushrocks/smartevent/-/smartevent-2.0.3.tgz", "integrity": "sha512-x4B1mzzE6LrMATXsRLNuZpMTlB2JodL44MA4bF4FucU3SBBiWhFv3CFJRlO9B23SKZ1fwdJQrk2lT7YTUHXXJQ==", "requires": { "@pushrocks/smartpromise": "^2.0.5" @@ -1320,7 +1320,6 @@ "version": "7.0.2", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartfile/-/smartfile-7.0.2.tgz", "integrity": "sha512-38l9DRalp1McEBFG+qKzBqefVQZZLPNk+uo7Ff1guy8BDxA+tATlZ6O6FuXW7M3wjFDBi245VJs+KWVKcCxBRA==", - "dev": true, "requires": { "@pushrocks/smartpath": "^4.0.1", "@pushrocks/smartpromise": "^3.0.2", @@ -1336,8 +1335,7 @@ "@pushrocks/smartpromise": { "version": "3.0.2", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-3.0.2.tgz", - "integrity": "sha512-jmrJMUEmBCWChWK8CIcx4Vw3wv/8OgVNmkaxJrbs+WMaoRUfJtpWWJfrAwwHWt9ZXJbarJ+CwfwfYiiZXymndQ==", - "dev": true + "integrity": "sha512-jmrJMUEmBCWChWK8CIcx4Vw3wv/8OgVNmkaxJrbs+WMaoRUfJtpWWJfrAwwHWt9ZXJbarJ+CwfwfYiiZXymndQ==" } } }, @@ -1367,7 +1365,7 @@ }, "@pushrocks/smartparam": { "version": "1.0.4", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartparam/-/smartparam-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/@pushrocks/smartparam/-/smartparam-1.0.4.tgz", "integrity": "sha512-UAqhnTQGBaJRptTK3qTd47Yt2ZTrAWByteow4auSNZD+k0xrpY9mTPPgKh0IwsURe0cZhj7zYNpGiekhKkL4rA==", "requires": { "@pushrocks/smartpromise": "^2.0.5", @@ -1378,8 +1376,7 @@ "@pushrocks/smartpath": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@pushrocks/smartpath/-/smartpath-4.0.1.tgz", - "integrity": "sha512-MaI0+uLQPCr2V3WGnbdgb0pWa9xkWyrP4qYcbsHIjeismGLbn9s3jmP/HIXU8LkgzRgaVb+BJxmZJHOwl32DyA==", - "dev": true + "integrity": "sha512-MaI0+uLQPCr2V3WGnbdgb0pWa9xkWyrP4qYcbsHIjeismGLbn9s3jmP/HIXU8LkgzRgaVb+BJxmZJHOwl32DyA==" }, "@pushrocks/smartpromise": { "version": "2.0.5", @@ -1390,7 +1387,6 @@ "version": "1.1.14", "resolved": "https://registry.npmjs.org/@pushrocks/smartrequest/-/smartrequest-1.1.14.tgz", "integrity": "sha512-+sDQB4Mxvpn8BIMPUQ7TPSCKUVMln3tHC4rp4pmfEHmBQK+g1XwtNr59aMA9kEoBDMt7li1hu+1cs+SNsWt6Gw==", - "dev": true, "requires": { "@pushrocks/smartpromise": "^2.0.5", "@types/form-data": "^2.2.1", @@ -1399,7 +1395,7 @@ }, "@pushrocks/smartrx": { "version": "2.0.3", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrx/-/smartrx-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/@pushrocks/smartrx/-/smartrx-2.0.3.tgz", "integrity": "sha512-OWxagu+CBdPaq76AIg91hJyrNhDTlEpesj01ooWCeVIaLY3G7yvFkqHsEKNOwPUG1LzCWmjq1l1dHQx9p2vJ9A==", "requires": { "@pushrocks/lik": "^3.0.2", @@ -1421,7 +1417,7 @@ }, "@pushrocks/smarttime": { "version": "3.0.7", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmarttime/-/smarttime-3.0.7.tgz", + "resolved": "https://registry.npmjs.org/@pushrocks/smarttime/-/smarttime-3.0.7.tgz", "integrity": "sha512-IL/+lgVQLvZvoMSbOpT3JSGjogGzpNbWdzfFZAjjxrTtwxAN1FNWGcCESCvq1BPlUGECPTBeyyaURXhhhLfihA==", "requires": { "@pushrocks/smartpromise": "^3.0.2", @@ -1433,7 +1429,7 @@ "dependencies": { "@pushrocks/smartpromise": { "version": "3.0.2", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/@pushrocks/smartpromise/-/smartpromise-3.0.2.tgz", "integrity": "sha512-jmrJMUEmBCWChWK8CIcx4Vw3wv/8OgVNmkaxJrbs+WMaoRUfJtpWWJfrAwwHWt9ZXJbarJ+CwfwfYiiZXymndQ==" } } @@ -1483,6 +1479,14 @@ "@types/chai": "*" } }, + "@types/clean-css": { + "version": "4.2.1", + "resolved": "https://verdaccio.lossless.one/@types%2fclean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-A1HQhQ0hkvqqByJMgg+Wiv9p9XdoYEzuwm11SVo1mX2/4PSdhjcrUlilJQoqLscIheC51t1D5g+EFWCXZ2VTQQ==", + "requires": { + "@types/node": "*" + } + }, "@types/cron": { "version": "1.7.1", "resolved": "https://verdaccio.lossless.one/@types%2fcron/-/cron-1.7.1.tgz", @@ -1507,7 +1511,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", - "dev": true, "requires": { "@types/node": "*" } @@ -1516,11 +1519,20 @@ "version": "5.0.5", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.5.tgz", "integrity": "sha512-w7iqhDH9mN8eLClQOYTkhdYUOSpp25eXxfc6VbFOGtzxW34JcvctH2bKjj4jD4++z4R5iO5D+pg48W2e03I65A==", - "dev": true, "requires": { "@types/node": "*" } }, + "@types/html-minifier": { + "version": "3.5.3", + "resolved": "https://verdaccio.lossless.one/@types%2fhtml-minifier/-/html-minifier-3.5.3.tgz", + "integrity": "sha512-j1P/4PcWVVCPEy5lofcHnQ6BtXz9tHGiFPWzqm7TtGuWZEfCHEP446HlkSNc9fQgNJaJZ6ewPtp2aaFla/Uerg==", + "requires": { + "@types/clean-css": "*", + "@types/relateurl": "*", + "@types/uglify-js": "*" + } + }, "@types/luxon": { "version": "1.15.1", "resolved": "https://verdaccio.lossless.one/@types%2fluxon/-/luxon-1.15.1.tgz", @@ -1528,7 +1540,7 @@ }, "@types/minimatch": { "version": "3.0.3", - "resolved": "https://verdaccio.lossless.one/@types%2fminimatch/-/minimatch-3.0.3.tgz", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" }, "@types/node": { @@ -1536,6 +1548,11 @@ "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-11.13.8.tgz", "integrity": "sha512-szA3x/3miL90ZJxUCzx9haNbK5/zmPieGraZEe4WI+3srN0eGLiT22NXeMHmyhNEopn+IrxqMc7wdVwvPl8meg==" }, + "@types/relateurl": { + "version": "0.2.28", + "resolved": "https://verdaccio.lossless.one/@types%2frelateurl/-/relateurl-0.2.28.tgz", + "integrity": "sha1-a9p9uGU/piZD9e5p6facEaOS46Y=" + }, "@types/resolve": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", @@ -1544,11 +1561,18 @@ "@types/node": "*" } }, + "@types/uglify-js": { + "version": "3.0.4", + "resolved": "https://verdaccio.lossless.one/@types%2fuglify-js/-/uglify-js-3.0.4.tgz", + "integrity": "sha512-SudIN9TRJ+v8g5pTG8RRCqfqTMNqgWCKKd3vtynhGzkIIjxaicNAMuY5TRadJ6tzDu3Dotf3ngaMILtmOdmWEQ==", + "requires": { + "source-map": "^0.6.1" + } + }, "@types/vinyl": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.3.tgz", "integrity": "sha512-hrT6xg16CWSmndZqOTJ6BGIn2abKyTw0B58bI+7ioUoj3Sma6u8ftZ1DTI2yCaJamOVGLOnQWiPH3a74+EaqTA==", - "dev": true, "requires": { "@types/node": "*" } @@ -1561,7 +1585,7 @@ }, "@types/yargs": { "version": "12.0.12", - "resolved": "https://verdaccio.lossless.one/@types%2fyargs/-/yargs-12.0.12.tgz", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-12.0.12.tgz", "integrity": "sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw==" }, "acorn": { @@ -1576,7 +1600,7 @@ }, "ansi-regex": { "version": "3.0.0", - "resolved": "https://verdaccio.lossless.one/ansi-regex/-/ansi-regex-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansi-styles": { @@ -1597,7 +1621,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, "requires": { "sprintf-js": "~1.0.2" } @@ -1636,8 +1659,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { "version": "2.1.2", @@ -1781,9 +1803,18 @@ "unset-value": "^1.0.0" } }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://verdaccio.lossless.one/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, "camelcase": { "version": "5.3.1", - "resolved": "https://verdaccio.lossless.one/camelcase/-/camelcase-5.3.1.tgz", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "caniuse-lite": { @@ -1857,6 +1888,14 @@ } } }, + "clean-css": { + "version": "4.2.1", + "resolved": "https://verdaccio.lossless.one/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "requires": { + "source-map": "~0.6.0" + } + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://verdaccio.lossless.one/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -1872,7 +1911,7 @@ }, "cliui": { "version": "4.1.0", - "resolved": "https://verdaccio.lossless.one/cliui/-/cliui-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "requires": { "string-width": "^2.1.1", @@ -1883,26 +1922,22 @@ "clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" }, "clone-buffer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" }, "clone-stats": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" }, "cloneable-readable": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", - "dev": true, "requires": { "inherits": "^2.0.1", "process-nextick-args": "^2.0.0", @@ -1911,7 +1946,7 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://verdaccio.lossless.one/code-point-at/-/code-point-at-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "collection-visit": { @@ -1940,7 +1975,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -2016,7 +2050,7 @@ }, "cross-spawn": { "version": "6.0.5", - "resolved": "https://verdaccio.lossless.one/cross-spawn/-/cross-spawn-6.0.5.tgz", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "requires": { "nice-try": "^1.0.4", @@ -2036,7 +2070,7 @@ }, "decamelize": { "version": "1.2.0", - "resolved": "https://verdaccio.lossless.one/decamelize/-/decamelize-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { @@ -2108,8 +2142,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "diff": { "version": "3.5.0", @@ -2124,7 +2157,7 @@ }, "end-of-stream": { "version": "1.4.1", - "resolved": "https://verdaccio.lossless.one/end-of-stream/-/end-of-stream-1.4.1.tgz", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { "once": "^1.4.0" @@ -2144,8 +2177,7 @@ "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "estree-walker": { "version": "0.6.0", @@ -2159,7 +2191,7 @@ }, "execa": { "version": "1.0.0", - "resolved": "https://verdaccio.lossless.one/execa/-/execa-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "requires": { "cross-spawn": "^6.0.0", @@ -2319,7 +2351,7 @@ }, "find-up": { "version": "3.0.0", - "resolved": "https://verdaccio.lossless.one/find-up/-/find-up-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { "locate-path": "^3.0.0" @@ -2329,7 +2361,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", - "dev": true, "requires": { "readable-stream": "^2.0.2" } @@ -2343,7 +2374,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -2371,12 +2401,11 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "get-caller-file": { "version": "1.0.3", - "resolved": "https://verdaccio.lossless.one/get-caller-file/-/get-caller-file-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" }, "get-func-name": { @@ -2387,7 +2416,7 @@ }, "get-stream": { "version": "4.1.0", - "resolved": "https://verdaccio.lossless.one/get-stream/-/get-stream-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "requires": { "pump": "^3.0.0" @@ -2402,7 +2431,6 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2456,11 +2484,29 @@ } } }, + "he": { + "version": "1.2.0", + "resolved": "https://verdaccio.lossless.one/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "html-minifier": { + "version": "4.0.0", + "resolved": "https://verdaccio.lossless.one/html-minifier/-/html-minifier-4.0.0.tgz", + "integrity": "sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==", + "requires": { + "camel-case": "^3.0.0", + "clean-css": "^4.2.1", + "commander": "^2.19.0", + "he": "^1.2.0", + "param-case": "^2.1.1", + "relateurl": "^0.2.7", + "uglify-js": "^3.5.1" + } + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -2481,7 +2527,7 @@ }, "invert-kv": { "version": "2.0.0", - "resolved": "https://verdaccio.lossless.one/invert-kv/-/invert-kv-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" }, "is-accessor-descriptor": { @@ -2549,7 +2595,7 @@ }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://verdaccio.lossless.one/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-module": { @@ -2585,19 +2631,18 @@ }, "is-promise": { "version": "2.1.0", - "resolved": "https://verdaccio.lossless.one/is-promise/-/is-promise-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, "is-stream": { "version": "1.1.0", - "resolved": "https://verdaccio.lossless.one/is-stream/-/is-stream-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, "is-windows": { "version": "1.0.2", @@ -2652,7 +2697,6 @@ "version": "3.13.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -2686,7 +2730,7 @@ }, "lcid": { "version": "2.0.0", - "resolved": "https://verdaccio.lossless.one/lcid/-/lcid-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "requires": { "invert-kv": "^2.0.0" @@ -2713,7 +2757,7 @@ }, "locate-path": { "version": "3.0.0", - "resolved": "https://verdaccio.lossless.one/locate-path/-/locate-path-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { "p-locate": "^3.0.0", @@ -2741,6 +2785,11 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://verdaccio.lossless.one/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, "luxon": { "version": "1.16.0", "resolved": "https://verdaccio.lossless.one/luxon/-/luxon-1.16.0.tgz", @@ -2762,7 +2811,7 @@ }, "map-age-cleaner": { "version": "0.1.3", - "resolved": "https://verdaccio.lossless.one/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "requires": { "p-defer": "^1.0.0" @@ -2783,7 +2832,7 @@ }, "mem": { "version": "4.3.0", - "resolved": "https://verdaccio.lossless.one/mem/-/mem-4.3.0.tgz", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", "requires": { "map-age-cleaner": "^0.1.1", @@ -2822,21 +2871,19 @@ "mime-db": { "version": "1.39.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.39.0.tgz", - "integrity": "sha512-DTsrw/iWVvwHH+9Otxccdyy0Tgiil6TWK/xhfARJZF/QFhwOgZgOIvA2/VIGpM8U7Q8z5nDmdDWC6tuVMJNibw==", - "dev": true + "integrity": "sha512-DTsrw/iWVvwHH+9Otxccdyy0Tgiil6TWK/xhfARJZF/QFhwOgZgOIvA2/VIGpM8U7Q8z5nDmdDWC6tuVMJNibw==" }, "mime-types": { "version": "2.1.23", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.23.tgz", "integrity": "sha512-ROk/m+gMVSrRxTkMlaQOvFmFmYDc7sZgrjjM76abqmd2Cc5fCV7jAMA5XUccEtJ3cYiYdgixUVI+fApc2LkXlw==", - "dev": true, "requires": { "mime-db": "~1.39.0" } }, "mimic-fn": { "version": "2.1.0", - "resolved": "https://verdaccio.lossless.one/mimic-fn/-/mimic-fn-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "minimatch": { @@ -2890,12 +2937,12 @@ }, "moment": { "version": "2.24.0", - "resolved": "https://verdaccio.lossless.one/moment/-/moment-2.24.0.tgz", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" }, "moment-timezone": { "version": "0.5.25", - "resolved": "https://verdaccio.lossless.one/moment-timezone/-/moment-timezone-0.5.25.tgz", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.25.tgz", "integrity": "sha512-DgEaTyN/z0HFaVcVbSyVCUU6HeFdnNC3vE4c9cgu2dgMTvjBUBdBzWfasTBmAW45u5OIMeCJtU8yNjM22DHucw==", "requires": { "moment": ">= 2.9.0" @@ -2932,9 +2979,17 @@ }, "nice-try": { "version": "1.0.5", - "resolved": "https://verdaccio.lossless.one/nice-try/-/nice-try-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, + "no-case": { + "version": "2.3.2", + "resolved": "https://verdaccio.lossless.one/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + }, "node-releases": { "version": "1.1.17", "resolved": "https://verdaccio.lossless.one/node-releases/-/node-releases-1.1.17.tgz", @@ -2945,7 +3000,7 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://verdaccio.lossless.one/npm-run-path/-/npm-run-path-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { "path-key": "^2.0.0" @@ -2953,7 +3008,7 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://verdaccio.lossless.one/number-is-nan/-/number-is-nan-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "object-copy": { @@ -3053,7 +3108,7 @@ }, "os-locale": { "version": "3.1.0", - "resolved": "https://verdaccio.lossless.one/os-locale/-/os-locale-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "requires": { "execa": "^1.0.0", @@ -3063,22 +3118,22 @@ }, "p-defer": { "version": "1.0.0", - "resolved": "https://verdaccio.lossless.one/p-defer/-/p-defer-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" }, "p-finally": { "version": "1.0.0", - "resolved": "https://verdaccio.lossless.one/p-finally/-/p-finally-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-is-promise": { "version": "2.1.0", - "resolved": "https://verdaccio.lossless.one/p-is-promise/-/p-is-promise-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" }, "p-limit": { "version": "2.2.0", - "resolved": "https://verdaccio.lossless.one/p-limit/-/p-limit-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "requires": { "p-try": "^2.0.0" @@ -3086,7 +3141,7 @@ }, "p-locate": { "version": "3.0.0", - "resolved": "https://verdaccio.lossless.one/p-locate/-/p-locate-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { "p-limit": "^2.0.0" @@ -3094,9 +3149,17 @@ }, "p-try": { "version": "2.2.0", - "resolved": "https://verdaccio.lossless.one/p-try/-/p-try-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, + "param-case": { + "version": "2.1.1", + "resolved": "https://verdaccio.lossless.one/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "requires": { + "no-case": "^2.2.0" + } + }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", @@ -3104,18 +3167,17 @@ }, "path-exists": { "version": "3.0.0", - "resolved": "https://verdaccio.lossless.one/path-exists/-/path-exists-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "2.0.1", - "resolved": "https://verdaccio.lossless.one/path-key/-/path-key-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { @@ -3132,8 +3194,7 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "posix-character-classes": { "version": "0.1.1", @@ -3158,7 +3219,7 @@ }, "pump": { "version": "3.0.0", - "resolved": "https://verdaccio.lossless.one/pump/-/pump-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { "end-of-stream": "^1.1.0", @@ -3252,11 +3313,15 @@ } } }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://verdaccio.lossless.one/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "repeat-element": { "version": "1.1.3", @@ -3271,17 +3336,16 @@ "replace-ext": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" }, "require-directory": { "version": "2.1.1", - "resolved": "https://verdaccio.lossless.one/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://verdaccio.lossless.one/require-main-filename/-/require-main-filename-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "resolve": { @@ -3450,7 +3514,7 @@ }, "set-blocking": { "version": "2.0.0", - "resolved": "https://verdaccio.lossless.one/set-blocking/-/set-blocking-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { @@ -3476,7 +3540,7 @@ }, "shebang-command": { "version": "1.2.0", - "resolved": "https://verdaccio.lossless.one/shebang-command/-/shebang-command-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { "shebang-regex": "^1.0.0" @@ -3484,7 +3548,7 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://verdaccio.lossless.one/shebang-regex/-/shebang-regex-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "signal-exit": { @@ -3655,8 +3719,7 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "static-extend": { "version": "0.1.2", @@ -3679,7 +3742,7 @@ }, "string-width": { "version": "2.1.1", - "resolved": "https://verdaccio.lossless.one/string-width/-/string-width-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { "is-fullwidth-code-point": "^2.0.0", @@ -3696,7 +3759,7 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://verdaccio.lossless.one/strip-ansi/-/strip-ansi-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "^3.0.0" @@ -3706,7 +3769,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, "requires": { "is-utf8": "^0.2.0" } @@ -3715,7 +3777,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", - "dev": true, "requires": { "is-utf8": "^0.2.1" } @@ -3724,7 +3785,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", - "dev": true, "requires": { "first-chunk-stream": "^2.0.0", "strip-bom": "^2.0.0" @@ -3732,7 +3792,7 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://verdaccio.lossless.one/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "supports-color": { @@ -3872,6 +3932,15 @@ "integrity": "sha512-xt5RsIRCEaf6+j9AyOBgvVuAec0i92rgCaS3S+UVf5Z/vF2Hvtsw08wtUTJqp4djwznoAgjSxeCcU4r+CcDBJA==", "dev": true }, + "uglify-js": { + "version": "3.6.0", + "resolved": "https://verdaccio.lossless.one/uglify-js/-/uglify-js-3.6.0.tgz", + "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", + "requires": { + "commander": "~2.20.0", + "source-map": "~0.6.1" + } + }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://verdaccio.lossless.one/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -3969,6 +4038,11 @@ } } }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://verdaccio.lossless.one/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -3988,7 +4062,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "dev": true, "requires": { "clone": "^2.1.1", "clone-buffer": "^1.0.0", @@ -4002,7 +4075,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-3.0.0.tgz", "integrity": "sha1-sQTZ5ECf+jJfqt1SBkLQo7SIs2U=", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "pify": "^2.3.0", @@ -4029,12 +4101,12 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://verdaccio.lossless.one/which-module/-/which-module-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://verdaccio.lossless.one/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { "string-width": "^1.0.1", @@ -4043,12 +4115,12 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://verdaccio.lossless.one/ansi-regex/-/ansi-regex-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://verdaccio.lossless.one/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "^1.0.0" @@ -4056,7 +4128,7 @@ }, "string-width": { "version": "1.0.2", - "resolved": "https://verdaccio.lossless.one/string-width/-/string-width-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "^1.0.0", @@ -4066,7 +4138,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://verdaccio.lossless.one/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "^2.0.0" @@ -4081,12 +4153,12 @@ }, "y18n": { "version": "4.0.0", - "resolved": "https://verdaccio.lossless.one/y18n/-/y18n-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, "yargs": { "version": "12.0.5", - "resolved": "https://verdaccio.lossless.one/yargs/-/yargs-12.0.5.tgz", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "requires": { "cliui": "^4.0.0", @@ -4105,7 +4177,7 @@ }, "yargs-parser": { "version": "11.1.1", - "resolved": "https://verdaccio.lossless.one/yargs-parser/-/yargs-parser-11.1.1.tgz", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "requires": { "camelcase": "^5.0.0", diff --git a/package.json b/package.json index ffa5fe6..fef3681 100644 --- a/package.json +++ b/package.json @@ -33,8 +33,11 @@ "@babel/runtime": "^7.4.4", "@pushrocks/early": "^3.0.3", "@pushrocks/smartcli": "^3.0.7", + "@pushrocks/smartfile": "^7.0.2", "@pushrocks/smartlog": "^2.0.19", "@pushrocks/smartlog-destination-local": "^7.0.5", + "@types/html-minifier": "^3.5.3", + "html-minifier": "^4.0.0", "rollup": "^1.10.1", "rollup-plugin-babel": "^4.3.2", "rollup-plugin-commonjs": "^9.3.4", diff --git a/test/html/index.html b/test/html/index.html new file mode 100644 index 0000000..8099a73 --- /dev/null +++ b/test/html/index.html @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ts/tsbundle.cli.ts b/ts/tsbundle.cli.ts index a512046..0291575 100644 --- a/ts/tsbundle.cli.ts +++ b/ts/tsbundle.cli.ts @@ -1,17 +1,21 @@ import * as plugins from './tsbundle.plugins'; import { TsBundle } from './tsbundle.class.tsbundle'; +import { HtmlHandler } from './tsbundle.htmlhandler'; import { logger } from './tsbundle.logging'; export const runCli = async () => { const tsBundleCli = new plugins.smartcli.Smartcli(); tsBundleCli.standardTask().subscribe(async argvArg => { const tsbundle = new TsBundle(); + const htmlHandler = new HtmlHandler(); switch (true) { case argvArg.production: await tsbundle.buildProduction(); + await htmlHandler.minifyHtml(); break; case argvArg.test: await tsbundle.buildTest(); + await htmlHandler.copyHtml(); break; default: logger.log('error', `Can not determine build target environement. Please specify via --production or --test`) diff --git a/ts/tsbundle.htmlhandler.ts b/ts/tsbundle.htmlhandler.ts new file mode 100644 index 0000000..f3326d9 --- /dev/null +++ b/ts/tsbundle.htmlhandler.ts @@ -0,0 +1,28 @@ +import * as plugins from './tsbundle.plugins'; +import * as paths from './tsbundle.paths'; + +export class HtmlHandler { + public sourceFilePath: string = plugins.path.join(paths.htmlDir, 'index.html'); + public targetFilePath: string = plugins.path.join(paths.distWebDir, 'index.html'); + + // copies the html + public async copyHtml() { + await plugins.smartfile.fs.copy( + this.sourceFilePath, + this.targetFilePath + ); + } + + // copies and minifies the html + public async minifyHtml() { + const fileString = plugins.smartfile.fs.toStringSync(this.sourceFilePath); + const minifiedHtml = plugins.htmlMinifier.minify(fileString, { + minifyCSS: true, + minifyJS: true, + sortAttributes: true, + sortClassName: true, + removeAttributeQuotes: true + }); + plugins.smartfile.memory.toFsSync(minifiedHtml, this.targetFilePath); + } +} \ No newline at end of file diff --git a/ts/tsbundle.paths.ts b/ts/tsbundle.paths.ts new file mode 100644 index 0000000..796558a --- /dev/null +++ b/ts/tsbundle.paths.ts @@ -0,0 +1,6 @@ +import * as plugins from './tsbundle.plugins'; + +export const cwd = process.cwd(); +export const packageDir = plugins.path.join(__dirname, '../'); +export const htmlDir = plugins.path.join(cwd, './html'); +export const distWebDir = plugins.path.join(cwd, './dist_web'); diff --git a/ts/tsbundle.plugins.ts b/ts/tsbundle.plugins.ts index 87e60e5..7ad4a7a 100644 --- a/ts/tsbundle.plugins.ts +++ b/ts/tsbundle.plugins.ts @@ -1,9 +1,17 @@ +// node native +import * as path from 'path'; + +export { + path +}; + // pushrocks scope import * as smartcli from '@pushrocks/smartcli'; +import * as smartfile from '@pushrocks/smartfile'; import * as smartlog from '@pushrocks/smartlog'; import * as smartlogDestinationLocal from '@pushrocks/smartlog-destination-local'; -export { smartcli, smartlog, smartlogDestinationLocal }; +export { smartcli, smartfile, smartlog, smartlogDestinationLocal }; // third party scope import * as rollup from 'rollup'; @@ -14,6 +22,8 @@ import rollupSourceMaps from 'rollup-plugin-sourcemaps'; import { terser as rollupTerser } from 'rollup-plugin-terser'; import rollupTypescript from 'rollup-plugin-typescript2'; +import * as htmlMinifier from 'html-minifier'; + export { rollup, rollupBabel, @@ -21,5 +31,6 @@ export { rollupResolve, rollupSourceMaps, rollupTerser, - rollupTypescript + rollupTypescript, + htmlMinifier };