diff --git a/.eslintignore b/.eslintignore index 13e7ff95..cb05ec9a 100644 --- a/.eslintignore +++ b/.eslintignore @@ -13,3 +13,4 @@ __mock__ target scripts triples/index.js +rollup.config.js diff --git a/.eslintrc.yml b/.eslintrc.yml index b820e7e7..d804d02b 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -3,7 +3,7 @@ parser: '@typescript-eslint/parser' parserOptions: ecmaFeatures: jsx: true - ecmaVersion: 2020 + ecmaVersion: latest sourceType: module extraFileExtensions: ['.cjs', '.mjs'] diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 35cc9474..866a1fed 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -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 diff --git a/.github/workflows/bench.yaml b/.github/workflows/bench.yaml index b738f3eb..ad0b6d7f 100644 --- a/.github/workflows/bench.yaml +++ b/.github/workflows/bench.yaml @@ -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 diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 7fd43bb2..e7e46bff 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -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 diff --git a/.github/workflows/linux-aarch64-musl.yaml b/.github/workflows/linux-aarch64-musl.yaml index 2d8029c2..7bc8c7ef 100644 --- a/.github/workflows/linux-aarch64-musl.yaml +++ b/.github/workflows/linux-aarch64-musl.yaml @@ -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 diff --git a/.github/workflows/linux-aarch64.yaml b/.github/workflows/linux-aarch64.yaml index b9c3709e..c78b80c6 100644 --- a/.github/workflows/linux-aarch64.yaml +++ b/.github/workflows/linux-aarch64.yaml @@ -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 diff --git a/.github/workflows/linux-armv7.yaml b/.github/workflows/linux-armv7.yaml index 42c12b5b..d4e2515d 100644 --- a/.github/workflows/linux-armv7.yaml +++ b/.github/workflows/linux-armv7.yaml @@ -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 diff --git a/.github/workflows/linux-musl.yaml b/.github/workflows/linux-musl.yaml index 0ada20e7..66fde7f7 100644 --- a/.github/workflows/linux-musl.yaml +++ b/.github/workflows/linux-musl.yaml @@ -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 diff --git a/.github/workflows/memory-test.yml b/.github/workflows/memory-test.yml index 5a7130e4..9f1d76bc 100644 --- a/.github/workflows/memory-test.yml +++ b/.github/workflows/memory-test.yml @@ -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 diff --git a/.github/workflows/napi3.yaml b/.github/workflows/napi3.yaml index de05604b..bfe6a1a3 100644 --- a/.github/workflows/napi3.yaml +++ b/.github/workflows/napi3.yaml @@ -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 diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 43346444..112d6033 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -28,6 +28,7 @@ jobs: with: node-version: ${{ matrix.node }} check-latest: true + cache: 'yarn' - name: Install uses: actions-rs/toolchain@v1 diff --git a/.github/workflows/windows-arm.yml b/.github/workflows/windows-arm.yml index 8d439b20..5760fd78 100644 --- a/.github/workflows/windows-arm.yml +++ b/.github/workflows/windows-arm.yml @@ -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 diff --git a/.github/workflows/windows-i686.yml b/.github/workflows/windows-i686.yml index 11c82bb5..8159b891 100644 --- a/.github/workflows/windows-i686.yml +++ b/.github/workflows/windows-i686.yml @@ -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 diff --git a/Cargo.toml b/Cargo.toml index 5f0d577b..c2766d02 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,5 +11,9 @@ members = [ "./memory-testing", ] +exclude = [ + "./testing" +] + [profile.release] lto = true diff --git a/cli/package.json b/cli/package.json index 6539ae51..79f49f88 100644 --- a/cli/package.json +++ b/cli/package.json @@ -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", diff --git a/cli/src/build.ts b/cli/src/build.ts index 0fe8ee3b..8518c513 100644 --- a/cli/src/build.ts +++ b/cli/src/build.ts @@ -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', diff --git a/cli/src/index.ts b/cli/src/index.ts index 38184606..c6c5d0d6 100644 --- a/cli/src/index.ts +++ b/cli/src/index.ts @@ -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) diff --git a/cli/src/new/cargo-config.ts b/cli/src/new/cargo-config.ts index 830835e2..9fde9c63 100644 --- a/cli/src/new/cargo-config.ts +++ b/cli/src/new/cargo-config.ts @@ -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') } diff --git a/cli/src/new/cargo.ts b/cli/src/new/cargo.ts index 5e2e55f2..b125e2d4 100644 --- a/cli/src/new/cargo.ts +++ b/cli/src/new/cargo.ts @@ -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 diff --git a/cli/src/new/ci-template.ts b/cli/src/new/ci-template.ts index 6b9c1406..fc9cc7c5 100644 --- a/cli/src/new/ci-template.ts +++ b/cli/src/new/ci-template.ts @@ -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 diff --git a/cli/src/new/index.ts b/cli/src/new/index.ts index ba333d99..c8de840b 100644 --- a/cli/src/new/index.ts +++ b/cli/src/new/index.ts @@ -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) { diff --git a/cli/src/new/lib-rs.ts b/cli/src/new/lib-rs.ts index b003704d..55dfb167 100644 --- a/cli/src/new/lib-rs.ts +++ b/cli/src/new/lib-rs.ts @@ -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 { - 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 { - 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 { - let argument: u32 = ctx.get::(0)?.try_into()?; - - ctx.env.create_uint32(argument + 100) -} - -#[js_function(1)] -fn sleep(ctx: CallContext) -> Result { - let argument: u32 = ctx.get::(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 } ` diff --git a/cli/src/new/package.ts b/cli/src/new/package.ts index d283529d..21a40f94 100644 --- a/cli/src/new/package.ts +++ b/cli/src/new/package.ts @@ -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', diff --git a/cli/src/pre-publish.ts b/cli/src/pre-publish.ts index 3248162c..d92c3eb4 100644 --- a/cli/src/pre-publish.ts +++ b/cli/src/pre-publish.ts @@ -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) { diff --git a/examples/napi-compat-mode/__test__/napi4/tokio_readfile.spec.ts b/examples/napi-compat-mode/__test__/napi4/tokio_readfile.spec.ts index 296fd516..003d91dc 100644 --- a/examples/napi-compat-mode/__test__/napi4/tokio_readfile.spec.ts +++ b/examples/napi-compat-mode/__test__/napi4/tokio_readfile.spec.ts @@ -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((resolve, reject) => { bindings.testTokioReadfile(filepath, (err: Error | null, value: Buffer) => { try { t.is(err, null) diff --git a/examples/napi-compat-mode/__test__/napi4/tokio_rt.spec.ts b/examples/napi-compat-mode/__test__/napi4/tokio_rt.spec.ts index 751a942f..69a8d0d4 100644 --- a/examples/napi-compat-mode/__test__/napi4/tokio_rt.spec.ts +++ b/examples/napi-compat-mode/__test__/napi4/tokio_rt.spec.ts @@ -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') } }) diff --git a/examples/napi-compat-mode/__test__/napi7/arraybuffer.spec.ts b/examples/napi-compat-mode/__test__/napi7/arraybuffer.spec.ts index 08994f06..092a79a1 100644 --- a/examples/napi-compat-mode/__test__/napi7/arraybuffer.spec.ts +++ b/examples/napi-compat-mode/__test__/napi7/arraybuffer.spec.ts @@ -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') } }) diff --git a/examples/napi/__test__/values.spec.ts.md b/examples/napi/__test__/values.spec.ts.md index 1400a0f4..b15aef2e 100644 --- a/examples/napi/__test__/values.spec.ts.md +++ b/examples/napi/__test__/values.spec.ts.md @@ -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', diff --git a/examples/napi/__test__/values.spec.ts.snap b/examples/napi/__test__/values.spec.ts.snap index 97d15dd7..5ba1eaf1 100644 Binary files a/examples/napi/__test__/values.spec.ts.snap and b/examples/napi/__test__/values.spec.ts.snap differ diff --git a/generate-triple-list.ts b/generate-triple-list.ts index f1c34b05..4121c592 100644 --- a/generate-triple-list.ts +++ b/generate-triple-list.ts @@ -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', ), diff --git a/package.json b/package.json index ce66c540..c6d9f31c 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 00000000..b067fd4b --- /dev/null +++ b/rollup.config.js @@ -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(), + ], +} diff --git a/rustfmt.toml b/rustfmt.toml index e8fd890c..cab5731e 100644 --- a/rustfmt.toml +++ b/rustfmt.toml @@ -1,2 +1,2 @@ tab_spaces = 2 -edition = "2018" +edition = "2021" diff --git a/tsconfig.json b/tsconfig.json index f8fa464e..16988746 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -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"] } diff --git a/yarn.lock b/yarn.lock index a45cfb2b..3e974712 100644 --- a/yarn.lock +++ b/yarn.lock @@ -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"