From 7fec7b5e420f65b016b3b6a34bfdb20d32475dd8 Mon Sep 17 00:00:00 2001 From: LongYinan Date: Fri, 13 Nov 2020 16:05:56 +0800 Subject: [PATCH 1/3] feat: napi-rs@1 --- .cargo/config | 2 + .eslintrc.yml | 86 ++- .github/workflows/CI.yaml | 282 ++++++-- Cargo.toml | 7 +- README.md | 14 +- npm/darwin-x64/README.md | 3 + npm/{darwin => darwin-x64}/package.json | 10 +- npm/darwin/README.md | 3 - npm/freebsd-x64/README.md | 3 + npm/freebsd-x64/package.json | 19 + npm/linux-arm64-gnu/README.md | 3 + npm/linux-arm64-gnu/package.json | 19 + npm/linux-musl/README.md | 3 - npm/linux-x64-gnu/README.md | 3 + npm/{linux => linux-x64-gnu}/package.json | 10 +- npm/linux-x64-musl/README.md | 3 + .../package.json | 10 +- npm/linux/README.md | 3 - npm/win32-ia32-msvc/README.md | 3 + npm/win32-ia32-msvc/package.json | 19 + npm/win32-x64-msvc/README.md | 3 + npm/{win32 => win32-x64-msvc}/package.json | 8 +- npm/win32/README.md | 3 - package.json | 71 +- src/lib.rs | 7 +- yarn.lock | 644 +++++++----------- 26 files changed, 729 insertions(+), 512 deletions(-) create mode 100644 .cargo/config create mode 100644 npm/darwin-x64/README.md rename npm/{darwin => darwin-x64}/package.json (71%) delete mode 100644 npm/darwin/README.md create mode 100644 npm/freebsd-x64/README.md create mode 100644 npm/freebsd-x64/package.json create mode 100644 npm/linux-arm64-gnu/README.md create mode 100644 npm/linux-arm64-gnu/package.json delete mode 100644 npm/linux-musl/README.md create mode 100644 npm/linux-x64-gnu/README.md rename npm/{linux => linux-x64-gnu}/package.json (70%) create mode 100644 npm/linux-x64-musl/README.md rename npm/{linux-musl => linux-x64-musl}/package.json (70%) delete mode 100644 npm/linux/README.md create mode 100644 npm/win32-ia32-msvc/README.md create mode 100644 npm/win32-ia32-msvc/package.json create mode 100644 npm/win32-x64-msvc/README.md rename npm/{win32 => win32-x64-msvc}/package.json (73%) delete mode 100644 npm/win32/README.md diff --git a/.cargo/config b/.cargo/config new file mode 100644 index 0000000..3c32d25 --- /dev/null +++ b/.cargo/config @@ -0,0 +1,2 @@ +[target.aarch64-unknown-linux-gnu] +linker = "aarch64-linux-gnu-gcc" diff --git a/.eslintrc.yml b/.eslintrc.yml index 0176dc1..3853957 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -46,8 +46,19 @@ rules: }, ] + # https://github.com/benmosher/eslint-plugin-import/pull/334 + 'import/no-duplicates': 2 'import/first': 2 'import/newline-after-import': 2 + 'import/order': + [ + 2, + { + 'newlines-between': 'always', + 'alphabetize': { 'order': 'asc' }, + 'groups': ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'], + }, + ] 'sonarjs/cognitive-complexity': 0 'sonarjs/no-duplicate-string': 0 @@ -68,12 +79,81 @@ overrides: parserOptions: project: ./tsconfig.json rules: - # eslint will treat TS type as undefined stuff 'no-undef': 0 - - # conflict function override + # TypeScript declare merge + 'no-redeclare': 0 + 'no-useless-constructor': 0 + 'no-unused-vars': 0 'no-dupe-class-members': 0 + 'no-case-declarations': 0 + 'no-duplicate-imports': 0 + # TypeScript Interface and Type + 'no-use-before-define': 0 + '@typescript-eslint/adjacent-overload-signatures': 2 + '@typescript-eslint/await-thenable': 2 + '@typescript-eslint/consistent-type-assertions': 2 + '@typescript-eslint/ban-types': + [ + 'error', + { + 'types': + { + 'String': { 'message': 'Use string instead', 'fixWith': 'string' }, + 'Number': { 'message': 'Use number instead', 'fixWith': 'number' }, + 'Boolean': { 'message': 'Use boolean instead', 'fixWith': 'boolean' }, + 'Function': { 'message': 'Use explicit type instead' }, + }, + }, + ] + '@typescript-eslint/explicit-member-accessibility': + [ + 'error', + { + accessibility: 'explicit', + overrides: + { + accessors: 'no-public', + constructors: 'no-public', + methods: 'no-public', + properties: 'no-public', + parameterProperties: 'explicit', + }, + }, + ] + '@typescript-eslint/method-signature-style': 2 + '@typescript-eslint/no-floating-promises': 2 + '@typescript-eslint/no-implied-eval': 2 + '@typescript-eslint/no-for-in-array': 2 + '@typescript-eslint/no-inferrable-types': 2 + '@typescript-eslint/no-invalid-void-type': 2 + '@typescript-eslint/no-misused-new': 2 + '@typescript-eslint/no-misused-promises': 2 + '@typescript-eslint/no-namespace': 2 + '@typescript-eslint/no-non-null-asserted-optional-chain': 2 + '@typescript-eslint/no-throw-literal': 2 + '@typescript-eslint/no-unnecessary-boolean-literal-compare': 2 + '@typescript-eslint/prefer-for-of': 2 + '@typescript-eslint/prefer-nullish-coalescing': 2 + '@typescript-eslint/switch-exhaustiveness-check': 2 + '@typescript-eslint/prefer-optional-chain': 2 + '@typescript-eslint/prefer-readonly': 2 + '@typescript-eslint/prefer-string-starts-ends-with': 0 + '@typescript-eslint/no-array-constructor': 2 + '@typescript-eslint/require-await': 2 + '@typescript-eslint/return-await': 2 + '@typescript-eslint/ban-ts-comment': + [2, { 'ts-expect-error': false, 'ts-ignore': true, 'ts-nocheck': true, 'ts-check': false }] + '@typescript-eslint/naming-convention': + [ + 2, + { + selector: 'memberLike', + format: ['camelCase', 'PascalCase'], + modifiers: ['private'], + leadingUnderscore: 'forbid', + }, + ] '@typescript-eslint/no-unused-vars': [2, { varsIgnorePattern: '^_', argsIgnorePattern: '^_', ignoreRestSiblings: true }] '@typescript-eslint/member-ordering': diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml index ce80c48..8d86b35 100644 --- a/.github/workflows/CI.yaml +++ b/.github/workflows/CI.yaml @@ -2,6 +2,7 @@ name: CI env: DEBUG: 'napi:*' + APP_NAME: 'package-template' on: push: @@ -19,32 +20,17 @@ jobs: matrix: os: [ubuntu-latest, macos-latest, windows-latest] - name: stable - ${{ matrix.os }} - node@12 + name: stable - ${{ matrix.os }} - node@14 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - name: Setup node - uses: actions/setup-node@v1 + uses: actions/setup-node@v2-beta with: - node-version: 12 - - - name: Set platform name - run: | - export NODE_PLATFORM_NAME=$(node -e "console.log(require('os').platform())") - echo "PLATFORM_NAME=${NODE_PLATFORM_NAME}" >> $GITHUB_ENV - shell: bash - - - name: Install llvm - if: matrix.os == 'windows-latest' - run: choco install -y llvm - - - name: Set llvm path - if: matrix.os == 'windows-latest' - run: | - echo "LIBCLANG_PATH=C:\\Program Files\\LLVM\\bin" >> $GITHUB_ENV - shell: bash + node-version: 14 + check-latest: true - name: Install uses: actions-rs/toolchain@v1 @@ -62,19 +48,19 @@ jobs: uses: actions/cache@v1 with: path: ~/.cargo/registry - key: stable-${{ matrix.os }}-node@12-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }} + key: stable-${{ matrix.os }}-node@14-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo index uses: actions/cache@v1 with: path: ~/.cargo/git - key: stable-${{ matrix.os }}gnu-node@12-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }} + key: stable-${{ matrix.os }}gnu-node@14-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }} - name: Cache NPM dependencies uses: actions/cache@v1 with: path: node_modules - key: npm-cache-${{ matrix.os }}-node@12-${{ hashFiles('yarn.lock') }} + key: npm-cache-${{ matrix.os }}-node@14-${{ hashFiles('yarn.lock') }} restore-keys: | npm-cache- - name: 'Install dependencies' @@ -93,15 +79,15 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v2 with: - name: bindings-${{ env.PLATFORM_NAME }} - path: package-template.${{ env.PLATFORM_NAME }}.node + name: bindings-${{ matrix.os }} + path: ${{ env.APP_NAME }}.*.node - name: Clear the cargo caches run: | cargo install cargo-cache --no-default-features --features ci-autoclean cargo-cache - build_musl: + build-linux-musl: if: "!contains(github.event.head_commit.message, 'skip ci')" name: stable - linux-musl - node@12 runs-on: ubuntu-latest @@ -126,14 +112,151 @@ jobs: - name: 'Build' run: | - docker run --rm -v $(pwd)/.cargo:/root/.cargo -v $(pwd):/fast-escape -w /fast-escape builder sh -c "yarn build --musl" + docker run --rm -v $(pwd)/.cargo:/root/.cargo -v $(pwd):/${{ env.APP_NAME }} -e DEBUG="napi:*" -w /${{ env.APP_NAME }} builder sh -c "yarn build" - name: Upload artifact uses: actions/upload-artifact@v2 with: name: bindings-linux-musl - path: package-template.linux-musl.node + path: ${{ env.APP_NAME }}.*.node + + build-linux-aarch64: + name: stable - aarch64-unknown-linux-gnu - node@14 + runs-on: ubuntu-latest + + steps: + - run: docker run --rm --privileged multiarch/qemu-user-static:register --reset + + - uses: actions/checkout@v2 + + - name: Setup node + uses: actions/setup-node@v2-beta + with: + node-version: 14 + check-latest: true + + - name: Install + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + profile: minimal + override: true + + - 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@v1 + with: + path: ~/.cargo/registry + key: stable-linux-aarch64-gnu-node@14-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }} + + - name: Cache cargo index + uses: actions/cache@v1 + with: + path: ~/.cargo/git + key: stable-linux-aarch64-gnu-node@14-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }} + + - name: Cache NPM dependencies + uses: actions/cache@v1 + with: + path: node_modules + key: npm-cache-linux-aarch64-gnu-node@14-${{ hashFiles('yarn.lock') }} + restore-keys: | + npm-cache- + + - name: Install cross compile toolchain + run: | + sudo apt-get update + sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu -y + + - name: Install dependencies + run: yarn install --frozen-lockfile --registry https://registry.npmjs.org + + - name: Cross build aarch64 + run: yarn build --target aarch64-unknown-linux-gnu + + - name: Upload artifact + uses: actions/upload-artifact@v2 + with: + name: bindings-linux-aarch64 + path: ${{ env.APP_NAME }}.*.node + + build-win32-ia686: + runs-on: windows-latest + env: + CARGO_PROFILE_napi_OPT_LEVEL: 0 + CARGO_PROFILE_napi_OPT_LTO: false + steps: + - uses: actions/checkout@v2 + + - name: Install node x86 + run: | + choco install nodejs-lts --x86 -y --force + refreshenv + + - name: Set 32bit NodeJS path + run: | + echo "C:\\Program Files (x86)\\nodejs" >> $GITHUB_PATH + shell: bash + + - name: Cache NPM dependencies + uses: actions/cache@v1 + with: + path: node_modules + key: npm-cache-windows-i686-node@lts-${{ hashFiles('yarn.lock') }} + restore-keys: | + npm-cache- + + - name: 'Install dependencies' + run: yarn install --frozen-lockfile --registry https://registry.npmjs.org - test_binding: + - name: Install + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + profile: minimal + override: true + + - name: Install i686 toolchain + run: rustup target add i686-pc-windows-msvc + + - name: Generate Cargo.lock + uses: actions-rs/cargo@v1 + with: + command: generate-lockfile + + - name: Cache cargo registry + uses: actions/cache@v1 + with: + path: ~/.cargo/registry + key: stable-windows-i686-node@lts-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }} + + - name: Cache cargo index + uses: actions/cache@v1 + with: + path: ~/.cargo/git + key: stable-windows-i686-node@lts-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }} + + - name: Cross build i686 + run: yarn build --target i686-pc-windows-msvc + + - name: Test binary + run: | + node -v + node simple-test.js + + - name: Upload artifact + uses: actions/upload-artifact@v2 + with: + name: bindings-win32-i686 + path: ${{ env.APP_NAME }}.*.node + + test: name: Test bindings on ${{ matrix.os }} - node@${{ matrix.node }} needs: - build @@ -141,31 +264,33 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] - node: ['10', '12', '14'] + node: ['10', '12', '14', '15'] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - name: Setup node - uses: actions/setup-node@v1 + uses: actions/setup-node@v2-beta with: node-version: ${{ matrix.node }} + check-latest: true - - name: Set platform name - run: | - export NODE_PLATFORM_NAME=$(node -e "console.log(require('os').platform())") - echo "PLATFORM_NAME=${NODE_PLATFORM_NAME}" >> $GITHUB_ENV - shell: bash + - name: Cache NPM dependencies + uses: actions/cache@v1 + with: + path: node_modules + key: npm-cache-test-${{ matrix.os }}-node@${{ matrix.node }}-${{ hashFiles('yarn.lock') }} + restore-keys: | + npm-cache- - # Do not cache node_modules, or yarn workspace links broken - name: 'Install dependencies' run: yarn install --frozen-lockfile --registry https://registry.npmjs.org - name: Download artifacts uses: actions/download-artifact@v2 with: - name: bindings-${{ env.PLATFORM_NAME }} + name: bindings-${{ matrix.os }} path: . - name: List packages @@ -175,14 +300,14 @@ jobs: - name: Test bindings run: yarn test - test_musl_binding: + test-musl: name: Test bindings on alpine - node@${{ matrix.node }} needs: - - build_musl + - build-linux-musl strategy: fail-fast: false matrix: - node: ['12', '14'] + node: ['12', '14', '15'] runs-on: ubuntu-latest steps: @@ -202,12 +327,68 @@ jobs: shell: bash - name: Run simple tests - run: docker run --rm -v $(pwd)/.cargo:/root/.cargo -v $(pwd):/fast-escape -w /fast-escape node:${{ matrix.node }}-alpine sh -c "node ./simple-test.js" + run: docker run --rm -v $(pwd)/.cargo:/root/.cargo -v $(pwd):/${{ env.APP_NAME }} -w /${{ env.APP_NAME }} node:${{ matrix.node }}-alpine sh -c "node ./simple-test.js" + + test-aarch64: + name: stable - aarch64-unknown-linux-gnu - node@${{ matrix.node }} + runs-on: ubuntu-latest + + needs: + - build-linux-aarch64 + strategy: + fail-fast: false + matrix: + node: ['12', '14', '15'] + + steps: + - run: docker run --rm --privileged multiarch/qemu-user-static:register --reset + + - uses: actions/checkout@v2 + + - name: Setup node + uses: actions/setup-node@v2-beta + with: + node-version: ${{ matrix.node }} + check-latest: true + + - name: Cache NPM dependencies + uses: actions/cache@v1 + with: + path: node_modules + key: npm-cache-test-${{ matrix.os }}-node@${{ matrix.node }}-${{ hashFiles('yarn.lock') }} + restore-keys: | + npm-cache- + + - name: 'Install dependencies' + run: yarn install --frozen-lockfile --registry https://registry.npmjs.org + + - name: Download artifacts + uses: actions/download-artifact@v2 + with: + name: bindings-linux-aarch64 + path: . + + - name: List + run: ls -a + + - name: Run tests + uses: docker://multiarch/ubuntu-core:arm64-focal + with: + args: > + sh -c " + apt-get update && \ + apt-get install -y ca-certificates gnupg2 curl && \ + curl -sL https://deb.nodesource.com/setup_${{ matrix.node }}.x | bash - && \ + apt-get install -y nodejs && \ + node ./simple-test.js + " dependabot: needs: - - test_binding - - test_musl_binding + - test + - test-musl + - test-aarch64 + - build-win32-ia686 runs-on: ubuntu-latest steps: - name: auto-merge @@ -220,22 +401,25 @@ jobs: name: Publish runs-on: ubuntu-latest needs: - - test_binding - - test_musl_binding + - test + - test-musl + - test-aarch64 + - build-win32-ia686 steps: - uses: actions/checkout@v2 - name: Setup node - uses: actions/setup-node@v1 + uses: actions/setup-node@v2-beta with: - node-version: 12 + node-version: 14 + check-latest: true - name: Cache NPM dependencies uses: actions/cache@v1 with: path: node_modules - key: npm-cache-ubuntu-latest-${{ hashFiles('yarn.lock') }} + key: npm-cache-publish-ubuntu-latest-${{ hashFiles('yarn.lock') }} restore-keys: | npm-cache- - name: 'Install dependencies' @@ -250,7 +434,7 @@ jobs: run: yarn artifacts - name: List packages - run: ls -R . + run: ls -R npm shell: bash - name: Publish diff --git a/Cargo.toml b/Cargo.toml index b76723b..373d2f2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,8 +10,8 @@ version = "0.1.0" crate-type = ["cdylib"] [dependencies] -napi = {version = "0.5"} -napi-derive = {version = "0.5"} +napi = {git = "https://github.com/napi-rs/napi-rs", branch = "cstring-issues"} +napi-derive = {git = "https://github.com/napi-rs/napi-rs", branch = "cstring-issues"} [target.'cfg(all(unix, not(target_env = "musl")))'.dependencies] jemallocator = {version = "0.3", features = ["disable_initial_exec_tls"]} @@ -20,8 +20,7 @@ jemallocator = {version = "0.3", features = ["disable_initial_exec_tls"]} mimalloc = {version = "0.1"} [build-dependencies] -napi-build = "0.2" +napi-build = {git = "https://github.com/napi-rs/napi-rs", branch = "cstring-issues"} [profile.release] lto = true -opt-level = 3 diff --git a/README.md b/README.md index 4bc9b95..91bce96 100644 --- a/README.md +++ b/README.md @@ -14,15 +14,15 @@ yarn add @napi-rs/package-template ### Operating Systems -| Linux | macOS | Windows x64 MSVC | -| ----- | ----- | ---------------- | -| ✓ | ✓ | ✓ | +| Linux x64/aarch64 | macOS | Windows i686/x64 | +| ----------------- | ----- | ---------------- | +| ✓ | ✓ | ✓ | ### NodeJS -| Node10 | Node 12 | Node14 | -| ------ | ------- | ------ | -| ✓ | ✓ | ✓ | +| Node10 | Node 12 | Node14 | Node15 | +| ------ | ------- | ------ | ------ | +| ✓ | ✓ | ✓ | ✓ | ## Ability @@ -53,7 +53,7 @@ In this package we choose a better way to solve this problem. We release differe ## Develop requirements - Install latest `Rust` -- Install `NodeJS@8.9+` which supported `N-API` +- Install `NodeJS@10+` which fully supported `N-API` - Install `yarn@1.x` ## Test in local diff --git a/npm/darwin-x64/README.md b/npm/darwin-x64/README.md new file mode 100644 index 0000000..37fd27e --- /dev/null +++ b/npm/darwin-x64/README.md @@ -0,0 +1,3 @@ +# `@napi-rs/package-template-darwin-x64` + +This is the **x86_64-apple-darwin** binary for `@napi-rs/package-template` diff --git a/npm/darwin/package.json b/npm/darwin-x64/package.json similarity index 71% rename from npm/darwin/package.json rename to npm/darwin-x64/package.json index eb0b521..6e720e5 100644 --- a/npm/darwin/package.json +++ b/npm/darwin-x64/package.json @@ -1,15 +1,15 @@ { - "name": "@napi-rs/package-template-darwin", + "name": "@napi-rs/package-template-darwin-x64", "version": "0.0.8", "os": ["darwin"], - "main": "package-template.darwin.node", - "files": ["package-template.darwin.node"], + "cpu": ["x64"], + "main": "package-template.darwin-x64.node", + "files": ["package-template.darwin-x64.node"], "description": "Template project for writing node package with napi-rs", "keywords": ["napi-rs", "NAPI", "N-API", "Rust", "node-addon", "node-addon-api"], "license": "MIT", - "cpu": ["x64"], "engines": { - "node": ">= 8.9" + "node": ">= 10" }, "publishConfig": { "registry": "https://registry.npmjs.org/", diff --git a/npm/darwin/README.md b/npm/darwin/README.md deleted file mode 100644 index c05ac27..0000000 --- a/npm/darwin/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@napi-rs/package-template-darwin` - -This is the **darwin** 64-bit binary for `@napi-rs/package-template` diff --git a/npm/freebsd-x64/README.md b/npm/freebsd-x64/README.md new file mode 100644 index 0000000..1ea628b --- /dev/null +++ b/npm/freebsd-x64/README.md @@ -0,0 +1,3 @@ +# `@napi-rs/package-template-freebsd-x64` + +This is the **x86_64-unknown-freebsd** binary for `@napi-rs/package-template` diff --git a/npm/freebsd-x64/package.json b/npm/freebsd-x64/package.json new file mode 100644 index 0000000..3f743d3 --- /dev/null +++ b/npm/freebsd-x64/package.json @@ -0,0 +1,19 @@ +{ + "name": "@napi-rs/package-template-freebsd-x64", + "version": "0.0.8", + "os": ["freebsd"], + "cpu": ["x64"], + "main": "package-template.freebsd-x64.node", + "files": ["package-template.freebsd-x64.node"], + "description": "Template project for writing node package with napi-rs", + "keywords": ["napi-rs", "NAPI", "N-API", "Rust", "node-addon", "node-addon-api"], + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, + "repository": "git@github.com:napi-rs/package-template.git" +} diff --git a/npm/linux-arm64-gnu/README.md b/npm/linux-arm64-gnu/README.md new file mode 100644 index 0000000..2601bff --- /dev/null +++ b/npm/linux-arm64-gnu/README.md @@ -0,0 +1,3 @@ +# `@napi-rs/package-template-linux-arm64-gnu` + +This is the **aarch64-unknown-linux-gnu** binary for `@napi-rs/package-template` diff --git a/npm/linux-arm64-gnu/package.json b/npm/linux-arm64-gnu/package.json new file mode 100644 index 0000000..8426256 --- /dev/null +++ b/npm/linux-arm64-gnu/package.json @@ -0,0 +1,19 @@ +{ + "name": "@napi-rs/package-template-linux-arm64-gnu", + "version": "0.0.8", + "os": ["linux"], + "cpu": ["arm64"], + "main": "package-template.linux-arm64-gnu.node", + "files": ["package-template.linux-arm64-gnu.node"], + "description": "Template project for writing node package with napi-rs", + "keywords": ["napi-rs", "NAPI", "N-API", "Rust", "node-addon", "node-addon-api"], + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, + "repository": "git@github.com:napi-rs/package-template.git" +} diff --git a/npm/linux-musl/README.md b/npm/linux-musl/README.md deleted file mode 100644 index d392fdb..0000000 --- a/npm/linux-musl/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@napi-rs/package-template-linux-musl` - -This is the **linux-musl** 64-bit binary for `@napi-rs/package-template` diff --git a/npm/linux-x64-gnu/README.md b/npm/linux-x64-gnu/README.md new file mode 100644 index 0000000..42d28b1 --- /dev/null +++ b/npm/linux-x64-gnu/README.md @@ -0,0 +1,3 @@ +# `@napi-rs/package-template-linux-x64-gnu` + +This is the **x86_64-unknown-linux-gnu** binary for `@napi-rs/package-template` diff --git a/npm/linux/package.json b/npm/linux-x64-gnu/package.json similarity index 70% rename from npm/linux/package.json rename to npm/linux-x64-gnu/package.json index e81beaf..a79fa63 100644 --- a/npm/linux/package.json +++ b/npm/linux-x64-gnu/package.json @@ -1,15 +1,15 @@ { - "name": "@napi-rs/package-template-linux", + "name": "@napi-rs/package-template-linux-x64-gnu", "version": "0.0.8", "os": ["linux"], - "main": "package-template.linux.node", - "files": ["package-template.linux.node"], + "cpu": ["x64"], + "main": "package-template.linux-x64-gnu.node", + "files": ["package-template.linux-x64-gnu.node"], "description": "Template project for writing node package with napi-rs", "keywords": ["napi-rs", "NAPI", "N-API", "Rust", "node-addon", "node-addon-api"], "license": "MIT", - "cpu": ["x64"], "engines": { - "node": ">= 8.9" + "node": ">= 10" }, "publishConfig": { "registry": "https://registry.npmjs.org/", diff --git a/npm/linux-x64-musl/README.md b/npm/linux-x64-musl/README.md new file mode 100644 index 0000000..10c2913 --- /dev/null +++ b/npm/linux-x64-musl/README.md @@ -0,0 +1,3 @@ +# `@napi-rs/package-template-linux-x64-musl` + +This is the **x86_64-unknown-linux-musl** binary for `@napi-rs/package-template` diff --git a/npm/linux-musl/package.json b/npm/linux-x64-musl/package.json similarity index 70% rename from npm/linux-musl/package.json rename to npm/linux-x64-musl/package.json index 69cc1d7..c48a045 100644 --- a/npm/linux-musl/package.json +++ b/npm/linux-x64-musl/package.json @@ -1,15 +1,15 @@ { - "name": "@napi-rs/package-template-linux-musl", + "name": "@napi-rs/package-template-linux-x64-musl", "version": "0.0.8", "os": ["linux"], - "main": "package-template.linux-musl.node", - "files": ["package-template.linux-musl.node"], + "cpu": ["x64"], + "main": "package-template.linux-x64-musl.node", + "files": ["package-template.linux-x64-musl.node"], "description": "Template project for writing node package with napi-rs", "keywords": ["napi-rs", "NAPI", "N-API", "Rust", "node-addon", "node-addon-api"], "license": "MIT", - "cpu": ["x64"], "engines": { - "node": ">= 8.9" + "node": ">= 10" }, "publishConfig": { "registry": "https://registry.npmjs.org/", diff --git a/npm/linux/README.md b/npm/linux/README.md deleted file mode 100644 index fcc52a3..0000000 --- a/npm/linux/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@napi-rs/package-template-linux` - -This is the **linux** 64-bit binary for `@napi-rs/package-template` diff --git a/npm/win32-ia32-msvc/README.md b/npm/win32-ia32-msvc/README.md new file mode 100644 index 0000000..1c0e7a3 --- /dev/null +++ b/npm/win32-ia32-msvc/README.md @@ -0,0 +1,3 @@ +# `@napi-rs/package-template-win32-ia32-msvc` + +This is the **i686-pc-windows-msvc** binary for `@napi-rs/package-template` diff --git a/npm/win32-ia32-msvc/package.json b/npm/win32-ia32-msvc/package.json new file mode 100644 index 0000000..dbc4093 --- /dev/null +++ b/npm/win32-ia32-msvc/package.json @@ -0,0 +1,19 @@ +{ + "name": "@napi-rs/package-template-win32-ia32-msvc", + "version": "0.0.8", + "os": ["win32"], + "cpu": ["ia32"], + "main": "package-template.win32-ia32-msvc.node", + "files": ["package-template.win32-ia32-msvc.node"], + "description": "Template project for writing node package with napi-rs", + "keywords": ["napi-rs", "NAPI", "N-API", "Rust", "node-addon", "node-addon-api"], + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "access": "public" + }, + "repository": "git@github.com:napi-rs/package-template.git" +} diff --git a/npm/win32-x64-msvc/README.md b/npm/win32-x64-msvc/README.md new file mode 100644 index 0000000..1acad6c --- /dev/null +++ b/npm/win32-x64-msvc/README.md @@ -0,0 +1,3 @@ +# `@napi-rs/package-template-win32-x64-msvc` + +This is the **x86_64-pc-windows-msvc** binary for `@napi-rs/package-template` diff --git a/npm/win32/package.json b/npm/win32-x64-msvc/package.json similarity index 73% rename from npm/win32/package.json rename to npm/win32-x64-msvc/package.json index 3ce723f..1291db6 100644 --- a/npm/win32/package.json +++ b/npm/win32-x64-msvc/package.json @@ -1,13 +1,13 @@ { - "name": "@napi-rs/package-template-win32", + "name": "@napi-rs/package-template-win32-x64-msvc", "version": "0.0.8", "os": ["win32"], - "main": "package-template.win32.node", - "files": ["package-template.win32.node"], + "cpu": ["x64"], + "main": "package-template.win32-x64-msvc.node", + "files": ["package-template.win32-x64-msvc.node"], "description": "Template project for writing node package with napi-rs", "keywords": ["napi-rs", "NAPI", "N-API", "Rust", "node-addon", "node-addon-api"], "license": "MIT", - "cpu": ["x64"], "engines": { "node": ">= 8.9" }, diff --git a/npm/win32/README.md b/npm/win32/README.md deleted file mode 100644 index 81af7ca..0000000 --- a/npm/win32/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@napi-rs/package-template-win32` - -This is the **win32** 64-bit binary for `@napi-rs/package-template` diff --git a/package.json b/package.json index 35cfa4a..049a96f 100644 --- a/package.json +++ b/package.json @@ -5,16 +5,32 @@ "main": "index.js", "repository": "git@github.com:napi-rs/package-template.git", "license": "MIT", - "keywords": ["napi-rs", "NAPI", "N-API", "Rust", "node-addon", "node-addon-api"], - "files": ["index.d.ts", "index.js"], - "os": ["darwin", "linux", "win32"], - "cpu": ["x64"], + "keywords": [ + "napi-rs", + "NAPI", + "N-API", + "Rust", + "node-addon", + "node-addon-api" + ], + "files": [ + "index.d.ts", + "index.js" + ], "napi": { "name": "package-template", - "musl": ["linux"] + "triples": { + "defaults": true, + "additional": [ + "x86_64-unknown-linux-musl", + "x86_64-unknown-freebsd", + "aarch64-unknown-linux-gnu", + "i686-pc-windows-msvc" + ] + } }, "engines": { - "node": ">= 8.9" + "node": ">= 10" }, "publishConfig": { "registry": "https://registry.npmjs.org/", @@ -22,9 +38,9 @@ }, "scripts": { "artifacts": "napi artifacts", - "bench": "node -r @swc-node/register benchmark/bench.ts", - "build": "cargo build --release && napi build --platform --release", - "build:debug": "cargo build && napi build --platform", + "bench": "node -r ts-node/register/transpile-only benchmark/bench.ts", + "build": "napi build --platform --release", + "build:debug": "napi build --platform", "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'", @@ -37,7 +53,7 @@ "version": "napi version" }, "devDependencies": { - "@swc-node/register": "^1.0.2", + "@napi-rs/cli": "^1.0.0-alpha.4", "@typescript-eslint/eslint-plugin": "^4.8.2", "@typescript-eslint/parser": "^4.8.2", "ava": "^3.13.0", @@ -47,30 +63,41 @@ "eslint-config-prettier": "^6.15.0", "eslint-plugin-import": "^2.22.1", "eslint-plugin-prettier": "^3.1.4", - "eslint-plugin-react": "^7.21.5", - "eslint-plugin-react-hooks": "^4.2.0", "eslint-plugin-sonarjs": "^0.5.0", "husky": "^4.3.0", "lint-staged": "^10.5.2", - "napi-rs": "^0.3.10", "npm-run-all": "^4.1.5", "prettier": "^2.2.0", + "ts-node": "^9.0.0", "typescript": "^4.1.2" }, "dependencies": { - "@node-rs/helper": "^0.4.0" + "@node-rs/helper": "^1.0.0-alpha.1" }, "lint-staged": { - "*.@(js|ts|tsx)": ["prettier --write", "eslint -c .eslintrc.yml --fix"], - "*.@(yml|yaml)": ["prettier --parser yaml --write"], - "*.md": ["prettier --parser markdown --write"], - "*.json": ["prettier --parser json --write"] + "*.@(js|ts|tsx)": [ + "prettier --write", + "eslint -c .eslintrc.yml --fix" + ], + "*.@(yml|yaml)": [ + "prettier --parser yaml --write" + ], + "*.md": [ + "prettier --parser markdown --write" + ], + "*.json": [ + "prettier --parser json --write" + ] }, "ava": { - "require": ["@swc-node/register"], - "extensions": ["ts"], + "require": [ + "ts-node/register/transpile-only" + ], + "extensions": [ + "ts" + ], "environmentVariables": { - "SWC_NODE_PROJECT": "./tsconfig.json" + "TS_NODE_PROJECT": "./tsconfig.json" } }, "prettier": { @@ -86,4 +113,4 @@ "pre-commit": "lint-staged" } } -} +} \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index 5815f05..d169350 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -11,7 +11,7 @@ use napi::{CallContext, Env, JsNumber, JsObject, Module, Result, Task}; #[global_allocator] static ALLOC: jemallocator::Jemalloc = jemallocator::Jemalloc; -#[cfg(windows)] +#[cfg(all(windows, target_arch = "x86_64"))] #[global_allocator] static ALLOC: mimalloc::MiMalloc = mimalloc::MiMalloc; @@ -30,7 +30,7 @@ impl Task for AsyncTask { Ok(self.0 * 2) } - fn resolve(&self, env: &mut Env, output: Self::Output) -> Result { + fn resolve(self, env: Env, output: Self::Output) -> Result { env.create_uint32(output) } } @@ -53,5 +53,6 @@ fn sync_fn(ctx: CallContext) -> Result { fn sleep(ctx: CallContext) -> Result { let argument: u32 = ctx.get::(0)?.try_into()?; let task = AsyncTask(argument); - ctx.env.spawn(task) + let async_task = ctx.env.spawn(task)?; + Ok(async_task.promise_object()) } diff --git a/yarn.lock b/yarn.lock index 9bb8040..d66f8b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -66,7 +66,7 @@ "@eslint/eslintrc@^0.2.1": version "0.2.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c" integrity sha512-XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA== dependencies: ajv "^6.12.4" @@ -80,11 +80,33 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@node-rs/helper@^0.4.0": - version "0.4.0" - resolved "https://registry.npmjs.org/@node-rs/helper/-/helper-0.4.0.tgz#deec7d95aafa90535980a51cbd5336b8bbefe93a" - integrity sha512-fSyHEXmlt/FueKqAYiGFCnkohnQBMQwUr6VYPeZEeVBAzQzhioS1WaRe2fSpOuRKIimCQEvxhQ6fwsYxYakfGA== +"@napi-rs/cli@^1.0.0-alpha.4": + version "1.0.0-alpha.4" + resolved "https://registry.npmjs.org/@napi-rs/cli/-/cli-1.0.0-alpha.4.tgz#89abab2cdef64e382dc02affecd7cf13a2dfa0e4" + integrity sha512-WGgzjhf3cIaW96zKQvY66TQqSkJF9Z0HTkvroUc+79gNtoIktXn1yXFvKK3xbsoiLNPDM8gqEb9bFW/Lv7TpLg== dependencies: + "@octokit/rest" "^18.0.9" + chalk "^4.1.0" + clipanion "^2.6.2" + debug "^4.2.0" + fdir "^4.1.0" + inquirer "^7.3.3" + lodash "^4.17.20" + putasset "^5.0.3" + toml "^3.0.0" + tslib "^2.0.3" + +"@napi-rs/triples@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.0.1.tgz#0c6429b1bdfb49ccf3d3028981e8f24648fc5c6b" + integrity sha512-oXuxnVeP157s7yLch+dKisshX/fHRn7YQC/IR3UG+u4BbmbeJOA+df7F+7IU2DMkcdWTHM75ZcFVVAmhh5rxrQ== + +"@node-rs/helper@^1.0.0-alpha.1": + version "1.0.0-alpha.1" + resolved "https://registry.npmjs.org/@node-rs/helper/-/helper-1.0.0-alpha.1.tgz#bd58d3dc8dcc6085c109f719d6072979466904c2" + integrity sha512-N78eCbp0tc+QZCnyjzUgYMAo2o5zcWyrU5CfQNoMgeILruzULYsCArc7wQrnz/dSqFldJQE//CSPxZi8PWrTcg== + dependencies: + "@napi-rs/triples" "^1.0.1" tslib "^2.0.1" "@nodelib/fs.scandir@2.1.3": @@ -109,9 +131,9 @@ fastq "^1.6.0" "@octokit/auth-token@^2.4.0": - version "2.4.2" - resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.2.tgz#10d0ae979b100fa6b72fa0e8e63e27e6d0dbff8a" - integrity sha512-jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ== + version "2.4.3" + resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.3.tgz#b868b5f2366533a7e62933eaa1181a8924228cc4" + integrity sha512-fdGoOQ3kQJh+hrilc0Plg50xSfaCKOeYN9t6dpJKXN9BxhhfquL0OzoQXg3spLYymL5rm29uPeI3KEXRaZQ9zg== dependencies: "@octokit/types" "^5.0.0" @@ -128,9 +150,9 @@ universal-user-agent "^5.0.0" "@octokit/core@^3.0.0": - version "3.1.2" - resolved "https://registry.npmjs.org/@octokit/core/-/core-3.1.2.tgz#c937d5f9621b764573068fcd2e5defcc872fd9cc" - integrity sha512-AInOFULmwOa7+NFi9F8DlDkm5qtZVmDQayi7TUgChE3yeIGPq0Y+6cAEXPexQ3Ea+uZy66hKEazR7DJyU+4wfw== + version "3.2.1" + resolved "https://registry.npmjs.org/@octokit/core/-/core-3.2.1.tgz#9e04df3f4e7f825ac0559327490ce34299140af5" + integrity sha512-XfFSDDwv6tclUenS0EmB6iA7u+4aOHBT1Lz4PtQNQQg3hBbNaR/+Uv5URU+egeIuuGAiMRiDyY92G4GBOWOqDA== dependencies: "@octokit/auth-token" "^2.4.0" "@octokit/graphql" "^4.3.1" @@ -140,34 +162,34 @@ universal-user-agent "^6.0.0" "@octokit/endpoint@^6.0.1": - version "6.0.6" - resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.6.tgz#4f09f2b468976b444742a1d5069f6fa45826d999" - integrity sha512-7Cc8olaCoL/mtquB7j/HTbPM+sY6Ebr4k2X2y4JoXpVKQ7r5xB4iGQE0IoO58wIPsUk4AzoT65AMEpymSbWTgQ== + version "6.0.9" + resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.9.tgz#c6a772e024202b1bd19ab69f90e0536a2598b13e" + integrity sha512-3VPLbcCuqji4IFTclNUtGdp9v7g+nspWdiCUbK3+iPMjJCZ6LEhn1ts626bWLOn0GiDb6j+uqGvPpqLnY7pBgw== dependencies: "@octokit/types" "^5.0.0" is-plain-object "^5.0.0" universal-user-agent "^6.0.0" "@octokit/graphql@^4.3.1": - version "4.5.6" - resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.5.6.tgz#708143ba15cf7c1879ed6188266e7f270be805d4" - integrity sha512-Rry+unqKTa3svswT2ZAuqenpLrzJd+JTv89LTeVa5UM/5OX8o4KTkPL7/1ABq4f/ZkELb0XEK/2IEoYwykcLXg== + version "4.5.7" + resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.5.7.tgz#f4562dcd9e80ea94602068e85aefac19a88f8578" + integrity sha512-Gk0AR+DcwIK/lK/GX+OQ99UqtenQhcbrhHHfOYlrCQe17ADnX3EKAOKRsAZ9qZvpi5MuwWm/Nm+9aO2kTDSdyA== dependencies: "@octokit/request" "^5.3.0" "@octokit/types" "^5.0.0" universal-user-agent "^6.0.0" "@octokit/plugin-paginate-rest@^2.2.0": - version "2.4.0" - resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.4.0.tgz#92f951ddc8a1cd505353fa07650752ca25ed7e93" - integrity sha512-YT6Klz3LLH6/nNgi0pheJnUmTFW4kVnxGft+v8Itc41IIcjl7y1C8TatmKQBbCSuTSNFXO5pCENnqg6sjwpJhg== + version "2.6.0" + resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.6.0.tgz#03416396e7a227b268c5b827365238f620a9c5c1" + integrity sha512-o+O8c1PqsC5++BHXfMZabRRsBIVb34tXPWyQLyp2IXq5MmkxdipS7TXM4Y9ldL1PzY9CTrCsn/lzFFJGM3oRRA== dependencies: "@octokit/types" "^5.5.0" "@octokit/plugin-request-log@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz#eef87a431300f6148c39a7f75f8cfeb218b2547e" - integrity sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw== + version "1.0.2" + resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.2.tgz#394d59ec734cd2f122431fbaf05099861ece3c44" + integrity sha512-oTJSNAmBqyDR41uSMunLQKMX0jmEXbwD1fpz8FG27lScV3RhtGfBa1/BBLym+PxcC16IBlF7KH9vP1BUYxA+Eg== "@octokit/plugin-rest-endpoint-methods@3.17.0": version "3.17.0" @@ -179,25 +201,25 @@ "@octokit/plugin-rest-endpoint-methods@4.2.1": version "4.2.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.2.1.tgz#8224833a45c3394836dc6e86f1e6c49269a2c350" + resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.2.1.tgz#8224833a45c3394836dc6e86f1e6c49269a2c350" integrity sha512-QyFr4Bv807Pt1DXZOC5a7L5aFdrwz71UHTYoHVajYV5hsqffWm8FUl9+O7nxRu5PDMtB/IKrhFqTmdBTK5cx+A== dependencies: "@octokit/types" "^5.5.0" deprecation "^2.3.1" "@octokit/request-error@^2.0.0": - version "2.0.2" - resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.2.tgz#0e76b83f5d8fdda1db99027ea5f617c2e6ba9ed0" - integrity sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw== + version "2.0.3" + resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.3.tgz#b51b200052bf483f6fa56c9e7e3aa51ead36ecd8" + integrity sha512-GgD5z8Btm301i2zfvJLk/mkhvGCdjQ7wT8xF9ov5noQY8WbKZDH9cOBqXzoeKd1mLr1xH2FwbtGso135zGBgTA== dependencies: "@octokit/types" "^5.0.1" deprecation "^2.0.0" once "^1.4.0" "@octokit/request@^5.3.0", "@octokit/request@^5.4.0": - version "5.4.9" - resolved "https://registry.npmjs.org/@octokit/request/-/request-5.4.9.tgz#0a46f11b82351b3416d3157261ad9b1558c43365" - integrity sha512-CzwVvRyimIM1h2n9pLVYfTDmX9m+KHSgCpqPsY8F1NdEK8IaWqXhSBXsdjOBFZSpEcxNEeg4p0UO9cQ8EnOCLA== + version "5.4.10" + resolved "https://registry.npmjs.org/@octokit/request/-/request-5.4.10.tgz#402d2c53768bde12b99348329ba4129746aebb9c" + integrity sha512-egA49HkqEORVGDZGav1mh+VD+7uLgOxtn5oODj6guJk0HCy+YBSYapFkSLFgeYj3Fr18ZULKGURkjyhkAChylw== dependencies: "@octokit/endpoint" "^6.0.1" "@octokit/request-error" "^2.0.0" @@ -220,7 +242,7 @@ "@octokit/rest@^18.0.9": version "18.0.9" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.0.9.tgz#964d707d914eb34b1787895fdcacff96de47844d" + resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.0.9.tgz#964d707d914eb34b1787895fdcacff96de47844d" integrity sha512-CC5+cIx974Ygx9lQNfUn7/oXDQ9kqGiKUC6j1A9bAVZZ7aoTF8K6yxu0pQhQrLBwSl92J6Z3iVDhGhGFgISCZg== dependencies: "@octokit/core" "^3.0.0" @@ -247,57 +269,6 @@ resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== -"@swc-node/core@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@swc-node/core/-/core-1.1.1.tgz#639921cfc97ee84b1e3bf625518c693b6a5a1344" - integrity sha512-gY3UwnS87+g1XWPp9pizUkeYX6LCz9OgLTOL/ZZY9dEGkrpf422R2QrTmrgcVMUGQ0gN4PQSxdYZGBDZ+ZYk1g== - dependencies: - "@swc/core" "^1.2.38" - -"@swc-node/register@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@swc-node/register/-/register-1.0.2.tgz#0799c1ac8efbec0b0fedd514b37b9a7e00c5e6d5" - integrity sha512-634k4aJhX2pF9YVeWzxXskBwJ9KFLUgsPz+EoIEEoVizzl4nec5g46+t9o3FLQWhn+TXtpGevL+gxxytxOYPIA== - dependencies: - "@swc-node/core" "^1.1.1" - "@swc-node/sourcemap-support" "^0.1.8" - chalk "^4.1.0" - debug "^4.2.0" - pirates "^4.0.1" - -"@swc-node/sourcemap-support@^0.1.8": - version "0.1.8" - resolved "https://registry.npmjs.org/@swc-node/sourcemap-support/-/sourcemap-support-0.1.8.tgz#8cf74175ae5e3374612011e7e75c03637019db4c" - integrity sha512-AOH32yNN8UJh6Ayc+r3mnPdrjqqEjtXr9wsEiEhh3OqJWFXqkMOHC+18FYhHdTzGzhaYqUshQONjqOTC38yx7Q== - dependencies: - source-map-support "^0.5.19" - -"@swc/core-darwin@^1.2.38": - version "1.2.38" - resolved "https://registry.yarnpkg.com/@swc/core-darwin/-/core-darwin-1.2.38.tgz#a3bc0e043115c6c3de8116cbab6fc79878b36cb0" - integrity sha512-Z+eFLZnBjt+q5Cs4lyjpbceJknSTyb0Ryhtcbw79ejM5GLWOUZawXQ0MKfIKjTVI3J3ixfY2oLkIoNwpxFrTAA== - -"@swc/core-linux@^1.2.38": - version "1.2.38" - resolved "https://registry.yarnpkg.com/@swc/core-linux/-/core-linux-1.2.38.tgz#79e453ecb68ca74a4ac41d3184eb547c81e792cb" - integrity sha512-eB4eovIjC7bPG+VStu64bkt0eZZV3pzZX3Zw4F1f5WnTMdYr4PEk4aQOUDHOxKdLhccalSDnCBTn5OtgGeUBFQ== - -"@swc/core-win32@^1.2.38": - version "1.2.38" - resolved "https://registry.yarnpkg.com/@swc/core-win32/-/core-win32-1.2.38.tgz#19509ce498f6285b54c47b56cbbd8fe02013cb81" - integrity sha512-/i0LXfpsXHIc/T/M1uBkFxYFwld/EhhhLOfTs0tal4vP1jkjJm3hGMGhmY86JQhXL6B5PvmmTOhUbSUeg/K+VA== - -"@swc/core@^1.2.38": - version "1.2.38" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.2.38.tgz#fac3f648e2b3241fb86dc74d6b74f72c0dd28a73" - integrity sha512-t/LRT2IJ+e4Wydm6Ttgf7yjPVnuoqWs4HVtzYuk/3DFbFtECQOkrkcKJR5yorg9crxQ/Dbs2AAd5e15CXefBBw== - dependencies: - "@node-rs/helper" "^0.4.0" - optionalDependencies: - "@swc/core-darwin" "^1.2.38" - "@swc/core-linux" "^1.2.38" - "@swc/core-win32" "^1.2.38" - "@szmarczak/http-timer@^1.1.2": version "1.1.2" resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" @@ -305,11 +276,6 @@ dependencies: defer-to-connect "^1.0.1" -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - "@types/json-schema@^7.0.3": version "7.0.6" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" @@ -321,9 +287,9 @@ integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= "@types/node@>= 8": - version "14.11.2" - resolved "https://registry.npmjs.org/@types/node/-/node-14.11.2.tgz#2de1ed6670439387da1c9f549a2ade2b0a799256" - integrity sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA== + version "14.14.9" + resolved "https://registry.npmjs.org/@types/node/-/node-14.14.9.tgz#04afc9a25c6ff93da14deabd65dc44485b53c8d6" + integrity sha512-JsoLXFppG62tWTklIoO4knA+oDTYsmqWxHRvd4lpmfQRNhX6osheUOWETP2jMoV/2bEHuMra8Pp3Dmo/stBFcw== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -416,14 +382,14 @@ acorn-walk@^8.0.0: integrity sha512-oZRad/3SMOI/pxbbmqyurIx7jHw1wZDcR9G44L8pUVFEomX/0dH89SrM1KaDXuv1NpzAXz6Op/Xu/Qd5XXzdEA== acorn@^7.4.0: - version "7.4.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" - integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== + version "7.4.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.0.1.tgz#d7e8eca9b71d5840db0e7e415b3b2b20e250f938" - integrity sha512-dmKn4pqZ29iQl2Pvze1zTrps2luvls2PBY//neO2WJ0s10B3AxJXshN+Ph7B4GrhfGhHXrl4dnUwyNNXQcnWGQ== + version "8.0.4" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.0.4.tgz#7a3ae4191466a6984eee0fe3407a4f3aa9db8354" + integrity sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ== aggregate-error@^3.0.0: version "3.1.0" @@ -434,9 +400,9 @@ aggregate-error@^3.0.0: indent-string "^4.0.0" ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4: - version "6.12.5" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" - integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -485,11 +451,10 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: - "@types/color-name" "^1.1.1" color-convert "^2.0.1" anymatch@~3.1.1: @@ -500,6 +465,11 @@ anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + argparse@^1.0.7: version "1.0.10" resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -527,21 +497,13 @@ array-union@^2.1.0: integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array.prototype.flat@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" - integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -array.prototype.flatmap@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz#1c13f84a178566042dd63de4414440db9222e443" - integrity sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg== + version "1.2.4" + resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" + es-abstract "^1.18.0-next.1" arrgv@^1.0.2: version "1.0.2" @@ -570,7 +532,7 @@ astral-regex@^2.0.0: at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== ava@^3.13.0: @@ -655,7 +617,7 @@ benchmark@^2.1.4: benny@^3.6.15: version "3.6.15" - resolved "https://registry.yarnpkg.com/benny/-/benny-3.6.15.tgz#930826819b89546b274febe803da2d248a676caa" + resolved "https://registry.npmjs.org/benny/-/benny-3.6.15.tgz#930826819b89546b274febe803da2d248a676caa" integrity sha512-kq6XVGGYVou3Y8KNPs3SEF881vi5fJ8sIf9w69D2rreiNfRicWVWK6u6/mObMw6BiexoHHumtipn5gcu0Tngng== dependencies: "@arrows/composition" "^1.0.0" @@ -726,6 +688,14 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" +call-bind@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" + integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.0" + callsites@^3.0.0, callsites@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -772,9 +742,9 @@ checkup@^1.3.0: integrity sha1-04ACdv6l0PJH/8lRvnjIsC+ODXY= chokidar@^3.4.2: - version "3.4.2" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" - integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== + version "3.4.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" + integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -782,7 +752,7 @@ chokidar@^3.4.2: is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.4.0" + readdirp "~3.5.0" optionalDependencies: fsevents "~2.1.2" @@ -824,9 +794,9 @@ cli-cursor@^3.1.0: restore-cursor "^3.1.0" cli-spinners@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f" - integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA== + version "2.5.0" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" + integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ== cli-truncate@^2.1.0: version "2.1.0" @@ -843,13 +813,13 @@ cli-width@^3.0.0: clipanion@^2.6.2: version "2.6.2" - resolved "https://registry.yarnpkg.com/clipanion/-/clipanion-2.6.2.tgz#820e7440812052442455b248f927b187ed732f71" + resolved "https://registry.npmjs.org/clipanion/-/clipanion-2.6.2.tgz#820e7440812052442455b248f927b187ed732f71" integrity sha512-0tOHJNMF9+4R3qcbBL+4IxLErpaYSYvzs10aXuECDbZdJOuJHdagJMAqvLdeaUQTI/o2uSCDRpet6ywDiKOAYw== -cliui@^7.0.0: - version "7.0.1" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.1.tgz#a4cb67aad45cd83d8d05128fc9f4d8fbb887e6b3" - integrity sha512-rcvHOWyGyid6I1WjT/3NatKj2kDt9OdSHSXpyLXaMWFbKpGACNW8pRhhdPUq9MWUOdwn8Rz9AVETjF4105rZZQ== +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" @@ -900,7 +870,7 @@ color-name@~1.1.4: commander@^6.1.0, commander@^6.2.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.0.tgz#b990bfb8ac030aedc6d11bc04d1488ffef56db75" + resolved "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz#b990bfb8ac030aedc6d11bc04d1488ffef56db75" integrity sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q== common-path-prefix@^3.0.0: @@ -1019,9 +989,9 @@ debug@^2.6.9: ms "2.0.0" debug@^4.0.1, debug@^4.1.1, debug@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" - integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== + version "4.3.1" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" @@ -1090,6 +1060,11 @@ deprecation@^2.0.0, deprecation@^2.3.1: resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -1105,13 +1080,6 @@ doctrine@1.5.0: esutils "^2.0.2" isarray "^1.0.0" -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - doctrine@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -1132,9 +1100,9 @@ duplexer3@^0.1.4: integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= emittery@^0.7.1: - version "0.7.1" - resolved "https://registry.npmjs.org/emittery/-/emittery-0.7.1.tgz#c02375a927a40948c0345cc903072597f5270451" - integrity sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ== + version "0.7.2" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== emoji-regex@^7.0.1: version "7.0.3" @@ -1172,38 +1140,38 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: - version "1.17.6" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" - integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== +es-abstract@^1.17.0, es-abstract@^1.17.0-next.1: + version "1.17.7" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" + integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.1" - is-callable "^1.2.0" - is-regex "^1.1.0" - object-inspect "^1.7.0" + is-callable "^1.2.2" + is-regex "^1.1.1" + object-inspect "^1.8.0" object-keys "^1.1.1" - object.assign "^4.1.0" + object.assign "^4.1.1" string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" -es-abstract@^1.18.0-next.0: - version "1.18.0-next.0" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.0.tgz#b302834927e624d8e5837ed48224291f2c66e6fc" - integrity sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ== +es-abstract@^1.18.0-next.1: + version "1.18.0-next.1" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" + integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.1" - is-callable "^1.2.0" + is-callable "^1.2.2" is-negative-zero "^2.0.0" is-regex "^1.1.1" object-inspect "^1.8.0" object-keys "^1.1.1" - object.assign "^4.1.0" + object.assign "^4.1.1" string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" @@ -1216,10 +1184,10 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -escalade@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.0.tgz#e8e2d7c7a8b76f6ee64c2181d6b8151441602d4e" - integrity sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig== +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-goat@^2.0.0: version "2.1.1" @@ -1243,7 +1211,7 @@ escape-string-regexp@^4.0.0: eslint-config-prettier@^6.15.0: version "6.15.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== dependencies: get-stdin "^6.0.0" @@ -1290,28 +1258,6 @@ eslint-plugin-prettier@^3.1.4: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-react-hooks@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" - integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== - -eslint-plugin-react@^7.21.5: - version "7.21.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz#50b21a412b9574bfe05b21db176e8b7b3b15bff3" - integrity sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g== - dependencies: - array-includes "^3.1.1" - array.prototype.flatmap "^1.2.3" - doctrine "^2.1.0" - has "^1.0.3" - jsx-ast-utils "^2.4.1 || ^3.0.0" - object.entries "^1.1.2" - object.fromentries "^2.0.2" - object.values "^1.1.1" - prop-types "^15.7.2" - resolve "^1.18.1" - string.prototype.matchall "^4.0.2" - eslint-plugin-sonarjs@^0.5.0: version "0.5.0" resolved "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.5.0.tgz#ce17b2daba65a874c2862213a9e38e8986ad7d7d" @@ -1344,7 +1290,7 @@ eslint-visitor-keys@^2.0.0: eslint@^7.14.0: version "7.14.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.14.0.tgz#2d2cac1d28174c510a97b377f122a5507958e344" + resolved "https://registry.npmjs.org/eslint/-/eslint-7.14.0.tgz#2d2cac1d28174c510a97b377f122a5507958e344" integrity sha512-5YubdnPXrlrYAFCKybPuHIAH++PINe1pmKNc5wQRB9HSbqIK1ywAnntE3Wwua4giKu0bjligf1gLF6qxMGOYRA== dependencies: "@babel/code-frame" "^7.0.0" @@ -1443,7 +1389,7 @@ execa@^1.0.0: execa@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== dependencies: cross-spawn "^7.0.0" @@ -1498,9 +1444,9 @@ fast-levenshtein@^2.0.6: integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fastq@^1.6.0: - version "1.8.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" - integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== + version "1.9.0" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz#e16a72f338eaca48e91b5c23593bcc2ef66b7947" + integrity sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w== dependencies: reusify "^1.0.4" @@ -1575,7 +1521,7 @@ flatted@^2.0.0: fs-extra@^9.0.1: version "9.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== dependencies: at-least-node "^1.0.0" @@ -1608,6 +1554,15 @@ get-caller-file@^2.0.5: resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-intrinsic@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be" + integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" @@ -1780,9 +1735,9 @@ ignore@^5.1.4: integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + version "3.2.2" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e" + integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -1852,15 +1807,6 @@ inquirer@^7.3.3: strip-ansi "^6.0.0" through "^2.3.6" -internal-slot@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3" - integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g== - dependencies: - es-abstract "^1.17.0-next.1" - has "^1.0.3" - side-channel "^1.0.2" - irregular-plurals@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.2.0.tgz#b19c490a0723798db51b235d7e39add44dab0822" @@ -1878,7 +1824,7 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-callable@^1.1.4, is-callable@^1.2.0: +is-callable@^1.1.4, is-callable@^1.2.2: version "1.2.2" resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== @@ -1890,10 +1836,10 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.0.0.tgz#58531b70aed1db7c0e8d4eb1a0a2d1ddd64bd12d" - integrity sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw== +is-core-module@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz#a4cc031d9b1aca63eecbd18a650e13cb4eeab946" + integrity sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA== dependencies: has "^1.0.3" @@ -1987,7 +1933,7 @@ is-promise@^4.0.0: resolved "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== -is-regex@^1.1.0, is-regex@^1.1.1: +is-regex@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== @@ -2046,7 +1992,7 @@ js-string-escape@^1.0.1: resolved "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" integrity sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8= -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: +js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== @@ -2085,9 +2031,9 @@ json-stable-stringify-without-jsonify@^1.0.1: integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json2csv@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/json2csv/-/json2csv-5.0.4.tgz#f35bf7796dcc5108d863a85719b2d3143cdc2560" - integrity sha512-ccKQVrhxPVz0xRh/YIrRomIC9BSRAJQcaWfycbLweXVpkiLWmVQ+jvhFOVnatXbJHQaQzCdVkUyATAlgDMkFZQ== + version "5.0.5" + resolved "https://registry.npmjs.org/json2csv/-/json2csv-5.0.5.tgz#b65bf4f1e1eeb81cb7097d383edec249f8bce3af" + integrity sha512-/UyvnfuUghRM+C/AiQ02X0LS+/AKfugcwaWo/gAz1pi203v29sUMrMSNEC088i+h0EG39eSsmeL9Z0iK+9MM0A== dependencies: commander "^6.1.0" jsonparse "^1.3.1" @@ -2102,7 +2048,7 @@ json5@^1.0.1: jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -2114,14 +2060,6 @@ jsonparse@^1.3.1: resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= -"jsx-ast-utils@^2.4.1 || ^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.0.0.tgz#0f49d5093bafa4b45d3fe02147d8b40ffc6c7438" - integrity sha512-sPuicm6EPKYI/UnWpOatvg4pI50qaBo4dSOMGUPutmJ26ttedFKXr0It0XXPk4HKnQ/1X0st4eSS2w2jhFk9Ow== - dependencies: - array-includes "^3.1.1" - object.assign "^4.1.1" - keyv@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" @@ -2131,7 +2069,7 @@ keyv@^3.0.0: kleur@^4.1.3: version "4.1.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.3.tgz#8d262a56d79a137ee1b706e967c0b08a7fef4f4c" + resolved "https://registry.npmjs.org/kleur/-/kleur-4.1.3.tgz#8d262a56d79a137ee1b706e967c0b08a7fef4f4c" integrity sha512-H1tr8QP2PxFTNwAFM74Mui2b6ovcY9FoxJefgrwxY+OCJcq01k5nvhf4M/KnizzrJvLRap5STUy7dgDV35iUBw== latest-version@^5.0.0: @@ -2177,7 +2115,7 @@ lint-staged@^10.5.2: listr2@^3.2.2: version "3.2.2" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.2.2.tgz#d20feb75015e506992b55af40722ba1af168b8f1" + resolved "https://registry.npmjs.org/listr2/-/listr2-3.2.2.tgz#d20feb75015e506992b55af40722ba1af168b8f1" integrity sha512-AajqcZEUikF2ioph6PfH3dIuxJclhr3i3kHgTOP0xeXdWQohrvJAAmqVcV43/GI987HFY/vzT73jYXoa4esDHg== dependencies: chalk "^4.1.0" @@ -2270,13 +2208,6 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" @@ -2299,6 +2230,11 @@ make-dir@^3.0.0: dependencies: semver "^6.0.0" +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + map-age-cleaner@^0.1.3: version "0.1.3" resolved "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -2412,22 +2348,6 @@ mute-stream@0.0.8: resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -napi-rs@^0.3.10: - version "0.3.10" - resolved "https://registry.yarnpkg.com/napi-rs/-/napi-rs-0.3.10.tgz#df8620c9a86bb0a612204c50ac634dd25d1dfe96" - integrity sha512-Jw9A5T1WFIxNuUT6JNqo4cuPqZimnQg3BtFjQVpusDKLHGKBsxGiIMVUM/HT3jkZ44oVWoew4kAxygty0dzWFA== - dependencies: - "@octokit/rest" "^18.0.9" - chalk "^4.1.0" - clipanion "^2.6.2" - debug "^4.2.0" - fdir "^4.1.0" - inquirer "^7.3.3" - lodash "^4.17.20" - putasset "^5.0.3" - toml "^3.0.0" - tslib "^2.0.3" - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -2443,11 +2363,6 @@ node-fetch@^2.6.1: resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-modules-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" - integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= - normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -2497,12 +2412,7 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" -object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-inspect@^1.7.0, object-inspect@^1.8.0: +object-inspect@^1.8.0: version "1.8.0" resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== @@ -2512,35 +2422,16 @@ object-keys@^1.0.12, object-keys@^1.1.1: resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.0, object.assign@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd" - integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA== +object.assign@^4.1.1: + version "4.1.2" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.18.0-next.0" has-symbols "^1.0.1" object-keys "^1.1.1" -object.entries@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" - integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - has "^1.0.3" - -object.fromentries@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" - integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - has "^1.0.3" - object.values@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" @@ -2811,13 +2702,6 @@ pify@^4.0.1: resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pirates@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" - integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== - dependencies: - node-modules-regexp "^1.0.0" - pkg-conf@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz#d9f9c75ea1bae0e77938cde045b276dac7cc69ae" @@ -2878,7 +2762,7 @@ prettier-linter-helpers@^1.0.0: prettier@^2.1.2, prettier@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.0.tgz#8a03c7777883b29b37fb2c4348c66a78e980418b" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.2.0.tgz#8a03c7777883b29b37fb2c4348c66a78e980418b" integrity sha512-yYerpkvseM4iKD/BXLYUkQV5aKt4tQPqaGW6EsZjzyu0r7sVZZNPJW4Y8MyKmicp6t42XUPcBVA+H6sB3gqndw== pretty-ms@^7.0.1: @@ -2893,15 +2777,6 @@ progress@^2.0.0: resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -prop-types@^15.7.2: - version "15.7.2" - resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - pump@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -2916,9 +2791,9 @@ punycode@^2.1.0: integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== pupa@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz#dbdc9ff48ffbea4a26a069b6f9f7abb051008726" - integrity sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA== + version "2.1.1" + resolved "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== dependencies: escape-goat "^2.0.0" @@ -2945,11 +2820,6 @@ rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-is@^16.8.1: - version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" @@ -2986,10 +2856,10 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== dependencies: picomatch "^2.2.1" @@ -3000,23 +2870,15 @@ readjson@^2.0.1: dependencies: try-catch "^3.0.0" -regexp.prototype.flags@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - regexpp@^3.0.0, regexpp@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== registry-auth-token@^4.0.0: - version "4.2.0" - resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz#1d37dffda72bbecd0f581e4715540213a65eb7da" - integrity sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w== + version "4.2.1" + resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" + integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== dependencies: rc "^1.2.8" @@ -3049,12 +2911,12 @@ 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.10.0, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.18.1: - version "1.18.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" - integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== +resolve@^1.10.0, resolve@^1.13.1, resolve@^1.17.0: + version "1.19.0" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== dependencies: - is-core-module "^2.0.0" + is-core-module "^2.1.0" path-parse "^1.0.6" responselike@^1.0.2: @@ -3097,9 +2959,9 @@ run-async@^2.4.0: integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== run-parallel@^1.1.9: - version "1.1.9" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + version "1.1.10" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" + integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== rxjs@^6.6.0, rxjs@^6.6.3: version "6.6.3" @@ -3184,14 +3046,6 @@ shell-quote@^1.6.1: resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== -side-channel@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz#cdc46b057550bbab63706210838df5d4c19519c3" - integrity sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g== - dependencies: - es-abstract "^1.18.0-next.0" - object-inspect "^1.8.0" - signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" @@ -3229,7 +3083,7 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" -source-map-support@^0.5.19: +source-map-support@^0.5.17, source-map-support@^0.5.19: version "0.5.19" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -3274,9 +3128,9 @@ sprintf-js@~1.0.2: integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= stack-utils@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593" - integrity sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg== + version "2.0.3" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== dependencies: escape-string-regexp "^2.0.0" @@ -3308,18 +3162,6 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string.prototype.matchall@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" - integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0" - has-symbols "^1.0.1" - internal-slot "^1.0.2" - regexp.prototype.flags "^1.3.0" - side-channel "^1.0.2" - string.prototype.padend@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz#dc08f57a8010dc5c153550318f67e13adbb72ac3" @@ -3329,20 +3171,20 @@ string.prototype.padend@^3.0.0: es-abstract "^1.17.0-next.1" string.prototype.trimend@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + version "1.0.2" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz#6ddd9a8796bc714b489a3ae22246a208f37bfa46" + integrity sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw== dependencies: define-properties "^1.1.3" - es-abstract "^1.17.5" + es-abstract "^1.18.0-next.1" string.prototype.trimstart@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + version "1.0.2" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz#22d45da81015309cd0cdd79787e8919fc5c613e7" + integrity sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg== dependencies: define-properties "^1.1.3" - es-abstract "^1.17.5" + es-abstract "^1.18.0-next.1" stringify-object@^3.3.0: version "3.3.0" @@ -3440,9 +3282,9 @@ temp-dir@^2.0.0: integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== term-size@^2.1.0: - version "2.2.0" - resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" - integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== + version "2.2.1" + resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" + integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== text-table@^0.2.0: version "0.2.0" @@ -3498,6 +3340,17 @@ try-to-catch@^3.0.0: resolved "https://registry.npmjs.org/try-to-catch/-/try-to-catch-3.0.0.tgz#a1903b44d13d5124c54d14a461d22ec1f52ea14b" integrity sha512-eIm6ZXwR35jVF8By/HdbbkcaCDTBI5PpCPkejRKrYp0jyf/DbCCcRhHD7/O9jtFI3ewsqo9WctFEiJTS6i+CQA== +ts-node@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz#e7699d2a110cc8c0d3b831715e417688683460b3" + integrity sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg== + dependencies: + arg "^4.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + tsconfig-paths@^3.9.0: version "3.9.0" resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" @@ -3509,13 +3362,13 @@ tsconfig-paths@^3.9.0: strip-bom "^3.0.0" tslib@^1.8.1, tslib@^1.9.0: - version "1.13.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.1, tslib@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== tsutils@^3.17.1: @@ -3561,7 +3414,7 @@ typedarray-to-buffer@^3.1.5: typescript@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.2.tgz#6369ef22516fe5e10304aae5a5c4862db55380e9" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz#6369ef22516fe5e10304aae5a5c4862db55380e9" integrity sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ== unique-string@^2.0.0: @@ -3585,18 +3438,18 @@ universal-user-agent@^6.0.0: universalify@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + resolved "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== universalify@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== update-notifier@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.1.tgz#895fc8562bbe666179500f9f2cebac4f26323746" - integrity sha512-9y+Kds0+LoLG6yN802wVXoIfxYEwh3FlZwzMwpCZp62S2i1/Jzeqb9Eeeju3NSHccGGasfGlK5/vEHbAifYRDg== + version "4.1.3" + resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" + integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== dependencies: boxen "^4.2.0" chalk "^3.0.0" @@ -3627,9 +3480,9 @@ url-parse-lax@^3.0.0: prepend-http "^2.0.0" v8-compile-cache@^2.0.3: - version "2.1.1" - resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" - integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== + version "2.2.0" + resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== validate-npm-package-license@^3.0.1: version "3.0.4" @@ -3734,10 +3587,10 @@ xdg-basedir@^4.0.0: resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== -y18n@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.1.tgz#1ad2a7eddfa8bce7caa2e1f6b5da96c39d99d571" - integrity sha512-/jJ831jEs4vGDbYPQp4yGKDYPSCCEQ45uZWJHE1AoYBzqdZi8+LDWas0z4HrmJXmKdpFsTiowSHXdxyFhpmdMg== +y18n@^5.0.5: + version "5.0.5" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== yaml@^1.10.0: version "1.10.0" @@ -3752,20 +3605,25 @@ yargs-parser@^18.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.0.0: - version "20.2.0" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.0.tgz#944791ca2be2e08ddadd3d87e9de4c6484338605" - integrity sha512-2agPoRFPoIcFzOIp6656gcvsg2ohtscpw2OINr/q46+Sq41xz2OYLqx5HRHabmFU1OARIPAYH5uteICE7mn/5A== +yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== yargs@^16.0.3: - version "16.0.3" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.0.3.tgz#7a919b9e43c90f80d4a142a89795e85399a7e54c" - integrity sha512-6+nLw8xa9uK1BOEOykaiYAJVh6/CjxWXK/q9b5FpRgNslt8s22F2xMBqVIKgCRjNgGvGPBy8Vog7WN7yh4amtA== + version "16.1.1" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.1.1.tgz#5a4a095bd1ca806b0a50d0c03611d38034d219a1" + integrity sha512-hAD1RcFP/wfgfxgMVswPE+z3tlPFtxG8/yWUrG2i17sTWGCGqWnxKcLTF4cUKDUK8fzokwsmO9H0TDkRbMHy8w== dependencies: - cliui "^7.0.0" - escalade "^3.0.2" + cliui "^7.0.2" + escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" string-width "^4.2.0" - y18n "^5.0.1" - yargs-parser "^20.0.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== From fded8fe03aa41ee0bae951fab64fa77479e3b8d4 Mon Sep 17 00:00:00 2001 From: LongYinan Date: Fri, 20 Nov 2020 11:10:05 +0800 Subject: [PATCH 2/3] Fix windows i686 --- .github/workflows/CI.yaml | 3 --- Cargo.toml | 8 ++++---- npm/win32-x64-msvc/package.json | 2 +- simple-test.js | 14 ++++++++++---- src/lib.rs | 15 ++++++--------- 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml index 8d86b35..8458303 100644 --- a/.github/workflows/CI.yaml +++ b/.github/workflows/CI.yaml @@ -188,9 +188,6 @@ jobs: build-win32-ia686: runs-on: windows-latest - env: - CARGO_PROFILE_napi_OPT_LEVEL: 0 - CARGO_PROFILE_napi_OPT_LTO: false steps: - uses: actions/checkout@v2 diff --git a/Cargo.toml b/Cargo.toml index 373d2f2..45f21a4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,8 +10,8 @@ version = "0.1.0" crate-type = ["cdylib"] [dependencies] -napi = {git = "https://github.com/napi-rs/napi-rs", branch = "cstring-issues"} -napi-derive = {git = "https://github.com/napi-rs/napi-rs", branch = "cstring-issues"} +napi = {git = "https://github.com/napi-rs/napi-rs", branch = "rust-codegen-win32"} +napi-derive = {git = "https://github.com/napi-rs/napi-rs", branch = "rust-codegen-win32"} [target.'cfg(all(unix, not(target_env = "musl")))'.dependencies] jemallocator = {version = "0.3", features = ["disable_initial_exec_tls"]} @@ -20,7 +20,7 @@ jemallocator = {version = "0.3", features = ["disable_initial_exec_tls"]} mimalloc = {version = "0.1"} [build-dependencies] -napi-build = {git = "https://github.com/napi-rs/napi-rs", branch = "cstring-issues"} +napi-build = {git = "https://github.com/napi-rs/napi-rs", branch = "rust-codegen-win32"} [profile.release] -lto = true +opt-level = 's' diff --git a/npm/win32-x64-msvc/package.json b/npm/win32-x64-msvc/package.json index 1291db6..816296e 100644 --- a/npm/win32-x64-msvc/package.json +++ b/npm/win32-x64-msvc/package.json @@ -9,7 +9,7 @@ "keywords": ["napi-rs", "NAPI", "N-API", "Rust", "node-addon", "node-addon-api"], "license": "MIT", "engines": { - "node": ">= 8.9" + "node": ">= 10" }, "publishConfig": { "registry": "https://registry.npmjs.org/", diff --git a/simple-test.js b/simple-test.js index 2937210..ee29c87 100644 --- a/simple-test.js +++ b/simple-test.js @@ -1,5 +1,11 @@ -const { sync } = require('./index') +const { exec } = require('child_process') +const { stderr } = require('process') -console.assert(sync(0) === 100, 'Simple test failed') - -console.info('Simple test passed') +exec(`node -e "console.log(require('./index.js'))"`, (err, stdout, stderr) => { + if (err) { + console.error(err) + process.exit(1) + } + console.info(stdout) + console.info(stderr) +}) diff --git a/src/lib.rs b/src/lib.rs index d169350..aff0a75 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,22 +1,18 @@ #[macro_use] -extern crate napi; -#[macro_use] extern crate napi_derive; use std::convert::TryInto; -use napi::{CallContext, Env, JsNumber, JsObject, Module, Result, Task}; +use napi::{CallContext, Env, JsNumber, JsObject, Result, Task}; #[cfg(all(unix, not(target_env = "musl")))] #[global_allocator] static ALLOC: jemallocator::Jemalloc = jemallocator::Jemalloc; -#[cfg(all(windows, target_arch = "x86_64"))] +#[cfg(windows)] #[global_allocator] static ALLOC: mimalloc::MiMalloc = mimalloc::MiMalloc; -register_module!(example, init); - struct AsyncTask(u32); impl Task for AsyncTask { @@ -35,10 +31,11 @@ impl Task for AsyncTask { } } -fn init(module: &mut Module) -> Result<()> { - module.create_named_method("sync", sync_fn)?; +#[module_exports] +fn init(mut exports: JsObject) -> Result<()> { + exports.create_named_method("sync", sync_fn)?; - module.create_named_method("sleep", sleep)?; + exports.create_named_method("sleep", sleep)?; Ok(()) } From bb3ea9470752072d6f7c85d05df65e8b6125210f Mon Sep 17 00:00:00 2001 From: LongYinan Date: Fri, 20 Nov 2020 11:10:05 +0800 Subject: [PATCH 3/3] Fix windows i686 --- .github/workflows/CI.yaml | 12 ++++++------ Cargo.toml | 8 ++++---- package.json | 41 +++++++++------------------------------ simple-test.js | 6 ++---- 4 files changed, 21 insertions(+), 46 deletions(-) diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml index 8458303..2dc5d8d 100644 --- a/.github/workflows/CI.yaml +++ b/.github/workflows/CI.yaml @@ -186,8 +186,10 @@ jobs: name: bindings-linux-aarch64 path: ${{ env.APP_NAME }}.*.node - build-win32-ia686: + build-win32-i686: runs-on: windows-latest + env: + CARGO_PROFILE_RELEASE_OPT_LEVEL: 0 steps: - uses: actions/checkout@v2 @@ -243,9 +245,7 @@ jobs: run: yarn build --target i686-pc-windows-msvc - name: Test binary - run: | - node -v - node simple-test.js + run: yarn test - name: Upload artifact uses: actions/upload-artifact@v2 @@ -385,7 +385,7 @@ jobs: - test - test-musl - test-aarch64 - - build-win32-ia686 + - build-win32-i686 runs-on: ubuntu-latest steps: - name: auto-merge @@ -401,7 +401,7 @@ jobs: - test - test-musl - test-aarch64 - - build-win32-ia686 + - build-win32-i686 steps: - uses: actions/checkout@v2 diff --git a/Cargo.toml b/Cargo.toml index 45f21a4..16726b0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,8 +10,8 @@ version = "0.1.0" crate-type = ["cdylib"] [dependencies] -napi = {git = "https://github.com/napi-rs/napi-rs", branch = "rust-codegen-win32"} -napi-derive = {git = "https://github.com/napi-rs/napi-rs", branch = "rust-codegen-win32"} +napi = {git = "https://github.com/napi-rs/napi-rs"} +napi-derive = {git = "https://github.com/napi-rs/napi-rs"} [target.'cfg(all(unix, not(target_env = "musl")))'.dependencies] jemallocator = {version = "0.3", features = ["disable_initial_exec_tls"]} @@ -20,7 +20,7 @@ jemallocator = {version = "0.3", features = ["disable_initial_exec_tls"]} mimalloc = {version = "0.1"} [build-dependencies] -napi-build = {git = "https://github.com/napi-rs/napi-rs", branch = "rust-codegen-win32"} +napi-build = {git = "https://github.com/napi-rs/napi-rs"} [profile.release] -opt-level = 's' +lto = true diff --git a/package.json b/package.json index 049a96f..9f19fdc 100644 --- a/package.json +++ b/package.json @@ -5,18 +5,8 @@ "main": "index.js", "repository": "git@github.com:napi-rs/package-template.git", "license": "MIT", - "keywords": [ - "napi-rs", - "NAPI", - "N-API", - "Rust", - "node-addon", - "node-addon-api" - ], - "files": [ - "index.d.ts", - "index.js" - ], + "keywords": ["napi-rs", "NAPI", "N-API", "Rust", "node-addon", "node-addon-api"], + "files": ["index.d.ts", "index.js"], "napi": { "name": "package-template", "triples": { @@ -75,27 +65,14 @@ "@node-rs/helper": "^1.0.0-alpha.1" }, "lint-staged": { - "*.@(js|ts|tsx)": [ - "prettier --write", - "eslint -c .eslintrc.yml --fix" - ], - "*.@(yml|yaml)": [ - "prettier --parser yaml --write" - ], - "*.md": [ - "prettier --parser markdown --write" - ], - "*.json": [ - "prettier --parser json --write" - ] + "*.@(js|ts|tsx)": ["prettier --write", "eslint -c .eslintrc.yml --fix"], + "*.@(yml|yaml)": ["prettier --parser yaml --write"], + "*.md": ["prettier --parser markdown --write"], + "*.json": ["prettier --parser json --write"] }, "ava": { - "require": [ - "ts-node/register/transpile-only" - ], - "extensions": [ - "ts" - ], + "require": ["ts-node/register/transpile-only"], + "extensions": ["ts"], "environmentVariables": { "TS_NODE_PROJECT": "./tsconfig.json" } @@ -113,4 +90,4 @@ "pre-commit": "lint-staged" } } -} \ No newline at end of file +} diff --git a/simple-test.js b/simple-test.js index ee29c87..7371241 100644 --- a/simple-test.js +++ b/simple-test.js @@ -1,11 +1,9 @@ const { exec } = require('child_process') -const { stderr } = require('process') exec(`node -e "console.log(require('./index.js'))"`, (err, stdout, stderr) => { + console.info(stdout) + console.info(stderr) if (err) { - console.error(err) process.exit(1) } - console.info(stdout) - console.info(stderr) })