From 7bc3a83667e7683e6533bfc7f6ac4f61c75fd390 Mon Sep 17 00:00:00 2001 From: calebboyd Date: Tue, 20 Nov 2018 06:07:41 -0500 Subject: [PATCH] fix: node 10 cli args --- package-lock.json | 127 ++++++++++++++++++-------------- package.json | 20 ++--- src/patches/disable-node-cli.ts | 23 +++--- src/util.ts | 10 ++- 4 files changed, 102 insertions(+), 78 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6e49cd4..1ff62b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "nexe", - "version": "3.0.0-beta.7", + "version": "3.0.0-beta.9", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -37,9 +37,9 @@ } }, "@types/chai": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.5.tgz", - "integrity": "sha512-nyzJ08qQMY4umgXD6SzbLflQucEnoAf2H5iUxPX5t0euDgXDV+bFTJlEmEepM35/2l07jYHdAfP6YEndeTWM0w==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.7.tgz", + "integrity": "sha512-2Y8uPt0/jwjhQ6EiluT0XCri1Dbplr0ZxfFXUz+ye13gaqE8u5gL5ppao1JrUYr9cIip5S6MvQzBS7Kke7U9VA==", "dev": true }, "@types/events": { @@ -79,12 +79,13 @@ } }, "@types/got": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/@types/got/-/got-8.3.4.tgz", - "integrity": "sha512-0AbIQzpqQafYPFg26nwg5PfNgPLYwHeTP6z5F1u+5oypLIdpx34o5r8wYTTj3X3YYF2yPHtZPO/KYwlI8Nu/hQ==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@types/got/-/got-9.2.0.tgz", + "integrity": "sha512-6aWDCt7AO0rhQSjnk+aLFIPfStFH1tMNQ9KLLfOT9SctmjOEndrqoo5Bw/YEIFYY2QRy744D/qUc2F3a3+mLsw==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "*", + "@types/tough-cookie": "*" } }, "@types/minimatch": { @@ -160,6 +161,12 @@ "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", "dev": true }, + "@types/tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-Set5ZdrAaKI/qHdFlVMgm/GsAv/wkXhSTuZFkJ+JI7HK+wIkIlOaUXSXieIvJ0+OvGIqtREFoE+NHJtEq0gtEw==", + "dev": true + }, "acorn": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz", @@ -525,17 +532,17 @@ } }, "chai": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", - "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" + "pathval": "^1.1.0", + "type-detect": "^4.0.5" } }, "chalk": { @@ -972,9 +979,9 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint-plugin-prettier": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.2.tgz", - "integrity": "sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz", + "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", "dev": true, "requires": { "fast-diff": "^1.1.1", @@ -1147,9 +1154,9 @@ } }, "fast-diff": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", - "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, "fast-glob": { @@ -1329,34 +1336,35 @@ } }, "got": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/got/-/got-9.2.2.tgz", - "integrity": "sha512-XLXmtO1QxLuzj6t4JBClWD1NI/bMvsR9utYl0yyPg49eUJjqU7HaQhPDvSVGwYoSbAqsRfe5aNZXHl1Zctzwmw==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-9.3.2.tgz", + "integrity": "sha512-OyKOUg71IKvwb8Uj0KP6EN3+qVVvXmYsFznU1fnwUnKtDbZnwSlAi7muNlu4HhBfN9dImtlgg9e7H0g5qVdaeQ==", "requires": { - "@sindresorhus/is": "^0.11.0", + "@sindresorhus/is": "^0.12.0", "@szmarczak/http-timer": "^1.1.0", - "cacheable-request": "^5.0.0", + "cacheable-request": "^5.1.0", "decompress-response": "^3.3.0", "duplexer3": "^0.1.4", - "get-stream": "^4.0.0", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", "mimic-response": "^1.0.1", - "p-cancelable": "^0.5.0", + "p-cancelable": "^1.0.0", "to-readable-stream": "^1.0.0", "url-parse-lax": "^3.0.0" }, "dependencies": { "@sindresorhus/is": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.11.0.tgz", - "integrity": "sha512-i5Zh5+3QARyXtzq3Bd2Lg3aBRFLcgYbNoap3Hyu1uRN8X+D+0JMqqc4uk4XjhNxfVdCnL8WHUA2wxa33QCC50w==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.12.0.tgz", + "integrity": "sha512-9ve22cGrAKlSRvi8Vb2JIjzcaaQg79531yQHnF+hi/kOpsSj3Om8AyR1wcHrgl0u7U3vYQ7gmF5erZzOp4+51Q==", "requires": { "symbol-observable": "^1.2.0" } }, "cacheable-request": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-5.0.0.tgz", - "integrity": "sha512-gU53XCfodl+GZ37ecX/uLobGE+WvgE2QE3VfhX7sPf04Kc35tNPip3IfCKfqJ2e04HLuHRxFCWgGWttv8OQbfw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-5.2.0.tgz", + "integrity": "sha512-h1n0vjpFaByTvU6PiyTKk2kx4OnuV1aVUynCUd/FiKl4icpPSceowk3rHczwFEBuZvz+E1EU4KExR0MCPeQfaQ==", "requires": { "clone-response": "^1.0.2", "get-stream": "^4.0.0", @@ -1368,9 +1376,9 @@ } }, "get-stream": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.0.0.tgz", - "integrity": "sha512-FneLKMENeOR7wOK0/ZXCh+lwqtnPwkeunJjRN28LPqzGvNAhYvrTAhXv6xDm4vsJ0M7lcRbIYHQudKsSy2RtSQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "requires": { "pump": "^3.0.0" } @@ -1386,9 +1394,9 @@ "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" }, "p-cancelable": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.5.1.tgz", - "integrity": "sha512-vkOBXQgQb03QTOoMeeB5/uS2W3iafXzQLaIh7ChHjEb8DDT06sWJizhdOACL1Sittl5dFqsyumJ4rD1WUF8Isw==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.0.0.tgz", + "integrity": "sha512-USgPoaC6tkTGlS831CxsVdmZmyb8tR1D+hStI84MyckLOzfJlYQUweomrwE3D8T7u5u5GVuW064LT501wHTYYA==" } } }, @@ -1718,6 +1726,12 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, "log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", @@ -2143,9 +2157,9 @@ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "pify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.0.tgz", - "integrity": "sha512-zrSP/KDf9DH3K3VePONoCstgPiYJy9z0SCatZuTpOc7YdnWIqwkWdXOuwlr4uDc7em8QZRsFWsT/685x5InjYg==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, "pinkie": { "version": "2.0.4", @@ -2171,9 +2185,9 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "prettier": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.14.3.tgz", - "integrity": "sha512-qZDVnCrnpsRJJq5nSsiHCE3BYMED2OtsI+cmzIzF1QIfqm5ALf8tEJcO27zV1gKNKRPdhjO0dNWnrzssDQ1tFg==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.15.2.tgz", + "integrity": "sha512-YgPLFFA0CdKL4Eg2IHtUSjzj/BWgszDHiNQAe0VAIBse34148whfdzLagRL+QiKS+YfK5ftB6X4v/MBw8yCoug==", "dev": true }, "process-nextick-args": { @@ -2757,18 +2771,19 @@ } }, "tslint-config-prettier": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.15.0.tgz", - "integrity": "sha512-06CgrHJxJmNYVgsmeMoa1KXzQRoOdvfkqnJth6XUkNeOz707qxN0WfxfhYwhL5kXHHbYJRby2bqAPKwThlZPhw==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.16.0.tgz", + "integrity": "sha512-zu6RAcpBtqdvhT6KpBh9kRPYATjOf9BnRi718kNqVKFjEgSE4rFrPprFju1YJrkOa3RbtbWI1ZSuLd2NBX1MDw==", "dev": true }, "tslint-plugin-prettier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tslint-plugin-prettier/-/tslint-plugin-prettier-2.0.0.tgz", - "integrity": "sha512-nA8yM+1tS9dylirSajTxxFV6jCQrIMQ0Ykl//jjRgqmwwmGp3hqodG+rtr16S/OUwyQBfoFScFDK7nuHYPd4Gw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslint-plugin-prettier/-/tslint-plugin-prettier-2.0.1.tgz", + "integrity": "sha512-4FX9JIx/1rKHIPJNfMb+ooX1gPk5Vg3vNi7+dyFYpLO+O57F4g+b/fo1+W/G0SUOkBLHB/YKScxjX/P+7ZT/Tw==", "dev": true, "requires": { "eslint-plugin-prettier": "^2.2.0", + "lines-and-columns": "^1.1.6", "tslib": "^1.7.1" } }, @@ -2796,9 +2811,9 @@ "dev": true }, "typescript": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.0.3.tgz", - "integrity": "sha512-kk80vLW9iGtjMnIv11qyxLqZm20UklzuR2tL0QAnDIygIUIemcZMxlMWudl9OOt76H3ntVzcTiddQ1/pAAJMYg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz", + "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==", "dev": true }, "uglify-es": { diff --git a/package.json b/package.json index a969e00..c34a581 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "nexe", "description": "Create a single executable out of your Node.js application", "license": "MIT", - "version": "3.0.0-beta.8", + "version": "3.0.0-beta.9", "contributors": [ "Craig Condon (http://crcn.io)", "Jared Allard ", @@ -40,20 +40,20 @@ "cherow": "^1.6.8", "download": "^7.1.0", "globby": "^8.0.1", - "got": "^9.2.2", + "got": "^9.3.2", "minimist": "^1.2.0", "mkdirp": "^0.5.1", "multistream": "^2.1.1", "ora": "^3.0.0", - "pify": "^4.0.0", + "pify": "^4.0.1", "resolve-dependencies": "^2.2.0", "rimraf": "^2.6.2" }, "devDependencies": { - "@types/chai": "^4.1.5", + "@types/chai": "^4.1.7", "@types/execa": "^0.9.0", "@types/globby": "^8.0.0", - "@types/got": "^8.3.4", + "@types/got": "^9.2.0", "@types/minimist": "^1.2.0", "@types/mkdirp": "^0.5.2", "@types/mocha": "^5.2.5", @@ -62,14 +62,14 @@ "@types/pify": "3.0.2", "@types/rimraf": "2.0.2", "@types/semver": "^5.5.0", - "chai": "^4.1.2", + "chai": "^4.2.0", "execa": "^1.0.0", "mocha": "^5.2.0", - "prettier": "^1.14.3", + "prettier": "^1.15.2", "ts-node": "^7.0.1", "tslint": "^5.11.0", - "tslint-config-prettier": "^1.15.0", - "tslint-plugin-prettier": "^2.0.0", - "typescript": "^3.0.3" + "tslint-config-prettier": "^1.16.0", + "tslint-plugin-prettier": "^2.0.1", + "typescript": "^3.1.6" } } diff --git a/src/patches/disable-node-cli.ts b/src/patches/disable-node-cli.ts index 6376fd0..65c20da 100644 --- a/src/patches/disable-node-cli.ts +++ b/src/patches/disable-node-cli.ts @@ -1,20 +1,25 @@ import { NexeCompiler } from '../compiler' +import { semverGt } from '../util' export default async function disableNodeCli(compiler: NexeCompiler, next: () => Promise) { if (compiler.options.enableNodeCli) { return next() } - const nodeccMarker = 'argv[index][0] ==' + if (semverGt(compiler.target.version, '9.99')) { + await compiler.replaceInFileAsync('src/node.cc', /(?= 8 - ? `(${nodeccMarker} (is_env ? '-' : ']'))` - : `(${nodeccMarker} ']')` - ) + await compiler.replaceInFileAsync( + 'src/node.cc', + `${nodeccMarker} '-'`, + // allow NODE_OPTIONS, introduced in 8.0 + semverGt(compiler.target.version, '7.99') + ? `(${nodeccMarker} (is_env ? '-' : ']'))` + : `(${nodeccMarker} ']')` + ) + } return next() } diff --git a/src/util.ts b/src/util.ts index 705d5d5..f517cb1 100644 --- a/src/util.ts +++ b/src/util.ts @@ -80,11 +80,15 @@ function isDirectoryAsync(path: string) { .then(x => x.isDirectory()) .catch(falseOnEnoent) } - +/** + * @param version See if this version is greather than the second one + * @param operand Version to compare against + */ function semverGt(version: string, operand: string) { const [cMajor, cMinor, cPatch] = version.split('.').map(Number) - const [major, minor, patch] = operand.split('.').map(Number) - + let [major, minor, patch] = operand.split('.').map(Number) + if (!minor) minor = 0 + if (!patch) patch = 0 return ( cMajor > major || (cMajor === major && cMinor > minor) ||