diff --git a/CHANGELOG.md b/CHANGELOG.md index abc32c1..376e20d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ Nexe 2.0 is a rewrite to enable some new features. These include: * Quick Builds! * Userland build patches * New Resource access - * stdin and stdout interfaces + * stdin interfaces * Opt-in bundling ### Breaking Changes diff --git a/examples/native-build/build.js b/examples/native-build/build.js index 3294adb..13a79e1 100644 --- a/examples/native-build/build.js +++ b/examples/native-build/build.js @@ -1,6 +1,5 @@ const { FuseBox } = require('fuse-box') -const nexe = '../..' -const { NativeModulePlugin } = require(nexe + '/lib/bundling/fuse') +const { NativeModulePlugin } = require('../../lib/bundling') const fuse = FuseBox.init({ homeDir: './', cache: false, @@ -18,6 +17,6 @@ const fuse = FuseBox.init({ ] }) fuse.bundle('app') - .target('electron') + .target('server') .instructions(`> index.js`) fuse.run() diff --git a/index.js b/index.js index 7435c6a..db704a7 100755 --- a/index.js +++ b/index.js @@ -5,6 +5,6 @@ module.exports = nexe if (require.main === module) { nexe.compile(nexe.argv).catch((e) => { - process.stderr.write(e.message, () => process.exit(1)) + process.stderr.write(e.stack, () => process.exit(1)) }) } diff --git a/issue_template.md b/issue_template.md index 5682bf4..a7cddd0 100644 --- a/issue_template.md +++ b/issue_template.md @@ -11,7 +11,7 @@ If this is a bug report, What are the steps to reproduce? ```

-Please also provide: +Please also provide: - Platform(OS/Version): - Host Node Version: @@ -19,4 +19,3 @@ Please also provide: - Nexe version: - Python Version: - \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 62757df..43b928a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "nexe", - "version": "2.0.0-beta.4", + "version": "2.0.0-rc.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -11,87 +11,118 @@ "dev": true }, "@types/chalk": { - "version": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", + "version": "0.4.31", + "resolved": "https://registry.npmjs.org/@types/chalk/-/chalk-0.4.31.tgz", "integrity": "sha1-ox10JBprHtu5c8822XooloNKUfk=", "dev": true }, "@types/glob": { - "version": "https://registry.npmjs.org/@types/glob/-/glob-5.0.30.tgz", - "integrity": "sha1-ECZAnFYlqGiQdGAoCNCCsoZ7ilE=", + "version": "5.0.32", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.32.tgz", + "integrity": "sha512-DMcj5b67Alb/e4KhpzyvphC5nVDHn1oCOGZao3oBddZVMH5vgI/cvdp+O/kcxZGZaPqs0ZLAsK4YrjbtZHO05g==", "dev": true, "requires": { - "@types/minimatch": "https://registry.npmjs.org/@types/minimatch/-/minimatch-2.0.29.tgz", - "@types/node": "https://registry.npmjs.org/@types/node/-/node-6.0.79.tgz" + "@types/minimatch": "3.0.1", + "@types/node": "8.0.25" } }, "@types/globby": { - "version": "https://registry.npmjs.org/@types/globby/-/globby-0.6.0.tgz", - "integrity": "sha1-OPFRBQH/lkB81gKTTxsujxy6H/g=", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/globby/-/globby-0.6.0.tgz", + "integrity": "sha512-EZellBZNOrvIre0bkGJdx+uDohIU8ICMsz8DCtxxJOPhP+R4uOREmHk9rbKlKaVGM/ol552yzZYKvzLEhz148g==", "dev": true, "requires": { - "@types/glob": "https://registry.npmjs.org/@types/glob/-/glob-5.0.30.tgz" + "@types/glob": "5.0.32" } }, "@types/minimatch": { - "version": "https://registry.npmjs.org/@types/minimatch/-/minimatch-2.0.29.tgz", - "integrity": "sha1-UALhT3Xi1x5WQoHfBDHIwbSio2o=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.1.tgz", + "integrity": "sha512-rUO/jz10KRSyA9SHoCWQ8WX9BICyj5jZYu1/ucKEJKb4KzLZCKMURdYbadP157Q6Zl1x0vHsrU+Z/O0XlhYQDw==", "dev": true }, "@types/minimist": { - "version": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=", "dev": true }, "@types/mkdirp": { - "version": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.3.29.tgz", + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.3.29.tgz", "integrity": "sha1-fyrX7FX5FEgvybHsS7GuYCjUYGY=", "dev": true }, "@types/node": { - "version": "https://registry.npmjs.org/@types/node/-/node-6.0.79.tgz", - "integrity": "sha1-Xv59Sm2MRTx+nq9V2TH0oi+sUWk=", + "version": "8.0.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.25.tgz", + "integrity": "sha512-zT+t9841g1HsjLtPMCYxmb1U4pcZ2TOegAKiomlmj6bIziuaEYHUavxLE9NRwdntY0vOCrgHho6OXjDX7fm/Kw==", "dev": true }, "@types/ora": { - "version": "https://registry.npmjs.org/@types/ora/-/ora-0.3.31.tgz", - "integrity": "sha1-Gkvxa9YuwnZLj0Cw4vTYXCEpL4M=", + "version": "0.3.32", + "resolved": "https://registry.npmjs.org/@types/ora/-/ora-0.3.32.tgz", + "integrity": "sha512-zNE0Bmrh31dTsSKYV/y5lTFgcy5V/l6k7Zh4pGqg/G7lFGgvTMJQxSD7XhZNK0tHtP/zvNdbwMFJvtmOWvhyHQ==", "dev": true, "requires": { - "@types/node": "https://registry.npmjs.org/@types/node/-/node-6.0.79.tgz" + "@types/node": "8.0.25" } }, "@types/rimraf": { - "version": "https://registry.npmjs.org/@types/rimraf/-/rimraf-0.0.28.tgz", + "version": "0.0.28", + "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-0.0.28.tgz", "integrity": "sha1-VWJRm8eWPKyoq/fxKMrjtZTUHQY=", "dev": true }, "accepts": { - "version": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", "requires": { - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", - "negotiator": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz" + "mime-types": "2.1.16", + "negotiator": "0.6.1" } }, + "acorn": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz", + "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==" + }, "acorn-es7": { - "version": "https://registry.npmjs.org/acorn-es7/-/acorn-es7-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/acorn-es7/-/acorn-es7-0.1.0.tgz", "integrity": "sha1-Sm3kUi+qy0wxIJ4bc7XzAe0rswo=", "requires": { - "acorn": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz" + "acorn": "2.7.0" }, "dependencies": { "acorn": { - "version": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=" } } }, + "acorn-es7-plugin": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz", + "integrity": "sha1-8u4fMiipDurRJF+asZIusucdM2s=" + }, + "acorn-jsx": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.0.1.tgz", + "integrity": "sha1-raWgFXNyeiN3dM5iVWTQeeyd4So=", + "requires": { + "acorn": "5.1.1" + } + }, "ajax-request": { - "version": "https://registry.npmjs.org/ajax-request/-/ajax-request-1.2.3.tgz", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/ajax-request/-/ajax-request-1.2.3.tgz", "integrity": "sha1-mfy+wdbSeS+F+pSVNTMr0U9fN5A=", "requires": { - "file-system": "https://registry.npmjs.org/file-system/-/file-system-2.2.2.tgz", - "utils-extend": "https://registry.npmjs.org/utils-extend/-/utils-extend-1.0.8.tgz" + "file-system": "2.2.2", + "utils-extend": "1.0.8" } }, "ajv": { @@ -104,14 +135,21 @@ } }, "amdefine": { - "version": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "optional": true }, "ansi": { - "version": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=" }, + "ansi-escapes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz", + "integrity": "sha1-W65SvkJIeN2Xg+iRDj/Cki6DyBs=" + }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -137,7 +175,8 @@ "integrity": "sha1-2yGZT8ctdCygDpkEwV2RQU5Qjc0=" }, "app-root-path": { - "version": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz", "integrity": "sha1-zWLc+OT9WkF+/GZNLlsQZTxlG0Y=" }, "arr-diff": { @@ -154,7 +193,8 @@ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "array-flatten": { - "version": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-union": { @@ -175,12 +215,20 @@ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, "asn1": { - "version": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" }, "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" }, "async-each": { @@ -189,15 +237,18 @@ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" }, "asynckit": { - "version": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "aws-sign2": { - "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" }, "aws4": { - "version": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" }, "babel-polyfill": { @@ -205,18 +256,25 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=", "requires": { - "babel-runtime": "6.25.0", + "babel-runtime": "6.26.0", "core-js": "2.5.0", "regenerator-runtime": "0.10.5" } }, "babel-runtime": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz", - "integrity": "sha1-M7mOql1IK7AajRqmtDetKwGuxBw=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { "core-js": "2.5.0", - "regenerator-runtime": "0.10.5" + "regenerator-runtime": "0.11.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==" + } } }, "balanced-match": { @@ -225,11 +283,12 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base64-img": { - "version": "https://registry.npmjs.org/base64-img/-/base64-img-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/base64-img/-/base64-img-1.0.3.tgz", "integrity": "sha1-qMAoSQAEcQNCHh+eAhQBEzOGaAY=", "requires": { - "ajax-request": "https://registry.npmjs.org/ajax-request/-/ajax-request-1.2.3.tgz", - "file-system": "https://registry.npmjs.org/file-system/-/file-system-2.2.2.tgz" + "ajax-request": "1.2.3", + "file-system": "2.2.2" } }, "base64-js": { @@ -238,17 +297,18 @@ "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=" }, "bcrypt-pbkdf": { - "version": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + "tweetnacl": "0.14.5" } }, "binary-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.9.0.tgz", - "integrity": "sha1-ZlBsFs5vTWkopbPNajPKQelB43s=" + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", + "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=" }, "bl": { "version": "1.2.1", @@ -264,10 +324,11 @@ "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" }, "boom": { - "version": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + "hoek": "2.16.3" } }, "brace-expansion": { @@ -311,7 +372,8 @@ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, "caseless": { - "version": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "caw": { @@ -326,7 +388,8 @@ } }, "chain-able": { - "version": "https://registry.npmjs.org/chain-able/-/chain-able-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chain-able/-/chain-able-1.0.1.tgz", "integrity": "sha1-tIrJvcGPIZLscwq8ZmCfkKq1YF8=" }, "chalk": { @@ -348,6 +411,7 @@ "requires": { "anymatch": "1.3.2", "async-each": "1.0.1", + "fsevents": "1.1.2", "glob-parent": "2.0.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", @@ -356,6 +420,11 @@ "readdirp": "2.1.0" } }, + "chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -369,27 +438,35 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.0.0.tgz", "integrity": "sha1-75h+09SDkaw9q5GAtAanQhgNbmo=" }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "color-convert": { - "version": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", "requires": { - "color-name": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "color-name": "1.1.3" } }, "color-name": { - "version": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "combined-stream": { - "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { - "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + "delayed-stream": "1.0.0" } }, "commander": { @@ -406,10 +483,11 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-with-sourcemaps": { - "version": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.4.tgz", "integrity": "sha1-9Vs74q60dgGxCi1SWcz7cP0vHdY=", "requires": { - "source-map": "0.5.6" + "source-map": "0.5.7" } }, "config-chain": { @@ -427,15 +505,18 @@ "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" }, "content-type": { - "version": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=" }, "cookie": { - "version": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, "cookie-signature": { - "version": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "core-js": { @@ -449,21 +530,24 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cryptiles": { - "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" + "boom": "2.10.1" } }, "dashdash": { - "version": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + "assert-plus": "1.0.0" }, "dependencies": { "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" } } @@ -472,7 +556,6 @@ "version": "2.6.8", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dev": true, "requires": { "ms": "2.0.0" } @@ -483,7 +566,7 @@ "integrity": "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=", "requires": { "decompress-tar": "4.1.1", - "decompress-tarbz2": "4.1.0", + "decompress-tarbz2": "4.1.1", "decompress-targz": "4.1.1", "decompress-unzip": "4.0.1", "graceful-fs": "4.1.11", @@ -518,27 +601,21 @@ } }, "decompress-tarbz2": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.0.tgz", - "integrity": "sha1-+6tY1d5z8/0hPKw68cGDNPUcuJE=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", "requires": { "decompress-tar": "4.1.1", - "file-type": "3.9.0", + "file-type": "6.1.0", "is-stream": "1.1.0", - "pify": "2.3.0", "seek-bzip": "1.0.5", "unbzip2-stream": "1.2.5" }, "dependencies": { "file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.1.0.tgz", + "integrity": "sha1-Wn26mBOPoKvsevxD5amgsqrHKfE=" } } }, @@ -590,15 +667,18 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "delayed-stream": { - "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "depd": { - "version": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" }, "destroy": { - "version": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, "diff": { @@ -631,26 +711,30 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "ecc-jsbn": { - "version": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + "jsbn": "0.1.1" } }, "ee-first": { - "version": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "encodeurl": { - "version": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" }, "encoding": { - "version": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz" + "iconv-lite": "0.4.18" } }, "end-of-stream": { @@ -670,7 +754,8 @@ } }, "escape-html": { - "version": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, "escape-string-regexp": { @@ -679,48 +764,54 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", "requires": { - "esprima": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "esprima": "2.7.3", + "estraverse": "1.9.3", "esutils": "2.0.2", "optionator": "0.8.2", - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz" + "source-map": "0.2.0" }, "dependencies": { - "esprima": { - "version": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" - }, - "estraverse": { - "version": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=" - }, "source-map": { - "version": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", "optional": true, "requires": { - "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" + "amdefine": "1.0.1" } } } }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" + }, + "estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=" + }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "etag": { - "version": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=" }, "exec-sh": { - "version": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.0.tgz", "integrity": "sha1-FPdd4/INKG75MwmbLOUKkDWc7xA=", "requires": { - "merge": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz" + "merge": "1.2.0" } }, "expand-brackets": { @@ -740,53 +831,38 @@ } }, "express": { - "version": "https://registry.npmjs.org/express/-/express-4.15.3.tgz", - "integrity": "sha1-urZdDwOqgMNYQIly/HAPkWlEtmI=", + "version": "4.15.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.15.4.tgz", + "integrity": "sha1-Ay4iU0ic+PzgJma+yj0R7XotrtE=", "requires": { - "accepts": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "array-flatten": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "accepts": "1.3.4", + "array-flatten": "1.1.1", "content-disposition": "0.5.2", - "content-type": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "cookie": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "cookie-signature": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "etag": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", - "finalhandler": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", - "fresh": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", - "merge-descriptors": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "methods": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "path-to-regexp": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "proxy-addr": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "range-parser": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "send": "https://registry.npmjs.org/send/-/send-0.15.3.tgz", - "serve-static": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.3.tgz", - "setprototypeof": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "type-is": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "utils-merge": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "vary": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz" - }, - "dependencies": { - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - } + "content-type": "1.0.2", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.8", + "depd": "1.1.1", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.0", + "finalhandler": "1.0.4", + "fresh": "0.5.0", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.1", + "path-to-regexp": "0.1.7", + "proxy-addr": "1.1.5", + "qs": "6.5.0", + "range-parser": "1.2.0", + "send": "0.15.4", + "serve-static": "1.12.4", + "setprototypeof": "1.0.3", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.0", + "vary": "1.1.1" } }, "ext-list": { @@ -794,7 +870,7 @@ "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", "requires": { - "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz" + "mime-db": "1.29.0" } }, "ext-name": { @@ -807,16 +883,18 @@ } }, "extend": { - "version": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, "external-editor": { - "version": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz", "integrity": "sha1-HtkZnanL/i7y96MbL96LDRI2iXI=", "requires": { - "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", - "jschardet": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.0.tgz", - "tmp": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz" + "iconv-lite": "0.4.18", + "jschardet": "1.5.1", + "tmp": "0.0.31" } }, "extglob": { @@ -828,8 +906,9 @@ } }, "extsprintf": { - "version": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-levenshtein": { "version": "2.0.6", @@ -844,19 +923,29 @@ "pend": "1.2.0" } }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "1.0.5" + } + }, "file-match": { - "version": "https://registry.npmjs.org/file-match/-/file-match-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/file-match/-/file-match-1.0.2.tgz", "integrity": "sha1-ycrSZdLIrfOoFHWw30dYWQafrvc=", "requires": { - "utils-extend": "https://registry.npmjs.org/utils-extend/-/utils-extend-1.0.8.tgz" + "utils-extend": "1.0.8" } }, "file-system": { - "version": "https://registry.npmjs.org/file-system/-/file-system-2.2.2.tgz", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/file-system/-/file-system-2.2.2.tgz", "integrity": "sha1-fWWDPjojR9zZVqgTxncVPtPt2Yc=", "requires": { - "file-match": "https://registry.npmjs.org/file-match/-/file-match-1.0.2.tgz", - "utils-extend": "https://registry.npmjs.org/utils-extend/-/utils-extend-1.0.8.tgz" + "file-match": "1.0.2", + "utils-extend": "1.0.8" } }, "file-type": { @@ -897,39 +986,25 @@ } }, "finalhandler": { - "version": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", - "integrity": "sha1-70fneVDpmXgOhgIqVg4yF+DQzIk=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.4.tgz", + "integrity": "sha512-16l/r8RgzlXKmFOhZpHBztvye+lAhC5SU7hXavnerC9UfZqZxxXl3BzL8MhffPT3kF61lj9Oav2LKEzh0ei7tg==", "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "unpipe": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - }, - "dependencies": { - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - } + "debug": "2.6.8", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.1", + "statuses": "1.3.1", + "unpipe": "1.0.0" } }, "fliplog": { - "version": "https://registry.npmjs.org/fliplog/-/fliplog-0.3.13.tgz", - "integrity": "sha1-3Q14boIYIqricuDdyEASWWqWFUw=", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/fliplog/-/fliplog-0.3.13.tgz", + "integrity": "sha512-R504CdX+mdhMYpmyrdiQ9PW6ncAyZnxyeA85fS1/P/Y9qmbMiQsqt6QzsYhq5kbqMb84PibVOcS1oz98GJl6EQ==", "requires": { - "chain-able": "https://registry.npmjs.org/chain-able/-/chain-able-1.0.1.tgz" + "chain-able": "1.0.1" } }, "for-in": { @@ -946,32 +1021,37 @@ } }, "forever-agent": { - "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { - "version": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "requires": { - "asynckit": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz" + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.16" } }, "forwarded": { - "version": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=" }, "fresh": { - "version": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=" }, "fs-extra": { - "version": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", "requires": { "graceful-fs": "4.1.11", - "jsonfile": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz" + "jsonfile": "2.4.0" } }, "fs.realpath": { @@ -979,176 +1059,837 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "fuse-box": { - "version": "https://registry.npmjs.org/fuse-box/-/fuse-box-2.2.1.tgz", - "integrity": "sha1-RE3DvQGke4BEIQ1zRElcrpLTrzo=", + "fsevents": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", + "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", + "optional": true, "requires": { - "acorn": "5.1.1", - "acorn-es7": "https://registry.npmjs.org/acorn-es7/-/acorn-es7-0.1.0.tgz", - "acorn-jsx": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.0.1.tgz", - "ansi": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", - "app-root-path": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz", - "base64-img": "https://registry.npmjs.org/base64-img/-/base64-img-1.0.3.tgz", - "base64-js": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "chokidar": "1.7.0", - "concat-with-sourcemaps": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.4.tgz", - "escodegen": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "express": "https://registry.npmjs.org/express/-/express-4.15.3.tgz", - "fliplog": "https://registry.npmjs.org/fliplog/-/fliplog-0.3.13.tgz", - "fs-extra": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", - "fuse-tools": "https://registry.npmjs.org/fuse-tools/-/fuse-tools-1.0.5.tgz", - "glob": "7.1.2", - "ieee754": "1.1.8", - "inquirer": "https://registry.npmjs.org/inquirer/-/inquirer-3.2.1.tgz", - "lego-api": "https://registry.npmjs.org/lego-api/-/lego-api-1.0.8.tgz", - "mustache": "https://registry.npmjs.org/mustache/-/mustache-2.3.0.tgz", - "opencollective": "https://registry.npmjs.org/opencollective/-/opencollective-1.0.3.tgz", - "postcss": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz", - "pretty-time": "https://registry.npmjs.org/pretty-time/-/pretty-time-0.2.0.tgz", - "prettysize": "https://registry.npmjs.org/prettysize/-/prettysize-0.0.3.tgz", - "realm-utils": "https://registry.npmjs.org/realm-utils/-/realm-utils-1.0.8.tgz", - "request": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "shorthash": "https://registry.npmjs.org/shorthash/-/shorthash-0.0.2.tgz", - "watch": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz", - "ws": "https://registry.npmjs.org/ws/-/ws-1.1.4.tgz" + "nan": "2.6.2", + "node-pre-gyp": "0.6.36" }, "dependencies": { - "acorn": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz", - "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==" + "abbrev": { + "version": "1.1.0", + "bundled": true, + "optional": true }, - "acorn-jsx": { - "version": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.0.1.tgz", - "integrity": "sha1-raWgFXNyeiN3dM5iVWTQeeyd4So=", + "ajv": { + "version": "4.11.8", + "bundled": true, + "optional": true, "requires": { - "acorn": "5.1.1" + "co": "4.6.0", + "json-stable-stringify": "1.0.1" } }, - "ansi-escapes": { - "version": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz", - "integrity": "sha1-W65SvkJIeN2Xg+iRDj/Cki6DyBs=" - }, "ansi-regex": { - "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "version": "2.1.1", + "bundled": true }, - "ansi-styles": { - "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha1-wVm41b4PnlpvNG2rlPFs4CIWG4g=", + "aproba": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, "requires": { - "color-convert": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz" + "delegates": "1.0.0", + "readable-stream": "2.2.9" } }, - "base64-js": { - "version": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha1-qRlH2h9KUW6jjltOwOw3c2deCIY=" + "asn1": { + "version": "0.2.3", + "bundled": true, + "optional": true }, - "chalk": { - "version": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", - "integrity": "sha1-2+xJQ20q4V9TYRTnbRRlbNvA9E0=", + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "optional": true, "requires": { - "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "escape-string-regexp": "1.0.5", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz" + "tweetnacl": "0.14.5" } }, - "figures": { - "version": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "block-stream": { + "version": "0.0.9", + "bundled": true, "requires": { - "escape-string-regexp": "1.0.5" + "inherits": "2.0.3" } }, - "has-flag": { - "version": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" - }, - "inquirer": { - "version": "https://registry.npmjs.org/inquirer/-/inquirer-3.2.1.tgz", - "integrity": "sha1-Bs6w9UD0XKVIwX1oQJWYeCZfoXU=", + "boom": { + "version": "2.10.1", + "bundled": true, "requires": { - "ansi-escapes": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz", - "chalk": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", - "cli-cursor": "2.1.0", - "cli-width": "2.1.0", - "external-editor": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz", - "figures": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "lodash": "4.17.4", - "mute-stream": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "run-async": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "rx-lite": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "rx-lite-aggregates": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "string-width": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "through": "2.3.8" + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "optional": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" }, "dependencies": { - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "2.0.0" - } - }, - "cli-width": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", - "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=" - }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true } } }, - "is-fullwidth-code-point": { - "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "mute-stream": { - "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "run-async": { - "version": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "debug": { + "version": "2.6.8", + "bundled": true, + "optional": true, "requires": { - "is-promise": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz" + "ms": "2.0.0" } }, - "rx-lite": { - "version": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "optional": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.36", + "bundled": true, + "optional": true, + "requires": { + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "optional": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } }, "string-width": { - "version": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "version": "1.0.2", + "bundled": true, "requires": { - "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "optional": true + }, "strip-ansi": { - "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "3.0.1", + "bundled": true, "requires": { - "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" + "ansi-regex": "2.1.1" } }, - "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", - "integrity": "sha1-ZaS7JjHpDgJCDbpVVMN1pHVLuDY=", + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, "requires": { - "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz" + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + } + } + }, + "fuse-box": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/fuse-box/-/fuse-box-2.2.2.tgz", + "integrity": "sha1-7sPExJSW2/ygjUMXmhifv7zmf9o=", + "requires": { + "acorn": "5.1.1", + "acorn-es7": "0.1.0", + "acorn-es7-plugin": "1.1.7", + "acorn-jsx": "4.0.1", + "ansi": "0.3.1", + "app-root-path": "2.0.1", + "base64-img": "1.0.3", + "base64-js": "1.2.1", + "chokidar": "1.7.0", + "concat-with-sourcemaps": "1.0.4", + "escodegen": "1.8.1", + "express": "4.15.4", + "fliplog": "0.3.13", + "fs-extra": "2.1.2", + "fuse-tools": "1.0.5", + "glob": "7.1.2", + "ieee754": "1.1.8", + "inquirer": "3.2.2", + "lego-api": "1.0.8", + "mustache": "2.3.0", + "opencollective": "1.0.3", + "postcss": "6.0.9", + "pretty-time": "0.2.0", + "prettysize": "0.0.3", + "realm-utils": "1.0.8", + "request": "2.81.0", + "shorthash": "0.0.2", + "watch": "1.0.2", + "ws": "1.1.4" + }, + "dependencies": { + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" } } }, "fuse-tools": { - "version": "https://registry.npmjs.org/fuse-tools/-/fuse-tools-1.0.5.tgz", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fuse-tools/-/fuse-tools-1.0.5.tgz", "integrity": "sha1-mMn1EzNIqakTV8v4v1cXH6bNYUo=" }, "get-proxy": { @@ -1165,14 +1906,16 @@ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "getpass": { - "version": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + "assert-plus": "1.0.0" }, "dependencies": { "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" } } @@ -1264,15 +2007,17 @@ "dev": true }, "har-schema": { - "version": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" }, "har-validator": { - "version": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "requires": { "ajv": "4.11.8", - "har-schema": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz" + "har-schema": "1.0.5" } }, "has-ansi": { @@ -1284,10 +2029,9 @@ } }, "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" }, "has-symbol-support-x": { "version": "1.4.0", @@ -1303,47 +2047,46 @@ } }, "hawk": { - "version": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "requires": { - "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "sntp": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" } }, "hoek": { - "version": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" }, "http-errors": { - "version": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", - "integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc=", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", "requires": { - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", + "depd": "1.1.1", "inherits": "2.0.3", - "setprototypeof": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz" - }, - "dependencies": { - "depd": { - "version": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=" - } + "setprototypeof": "1.0.3", + "statuses": "1.3.1" } }, "http-signature": { - "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "jsprim": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "sshpk": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz" + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" } }, "iconv-lite": { - "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", - "integrity": "sha1-I9hlaxaq5nQqwpcy6o8DNqR4nPI=" + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", + "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==" }, "ieee754": { "version": "1.1.8", @@ -1369,8 +2112,71 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" }, + "inquirer": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.2.2.tgz", + "integrity": "sha512-bTKLzEHJVATimZO/YFdLrom0lRx1BHfRYskFHfIMVkGdp8+dIZaxuU+4yrsS1lcu6YWywVQVVsfvdwESzbeqHw==", + "requires": { + "ansi-escapes": "2.0.0", + "chalk": "2.1.0", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.0.4", + "figures": "2.0.0", + "lodash": "4.17.4", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.2.1" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", + "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, "ipaddr.js": { - "version": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz", "integrity": "sha1-KWrKh4qCGBbluF0KKFqZvP9FgvA=" }, "is-binary-path": { @@ -1378,7 +2184,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "1.9.0" + "binary-extensions": "1.10.0" } }, "is-buffer": { @@ -1409,6 +2215,11 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", @@ -1451,7 +2262,8 @@ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" }, "is-promise": { - "version": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, "is-retry-allowed": { @@ -1465,7 +2277,8 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-typedarray": { - "version": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "isarray": { @@ -1482,7 +2295,8 @@ } }, "isstream": { - "version": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "isurl": { @@ -1495,16 +2309,19 @@ } }, "jsbn": { - "version": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, "jschardet": { - "version": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.0.tgz", - "integrity": "sha1-ph8xAwalpxGI4bGs0IrdPPuwix4=" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.1.tgz", + "integrity": "sha512-vE2hT1D0HLZCLLclfBSfkfTTedhVj0fubHpJBHKwwUWX0nSbhPAfk+SG9rTX95BYNmau8rGFfCeaT6T5OW1C2A==" }, "json-schema": { - "version": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-stable-stringify": { @@ -1516,7 +2333,8 @@ } }, "json-stringify-safe": { - "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json3": { @@ -1526,7 +2344,8 @@ "dev": true }, "jsonfile": { - "version": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "requires": { "graceful-fs": "4.1.11" @@ -1538,17 +2357,19 @@ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, "jsprim": { - "version": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "json-schema": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "verror": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" }, "dependencies": { "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" } } @@ -1562,15 +2383,17 @@ } }, "lego-api": { - "version": "https://registry.npmjs.org/lego-api/-/lego-api-1.0.8.tgz", - "integrity": "sha1-Xia+cmxeEdVA+J58axq/jFg0vQE=", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/lego-api/-/lego-api-1.0.8.tgz", + "integrity": "sha512-pZD0mf32+RL1bUMJztRcXiNBB1gE8gd/h4MDLWdZp7vaMZyjPiYK/zNpNNGoJvmoa7D/wf9dll+5z7pDObdLFg==", "requires": { - "chain-able": "https://registry.npmjs.org/chain-able/-/chain-able-3.0.0.tgz" + "chain-able": "3.0.0" }, "dependencies": { "chain-able": { - "version": "https://registry.npmjs.org/chain-able/-/chain-able-3.0.0.tgz", - "integrity": "sha1-3P/osE89ohCUGiOEO8EzK7KIyp8=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chain-able/-/chain-able-3.0.0.tgz", + "integrity": "sha512-26MoELhta86n7gCsE2T1hGRyncZvPjFXTkB/DEp4+i/EJVSxXQNwXMDZZb2+SWcbPuow18wQtztaW7GXOel9DA==" } } }, @@ -1583,6 +2406,11 @@ "type-check": "0.3.2" } }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, "lodash._baseassign": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", @@ -1679,8 +2507,15 @@ } } }, + "make-error": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz", + "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=", + "dev": true + }, "media-typer": { - "version": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, "memory-fs": { @@ -1693,15 +2528,18 @@ } }, "merge": { - "version": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=" }, "merge-descriptors": { - "version": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, "methods": { - "version": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "micromatch": { @@ -1725,18 +2563,21 @@ } }, "mime": { - "version": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" }, "mime-db": { - "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=" }, "mime-types": { - "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", "requires": { - "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz" + "mime-db": "1.29.0" } }, "mimic-fn": { @@ -1835,6 +2676,12 @@ "path-is-absolute": "1.0.1" } }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, "supports-color": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", @@ -1849,19 +2696,32 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "mustache": { - "version": "https://registry.npmjs.org/mustache/-/mustache-2.3.0.tgz", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.0.tgz", "integrity": "sha1-QCj3d4sXcIpImTCm5SrDvKDaQdA=" }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "nan": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", + "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", + "optional": true + }, "nanoseconds": { - "version": "https://registry.npmjs.org/nanoseconds/-/nanoseconds-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/nanoseconds/-/nanoseconds-0.1.0.tgz", "integrity": "sha1-aew5/NAOd6s6ct4KQzQoJM15Izo=" }, "negotiator": { - "version": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, "nigel": { @@ -1881,10 +2741,11 @@ } }, "node-fetch": { - "version": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz", "integrity": "sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ=", "requires": { - "encoding": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "encoding": "0.1.12", "is-stream": "1.1.0" } }, @@ -1893,7 +2754,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.0.2" + "remove-trailing-separator": "1.1.0" } }, "npm-conf": { @@ -1906,7 +2767,8 @@ } }, "oauth-sign": { - "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" }, "object-assign": { @@ -1924,10 +2786,11 @@ } }, "on-finished": { - "version": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "requires": { - "ee-first": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + "ee-first": "1.1.1" } }, "once": { @@ -1947,108 +2810,48 @@ } }, "opencollective": { - "version": "https://registry.npmjs.org/opencollective/-/opencollective-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/opencollective/-/opencollective-1.0.3.tgz", "integrity": "sha1-ruY3K8KBRFg2kMPKja7PwSDdDvE=", "requires": { "babel-polyfill": "6.23.0", "chalk": "1.1.3", - "inquirer": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz", + "inquirer": "3.0.6", "minimist": "1.2.0", - "node-fetch": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz", - "opn": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz" + "node-fetch": "1.6.3", + "opn": "4.0.2" }, "dependencies": { - "ansi-regex": { - "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "figures": { - "version": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "requires": { - "escape-string-regexp": "1.0.5" - } + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" }, "inquirer": { - "version": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz", "integrity": "sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c=", "requires": { "ansi-escapes": "1.4.0", "chalk": "1.1.3", "cli-cursor": "2.1.0", - "cli-width": "2.1.0", - "external-editor": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz", - "figures": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "cli-width": "2.2.0", + "external-editor": "2.0.4", + "figures": "2.0.0", "lodash": "4.17.4", - "mute-stream": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "run-async": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "rx": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "string-width": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx": "4.1.0", + "string-width": "2.1.1", "strip-ansi": "3.0.1", "through": "2.3.8" - }, - "dependencies": { - "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "2.0.0" - } - }, - "cli-width": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", - "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=" - }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - } - } - }, - "is-fullwidth-code-point": { - "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "mute-stream": { - "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "run-async": { - "version": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "requires": { - "is-promise": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz" - } - }, - "string-width": { - "version": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "requires": { - "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" - }, - "dependencies": { - "strip-ansi": { - "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" - } - } } } } }, "opn": { - "version": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", "requires": { "object-assign": "4.1.1", @@ -2069,7 +2872,8 @@ } }, "options": { - "version": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" }, "ora": { @@ -2126,7 +2930,8 @@ } }, "parseurl": { - "version": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=" }, "path-is-absolute": { @@ -2135,7 +2940,8 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-to-regexp": { - "version": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "pend": { @@ -2144,7 +2950,8 @@ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "performance-now": { - "version": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" }, "pify": { @@ -2166,39 +2973,39 @@ } }, "postcss": { - "version": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz", - "integrity": "sha1-iQZ6nOixH4qEy8URfvwwQZoIV7M=", + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.9.tgz", + "integrity": "sha512-bBE2AHNEBhF23TfET6AA/lFP8ah+qHOZoFJEflFG+HgvVLdTmMOrocx/4LVVDIn3w6jUssw1q2Exk1cc9UOI8w==", "requires": { - "chalk": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", - "source-map": "0.5.6", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz" + "chalk": "2.1.0", + "source-map": "0.5.7", + "supports-color": "4.2.1" }, "dependencies": { "ansi-styles": { - "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha1-wVm41b4PnlpvNG2rlPFs4CIWG4g=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "requires": { - "color-convert": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz" + "color-convert": "1.9.0" } }, "chalk": { - "version": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", - "integrity": "sha1-2+xJQ20q4V9TYRTnbRRlbNvA9E0=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", "requires": { - "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz" + "supports-color": "4.2.1" } }, - "has-flag": { - "version": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" - }, "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", - "integrity": "sha1-ZaS7JjHpDgJCDbpVVMN1pHVLuDY=", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", + "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", "requires": { - "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz" + "has-flag": "2.0.0" } } } @@ -2219,20 +3026,23 @@ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" }, "prettier": { - "version": "https://registry.npmjs.org/prettier/-/prettier-1.4.4.tgz", - "integrity": "sha1-qNFEexTJv2fm1CDcrdEPuaT61lo=", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.5.3.tgz", + "integrity": "sha1-WdrcaDNF7GuI+IuU7Urn4do5S/4=", "dev": true }, "pretty-time": { - "version": "https://registry.npmjs.org/pretty-time/-/pretty-time-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-0.2.0.tgz", "integrity": "sha1-ejvexAScYgzXxCt/NCt01W5z104=", "requires": { "is-number": "2.1.0", - "nanoseconds": "https://registry.npmjs.org/nanoseconds/-/nanoseconds-0.1.0.tgz" + "nanoseconds": "0.1.0" } }, "prettysize": { - "version": "https://registry.npmjs.org/prettysize/-/prettysize-0.0.3.tgz", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/prettysize/-/prettysize-0.0.3.tgz", "integrity": "sha1-FK//amReWRpN3xxykZwjtBRhgaE=" }, "process-nextick-args": { @@ -2246,11 +3056,12 @@ "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" }, "proxy-addr": { - "version": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz", "integrity": "sha1-ccDuOxAt4/IC87ZPYI0XP8uhqRg=", "requires": { - "forwarded": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", - "ipaddr.js": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz" + "forwarded": "0.1.0", + "ipaddr.js": "1.4.0" } }, "prr": { @@ -2259,12 +3070,14 @@ "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=" }, "punycode": { - "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, "qs": { - "version": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.0.tgz", + "integrity": "sha512-fjVFjW9yhqMhVGwRExCXLhJKrLlkYSaxNWdyc9rmHlrVZbk35YHH312dFd7191uQeXkI3mKLZTIbSvIeFwFemg==" }, "randomatic": { "version": "1.1.7", @@ -2304,7 +3117,8 @@ } }, "range-parser": { - "version": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" }, "readable-stream": { @@ -2333,15 +3147,17 @@ } }, "realm-utils": { - "version": "https://registry.npmjs.org/realm-utils/-/realm-utils-1.0.8.tgz", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/realm-utils/-/realm-utils-1.0.8.tgz", "integrity": "sha1-f4yHwwzuDNKV7PcyoEnMHXUC2o8=", "requires": { - "app-root-path": "https://registry.npmjs.org/app-root-path/-/app-root-path-1.4.0.tgz", + "app-root-path": "1.4.0", "mkdirp": "0.5.1" }, "dependencies": { "app-root-path": { - "version": "https://registry.npmjs.org/app-root-path/-/app-root-path-1.4.0.tgz", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-1.4.0.tgz", "integrity": "sha1-YzXYZclkDQ+tmQBOWnkjIjjpLfo=" } } @@ -2361,9 +3177,9 @@ } }, "remove-trailing-separator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", - "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "repeat-element": { "version": "1.1.2", @@ -2376,39 +3192,38 @@ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "request": { - "version": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "requires": { - "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "aws4": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "form-data": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "har-validator": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "hawk": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "is-typedarray": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", - "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "performance-now": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.16", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", "safe-buffer": "5.1.1", - "stringstream": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz" + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" }, "dependencies": { - "tunnel-agent": { - "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "5.1.1" - } + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" } } }, @@ -2429,8 +3244,17 @@ "glob": "7.1.2" } }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "requires": { + "is-promise": "2.1.0" + } + }, "rx": { - "version": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=" }, "rx-lite": { @@ -2439,7 +3263,8 @@ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" }, "rx-lite-aggregates": { - "version": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { "rx-lite": "4.0.8" @@ -2459,46 +3284,34 @@ } }, "send": { - "version": "https://registry.npmjs.org/send/-/send-0.15.3.tgz", - "integrity": "sha1-UBP5+ZAj31DRvZiSwZ4979HVMwk=", + "version": "0.15.4", + "resolved": "https://registry.npmjs.org/send/-/send-0.15.4.tgz", + "integrity": "sha1-mF+qPihLAnPHkzZKNcZze9k5Bbk=", "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "destroy": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "etag": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", - "fresh": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", - "http-errors": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", - "mime": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "debug": "2.6.8", + "depd": "1.1.1", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.0", + "fresh": "0.5.0", + "http-errors": "1.6.2", + "mime": "1.3.4", "ms": "2.0.0", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "range-parser": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz" - }, - "dependencies": { - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" } }, "serve-static": { - "version": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.3.tgz", - "integrity": "sha1-n0uhni8wMMVH+K+ZEHg47DjVseI=", + "version": "1.12.4", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.4.tgz", + "integrity": "sha1-m2qpjutyU8Tu3Ewfb9vKYJkBqWE=", "requires": { - "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "send": "https://registry.npmjs.org/send/-/send-0.15.3.tgz" + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.1", + "send": "0.15.4" } }, "set-immediate-shim": { @@ -2507,11 +3320,13 @@ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" }, "setprototypeof": { - "version": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" }, "shorthash": { - "version": "https://registry.npmjs.org/shorthash/-/shorthash-0.0.2.tgz", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/shorthash/-/shorthash-0.0.2.tgz", "integrity": "sha1-WbJo7sveWQOLMNogK8+93rLEpOs=" }, "signal-exit": { @@ -2520,10 +3335,11 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "sntp": { - "version": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "requires": { - "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + "hoek": "2.16.3" } }, "sort-keys": { @@ -2543,34 +3359,70 @@ } }, "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-support": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.16.tgz", + "integrity": "sha512-A6vlydY7H/ljr4L2UOhDSajQdZQ6dMD7cLH0pzwcmwLyc9u8PNI4WGtnfDDzX7uzGL6c/T+ORL97Zlh+S4iOrg==", + "dev": true, + "requires": { + "source-map": "0.5.7" + } }, "sshpk": { - "version": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", "requires": { - "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "bcrypt-pbkdf": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "dashdash": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "ecc-jsbn": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "getpass": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" }, "dependencies": { "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" } } }, "statuses": { - "version": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "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": { + "ansi-regex": "3.0.0" + } + } + } + }, "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", @@ -2580,7 +3432,8 @@ } }, "stringstream": { - "version": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" }, "strip-ansi": { @@ -2591,6 +3444,12 @@ "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.0.0", "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.0.0.tgz", @@ -2599,6 +3458,12 @@ "is-natural-number": "4.0.1" } }, + "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", @@ -2613,10 +3478,11 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, "tar": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/tar/-/tar-3.1.9.tgz", - "integrity": "sha512-/Aiui1ynEeSz6rr8RhLk3Vp9BEbtYnlIauKHco1ILlP5U6W6SSUWnDtycqTPCovdnnoutKHzzCOchZqEfCcvVw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-3.2.1.tgz", + "integrity": "sha512-ZSzds1E0IqutvMU8HxjMaU8eB7urw2fGwTq88ukDOVuUIh0656l7/P7LiVPxhO5kS4flcRJQk8USG+cghQbTUQ==", "requires": { + "chownr": "1.0.1", "minipass": "2.2.1", "minizlib": "1.0.3", "mkdirp": "0.5.1", @@ -2645,17 +3511,19 @@ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "tmp": { - "version": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", "requires": { "os-tmpdir": "1.0.2" } }, "tough-cookie": { - "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", "requires": { - "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + "punycode": "1.4.1" } }, "trim-repeated": { @@ -2666,6 +3534,65 @@ "escape-string-regexp": "1.0.5" } }, + "ts-node": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-3.3.0.tgz", + "integrity": "sha1-wTxqMCTjC+EYDdUwOPwgkonUv2k=", + "dev": true, + "requires": { + "arrify": "1.0.1", + "chalk": "2.1.0", + "diff": "3.2.0", + "make-error": "1.3.0", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "source-map-support": "0.4.16", + "tsconfig": "6.0.0", + "v8flags": "3.0.0", + "yn": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.2.1" + } + }, + "supports-color": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", + "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "tsconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-6.0.0.tgz", + "integrity": "sha1-aw6DdgA9evGGT434+J3QBZ/80DI=", + "dev": true, + "requires": { + "strip-bom": "3.0.0", + "strip-json-comments": "2.0.1" + } + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -2675,7 +3602,8 @@ } }, "tweetnacl": { - "version": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, @@ -2688,20 +3616,23 @@ } }, "type-is": { - "version": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", "requires": { - "media-typer": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz" + "media-typer": "0.3.0", + "mime-types": "2.1.16" } }, "typescript": { - "version": "https://registry.npmjs.org/typescript/-/typescript-2.4.1.tgz", - "integrity": "sha1-w8yxbdqgsjFN4DHn5v7onlujRrw=", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.4.2.tgz", + "integrity": "sha1-+DlfhdRZJ2BnyYiqQYN6j4KHCEQ=", "dev": true }, "ultron": { - "version": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" }, "unbzip2-stream": { @@ -2714,7 +3645,8 @@ } }, "unpipe": { - "version": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "url-parse-lax": { @@ -2730,32 +3662,61 @@ "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "utils-extend": { - "version": "https://registry.npmjs.org/utils-extend/-/utils-extend-1.0.8.tgz", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/utils-extend/-/utils-extend-1.0.8.tgz", "integrity": "sha1-zP17ZFQPjpDuIe7Fd2nQZRyril8=" }, "utils-merge": { - "version": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" }, "uuid": { - "version": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, + "v8flags": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.0.0.tgz", + "integrity": "sha512-AGl+C+4qpeSu2g3JxCD/mGFFOs/vVZ3XREkD3ibQXEqr4Y4zgIrPWW124/IKJFHOIVFIoH8miWrLf0o84HYjwA==", + "dev": true, + "requires": { + "user-home": "1.1.1" + } }, "vary": { - "version": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz", "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=" }, "verror": { - "version": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } } }, "vise": { @@ -2774,10 +3735,11 @@ } }, "watch": { - "version": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz", "integrity": "sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=", "requires": { - "exec-sh": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.0.tgz", + "exec-sh": "0.2.0", "minimist": "1.2.0" } }, @@ -2792,11 +3754,12 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { - "version": "https://registry.npmjs.org/ws/-/ws-1.1.4.tgz", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.4.tgz", "integrity": "sha1-V/QNA2gy5fUFVmKjl8Tedu1mv2E=", "requires": { - "options": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "ultron": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz" + "options": "0.0.6", + "ultron": "1.0.2" } }, "xtend": { @@ -2817,6 +3780,12 @@ "buffer-crc32": "0.2.13", "fd-slicer": "1.0.1" } + }, + "yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "dev": true } } } diff --git a/package.json b/package.json index 35e24da..d7cf393 100644 --- a/package.json +++ b/package.json @@ -2,14 +2,14 @@ "name": "nexe", "description": "Create a single executable out of your Node.js application", "license": "MIT", - "version": "2.0.0-beta.7", + "version": "2.0.0-rc.1", "contributors": [ "Craig Condon (http://crcn.io)", "Jared Allard ", "Caleb Boyd " ], "scripts": { - "task-build-windows": "node -e \"require('.').compile({ empty: true })\"", + "task-build": "ts-node tasks/build", "log-node-version": "node -e \"console.log([process.platform, process.arch, process.version.slice(1)].join('-'))\"", "prebuild": "rimraf lib && npm run lint", "prepublish": "npm run build", @@ -55,6 +55,7 @@ "@types/rimraf": "0.0.28", "mocha": "^3.2.0", "prettier": "^1.4.4", + "ts-node": "3.3.0", "typescript": "^2.4.1" } } diff --git a/src/bundling/bindings-rewrite.ts b/src/bundling/bindings-rewrite.ts index ce821d3..4da9435 100644 --- a/src/bundling/bindings-rewrite.ts +++ b/src/bundling/bindings-rewrite.ts @@ -1,6 +1,76 @@ import * as fs from 'fs' import * as path from 'path' import * as child from 'child_process' +import { createHash } from 'crypto' + +export interface ExtractNodeModuleOptions { + [key: string]: + | { + additionalFiles: string[] + } + | true +} + +function hashName(name: string | Buffer) { + return createHash('md5').update(name).digest('hex').toString().slice(0, 8) +} + +export function embedDotNode( + options: ExtractNodeModuleOptions, + file: { contents: string; absPath: string } +) { + const contents = fs.readFileSync(file.absPath) + const module = Object.keys(options).find(x => + Boolean(~file.absPath.indexOf(path.join('node_modules', x))) + )! + const bindingName = path.basename(file.absPath) + const settings = options[module] + const moduleDir = hashName(contents) + file.contents = ` + var fs=require('fs');var path=require('path');var binding='${contents.toString( + 'base64' + )}';function mkdirp(r,t){t=t||null,r=path.resolve(r);try{fs.mkdirSync(r),t=t||r}catch(c){if("ENOENT"===c.code)t=mkdirp(path.dirname(r),t),mkdirp(r,t);else{var i;try{i=fs.statSync(r)}catch(r){throw c}if(!i.isDirectory())throw c}}return t};` + + if (settings === true) { + file.contents += ` + mkdirp('${moduleDir}'); + var bindingPath = path.join(process.cwd(), '${moduleDir}', '${bindingName}') + require('fs').writeFileSync(bindingPath, Buffer.from(binding, 'base64')) + process.dlopen(module, bindingPath) + `.trim() + return + } + + let depth = 0 + settings.additionalFiles.forEach(file => { + let ownDepth = 0 + file.split('/').forEach(x => x === '..' && ownDepth++) + depth = ownDepth > depth ? ownDepth : depth + }) + let segments = [moduleDir] + while (depth--) { + segments.push(hashName(moduleDir + depth)) + } + segments.push(bindingName) + + file.contents += ` + var cwd = process.cwd() + var bindingFileParts = ${JSON.stringify(segments)}; + var bindingFile = path.join.apply(path, [cwd].concat(bindingFileParts)); + mkdirp(path.dirname(bindingFile)); + fs.writeFileSync(bindingFile, Buffer.from(binding, 'base64')); + ${settings.additionalFiles.reduce((code, filename, i) => { + const contents = fs.readFileSync(path.join(path.dirname(file.absPath), filename)) + return (code += ` + var file${i} = '${contents.toString('base64')}'; + var filePath${i} = path.join(cwd, bindingFileParts[0], '${filename.split('../').join('')}'); + mkdirp(path.dirname(filePath${i})); + fs.writeFileSync(filePath${i}, Buffer.from(file${i}, 'base64')); + `) + }, '')}; + process.dlopen(module, bindingFile) + ` +} function findNativeModulePath(filePath: string, bindingsArg: string) { const dirname = path.dirname(filePath) diff --git a/src/bundling/fuse-native-module-plugin.ts b/src/bundling/fuse-native-module-plugin.ts new file mode 100644 index 0000000..6374c36 --- /dev/null +++ b/src/bundling/fuse-native-module-plugin.ts @@ -0,0 +1,70 @@ +import { BindingsRewrite, embedDotNode, ExtractNodeModuleOptions } from './bindings-rewrite' + +export interface FuseBoxFile { + info: { absPath: string } + absPath: string + contents: string + analysis: { + dependencies: string[] + requiresRegeneration: boolean + } + loadContents(): void + makeAnalysis( + parsingOptions?: any, + traversalPlugin?: { + plugins: Array<{ + onNode(file: FuseBoxFile, node: any, parent: any): void + onEnd(file: FuseBoxFile): void + }> + } + ): void +} + +export default function(options: ExtractNodeModuleOptions) { + return new NativeModulePlugin(options) +} + +export class NativeModulePlugin { + public test: RegExp + public limit2Project = false + private modules: (keyof ExtractNodeModuleOptions)[] + + constructor(public options: ExtractNodeModuleOptions) { + this.options = options + this.test = new RegExp(`node_modules\/(${Object.keys(options).join('|')}).*\.js|\.node$`) + } + + init(context: any) { + context.allowExtension('.node') + } + + transform(file: FuseBoxFile) { + file.loadContents() + + if (file.absPath.endsWith('.node')) { + embedDotNode(this.options, file) + return + } + + const bindingsRewrite = new BindingsRewrite() + file.makeAnalysis(null, { + plugins: [ + { + onNode(file, node, parent) { + bindingsRewrite.onNode(file.absPath, node, parent) + }, + onEnd(file) { + if (bindingsRewrite.rewrite) { + const index = file.analysis.dependencies.indexOf('bindings') + if (~index) { + file.analysis.dependencies.splice(index, 1) + } + file.analysis.dependencies.push(...bindingsRewrite.nativeModulePaths) + file.analysis.requiresRegeneration = true + } + } + } + ] + }) + } +} diff --git a/src/bundling/fuse.ts b/src/bundling/fuse.ts index 719ad83..1273679 100644 --- a/src/bundling/fuse.ts +++ b/src/bundling/fuse.ts @@ -1,137 +1,38 @@ -import { BindingsRewrite } from './bindings-rewrite' -import { createHash } from 'crypto' -import { readFileSync } from 'fs' -import { dirname, join, basename } from 'path' +import { NexeCompiler } from '../compiler' +import { FuseBox, JSONPlugin, CSSPlugin, HTMLPlugin, SourceMapPlainJsPlugin } from 'fuse-box' +//import NativeModulePlugin from './fuse-native-module-plugin' -function hashName(name: string | Buffer) { - return createHash('md5').update(name).digest('hex').toString().slice(0, 8) +function bundleProducer(filename: string, name: string) { + const fuse = FuseBox.init({ + cache: false, + log: Boolean(process.env.NEXE_BUNDLE_DEBUG) || false, + homeDir: './', + sourceMaps: true, + writeBundles: false, + output: '$name.js', + target: 'server', + plugins: [JSONPlugin(), CSSPlugin(), HTMLPlugin(), SourceMapPlainJsPlugin()] + }) + fuse.bundle(name).instructions(`> ${filename}`) + return fuse.run().then(x => { + let output = '' + x.bundles.forEach(y => (output = y.context.output.lastPrimaryOutput.content!.toString())) + return output + }) } -export interface FuseBoxFile { - info: { absPath: string } - absPath: string - contents: string - analysis: { - dependencies: string[] - requiresRegeneration: boolean - } - loadContents(): void - makeAnalysis( - parsingOptions?: any, - traversalPlugin?: { - plugins: Array<{ - onNode(file: FuseBoxFile, node: any, parent: any): void - onEnd(file: FuseBoxFile): void - }> - } - ): void -} - -export interface NativeModulePluginOptions { - [key: string]: - | { - additionalFiles: string[] - } - | true -} - -export default function(options: NativeModulePluginOptions) { - return new NativeModulePlugin(options) -} - -export class NativeModulePlugin { - public test: RegExp - public limit2Project = false - private modules: (keyof NativeModulePluginOptions)[] - - constructor(public options: NativeModulePluginOptions) { - this.modules = Object.keys(options) - this.test = new RegExp(`node_modules\/(${Object.keys(options).join('|')}).*\.js|\.node$`) +export default async function bundle(compiler: NexeCompiler, next: any) { + if (!compiler.options.bundle) { + return next() } - init(context: any) { - context.allowExtension('.node') + let producer = bundleProducer + if (typeof compiler.options.bundle === 'string') { + producer = require(compiler.options.bundle).bundleProducer } - transform(file: FuseBoxFile) { - file.loadContents() + compiler.input = await producer(compiler.options.input, compiler.options.name) - if (file.absPath.endsWith('.node')) { - const contents = readFileSync(file.absPath) - const module = this.modules.find(x => - Boolean(~file.absPath.indexOf(join('node_modules', x))) - )! - const bindingName = basename(file.absPath) - const settings = this.options[module] - const moduleDir = hashName(contents) - file.contents = ` - var fs=require('fs');var path=require('path');var binding='${contents.toString( - 'base64' - )}';function mkdirp(r,t){t=t||null,r=path.resolve(r);try{fs.mkdirSync(r),t=t||r}catch(c){if("ENOENT"===c.code)t=mkdirp(path.dirname(r),t),mkdirp(r,t);else{var i;try{i=fs.statSync(r)}catch(r){throw c}if(!i.isDirectory())throw c}}return t};` - - if (settings === true) { - file.contents += ` - mkdirp('${moduleDir}'); - var bindingPath = path.join(process.cwd(), '${moduleDir}', '${bindingName}') - require('fs').writeFileSync(bindingPath, Buffer.from(binding, 'base64')) - process.dlopen(module, bindingPath) - `.trim() - return - } - - let depth = 0 - settings.additionalFiles.forEach(file => { - let ownDepth = 0 - file.split('/').forEach(x => x === '..' && ownDepth++) - depth = ownDepth > depth ? ownDepth : depth - }) - let segments = [moduleDir] - while (depth--) { - segments.push(hashName(moduleDir + depth)) - } - segments.push(bindingName) - - file.contents += ` - var cwd = process.cwd() - var bindingFileParts = ${JSON.stringify(segments)}; - var bindingFile = path.join.apply(path, [cwd].concat(bindingFileParts)); - mkdirp(path.dirname(bindingFile)); - fs.writeFileSync(bindingFile, Buffer.from(binding, 'base64')); - ${settings.additionalFiles.reduce((code, filename, i) => { - const contents = readFileSync(join(dirname(file.absPath), filename)) - return (code += ` - var file${i} = '${contents.toString('base64')}'; - var filePath${i} = path.join(cwd, bindingFileParts[0], '${filename - .split('../') - .join('')}'); - mkdirp(path.dirname(filePath${i})); - fs.writeFileSync(filePath${i}, Buffer.from(file${i}, 'base64')); - `) - }, '')}; - process.dlopen(module, bindingFile) - ` - return - } - - const bindingsRewrite = new BindingsRewrite() - file.makeAnalysis(null, { - plugins: [ - { - onNode(file, node, parent) { - bindingsRewrite.onNode(file.absPath, node, parent) - }, - onEnd(file) { - if (bindingsRewrite.rewrite) { - const index = file.analysis.dependencies.indexOf('bindings') - if (~index) { - file.analysis.dependencies.splice(index, 1) - } - file.analysis.dependencies.push(...bindingsRewrite.nativeModulePaths) - file.analysis.requiresRegeneration = true - } - } - } - ] - }) - } + require('fs').writeFileSync('./bundle.js', compiler.input) + return next() } diff --git a/src/bundling/index.ts b/src/bundling/index.ts new file mode 100644 index 0000000..df7c185 --- /dev/null +++ b/src/bundling/index.ts @@ -0,0 +1 @@ +export * from './fuse-native-module-plugin' diff --git a/src/bundling/nexe-fuse.ts b/src/bundling/nexe-fuse.ts deleted file mode 100644 index 6025f2b..0000000 --- a/src/bundling/nexe-fuse.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { NexeCompiler } from '../compiler' -import { FuseBox, JSONPlugin, CSSPlugin, HTMLPlugin } from 'fuse-box' -import NativeModulePlugin from './fuse' - -function bundleProducer(filename: string) { - const fuse = FuseBox.init({ - cache: false, - log: Boolean(process.env.NEXE_BUNDLE_DEBUG) || false, - homeDir: './', - writeBundles: false, - target: 'server', - plugins: [JSONPlugin(), CSSPlugin(), HTMLPlugin()] - }) - fuse.bundle('nexe').instructions(`> ${filename}`) - return fuse.run().then(x => { - if (x.bundles.size > 1) { - console.log('THROW', x.bundles) - } - let output = '' - x.bundles.forEach(y => (output = y.context.output.lastPrimaryOutput.content!.toString())) - }) -} - -export default function bundle(compiler: NexeCompiler, next: any) { - if (!compiler.options.bundle) { - return next() - } - - if (typeof compiler.options.bundle === 'string') { - } -} diff --git a/src/cli.ts b/src/cli.ts index 9b397c0..ec48a76 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -18,8 +18,8 @@ function readStreamAsync(stream: NodeJS.ReadableStream): PromiseLike { } /** - * The "cli" step detects whether the process is in a tty. If it is then the input is read into memory. - * Otherwise, it is buffered from stdin. If no input options are passed in the tty, the package.json#main file is used. + * The "cli" step detects the appropriate input. If no input options are passed, + * the package.json#main file is used. * After all the build steps have run, the output (the executable) is written to a file or piped to stdout. * * Configuration: @@ -33,10 +33,13 @@ function readStreamAsync(stream: NodeJS.ReadableStream): PromiseLike { */ export default async function cli(compiler: NexeCompiler, next: () => Promise) { const { input, output } = compiler.options - const { log } = compiler + const { log, input: bundledInput } = compiler + if (!input && !process.stdin.isTTY) { log.step('Using stdin as input') compiler.input = await readStreamAsync(process.stdin) + } else if (bundledInput) { + await next() } else if (input) { log.step(`Using input file as the main module: ${input}`) compiler.input = await readFileAsync(normalize(input), 'utf-8') @@ -49,8 +52,9 @@ export default async function cli(compiler: NexeCompiler, next: () => Promise) { if (argv.help || argv._.some((x: string) => x === 'version')) { - process.stderr.write(argv.help ? help : '2.0.0-beta.7' + EOL, () => process.exit(0)) + process.stderr.write(argv.help ? help : '2.0.0-rc.1' + EOL, () => process.exit(0)) } const options = Object.assign({}, defaults, input) as NexeOptions diff --git a/src/patches/third-party-main.ts b/src/patches/third-party-main.ts index 2f2db7a..4042d96 100644 --- a/src/patches/third-party-main.ts +++ b/src/patches/third-party-main.ts @@ -1,6 +1,13 @@ import { NexeCompiler } from '../compiler' +import { bundleSourceMaps } from '../source-maps/build' export default async function main(compiler: NexeCompiler, next: () => Promise) { + let sourceMapSupport = '' + if (true /*compiler.options.sourceMaps*/) { + sourceMapSupport = await bundleSourceMaps() + require('fs').writeFileSync('./source-map-inject.js', sourceMapSupport) + } + await compiler.setFileContentsAsync( 'lib/_third_party_main.js', ` @@ -10,7 +17,7 @@ const isString = x => typeof x === 'string' || x instanceof String const fd = fs.openSync(process.execPath, 'r') const size = fs.statSync(process.execPath).size -const footer = Buffer.from(Array(46)) +const footer = Buffer.from(Array(32)) fs.readSync(fd, footer, 0, 32, size - 32) if (!footer.slice(0, 16).equals(Buffer.from(''))) { @@ -92,13 +99,14 @@ if (resourceSize) { } } -const contentBuffer = Buffer.from(Array(contentSize)) -fs.readSync(fd, contentBuffer, 0, contentSize, contentStart) -fs.closeSync(fd) -const Module = require('module') -process.mainModule = new Module(process.execPath, null) -process.mainModule.loaded = true -process.mainModule._compile(contentBuffer.toString(), process.execPath) +const contentBuffer = Buffer.from(Array(contentSize)); +fs.readSync(fd, contentBuffer, 0, contentSize, contentStart); +fs.closeSync(fd); +${sourceMapSupport} +const Module = require('module'); +process.mainModule = new Module(process.execPath, null); +process.mainModule.loaded = true; +process.mainModule._compile(contentBuffer.toString(), process.execPath); `.trim() ) return next() diff --git a/tasks/build.ts b/tasks/build.ts new file mode 100644 index 0000000..4b8e92f --- /dev/null +++ b/tasks/build.ts @@ -0,0 +1,19 @@ +import { compile } from '../' +import got = require('got') + +const env = process.env, + branchName = env.CIRCLE_BRANCH || env.APPVEYOR_REPO_BRANCH, + isScheduled = Boolean(env.APPVEYOR_SCHEDULED_BUILD), + isWindows = branchName.includes('win32') && Boolean(env.APPVEYOR), + isPullRequest = Boolean(env.CIRCLE_PR_NUMBER) || Boolean(env.APPVEYOR_PULL_REQUEST_NUMBER) + +async function main () { + if (isScheduled) { + const releases = await + } +} + +main().catch(x => { + console.error(x) + process.exit(1) +}) diff --git a/test/embeded-files/hw.txt b/test/embeded-files/hw.txt deleted file mode 100644 index 27ba77d..0000000 --- a/test/embeded-files/hw.txt +++ /dev/null @@ -1 +0,0 @@ -true diff --git a/test/embeded-files/index.js b/test/embeded-files/index.js deleted file mode 100644 index 40c03ae..0000000 --- a/test/embeded-files/index.js +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Embedded Files Test - * - * @author Jared Allard - * @version 0.0.1 - * @license MIT - **/ - -const nexeres = require('nexeres'); - -process.stdout.write(nexeres.get('hw.txt').toString('ascii')); diff --git a/test/embeded-files/package.json b/test/embeded-files/package.json deleted file mode 100644 index bd56803..0000000 --- a/test/embeded-files/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "embededfiles-test", - "version": "0.0.0", - "private": true, - "scripts": { - "start": "node index.js" - }, - "dependencies": { - }, - "nexe": { - "input": "index.js", - "output": "test.nex", - "resourceFiles": [ - "hw.txt" - ], - "browserify": { - "excludes": [], - "requires": [] - }, - "temp": "../src", - "debug": false, - "runtime": { - "nodeConfigureOpts": ["--fully-static"], - "framework": "node", - "version": "5.7.0" - } - } -} diff --git a/test/express-test/app.js b/test/express-test/app.js deleted file mode 100644 index aa32aed..0000000 --- a/test/express-test/app.js +++ /dev/null @@ -1,61 +0,0 @@ -var express = require('express'); -var path = require('path'); -var favicon = require('serve-favicon'); -var logger = require('morgan'); -var cookieParser = require('cookie-parser'); -var bodyParser = require('body-parser'); -var jade = require('jade'); - -var routes = require('./routes/index'); -var users = require('./routes/users'); - -var app = express(); - -// view engine setup -app.set('views', path.join(__dirname, 'views')); -app.set('view engine', 'jade'); - -// uncomment after placing your favicon in /public -//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); -app.use(logger('dev')); -app.use(bodyParser.json()); -app.use(bodyParser.urlencoded({ extended: false })); -app.use(cookieParser()); -app.use(express.static(path.join(__dirname, 'public'))); - -app.use('/', routes); -app.use('/users', users); - -// catch 404 and forward to error handler -app.use(function(req, res, next) { - var err = new Error('Not Found'); - err.status = 404; - next(err); -}); - -// error handlers - -// development error handler -// will print stacktrace -if (app.get('env') === 'development') { - app.use(function(err, req, res, next) { - res.status(err.status || 500); - res.render('error', { - message: err.message, - error: err - }); - }); -} - -// production error handler -// no stacktraces leaked to user -app.use(function(err, req, res, next) { - res.status(err.status || 500); - res.render('error', { - message: err.message, - error: {} - }); -}); - - -module.exports = app; diff --git a/test/express-test/bin/www b/test/express-test/bin/www deleted file mode 100755 index da5b3b5..0000000 --- a/test/express-test/bin/www +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/env node - -/** - * Module dependencies. - */ - -var app = require('../app'); -var debug = require('debug')('express-test:server'); -var http = require('http'); - -/** - * Get port from environment and store in Express. - */ - -var port = normalizePort(process.env.PORT || '3000'); -app.set('port', port); - -/** - * Create HTTP server. - */ - -var server = http.createServer(app); - -/** - * Listen on provided port, on all network interfaces. - */ - -server.listen(port); -server.on('error', onError); -server.on('listening', onListening); - -/** - * Normalize a port into a number, string, or false. - */ - -function normalizePort(val) { - var port = parseInt(val, 10); - - if (isNaN(port)) { - // named pipe - return val; - } - - if (port >= 0) { - // port number - return port; - } - - return false; -} - -/** - * Event listener for HTTP server "error" event. - */ - -function onError(error) { - if (error.syscall !== 'listen') { - throw error; - } - - var bind = typeof port === 'string' - ? 'Pipe ' + port - : 'Port ' + port; - - // handle specific listen errors with friendly messages - switch (error.code) { - case 'EACCES': - console.error(bind + ' requires elevated privileges'); - process.exit(1); - break; - case 'EADDRINUSE': - console.error(bind + ' is already in use'); - process.exit(1); - break; - default: - throw error; - } -} - -/** - * Event listener for HTTP server "listening" event. - */ - -function onListening() { - var addr = server.address(); - var bind = typeof addr === 'string' - ? 'pipe ' + addr - : 'port ' + addr.port; - debug('Listening on ' + bind); -} - -process.stdout.write('true'); -process.exit(0); diff --git a/test/express-test/package.json b/test/express-test/package.json deleted file mode 100644 index 8741e80..0000000 --- a/test/express-test/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "express-test", - "version": "0.0.0", - "private": true, - "scripts": { - "start": "node ./bin/www" - }, - "dependencies": { - "body-parser": "~1.13.2", - "cookie-parser": "~1.3.5", - "debug": "~2.2.0", - "express": "~4.13.1", - "jade": "~1.11.0", - "morgan": "~1.6.1", - "serve-favicon": "~2.3.0" - }, - "nexe": { - "input": "bin/www", - "output": "test.nex", - "temp": "../src", - "debug": false, - "runtime": { - "framework": "node", - "version": "5.10.0", - "ignoreFlags": true - } - } -} diff --git a/test/express-test/public/stylesheets/style.css b/test/express-test/public/stylesheets/style.css deleted file mode 100644 index 9453385..0000000 --- a/test/express-test/public/stylesheets/style.css +++ /dev/null @@ -1,8 +0,0 @@ -body { - padding: 50px; - font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; -} - -a { - color: #00B7FF; -} diff --git a/test/express-test/routes/index.js b/test/express-test/routes/index.js deleted file mode 100644 index ecca96a..0000000 --- a/test/express-test/routes/index.js +++ /dev/null @@ -1,9 +0,0 @@ -var express = require('express'); -var router = express.Router(); - -/* GET home page. */ -router.get('/', function(req, res, next) { - res.render('index', { title: 'Express' }); -}); - -module.exports = router; diff --git a/test/express-test/routes/users.js b/test/express-test/routes/users.js deleted file mode 100644 index 623e430..0000000 --- a/test/express-test/routes/users.js +++ /dev/null @@ -1,9 +0,0 @@ -var express = require('express'); -var router = express.Router(); - -/* GET users listing. */ -router.get('/', function(req, res, next) { - res.send('respond with a resource'); -}); - -module.exports = router; diff --git a/test/express-test/views/error.jade b/test/express-test/views/error.jade deleted file mode 100644 index 51ec12c..0000000 --- a/test/express-test/views/error.jade +++ /dev/null @@ -1,6 +0,0 @@ -extends layout - -block content - h1= message - h2= error.status - pre #{error.stack} diff --git a/test/express-test/views/index.jade b/test/express-test/views/index.jade deleted file mode 100644 index 3d63b9a..0000000 --- a/test/express-test/views/index.jade +++ /dev/null @@ -1,5 +0,0 @@ -extends layout - -block content - h1= title - p Welcome to #{title} diff --git a/test/express-test/views/layout.jade b/test/express-test/views/layout.jade deleted file mode 100644 index 15af079..0000000 --- a/test/express-test/views/layout.jade +++ /dev/null @@ -1,7 +0,0 @@ -doctype html -html - head - title= title - link(rel='stylesheet', href='/stylesheets/style.css') - body - block content diff --git a/test/flags-test/index.js b/test/flags-test/index.js deleted file mode 100644 index bff2ab1..0000000 --- a/test/flags-test/index.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Test to verify if we support strict mode (flags) - * - * @author Jared Allard - * @version 0.0.1 - * @license MIT - **/ - - // "use strict"; w/o --use_strict - - let isStrict = (function() { return !this; })(); - - console.log(isStrict); diff --git a/test/flags-test/package.json b/test/flags-test/package.json deleted file mode 100644 index 1819340..0000000 --- a/test/flags-test/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "flags-test", - "nexe": { - "input": "./index.js", - "output": "test.nex", - "temp": "../src", - "runtime": { - "framework": "node", - "version": "5.7.0", - "ignoreFlags": false, - "js-flags": "--use_strict", - "node-args": "" - } - } -} diff --git a/test/gulp-test-170/gulpfile.js b/test/gulp-test-170/gulpfile.js deleted file mode 100644 index ec55609..0000000 --- a/test/gulp-test-170/gulpfile.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; - -let gulp = require('gulp'); -let nexe = require('nexe'); - -gulp.task( "compile", ( callback ) => { - let options = { - input: "index.js", - output: "test.nex", - python: "python", - nodeTempDir: "./tmp", - nodeVersion: "latest", - flags: false, - framework: "nodejs" - }; - - nexe.compile( options, ( err ) => { - console.log( err ); - callback( err ); - } ); -} ); - -gulp.task('default', ['compile']); diff --git a/test/gulp-test-170/index.js b/test/gulp-test-170/index.js deleted file mode 100644 index 6e78620..0000000 --- a/test/gulp-test-170/index.js +++ /dev/null @@ -1,2 +0,0 @@ -// it probably executed. -console.log(true); diff --git a/test/gulp-test-170/package.json b/test/gulp-test-170/package.json deleted file mode 100644 index eac3ce5..0000000 --- a/test/gulp-test-170/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "gulp-test-170", - "version": "0.0.1", - "description": "gulpfile.js issue #170", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "Jared Allard ", - "license": "MIT", - "dependencies": { - "gulp": "^3.9.0", - "nexe": "^1.0.5" - }, - "nexe": { - "input": "./index.js", - "output": "test.nex", - "temp": "../src", - "runtime": { - "framework": "node", - "version": "5.7.0", - "ignoreFlags": true, - "node-args": "" - } - } -} diff --git a/test/ignoreFlags-test/index.js b/test/ignoreFlags-test/index.js deleted file mode 100644 index dce1a19..0000000 --- a/test/ignoreFlags-test/index.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Test to verify if we support strict mode (flags) - * - * @author Jared Allard - * @version 0.0.1 - * @license MIT - **/ - - // test.nex --help - - let status = false; - - // console.log(process.argv); - - if(process.argv[2]) { - status = true; - } - - console.log(status); diff --git a/test/ignoreFlags-test/package.json b/test/ignoreFlags-test/package.json deleted file mode 100644 index 6d05e13..0000000 --- a/test/ignoreFlags-test/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "flags-test", - "nexe": { - "input": "./index.js", - "output": "test.nex", - "temp": "../src", - "runtime": { - "framework": "node", - "version": "5.7.0", - "ignoreFlags": true, - "node-args": "" - } - }, - "dependencies": {} -} diff --git a/test/js-yaml-148/index.js b/test/js-yaml-148/index.js deleted file mode 100644 index 6ebdaf5..0000000 --- a/test/js-yaml-148/index.js +++ /dev/null @@ -1,3 +0,0 @@ -require('js-yaml'); - -console.log(true); diff --git a/test/js-yaml-148/package.json b/test/js-yaml-148/package.json deleted file mode 100644 index 34b183b..0000000 --- a/test/js-yaml-148/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "js-yaml-148", - "version": "1.0.0", - "description": "#148 js-yaml fails to work", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "Jared Allard ", - "license": "MIT", - "dependencies": { - "js-yaml": "^3.5.2" - }, - "nexe": { - "input": "index.js", - "output": "test.nex", - "temp": "../src", - "runtime": { - "version": "5.7.0", - "framework": "node" - } - } -} diff --git a/test/mocha.opts b/test/mocha.opts deleted file mode 100644 index da3ea00..0000000 --- a/test/mocha.opts +++ /dev/null @@ -1 +0,0 @@ ---timeout 100000000 diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 338da76..0000000 --- a/test/test.js +++ /dev/null @@ -1,249 +0,0 @@ -/** - * Test runner for nexe - * - * @author Jared Allard - * @license MIT - **/ - -'use strict'; - -const assert = require('assert'); -const fs = require('fs'); -const path = require('path'); -const spawn = require('child_process').spawn; - -// our vars -const NEXE_VERSION = require('../package.json').version; -const testBase = __dirname; -const LOG_FILE = path.join(testBase, 'test.log'); - -if(fs.existsSync(LOG_FILE)) { - fs.unlinkSync(LOG_FILE); -} - -let logfile = fs.createWriteStream(LOG_FILE, { - autoClose: false -}); - -const compileTest = function(test, cb) { - let testDir = path.join(testBase, test); - if(!fs.existsSync(testDir)) { - throw new Error('Test not found'); - return cb(false); - } - - let npminst = spawn('npm', ['install'], { - cwd: testDir - }); - - npminst.on('error', function() { - throw new Error('Failed to execute NPM'); - return cb(false); - }); - - npminst.on('close', function(code) { - if(code !== 0) { - throw new Error('NPM exited with non-zero status'); - return cb(false); - } - - let testinst = spawn('../../bin/nexe', [], { - cwd: testDir - }); - - testinst.on('error', function() { - throw new Error('Test failed to compile'); - return cb(false); - }); - - testinst.on('close', function(code) { - let err = null; - if(code !== 0) { - throw new Error('Test gave non-zero code'); - err = false; - } - - logfile = fs.createWriteStream(LOG_FILE); - - return cb(err); - }); - - testinst.stdout.on('data', function(d) { - process.stdout.write(d.toString('ascii')); - }); - }); -}; - -/** - * Run a test-generated binary - * - * @param {string} test - test name (dir) - * @param {array} optional args - array of args to pass to the binary - * @param {function} cb - callback - **/ -const runTest = function(test, args, cb) { - let testDir = path.join(testBase, test); - let testBin = path.join(testDir, 'test.nex') - - // check params - if(!Array.isArray(args)) { - cb = args; - args = []; - } - - if(!fs.existsSync(testDir)) { - throw new Error('Test not found'); - return cb(false); - } - - if(!fs.existsSync(testBin)) { - throw new Error('Test binary not found'); - return cb(false); - } - - let returned = false; - let testinst = spawn(testBin, args, { - cwd: testDir - }) - - testinst.stdout.on('data', function(d) { - let status = d.toString('ascii'); - - if(status === true || status === 'true' || status === 'true\n') { - testinst.stdin.pause(); - testinst.kill(); - - // make it know we returned. - returned = true; - - return cb(); - } - }) - - testinst.on('close', function(c) { - if(returned !== true) { - throw new Error('Test failed (stdout never contained true)'); - return cb(false); - } - }); -} - -console.log('NOTICE: The first test may take awhile as it may compile Node.js'); -console.log(' Monitor the log file (test.log) for progress.'); - - -after(function() { - console.log('notice: closing test.log file descriptor.') - logfile.end(); -}); - -/** - * Tests express compatability. - **/ -describe('nexe can bundle express', function() { - let testname = 'express-test'; - - describe('build', function () { - it('compiles without errors', function (next) { - compileTest(testname, function(err) { - return next(err); - }); - }); - - it('runs successfully', function(next) { - runTest(testname, function(err) { - return next(err); - }); - }); - }); -}); - -describe('nexe and embedding files', function() { - let testname = 'embeded-files'; - - describe('build', function () { - it('compiles without errors', function (next) { - compileTest(testname, function(err) { - return next(err); - }); - }); - - it('runs successfully', function(next) { - runTest(testname, function(err) { - return next(err); - }); - }); - }); -}); - -describe('v8 flags test (strict mode)', function() { - let testname = 'flags-test'; - - describe('build', function () { - it('compiles without errors', function (next) { - compileTest(testname, function(err) { - return next(err); - }); - }); - - it('runs successfully', function(next) { - runTest(testname, function(err) { - return next(err); - }); - }); - }); -}); - -describe('nexe can be utilized in gulp test', function() { - let testname = 'gulp-test-170'; - - describe('build', function () { - it('compiles without errors', function (next) { - compileTest(testname, function(err) { - return next(err); - }); - }); - - it('runs successfully', function(next) { - runTest(testname, function(err) { - return next(err); - }); - }); - }); -}); - -describe('nexe can ignore node.js flags test', function() { - let testname = 'ignoreFlags-test'; - - describe('build', function () { - it('compiles without errors', function (next) { - compileTest(testname, function(err) { - return next(err); - }); - }); - - it('runs successfully', function(next) { - runTest(testname, ['--help'], function(err) { - return next(err); - }); - }); - }); -}); - -describe('nexe supports js-yaml test', function() { - let testname = 'js-yaml-148'; - - describe('build', function () { - it('compiles without errors', function (next) { - compileTest(testname, function(err) { - return next(err); - }); - }); - - it('runs successfully', function(next) { - runTest(testname, function(err) { - return next(err); - }); - }); - }); -});