diff --git a/package-lock.json b/package-lock.json index 64e04f1..1948c31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,9 +36,9 @@ "dev": true }, "@types/execa": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@types/execa/-/execa-0.8.1.tgz", - "integrity": "sha512-7dsoPp7r33mdPcxukSrs9WVQgI96fiqffC7K4XvXJnSrTtJov3x1CJUgid7msJ8yCbfkmXJoKJ3HXyQIwZD0NQ==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@types/execa/-/execa-0.9.0.tgz", + "integrity": "sha512-mgfd93RhzjYBUHHV532turHC2j4l/qxsF/PbfDmprHDEUHmNZGlDn1CEsulGK3AfsPdhkWzZQT/S/k0UGhLGsA==", "dev": true, "requires": { "@types/node": "9.3.0" @@ -98,18 +98,18 @@ "dev": true }, "@types/ora": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@types/ora/-/ora-1.3.1.tgz", - "integrity": "sha512-K9nqHo2rzMfM1KJW5F8uGYx1dmWzF2bJyn1sQ5v+NXQO14p/+8FWQk3//sbBYlmftf83pV9HGIG9X2GtknIrGg==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/ora/-/ora-1.3.3.tgz", + "integrity": "sha512-XaSVRyCfnGq1xGlb6iuoxnomMXPIlZnvIIkKiGNMTCeVOg7G1Si+FA9N1lPrykPEfiRHwbuZXuTCSoYcHyjcdg==", "dev": true, "requires": { "@types/node": "9.3.0" } }, "@types/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-BIRcpFqRm64rVuuYCFzOF37I2IEP3sXhiCjy8NbzJkxqFY2CLiDLFPhh6Sph/eXPXctg05MayCEDmeKCOIUBFg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/pify/-/pify-3.0.1.tgz", + "integrity": "sha512-YinwZzicw0EexL6vRwRmELXkkzHdEePXejx7rbVMTMfAqtlT+/9lhRfcXEsuU+Jnl5Vdp0znzxKifPZUC6duFw==", "dev": true }, "@types/rimraf": { @@ -122,18 +122,6 @@ "@types/node": "9.3.0" } }, - "@types/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=", - "dev": true - }, - "@types/strip-json-comments": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", - "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", - "dev": true - }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -141,9 +129,9 @@ "dev": true }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } @@ -342,12 +330,6 @@ } } }, - "browser-stdout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", - "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", - "dev": true - }, "buffer": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz", @@ -430,13 +412,13 @@ } }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "supports-color": "5.3.0" } }, "check-error": { @@ -535,6 +517,11 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.1.0.tgz", "integrity": "sha1-8YR7FohE2RemceudFH499JfJDQY=" }, + "clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=" + }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -607,17 +594,6 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" - } - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -741,6 +717,14 @@ "type-detect": "4.0.7" } }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "1.0.3" + } + }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", @@ -847,18 +831,33 @@ "dev": true }, "execa": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.9.0.tgz", - "integrity": "sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", "dev": true, "requires": { - "cross-spawn": "5.1.0", + "cross-spawn": "6.0.5", "get-stream": "3.0.0", "is-stream": "1.1.0", "npm-run-path": "2.0.2", "p-finally": "1.0.0", "signal-exit": "3.0.2", "strip-eof": "1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "1.0.4", + "path-key": "2.0.1", + "semver": "5.5.0", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + } } }, "expand-brackets": { @@ -1169,12 +1168,13 @@ "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" }, "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", + "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", "requires": { "array-union": "1.0.2", "dir-glob": "2.0.0", + "fast-glob": "2.2.0", "glob": "7.1.2", "ignore": "3.3.7", "pify": "3.0.0", @@ -1182,9 +1182,9 @@ } }, "got": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/got/-/got-8.0.3.tgz", - "integrity": "sha512-U9GopEw0RLE8c3rbMmQ5/LtM2pLMopRxV7cVh6pNcX6ITLsH/iweqEn6GqoFxoGJHRbNZFvpFJ/knc+RITL6lg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.0.tgz", + "integrity": "sha512-kBNy/S2CGwrYgDSec5KTWGKUvupwkkTVAjIsVFF2shXO13xpZdFP4d4kxa//CLX2tN/rV0aYwK8vY6UKWGn2vQ==", "requires": { "@sindresorhus/is": "0.7.0", "cacheable-request": "2.1.4", @@ -1196,7 +1196,7 @@ "isurl": "1.0.0", "lowercase-keys": "1.0.0", "mimic-response": "1.0.0", - "p-cancelable": "0.3.0", + "p-cancelable": "0.4.0", "p-timeout": "2.0.1", "pify": "3.0.0", "safe-buffer": "5.1.1", @@ -1205,6 +1205,11 @@ "url-to-options": "1.0.1" }, "dependencies": { + "p-cancelable": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.0.tgz", + "integrity": "sha512-/AodqPe1y/GYbhSlnMjxukLGQfQIgsmjSy2CXCNB96kg4ozKvmlovuHEKICToOO/yS3LLWgrWI1dFtFfrePS1g==" + }, "p-timeout": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", @@ -1256,7 +1261,8 @@ "has-flag": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true }, "has-symbol-support-x": { "version": "1.4.1", @@ -1306,15 +1312,6 @@ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", "dev": true }, - "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", - "dev": true, - "requires": { - "parse-passwd": "1.0.0" - } - }, "http-cache-semantics": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", @@ -1543,21 +1540,19 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "requires": { + "chalk": "2.3.2" + } + }, "lowercase-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" }, - "lru-cache": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", - "dev": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, "make-dir": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", @@ -1673,15 +1668,15 @@ } }, "mocha": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.0.0.tgz", - "integrity": "sha512-ukB2dF+u4aeJjc6IGtPNnJXfeby5d4ZqySlIBT0OEyva/DrMjVm5HkQxKnHDLKEfEQBsEnwTg9HHhtPHJdTd8w==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.0.4.tgz", + "integrity": "sha512-nMOpAPFosU1B4Ix1jdhx5e3q7XO55ic5a8cgYvW27CequcEY+BabS0kUVL1Cw1V5PuVHZWeNRWFLmEPexo79VA==", "dev": true, "requires": { - "browser-stdout": "1.3.0", + "browser-stdout": "1.3.1", "commander": "2.11.0", "debug": "3.1.0", - "diff": "3.3.1", + "diff": "3.5.0", "escape-string-regexp": "1.0.5", "glob": "7.1.2", "growl": "1.10.3", @@ -1690,6 +1685,12 @@ "supports-color": "4.4.0" }, "dependencies": { + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, "commander": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", @@ -1705,6 +1706,12 @@ "ms": "2.0.0" } }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, "supports-color": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", @@ -1740,6 +1747,12 @@ "to-regex": "3.0.2" } }, + "nice-try": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", + "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", + "dev": true + }, "normalize-url": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", @@ -1882,22 +1895,29 @@ } }, "ora": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-1.4.0.tgz", - "integrity": "sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-2.0.0.tgz", + "integrity": "sha512-g+IR0nMUXq1k4nE3gkENbN4wkF0XsVZFyxznTF6CdmwQ9qeTGONGpSR9LM5//1l0TVvJoJF3MkMtJp6slUsWFg==", "requires": { - "chalk": "2.3.0", + "chalk": "2.3.2", "cli-cursor": "2.1.0", "cli-spinners": "1.1.0", - "log-symbols": "2.2.0" + "log-symbols": "2.2.0", + "strip-ansi": "4.0.0", + "wcwidth": "1.0.1" }, "dependencies": { - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "chalk": "2.3.0" + "ansi-regex": "3.0.0" } } } @@ -1933,12 +1953,6 @@ "p-finally": "1.0.0" } }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", @@ -2013,9 +2027,9 @@ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, "prettier": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.10.2.tgz", - "integrity": "sha512-TcdNoQIWFoHblurqqU6d1ysopjq7UX0oRcT/hJ8qvBAELiYWn+Ugf0AXdnzISEJ7vuhNnQ98N8jR8Sh53x4IZg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.11.1.tgz", + "integrity": "sha512-T/KD65Ot0PB97xTrG8afQ46x3oiVhnfGjGESSI9NWYcG92+OUPZKkwHqGWXH2t9jK1crnQjubECW0FuOth+hxw==", "dev": true }, "process-nextick-args": { @@ -2028,12 +2042,6 @@ "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, "query-string": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.0.1.tgz", @@ -2086,9 +2094,9 @@ } }, "resolve-dependencies": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-dependencies/-/resolve-dependencies-1.0.0.tgz", - "integrity": "sha512-e6VxH2U57siA3TGcOdFRRfa1Y+SsVmj+VJhKhPIsBHkxKVPi3r0qOiVLvPxCwyQziXu2IFX1D8NyEp2yn8P0nA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-dependencies/-/resolve-dependencies-1.1.0.tgz", + "integrity": "sha512-hKSiQoH3ybkWv2Gk3/txD7401S2eTiN00F6p1Yq1j2Pj6+Un9uceoc6/Jy8RKLPnx+98rgaTfgdvrz+tXOR8+w==", "requires": { "@calebboyd/semaphore": "1.2.0", "cherow": "1.3.0", @@ -2375,6 +2383,23 @@ "urix": "0.1.0" } }, + "source-map-support": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.4.tgz", + "integrity": "sha512-PETSPG6BjY1AHs2t64vS2aqAgu6dMIMXJULWFBGbh2Gr8nVLbCFDo6i/RMMvviIQ2h1Z8+5gQhVKSn2je9nmdg==", + "dev": true, + "requires": { + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", @@ -2486,12 +2511,6 @@ "ansi-regex": "2.1.1" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, "strip-dirs": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", @@ -2506,12 +2525,6 @@ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "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 - }, "strip-outer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.0.tgz", @@ -2521,11 +2534,18 @@ } }, "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { - "has-flag": "2.0.0" + "has-flag": "3.0.0" + }, + "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + } } }, "tar-stream": { @@ -2596,50 +2616,19 @@ } }, "ts-node": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-4.1.0.tgz", - "integrity": "sha512-xcZH12oVg9PShKhy3UHyDmuDLV3y7iKwX25aMVPt1SIXSuAfWkFiGPEkg+th8R4YKW/QCxDoW7lJdb15lx6QWg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-5.0.1.tgz", + "integrity": "sha512-XK7QmDcNHVmZkVtkiwNDWiERRHPyU8nBqZB1+iv2UhOG0q3RQ9HsZ2CMqISlFbxjrYFGfG2mX7bW4dAyxBVzUw==", "dev": true, "requires": { "arrify": "1.0.1", - "chalk": "2.3.0", + "chalk": "2.3.2", "diff": "3.3.1", "make-error": "1.3.2", "minimist": "1.2.0", "mkdirp": "0.5.1", - "source-map-support": "0.5.3", - "tsconfig": "7.0.0", - "v8flags": "3.0.1", + "source-map-support": "0.5.4", "yn": "2.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", - "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", - "dev": true, - "requires": { - "source-map": "0.6.1" - } - } - } - }, - "tsconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", - "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", - "dev": true, - "requires": { - "@types/strip-bom": "3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "3.0.0", - "strip-json-comments": "2.0.1" } }, "tslib": { @@ -2656,7 +2645,7 @@ "requires": { "babel-code-frame": "6.26.0", "builtin-modules": "1.1.1", - "chalk": "2.3.0", + "chalk": "2.3.2", "commander": "2.13.0", "diff": "3.3.1", "glob": "7.1.2", @@ -2677,9 +2666,9 @@ } }, "tslint-config-prettier": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.7.0.tgz", - "integrity": "sha512-h8fP8VfFoMOkA/fbPQP5pd4VZfD+LvjkEx48OEWmtObQw8Umj14Ja6NxR4unawE0mq5UbaRPWvn/CcnBg74F5w==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.10.0.tgz", + "integrity": "sha512-WghvT/oYVV6UGhkHyAVUjcJYmqnYJgw8nfYOmsnTeBdpNeyPfhQTwZ+qa63cni2VE/6J29VP/7ijWcuaVlVcqg==", "dev": true }, "tslint-plugin-prettier": { @@ -2716,9 +2705,9 @@ "dev": true }, "typescript": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.1.tgz", - "integrity": "sha512-bqB1yS6o9TNA9ZC/MJxM0FZzPnZdtHj0xWK/IZ5khzVqdpGul/R/EIiHRgFXlwTD7PSIaYVnGKq1QgMCu2mnqw==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz", + "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==", "dev": true }, "unbzip2-stream": { @@ -2829,13 +2818,12 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, - "v8flags": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.0.1.tgz", - "integrity": "sha1-3Oj8N5wX2fLJ6e142JzgAFKxt2s=", - "dev": true, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { - "homedir-polyfill": "1.0.1" + "defaults": "1.0.3" } }, "which": { @@ -2857,12 +2845,6 @@ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, "yauzl": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz", diff --git a/package.json b/package.json index 9cd8449..3fc485f 100644 --- a/package.json +++ b/package.json @@ -48,22 +48,22 @@ }, "devDependencies": { "@types/chai": "^4.1.2", - "@types/execa": "^0.8.1", + "@types/execa": "^0.9.0", "@types/globby": "^6.1.0", "@types/minimist": "^1.2.0", "@types/mkdirp": "^0.5.2", "@types/mocha": "^2.2.48", - "@types/ora": "^1.3.1", - "@types/pify": "3.0.0", + "@types/ora": "^1.3.3", + "@types/pify": "3.0.1", "@types/rimraf": "2.0.2", "chai": "^4.1.2", - "execa": "^0.9.0", - "mocha": "^5.0.0", - "prettier": "^1.10.2", - "ts-node": "4.1.0", + "execa": "^0.10.0", + "mocha": "^5.0.4", + "prettier": "^1.11.1", + "ts-node": "5.0.1", "tslint": "^5.9.1", - "tslint-config-prettier": "^1.7.0", + "tslint-config-prettier": "^1.10.0", "tslint-plugin-prettier": "^1.3.0", - "typescript": "2.7.1" + "typescript": "2.7.2" } } diff --git a/src/options.ts b/src/options.ts index a884767..9f6433d 100644 --- a/src/options.ts +++ b/src/options.ts @@ -4,8 +4,10 @@ import { isWindows, padRight } from './util' import { basename, extname, join, isAbsolute, relative, dirname, resolve } from 'path' import { getTarget, NexeTarget } from './target' import { EOL, homedir } from 'os' -import c from 'chalk' +import chalk from 'chalk' +import { resolveFileName } from 'resolve-dependencies' const caw = require('caw') +const c = process.platform === 'win32' ? chalk.constructor({ enabled: false }) : chalk export const version = '{{replace:0}}' @@ -150,16 +152,6 @@ function extractCliMap(match: RegExp, options: any) { ) } -function tryResolveMainFileName(cwd: string) { - let filename - try { - const file = require.resolve(cwd) - filename = basename(file).replace(extname(file), '') - } catch (_) {} - - return filename ? filename : 'nexe_' + Date.now() -} - function extractLogLevel(options: NexeOptions) { if (options.loglevel) return options.loglevel if (options.silent) return 'silent' @@ -173,14 +165,11 @@ function isName(name: string) { function extractName(options: NexeOptions) { let name = options.name + //try and use the input filename as the output filename if its not index if (!isName(name) && typeof options.input === 'string') { name = basename(options.input).replace(extname(options.input), '') } - - if (!isName(name)) { - name = tryResolveMainFileName(options.cwd) - } - + //try and use the directory as the filename if (!isName(name) && basename(options.cwd)) { name = basename(options.cwd) } @@ -189,29 +178,31 @@ function extractName(options: NexeOptions) { } function isEntryFile(filename?: string): filename is string { - return Boolean( - filename && !isAbsolute(filename) && filename !== 'node' && /\.(tsx?|jsx?)$/.test(filename) - ) + return Boolean(filename && !isAbsolute(filename)) } export function resolveEntry(input: string, cwd: string, maybeEntry?: string) { if (input === '-' || maybeEntry === '-') { return '' } + let result = null if (input) { - return resolve(cwd, input) + result = resolveFileName(cwd, input, { silent: true }) } if (isEntryFile(maybeEntry)) { - return resolve(cwd, maybeEntry) + result = resolveFileName(cwd, maybeEntry, { silent: true }) } if (!process.stdin.isTTY) { return '' } - try { - return require.resolve(cwd) - } catch (e) { - throw new Error('No entry file found') + + if (!result || !result.absPath) { + result = resolveFileName(cwd, '.', { silent: true }) } + + if (!result.absPath) throw new Error(`Entry file "${input}" not found!`) + + return result.absPath } function isCli(options?: Partial) { diff --git a/src/patches/snapshot.ts b/src/patches/snapshot.ts index 09fea8a..fabe1b6 100644 --- a/src/patches/snapshot.ts +++ b/src/patches/snapshot.ts @@ -11,9 +11,8 @@ export default async function snapshot(compiler: NexeCompiler, next: () => Promi await compiler.replaceInFileAsync( 'configure', 'def configure_v8(o):', - `def configure_v8(o):\n o['variables']['embed_script'] = '${ - snapshotFile - }'\n o['variables']['warmup_script'] = '${warmupScript || snapshotFile}'` + `def configure_v8(o):\n o['variables']['embed_script'] = '${snapshotFile}'\n o['variables']['warmup_script'] = '${warmupScript || + snapshotFile}'` ) return next() diff --git a/tasks/ci.ts b/tasks/ci.ts index 46ef2ce..5134557 100644 --- a/tasks/ci.ts +++ b/tasks/ci.ts @@ -6,9 +6,9 @@ const { env } = process export function triggerMacBuild(release: NexeTarget, branch: string) { assert.ok(env.CIRCLE_TOKEN) - const circle = `https://circleci.com/api/v1.1/project/github/nexe/nexe/tree/${ - branch - }?circle-token=${env.CIRCLE_TOKEN}` + const circle = `https://circleci.com/api/v1.1/project/github/nexe/nexe/tree/${branch}?circle-token=${ + env.CIRCLE_TOKEN + }` return got(circle, { json: true, body: { diff --git a/test/fixture/dependency.js b/test/fixture/dependency.js new file mode 100644 index 0000000..6baad56 --- /dev/null +++ b/test/fixture/dependency.js @@ -0,0 +1 @@ +module.exports = 'abc' diff --git a/test/fixture/entry.js b/test/fixture/entry.js new file mode 100644 index 0000000..dfacfb0 --- /dev/null +++ b/test/fixture/entry.js @@ -0,0 +1 @@ +console.log('hello world', require('./dependency')) diff --git a/test/fixture/package.json b/test/fixture/package.json index ca41959..2a6e98f 100644 --- a/test/fixture/package.json +++ b/test/fixture/package.json @@ -1,3 +1,3 @@ { - "main": "entry-file.js" + "main": "entry.js" } diff --git a/test/options.spec.ts b/test/options.spec.ts index fdb6bb5..39ab679 100644 --- a/test/options.spec.ts +++ b/test/options.spec.ts @@ -15,15 +15,15 @@ describe('options', () => { expect(options.input).to.equal(path.resolve('./index.js')) }) it('should resolve pathed options against cwd', () => { - const cwd = '/a/b/c' + const cwd = path.join(process.cwd(), 'test/fixture') const options = normalizeOptions({ cwd, - input: '123.js', + input: 'entry', output: 'abc', temp: './d' }) expect(options.temp).to.equal(path.resolve(cwd, './d')) - expect(options.input).to.equal(path.resolve(cwd, '123.js')) + expect(options.input).to.equal(path.resolve(cwd, 'entry.js')) expect(options.output).to.equal(path.resolve(cwd, `abc${ext}`)) }) }) @@ -36,9 +36,9 @@ describe('options', () => { }) it('should default to the input file name if not index', () => { const options = normalizeOptions({ - input: 'src/folder/app.js' + input: './test/fixture' }) - expect(options.output).to.equal(path.resolve(`./app${ext}`)) + expect(options.output).to.equal(path.resolve(`./entry${ext}`)) }) it('should default to the folder/project name if filename is index', () => { const options = normalizeOptions() diff --git a/test/target.spec.ts b/test/target.spec.ts index b6dd4e0..b176847 100644 --- a/test/target.spec.ts +++ b/test/target.spec.ts @@ -1,8 +1,8 @@ import { padRight, isWindows } from '../src/util' import { expect } from 'chai' -import { blue as b } from 'chalk' +import chalk from 'chalk' import { getTarget, NexeTarget } from '../src/target' - +const b = chalk.blue const arch = process.arch === 'ia32' ? 'x86' : process.arch describe('Targets', () => {