Merge pull request #865 from napi-rs/cli-upgrade

feat(cli): refactor cli build
This commit is contained in:
LongYinan 2021-11-20 00:56:26 +08:00 committed by GitHub
commit d7da82e269
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
36 changed files with 486 additions and 313 deletions

View file

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

View file

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

View file

@ -19,7 +19,9 @@ jobs:
- name: Setup node
uses: actions/setup-node@v1
with:
node-version: 14
node-version: 16
cache: 'yarn'
check-latest: true
- name: List NDK Home
run: ls -R "${ANDROID_NDK_HOME}"
@ -30,9 +32,7 @@ jobs:
toolchain: stable
profile: minimal
override: true
- name: Install aarch64 toolchain
run: rustup target add aarch64-linux-android
target: 'aarch64-linux-android'
- name: Generate Cargo.lock
uses: actions-rs/cargo@v1
@ -43,19 +43,19 @@ jobs:
uses: actions/cache@v2
with:
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
uses: actions/cache@v2
with:
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
uses: actions/cache@v2
with:
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
run: yarn install --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000

View file

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

View file

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

View file

@ -2,7 +2,6 @@ name: Linux-aarch64-musl
env:
DEBUG: 'napi:*'
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER: 'aarch64-linux-musl-gcc'
on:
push:
@ -12,8 +11,8 @@ on:
jobs:
build:
name: stable - aarch64-unknown-linux-gnu - node@14
runs-on: ubuntu-20.04
name: stable - aarch64-unknown-linux-gnu - node@16
runs-on: ubuntu-latest
steps:
- run: docker run --rm --privileged multiarch/qemu-user-static:register --reset
@ -23,8 +22,9 @@ jobs:
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: 14
node-version: 16
check-latest: true
cache: 'yarn'
- name: Install
uses: actions-rs/toolchain@v1
@ -36,28 +36,11 @@ jobs:
- name: Install aarch64 toolchain
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
uses: actions/cache@v2
with:
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
run: yarn install --frozen-lockfile --ignore-platform --registry https://registry.npmjs.org --network-timeout 300000
@ -65,19 +48,15 @@ jobs:
- name: 'Build TypeScript'
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
run: |
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"
uses: addnab/docker-run-action@v3
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
uses: docker://multiarch/alpine:aarch64-latest-stable

View file

@ -12,7 +12,7 @@ on:
jobs:
build:
name: stable - aarch64-unknown-linux-gnu - node@14
name: stable - aarch64-unknown-linux-gnu - node@16
runs-on: ubuntu-latest
steps:
@ -23,8 +23,9 @@ jobs:
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: 14
node-version: 16
check-latest: true
cache: 'yarn'
- name: Install
uses: actions-rs/toolchain@v1
@ -45,19 +46,19 @@ jobs:
uses: actions/cache@v2
with:
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
uses: actions/cache@v2
with:
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
uses: actions/cache@v2
with:
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
run: |
@ -76,6 +77,6 @@ jobs:
- name: Setup and run tests
uses: addnab/docker-run-action@v3
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
run: yarn test

View file

@ -12,7 +12,7 @@ on:
jobs:
build:
name: stable - armv7-unknown-linux-gnu - node@14
name: stable - armv7-unknown-linux-gnu - node@16
runs-on: ubuntu-latest
steps:
@ -23,8 +23,9 @@ jobs:
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: 14
node-version: 16
check-latest: true
cache: 'yarn'
- name: Install
uses: actions-rs/toolchain@v1
@ -45,19 +46,19 @@ jobs:
uses: actions/cache@v2
with:
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
uses: actions/cache@v2
with:
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
uses: actions/cache@v2
with:
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
run: |
@ -76,6 +77,6 @@ jobs:
- name: Setup and run tests
uses: addnab/docker-run-action@v3
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
run: yarn test

View file

@ -17,38 +17,25 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Cache cargo registry
uses: actions/cache@v2
- name: Setup node
uses: actions/setup-node@v2
with:
path: ~/.cargo/registry
key: stable-alpine-node-alpine-@lts-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }}
node-version: 16
check-latest: true
cache: 'yarn'
- name: Cache cargo index
uses: actions/cache@v2
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: 'Install dependencies'
run: yarn install --ignore-platform --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000
- 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
run: |
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
- name: Unit test
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"
- name: Setup and run tests
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/${{ github.repository }}/nodejs-rust:lts-alpine
options: -v ${{ github.workspace }}:/napi-rs -w /napi-rs
run: |
cargo check -vvv
yarn build:test
yarn test

View file

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

View file

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

View file

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

View file

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

View file

@ -11,25 +11,19 @@ on:
jobs:
build_and_test:
name: stable - windows-latest - i686 - node@14
name: stable - windows-latest - i686 - node@16
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Setup node
run: choco install nodejs-lts --x86 -y --force
- 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
uses: actions/setup-node@v2
with:
path: node_modules
key: npm-cache-windows-i686-node@lts-${{ hashFiles('yarn.lock') }}
node-version: 16
check-latest: true
architecture: 'x86'
cache: 'yarn'
- name: 'Install dependencies'
run: yarn install --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000

View file

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

View file

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

View file

@ -86,6 +86,21 @@ export class BuildCommand extends Command {
)}] 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({
required: false,
})
@ -118,9 +133,22 @@ export class BuildCommand extends Command {
const cargoCommand = `cargo build ${externalFlags}`
const intermediateTypeFile = join(__dirname, `type_def.${Date.now()}.tmp`)
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, {
env: {
...process.env,
...additionalEnv,
TYPE_DEF_TMP_PATH: intermediateTypeFile,
},
stdio: 'inherit',

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -3,48 +3,8 @@ export const LibRs = `#![deny(clippy::all)]
#[macro_use]
extern crate napi_derive;
use std::convert::TryInto;
use napi::{CallContext, Env, JsNumber, JsObject, Result, Task};
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())
#[napi]
fn sum(a: i32, b: i32) -> i32 {
a + b
}
`

View file

@ -1,3 +1,4 @@
import { version } from '../../package.json'
import { DefaultPlatforms } from '../parse-triple'
export const createPackageJson = (
@ -14,11 +15,8 @@ export const createPackageJson = (
name: binaryName,
},
license: 'MIT',
dependencies: {
'@node-rs/helper': '^1.2.1',
},
devDependencies: {
'@napi-rs/cli': '^1.2.1',
'@napi-rs/cli': `^${version}`,
},
engines: {
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,
version,
)
@ -83,16 +83,25 @@ export class PrePublishCommand extends Command {
dstPath,
)}] to Github release, [${chalk.greenBright(pkgInfo.tag)}]`,
)
const putasset = require('putasset')
try {
const downloadUrl = await putasset(process.env.GITHUB_TOKEN, {
owner,
repo,
tag: pkgInfo.tag,
filename: dstPath,
const releaseInfo = await octokit!.repos.getReleaseByTag({
repo: repo!,
owner: owner!,
tag: pkgInfo.tag!,
})
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(`Download url: ${chalk.blueBright(downloadUrl)}`)
console.info(
`Download url: ${chalk.blueBright(
assetInfo.data.browser_download_url,
)}`,
)
} catch (e) {
debug(
`Param: ${JSON.stringify(
@ -166,7 +175,7 @@ export class PrePublishCommand extends Command {
console.error(e)
}
}
return { owner, repo, pkgInfo }
return { owner, repo, pkgInfo, octokit }
}
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)
return
}
await new Promise((resolve, reject) => {
await new Promise<void>((resolve, reject) => {
bindings.testTokioReadfile(filepath, (err: Error | null, value: Buffer) => {
try {
t.is(err, null)

View file

@ -28,7 +28,7 @@ test.serial('should reject error from tokio future', async (t) => {
await bindings.testTokioError(filepath)
throw new TypeError('Unreachable')
} 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)
t.is(ab.byteLength, 0)
} 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.true(bindings.testIsDetachedArrayBuffer(detachedArrayBuffer))
} 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
[
'@rollup/plugin-alias',
'@rollup/plugin-commonjs',
'@rollup/plugin-json',
'@rollup/plugin-node-resolve',
'@rollup/plugin-replace',
'@types/debug',
'@types/lodash-es',
'@types/node',
@ -29,6 +34,7 @@ Generated by [AVA](https://avajs.dev).
'lint-staged',
'npm-run-all',
'prettier',
'rollup',
'shx',
'sinon',
'source-map-support',

View file

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

View file

@ -11,14 +11,14 @@
"license": "MIT",
"scripts": {
"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:memory": "yarn --cwd ./memory-testing 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: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",
"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:md": "prettier --parser markdown --write ./**/*.md",
"format:json": "prettier --parser json --write ./**/*.json",
@ -55,6 +55,11 @@
}
},
"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/lodash-es": "^4.17.5",
"@types/node": "^16.11.7",
@ -65,7 +70,7 @@
"benny": "^3.7.1",
"c8": "^7.10.0",
"cross-env": "^7.0.3",
"esbuild": "^0.13.13",
"esbuild": "^0.13.14",
"eslint": "^8.2.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.25.3",
@ -75,6 +80,7 @@
"lint-staged": "^12.0.2",
"npm-run-all": "^4.1.5",
"prettier": "^2.4.1",
"rollup": "^2.60.0",
"shx": "^0.3.3",
"sinon": "^12.0.1",
"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
edition = "2018"
edition = "2021"

View file

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

309
yarn.lock
View file

@ -1032,6 +1032,62 @@
dependencies:
"@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":
version "0.14.0"
resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
@ -1127,6 +1183,16 @@
"@types/docker-modem" "*"
"@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":
version "8.1.3"
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"
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":
version "10.0.6"
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"
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:
version "1.0.3"
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"
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:
version "2.0.0"
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"
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:
version "1.0.3"
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-symbol "^1.0.2"
esbuild-android-arm64@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.13.tgz#da07b5fb2daf7d83dcd725f7cf58a6758e6e702a"
integrity sha512-T02aneWWguJrF082jZworjU6vm8f4UQ+IH2K3HREtlqoY9voiJUwHLRL6khRlsNLzVglqgqb7a3HfGx7hAADCQ==
esbuild-android-arm64@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.14.tgz#c85083ece26be3d67e6c720e088968a98409e023"
integrity sha512-Q+Xhfp827r+ma8/DJgpMRUbDZfefsk13oePFEXEIJ4gxFbNv5+vyiYXYuKm43/+++EJXpnaYmEnu4hAKbAWYbA==
esbuild-darwin-64@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.13.tgz#e94e9fd3b4b5455a2e675cd084a19a71b6904bbf"
integrity sha512-wkaiGAsN/09X9kDlkxFfbbIgR78SNjMOfUhoel3CqKBDsi9uZhw7HBNHNxTzYUK8X8LAKFpbODgcRB3b/I8gHA==
esbuild-darwin-64@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.14.tgz#8e4e237ad847cc54a1d3a5caee26a746b9f0b81f"
integrity sha512-YmOhRns6QBNSjpVdTahi/yZ8dscx9ai7a6OY6z5ACgOuQuaQ2Qk2qgJ0/siZ6LgD0gJFMV8UINFV5oky5TFNQQ==
esbuild-darwin-arm64@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.13.tgz#8c320eafbb3ba2c70d8062128c5b71503e342471"
integrity sha512-b02/nNKGSV85Gw9pUCI5B48AYjk0vFggDeom0S6QMP/cEDtjSh1WVfoIFNAaLA0MHWfue8KBwoGVsN7rBshs4g==
esbuild-darwin-arm64@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.14.tgz#b3b5ebd40b2cb06ee0f6fb342dd4bdcca54ad273"
integrity sha512-Lp00VTli2jqZghSa68fx3fEFCPsO1hK59RMo1PRap5RUjhf55OmaZTZYnCDI0FVlCtt+gBwX5qwFt4lc6tI1xg==
esbuild-freebsd-64@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.13.tgz#ce0ca5b8c4c274cfebc9326f9b316834bd9dd151"
integrity sha512-ALgXYNYDzk9YPVk80A+G4vz2D22Gv4j4y25exDBGgqTcwrVQP8rf/rjwUjHoh9apP76oLbUZTmUmvCMuTI1V9A==
esbuild-freebsd-64@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.14.tgz#175ecb2fa8141428cf70ea2d5f4c27534bad53e0"
integrity sha512-BKosI3jtvTfnmsCW37B1TyxMUjkRWKqopR0CE9AF2ratdpkxdR24Vpe3gLKNyWiZ7BE96/SO5/YfhbPUzY8wKw==
esbuild-freebsd-arm64@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.13.tgz#463da17562fdcfdf03b3b94b28497d8d8dcc8f62"
integrity sha512-uFvkCpsZ1yqWQuonw5T1WZ4j59xP/PCvtu6I4pbLejhNo4nwjW6YalqnBvBSORq5/Ifo9S/wsIlVHzkzEwdtlw==
esbuild-freebsd-arm64@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.14.tgz#a7d64e41d1fa581f8db7775e5200f18e67d70c4d"
integrity sha512-yd2uh0yf+fWv5114+SYTl4/1oDWtr4nN5Op+PGxAkMqHfYfLjFKpcxwCo/QOS/0NWqPVE8O41IYZlFhbEN2B8Q==
esbuild-linux-32@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.13.tgz#2035793160da2c4be48a929e5bafb14a31789acc"
integrity sha512-yxR9BBwEPs9acVEwTrEE2JJNHYVuPQC9YGjRfbNqtyfK/vVBQYuw8JaeRFAvFs3pVJdQD0C2BNP4q9d62SCP4w==
esbuild-linux-32@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.14.tgz#14bdd4f6b6cfd35c65c835894651ba335c2117da"
integrity sha512-a8rOnS1oWSfkkYWXoD2yXNV4BdbDKA7PNVQ1klqkY9SoSApL7io66w5H44mTLsfyw7G6Z2vLlaLI2nz9MMAowA==
esbuild-linux-64@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.13.tgz#fbe4802a8168c6d339d0749f977b099449b56f22"
integrity sha512-kzhjlrlJ+6ESRB/n12WTGll94+y+HFeyoWsOrLo/Si0s0f+Vip4b8vlnG0GSiS6JTsWYAtGHReGczFOaETlKIw==
esbuild-linux-64@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.14.tgz#7fd56851b2982fdd0cd8447ee9858c2c5711708a"
integrity sha512-yPZSoMs9W2MC3Dw+6kflKt5FfQm6Dicex9dGIr1OlHRsn3Hm7yGMUTctlkW53KknnZdOdcdd5upxvbxqymczVQ==
esbuild-linux-arm64@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.13.tgz#f08d98df28d436ed4aad1529615822bb74d4d978"
integrity sha512-KMrEfnVbmmJxT3vfTnPv/AiXpBFbbyExH13BsUGy1HZRPFMi5Gev5gk8kJIZCQSRfNR17aqq8sO5Crm2KpZkng==
esbuild-linux-arm64@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.14.tgz#a55634d70679ba509adeafd68eebb9fd1ec5af6c"
integrity sha512-Lvo391ln9PzC334e+jJ2S0Rt0cxP47eoH5gFyv/E8HhOnEJTvm7A+RRnMjjHnejELacTTfYgFGQYPjLsi/jObQ==
esbuild-linux-arm@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.13.tgz#6f968c3a98b64e30c80b212384192d0cfcb32e7f"
integrity sha512-hXub4pcEds+U1TfvLp1maJ+GHRw7oizvzbGRdUvVDwtITtjq8qpHV5Q5hWNNn6Q+b3b2UxF03JcgnpzCw96nUQ==
esbuild-linux-arm@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.14.tgz#bb96a99677e608b31ff61f37564326d38e846ca2"
integrity sha512-8chZE4pkKRvJ/M/iwsNQ1KqsRg2RyU5eT/x2flNt/f8F2TVrDreR7I0HEeCR50wLla3B1C3wTIOzQBmjuc6uWg==
esbuild-linux-mips64le@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.13.tgz#690c78dc4725efe7d06a1431287966fbf7774c7f"
integrity sha512-cJT9O1LYljqnnqlHaS0hdG73t7hHzF3zcN0BPsjvBq+5Ad47VJun+/IG4inPhk8ta0aEDK6LdP+F9299xa483w==
esbuild-linux-mips64le@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.14.tgz#6a55362a8fd1e593dea2ecc41877beed8b8184b9"
integrity sha512-MZhgxbmrWbpY3TOE029O6l5tokG9+Yoj2hW7vdit/d/VnmneqeGrSHADuDL6qXM8L5jaCiaivb4VhsyVCpdAbQ==
esbuild-linux-ppc64le@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.13.tgz#7ec9048502de46754567e734aae7aebd2df6df02"
integrity sha512-+rghW8st6/7O6QJqAjVK3eXzKkZqYAw6LgHv7yTMiJ6ASnNvghSeOcIvXFep3W2oaJc35SgSPf21Ugh0o777qQ==
esbuild-linux-ppc64le@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.14.tgz#9e0048587ece0a7f184ab147f20d077098045e7f"
integrity sha512-un7KMwS7fX1Un6BjfSZxTT8L5cV/8Uf4SAhM7WYy2XF8o8TI+uRxxD03svZnRNIPsN2J5cl6qV4n7Iwz+yhhVw==
esbuild-netbsd-64@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.13.tgz#439bdaefffa03a8fa84324f5d83d636f548a2de3"
integrity sha512-A/B7rwmzPdzF8c3mht5TukbnNwY5qMJqes09ou0RSzA5/jm7Jwl/8z853ofujTFOLhkNHUf002EAgokzSgEMpQ==
esbuild-netbsd-64@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.14.tgz#dcab16a4bbcfa16e2e8535dadc5f64fdc891c63b"
integrity sha512-5ekKx/YbOmmlTeNxBjh38Uh5TGn5C4uyqN17i67k18pS3J+U2hTVD7rCxcFcRS1AjNWumkVL3jWqYXadFwMS0Q==
esbuild-openbsd-64@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.13.tgz#c9958e5291a00a3090c1ec482d6bcdf2d5b5d107"
integrity sha512-szwtuRA4rXKT3BbwoGpsff6G7nGxdKgUbW9LQo6nm0TVCCjDNDC/LXxT994duIW8Tyq04xZzzZSW7x7ttDiw1w==
esbuild-openbsd-64@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.14.tgz#3c7453b155ebb68dc34d5aec3bd6505337bdda08"
integrity sha512-9bzvwewHjct2Cv5XcVoE1yW5YTW12Sk838EYfA46abgnhxGoFSD1mFcaztp5HHC43AsF+hQxbSFG/RilONARUA==
esbuild-sunos-64@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.13.tgz#ac9ead8287379cd2f6d00bd38c5997fda9c1179e"
integrity sha512-ihyds9O48tVOYF48iaHYUK/boU5zRaLOXFS+OOL3ceD39AyHo46HVmsJLc7A2ez0AxNZCxuhu+P9OxfPfycTYQ==
esbuild-sunos-64@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.14.tgz#85addf5fef6b5db154a955d4f2e88953359d75ce"
integrity sha512-mjMrZB76M6FmoiTvj/RGWilrioR7gVwtFBRVugr9qLarXMIU1W/pQx+ieEOtflrW61xo8w1fcxyHsVVGRvoQ0w==
esbuild-windows-32@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.13.tgz#a3820fc86631ca594cb7b348514b5cc3f058cfd6"
integrity sha512-h2RTYwpG4ldGVJlbmORObmilzL8EECy8BFiF8trWE1ZPHLpECE9//J3Bi+W3eDUuv/TqUbiNpGrq4t/odbayUw==
esbuild-windows-32@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.14.tgz#f77f98f30a5c636c44db2428ecdf9bcbbaedb1a7"
integrity sha512-GZa6mrx2rgfbH/5uHg0Rdw50TuOKbdoKCpEBitzmG5tsXBdce+cOL+iFO5joZc6fDVCLW3Y6tjxmSXRk/v20Hg==
esbuild-windows-64@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.13.tgz#1da748441f228d75dff474ddb7d584b81887323c"
integrity sha512-oMrgjP4CjONvDHe7IZXHrMk3wX5Lof/IwFEIbwbhgbXGBaN2dke9PkViTiXC3zGJSGpMvATXVplEhlInJ0drHA==
esbuild-windows-64@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.14.tgz#bc778674c40d65150d12385e0f23eb3a0badbd0d"
integrity sha512-Lsgqah24bT7ClHjLp/Pj3A9wxjhIAJyWQcrOV4jqXAFikmrp2CspA8IkJgw7HFjx6QrJuhpcKVbCAe/xw0i2yw==
esbuild-windows-arm64@0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.13.tgz#06dfa52a6b178a5932a9a6e2fdb240c09e6da30c"
integrity sha512-6fsDfTuTvltYB5k+QPah/x7LrI2+OLAJLE3bWLDiZI6E8wXMQU+wLqtEO/U/RvJgVY1loPs5eMpUBpVajczh1A==
esbuild-windows-arm64@0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.14.tgz#91a8dad35ab2c4dd27cd83860742955b25a354d7"
integrity sha512-KP8FHVlWGhM7nzYtURsGnskXb/cBCPTfj0gOKfjKq2tHtYnhDZywsUG57nk7TKhhK0fL11LcejHG3LRW9RF/9A==
esbuild@^0.13.13:
version "0.13.13"
resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.13.13.tgz#0b5399c20f219f663c8c1048436fb0f59ab17a41"
integrity sha512-Z17A/R6D0b4s3MousytQ/5i7mTCbaF+Ua/yPfoe71vdTv4KBvVAvQ/6ytMngM2DwGJosl8WxaD75NOQl2QF26Q==
esbuild@^0.13.14:
version "0.13.14"
resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.13.14.tgz#98a3f7f42809abdc2b57c84565d0f713382dc1a5"
integrity sha512-xu4D+1ji9x53ocuomcY+KOrwAnWzhBu/wTEjpdgZ8I1c8i5vboYIeigMdzgY1UowYBKa2vZgVgUB32bu7gkxeg==
optionalDependencies:
esbuild-android-arm64 "0.13.13"
esbuild-darwin-64 "0.13.13"
esbuild-darwin-arm64 "0.13.13"
esbuild-freebsd-64 "0.13.13"
esbuild-freebsd-arm64 "0.13.13"
esbuild-linux-32 "0.13.13"
esbuild-linux-64 "0.13.13"
esbuild-linux-arm "0.13.13"
esbuild-linux-arm64 "0.13.13"
esbuild-linux-mips64le "0.13.13"
esbuild-linux-ppc64le "0.13.13"
esbuild-netbsd-64 "0.13.13"
esbuild-openbsd-64 "0.13.13"
esbuild-sunos-64 "0.13.13"
esbuild-windows-32 "0.13.13"
esbuild-windows-64 "0.13.13"
esbuild-windows-arm64 "0.13.13"
esbuild-android-arm64 "0.13.14"
esbuild-darwin-64 "0.13.14"
esbuild-darwin-arm64 "0.13.14"
esbuild-freebsd-64 "0.13.14"
esbuild-freebsd-arm64 "0.13.14"
esbuild-linux-32 "0.13.14"
esbuild-linux-64 "0.13.14"
esbuild-linux-arm "0.13.14"
esbuild-linux-arm64 "0.13.14"
esbuild-linux-mips64le "0.13.14"
esbuild-linux-ppc64le "0.13.14"
esbuild-netbsd-64 "0.13.14"
esbuild-openbsd-64 "0.13.14"
esbuild-sunos-64 "0.13.14"
esbuild-windows-32 "0.13.14"
esbuild-windows-64 "0.13.14"
esbuild-windows-arm64 "0.13.14"
escalade@^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"
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:
version "2.0.3"
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"
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:
version "2.0.1"
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"
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:
version "1.1.4"
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"
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:
version "2.1.0"
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"
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"
resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
@ -5863,6 +5980,13 @@ rimraf@^3.0.0, rimraf@^3.0.2:
dependencies:
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:
version "2.4.1"
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"
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:
version "3.1.1"
resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"