Compare commits

...

31 Commits

Author SHA1 Message Date
calebboyd 58f276fae6 chore: bump resolve-dependencies 2020-06-26 11:42:23 -05:00
calebboyd 7c539db738 chore: bump resolve-dependencies 2020-06-26 10:26:53 -05:00
calebboyd ae51cc6b87 fix: set explicit release 2020-06-21 20:16:45 -05:00
calebboyd cf23147c9c fix: windows build 10.16 2019-06-24 15:57:54 -05:00
calebboyd 9c1d67b2e6 build: add 3rd scheduled build 2019-06-24 14:20:51 -05:00
calebboyd 93e0a021d3 build: increase timeout to 3 hours 2019-06-24 11:37:23 -05:00
calebboyd 021f50d50f build: add schedules to yml 2019-06-24 09:38:05 -05:00
calebboyd bf5ff7d9bd chore: set build limit to two hours 2019-06-21 15:20:21 -05:00
calebboyd 86c3acedb1 chore: pipeline display names 2019-06-17 18:38:54 -05:00
calebboyd ecb3d41a97 build: exit on existing target 2019-06-17 12:57:35 -05:00
calebboyd 1eb44797d0 fix: don't expand argv1 on node 12 bootstrap 2019-06-17 12:49:28 -05:00
calebboyd 1023b72513 fix: update patches for node 12 bootstrapping 2019-06-12 16:04:17 -05:00
calebboyd 0cf436c9a7 chore: dep bump 2019-06-11 10:42:26 -05:00
calebboyd 77f49eb07a fix: asset alias 2019-06-11 10:36:09 -05:00
calebboyd 9bc98bf597 ci: fix gcc version 2019-06-10 15:50:26 -05:00
calebboyd 7e9a05675c fix: reference ogfs in readFilePath for internalmethods 2019-06-05 15:03:49 -05:00
calebboyd e62d728624 fix: uppercase windows path letters after normalize
closes #618
2019-05-28 18:04:16 -05:00
Jason Cooke a0c8d31f03 docs: fix typo (#625) 2019-05-23 18:17:55 -05:00
calebboyd 472b98d839 chore: publish copyFile shim 2019-04-28 14:28:59 -05:00
calebboyd 9ae6ed8ae8 chore: log open handles after a minute or two 2019-04-28 13:28:40 -05:00
calebboyd a0c648bc8b chore: set install directory for nasm 2019-04-26 14:33:26 -05:00
Daniel Ruf 463595f502 chore: typo 2019-04-25 11:23:08 -05:00
calebboyd be4ab09745 chore: update ci in readme 2019-04-25 11:22:19 -05:00
calebboyd a6ad034336 chore: set env variables 2019-04-18 13:27:08 -05:00
calebboyd 0afbe3b732 chore: fix types in azure build script 2019-04-15 23:03:41 -05:00
calebboyd 0865fda5ef fix: don't infer main module when not in tty 2019-04-15 23:01:50 -05:00
calebboyd 7bfdc39700 chore: add azure-pipeline.yml 2019-04-15 17:12:41 -05:00
calebboyd 9486399cec chore: update alpine build script 2019-04-15 14:59:57 -05:00
calebboyd 75bf6a3dc4 chore: naive copyFile patch 2019-04-14 21:37:06 -05:00
calebboyd 0dca0745ee feat(fs): add option to restore all but internal filesystem methods 2019-04-08 22:14:51 -05:00
Antonio Nuno Monteiro 6fc2ed9519 fix: snapshot gyp variable name after node 11 (#606)
this changed from `embed_script` to `v8_embed_script` after node 11
2019-04-08 21:14:16 -05:00
23 changed files with 705 additions and 598 deletions
-8
View File
@@ -1,8 +0,0 @@
#!/usr/bin/env bash
export NVS_HOME="$HOME/.nvs"
. "$NVS_HOME/nvs.sh" install && nvs link lts && nvs use default
set -e -x
npm run asset-compile
-28
View File
@@ -1,28 +0,0 @@
version: 2
jobs:
build:
macos:
xcode: "9.0"
steps:
- checkout
- restore_cache:
keys:
- package-{{ checksum "package.json" }}-{{ checksum "package-lock.json" }}
- package- # Fallback for the latest package.json cache
- run:
name: setup
command: .circleci/setup.sh
- save_cache:
key: package-{{ checksum "package.json" }}-{{ checksum "package-lock.json" }}
paths:
- node_modules
- run:
name: build
command: .circleci/build.sh
workflows:
version: 2
test:
jobs:
- build
-10
View File
@@ -1,10 +0,0 @@
#!/usr/bin/env bash
set -e
export NVS_HOME="$HOME/.nvs"
git clone --depth=1 https://github.com/jasongin/nvs "$NVS_HOME"
. "$NVS_HOME/nvs.sh" install
nvs add lts && nvs link lts nvs use default
node -v
npm -v
npm i
-15
View File
@@ -1,15 +0,0 @@
dist: xenial
language: node_js
node_js:
- '6'
before_install:
- sudo apt-get -qq update
- sudo apt-get install -y g++-multilib
node_js:
- '8'
script: npm run asset-compile
env:
global:
- secure: LyC6djYqPfPKz5gHILES9JmSRxQ+ntKOcoaZNM5WID0+gogUoXZBhcmmtvq9RnMpFZN3pYujY6LB5iy7QS2seGjg+feyewNKI30yIK6N9ulJyZZKmrJVDdRx4wvl8YVTkttjcJFkanDGa6zRvFfFDKx/iIdcWLEpnqR/WO1ppf8=
notifications:
email: false
+2 -4
View File
@@ -1,9 +1,7 @@
<p align="center"><img src="https://cloud.githubusercontent.com/assets/2391349/23598327/a17bb68a-01ee-11e7-8f55-88a5fc96e997.png" /></p> <p align="center"><img src="https://cloud.githubusercontent.com/assets/2391349/23598327/a17bb68a-01ee-11e7-8f55-88a5fc96e997.png" /></p>
<p align="center"> <p align="center">
<a href="https://circleci.com/gh/nexe/nexe"><img src="https://img.shields.io/circleci/project/github/nexe/nexe/master.svg" alt="Mac Build Status"></a> <a href="https://dev.azure.com/nexe-ci/Nexe/_build?definitionId=1"><img src="https://img.shields.io/azure-devops/build/nexe-ci/nexe/1/master.svg" alt="Build Status"></a>
<a href="https://travis-ci.org/nexe/nexe/builds"><img src="https://img.shields.io/travis/nexe/nexe/master.svg" alt="Linux Build Status"></a>
<a href="https://ci.appveyor.com/project/calebboyd/nexe/history"><img src="https://img.shields.io/appveyor/ci/calebboyd/nexe/master.svg" alt="Windows Build Status"></a>
<a href="https://www.npmjs.com/package/nexe"><img src="https://img.shields.io/npm/dt/nexe.svg" alt="Downloads"></a> <a href="https://www.npmjs.com/package/nexe"><img src="https://img.shields.io/npm/dt/nexe.svg" alt="Downloads"></a>
<a href="https://www.npmjs.com/package/nexe"><img src="https://img.shields.io/npm/v/nexe.svg" alt="Version"></a> <a href="https://www.npmjs.com/package/nexe"><img src="https://img.shields.io/npm/v/nexe.svg" alt="Version"></a>
<a href="https://www.npmjs.com/package/nexe"><img src="https://img.shields.io/npm/l/nexe.svg" alt="License"></a> <a href="https://www.npmjs.com/package/nexe"><img src="https://img.shields.io/npm/l/nexe.svg" alt="License"></a>
@@ -155,7 +153,7 @@ compile({
- Path to a user provided icon to be used (Windows only). Requires `--build` to be set. - Path to a user provided icon to be used (Windows only). Requires `--build` to be set.
- #### `rc: object` - #### `rc: object`
- Settings for patching the [node.rc](https://github.com/nodejs/node/blob/master/src/res/node.rc) configuration file (Windows only). - Settings for patching the [node.rc](https://github.com/nodejs/node/blob/master/src/res/node.rc) configuration file (Windows only).
- Example (keys may vary depending ont the version. Reference the file linked above): - Example (keys may vary depending on the version. Reference the file linked above):
```javascript ```javascript
{ {
CompanyName: "ACME Corp", CompanyName: "ACME Corp",
-25
View File
@@ -1,25 +0,0 @@
image:
- Visual Studio 2017
- Visual Studio 2015
environment:
CIRCLE_TOKEN:
secure: TQKcepXmTzCNt4+tUBtYpwEQkdSPwFr9A8ugtoMhNbKu/SW1WM1EpjEu6kYXxpQ4
TRAVIS_TOKEN:
secure: 6ni/E6Rbmv6cFWW7QNLkpQY2fVpT7wr7y12GEtektN0=
GITHUB_TOKEN:
secure: 3wuEGJsppSKFvdwhp3jprUA9Zkc3WINlc/9oFXjhAR6J05lYMXP7Fl7lXTKpkGZx
install:
- rmdir C:\cygwin /s /q
- rmdir C:\QT /s /q
- ps: Install-Product node 8
- curl -L -o nasm.exe https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/win64/nasm-2.13.03-installer-x64.exe
- start /wait nasm.exe /S
- ps: $env:path="C:\Program Files\nasm;$($env:path)"
- npm i
build: off
test: off
build_script:
- npm run asset-compile
artifacts:
- path: $(HOMEPATH)\.nexe\**\node.exe
+60
View File
@@ -0,0 +1,60 @@
schedules:
- cron: "0 8 * * *"
displayName: "Daily Build 1"
always: true
branches:
include:
- master
- cron: "0 13 * * *"
displayName: "Daily Build 2"
always: true
branches:
include:
- master
- cron: "0 19 * * *"
displayName: "Daily Build 3"
always: true
branches:
include:
- master
jobs:
- job: BaseBuild
timeoutInMinutes: 180
strategy:
matrix:
linux:
imageName: 'ubuntu-16.04'
mac:
imageName: 'macos-10.13'
windows_2017:
imageName: 'vs2017-win2016'
windows_2015:
imageName: 'vs2017-win2016'
alpine:
imageName: 'ubuntu-16.04'
pool:
vmImage: $(imageName)
steps:
- task: UsePythonVersion@0
displayName: Setup Python
inputs:
versionSpec: '2.7'
architecture: 'x64'
- task: NodeTool@0
displayName: Install Node
inputs:
versionSpec: '10.x'
- script: sudo apt-get update && sudo apt-get install -y libc6-dev-i386 gcc-multilib g++-multilib
condition: contains(variables['Agent.JobName'], 'linux')
displayName: Install Linux build dependencies
- script: choco install visualcpp-build-tools --version 14.0.25420.1 -fy && npm config set msvs_version 2015
condition: contains(variables['Agent.JobName'], 'windows_2015')
displayName: Install Windows build dependencies
- script: choco install nasm -fy
displayName: Install Windows Assembler (NASM)
condition: contains(variables['Agent.JobName'], 'windows')
- script: npm install && npm run ci:build
displayName: Build Nexe
env:
GITHUB_TOKEN: $(PersonalGithubToken)
NEXE_VERBOSE: $(NEXE_VERBOSE)
+372 -278
View File
@@ -1,9 +1,34 @@
{ {
"name": "nexe", "name": "nexe",
"version": "3.0.5", "version": "3.3.5",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
"@babel/code-frame": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
"integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
"dev": true,
"requires": {
"@babel/highlight": "^7.0.0"
}
},
"@babel/highlight": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
"integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
"dev": true,
"requires": {
"chalk": "^2.0.0",
"esutils": "^2.0.2",
"js-tokens": "^4.0.0"
}
},
"@calebboyd/async": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@calebboyd/async/-/async-1.4.0.tgz",
"integrity": "sha512-Q5tSWP28OF1nGd9KD6qspJselIfrHqk5+1gLGNNuQiUy80LE4g4ZAb+r+P8MYe1/FS5ICbm+OXiIalC7xhde3A=="
},
"@calebboyd/semaphore": { "@calebboyd/semaphore": {
"version": "1.3.1", "version": "1.3.1",
"resolved": "https://registry.npmjs.org/@calebboyd/semaphore/-/semaphore-1.3.1.tgz", "resolved": "https://registry.npmjs.org/@calebboyd/semaphore/-/semaphore-1.3.1.tgz",
@@ -18,11 +43,36 @@
"glob-to-regexp": "^0.3.0" "glob-to-regexp": "^0.3.0"
} }
}, },
"@nodelib/fs.scandir": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz",
"integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==",
"requires": {
"@nodelib/fs.stat": "2.0.3",
"run-parallel": "^1.1.9"
},
"dependencies": {
"@nodelib/fs.stat": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
"integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA=="
}
}
},
"@nodelib/fs.stat": { "@nodelib/fs.stat": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
"integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw=="
}, },
"@nodelib/fs.walk": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz",
"integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==",
"requires": {
"@nodelib/fs.scandir": "2.1.3",
"fastq": "^1.6.0"
}
},
"@sindresorhus/is": { "@sindresorhus/is": {
"version": "0.7.0", "version": "0.7.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz",
@@ -108,9 +158,9 @@
} }
}, },
"@types/got": { "@types/got": {
"version": "9.4.1", "version": "9.6.0",
"resolved": "https://registry.npmjs.org/@types/got/-/got-9.4.1.tgz", "resolved": "https://registry.npmjs.org/@types/got/-/got-9.6.0.tgz",
"integrity": "sha512-m7Uc07bG/bZ+Dis7yI3mGssYDcAdUvP4irF3ZmBzf0ig7zEd1FyADfnELVGcf+p1Ol/iPCXbZYwcSNOJA2a+Qg==", "integrity": "sha512-t00QebxBllcawe7uMxi9jsfWfbki4+/zpJEPyoGWjUvnFOy4EkAzoYOI2UJt2+Fx0yIcDX2+us93k6ensKTddA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/node": "*", "@types/node": "*",
@@ -138,9 +188,9 @@
} }
}, },
"@types/mocha": { "@types/mocha": {
"version": "5.2.6", "version": "5.2.7",
"resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.6.tgz", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
"integrity": "sha512-1axi39YdtBI7z957vdqXI4Ac25e7YihYQtJa+Clnxg1zTJEaIRbndt71O3sP4GAMgiAm0pY26/b9BrY4MR/PMw==", "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
"dev": true "dev": true
}, },
"@types/multistream": { "@types/multistream": {
@@ -194,11 +244,6 @@
"integrity": "sha512-SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg==", "integrity": "sha512-SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg==",
"dev": true "dev": true
}, },
"acorn": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz",
"integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA=="
},
"ansi-colors": { "ansi-colors": {
"version": "3.2.3", "version": "3.2.3",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
@@ -302,59 +347,6 @@
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
}, },
"babel-code-frame": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
"dev": true,
"requires": {
"chalk": "^1.1.3",
"esutils": "^2.0.2",
"js-tokens": "^3.0.2"
},
"dependencies": {
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"dev": true
},
"ansi-styles": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"dev": true
},
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
"ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2",
"has-ansi": "^2.0.0",
"strip-ansi": "^3.0.0",
"supports-color": "^2.0.0"
}
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
"ansi-regex": "^2.0.0"
}
},
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
"dev": true
}
}
},
"balanced-match": { "balanced-match": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
@@ -555,9 +547,9 @@
"integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms="
}, },
"camelcase": { "camelcase": {
"version": "5.2.0", "version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.2.0.tgz", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-IXFsBS2pC+X0j0N/GE7Dm7j3bsEBp+oTpb7F50dwEVX7rf3IgwO9XatnegTsDtniKCUtEJH4fSU6Asw7uoVLfQ==", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true "dev": true
}, },
"caw": { "caw": {
@@ -964,12 +956,6 @@
} }
} }
}, },
"detect-file": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
"integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=",
"dev": true
},
"diff": { "diff": {
"version": "3.5.0", "version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
@@ -1039,6 +1025,12 @@
"resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
"integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
}, },
"emoji-regex": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
"dev": true
},
"end-of-stream": { "end-of-stream": {
"version": "1.4.1", "version": "1.4.1",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
@@ -1048,12 +1040,12 @@
} }
}, },
"enhanced-resolve": { "enhanced-resolve": {
"version": "4.1.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.2.0.tgz",
"integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "integrity": "sha512-S7eiFb/erugyd1rLb6mQ3Vuq+EXHv5cpCkNqqIkYkBgN2QdFnyCZzFBleqwGEx4lgNGYij81BWnCrFNK7vxvjQ==",
"requires": { "requires": {
"graceful-fs": "^4.1.2", "graceful-fs": "^4.1.2",
"memory-fs": "^0.4.0", "memory-fs": "^0.5.0",
"tapable": "^1.0.0" "tapable": "^1.0.0"
} }
}, },
@@ -1175,15 +1167,6 @@
} }
} }
}, },
"expand-tilde": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
"integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
"dev": true,
"requires": {
"homedir-polyfill": "^1.0.1"
}
},
"ext-list": { "ext-list": {
"version": "2.2.2", "version": "2.2.2",
"resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz",
@@ -1298,6 +1281,14 @@
"micromatch": "^3.1.10" "micromatch": "^3.1.10"
} }
}, },
"fastq": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz",
"integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==",
"requires": {
"reusify": "^1.0.4"
}
},
"fd-slicer": { "fd-slicer": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
@@ -1356,29 +1347,6 @@
"locate-path": "^3.0.0" "locate-path": "^3.0.0"
} }
}, },
"findup-sync": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
"integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
"dev": true,
"requires": {
"detect-file": "^1.0.0",
"is-glob": "^3.1.0",
"micromatch": "^3.0.4",
"resolve-dir": "^1.0.1"
},
"dependencies": {
"is-glob": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
"integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
"dev": true,
"requires": {
"is-extglob": "^2.1.0"
}
}
}
},
"flat": { "flat": {
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
@@ -1435,9 +1403,9 @@
"dev": true "dev": true
}, },
"get-caller-file": { "get-caller-file": {
"version": "1.0.3", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true "dev": true
}, },
"get-func-name": { "get-func-name": {
@@ -1501,30 +1469,6 @@
"resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
"integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs="
}, },
"global-modules": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
"integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
"dev": true,
"requires": {
"global-prefix": "^1.0.1",
"is-windows": "^1.0.1",
"resolve-dir": "^1.0.0"
}
},
"global-prefix": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
"integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
"dev": true,
"requires": {
"expand-tilde": "^2.0.2",
"homedir-polyfill": "^1.0.1",
"ini": "^1.3.4",
"is-windows": "^1.0.1",
"which": "^1.2.14"
}
},
"globby": { "globby": {
"version": "9.2.0", "version": "9.2.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz",
@@ -1639,23 +1583,6 @@
"function-bind": "^1.1.1" "function-bind": "^1.1.1"
} }
}, },
"has-ansi": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"dev": true,
"requires": {
"ansi-regex": "^2.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"dev": true
}
}
},
"has-flag": { "has-flag": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
@@ -1715,15 +1642,6 @@
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
"dev": true "dev": true
}, },
"homedir-polyfill": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
"integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
"dev": true,
"requires": {
"parse-passwd": "^1.0.0"
}
},
"http-cache-semantics": { "http-cache-semantics": {
"version": "3.8.1", "version": "3.8.1",
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
@@ -1973,15 +1891,15 @@
"dev": true "dev": true
}, },
"js-tokens": { "js-tokens": {
"version": "3.0.2", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true "dev": true
}, },
"js-yaml": { "js-yaml": {
"version": "3.12.0", "version": "3.13.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
"integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
"dev": true, "dev": true,
"requires": { "requires": {
"argparse": "^1.0.7", "argparse": "^1.0.7",
@@ -2094,9 +2012,9 @@
} }
}, },
"mem": { "mem": {
"version": "4.2.0", "version": "4.3.0",
"resolved": "https://registry.npmjs.org/mem/-/mem-4.2.0.tgz", "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
"integrity": "sha512-5fJxa68urlY0Ir8ijatKa3eRz5lwXnRCTvo9+TbTGAuTFJOwpGcY0X05moBd0nW45965Njt4CDI2GFQoG8DvqA==", "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
"dev": true, "dev": true,
"requires": { "requires": {
"map-age-cleaner": "^0.1.1", "map-age-cleaner": "^0.1.1",
@@ -2105,23 +2023,23 @@
}, },
"dependencies": { "dependencies": {
"mimic-fn": { "mimic-fn": {
"version": "2.0.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.0.0.tgz", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
"integrity": "sha512-jbex9Yd/3lmICXwYT6gA/j2mNQGU48wCh/VzRd+/Y/PjYQtlg1gLMdZqvu9s/xH7qKvngxRObl56XZR609IMbA==", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true "dev": true
}, },
"p-is-promise": { "p-is-promise": {
"version": "2.0.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
"integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==", "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
"dev": true "dev": true
} }
} }
}, },
"memory-fs": { "memory-fs": {
"version": "0.4.1", "version": "0.5.0",
"resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
"integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
"requires": { "requires": {
"errno": "^0.1.3", "errno": "^0.1.3",
"readable-stream": "^2.0.1" "readable-stream": "^2.0.1"
@@ -2132,6 +2050,11 @@
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz",
"integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==" "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA=="
}, },
"meriyah": {
"version": "1.9.15",
"resolved": "https://registry.npmjs.org/meriyah/-/meriyah-1.9.15.tgz",
"integrity": "sha512-D4rT6XIYGqZab0EI/xbihUpwh0WbNRVQ35l2J/5QC2atxaI8h3KvA55DEJLBB/FRdaji7JwkNehfCRjCyjCjqw=="
},
"micromatch": { "micromatch": {
"version": "3.1.10", "version": "3.1.10",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
@@ -2215,9 +2138,9 @@
} }
}, },
"mocha": { "mocha": {
"version": "6.0.2", "version": "6.1.4",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-6.0.2.tgz", "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.1.4.tgz",
"integrity": "sha512-RtTJsmmToGyeTznSOMoM6TPEk1A84FQaHIciKrRqARZx+B5ccJ5tXlmJzEKGBxZdqk9UjpRsesZTUkZmR5YnuQ==", "integrity": "sha512-PN8CIy4RXsIoxoFJzS4QNnCH4psUCPWc4/rPrst/ecSJJbLBkubMiyGCP2Kj/9YnWbotFqAoeXyXMucj7gwCFg==",
"dev": true, "dev": true,
"requires": { "requires": {
"ansi-colors": "3.2.3", "ansi-colors": "3.2.3",
@@ -2225,23 +2148,23 @@
"debug": "3.2.6", "debug": "3.2.6",
"diff": "3.5.0", "diff": "3.5.0",
"escape-string-regexp": "1.0.5", "escape-string-regexp": "1.0.5",
"findup-sync": "2.0.0", "find-up": "3.0.0",
"glob": "7.1.3", "glob": "7.1.3",
"growl": "1.10.5", "growl": "1.10.5",
"he": "1.2.0", "he": "1.2.0",
"js-yaml": "3.12.0", "js-yaml": "3.13.1",
"log-symbols": "2.2.0", "log-symbols": "2.2.0",
"minimatch": "3.0.4", "minimatch": "3.0.4",
"mkdirp": "0.5.1", "mkdirp": "0.5.1",
"ms": "2.1.1", "ms": "2.1.1",
"node-environment-flags": "1.0.4", "node-environment-flags": "1.0.5",
"object.assign": "4.1.0", "object.assign": "4.1.0",
"strip-json-comments": "2.0.1", "strip-json-comments": "2.0.1",
"supports-color": "6.0.0", "supports-color": "6.0.0",
"which": "1.3.1", "which": "1.3.1",
"wide-align": "1.1.3", "wide-align": "1.1.3",
"yargs": "12.0.5", "yargs": "13.2.2",
"yargs-parser": "11.1.1", "yargs-parser": "13.0.0",
"yargs-unparser": "1.5.0" "yargs-unparser": "1.5.0"
}, },
"dependencies": { "dependencies": {
@@ -2310,12 +2233,21 @@
"dev": true "dev": true
}, },
"node-environment-flags": { "node-environment-flags": {
"version": "1.0.4", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.4.tgz", "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz",
"integrity": "sha512-M9rwCnWVLW7PX+NUWe3ejEdiLYinRpsEre9hMkU/6NS4h+EEulYaDH1gCEZ2gyXsmw+RXYDaV2JkkTNcsPDJ0Q==", "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"object.getownpropertydescriptors": "^2.0.3" "object.getownpropertydescriptors": "^2.0.3",
"semver": "^5.7.0"
},
"dependencies": {
"semver": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
"dev": true
}
} }
}, },
"normalize-url": { "normalize-url": {
@@ -2403,9 +2335,9 @@
} }
}, },
"object-keys": { "object-keys": {
"version": "1.1.0", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
"integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"dev": true "dev": true
}, },
"object-visit": { "object-visit": {
@@ -2542,15 +2474,9 @@
} }
}, },
"p-try": { "p-try": {
"version": "2.1.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.1.0.tgz", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-H2RyIJ7+A3rjkwKC2l5GGtU4H1vkxKCAGsWasNVd0Set+6i4znxbWy6/j16YDPJDWxhsgZiKAstMEP8wCdSpjA==", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
"parse-passwd": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
"integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
"dev": true "dev": true
}, },
"pascalcase": { "pascalcase": {
@@ -2612,6 +2538,11 @@
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
}, },
"picomatch": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
"integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg=="
},
"pify": { "pify": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
@@ -2641,9 +2572,9 @@
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
}, },
"prettier": { "prettier": {
"version": "1.16.4", "version": "1.18.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.4.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz",
"integrity": "sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==", "integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==",
"dev": true "dev": true
}, },
"process-nextick-args": { "process-nextick-args": {
@@ -2720,40 +2651,141 @@
"dev": true "dev": true
}, },
"require-main-filename": { "require-main-filename": {
"version": "1.0.1", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
"integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
"dev": true "dev": true
}, },
"resolve": { "resolve": {
"version": "1.10.0", "version": "1.11.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
"integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
"dev": true, "dev": true,
"requires": { "requires": {
"path-parse": "^1.0.6" "path-parse": "^1.0.6"
} }
}, },
"resolve-dependencies": { "resolve-dependencies": {
"version": "2.2.2", "version": "4.2.3",
"resolved": "https://registry.npmjs.org/resolve-dependencies/-/resolve-dependencies-2.2.2.tgz", "resolved": "https://registry.npmjs.org/resolve-dependencies/-/resolve-dependencies-4.2.3.tgz",
"integrity": "sha512-lZARvM5mDaVOBUNam2fbaHYydBBPMlMt6jjlQYvD8D2N//SOlq6iqqFrCWsYkBGYtXgix4EAiTFuZLpt5lXQtA==", "integrity": "sha512-imJP4b6Bm2lBjCIWcI+OEyy4WzSJTSVcTOVeL4Jnb0p6Xdec9kgTu52k2VZY25MUTr9q/KtghXxFHibOYT+KLQ==",
"requires": { "requires": {
"@calebboyd/semaphore": "^1.3.1", "@calebboyd/async": "^1.4.0",
"acorn": "^6.0.4", "enhanced-resolve": "^4.2.0",
"enhanced-resolve": "^4.1.0", "globby": "^11.0.1",
"globby": "^9.1.0", "meriyah": "^1.9.15"
"pify": "^4.0.0" },
} "dependencies": {
}, "@nodelib/fs.stat": {
"resolve-dir": { "version": "2.0.3",
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
"resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA=="
"integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", },
"dev": true, "array-union": {
"requires": { "version": "2.1.0",
"expand-tilde": "^2.0.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
"global-modules": "^1.0.0" "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
},
"braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"requires": {
"fill-range": "^7.0.1"
}
},
"dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
"requires": {
"path-type": "^4.0.0"
}
},
"fast-glob": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz",
"integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==",
"requires": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
"glob-parent": "^5.1.0",
"merge2": "^1.3.0",
"micromatch": "^4.0.2",
"picomatch": "^2.2.1"
}
},
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"requires": {
"to-regex-range": "^5.0.1"
}
},
"glob-parent": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
"integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
"requires": {
"is-glob": "^4.0.1"
}
},
"globby": {
"version": "11.0.1",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz",
"integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==",
"requires": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
"fast-glob": "^3.1.1",
"ignore": "^5.1.4",
"merge2": "^1.3.0",
"slash": "^3.0.0"
}
},
"ignore": {
"version": "5.1.8",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
"integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw=="
},
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
},
"merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
},
"micromatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
"integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
"requires": {
"braces": "^3.0.1",
"picomatch": "^2.0.5"
}
},
"path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
},
"slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
},
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"requires": {
"is-number": "^7.0.0"
}
}
} }
}, },
"resolve-url": { "resolve-url": {
@@ -2783,6 +2815,11 @@
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
"integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
}, },
"reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
},
"rimraf": { "rimraf": {
"version": "2.6.3", "version": "2.6.3",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
@@ -2791,6 +2828,11 @@
"glob": "^7.1.3" "glob": "^7.1.3"
} }
}, },
"run-parallel": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz",
"integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q=="
},
"safe-buffer": { "safe-buffer": {
"version": "5.1.2", "version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -3011,9 +3053,9 @@
} }
}, },
"source-map-support": { "source-map-support": {
"version": "0.5.11", "version": "0.5.12",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.11.tgz", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
"integrity": "sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ==", "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"buffer-from": "^1.0.0", "buffer-from": "^1.0.0",
@@ -3151,9 +3193,9 @@
} }
}, },
"tapable": { "tapable": {
"version": "1.1.1", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
"integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==" "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA=="
}, },
"tar-stream": { "tar-stream": {
"version": "1.6.1", "version": "1.6.1",
@@ -3236,16 +3278,24 @@
} }
}, },
"ts-node": { "ts-node": {
"version": "8.0.3", "version": "8.3.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.0.3.tgz", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz",
"integrity": "sha512-2qayBA4vdtVRuDo11DEFSsD/SFsBXQBRZZhbRGSIkmYmVkWjULn/GGMdG10KVqkaGndljfaTD8dKjWgcejO8YA==", "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"arg": "^4.1.0", "arg": "^4.1.0",
"diff": "^3.1.0", "diff": "^4.0.1",
"make-error": "^1.1.1", "make-error": "^1.1.1",
"source-map-support": "^0.5.6", "source-map-support": "^0.5.6",
"yn": "^3.0.0" "yn": "^3.0.0"
},
"dependencies": {
"diff": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz",
"integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==",
"dev": true
}
} }
}, },
"tslib": { "tslib": {
@@ -3255,36 +3305,24 @@
"dev": true "dev": true
}, },
"tslint": { "tslint": {
"version": "5.15.0", "version": "5.17.0",
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.15.0.tgz", "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.17.0.tgz",
"integrity": "sha512-6bIEujKR21/3nyeoX2uBnE8s+tMXCQXhqMmaIPJpHmXJoBJPTLcI7/VHRtUwMhnLVdwLqqY3zmd8Dxqa5CVdJA==", "integrity": "sha512-pflx87WfVoYepTet3xLfDOLDm9Jqi61UXIKePOuca0qoAZyrGWonDG9VTbji58Fy+8gciUn8Bt7y69+KEVjc/w==",
"dev": true, "dev": true,
"requires": { "requires": {
"babel-code-frame": "^6.22.0", "@babel/code-frame": "^7.0.0",
"builtin-modules": "^1.1.1", "builtin-modules": "^1.1.1",
"chalk": "^2.3.0", "chalk": "^2.3.0",
"commander": "^2.12.1", "commander": "^2.12.1",
"diff": "^3.2.0", "diff": "^3.2.0",
"glob": "^7.1.1", "glob": "^7.1.1",
"js-yaml": "^3.13.0", "js-yaml": "^3.13.1",
"minimatch": "^3.0.4", "minimatch": "^3.0.4",
"mkdirp": "^0.5.1", "mkdirp": "^0.5.1",
"resolve": "^1.3.2", "resolve": "^1.3.2",
"semver": "^5.3.0", "semver": "^5.3.0",
"tslib": "^1.8.0", "tslib": "^1.8.0",
"tsutils": "^2.29.0" "tsutils": "^2.29.0"
},
"dependencies": {
"js-yaml": {
"version": "3.13.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.0.tgz",
"integrity": "sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
}
}
} }
}, },
"tslint-config-prettier": { "tslint-config-prettier": {
@@ -3328,9 +3366,9 @@
"dev": true "dev": true
}, },
"typescript": { "typescript": {
"version": "3.4.1", "version": "3.5.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.1.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.2.tgz",
"integrity": "sha512-3NSMb2VzDQm8oBTLH6Nj55VVtUEpe/rgkIzMir0qVoLyjDZlnMBva0U6vDiV3IH+sl/Yu6oP5QwsAQtHPmDd2Q==", "integrity": "sha512-7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA==",
"dev": true "dev": true
}, },
"unbzip2-stream": { "unbzip2-stream": {
@@ -3534,29 +3572,41 @@
"dev": true "dev": true
}, },
"yargs": { "yargs": {
"version": "12.0.5", "version": "13.2.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz",
"integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==",
"dev": true, "dev": true,
"requires": { "requires": {
"cliui": "^4.0.0", "cliui": "^4.0.0",
"decamelize": "^1.2.0",
"find-up": "^3.0.0", "find-up": "^3.0.0",
"get-caller-file": "^1.0.1", "get-caller-file": "^2.0.1",
"os-locale": "^3.0.0", "os-locale": "^3.1.0",
"require-directory": "^2.1.1", "require-directory": "^2.1.1",
"require-main-filename": "^1.0.1", "require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0", "set-blocking": "^2.0.0",
"string-width": "^2.0.0", "string-width": "^3.0.0",
"which-module": "^2.0.0", "which-module": "^2.0.0",
"y18n": "^3.2.1 || ^4.0.0", "y18n": "^4.0.0",
"yargs-parser": "^11.1.1" "yargs-parser": "^13.0.0"
},
"dependencies": {
"string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
"dev": true,
"requires": {
"emoji-regex": "^7.0.1",
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^5.1.0"
}
}
} }
}, },
"yargs-parser": { "yargs-parser": {
"version": "11.1.1", "version": "13.0.0",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz",
"integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==",
"dev": true, "dev": true,
"requires": { "requires": {
"camelcase": "^5.0.0", "camelcase": "^5.0.0",
@@ -3572,6 +3622,50 @@
"flat": "^4.1.0", "flat": "^4.1.0",
"lodash": "^4.17.11", "lodash": "^4.17.11",
"yargs": "^12.0.5" "yargs": "^12.0.5"
},
"dependencies": {
"get-caller-file": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
"integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
"dev": true
},
"require-main-filename": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
"integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
"dev": true
},
"yargs": {
"version": "12.0.5",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
"integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
"dev": true,
"requires": {
"cliui": "^4.0.0",
"decamelize": "^1.2.0",
"find-up": "^3.0.0",
"get-caller-file": "^1.0.1",
"os-locale": "^3.0.0",
"require-directory": "^2.1.1",
"require-main-filename": "^1.0.1",
"set-blocking": "^2.0.0",
"string-width": "^2.0.0",
"which-module": "^2.0.0",
"y18n": "^3.2.1 || ^4.0.0",
"yargs-parser": "^11.1.1"
}
},
"yargs-parser": {
"version": "11.1.1",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
"integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
"dev": true,
"requires": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
}
}
} }
}, },
"yauzl": { "yauzl": {
@@ -3584,9 +3678,9 @@
} }
}, },
"yn": { "yn": {
"version": "3.0.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.0.0.tgz", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz",
"integrity": "sha512-+Wo/p5VRfxUgBUGy2j/6KX2mj9AYJWOHuhMjMcbBFc3y54o9/4buK1ksBvuiK01C3kby8DH9lSmJdSxw+4G/2Q==", "integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==",
"dev": true "dev": true
} }
} }
+10 -10
View File
@@ -2,14 +2,14 @@
"name": "nexe", "name": "nexe",
"description": "Create a single executable out of your Node.js application", "description": "Create a single executable out of your Node.js application",
"license": "MIT", "license": "MIT",
"version": "3.0.5", "version": "3.3.5",
"contributors": [ "contributors": [
"Craig Condon <craig.j.condon@gmail.com> (http://crcn.io)", "Craig Condon <craig.j.condon@gmail.com> (http://crcn.io)",
"Jared Allard <jaredallard@outlook.com>", "Jared Allard <jaredallard@outlook.com>",
"Caleb Boyd <caleb.boyd@hotmail.com>" "Caleb Boyd <caleb.boyd@hotmail.com>"
], ],
"scripts": { "scripts": {
"asset-compile": "ts-node tasks/asset-compile", "ci:build": "ts-node tasks/build",
"test": "mocha", "test": "mocha",
"lint": "tslint \"{src,plugins,tasks}/**/*.ts\" --fix", "lint": "tslint \"{src,plugins,tasks}/**/*.ts\" --fix",
"prepare": "npm run lint && npm run build && npm test", "prepare": "npm run lint && npm run build && npm test",
@@ -46,7 +46,7 @@
"multistream": "^2.1.1", "multistream": "^2.1.1",
"ora": "^3.4.0", "ora": "^3.4.0",
"pify": "^4.0.1", "pify": "^4.0.1",
"resolve-dependencies": "^2.2.2", "resolve-dependencies": "^4.2.3",
"rimraf": "^2.6.3" "rimraf": "^2.6.3"
}, },
"devDependencies": { "devDependencies": {
@@ -54,10 +54,10 @@
"@types/download": "^6.2.4", "@types/download": "^6.2.4",
"@types/execa": "^0.9.0", "@types/execa": "^0.9.0",
"@types/globby": "^9.1.0", "@types/globby": "^9.1.0",
"@types/got": "^9.4.1", "@types/got": "^9.6.0",
"@types/minimist": "^1.2.0", "@types/minimist": "^1.2.0",
"@types/mkdirp": "^0.5.2", "@types/mkdirp": "^0.5.2",
"@types/mocha": "^5.2.6", "@types/mocha": "^5.2.7",
"@types/multistream": "^2.1.1", "@types/multistream": "^2.1.1",
"@types/ora": "^3.2.0", "@types/ora": "^3.2.0",
"@types/pify": "3.0.2", "@types/pify": "3.0.2",
@@ -65,12 +65,12 @@
"@types/semver": "^6.0.0", "@types/semver": "^6.0.0",
"chai": "^4.2.0", "chai": "^4.2.0",
"execa": "^1.0.0", "execa": "^1.0.0",
"mocha": "^6.0.2", "mocha": "^6.1.4",
"prettier": "^1.16.4", "prettier": "^1.18.2",
"ts-node": "^8.0.3", "ts-node": "^8.3.0",
"tslint": "^5.15.0", "tslint": "^5.17.0",
"tslint-config-prettier": "^1.18.0", "tslint-config-prettier": "^1.18.0",
"tslint-plugin-prettier": "^2.0.1", "tslint-plugin-prettier": "^2.0.1",
"typescript": "^3.4.1" "typescript": "^3.5.2"
} }
} }
+4 -1
View File
@@ -112,7 +112,7 @@ export class NexeCompiler {
this.remoteAsset = options.asset this.remoteAsset = options.asset
} else { } else {
this.remoteAsset = this.remoteAsset =
'https://github.com/nexe/nexe/releases/download/v3.0.0/' + this.target.toString() 'https://github.com/nexe/nexe/releases/download/v3.3.3/' + this.target.toString()
} }
this.src = join(this.options.temp, this.target.version) this.src = join(this.options.temp, this.target.version)
this.configureScript = configure + (semverGt(this.target.version, '10.10.0') ? '.py' : '') this.configureScript = configure + (semverGt(this.target.version, '10.10.0') ? '.py' : '')
@@ -237,6 +237,9 @@ export class NexeCompiler {
} }
private _configureAsync() { private _configureAsync() {
if (isWindows && semverGt(this.target.version, '10.15.99')) {
return Promise.resolve()
}
return this._runBuildCommandAsync(this.env.PYTHON || 'python', [ return this._runBuildCommandAsync(this.env.PYTHON || 'python', [
this.configureScript, this.configureScript,
...this.options.configure ...this.options.configure
+64 -26
View File
@@ -13,24 +13,13 @@ export interface NexeBinary {
} }
let originalFsMethods: any = null let originalFsMethods: any = null
let nexeBinary: NexeBinary | null = null let lazyRestoreFs = () => {}
function restoreFs(fs: any = require('fs')): NexeBinary | false {
if (!nexeBinary) {
return false
}
const source = nexeBinary
Object.assign(fs, originalFsMethods)
nexeBinary = originalFsMethods = null
return source
}
function shimFs(binary: NexeBinary, fs: any = require('fs')) { function shimFs(binary: NexeBinary, fs: any = require('fs')) {
if (originalFsMethods !== null) { if (originalFsMethods !== null) {
return return
} }
originalFsMethods = Object.assign({}, fs) originalFsMethods = Object.assign({}, fs)
nexeBinary = binary
const { blobPath, resources: manifest } = binary, const { blobPath, resources: manifest } = binary,
{ resourceStart, stat } = binary.layout, { resourceStart, stat } = binary.layout,
directories: { [key: string]: { [key: string]: boolean } } = {}, directories: { [key: string]: { [key: string]: boolean } } = {},
@@ -41,11 +30,18 @@ function shimFs(binary: NexeBinary, fs: any = require('fs')) {
path = require('path'), path = require('path'),
baseDir = path.dirname(process.execPath) baseDir = path.dirname(process.execPath)
let log = (text: string) => true let log = (_: string) => true
if ((process.env.DEBUG || '').toLowerCase().includes('nexe:require')) { if ((process.env.DEBUG || '').toLowerCase().includes('nexe:require')) {
log = (text: string) => process.stderr.write('[nexe] - ' + text + '\n') log = (text: string) => process.stderr.write('[nexe] - ' + text + '\n')
} }
const winPath = (key: string) => {
if (isWin && key.substr(1, 2) === ':\\') {
key = key[0].toUpperCase() + key.substr(1)
}
return key
}
const getKey = function getKey(filepath: string | Buffer | null): string { const getKey = function getKey(filepath: string | Buffer | null): string {
if (Buffer.isBuffer(filepath)) { if (Buffer.isBuffer(filepath)) {
filepath = filepath.toString() filepath = filepath.toString()
@@ -55,10 +51,7 @@ function shimFs(binary: NexeBinary, fs: any = require('fs')) {
} }
let key = path.resolve(baseDir, filepath) let key = path.resolve(baseDir, filepath)
if (isWin && key.substr(1, 2) === ':\\') { return winPath(key)
key = key[0].toUpperCase() + key.substr(1)
}
return key
} }
const statTime = function() { const statTime = function() {
@@ -113,7 +106,7 @@ function shimFs(binary: NexeBinary, fs: any = require('fs')) {
const entry = manifest[filepath] const entry = manifest[filepath]
const absolutePath = getKey(filepath) const absolutePath = getKey(filepath)
const longPath = makeLong(absolutePath) const longPath = makeLong(absolutePath)
const normalizedPath = path.normalize(filepath) const normalizedPath = winPath(path.normalize(filepath))
if (!manifest[absolutePath]) { if (!manifest[absolutePath]) {
manifest[absolutePath] = entry manifest[absolutePath] = entry
@@ -203,19 +196,19 @@ function shimFs(binary: NexeBinary, fs: any = require('fs')) {
const encoding = fileOpts(options).encoding const encoding = fileOpts(options).encoding
callback = typeof options === 'function' ? options : callback callback = typeof options === 'function' ? options : callback
fs.open(blobPath, 'r', function(err: Error, fd: number) { originalFsMethods.open(blobPath, 'r', function(err: Error, fd: number) {
if (err) return callback(err, null) if (err) return callback(err, null)
fs.read(fd, Buffer.alloc(length), 0, length, resourceOffset, function( originalFsMethods.read(fd, Buffer.alloc(length), 0, length, resourceOffset, function(
error: Error, error: Error,
bytesRead: number, bytesRead: number,
result: Buffer result: Buffer
) { ) {
if (error) { if (error) {
return fs.close(fd, function() { return originalFsMethods.close(fd, function() {
callback(error, null) callback(error, null)
}) })
} }
fs.close(fd, function(err: Error) { originalFsMethods.close(fd, function(err: Error) {
if (err) { if (err) {
return callback(err, result) return callback(err, result)
} }
@@ -234,7 +227,7 @@ function shimFs(binary: NexeBinary, fs: any = require('fs')) {
const resourceOffset = resourceStart + offset const resourceOffset = resourceStart + offset
const opts = fileOpts(options) const opts = fileOpts(options)
return fs.createReadStream( return originalFsMethods.createReadStream(
blobPath, blobPath,
Object.assign({}, opts, { Object.assign({}, opts, {
start: resourceOffset, start: resourceOffset,
@@ -251,10 +244,10 @@ function shimFs(binary: NexeBinary, fs: any = require('fs')) {
const [offset, length] = entry const [offset, length] = entry
const resourceOffset = resourceStart + offset const resourceOffset = resourceStart + offset
const encoding = fileOpts(options).encoding const encoding = fileOpts(options).encoding
const fd = fs.openSync(process.execPath, 'r') const fd = originalFsMethods.openSync(process.execPath, 'r')
const result = Buffer.alloc(length) const result = Buffer.alloc(length)
fs.readSync(fd, result, 0, length, resourceOffset) originalFsMethods.readSync(fd, result, 0, length, resourceOffset)
fs.closeSync(fd) originalFsMethods.closeSync(fd)
return encoding ? result.toString(encoding) : result return encoding ? result.toString(encoding) : result
}, },
statSync: function statSync(filepath: string | Buffer) { statSync: function statSync(filepath: string | Buffer) {
@@ -329,8 +322,53 @@ function shimFs(binary: NexeBinary, fs: any = require('fs')) {
process.nextTick(() => cb(exists)) process.nextTick(() => cb(exists))
} }
} }
if (typeof fs.copyFile === 'function') {
nfs.copyFile = function(filepath: string, dest: string, flags: number, callback: Function) {
setupManifest()
const entry = manifest[getKey(filepath)]
if (!entry) {
return originalFsMethods.copyFile.apply(fs, arguments)
}
if (typeof flags === 'function') {
callback = flags
flags = 0
}
nfs.readFile(filepath, (err: any, buffer: any) => {
if (err) {
return callback(err)
}
originalFsMethods.writeFile(dest, buffer, (err: any) => {
if (err) {
return callback(err)
}
callback(null)
})
})
}
nfs.copyFileSync = function(filepath: string, dest: string) {
setupManifest()
const entry = manifest[getKey(filepath)]
if (!entry) {
return originalFsMethods.copyFileSync.apply(fs, arguments)
}
return originalFsMethods.writeFileSync(dest, nfs.readFileSync(filepath))
}
}
Object.assign(fs, nfs) Object.assign(fs, nfs)
lazyRestoreFs = () => {
Object.keys(nfs).forEach(key => {
fs[key] = originalFsMethods[key]
})
lazyRestoreFs = () => {}
}
return true return true
} }
function restoreFs() {
lazyRestoreFs()
}
export { shimFs, restoreFs } export { shimFs, restoreFs }
+8 -6
View File
@@ -5,7 +5,7 @@ import { basename, extname, join, isAbsolute, resolve } from 'path'
import { getTarget, NexeTarget } from './target' import { getTarget, NexeTarget } from './target'
import { EOL, homedir } from 'os' import { EOL, homedir } from 'os'
import chalk from 'chalk' import chalk from 'chalk'
import { resolveFileNameSync } from 'resolve-dependencies' import { resolveSync } from 'resolve-dependencies'
const caw = require('caw') const caw = require('caw')
const c = process.platform === 'win32' ? chalk.constructor({ enabled: false }) : chalk const c = process.platform === 'win32' ? chalk.constructor({ enabled: false }) : chalk
@@ -23,6 +23,7 @@ export interface NexeOptions {
name: string name: string
asset: string asset: string
cwd: string cwd: string
fs: boolean | string[]
flags: string[] flags: string[]
configure: string[] configure: string[]
vcBuild: string[] vcBuild: string[]
@@ -59,6 +60,7 @@ export interface NexeOptions {
const defaults = { const defaults = {
flags: [], flags: [],
cwd: process.cwd(), cwd: process.cwd(),
fs: true,
configure: [], configure: [],
mangle: true, mangle: true,
make: [], make: [],
@@ -78,7 +80,7 @@ const alias = {
b: 'build', b: 'build',
n: 'name', n: 'name',
r: 'resource', r: 'resource',
a: 'resource', a: 'asset',
p: 'python', p: 'python',
f: 'flag', f: 'flag',
c: 'configure', c: 'configure',
@@ -109,7 +111,7 @@ ${c.bold('nexe <entry-file> [options]')}
-f --flag -- *v8 flags to include during compilation -f --flag -- *v8 flags to include during compilation
-c --configure -- *arguments to the configure step -c --configure -- *arguments to the configure step
-m --make -- *arguments to the make/build step -m --make -- *arguments to the make/build step
--patch -- module with middelware default export for adding a build patch --patch -- module with middleware default export for adding a build patch
--no-mangle -- used when generating base binaries, or when patching _third_party_main manually. --no-mangle -- used when generating base binaries, or when patching _third_party_main manually.
--snapshot -- path to a warmup snapshot --snapshot -- path to a warmup snapshot
--ico -- file name for alternate icon file (windows) --ico -- file name for alternate icon file (windows)
@@ -206,17 +208,17 @@ export function resolveEntry(
} }
if (input) { if (input) {
const inputPath = padRelative(input) const inputPath = padRelative(input)
result = resolveFileNameSync(cwd, inputPath) result = resolveSync(cwd, inputPath)
} }
if (isEntryFile(maybeEntry) && (!result || !result.absPath)) { if (isEntryFile(maybeEntry) && (!result || !result.absPath)) {
const inputPath = padRelative(maybeEntry) const inputPath = padRelative(maybeEntry)
result = resolveFileNameSync(cwd, inputPath) result = resolveSync(cwd, inputPath)
} }
if (!process.stdin.isTTY && (!result || !result.absPath) && bundle === defaults.bundle) { if (!process.stdin.isTTY && (!result || !result.absPath) && bundle === defaults.bundle) {
return STDIN_FLAG return STDIN_FLAG
} }
if (!result || !result.absPath) { if (!result || !result.absPath) {
result = resolveFileNameSync(cwd, '.') result = resolveSync(cwd, '.')
} }
if (!result.absPath) { if (!result.absPath) {
throw new NexeError(`Entry file "${input || ''}" not found!`) throw new NexeError(`Entry file "${input || ''}" not found!`)
+8 -2
View File
@@ -1,5 +1,6 @@
import { resolve } from 'path' import { resolve } from 'path'
import { NexeCompiler } from '../compiler' import { NexeCompiler } from '../compiler'
import { semverGt } from '../util'
export default async function(compiler: NexeCompiler, next: () => Promise<void>) { export default async function(compiler: NexeCompiler, next: () => Promise<void>) {
const { snapshot, warmup, cwd } = compiler.options const { snapshot, warmup, cwd } = compiler.options
@@ -8,13 +9,18 @@ export default async function(compiler: NexeCompiler, next: () => Promise<void>)
return next() return next()
} }
const variablePrefix = semverGt(compiler.target.version, '11.0.0') ? 'v8_' : ''
await compiler.replaceInFileAsync( await compiler.replaceInFileAsync(
compiler.configureScript, compiler.configureScript,
'def configure_v8(o):', 'def configure_v8(o):',
`def configure_v8(o):\n o['variables']['embed_script'] = r'${resolve( `def configure_v8(o):\n o['variables']['${variablePrefix}embed_script'] = r'${resolve(
cwd, cwd,
snapshot snapshot
)}'\n o['variables']['warmup_script'] = r'${resolve(cwd, warmup || snapshot)}'` )}'\n o['variables']['${variablePrefix}warmup_script'] = r'${resolve(
cwd,
warmup || snapshot
)}'`
) )
return next() return next()
+28 -6
View File
@@ -1,6 +1,6 @@
import { NexeCompiler } from '../compiler' import { NexeCompiler } from '../compiler'
import { parse } from 'cherow' import { parse } from 'cherow'
import { semverGt } from '../util' import { wrap, semverGt } from '../util'
function walkSome(node: any, visit: Function) { function walkSome(node: any, visit: Function) {
if (!node || typeof node.type !== 'string' || node._visited) { if (!node || typeof node.type !== 'string' || node._visited) {
@@ -29,6 +29,8 @@ export default async function main(compiler: NexeCompiler, next: () => Promise<v
if (version.startsWith('4.')) { if (version.startsWith('4.')) {
bootFile = 'src/node.js' bootFile = 'src/node.js'
} else if (semverGt(version, '11.99')) {
bootFile = 'lib/internal/bootstrap/pre_execution.js'
} else if (semverGt(version, '9.10.1')) { } else if (semverGt(version, '9.10.1')) {
bootFile = 'lib/internal/bootstrap/node.js' bootFile = 'lib/internal/bootstrap/node.js'
} }
@@ -53,12 +55,32 @@ export default async function main(compiler: NexeCompiler, next: () => Promise<v
}) })
const fileLines = file.contents.split('\n') const fileLines = file.contents.split('\n')
fileLines.splice(location.start.line, 0, '{{replace:lib/fs/bootstrap.js}}' + '\n') fileLines.splice(
location.start.line,
0,
'{{replace:lib/fs/bootstrap.js}}' +
'\n' +
(semverGt(version, '11.99') ? 'expandArgv1 = false;\n' : '')
)
file.contents = fileLines.join('\n') file.contents = fileLines.join('\n')
await compiler.setFileContentsAsync( if (semverGt(version, '11.99')) {
'lib/_third_party_main.js', await compiler.replaceInFileAsync(
'{{replace:lib/patches/boot-nexe.js}}' bootFile,
) 'initializePolicy();',
'initializePolicy();\n' + wrap('{{replace:lib/patches/boot-nexe.js}}')
)
await compiler.replaceInFileAsync(
'src/node.cc',
'MaybeLocal<Value> StartMainThreadExecution(Environment* env) {',
'MaybeLocal<Value> StartMainThreadExecution(Environment* env) {\n' +
' return StartExecution(env, "internal/main/run_main_module");\n'
)
} else {
await compiler.setFileContentsAsync(
'lib/_third_party_main.js',
'{{replace:lib/patches/boot-nexe.js}}'
)
}
return next() return next()
} }
+3 -3
View File
@@ -29,15 +29,15 @@ function isBuildableVersion(version: string) {
return !versionsToSkip.includes(major) || version === '4.8.4' return !versionsToSkip.includes(major) || version === '4.8.4'
} }
export function getLatestGitRelease(options?: any) { export function getV3GitRelease(options?: any) {
return getJson<GitRelease>('https://api.github.com/repos/nexe/nexe/releases/latest', options) return getJson<GitRelease>('https://api.github.com/repos/nexe/nexe/releases/7567580/', options)
} }
export async function getUnBuiltReleases(options?: any) { export async function getUnBuiltReleases(options?: any) {
const nodeReleases = await getJson<NodeRelease[]>( const nodeReleases = await getJson<NodeRelease[]>(
'https://nodejs.org/download/release/index.json' 'https://nodejs.org/download/release/index.json'
) )
const existingVersions = (await getLatestGitRelease(options)).assets.map(x => getTarget(x.name)) const existingVersions = (await getV3GitRelease(options)).assets.map(x => getTarget(x.name))
const versionMap: { [key: string]: true } = {} const versionMap: { [key: string]: true } = {}
return nodeReleases return nodeReleases
+16 -6
View File
@@ -1,13 +1,13 @@
import { NexeCompiler, NexeError } from '../compiler' import { NexeCompiler, NexeError } from '../compiler'
import { resolve, relative } from 'path' import { resolve, relative } from 'path'
import { each } from '@calebboyd/semaphore' import { each } from '@calebboyd/semaphore'
import resolveFiles, { resolveFileNameSync } from 'resolve-dependencies' import resolveFiles, { resolveSync } from 'resolve-dependencies'
import { dequote, STDIN_FLAG } from '../util' import { dequote, STDIN_FLAG, semverGt } from '../util'
import { Readable } from 'stream' import { Readable } from 'stream'
function getStdIn(stdin: Readable): Promise<string> { function getStdIn(stdin: Readable): Promise<string> {
let out = ''
return new Promise(resolve => { return new Promise(resolve => {
let out = ''
stdin stdin
.setEncoding('utf8') .setEncoding('utf8')
.on('readable', () => { .on('readable', () => {
@@ -17,6 +17,11 @@ function getStdIn(stdin: Readable): Promise<string> {
} }
}) })
.on('end', () => resolve(out.trim())) .on('end', () => resolve(out.trim()))
setTimeout(() => {
if (!out.trim()) {
resolve(out.trim())
}
}, 1000)
}) })
} }
@@ -24,7 +29,12 @@ export default async function bundle(compiler: NexeCompiler, next: any) {
const { bundle, cwd, input: inputPath } = compiler.options const { bundle, cwd, input: inputPath } = compiler.options
let input = inputPath let input = inputPath
compiler.entrypoint = './' + relative(cwd, input) compiler.entrypoint = './' + relative(cwd, input)
compiler.startup = ';require("module").runMain();'
if (semverGt(compiler.target.version, '11.99')) {
compiler.startup = ''
} else {
compiler.startup = ';require("module").runMain();'
}
if (!bundle) { if (!bundle) {
await compiler.addResource(resolve(cwd, input)) await compiler.addResource(resolve(cwd, input))
@@ -44,7 +54,7 @@ export default async function bundle(compiler: NexeCompiler, next: any) {
} }
if (input === STDIN_FLAG) { if (input === STDIN_FLAG) {
const maybeInput = resolveFileNameSync(cwd, '.') const maybeInput = resolveSync(cwd, '.')
if (!maybeInput || !maybeInput.absPath) { if (!maybeInput || !maybeInput.absPath) {
throw new NexeError('No valid input detected') throw new NexeError('No valid input detected')
} }
@@ -55,7 +65,7 @@ export default async function bundle(compiler: NexeCompiler, next: any) {
const { files, warnings } = await resolveFiles( const { files, warnings } = await resolveFiles(
input, input,
...Object.keys(compiler.bundle.index).filter(x => x.endsWith('.js')), ...Object.keys(compiler.bundle.index).filter(x => x.endsWith('.js')),
{ cwd, expand: true, loadContent: false } { cwd, expand: 'all', loadContent: false }
) )
if ( if (
+2 -1
View File
@@ -51,7 +51,8 @@ export default async function cli(compiler: NexeCompiler, next: () => Promise<vo
: inputFileLogOutput : inputFileLogOutput
}' written to: ${outputFileLogOutput}` }' written to: ${outputFileLogOutput}`
) )
res(compiler.quit()) compiler.quit()
res(output)
} }
}) })
}) })
+3 -1
View File
@@ -6,7 +6,9 @@ export default function(compiler: NexeCompiler, next: () => Promise<void>) {
wrap( wrap(
`process.__nexe = ${JSON.stringify(compiler.binaryConfiguration)};\n` + `process.__nexe = ${JSON.stringify(compiler.binaryConfiguration)};\n` +
'{{replace:lib/fs/patch.js}}' + '{{replace:lib/fs/patch.js}}' +
'\nshimFs(process.__nexe)' '\nshimFs(process.__nexe)' +
`\n${compiler.options.fs ? '' : 'restoreFs()'}`
//TODO support only restoring specific methods
) )
) )
compiler.shims.push( compiler.shims.push(
-106
View File
@@ -1,106 +0,0 @@
import * as nexe from '../lib/nexe'
import { getUnBuiltReleases, getLatestGitRelease } from '../lib/releases'
import * as ci from './ci'
import { runDockerBuild } from './docker'
import { getTarget, targetsEqual } from '../lib/target'
import { pathExistsAsync, readFileAsync, execFileAsync } from '../lib/util'
import got = require('got')
const env = process.env,
branchName = env.CIRCLE_BRANCH || env.APPVEYOR_REPO_BRANCH || env.TRAVIS_BRANCH || '',
isScheduled = Boolean(env.APPVEYOR_SCHEDULED_BUILD || env.NEXE_TRIGGERED),
isWindows = Boolean(env.APPVEYOR),
isPullRequest =
Boolean(env.CIRCLE_PR_NUMBER) ||
Boolean(env.APPVEYOR_PULL_REQUEST_NUMBER) ||
Boolean(env.TRAVIS_PULL_REQUEST_BRANCH),
headers = {
Authorization: 'token ' + env.GITHUB_TOKEN,
'User-Agent': 'nexe (https://www.npmjs.com/package/nexe)'
}
if (require.main === module) {
if (!isPullRequest) {
build().catch(x => {
console.error(x)
process.exit(1)
})
}
}
async function build() {
if (isScheduled) {
const releases = await getUnBuiltReleases({ headers })
if (!releases.length) {
return
}
const windowsBuild = releases.find(x => x.platform === 'windows')
const macBuild = releases.find(x => x.platform === 'mac')
const linuxOrAlpine = releases.find(x => x.platform === 'linux' || x.platform === 'alpine')
if (linuxOrAlpine) {
await ci.triggerDockerBuild(linuxOrAlpine, branchName)
}
if (macBuild) {
await ci.triggerMacBuild(macBuild, branchName)
}
if (windowsBuild) {
await ci.triggerWindowsBuild(windowsBuild)
}
}
if (env.NEXE_VERSION) {
const target = getTarget(env.NEXE_VERSION),
output = isWindows ? './out.exe' : './out',
options = {
empty: true,
build: true,
target,
output
}
console.log('Building: ', target)
const stop = keepalive()
if (['arm7l', 'arm6l', 'arm64', 'alpine'].includes(target.platform)) {
await runDockerBuild(target)
} else {
await nexe.compile(options)
}
stop()
if (await pathExistsAsync(output)) {
await assertNexeBinary(output)
const gitRelease = await getLatestGitRelease({ headers })
const unbuiltReleases = await getUnBuiltReleases({ headers })
if (!unbuiltReleases.some(x => targetsEqual(x, target))) {
console.log(`${target} already uploaded.`)
return
}
await got(gitRelease.upload_url.split('{')[0], {
query: { name: target.toString() },
body: await readFileAsync(output),
headers: {
...headers,
'Content-Type': 'application/octet-stream'
}
}).catch(reason => {
console.log(reason && reason.response && reason.response.body)
throw reason
})
console.log(target + ' uploaded.')
}
}
}
function keepalive() {
const keepalive = setInterval(() => console.log('Building...'), 300 * 1000)
return () => clearInterval(keepalive)
}
function assertNexeBinary(file: string) {
return execFileAsync(file).catch(e => {
if (e && e.stack && e.stack.includes('Invalid Nexe binary')) {
return
}
throw e
})
}
+116
View File
@@ -0,0 +1,116 @@
import * as nexe from '../lib/nexe'
import { getUnBuiltReleases, getV3GitRelease } from '../lib/releases'
import { runDockerBuild } from './docker'
import { getTarget, targetsEqual, NexeTarget } from '../lib/target'
import { pathExistsAsync, readFileAsync, execFileAsync, semverGt } from '../lib/util'
import got = require('got')
import { cpus } from 'os'
const env = process.env,
isPullRequest = env.BUILD_REASON === 'PullRequest',
isWindows = process.platform === 'win32',
isLinux = process.platform === 'linux',
buildHost = env.AGENT_JOBNAME || (isWindows && 'windows_2017_2015') || '',
isMac = process.platform === 'darwin',
headers = {
Authorization: 'token ' + env.GITHUB_TOKEN,
'User-Agent': 'nexe (https://www.npmjs.com/package/nexe)'
}
if (require.main === module) {
if (!isPullRequest) {
build().catch(x => {
console.error(x)
process.exit(1)
})
}
}
async function build() {
const releases = await getUnBuiltReleases({ headers })
if (!releases.length) {
return
}
const windowsBuild = releases.find(x => x.platform === 'windows'),
macBuild = releases.find(x => x.platform === 'mac'),
linux = releases.find(x => x.platform === 'linux'),
alpine = releases.find(x => x.platform === 'alpine')
let target: NexeTarget | undefined
if (env.NEXE_VERSION) target = getTarget(env.NEXE_VERSION)
else if (isWindows) target = windowsBuild
else if (isMac) target = macBuild
else if (isLinux) target = linux
if (buildHost.includes('alpine')) target = alpine
if (!target) {
return console.log('Nothing to build...')
}
if (isWindows && buildHost.includes('2017') && !semverGt(target.version, '9.99.99')) {
return console.log(`Not building ${target} on this host...`)
}
if (isWindows && buildHost.includes('2015') && semverGt(target.version, '9.99.99')) {
return console.log(`Not building ${target} on this host...`)
}
const output = isWindows ? './out.exe' : './out',
options = {
mangle: false,
build: true,
verbose: Boolean(env.NEXE_VERBOSE!),
target,
make: ['-j' + cpus().length],
output
}
console.log('Building: ' + target + ' on ' + buildHost)
const stop = keepalive()
if (
[/*'arm7l', 'arm6l', 'arm64', */ 'alpine'].includes(target.platform) &&
buildHost.includes('alpine')
) {
await runDockerBuild(target)
} else {
await nexe.compile(options)
}
stop()
if (await pathExistsAsync(output)) {
await assertNexeBinary(output)
const gitRelease = await getV3GitRelease({ headers }),
unbuiltReleases = await getUnBuiltReleases({ headers })
if (!unbuiltReleases.some(x => targetsEqual(x, target!))) {
console.log(`${target} already uploaded.`)
process.exit(0)
return
}
await got(gitRelease.upload_url.split('{')[0], {
query: { name: target.toString() },
body: await readFileAsync(output),
headers: {
...headers,
'Content-Type': 'application/octet-stream'
}
}).catch(reason => {
console.log(reason && reason.response && reason.response.body)
throw reason
})
console.log(target + ' uploaded.')
process.exit(0)
}
}
function keepalive() {
const keepalive = setInterval(() => console.log('Building...'), 300 * 1000)
return () => clearInterval(keepalive)
}
function assertNexeBinary(file: string) {
return execFileAsync(file).catch(e => {
if (e && e.stack && e.stack.includes('Invalid Nexe binary')) {
return
}
throw e
})
}
-58
View File
@@ -1,58 +0,0 @@
import { NexeTarget } from '../lib/releases'
import got = require('got')
import * as assert from 'assert'
import { getTarget } from '../lib/target'
const { env } = process
export function triggerMacBuild(release: NexeTarget, branch: string) {
assert.ok(env.CIRCLE_TOKEN)
const circle = `https://circleci.com/api/v1.1/project/github/nexe/nexe/tree/${branch}?circle-token=${
env.CIRCLE_TOKEN
}`
return got(circle, {
json: true,
body: {
build_parameters: {
NEXE_VERSION: release.toString()
}
}
})
}
export function triggerDockerBuild(release: NexeTarget, branch: string) {
assert.ok(env.TRAVIS_TOKEN)
const travis = `https://api.travis-ci.org/repo/nexe%2Fnexe/requests`
return got(travis, {
json: true,
body: {
request: {
branch: branch,
config: {
merge_mode: 'deep_merge',
env: {
//use matrix so that secure global variable is merged
matrix: {
NEXE_VERSION: release.toString()
}
}
}
}
},
headers: {
'Travis-API-Version': '3',
Authorization: `token ${env.TRAVIS_TOKEN}`
}
})
}
export function triggerWindowsBuild(release: NexeTarget) {
const version = 'NEXE_VERSION' in env ? env.NEXE_VERSION!.trim() : release.toString()
if (getTarget(version).version.startsWith('10.')) {
if ((env.APPVEYOR_BUILD_WORKER_IMAGE || '').includes('2017')) {
env.NEXE_VERSION = version
}
} else {
env.NEXE_VERSION = version
}
return Promise.resolve()
}
+3 -2
View File
@@ -20,8 +20,9 @@ RUN curl -sSL https://nodejs.org/dist/v\${NODE_VERSION}/node-v\${NODE_VERSION}.t
paxctl -cm /usr/bin/node paxctl -cm /usr/bin/node
RUN rm /nexe_temp/\${NODE_VERSION}/out/Release/node && \ RUN rm /nexe_temp/\${NODE_VERSION}/out/Release/node && \
npm install -g nexe@\${NEXE_VERSION} && \ npm install -g nexe@\${NEXE_VERSION}
nexe --build --no-mangle --temp /nexe_temp -c="--fully-static" -o out --enableStdIn=false RUN echo "console.log('hello world')" >> index.js && \
nexe --build --no-mangle --temp /nexe_temp -c="--fully-static" -o out
`.trim() `.trim()
} }
+6 -2
View File
@@ -10,9 +10,13 @@ describe('options', () => {
const options = normalizeOptions() const options = normalizeOptions()
expect(options.cwd).to.equal(process.cwd()) expect(options.cwd).to.equal(process.cwd())
}) })
it('should use the main module in a package directory', () => { it('should use the main module in a package directory (if not in a TTY)', () => {
const options = normalizeOptions() const options = normalizeOptions()
expect(options.input).to.equal(path.resolve('./index.js')) if (!process.stdin.isTTY) {
expect(options.input).to.equal('[stdin]')
} else {
expect(options.input).to.equal(path.resolve('./index.js'))
}
}) })
it('should resolve relative paths for input', () => { it('should resolve relative paths for input', () => {
const options = normalizeOptions({ input: 'test/fixture/entry.js' }) const options = normalizeOptions({ input: 'test/fixture/entry.js' })