feat(cli): refactor cli build

This commit is contained in:
LongYinan 2021-11-19 14:58:21 +08:00
parent b3446092d0
commit 4c3fe26478
No known key found for this signature in database
GPG key ID: C3666B7FC82ADAD7
36 changed files with 486 additions and 313 deletions

View file

@ -13,3 +13,4 @@ __mock__
target target
scripts scripts
triples/index.js triples/index.js
rollup.config.js

View file

@ -3,7 +3,7 @@ parser: '@typescript-eslint/parser'
parserOptions: parserOptions:
ecmaFeatures: ecmaFeatures:
jsx: true jsx: true
ecmaVersion: 2020 ecmaVersion: latest
sourceType: module sourceType: module
extraFileExtensions: ['.cjs', '.mjs'] extraFileExtensions: ['.cjs', '.mjs']

View file

@ -19,7 +19,9 @@ jobs:
- name: Setup node - name: Setup node
uses: actions/setup-node@v1 uses: actions/setup-node@v1
with: with:
node-version: 14 node-version: 16
cache: 'yarn'
check-latest: true
- name: List NDK Home - name: List NDK Home
run: ls -R "${ANDROID_NDK_HOME}" run: ls -R "${ANDROID_NDK_HOME}"
@ -30,9 +32,7 @@ jobs:
toolchain: stable toolchain: stable
profile: minimal profile: minimal
override: true override: true
target: 'aarch64-linux-android'
- name: Install aarch64 toolchain
run: rustup target add aarch64-linux-android
- name: Generate Cargo.lock - name: Generate Cargo.lock
uses: actions-rs/cargo@v1 uses: actions-rs/cargo@v1
@ -43,19 +43,19 @@ jobs:
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: ~/.cargo/registry path: ~/.cargo/registry
key: stable-macos-android-node@14-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }} key: stable-macos-android-node@16-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo index - name: Cache cargo index
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: ~/.cargo/git path: ~/.cargo/git
key: stable-macos-android-node@14-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }} key: stable-macos-android-node@16-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }}
- name: Cache NPM dependencies - name: Cache NPM dependencies
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: node_modules path: node_modules
key: npm-cache-macos-android-node@14-${{ hashFiles('yarn.lock') }} key: npm-cache-macos-android-node@16-${{ hashFiles('yarn.lock') }}
- name: Install dependencies - name: Install dependencies
run: yarn install --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000 run: yarn install --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000

View file

@ -21,8 +21,9 @@ jobs:
- name: Setup node - name: Setup node
uses: actions/setup-node@v2 uses: actions/setup-node@v2
with: with:
node-version: 14 node-version: 16
check-latest: true check-latest: true
cache: 'yarn'
- name: Install - name: Install
uses: actions-rs/toolchain@v1 uses: actions-rs/toolchain@v1

View file

@ -17,8 +17,9 @@ jobs:
- name: Setup node - name: Setup node
uses: actions/setup-node@v2 uses: actions/setup-node@v2
with: with:
node-version: 14 node-version: 16
check-latest: true check-latest: true
cache: 'yarn'
- name: Install - name: Install
uses: actions-rs/toolchain@v1 uses: actions-rs/toolchain@v1

View file

@ -2,7 +2,6 @@ name: Linux-aarch64-musl
env: env:
DEBUG: 'napi:*' DEBUG: 'napi:*'
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER: 'aarch64-linux-musl-gcc'
on: on:
push: push:
@ -12,8 +11,8 @@ on:
jobs: jobs:
build: build:
name: stable - aarch64-unknown-linux-gnu - node@14 name: stable - aarch64-unknown-linux-gnu - node@16
runs-on: ubuntu-20.04 runs-on: ubuntu-latest
steps: steps:
- run: docker run --rm --privileged multiarch/qemu-user-static:register --reset - run: docker run --rm --privileged multiarch/qemu-user-static:register --reset
@ -23,8 +22,9 @@ jobs:
- name: Setup node - name: Setup node
uses: actions/setup-node@v2 uses: actions/setup-node@v2
with: with:
node-version: 14 node-version: 16
check-latest: true check-latest: true
cache: 'yarn'
- name: Install - name: Install
uses: actions-rs/toolchain@v1 uses: actions-rs/toolchain@v1
@ -36,28 +36,11 @@ jobs:
- name: Install aarch64 toolchain - name: Install aarch64 toolchain
run: rustup target add aarch64-unknown-linux-gnu run: rustup target add aarch64-unknown-linux-gnu
- name: Generate Cargo.lock
uses: actions-rs/cargo@v1
with:
command: generate-lockfile
- name: Cache cargo registry
uses: actions/cache@v2
with:
path: ~/.cargo/registry
key: stable-linux-aarch64-gnu-node@14-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo index
uses: actions/cache@v2
with:
path: ~/.cargo/git
key: stable-linux-aarch64-gnu-node@14-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }}
- name: Cache NPM dependencies - name: Cache NPM dependencies
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: node_modules path: node_modules
key: npm-cache-linux-aarch64-gnu-node@14-${{ hashFiles('yarn.lock') }} key: npm-cache-linux-aarch64-gnu-node@16-${{ hashFiles('yarn.lock') }}
- name: Install dependencies - name: Install dependencies
run: yarn install --frozen-lockfile --ignore-platform --registry https://registry.npmjs.org --network-timeout 300000 run: yarn install --frozen-lockfile --ignore-platform --registry https://registry.npmjs.org --network-timeout 300000
@ -65,19 +48,15 @@ jobs:
- name: 'Build TypeScript' - name: 'Build TypeScript'
run: yarn build run: yarn build
- name: Pull docker image
run: |
docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD $DOCKER_REGISTRY_URL
docker pull $DOCKER_REGISTRY_URL/${{ github.repository }}/nodejs-rust:lts-alpine
docker tag $DOCKER_REGISTRY_URL/${{ github.repository }}/nodejs-rust:lts-alpine builder
env:
DOCKER_REGISTRY_URL: ghcr.io
DOCKER_USERNAME: ${{ github.actor }}
DOCKER_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
- name: Cross build native tests - name: Cross build native tests
run: | uses: addnab/docker-run-action@v3
docker run -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/napi-rs -w /napi-rs -e CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-musl-gcc builder sh -c "yarn --cwd ./examples/napi-compat-mode build --target aarch64-unknown-linux-musl && yarn --cwd ./examples/napi build --target aarch64-unknown-linux-musl" with:
image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
options: -v ${{ github.workspace }}:/napi-rs -w /napi-rs
run: |
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-musl-gcc
yarn --cwd ./examples/napi-compat-mode build --target aarch64-unknown-linux-musl
yarn --cwd ./examples/napi build --target aarch64-unknown-linux-musl
- name: Setup and run tests - name: Setup and run tests
uses: docker://multiarch/alpine:aarch64-latest-stable uses: docker://multiarch/alpine:aarch64-latest-stable

View file

@ -12,7 +12,7 @@ on:
jobs: jobs:
build: build:
name: stable - aarch64-unknown-linux-gnu - node@14 name: stable - aarch64-unknown-linux-gnu - node@16
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -23,8 +23,9 @@ jobs:
- name: Setup node - name: Setup node
uses: actions/setup-node@v2 uses: actions/setup-node@v2
with: with:
node-version: 14 node-version: 16
check-latest: true check-latest: true
cache: 'yarn'
- name: Install - name: Install
uses: actions-rs/toolchain@v1 uses: actions-rs/toolchain@v1
@ -45,19 +46,19 @@ jobs:
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: ~/.cargo/registry path: ~/.cargo/registry
key: stable-linux-aarch64-gnu-node@14-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }} key: stable-linux-aarch64-gnu-node@16-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo index - name: Cache cargo index
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: ~/.cargo/git path: ~/.cargo/git
key: stable-linux-aarch64-gnu-node@14-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }} key: stable-linux-aarch64-gnu-node@16-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }}
- name: Cache NPM dependencies - name: Cache NPM dependencies
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: node_modules path: node_modules
key: npm-cache-linux-aarch64-gnu-node@14-${{ hashFiles('yarn.lock') }} key: npm-cache-linux-aarch64-gnu-node@16-${{ hashFiles('yarn.lock') }}
- name: Install cross compile toolchain - name: Install cross compile toolchain
run: | run: |
@ -76,6 +77,6 @@ jobs:
- name: Setup and run tests - name: Setup and run tests
uses: addnab/docker-run-action@v3 uses: addnab/docker-run-action@v3
with: with:
image: ghcr.io/napi-rs/napi-rs/nodejs:aarch64-14 image: ghcr.io/napi-rs/napi-rs/nodejs:aarch64-16
options: -v ${{ github.workspace }}:/build -w /build options: -v ${{ github.workspace }}:/build -w /build
run: yarn test run: yarn test

View file

@ -12,7 +12,7 @@ on:
jobs: jobs:
build: build:
name: stable - armv7-unknown-linux-gnu - node@14 name: stable - armv7-unknown-linux-gnu - node@16
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -23,8 +23,9 @@ jobs:
- name: Setup node - name: Setup node
uses: actions/setup-node@v2 uses: actions/setup-node@v2
with: with:
node-version: 14 node-version: 16
check-latest: true check-latest: true
cache: 'yarn'
- name: Install - name: Install
uses: actions-rs/toolchain@v1 uses: actions-rs/toolchain@v1
@ -45,19 +46,19 @@ jobs:
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: ~/.cargo/registry path: ~/.cargo/registry
key: stable-linux-armv7-gnu-node@14-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }} key: stable-linux-armv7-gnu-node@16-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo index - name: Cache cargo index
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: ~/.cargo/git path: ~/.cargo/git
key: stable-linux-armv7-gnu-node@14-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }} key: stable-linux-armv7-gnu-node@16-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }}
- name: Cache NPM dependencies - name: Cache NPM dependencies
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: node_modules path: node_modules
key: npm-cache-linux-armv7-gnu-node@14-${{ hashFiles('yarn.lock') }} key: npm-cache-linux-armv7-gnu-node@16-${{ hashFiles('yarn.lock') }}
- name: Install cross compile toolchain - name: Install cross compile toolchain
run: | run: |
@ -76,6 +77,6 @@ jobs:
- name: Setup and run tests - name: Setup and run tests
uses: addnab/docker-run-action@v3 uses: addnab/docker-run-action@v3
with: with:
image: ghcr.io/napi-rs/napi-rs/nodejs:armhf-14 image: ghcr.io/napi-rs/napi-rs/nodejs:armhf-16
options: -v ${{ github.workspace }}:/build -w /build options: -v ${{ github.workspace }}:/build -w /build
run: yarn test run: yarn test

View file

@ -17,38 +17,25 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Cache cargo registry - name: Setup node
uses: actions/cache@v2 uses: actions/setup-node@v2
with: with:
path: ~/.cargo/registry node-version: 16
key: stable-alpine-node-alpine-@lts-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }} check-latest: true
cache: 'yarn'
- name: Cache cargo index - name: 'Install dependencies'
uses: actions/cache@v2 run: yarn install --ignore-platform --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000
with:
path: ~/.cargo/git
key: stable-alpine-node-alpine-@lts-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }}
- name: Pull docker image
run: |
docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD $DOCKER_REGISTRY_URL
docker pull $DOCKER_REGISTRY_URL/${{ github.repository }}/nodejs-rust:lts-alpine
docker tag $DOCKER_REGISTRY_URL/${{ github.repository }}/nodejs-rust:lts-alpine builder
env:
DOCKER_REGISTRY_URL: ghcr.io
DOCKER_USERNAME: ${{ github.actor }}
DOCKER_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
- name: 'Install node dependencies'
run: docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/napi-rs -w /napi-rs builder yarn
- name: 'Build TypeScript' - name: 'Build TypeScript'
run: docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/napi-rs -w /napi-rs builder yarn build run: yarn build
- name: Run check - name: Setup and run tests
run: | uses: addnab/docker-run-action@v3
docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/napi-rs -w /napi-rs builder cargo check -vvv with:
image: ghcr.io/${{ github.repository }}/nodejs-rust:lts-alpine
- name: Unit test options: -v ${{ github.workspace }}:/napi-rs -w /napi-rs
run: | run: |
docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/napi-rs -w /napi-rs -e RUST_BACKTRACE=1 builder sh -c "yarn build:test && yarn test" cargo check -vvv
yarn build:test
yarn test

View file

@ -20,8 +20,9 @@ jobs:
- name: Setup node - name: Setup node
uses: actions/setup-node@v2 uses: actions/setup-node@v2
with: with:
node-version: 14 node-version: 16
check-latest: true check-latest: true
cache: 'yarn'
- name: Install stable - name: Install stable
uses: actions-rs/toolchain@v1 uses: actions-rs/toolchain@v1

View file

@ -17,11 +17,11 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Setup node - uses: actions/setup-node@v2
run: | with:
wget https://nodejs.org/dist/v10.2.0/node-v10.2.0-linux-x64.tar.xz node-version: 16
tar xf node-v10.2.0-linux-x64.tar.xz check-latest: true
echo "$(pwd)/node-v10.2.0-linux-x64/bin" >> $GITHUB_PATH cache: 'yarn'
- name: Install stable - name: Install stable
uses: actions-rs/toolchain@v1 uses: actions-rs/toolchain@v1
@ -68,6 +68,10 @@ jobs:
command: check command: check
args: --all --bins --examples --tests -vvv args: --all --bins --examples --tests -vvv
- uses: actions/setup-node@v2
with:
node-version: '10.2.0'
- name: Unit tests - name: Unit tests
run: | run: |
yarn --cwd ./examples/napi-compat-mode --ignore-engines build-napi3 yarn --cwd ./examples/napi-compat-mode --ignore-engines build-napi3

View file

@ -28,6 +28,7 @@ jobs:
with: with:
node-version: ${{ matrix.node }} node-version: ${{ matrix.node }}
check-latest: true check-latest: true
cache: 'yarn'
- name: Install - name: Install
uses: actions-rs/toolchain@v1 uses: actions-rs/toolchain@v1

View file

@ -11,7 +11,7 @@ on:
jobs: jobs:
build_and_test: build_and_test:
name: stable - windows-latest - arm64 - node@14 name: stable - windows-latest - arm64 - node@16
runs-on: windows-latest runs-on: windows-latest
steps: steps:
@ -20,13 +20,9 @@ jobs:
- name: Setup node - name: Setup node
uses: actions/setup-node@v1 uses: actions/setup-node@v1
with: with:
node-version: 14 node-version: 16
check-latest: true
- name: Cache NPM dependencies cache: 'yarn'
uses: actions/cache@v2
with:
path: node_modules
key: npm-cache-windows-arm64-node@lts-${{ hashFiles('yarn.lock') }}
- name: 'Install dependencies' - name: 'Install dependencies'
run: yarn install --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000 run: yarn install --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000

View file

@ -11,25 +11,19 @@ on:
jobs: jobs:
build_and_test: build_and_test:
name: stable - windows-latest - i686 - node@14 name: stable - windows-latest - i686 - node@16
runs-on: windows-latest runs-on: windows-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Setup node - name: Setup node
run: choco install nodejs-lts --x86 -y --force uses: actions/setup-node@v2
- name: Set 32bit Node.js path
run: |
echo "C:\\Program Files (x86)\\nodejs" >> $GITHUB_PATH
shell: bash
- name: Cache NPM dependencies
uses: actions/cache@v2
with: with:
path: node_modules node-version: 16
key: npm-cache-windows-i686-node@lts-${{ hashFiles('yarn.lock') }} check-latest: true
architecture: 'x86'
cache: 'yarn'
- name: 'Install dependencies' - name: 'Install dependencies'
run: yarn install --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000 run: yarn install --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000

View file

@ -11,5 +11,9 @@ members = [
"./memory-testing", "./memory-testing",
] ]
exclude = [
"./testing"
]
[profile.release] [profile.release]
lto = true lto = true

View file

@ -31,9 +31,6 @@
"bugs": { "bugs": {
"url": "https://github.com/napi-rs/napi-rs/issues" "url": "https://github.com/napi-rs/napi-rs/issues"
}, },
"dependencies": {
"inquirer": "^8.2.0"
},
"devDependencies": { "devDependencies": {
"@octokit/rest": "^18.12.0", "@octokit/rest": "^18.12.0",
"@types/inquirer": "^8.1.3", "@types/inquirer": "^8.1.3",
@ -42,6 +39,7 @@
"clipanion": "^3.1.0", "clipanion": "^3.1.0",
"debug": "^4.3.2", "debug": "^4.3.2",
"fdir": "^5.1.0", "fdir": "^5.1.0",
"inquirer": "^8.2.0",
"js-yaml": "^4.1.0", "js-yaml": "^4.1.0",
"putasset": "^5.0.3", "putasset": "^5.0.3",
"toml": "^3.0.0", "toml": "^3.0.0",

View file

@ -86,6 +86,21 @@ export class BuildCommand extends Command {
)}] files to this command, eg ${chalk.green('prettier -w')}`, )}] files to this command, eg ${chalk.green('prettier -w')}`,
}) })
// https://github.com/napi-rs/napi-rs/issues/297
disableWindowsX32Optimize?: boolean = Option.Boolean(
'--disable-windows-x32-optimize',
true,
{
description: `Disable windows x32 ${chalk.green(
'lto',
)} and increase ${chalk.green(
'codegen-units',
)}. Enabled by default. See ${chalk.underline.blue(
'https://github.com/napi-rs/napi-rs/issues/297',
)}`,
},
)
destDir = Option.String({ destDir = Option.String({
required: false, required: false,
}) })
@ -118,9 +133,22 @@ export class BuildCommand extends Command {
const cargoCommand = `cargo build ${externalFlags}` const cargoCommand = `cargo build ${externalFlags}`
const intermediateTypeFile = join(__dirname, `type_def.${Date.now()}.tmp`) const intermediateTypeFile = join(__dirname, `type_def.${Date.now()}.tmp`)
debug(`Run ${chalk.green(cargoCommand)}`) debug(`Run ${chalk.green(cargoCommand)}`)
const additionalEnv = {}
if (
triple.arch === 'ia32' &&
triple.platform === 'win32' &&
triple.abi === 'msvc' &&
this.disableWindowsX32Optimize
) {
Object.assign(additionalEnv, {
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 256,
CARGO_PROFILE_RELEASE_LTO: false,
})
}
execSync(cargoCommand, { execSync(cargoCommand, {
env: { env: {
...process.env, ...process.env,
...additionalEnv,
TYPE_DEF_TMP_PATH: intermediateTypeFile, TYPE_DEF_TMP_PATH: intermediateTypeFile,
}, },
stdio: 'inherit', stdio: 'inherit',

View file

@ -1,7 +1,7 @@
#!/usr/bin/env node
import { Cli } from 'clipanion' import { Cli } from 'clipanion'
import { version } from '../package.json'
import { ArtifactsCommand } from './artifacts' import { ArtifactsCommand } from './artifacts'
import { BuildCommand } from './build' import { BuildCommand } from './build'
import { CreateNpmDirCommand } from './create-npm-dir' import { CreateNpmDirCommand } from './create-npm-dir'
@ -11,7 +11,7 @@ import { VersionCommand } from './version'
const cli = new Cli({ const cli = new Cli({
binaryName: 'napi', binaryName: 'napi',
binaryVersion: require('../package.json').version, binaryVersion: version,
}) })
cli.register(ArtifactsCommand) cli.register(ArtifactsCommand)

View file

@ -3,25 +3,19 @@ export const createCargoConfig = (
enableLinuxArm8Gnu: boolean, enableLinuxArm8Gnu: boolean,
enableLinuxArm8Musl: boolean, enableLinuxArm8Musl: boolean,
) => { ) => {
let result = '' const result: string[] = []
if (enableLinuxArm8Gnu) { if (enableLinuxArm8Gnu) {
result += `[target.aarch64-unknown-linux-gnu] result.push(`[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc" linker = "aarch64-linux-gnu-gcc"`)
`
} }
if (enableLinuxArm8Musl) { if (enableLinuxArm8Musl) {
result += `[target.aarch64-unknown-linux-musl] result.push(`[target.aarch64-unknown-linux-musl]
linker = "aarch64-linux-musl-gcc" linker = "aarch64-linux-musl-gcc"
rustflags = ["-C", "target-feature=-crt-static"] rustflags = ["-C", "target-feature=-crt-static"]`)
`
} }
if (enableLinuxArm7) { if (enableLinuxArm7) {
result += `[target.armv7-unknown-linux-gnueabihf] result.push(`[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc" linker = "arm-linux-gnueabihf-gcc"`)
`
} }
return result return result.join('\n')
} }

View file

@ -1,5 +1,5 @@
export const createCargoContent = (name: string) => `[package] export const createCargoContent = (name: string) => `[package]
edition = "2018" edition = "2021"
name = "${name.replace('@', '').replace('/', '_').toLowerCase()}" name = "${name.replace('@', '').replace('/', '_').toLowerCase()}"
version = "0.0.0" version = "0.0.0"
@ -7,11 +7,12 @@ version = "0.0.0"
crate-type = ["cdylib"] crate-type = ["cdylib"]
[dependencies] [dependencies]
napi = "1" # Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix
napi-derive = "1" napi = { version = "NAPI_VERSION", default-features = false, features = ["napi4"] }
napi-derive = "NAPI_DERIVE_VERSION"
[build-dependencies] [build-dependencies]
napi-build = "1" napi-build = "NAPI_BUILD_VERSION"
[profile.release] [profile.release]
lto = true lto = true

View file

@ -30,34 +30,32 @@ jobs:
settings: settings:
- host: macos-latest - host: macos-latest
target: 'x86_64-apple-darwin' target: 'x86_64-apple-darwin'
architecture: 'x64'
build: | build: |
yarn build yarn build
strip -x *.node strip -x *.node
- host: windows-latest - host: windows-latest
build: yarn build build: yarn build
target: 'x86_64-pc-windows-msvc' target: 'x86_64-pc-windows-msvc'
architecture: 'x64'
- host: windows-latest - host: windows-latest
build: | build: |
export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=64;
export CARGO_PROFILE_RELEASE_LTO=false
yarn build --target i686-pc-windows-msvc yarn build --target i686-pc-windows-msvc
yarn test yarn test
target: 'i686-pc-windows-msvc' target: 'i686-pc-windows-msvc'
setup: | architecture: 'x86'
choco install nodejs-lts --x86 -y --force
echo "C:\\Program Files (x86)\\nodejs" >> $GITHUB_PATH
- host: ubuntu-latest - host: ubuntu-latest
target: 'x86_64-unknown-linux-gnu' target: 'x86_64-unknown-linux-gnu'
architecture: 'x64'
docker: | docker: |
docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD $DOCKER_REGISTRY_URL
docker pull $DOCKER_REGISTRY_URL/napi-rs/napi-rs/nodejs-rust:lts-debian docker pull $DOCKER_REGISTRY_URL/napi-rs/napi-rs/nodejs-rust:lts-debian
docker tag $DOCKER_REGISTRY_URL/napi-rs/napi-rs/nodejs-rust:lts-debian builder docker tag $DOCKER_REGISTRY_URL/napi-rs/napi-rs/nodejs-rust:lts-debian builder
build: | build: |
docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/build -w /build builder yarn build && strip ${app}.linux-x64-gnu.node docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/build -w /build builder yarn build && strip ${app}.linux-x64-gnu.node
- host: ubuntu-latest - host: ubuntu-latest
target: 'x86_64-unknown-linux-musl' target: 'x86_64-unknown-linux-musl'
architecture: 'x64'
docker: | docker: |
docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD $DOCKER_REGISTRY_URL
docker pull $DOCKER_REGISTRY_URL/napi-rs/napi-rs/nodejs-rust:lts-alpine docker pull $DOCKER_REGISTRY_URL/napi-rs/napi-rs/nodejs-rust:lts-alpine
docker tag $DOCKER_REGISTRY_URL/napi-rs/napi-rs/nodejs-rust:lts-alpine builder docker tag $DOCKER_REGISTRY_URL/napi-rs/napi-rs/nodejs-rust:lts-alpine builder
build: docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/build -w /build builder yarn build && strip ${app}.linux-x64-musl.node build: docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/build -w /build builder yarn build && strip ${app}.linux-x64-musl.node
@ -67,6 +65,7 @@ jobs:
yarn build --target=aarch64-apple-darwin yarn build --target=aarch64-apple-darwin
strip -x *.node strip -x *.node
- host: ubuntu-latest - host: ubuntu-latest
architecture: 'x64'
target: 'aarch64-unknown-linux-gnu' target: 'aarch64-unknown-linux-gnu'
setup: | setup: |
sudo apt-get update sudo apt-get update
@ -75,6 +74,7 @@ jobs:
yarn build --target=aarch64-unknown-linux-gnu yarn build --target=aarch64-unknown-linux-gnu
aarch64-linux-gnu-strip ${app}.linux-arm64-gnu.node aarch64-linux-gnu-strip ${app}.linux-arm64-gnu.node
- host: ubuntu-latest - host: ubuntu-latest
architecture: 'x64'
target: 'armv7-unknown-linux-gnueabihf' target: 'armv7-unknown-linux-gnueabihf'
setup: | setup: |
sudo apt-get update sudo apt-get update
@ -83,25 +83,27 @@ jobs:
yarn build --target=armv7-unknown-linux-gnueabihf yarn build --target=armv7-unknown-linux-gnueabihf
arm-linux-gnueabihf-strip ${app}.linux-arm-gnueabihf.node arm-linux-gnueabihf-strip ${app}.linux-arm-gnueabihf.node
- host: ubuntu-latest - host: ubuntu-latest
architecture: 'x64'
target: 'aarch64-linux-android' target: 'aarch64-linux-android'
build: | build: |
export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="\${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang" export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="\${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"
yarn build --target aarch64-linux-android yarn build --target aarch64-linux-android
\${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-strip *.node \${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-strip *.node
- host: ubuntu-latest - host: ubuntu-latest
architecture: 'x64'
target: 'aarch64-unknown-linux-musl' target: 'aarch64-unknown-linux-musl'
downloadTarget: 'aarch64-unknown-linux-musl' downloadTarget: 'aarch64-unknown-linux-musl'
docker: | docker: |
docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD $DOCKER_REGISTRY_URL
docker pull ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine docker pull ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
docker tag ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine builder docker tag ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine builder
build: | build: |
docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/build -w /build builder sh -c "yarn build --target=aarch64-unknown-linux-musl && /aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip ${app}.linux-arm64-musl.node" docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/build -w /build builder sh -c "yarn build --target=aarch64-unknown-linux-musl && /aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip ${app}.linux-arm64-musl.node"
- host: windows-latest - host: windows-latest
architecture: 'x64'
target: 'aarch64-pc-windows-msvc' target: 'aarch64-pc-windows-msvc'
build: yarn build --target aarch64-pc-windows-msvc build: yarn build --target aarch64-pc-windows-msvc
name: stable - \${{ matrix.settings.target }} - node@14 name: stable - \${{ matrix.settings.target }} - node@16
runs-on: \${{ matrix.settings.host }} runs-on: \${{ matrix.settings.host }}
steps: steps:
@ -110,8 +112,10 @@ jobs:
- name: Setup node - name: Setup node
uses: actions/setup-node@v2 uses: actions/setup-node@v2
with: with:
node-version: 14 node-version: 16
check-latest: true check-latest: true
cache: 'yarn'
architecture: \${{ matrix.settings.architecture }}
- name: Install - name: Install
uses: actions-rs/toolchain@v1 uses: actions-rs/toolchain@v1
@ -130,26 +134,24 @@ jobs:
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: ~/.cargo/registry path: ~/.cargo/registry
key: \${{ matrix.settings.target }}-node@14-cargo-registry-trimmed-\${{ hashFiles('**/Cargo.lock') }} key: \${{ matrix.settings.target }}-node@16-cargo-registry-trimmed-\${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo index - name: Cache cargo index
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: ~/.cargo/git path: ~/.cargo/git
key: \${{ matrix.settings.target }}-node@14-cargo-index-trimmed-\${{ hashFiles('**/Cargo.lock') }} key: \${{ matrix.settings.target }}-node@16-cargo-index-trimmed-\${{ hashFiles('**/Cargo.lock') }}
- name: Cache NPM dependencies - name: Cache NPM dependencies
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: node_modules path: node_modules
key: npm-cache-\${{ matrix.settings.target }}-node@14-\${{ hashFiles('yarn.lock') }} key: npm-cache-\${{ matrix.settings.target }}-node@16-\${{ hashFiles('yarn.lock') }}
- name: Pull latest image - name: Pull latest image
run: \${{ matrix.settings.docker }} run: \${{ matrix.settings.docker }}
env: env:
DOCKER_REGISTRY_URL: ghcr.io DOCKER_REGISTRY_URL: ghcr.io
DOCKER_USERNAME: \${{ github.actor }}
DOCKER_PASSWORD: \${{ secrets.GITHUB_TOKEN }}
if: \${{ matrix.settings.docker }} if: \${{ matrix.settings.docker }}
- name: Setup toolchain - name: Setup toolchain
@ -209,6 +211,7 @@ jobs:
freebsd-version freebsd-version
yarn install --ignore-scripts --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000 yarn install --ignore-scripts --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000
yarn build yarn build
strip -x *.node
yarn test yarn test
rm -rf node_modules rm -rf node_modules
rm -rf target rm -rf target
@ -241,6 +244,7 @@ jobs:
with: with:
node-version: \${{ matrix.node }} node-version: \${{ matrix.node }}
check-latest: true check-latest: true
cache: 'yarn'
- name: Cache NPM dependencies - name: Cache NPM dependencies
uses: actions/cache@v2 uses: actions/cache@v2
@ -282,6 +286,7 @@ jobs:
with: with:
node-version: \${{ matrix.node }} node-version: \${{ matrix.node }}
check-latest: true check-latest: true
cache: 'yarn'
- name: Cache NPM dependencies - name: Cache NPM dependencies
uses: actions/cache@v2 uses: actions/cache@v2
@ -323,6 +328,7 @@ jobs:
with: with:
node-version: \${{ matrix.node }} node-version: \${{ matrix.node }}
check-latest: true check-latest: true
cache: 'yarn'
- name: Cache NPM dependencies - name: Cache NPM dependencies
uses: actions/cache@v2 uses: actions/cache@v2
@ -493,8 +499,9 @@ jobs:
- name: Setup node - name: Setup node
uses: actions/setup-node@v2 uses: actions/setup-node@v2
with: with:
node-version: 14 node-version: 16
check-latest: true check-latest: true
cache: 'yarn'
- name: Cache NPM dependencies - name: Cache NPM dependencies
uses: actions/cache@v2 uses: actions/cache@v2

View file

@ -174,6 +174,12 @@ export class NewProjectCommand extends Command {
this.writeFile(join('.cargo', 'config.toml'), cargoConfig) this.writeFile(join('.cargo', 'config.toml'), cargoConfig)
} }
} }
this.writeFile(
'rustfmt.toml',
`tab_spaces = 2
edition = "2021"
`,
)
} }
private writeFile(path: string, content: string) { private writeFile(path: string, content: string) {

View file

@ -3,48 +3,8 @@ export const LibRs = `#![deny(clippy::all)]
#[macro_use] #[macro_use]
extern crate napi_derive; extern crate napi_derive;
use std::convert::TryInto; #[napi]
fn sum(a: i32, b: i32) -> i32 {
use napi::{CallContext, Env, JsNumber, JsObject, Result, Task}; a + b
struct AsyncTask(u32);
impl Task for AsyncTask {
type Output = u32;
type JsValue = JsNumber;
fn compute(&mut self) -> Result<Self::Output> {
use std::thread::sleep;
use std::time::Duration;
sleep(Duration::from_millis(self.0 as u64));
Ok(self.0 * 2)
}
fn resolve(self, env: Env, output: Self::Output) -> Result<Self::JsValue> {
env.create_uint32(output)
}
}
#[module_exports]
fn init(mut exports: JsObject) -> Result<()> {
exports.create_named_method("sync", sync_fn)?;
exports.create_named_method("sleep", sleep)?;
Ok(())
}
#[js_function(1)]
fn sync_fn(ctx: CallContext) -> Result<JsNumber> {
let argument: u32 = ctx.get::<JsNumber>(0)?.try_into()?;
ctx.env.create_uint32(argument + 100)
}
#[js_function(1)]
fn sleep(ctx: CallContext) -> Result<JsObject> {
let argument: u32 = ctx.get::<JsNumber>(0)?.try_into()?;
let task = AsyncTask(argument);
let async_task = ctx.env.spawn(task)?;
Ok(async_task.promise_object())
} }
` `

View file

@ -1,3 +1,4 @@
import { version } from '../../package.json'
import { DefaultPlatforms } from '../parse-triple' import { DefaultPlatforms } from '../parse-triple'
export const createPackageJson = ( export const createPackageJson = (
@ -14,11 +15,8 @@ export const createPackageJson = (
name: binaryName, name: binaryName,
}, },
license: 'MIT', license: 'MIT',
dependencies: {
'@node-rs/helper': '^1.2.1',
},
devDependencies: { devDependencies: {
'@napi-rs/cli': '^1.2.1', '@napi-rs/cli': `^${version}`,
}, },
engines: { engines: {
node: '>= 10', node: '>= 10',

View file

@ -54,7 +54,7 @@ export class PrePublishCommand extends Command {
}) })
} }
const { owner, repo, pkgInfo } = await this.createGhRelease( const { owner, repo, pkgInfo, octokit } = await this.createGhRelease(
packageName, packageName,
version, version,
) )
@ -83,16 +83,25 @@ export class PrePublishCommand extends Command {
dstPath, dstPath,
)}] to Github release, [${chalk.greenBright(pkgInfo.tag)}]`, )}] to Github release, [${chalk.greenBright(pkgInfo.tag)}]`,
) )
const putasset = require('putasset')
try { try {
const downloadUrl = await putasset(process.env.GITHUB_TOKEN, { const releaseInfo = await octokit!.repos.getReleaseByTag({
owner, repo: repo!,
repo, owner: owner!,
tag: pkgInfo.tag, tag: pkgInfo.tag!,
filename: dstPath, })
const assetInfo = await octokit!.repos.uploadReleaseAsset({
owner: owner!,
repo: repo!,
data: dstPath,
name: filename,
release_id: releaseInfo.data.id,
}) })
console.info(`${chalk.green(dstPath)} upload success`) console.info(`${chalk.green(dstPath)} upload success`)
console.info(`Download url: ${chalk.blueBright(downloadUrl)}`) console.info(
`Download url: ${chalk.blueBright(
assetInfo.data.browser_download_url,
)}`,
)
} catch (e) { } catch (e) {
debug( debug(
`Param: ${JSON.stringify( `Param: ${JSON.stringify(
@ -166,7 +175,7 @@ export class PrePublishCommand extends Command {
console.error(e) console.error(e)
} }
} }
return { owner, repo, pkgInfo } return { owner, repo, pkgInfo, octokit }
} }
private parseTag(tag: string) { private parseTag(tag: string) {

View file

@ -14,7 +14,7 @@ test('should read a file and return its a buffer', async (t) => {
t.is(bindings.testTokioReadfile, undefined) t.is(bindings.testTokioReadfile, undefined)
return return
} }
await new Promise((resolve, reject) => { await new Promise<void>((resolve, reject) => {
bindings.testTokioReadfile(filepath, (err: Error | null, value: Buffer) => { bindings.testTokioReadfile(filepath, (err: Error | null, value: Buffer) => {
try { try {
t.is(err, null) t.is(err, null)

View file

@ -28,7 +28,7 @@ test.serial('should reject error from tokio future', async (t) => {
await bindings.testTokioError(filepath) await bindings.testTokioError(filepath)
throw new TypeError('Unreachable') throw new TypeError('Unreachable')
} catch (e) { } catch (e) {
t.is(e.message, 'Error from tokio future') t.is((e as Error).message, 'Error from tokio future')
} }
}) })

View file

@ -13,7 +13,7 @@ test('should be able to detach ArrayBuffer', (t) => {
bindings.testDetachArrayBuffer(ab) bindings.testDetachArrayBuffer(ab)
t.is(ab.byteLength, 0) t.is(ab.byteLength, 0)
} catch (e) { } catch (e) {
t.is(e.code, 'DetachableArraybufferExpected') t.is((e as any).code, 'DetachableArraybufferExpected')
} }
}) })
@ -28,6 +28,6 @@ test('is detached arraybuffer should work fine', (t) => {
t.false(bindings.testIsDetachedArrayBuffer(nonDetachedArrayBuffer)) t.false(bindings.testIsDetachedArrayBuffer(nonDetachedArrayBuffer))
t.true(bindings.testIsDetachedArrayBuffer(detachedArrayBuffer)) t.true(bindings.testIsDetachedArrayBuffer(detachedArrayBuffer))
} catch (e) { } catch (e) {
t.is(e.code, 'DetachableArraybufferExpected') t.is((e as any).code, 'DetachableArraybufferExpected')
} }
}) })

View file

@ -9,6 +9,11 @@ Generated by [AVA](https://avajs.dev).
> Snapshot 1 > Snapshot 1
[ [
'@rollup/plugin-alias',
'@rollup/plugin-commonjs',
'@rollup/plugin-json',
'@rollup/plugin-node-resolve',
'@rollup/plugin-replace',
'@types/debug', '@types/debug',
'@types/lodash-es', '@types/lodash-es',
'@types/node', '@types/node',
@ -29,6 +34,7 @@ Generated by [AVA](https://avajs.dev).
'lint-staged', 'lint-staged',
'npm-run-all', 'npm-run-all',
'prettier', 'prettier',
'rollup',
'shx', 'shx',
'sinon', 'sinon',
'source-map-support', 'source-map-support',

View file

@ -17,7 +17,7 @@ const SUPPORTED_PLATFORM = new Set([
'freebsd', 'freebsd',
]) ])
const tripleLists = RAW_LIST.trim() const tripleLists: { [key: string]: { platform?: string } } = RAW_LIST.trim()
.split('\n') .split('\n')
.filter((line) => !line.startsWith('wasm') && line.trim().length) .filter((line) => !line.startsWith('wasm') && line.trim().length)
.map(parseTriple) .map(parseTriple)
@ -28,8 +28,8 @@ const tripleLists = RAW_LIST.trim()
const platformArchTriples = mapValues( const platformArchTriples = mapValues(
groupBy( groupBy(
Object.values(tripleLists).filter((k: { platform?: string }) => Object.values(tripleLists).filter((k) =>
SUPPORTED_PLATFORM.has(k.platform), SUPPORTED_PLATFORM.has(k.platform!),
), ),
'platform', 'platform',
), ),

View file

@ -11,14 +11,14 @@
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"bench": "cross-env TS_NODE_PROJECT='./bench/tsconfig.json' node -r ts-node/register/transpile-only bench/bench.ts", "bench": "cross-env TS_NODE_PROJECT='./bench/tsconfig.json' node -r ts-node/register/transpile-only bench/bench.ts",
"build": "tsc -p tsconfig.json --noEmit && yarn bundle && shx chmod 777 cli/scripts/index.js && node -r ts-node/register/transpile-only ./generate-triple-list.ts", "build": "tsc -p tsconfig.json -m esnext && yarn bundle && shx chmod 777 cli/scripts/index.js && node -r ts-node/register/transpile-only ./generate-triple-list.ts",
"build:bench": "yarn --cwd ./bench build", "build:bench": "yarn --cwd ./bench build",
"build:memory": "yarn --cwd ./memory-testing build", "build:memory": "yarn --cwd ./memory-testing build",
"build:test": "yarn --cwd ./examples/napi-compat-mode build && yarn --cwd ./examples/napi build", "build:test": "yarn --cwd ./examples/napi-compat-mode build && yarn --cwd ./examples/napi build",
"build:test:aarch64": "yarn --cwd ./examples/napi-compat-mode build-aarch64 && yarn --cwd ./examples/napi build-aarch64", "build:test:aarch64": "yarn --cwd ./examples/napi-compat-mode build-aarch64 && yarn --cwd ./examples/napi build-aarch64",
"build:test:android": "yarn --cwd ./examples/napi-compat-mode build --target aarch64-linux-android && yarn --cwd ./examples/napi build --target aarch64-linux-android", "build:test:android": "yarn --cwd ./examples/napi-compat-mode build --target aarch64-linux-android && yarn --cwd ./examples/napi build --target aarch64-linux-android",
"build:test:armv7": "yarn --cwd ./examples/napi-compat-mode build-armv7 && yarn --cwd ./examples/napi build-armv7", "build:test:armv7": "yarn --cwd ./examples/napi-compat-mode build-armv7 && yarn --cwd ./examples/napi build-armv7",
"bundle": "esbuild ./cli/src/index.ts --bundle --platform=node --outdir=cli/scripts --main-fields=\"module,main,browser\" --external:inquirer --external:iconv-lite", "bundle": "rollup -c rollup.config.js",
"format": "run-p format:md format:json format:yaml format:source format:rs", "format": "run-p format:md format:json format:yaml format:source format:rs",
"format:md": "prettier --parser markdown --write ./**/*.md", "format:md": "prettier --parser markdown --write ./**/*.md",
"format:json": "prettier --parser json --write ./**/*.json", "format:json": "prettier --parser json --write ./**/*.json",
@ -55,6 +55,11 @@
} }
}, },
"devDependencies": { "devDependencies": {
"@rollup/plugin-alias": "^3.1.8",
"@rollup/plugin-commonjs": "^21.0.1",
"@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-node-resolve": "^13.0.6",
"@rollup/plugin-replace": "^3.0.0",
"@types/debug": "^4.1.7", "@types/debug": "^4.1.7",
"@types/lodash-es": "^4.17.5", "@types/lodash-es": "^4.17.5",
"@types/node": "^16.11.7", "@types/node": "^16.11.7",
@ -65,7 +70,7 @@
"benny": "^3.7.1", "benny": "^3.7.1",
"c8": "^7.10.0", "c8": "^7.10.0",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"esbuild": "^0.13.13", "esbuild": "^0.13.14",
"eslint": "^8.2.0", "eslint": "^8.2.0",
"eslint-config-prettier": "^8.3.0", "eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.25.3", "eslint-plugin-import": "^2.25.3",
@ -75,6 +80,7 @@
"lint-staged": "^12.0.2", "lint-staged": "^12.0.2",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"prettier": "^2.4.1", "prettier": "^2.4.1",
"rollup": "^2.60.0",
"shx": "^0.3.3", "shx": "^0.3.3",
"sinon": "^12.0.1", "sinon": "^12.0.1",
"source-map-support": "^0.5.20", "source-map-support": "^0.5.20",

61
rollup.config.js Normal file
View file

@ -0,0 +1,61 @@
import { readFileSync } from 'fs'
import { join } from 'path'
import alias from '@rollup/plugin-alias'
import commonjs from '@rollup/plugin-commonjs'
import json from '@rollup/plugin-json'
import nodeResolve from '@rollup/plugin-node-resolve'
import replace from '@rollup/plugin-replace'
import toml from 'toml'
const NAPI_CARGO_TOML = readFileSync(
join(__dirname, 'crates', 'napi', 'Cargo.toml'),
'utf8',
)
const NAPI_DERIVE_CARGO_TOML = readFileSync(
join(__dirname, 'crates', 'macro', 'Cargo.toml'),
'utf8',
)
const NAPI_BUILD_CARGO_TOML = readFileSync(
join(__dirname, 'crates', 'build', 'Cargo.toml'),
'utf8',
)
const {
package: { version: NAPI_VERSION },
} = toml.parse(NAPI_CARGO_TOML)
const {
package: { version: NAPI_DERIVE_VERSION },
} = toml.parse(NAPI_DERIVE_CARGO_TOML)
const {
package: { version: NAPI_BUILD_VERSION },
} = toml.parse(NAPI_BUILD_CARGO_TOML)
console.info('napi version: ', NAPI_VERSION)
console.info('napi-derive version: ', NAPI_DERIVE_VERSION)
console.info('napi-build version: ', NAPI_BUILD_VERSION)
export default {
input: './scripts/cli/src/index.js',
inlineDynamicImports: true,
output: {
banner: '#!/usr/bin/env node',
file: './cli/scripts/index.js',
format: 'cjs',
sourcemap: 'inline',
},
plugins: [
replace({
NAPI_VERSION,
NAPI_DERIVE_VERSION,
NAPI_BUILD_VERSION,
preventAssignment: true,
}),
alias({
entries: [{ find: 'readable-stream', replacement: 'stream' }],
}),
nodeResolve({ preferBuiltins: true }),
commonjs(),
json(),
],
}

View file

@ -1,2 +1,2 @@
tab_spaces = 2 tab_spaces = 2
edition = "2018" edition = "2021"

View file

@ -23,10 +23,9 @@
"stripInternal": true, "stripInternal": true,
"resolveJsonModule": true, "resolveJsonModule": true,
"importsNotUsedAsValues": "remove", "importsNotUsedAsValues": "remove",
"rootDir": "./cli/src", "outDir": "scripts",
"outDir": "./cli/scripts",
"lib": ["dom", "DOM.Iterable", "ES2019", "ES2020", "esnext"] "lib": ["dom", "DOM.Iterable", "ES2019", "ES2020", "esnext"]
}, },
"include": ["cli"], "include": ["."],
"exclude": ["node_modules", "bench", "cli/scripts"] "exclude": ["node_modules", "bench", "cli/scripts", "scripts"]
} }

309
yarn.lock
View file

@ -1032,6 +1032,62 @@
dependencies: dependencies:
"@octokit/openapi-types" "^11.2.0" "@octokit/openapi-types" "^11.2.0"
"@rollup/plugin-alias@^3.1.8":
version "3.1.8"
resolved "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.8.tgz#645fd84659e08d3d1b059408fcdf69c1dd435a6b"
integrity sha512-tf7HeSs/06wO2LPqKNY3Ckbvy0JRe7Jyn98bXnt/gfrxbe+AJucoNJlsEVi9sdgbQtXemjbakCpO/76JVgnHpA==
dependencies:
slash "^3.0.0"
"@rollup/plugin-commonjs@^21.0.1":
version "21.0.1"
resolved "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.1.tgz#1e57c81ae1518e4df0954d681c642e7d94588fee"
integrity sha512-EA+g22lbNJ8p5kuZJUYyhhDK7WgJckW5g4pNN7n4mAFUM96VuwUnNT3xr2Db2iCZPI1pJPbGyfT5mS9T1dHfMg==
dependencies:
"@rollup/pluginutils" "^3.1.0"
commondir "^1.0.1"
estree-walker "^2.0.1"
glob "^7.1.6"
is-reference "^1.2.1"
magic-string "^0.25.7"
resolve "^1.17.0"
"@rollup/plugin-json@^4.1.0":
version "4.1.0"
resolved "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3"
integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==
dependencies:
"@rollup/pluginutils" "^3.0.8"
"@rollup/plugin-node-resolve@^13.0.6":
version "13.0.6"
resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.6.tgz#29629070bb767567be8157f575cfa8f2b8e9ef77"
integrity sha512-sFsPDMPd4gMqnh2gS0uIxELnoRUp5kBl5knxD2EO0778G1oOJv4G1vyT2cpWz75OU2jDVcXhjVUuTAczGyFNKA==
dependencies:
"@rollup/pluginutils" "^3.1.0"
"@types/resolve" "1.17.1"
builtin-modules "^3.1.0"
deepmerge "^4.2.2"
is-module "^1.0.0"
resolve "^1.19.0"
"@rollup/plugin-replace@^3.0.0":
version "3.0.0"
resolved "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-3.0.0.tgz#3a4c9665d4e7a4ce2c360cf021232784892f3fac"
integrity sha512-3c7JCbMuYXM4PbPWT4+m/4Y6U60SgsnDT/cCyAyUKwFHg7pTSfsSQzIpETha3a3ig6OdOKzZz87D9ZXIK3qsDg==
dependencies:
"@rollup/pluginutils" "^3.1.0"
magic-string "^0.25.7"
"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0":
version "3.1.0"
resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b"
integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==
dependencies:
"@types/estree" "0.0.39"
estree-walker "^1.0.1"
picomatch "^2.2.2"
"@sindresorhus/is@^0.14.0": "@sindresorhus/is@^0.14.0":
version "0.14.0" version "0.14.0"
resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
@ -1127,6 +1183,16 @@
"@types/docker-modem" "*" "@types/docker-modem" "*"
"@types/node" "*" "@types/node" "*"
"@types/estree@*":
version "0.0.50"
resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83"
integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==
"@types/estree@0.0.39":
version "0.0.39"
resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
"@types/inquirer@^8.1.3": "@types/inquirer@^8.1.3":
version "8.1.3" version "8.1.3"
resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.1.3.tgz#dfda4c97cdbe304e4dceb378a80f79448ea5c8fe" resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.1.3.tgz#dfda4c97cdbe304e4dceb378a80f79448ea5c8fe"
@ -1197,6 +1263,13 @@
resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
"@types/resolve@1.17.1":
version "1.17.1"
resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==
dependencies:
"@types/node" "*"
"@types/sinon@^10.0.6": "@types/sinon@^10.0.6":
version "10.0.6" version "10.0.6"
resolved "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.6.tgz#bc3faff5154e6ecb69b797d311b7cf0c1b523a1d" resolved "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.6.tgz#bc3faff5154e6ecb69b797d311b7cf0c1b523a1d"
@ -1739,6 +1812,11 @@ buffer@^5.5.0:
base64-js "^1.3.1" base64-js "^1.3.1"
ieee754 "^1.1.13" ieee754 "^1.1.13"
builtin-modules@^3.1.0:
version "3.2.0"
resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887"
integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==
builtins@^1.0.3: builtins@^1.0.3:
version "1.0.3" version "1.0.3"
resolved "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" resolved "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88"
@ -2086,6 +2164,11 @@ common-tags@^1.8.0:
resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937"
integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
compare-func@^2.0.0: compare-func@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" resolved "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3"
@ -2404,6 +2487,11 @@ deep-is@^0.1.3:
resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
deepmerge@^4.2.2:
version "4.2.2"
resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
defaults@^1.0.3: defaults@^1.0.3:
version "1.0.3" version "1.0.3"
resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
@ -2654,113 +2742,113 @@ es-to-primitive@^1.2.1:
is-date-object "^1.0.1" is-date-object "^1.0.1"
is-symbol "^1.0.2" is-symbol "^1.0.2"
esbuild-android-arm64@0.13.13: esbuild-android-arm64@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.13.tgz#da07b5fb2daf7d83dcd725f7cf58a6758e6e702a" resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.14.tgz#c85083ece26be3d67e6c720e088968a98409e023"
integrity sha512-T02aneWWguJrF082jZworjU6vm8f4UQ+IH2K3HREtlqoY9voiJUwHLRL6khRlsNLzVglqgqb7a3HfGx7hAADCQ== integrity sha512-Q+Xhfp827r+ma8/DJgpMRUbDZfefsk13oePFEXEIJ4gxFbNv5+vyiYXYuKm43/+++EJXpnaYmEnu4hAKbAWYbA==
esbuild-darwin-64@0.13.13: esbuild-darwin-64@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.13.tgz#e94e9fd3b4b5455a2e675cd084a19a71b6904bbf" resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.14.tgz#8e4e237ad847cc54a1d3a5caee26a746b9f0b81f"
integrity sha512-wkaiGAsN/09X9kDlkxFfbbIgR78SNjMOfUhoel3CqKBDsi9uZhw7HBNHNxTzYUK8X8LAKFpbODgcRB3b/I8gHA== integrity sha512-YmOhRns6QBNSjpVdTahi/yZ8dscx9ai7a6OY6z5ACgOuQuaQ2Qk2qgJ0/siZ6LgD0gJFMV8UINFV5oky5TFNQQ==
esbuild-darwin-arm64@0.13.13: esbuild-darwin-arm64@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.13.tgz#8c320eafbb3ba2c70d8062128c5b71503e342471" resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.14.tgz#b3b5ebd40b2cb06ee0f6fb342dd4bdcca54ad273"
integrity sha512-b02/nNKGSV85Gw9pUCI5B48AYjk0vFggDeom0S6QMP/cEDtjSh1WVfoIFNAaLA0MHWfue8KBwoGVsN7rBshs4g== integrity sha512-Lp00VTli2jqZghSa68fx3fEFCPsO1hK59RMo1PRap5RUjhf55OmaZTZYnCDI0FVlCtt+gBwX5qwFt4lc6tI1xg==
esbuild-freebsd-64@0.13.13: esbuild-freebsd-64@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.13.tgz#ce0ca5b8c4c274cfebc9326f9b316834bd9dd151" resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.14.tgz#175ecb2fa8141428cf70ea2d5f4c27534bad53e0"
integrity sha512-ALgXYNYDzk9YPVk80A+G4vz2D22Gv4j4y25exDBGgqTcwrVQP8rf/rjwUjHoh9apP76oLbUZTmUmvCMuTI1V9A== integrity sha512-BKosI3jtvTfnmsCW37B1TyxMUjkRWKqopR0CE9AF2ratdpkxdR24Vpe3gLKNyWiZ7BE96/SO5/YfhbPUzY8wKw==
esbuild-freebsd-arm64@0.13.13: esbuild-freebsd-arm64@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.13.tgz#463da17562fdcfdf03b3b94b28497d8d8dcc8f62" resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.14.tgz#a7d64e41d1fa581f8db7775e5200f18e67d70c4d"
integrity sha512-uFvkCpsZ1yqWQuonw5T1WZ4j59xP/PCvtu6I4pbLejhNo4nwjW6YalqnBvBSORq5/Ifo9S/wsIlVHzkzEwdtlw== integrity sha512-yd2uh0yf+fWv5114+SYTl4/1oDWtr4nN5Op+PGxAkMqHfYfLjFKpcxwCo/QOS/0NWqPVE8O41IYZlFhbEN2B8Q==
esbuild-linux-32@0.13.13: esbuild-linux-32@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.13.tgz#2035793160da2c4be48a929e5bafb14a31789acc" resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.14.tgz#14bdd4f6b6cfd35c65c835894651ba335c2117da"
integrity sha512-yxR9BBwEPs9acVEwTrEE2JJNHYVuPQC9YGjRfbNqtyfK/vVBQYuw8JaeRFAvFs3pVJdQD0C2BNP4q9d62SCP4w== integrity sha512-a8rOnS1oWSfkkYWXoD2yXNV4BdbDKA7PNVQ1klqkY9SoSApL7io66w5H44mTLsfyw7G6Z2vLlaLI2nz9MMAowA==
esbuild-linux-64@0.13.13: esbuild-linux-64@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.13.tgz#fbe4802a8168c6d339d0749f977b099449b56f22" resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.14.tgz#7fd56851b2982fdd0cd8447ee9858c2c5711708a"
integrity sha512-kzhjlrlJ+6ESRB/n12WTGll94+y+HFeyoWsOrLo/Si0s0f+Vip4b8vlnG0GSiS6JTsWYAtGHReGczFOaETlKIw== integrity sha512-yPZSoMs9W2MC3Dw+6kflKt5FfQm6Dicex9dGIr1OlHRsn3Hm7yGMUTctlkW53KknnZdOdcdd5upxvbxqymczVQ==
esbuild-linux-arm64@0.13.13: esbuild-linux-arm64@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.13.tgz#f08d98df28d436ed4aad1529615822bb74d4d978" resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.14.tgz#a55634d70679ba509adeafd68eebb9fd1ec5af6c"
integrity sha512-KMrEfnVbmmJxT3vfTnPv/AiXpBFbbyExH13BsUGy1HZRPFMi5Gev5gk8kJIZCQSRfNR17aqq8sO5Crm2KpZkng== integrity sha512-Lvo391ln9PzC334e+jJ2S0Rt0cxP47eoH5gFyv/E8HhOnEJTvm7A+RRnMjjHnejELacTTfYgFGQYPjLsi/jObQ==
esbuild-linux-arm@0.13.13: esbuild-linux-arm@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.13.tgz#6f968c3a98b64e30c80b212384192d0cfcb32e7f" resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.14.tgz#bb96a99677e608b31ff61f37564326d38e846ca2"
integrity sha512-hXub4pcEds+U1TfvLp1maJ+GHRw7oizvzbGRdUvVDwtITtjq8qpHV5Q5hWNNn6Q+b3b2UxF03JcgnpzCw96nUQ== integrity sha512-8chZE4pkKRvJ/M/iwsNQ1KqsRg2RyU5eT/x2flNt/f8F2TVrDreR7I0HEeCR50wLla3B1C3wTIOzQBmjuc6uWg==
esbuild-linux-mips64le@0.13.13: esbuild-linux-mips64le@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.13.tgz#690c78dc4725efe7d06a1431287966fbf7774c7f" resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.14.tgz#6a55362a8fd1e593dea2ecc41877beed8b8184b9"
integrity sha512-cJT9O1LYljqnnqlHaS0hdG73t7hHzF3zcN0BPsjvBq+5Ad47VJun+/IG4inPhk8ta0aEDK6LdP+F9299xa483w== integrity sha512-MZhgxbmrWbpY3TOE029O6l5tokG9+Yoj2hW7vdit/d/VnmneqeGrSHADuDL6qXM8L5jaCiaivb4VhsyVCpdAbQ==
esbuild-linux-ppc64le@0.13.13: esbuild-linux-ppc64le@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.13.tgz#7ec9048502de46754567e734aae7aebd2df6df02" resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.14.tgz#9e0048587ece0a7f184ab147f20d077098045e7f"
integrity sha512-+rghW8st6/7O6QJqAjVK3eXzKkZqYAw6LgHv7yTMiJ6ASnNvghSeOcIvXFep3W2oaJc35SgSPf21Ugh0o777qQ== integrity sha512-un7KMwS7fX1Un6BjfSZxTT8L5cV/8Uf4SAhM7WYy2XF8o8TI+uRxxD03svZnRNIPsN2J5cl6qV4n7Iwz+yhhVw==
esbuild-netbsd-64@0.13.13: esbuild-netbsd-64@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.13.tgz#439bdaefffa03a8fa84324f5d83d636f548a2de3" resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.14.tgz#dcab16a4bbcfa16e2e8535dadc5f64fdc891c63b"
integrity sha512-A/B7rwmzPdzF8c3mht5TukbnNwY5qMJqes09ou0RSzA5/jm7Jwl/8z853ofujTFOLhkNHUf002EAgokzSgEMpQ== integrity sha512-5ekKx/YbOmmlTeNxBjh38Uh5TGn5C4uyqN17i67k18pS3J+U2hTVD7rCxcFcRS1AjNWumkVL3jWqYXadFwMS0Q==
esbuild-openbsd-64@0.13.13: esbuild-openbsd-64@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.13.tgz#c9958e5291a00a3090c1ec482d6bcdf2d5b5d107" resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.14.tgz#3c7453b155ebb68dc34d5aec3bd6505337bdda08"
integrity sha512-szwtuRA4rXKT3BbwoGpsff6G7nGxdKgUbW9LQo6nm0TVCCjDNDC/LXxT994duIW8Tyq04xZzzZSW7x7ttDiw1w== integrity sha512-9bzvwewHjct2Cv5XcVoE1yW5YTW12Sk838EYfA46abgnhxGoFSD1mFcaztp5HHC43AsF+hQxbSFG/RilONARUA==
esbuild-sunos-64@0.13.13: esbuild-sunos-64@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.13.tgz#ac9ead8287379cd2f6d00bd38c5997fda9c1179e" resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.14.tgz#85addf5fef6b5db154a955d4f2e88953359d75ce"
integrity sha512-ihyds9O48tVOYF48iaHYUK/boU5zRaLOXFS+OOL3ceD39AyHo46HVmsJLc7A2ez0AxNZCxuhu+P9OxfPfycTYQ== integrity sha512-mjMrZB76M6FmoiTvj/RGWilrioR7gVwtFBRVugr9qLarXMIU1W/pQx+ieEOtflrW61xo8w1fcxyHsVVGRvoQ0w==
esbuild-windows-32@0.13.13: esbuild-windows-32@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.13.tgz#a3820fc86631ca594cb7b348514b5cc3f058cfd6" resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.14.tgz#f77f98f30a5c636c44db2428ecdf9bcbbaedb1a7"
integrity sha512-h2RTYwpG4ldGVJlbmORObmilzL8EECy8BFiF8trWE1ZPHLpECE9//J3Bi+W3eDUuv/TqUbiNpGrq4t/odbayUw== integrity sha512-GZa6mrx2rgfbH/5uHg0Rdw50TuOKbdoKCpEBitzmG5tsXBdce+cOL+iFO5joZc6fDVCLW3Y6tjxmSXRk/v20Hg==
esbuild-windows-64@0.13.13: esbuild-windows-64@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.13.tgz#1da748441f228d75dff474ddb7d584b81887323c" resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.14.tgz#bc778674c40d65150d12385e0f23eb3a0badbd0d"
integrity sha512-oMrgjP4CjONvDHe7IZXHrMk3wX5Lof/IwFEIbwbhgbXGBaN2dke9PkViTiXC3zGJSGpMvATXVplEhlInJ0drHA== integrity sha512-Lsgqah24bT7ClHjLp/Pj3A9wxjhIAJyWQcrOV4jqXAFikmrp2CspA8IkJgw7HFjx6QrJuhpcKVbCAe/xw0i2yw==
esbuild-windows-arm64@0.13.13: esbuild-windows-arm64@0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.13.tgz#06dfa52a6b178a5932a9a6e2fdb240c09e6da30c" resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.14.tgz#91a8dad35ab2c4dd27cd83860742955b25a354d7"
integrity sha512-6fsDfTuTvltYB5k+QPah/x7LrI2+OLAJLE3bWLDiZI6E8wXMQU+wLqtEO/U/RvJgVY1loPs5eMpUBpVajczh1A== integrity sha512-KP8FHVlWGhM7nzYtURsGnskXb/cBCPTfj0gOKfjKq2tHtYnhDZywsUG57nk7TKhhK0fL11LcejHG3LRW9RF/9A==
esbuild@^0.13.13: esbuild@^0.13.14:
version "0.13.13" version "0.13.14"
resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.13.13.tgz#0b5399c20f219f663c8c1048436fb0f59ab17a41" resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.13.14.tgz#98a3f7f42809abdc2b57c84565d0f713382dc1a5"
integrity sha512-Z17A/R6D0b4s3MousytQ/5i7mTCbaF+Ua/yPfoe71vdTv4KBvVAvQ/6ytMngM2DwGJosl8WxaD75NOQl2QF26Q== integrity sha512-xu4D+1ji9x53ocuomcY+KOrwAnWzhBu/wTEjpdgZ8I1c8i5vboYIeigMdzgY1UowYBKa2vZgVgUB32bu7gkxeg==
optionalDependencies: optionalDependencies:
esbuild-android-arm64 "0.13.13" esbuild-android-arm64 "0.13.14"
esbuild-darwin-64 "0.13.13" esbuild-darwin-64 "0.13.14"
esbuild-darwin-arm64 "0.13.13" esbuild-darwin-arm64 "0.13.14"
esbuild-freebsd-64 "0.13.13" esbuild-freebsd-64 "0.13.14"
esbuild-freebsd-arm64 "0.13.13" esbuild-freebsd-arm64 "0.13.14"
esbuild-linux-32 "0.13.13" esbuild-linux-32 "0.13.14"
esbuild-linux-64 "0.13.13" esbuild-linux-64 "0.13.14"
esbuild-linux-arm "0.13.13" esbuild-linux-arm "0.13.14"
esbuild-linux-arm64 "0.13.13" esbuild-linux-arm64 "0.13.14"
esbuild-linux-mips64le "0.13.13" esbuild-linux-mips64le "0.13.14"
esbuild-linux-ppc64le "0.13.13" esbuild-linux-ppc64le "0.13.14"
esbuild-netbsd-64 "0.13.13" esbuild-netbsd-64 "0.13.14"
esbuild-openbsd-64 "0.13.13" esbuild-openbsd-64 "0.13.14"
esbuild-sunos-64 "0.13.13" esbuild-sunos-64 "0.13.14"
esbuild-windows-32 "0.13.13" esbuild-windows-32 "0.13.14"
esbuild-windows-64 "0.13.13" esbuild-windows-64 "0.13.14"
esbuild-windows-arm64 "0.13.13" esbuild-windows-arm64 "0.13.14"
escalade@^3.1.1: escalade@^3.1.1:
version "3.1.1" version "3.1.1"
@ -2950,6 +3038,16 @@ estraverse@^5.1.0, estraverse@^5.2.0:
resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
estree-walker@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==
estree-walker@^2.0.1:
version "2.0.2"
resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
esutils@^2.0.2, esutils@^2.0.3: esutils@^2.0.2, esutils@^2.0.3:
version "2.0.3" version "2.0.3"
resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
@ -3829,6 +3927,11 @@ is-lambda@^1.0.1:
resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5"
integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=
is-module@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=
is-negative-zero@^2.0.1: is-negative-zero@^2.0.1:
version "2.0.1" version "2.0.1"
resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"
@ -3893,6 +3996,13 @@ is-promise@^4.0.0:
resolved "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" resolved "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3"
integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==
is-reference@^1.2.1:
version "1.2.1"
resolved "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7"
integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==
dependencies:
"@types/estree" "*"
is-regex@^1.1.4: is-regex@^1.1.4:
version "1.1.4" version "1.1.4"
resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
@ -4393,6 +4503,13 @@ macos-release@^2.2.0:
resolved "https://registry.npmjs.org/macos-release/-/macos-release-2.5.0.tgz#067c2c88b5f3fb3c56a375b2ec93826220fa1ff2" resolved "https://registry.npmjs.org/macos-release/-/macos-release-2.5.0.tgz#067c2c88b5f3fb3c56a375b2ec93826220fa1ff2"
integrity sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g== integrity sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g==
magic-string@^0.25.7:
version "0.25.7"
resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==
dependencies:
sourcemap-codec "^1.4.4"
make-dir@^2.1.0: make-dir@^2.1.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
@ -5816,7 +5933,7 @@ resolve-from@^5.0.0:
resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
resolve@^1.1.6, resolve@^1.10.0, resolve@^1.20.0: resolve@^1.1.6, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0:
version "1.20.0" version "1.20.0"
resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
@ -5863,6 +5980,13 @@ rimraf@^3.0.0, rimraf@^3.0.2:
dependencies: dependencies:
glob "^7.1.3" glob "^7.1.3"
rollup@^2.60.0:
version "2.60.0"
resolved "https://registry.npmjs.org/rollup/-/rollup-2.60.0.tgz#4ee60ab7bdd0356763f87d7099f413e5460fc193"
integrity sha512-cHdv9GWd58v58rdseC8e8XIaPUo8a9cgZpnCMMDGZFDZKEODOiPPEQFXLriWr/TjXzhPPmG5bkAztPsOARIcGQ==
optionalDependencies:
fsevents "~2.3.2"
run-async@^2.4.0: run-async@^2.4.0:
version "2.4.1" version "2.4.1"
resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
@ -6118,6 +6242,11 @@ source-map@^0.7.3:
resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
sourcemap-codec@^1.4.4:
version "1.4.8"
resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
spdx-correct@^3.0.0: spdx-correct@^3.0.0:
version "3.1.1" version "3.1.1"
resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"